25 Şubat 2019 Pazartesi

C# DERS-2

Variables(Değişkenler)

Kullandığımız bütün programlar RAM(Bellek) üzerinde çalışmaktadır. Program içerisindeki kullanılan veriler genelde bellek üzerinde bir değişken ile geçici olarak saklanır. Veri kalıcı hale getirilmek istenirse bir veri tabanına kaydedilir.Veri tiplerinin bazı örnekleri aşağıda verilmiştir.

 Değişken tipi Değişken adı = Değişken değeri şeklinde değişken oluşturabiliriz

Sayısal Veri Tipleri(Tam Sayılar)
  • byte : Bellekte kapladığı boyut = 1 byte, Min/Max aralığı = 0 / 255
  • sbyte : Boyut = 1 byte, Min/Max aralığı = -128  / 127
  • short : Boyut = 2 byte, Min/Max aralığı = -32.768 / 32.767
  • ushort : Boyut = 2 byte, Min/Max aralığı = 0 / 65.535
  • int : Boyut = 4 byte, Min/Max aralığı = -2.147.483.648 / 2.147.483.647
  • uint : Boyut = 4 byte, Min/Max aralığı = 0 / 4.294.967.295
  • long : Boyut = 8 byte, Min/Max aralığı = -9.223.372.036.854.775.808 / 9.223.372.036.854.775.807
  • ulong : Boyut = 8 byte, Min/Max aralığı = 0 / 18.446.744.073.709.551.615
Bu bilgiler örnek olması açısından verilmiştir.Sınır değer testleri, normalizasyon, vb testler yapmayanlar için genelde bu bilgiler pek önem arz etmez. Bu kısımdan sonra adı geçen veri tipleri için de bu bilgilere ihtiyaç duyanlar pek çok kaynaktan yararlanabilirler.Araştırmanıza rağmen bu bilgilere ulaşamadıysanız veya başka sorunuz varsa mail gönderebilirsiniz.

Sayısal Ondalık Veri Tipleri(Kesirli/Virgüllü Sayılar)
Bu veri tipleri: float, double ve decimal olmak üzere 3 adettir.

Mantıksal Veri Tipi
Tek bir tane mantıksal veri tipi bulunmakta olup "bool" olarak adlandırılmaktadır. Sadece true(doğru) yada false(yanlış) değerlerini alabilmektedir.

Tarihsel Veri Tipi
Tarihsel işlemlerde kullandığımız bu veri tipinin adı "DateTime" dır. 01.01.0001 / 31.12.9999 aralığında değerler alabilir.

 Sayısal Olmayan Veri Tipleri(Metinsel)
Genellikle harflerden oluşan/metinsel verileri kullanabilmek için oluşturulan değişkenlerdir. Eğer veri tek bir karakterden oluşuyorsa "char" , tek bir karakter veya daha fazla karakterden oluşuyorsa "string" olarak adlandırılan değişkenleri kullanabiliriz.

Şimdi değişkenlerle ilgili yazım örnekleri vererek devam edebiliriz.

byte sayi1=251;
int sayi2 = 20984;
int sayi3 = 56987 , sayi4 = 302 ;
float sayi5 = 54,6 ;
double sayi6 = 96,45 , sayi7 = 0,71 ;
decimal sayi8 = 986,41 ;
char harf1 = 'a' , harf2 = 'A' , harf3 = 'a' ;
string metin1 = "Merhaba Dünya" ;
string metin2 =" ";
string metin3 ;
metin3 = "Degerini Sonra da Belirleyebiliriz." ;
bool kontrol = false ;

Değişken Adlandırma Kuralları
  • C# büyük/küçük harf duyarlıdır. Değişken adı tanımlanırken ad ve Ad farklıdır.
  • Değişken adındaki ilk karakter mutlaka harf olmalıdır. 2.isim yerine isim2 olamalıdır.
  • C# da kullanılan anahtar kelimeler değişken adı olamaz. (int, float, double , bool, vb.)
  • Değişken adında boşluk olamaz.
  • Özel karakter içeremez. (+ , - , / , * , ? , vb.)
  • Türkçe harfler içeremez. (ç,s,ı,İ,ö,ü,ğ)
  • Değişken adı 255 karakterden kısa olmalıdır.

9 Şubat 2019 Cumartesi

C# DERS-1

C# Nedir?

Adı C ve C++ dilinden gelir. C dilinde bir sayı değişkenin değerini 1 artırmak için “++” operatörü kullanılır. Bu yüzden C dilinden sonra geliştirilen ve Nesne Yönelimli özellikleri taşıyan yeni dil için, C 'nin bir fazlası anlamında C++ adı kullanılmıştır. C++'tan sonra geliştirilen C# dili ise adını; ((C++)++) ifadesinde artı işaretlerinin bir araya gelmesinden alır. Bu dili tasarlayan Anders Hejlsberg ve ekibi yaygın ve beğenilen bir dil olan Java 'nın söz dizimini temel almıştır.

C# dili derleyen bir kaç IDE (Integreted Development Enviroment/Tümleşik Geliştirme Ortamı) olsa da(Örnek IDE 'ler: SharpDevelop, Emacs, Notepad++, ...) en çok kullanılanı, benimde tavsiyem "Visual Studio Community" versiyonu olacaktır.Visual Studio kurulumunda kişiye özgü özelleştirme seçenekleri çok fazla olduğu için herkesin yüklerken seçtiği eklentiler de farklı olacaktır.Eğer ilk defa bir yazılım dili öğreniyor ve bir IDE kurulumu yapıyorsanız Visual Studio kurulumu için ayrı bir video izlemenizi tavsiye ederim.(Visual Studio İndirme Linki: visualstudio.microsoft.com/downloads/ )

Kurulumu yaptığınızı varsayarak dersimize devam ediyoruz.Visual  Studio 'da yeni bir proje açmak için sol üst köşeden "File/New/Project..." seçeneklerine tıklayıp yeni proje açma penceresine ulaşabilirsiniz. Ama ben "Ctrl+Shift+N" kısayolunu kullanmanızı tavsiye ederim C# ile yazarken hızlanmak, vakit kazanmak için bol bol kısayolları kullanmamız gerekiyor, elinizin alışması için en baştan kısayolları kullanmak çok faydanıza olacaktır.
Görsel 1.1 - Yeni Proje Oluşturma Ekranı
  1. Visual Studio için çok fazla özelleştirme seçeneği olduğunu söylemiştim.Şekilde gördüğünüz gibi Visual C# seçiyoruz.
  2. Projenize göre seçiminizin değişkenlik göstereceği bir diğer seçim kısmı da bu menü, ancak biz Visual C# için temel olan "Windows Form Application" seçerek dersimize devam ediyoruz.
  3. Projenize vermek istediğimiz ismi buraya yazıyoruz.
  4. Ekran fotoğrafında 4 olmadığını bende yazmaya başladığımda fark ettim. Böyle kalmasında bir sakınca yok, görüp hatırladıkça güleriz😂
  5. Projenizin dosyalarının kaydedileceği dosya konumu.(Projeleriniz için Visual Studio otomatik bir kayıt yeri belirleyecektir, dilerseniz o şekilde kullanabilirsiniz.Belirli bir süre sonra çok fazla proje olacağından karıştırmamak için projelerinizi ya çok güzel isimlendirmeniz lazım yada çok güzel klasörlemeniz. İkisini birden yaparsanız daha güzel.)
  6. İleri derslerde anlatacağımız bir kısım.Değiştirmemize gerek yok, proje ismi ile aynı kalabilir.
  7. OK butonuna tıklayıp ilk projemizi oluşturabiliriz.

8 Şubat 2019 Cuma

APP INVENTOR DERS-6

SPINNER VE NOTIFIER KULLANIMI

Bu projemizde ListView ve PasswordTextBox 'da kullanıyoruz.ListView, işlevi ListPicker ile aynı görüntüleri farklı.PasswordTextBox 'ın normal olandan tek farkı, yazdıklarınızın yıldız/küçük yuvarlaklar olarak gözükmesi.
Bu dersimizde bir hastane randevu alma uygulaması yapmaya çalışıyoruz.
Screen1 Bileşenleri
Bileşenlerimizi isimlendirerek başlıyoruz.
  • TextBox1 = txtKullaniciAdi , Hint özelliği: Kullanıcı Adı Giriniz
  • PasswordTextBox1 = pas_txtSifre , Hint özelliği: Şifre Giriniz
  • Button1 = btnGirisYap , Text özelliği: Giriş Yap
Ekran2 Bileşenleri
  • Spinner1 = spnBolumAdlari , ElementFromString: "Genel Cerrahi, İç Hastalıkları, Nöroloji"
  • ListView1 = lstGenelCerrahi ,Visible = False, ElementFromString: "Dr. Ayşe Budak, Dr. Hüseyin Yıldırım, Doç. Dr. Sabi Kalpli" (İsimler hayal ürünüdür)
  • ListView2 = lstIcHastaliklari ,Visible = False, ElementFromString: "Dr. Melek Kaya, Doç. Dr. Zeynep Yıldırım, Prof. Dr. Haki Bıyıklı"(İsimler hayal ürünüdür)
  • TimePicker1 = tmpRandevuSaati , Text: "Randevu Saatini Belirlemek İçin Tıklayın"
  • Button1 = btnTamamla , Text: "İşlemi Tamamla"
  • Label1 = lblSonucYaz , Text: " "
  • Notifier1 = ntfUyarici
  1. ListPicker kullanımını anlatmıştık, aynı şekilde Spinner içerisinde yer almasını istediklerimizi arasına virgül koyarak yazıyoruz.
  2. Bu metin kutusuna liste açıldığında başlık(title) olarak ne yazmasını istiyorsanız yazabilirsiniz."Randevu almak istediğiniz bölümü seçiniz"
  3. Ekrana sürüklediğiniz Notifier 'in ekranda görünmediğini farketmişsinizdir. Bu ve benzeri bileşenler burada Non-visible components(görünmez bileşenler) kısmında yer alır.
  1. "btnGirisYap" a tıklandığında,
  2. Eğer,
  3. Kullanıcı "pas_txtSifre" içerisine "admin123" , 
  4. Ve, 
  5. "txtKullaniciAdi" içerisine de "KodMaceralarim" yazdıysa, (kayıt ol/giriş yap projemizde ki kodları kullanabiliriz ama basit tutmak açısından bu şekilde kodluyoruz.)
  6. Ekran2 'yi aç
Ekran2 ye geçildiğinde ilk yapılacak olan "spnBolumAdlari" içerisinden randevu alacağımız bölümü seçmek
  1. Kullanıcı bölüm seçtiğinde veriyi tutmak için değişken oluşturuyoruz.
  2. Kullanıcı "spnBolumAdlari" ndan seçim yaptıktan sonra çalışacak kodları bu blok içerisine yerleştiriyoruz.
  3. Kullanıcının yaptığı seçimi oluşturduğumuz değişkene atıyoruz.
  4. "get selection" kod bloğunu buradan alabilirsiniz.
  5. Eğer, "secilenBolum" = "Genel Cerrahi" ise
  6. Genel Cerrahi doktorlarının yer aldığı "lstGenelCerrahi" nin visible özelliğini true yap(Böylece kullanıcımız istediği doktoru seçerek devam edebilir.)
  7. Eğer, "secilenBolum" = "İç Hastalıkları" ise
  8. "lstIcHastaliklari".Visible = true
  9. Eğer "secilenBolum" = "Nöroloji" ise
  10. "lblSonucYaz".Text = "Nöroloji bölümünü hizmete açmak için çalışmalarımız devam ediyor" olarak set et.
  11. ve 12. bloklar :Eğer kullanıcı ikinci kez randevu almak isterse diye listelerin visible özelliklerini false yapıyoruz.Blokları silerek aradaki farkı görebilirsiniz.
Randevu almak istediğimiz bölümü seçtiğimize göre sıra, hangi doktora muayene olmak istediğimizi seçiyoruz.
  1. "lstGenelCerrahi" listesinden seçim yapıldıktan sonra,
  2. Kullanıcı 1 'den fazla randevu aldığında yazılar üst üste binmesin diye sıfırlıyoruz, bu kod bloklarını silip neden ihtiyaç duyduğumuzu daha net görebilirsiniz.
  3. Bölüm ve doktor seçimi yapmadan "btnTamamla" ya tıklanamasın diye visible = false yapıyoruz.
  4. Pek çok yazılım dilinde görebileceğiniz bu kod, bir alt satıra  inmeyi sağlar.
  5. Kullanıcının seçtiği doktor adını oluşturduğumuz mesaja yerleştiriyoruz.
  6. Bölüm ve doktor seçimi tamamlandığına göre "btnTamamla".Visible = true olarak set edebiliriz.(Aynı bloğu "lstIcHastaliklari" için de yapıyoruz.)
  1. "btnTamamla".Click altındaki if kontrolünde kullanmak için "sayac" adında değişken oluşturuyoruz.
  2. "tmpRandevuSaati" kullanılarak randevu saati seçildiğinde sayacı 1 yap.
  3. "btnTamamla" ya tıklandığında,
  4. Eğer, "sayac" adındaki değişken 0 dan büyükse(yani randevu saati seçildiyse) 
  5. "lblSonucYaz".Text i şu şekilde set et: Doktor adı seçerken yazdırdıklarımız ("lstGenelCerrahi".AfterPicking veya "lstIcHastaliklari".AfterPicking den gelen kısım) + 
  6. "tmpRandevuSaati" kullanarak seçtiğimiz zamanın saat kısmı +
  7. "tmpRandevuSaati" kullanarak seçtiğimiz zamanın dakika kısmı
  8. "lblSonucYaz" a ekrana göstermek istediğimiz yazıları ekleme işlemini bitirdiğimize göre artık visible = true yapabiliriz.
  9. Else(başka) durumunda, yani if yanındaki şart sağlanmazsa aşağıdaki kodları çalıştır.("sayac" adındaki değişken 0 'dan büyük değilse, randevu saati seçilmemişse)
  10. "ntfUyarici" yi çağır(call).(Notifier için pek çok hazır kod bloğu seçeneği arasından bu proje için "ShowMessageDialog(Mesajı/diyaloğu göster)" seçildi. )
  11. "Randevu saati seçmeden kayıt tamamlanamaz" mesajını bir uyarı penceresi ile ekrana yaz.
  12. Uyarı penceresinin başlığında "Uyarı!" yaz.
Ekran2 kod bloklarının son hali


İYİ ÇALIŞMALAR

Son Eklenen

C# Ders-5

Döngüler(Loops) Döngüler, bir işlemin defalarca tekrarlanması gerekiyorsa, aynı kodu tekrar tekrar yazmaktan kurtulmamızı sağlar. Gerçekl...

Popüler Yayınlar