31 Temmuz 2013 Çarşamba

JAVA da Sınıflar Arası Bilgi Alışverişi ve Constructor Kullanımı

Kod Anlatımı:

Bu konu için 3 ayrı sınıf oluşturmamız gerekiyor. Bunlar öğrenci,okul ve test sınıflarıdır.

Öğrenci sınıfında neler kullandığımızı ve ne işe yaradığını kısaca söylemek istersek:
  • Öğrenci isimlerini tutmak için 'isim' String'ini tanımlıyoruz.
  • Öğrenci numaralarını tutmak için ogr_no şeklinde bir integer tanımlıyoruz 
  • Her öğrenci nesnesi için Okul sınıfından bir nesne oluşturuyoruz
  • Ogrenci constructor'ının içine isim ve numarasını almak için gerekli bölümleri ekliyoruz
  • Diğer sınıflardan öğrenci adına erişebilmek için getisim metodu oluşturuyoruz
  • Öğrencinin okulunu set'lemek için de setOkul metodunu ekliyoruz ve öğrenci sınıfını tamamlıyoruz
Okul sınıfında neler kullandığımızı ve ne işe yaradığını kısaca söylemek istersek:
  • Okulun adını tutmamız için bir okul_adi String'i tanımlıyoruz
  • Okul kapasitesini tutmak için kapasite adında bir integer tanımlıyoruz
  • Öğrencileri de bir dizide tutmamız gerektiği için de liste şeklinde bir dizi oluşturuyoruz
  • Okul constructor'unda okul adını ve kapasitesini tutmamız gerektiğinden bunları yazıyoruz içerisine
  • Bu constructor'un içine bir de her okul için liste oluşturmamız gerekiyor
  • Öğrencileri listeye eklemek için OgrenciEkle metodunu kullanıyoruz.Bu metodun içinde de öğrencimizi listeye direk ekliyoruz ve indisimizi bir artırıyoruz
  • isimYaz metoduyla da  ekrana öğrencinin adı ile  hangi okulda okuduğunu yazdırıyoruz ve bu sınıfımızı da tamamlıyoruz.
Test sınıfında neler kullandığımızı ve ne işe yaradığını kısaca söylemek istersek:
  • Burada öncelikle Okulun adını alıp yeni bir okul oluşturuyoruz ve otomatik olarak 100 kapasite veriyoruz
  • Daha sonra yeni bir öğrenci oluşturuyoruz ve bu öğrenciyi okulumuza set ediyoruz.
  • Okulumuza öğrenciyi OgrenciEkle metoduyla ekledikten sonra okuldaki öğrencileri de isimYaz metoduyla ekrana yazdırıyoruz.

İlgili Kod:

 Öğrenci Sınıfı:

Okul Sınıfı:


Main Sınıfı:

Ekran Alıntısı:




C# : dll Oluşturma


          DLL'in türkçe olarak açılımını dinamik bağlantı kütüphanesi olarak tanımlayabiliriz. dll'e bazı programları ve oyunları çalıştırdığımızda belirtilen dll'in eksikliğini bildiren mesaj gelir ve işlem yapılmaz. Şimdi bizler de en basitinden bir program için nasıl dll oluşturacağımızı ve bu dll'i nasıl kullanacağımzı adım adım uygulamalı bir şekilde göreceğiz.

          Örnek olarak alan ve hacim hesaplamaları üzerinden gideceğiz.

          İlk olarak dll oluşturma aşamasının nasıl yapıldığına bir göz atalım.

1. DLL oluşturmak için "Class Library" seçeneğini seçerek bir sınıf kütüphanesi oluşturuyoruz.


2. Karşımıza aşağıdaki şekilde bir kod alanı açılacaktır. bu kod alanında namespace kısmında yazan blog_class bizim dll'imizin adıdır. Class1 ise bizim projelerimizin çağıracağımız blog_class'ın bir alt sınıfıdır. Tıpkı random sınıfı gibi. Classlar içinde de metot oluşturarak kullanacağımız sınıfı daha fonksiyonel hale getirebiliriz.


3. Biz bu DLL içerisinde alan ve hacim hesaplarını ayrı bir şekilde yapan sınıflar tanımladık. Daha sonra da her bir sınıf için de ayrı metotlar oluşturduk. Alan hesabı yapan sınıfımızda kare ve dikdörtgenin hesaplarını ayrı ayrı yapan metot oluşturduk. Hacim hesabında da küp ve dikdörtgen prizmaların hacim hesabını yapan iki ayrı metot oluşturduk. DLL için oluşturduğumuz kodu aşağıda görebiliriz.


4. Kod kısmımız tamamladıktan sonra Build menüsüne tıklayarak oradan Build blog_class seçeneğini tıklıyoruz.


5. DLL'imiz oluşturduğumuz kütüphanenin debug klasörü içerisinde olacaktır.

Proje'ye DLL Ekleme


          Bundan sonrasında projemiz üzerinden gideceğiz. Alan ve hacim hesabı yapan basit bir projemiz olacak. Buna göre bir form tasarlayacağız.


          Var olan DLL'leri projemize eklemek için sırası ile aşağıdaki işlemleri yaparak ekleyebiliriz.

1. Açtığımız yeni projemizde Project menüsünde yer alan "Add Reference" komutuna tıklarız.



2. Açılan pencereden ekleyeceğimiz dll'i bulup pojemize ekliyoruz.


3. Eklediğimiz DLL'i kod sayfamızda kullanabilmek için using ile kullanacağımız dll'in adını kod sayfasının yukarısında tanımlıyoruz.


4. Eklediğimiz dll'deki kullanacağımız sınıfları tanımlıyoruz.


5. Öncelikle sınıfını tanımladığımız değişkeni yazıyoruz ve ardından kullanacağımız metodu seçiyoruz. Ayrıca metodumuzun üzerinde geldiğinde nasıl kullanacağı hakkında da bilgi alabiliyoruz.


6. Projemizde hesaplamalar için ayrıca dışarıdan değer alacağımız için bunu bir değişkende tutmayı daha kolay olacağını düşünerek bu atama işlemini bir void türünde bir metotta tanımladık ve her butonda hesaplama yapmadan önce bu metodu çağırarak değerlerin atanmasını sağladık.

Kodun Tamamı



28 Temmuz 2013 Pazar

C# : Küçük - Büyük Harf Kontrolü Yapma


          char türünde tanımlanan değişkenlere yalnız tek bir karakteri atayabiliriz. Biz bu değişken türünü klavyeden girilen harfin büyük mü yoksa küçük harf mi olduğunu anlamak için kullanacağız.

          Öncelikle kontrolü metot tanımlayarak yapacağız. Metodumuzun veri türünü belirlemek için metotta yapacağımız işleme bakmak gerek. Metot büyük ya da küçük harf duyarlılığını kontrol edeceği için iki durum olacaktır. Bunun için bool veri türünü kullanacağız. bool türü true-false;1-0 şeklinde değerler geri döndüren veri tipidir.


          Ardından da kullanıcıdan konsol üzerine kontrol için tek bir karakter girmesini sağlayacak bir mesaj yazdırıp metodun çalışmasını sağlıyoruz. Metodun döndürdüğü değere göre de if yapısını kullanarak küçük mü yoksa büyük harf mi girdiğini gösteren bir mesaj yazdırıyoruz.

Ekran Görüntüsü


Kodun Sayfası





25 Temmuz 2013 Perşembe

C# : Formlar Arasında İşlem Yapma


          Bazı durumlarda bir form üzerinde elde ettiğimiz verileri başka bir form üzerinde kullanmak zorunda kalabiliriz. Bunu bir örnek üzerinde göstermek daha iyi olacaktır. Bunun için Form1 ve Form2 olarak iki tane form kullanacağız ve bunları aşağıdaki şekilde tasarlayalım. Amacımız Form1 üzerindeki textbox'a yazdığımız değeri diğer formda göreceğiz.


          Tasarım aşamasında verileri çekeceğimiz nesnenin properties penceresi üzerinden belirli özelliklerini ayarlamamız gerekiyor. Bunun için Modifiers özelliğini kullanacağız. Başka formlar üzerinde işlem yapabilmemiz için o nesnenin Private olan Modifiers özelliğini Public yapmalıyız.


          Formlar arasında işlem yapabilmemiz için modifiers özelliğini public yaptığımıza ve Form2 üzerinde işlem yapacağımız için Form2'yi Form1 üzerinde aşağıdaki şekilde tanımlamaya dikkat etmeliyiz.


          Yukarıdaki şekilde tanımlama yaptıktan sonra goster komutunu yazdıktan sonra nokta koyduktan sonra veri aktaracağımız nesnenin adının gelmesi gerek. Bu nesneyi seçip istediğimiz özelliğini değiştirebiliriz.

          Kodun tamamını bakarak ne yaptığımıza göz atabiliriz. Form1 üzerinde yer alan gönder butonuna olayımızı atadık.


          Form üzerinde yaptığımız işlemi de ekran görüntüsünü aldığımız örnek üzerinde görebiliriz.


23 Temmuz 2013 Salı

C# : Access'ten ComboBox'a Veri Çekme

          Projelerimizde kimi zaman kullandığımız nesnelere veri tabanımızdan veri çekme gereği duyarız. Bu veri çekme işlemini iki şekilde yapabiliriz. Bunlardan birincisi kod ile ikincisi ise manuel bir şekilde nesnelerin özelliklerini kullanarak tasarım aşamasındayken. Biz burada SQL ve C# kodlarını kullanarak yapacağız. ComboBox'a access üzerinden nasıl veri çekeceğimizi adım adım göstereceğiz.

1. Öncelikle veri çekeceğimiz veri tabanının yüklü olması gerekmektedir. Yüklü değilse bunu yükleyeceğiz. Bu yükleme işlemini tıklayarak buradaki gibi adım adım yapacağız.

2. Access'ten veri çekebilmemiz ve access veri tabanı işlemleri için Data ve Data.OleDb sınıflarını projemize eklemek zorundayız.


3. Eklediğimiz access veri tabanı ile projemiz arasında bağlantı kurmamız gerekiyor. Bunun için OleDbConnection bağlantı nesnesini kullanacağız.

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" yolu mdb ve accdb uzantılı access dosyalarında farklılık göstermektedir. Bunu Server Explorer penceresine tıklayıp Properties penceresinde Connection String alanından bakarak kullanacağımız yolu bulabiliriz. Adres uzantısını Application.Startup kod parçacığı ile değiştirirsek veri tabanımız verileri projemizdeki ekli olan kaynaktan alacaktır.

4.  SQL sıralama sorgusunu kullanıyoruz.

5.
          Bu kod parçası ile urun_kayit tablosundaki tüm verileri listeliyoruz. Listeleme işlemi olduğu için OleDbCommand ' ın  ExecuteReader özelliğini kullanıyoruz. Okuma işleminden sonra ComboBox'a verilerin okutulması için data değişkenine atıyoruz.

6. data değişkenimize aktarılan verileri veriler okunana kadar istenilen işlemin yapılması için while döngüsünü kullanıyoruz. SQL sorgumuzda urun_kayit ' taki tüm verileri okutmuştuk. Aşağıdaki şekilde data değişkeni üzerinde sadece urun_adi sütunundaki verileri alması için bunu köşeli parantez içinde belirtmemiz gerekmektedir.

Kodun Tamamı


Basic : "Shell" Application


          Shell komutu ile işletim sistemi içindeki çeşitli uygulamaları çalıştırabilirsiniz. Burada sistem içinde çalıştıracağınız uygulamanın sistem içindeki adını bilmek. Mesela Paint için bu ad mspaint tir.

Örnek Uygulama:





Pascal Dilinde Mastermind Oyunu Yazımı


Kod Açıklaması:


Oyunun ayarlarının yapılması için oyuncudan sayının kaç basamaklı olmasını istediğini,  sayıların maksimum değerlerini ve kaç tahmin hakkının olmasını istediğini girmesini istiyoruz. Daha sonra bilgisayar rastgele,  seçilen kez, seçilen aralıkta sayıları seçiyor ve oyun başlıyor. Bilgisayar for döngüsü içerisinde sayıları rastgele atadıktan sonra oyuncudan tekrar for döngüsü içerisinde sayıların girilmesi isteniyor.  Oyuncunu girdiği sayı verilen aralıkların dışındaysa eğer program yanlış giriş yaptığını söylüyor ve tekrar o basamağı girmesini istiyor. Oyuncu sayıları girdikten sonra bilgisayar sayıyı kontrol etmeye başlıyor. Oyunda ‘k’ değişkeni yeri  doğru bilinen sayının sayısını , ‘ t’ değişkeni ise sayının  içinde olan fakat yeri yanlış olan sayının sayısını temsil ediyor. Bu kontrolleri oyuncunun girdiği tahmin sayıları sınırlarında yapıyor. Eğer oyuncunun girdiği tahmin sayısına gelinirse , girilen sayı da doğru değilse, oyunun kaybedildiği ve doğru sayı ekrana yazdırılıyor. Girilen tahmin sayısı içinde oyuncu sayının tamamını doğru bilirse oyuncunun oyunu kazandığı ekrana yazdırılır ve oyun bitirilir. 

Oyunun Kaynak Kodu:


Oyunun Ekran Çıktıları:








20 Temmuz 2013 Cumartesi

C# : Form Üzerine Windows Media Player'ı Eklemek


            Form üzerinde hazırladığımız projelerde video oynatma gibi ihtiyaçlar duyabiliriz. Bunun için Visual Studio üzerinden Windows'un Media Player eklentisini ekleyebiliriz.

            Menülerin olduğu araç çubuğunda yer alan "Tools"a gelinir ve açılan bölümlerden "Choose Toolbox Items"a tıklanır.


            Açılan pencereden "COM Components" sekmesine tıklanır. Ardından da "Windows Media Player" seçeneğini seçili hale getiririz. OK tuşuna bastıktan sonra Windows Media Player, Toolbox penceresinde yerini alacak.


            Eklediğimiz windows media player üzerinde video açmak için URL özelliğini kullanacağız. Aşağıdaki gibi bilgisayarımızın üzerinde kullanacağımız videonun bulunduğu adresi formun açıldığı anda başlamasını sağlamak için formun load olayına eklentinin URL özelliği üzerine yazıyoruz.


          Projelerimizi setup haline getirip başka bilgisayarlarda çalıştırma ihtimalini düşündüğümüzde videonuz sizin bilgisayarınızdaki URL'yi bulamayacağı için açılmayacaktır. O yüzden projelerde kullanacağımız dosyaları Debug dosyası içinde tutmamız daha güvenli olacaktır. Bunun için de Application.StartupPath komutu ile programın yüklü olduğu adresin uzantısını otomatik alacaktır. Kodumuzu da aşağıdaki şekilde düzenleyebiliriz.


Excel : Veri Doğrulama (Data Validation) Komutu


          Excel genelde kayıt listelerinin tutulmasında, belli başlı hesaplamaların yapılmasında, grafiklerin oluşturulmasında tercih edilen bir office uygulamasıdır. Verilerin doğru bir şekilde girilmesi önemlidir. Kullanıcıdan belli sayı, tarih, saat aralıklarında değerler; belli bir karakter uzunluğu gibi veriler istenebilir. Bunu  "Veri" sekmesinde yer alan veri doğrulama komutu ile yapabiliriz.


          Excel üzerinde veri girişinde bazı hatalı, eksik verilerin girilmesi bizlere sorun yaratabilir. Bu sorunu engellemek için kullanıcı, hücreye veri girmek için tıkladığı anda bir girdi mesajı verilerek nasıl bir veri girmesi gerektiği konusunda bilgilendirilebilir. Kullanıcı, hatalı bir giriş yaptığında nasıl bir hatalı mesaj ile  bize geri döneceğini belirtebiliriz.

          Veri doğrulama komutuna bastığımız anda bizi aşağıdaki gibi bir ekran karşılar.


          Ayarlar sekmesi ile girilecek verinin sayı mı yoksa metin mi olacağını, sayı ise ondalık mı ya da başka bir türde mi olduğunu, sayı aralığını belirleyebiliriz. Tarih ve saat girişi yapılacaksa belli bir tarih ya da saat aralığı verebiliriz. Liste seçeneği ile de hücreye gelindiği zaman bizim belirlediğimiz değerleri seçebilmesini sağlayabiliriz.


          Girdi iletisi ile kullanıcıyı hücreye gireceği değer konusunda bilgilendirmek amacı güdülmüştür.


          Hata uyarısı ile de hücreye istenilenin dışında bir ver girişi yapıldıysa belirtilen 3 mesaj stilinden seçilen bir tanesi ile hata mesajı verilmesi sağlanabilir.

18 Temmuz 2013 Perşembe

C# : Metot Kullanarak Toplam Sembolü Sorusu Çözme


          Kod yazdığımız zamanlarda bazı işlemleri defalarca kullanabiliriz. Bu işlemlerin kodlarını defalarca kullanmak kod kalabalığına ve programın çalışmasında kasmalara neden olabilir. Bu gibi durumları önlemek için metotların kullanılması daha faydalı olacaktır.

          Karşımıza bize bir değer döndüren metotlarla herhangi bir değer döndürmeyip sadece kendisinden istenilen olayları yerine getiren metotlar vardır. Bunu aşağıdaki örneğimizde net bir şekilde göreceksiniz.

         Öncelikle aşağıda belirtilen şekilde formumuzu tasarlayalım.


          Sonuç textboxının sadece değeri göstermesini sağlamak için sonuç textboxının Properties penceresinden ReadOnly özelliğini True yapıyoruz.

          Toplam sembolü ile yapılan işlemi islem adını verdiğimiz methotla yaptırıyoruz. Sayısal bir işlem olduğu için işlemimi sayısal türden yani int olarak tanımlıyorum. Metotun bize döndüreceği değeri de return ile belirtiyoruz. Dışarıdan metot içindeki işleme katacağım değeri ve veri türünü metot isminin yanına parantez içinde belirtiyoruz. 

          islem metodu öncelikle sayısal türde sonuc değişkeni oluşturmaktadır. ardından for döngüsü ile 1'den başlayıp bitiş değerine eşit olana kadar toplam sembolünde her bir değer için istenen işlemi yapıyor bunları sonuc değişkenine ekliyoruz. İşlem tamamlandığında da metot bize bitis değerini döndürmektedir.


          Metotların her zaman bir değer döndüren işlemlerde kullanılması şart değildir. Bunun için işlemin bize nasıl bir değer döndüreceğini bilmediğimiz için yazdir metodumuzu void türünde tanımlıyoruz. Diğer metottan farklı olarak return değerini de kullanmıyoruz.

   

          Hazırladığımız metotların kullanım şeklini static, public, private ile belirliyoruz. Bunlar hakkında bilgi verecek olursak;

  Static: Dışarıdan herhangi bir nesneyi kullanmadan sadece static olarak belirlenen o metot içindeki belirlenen değişkenleri katarak işlemini tamamlayan yerel metotlardır. Bu tür metotların yazımı sırasında form üzerine eklediğimiz textbox, label gibi nesneleri işleme katan bir kod yazamayız. Her şey değişkenler üzerine kuruludur. Metodun kullanımı aşamasında dışarıdan alacağı değeri, metot ismini verirken parantez içinde belirtiriz. Static türü kısaca bir olayın çıkardığımız algoritmasına benzetebiliriz. Adım adım yapacağımız işlemleri belirtiriz. Static türdeki metotları yalnızca hazırladığımız projedeki kod yazdığımız formun kod sayfasında kullanabiliriz.

  Public: Hazırladığımız metodu kod sayfasında başka bir blok üzerinde ya da  başka bir projede kullanabilmek için kullanılan bir türdür.

  Private: Public'in aksine sadece geçerli olan kod sayfasında kullanılmak üzere hazırlanmış metotlar için kullanılır. Buna form üzerinde kullandığımız bir çok nesnenin özelliklerine olay yazmak için kullandığımız kod bloklarını örnek verebiliriz. Butonun click olayı gibi.

Metodun Kullanımı


          Metotların en anlaşılır kullanılır şekli yazdır metodunun içinde kullandığımız islem metodunun kullanım şekli gibidir. Dikkat edilmesi gereken önemli şeyler;

  • Metot dışarıdan bir değil de birden fazla değer alabilir. Bu sayıya dikkat edilip eksik yazılmamalıdır.
  • Metot dışarıdan bir değil de birden fazla değer alınıyorsa metodun yazım aşamasındaki yazdığımız sıraya dikkat etmeliyiz.
          Yukarıdaki kodda belirtildiği üzere textbox içine yazdığımız bitiş değerini sayısal olarak tanımladığımız sayi değişkeninde kullanmak üzere sayısal  veri türüne çeviriyoruz.


          Girilen bitiş değeri 1'den büyükse ve boş değilse çağırdığımız metot çalışmaktadır. Biz bu projede iç içe bir metot kullandık. yazdır metodunun dışarıdan sayısal bir değer alacağını belirtmiştik.Bunun için dışarıdan sayısal bir sonuç değeri döndüren islem metodunu kullanıyoruz. islem metodu da toplam sembolünün dışarıdan aldığı değere göre sonuç döndürüyordu. Bu bitiş değerimizi de sayi değişkenine atadığımız için bunu kullanıyoruz. Sonuç olarak da yazdir işleminin sonuç textboxına değeri yazdırıyoruz.

Kodun Tamamı