Aritmetik Operatörler, Math Sınıfı ve Program Akış Komutları
Aritmetik Operatörler Çarpma için * Bölme için / Kalanı bulmak için % Toplama ve çıkarma için +, - Tamsayı bölme işlemi sonucu yuvarlar. 7 / 5 sonuç olarak 1 verir. 7 % 5 sonuç olarak 2 verir. 2
Konsol Uygulaması Ornek Kullanıcıdan klavye yoluyla alacağı 2 sayının ortalamasını bularak ekrana yansıtacak bir C# konsol uygulaması yazınız.
Konsol Uygulaması Ornek Öncelikle ortalama işlemi için ne tip değişken tanımlanır onu düşünün?
Konsol Uygulaması Ornek Console.WriteLine("lütfen bir sayı giriniz"); double a = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("lütfen bir sayı daha giriniz"); double b = Convert.ToDouble(Console.ReadLine()); double c = (a + b)/2; Console.WriteLine("girilen iki sayının ortalaması = " +c); Console.ReadLine();
Hesap Makinesi -Uygulama 4 işlemin (+, -, /, *) gerçekleştirildiği bir hesap makinesi uygulaması yapalım. Form üzerine 3 adet label, 3 textbox ve 5 buton ekleyelim
Hesap Makinesi -Uygulama Buton ve label üzerindeki yazıları şekildeki gibi değiştirelim.
Hesap Makinesi -Uygulama //TOPLAMA ISLEMI private void button1_click(object sender, EventArgs e) double sayi1 = Convert.ToDouble(textBox1.Text); double sayi2 = Convert.ToDouble(textBox2.Text); double toplam = sayi1 + sayi2; textbox3.text = toplam.tostring() ; // CİKARMA ISLEMI private void button2_click(object sender, EventArgs e) double sayi1 = Convert.ToDouble(textBox1.Text); double sayi2 = Convert.ToDouble(textBox2.Text); double fark = sayi1 - sayi2; textbox3.text = fark.tostring();
Hesap Makinesi -Uygulama // CARPMA ISLEMI private void button3_click(object sender, EventArgs e) double sayi1 = Convert.ToDouble(textBox1.Text); double sayi2 = Convert.ToDouble(textBox2.Text); double carp = sayi1 * sayi2; textbox3.text = carp.tostring(); //BOLME ISLEMI private void button4_click(object sender, EventArgs e) double sayi1 = Convert.ToDouble(textBox1.Text); double sayi2 = Convert.ToDouble(textBox2.Text); double bol = sayi1 / sayi2; textbox3.text = bol.tostring();
Hesap Makinesi -Uygulama //TEMIZLEME ISLEMI private void button5_click(object sender, EventArgs e) textbox1.text = ""; textbox2.text = ""; textbox3.text = "";
C# da MATH sınıfı C# da Math Sınıfını ve metotlarını kullanarak bazı matematiksel işlemleri kısayoldan yapabilirsiniz. System.Math şeklinde çağrılır.
Abs(x) Bir sayının mutlak değerini tutar. Cos(x) Bir sayının kosinüsünü tutar. Sin(x) Bir sayının sinüsünü tutar. Tan(x) Bir sayının tanjantını tutar. Ceiling(x) x sayısından büyük en küçük tam sayıyı tutar (yukarı yuvarlama). Floor(x) x sayısından küçük en büyük tam sayıyı tutar (aşağı yuvarlama). Max(x,y) x ve y sayılarının en büyüğünü tutar. Min(x,y) x ve y sayılarının en küçüğünü tutar. Pow(x,y) x üzeri y yi tutar. Sqrt(x) x in karekökünü tutar. Log(x) x sayısının e tabanında logaritmasını tutar. Exp(x) e üzeri x in değerini tutar. Log10(x) x sayısının 10 tabanındaki logaritmasını tutar.
C# da Math sınıfı uygulaması Yeni bir proje başlatılım ve formumuzun üzerine 1 button ve bir listbox ekleyelim
C# da Math sınıfı uygulaması Butonun click olayına aşağıdaki kodları yazalım ve ne olacağını yorumlayalım private void button1_click(object sender, EventArgs e) listbox1.items.add(math.pi); listbox1.items.add(math.abs(-10.2)); listbox1.items.add(math.cos(30* (Math.PI/180) )); listbox1.items.add(math.sin(30 * (Math.PI / 180))); listbox1.items.add(math.max(-12,-0.0025)); listbox1.items.add(math.round(3.2)); listbox1.items.add(math.round(3.7)); listbox1.items.add(math.ceiling(3.2)); listbox1.items.add(math.ceiling (-3.2)); listbox1.items.add(math.floor(3.2)); listbox1.items.add(math.floor (-3.2));
Atama ifadesi A = B ne demek? A = B icra edildiği anda A ile B yi yer değiştirmek istersek? C = A A = B B = C icra edilir A -18.567 122.45 B -18.567 A -18.567 122.45 B -18.567 122.45 C 122.45?
Not: = ile diğer operatörler birleştirilebilir: a = a + b yerine a += b a = a / b yerine a /= b
C#.NET Program Akış Komutları Blok if switch... for while... do-while Akış komutları, programın istenilen satırlarının birden fazla defa çalıştırılması, belli bir koşula göre çalıştırılmasını ya da hiç çalıştırılmamasını sağlayan komutlardır.
ve arasındaki alana blok denir. Blok Blok içindeki değişkenlere yerel değişken denir. Yerel değişkenlere sadece tanımlandıkları blok içinden erişilebilir. Bloğun çalıştırılması bitince değişken de yok olur. private void btnhelloworld_click(object sender, EventArgs e) int x, y, z; x = 4; y = 3; z = (int)math.sqrt(x * x + y * y); int i = 12; MessageBox.Show("blok içinden,z=" + z.tostring()); MessageBox.Show("blok içinden i=" + i.tostring()); MessageBox.Show("blok dışı, z=" + z.tostring()); MessageBox.Show("blok dışı, i=" + i.tostring());! Hata
Bir koşula göre programın akışını değiştirir. if komutu int ilksayi, ikincisayi; ilksayi = 10; ikincisayi = 7; if (ilksayi > ikincisayi) MessageBox.Show("ilk sayı büyüktür"); else MessageBox.Show("ilk sayı büyük DEĞİLDİR"); Karşılaştırma Operatörleri: >, <, >=, <= BÜYÜK/KÜÇÜK MÜ? == EŞİT Mİ?!= FARKLI MI? Mantıksal Operatörler: && VE VEYA! DEĞİLDİR
if komutu if() içine sonucu doğru (true) ya da yanlış (false) olabilecek bir deyim gelmelidir. int ilksayi, ikincisayi; ilksayi = 10; ikincisayi = 7; bool sonuc = false; sonuc = (ilksayi > ikincisayi); if (sonuc) MessageBox.Show("ilk sayı büyüktür"); else MessageBox.Show("ilk sayı büyük DEĞİLDİR");
if komutu Örnek int ilksayi, ikincisayi; ilksayi = Convert.ToInt32(txtSayi1.Text); // mesela 4 ikincisayi = Convert.ToInt32(txtSayi2.Text); // mesela 3 if (ilksayi > ikincisayi && (ilksayi % 2) == 0) MessageBox.Show( İlk sayıyı hem büyüktür hem de çifttir"); else MessageBox.Show("ilk sayı ya büyük değil ya da çift değil!");
if komutu İç içe else if blokları yazılabilir int ilksayi, ikincisayi; ilksayi = 7; ikincisayi = 7; if (ilksayi>ikincisayi) MessageBox.Show("ilk sayı büyüktür"); else if( ilksayi==ikincisayi) // iki tane = sembolü kullanılır MessageBox.Show("ilk sayı ikinci sayıya EŞİTTİR"); else if (ilksayi < ikincisayi) MessageBox.Show("ilk sayı ikinci sayıdan KÜÇÜK"); else MessageBox.Show("ilk ve ikinci sayıları karşılaştıramadım");
if komutu Dışarıdan Girilen 0-100 arasındaki nota göre geçip kalmayı belirleyiniz. 60 üzeri geçer.
if komutu private void button1_click(object sender, EventArgs e) int sonuc = Convert.ToInt32(textBox1.Text); if ((sonuc > 100) (sonuc < 0) ) MessageBox.Show("Yanlış Not Girdiniz"); else if (sonuc > 60) MessageBox.Show("Geçtiniz"); else MessageBox.Show("KALDINIZ!!!");
Belirli değerler karşılaştırma yapar. switch komutu int ayno; string ayadi; ayno=3; //Mart switch(ayno) Switch den sonra normal parantezler () olmalı Hemen altta select bloğu oluşturulmalı case 1: Bu bloğun içine case ler yazılmalı ayadi="ocak"; case lerin yanına değerler yazılmalı ve : olmalı break; Bir sonraki case den önce break; yazılmalı case 2: default kısmı isteğe bağlıdır, olmayabilir. ayadi="şubat"; break; case 3: ayadi="mart"; break; //... default: // default kısmı kullanılmayabilir ayadi="belirsiz"; break;
switch komutu Switch ve string değişken örneği string ayadi; ayadi = txtayadı.text; // mesela Nisan switch(ayadi) case Ocak : MessageBox.Show( Sizin burcunuz balık ); break; case Mart : MessageBox.Show( Sizin burcunuz kova ); break; case Temmuz : MessageBox.Show( Sizin burcunuz aslan ); break; //... default: MessageBox.Show( Sizin burcunuz yok ); break;
switch komutu Switch ve string değişken örneği daha iyi string örnek ayadi,! burcadi; ayadi = txtayadı.text; // mesela Nisan switch(ayadi) case Ocak : burcadi = balık ; break; case Mart : burcadi = kova ; break; case Temmuz : burcadi = aslan ; break; //... default: burcadi = yok ); break; MessageBox.Show( Sizin burcunuz & burcadi);
for döngüsü Belirli bir kod bloğunu, önceden bilinen sayıda tekrar çalıştırmaya yarar for (sayaç_değeri; döngü_koşulu; sayaç_değişimi) deyimler; int toplam,counter = 0; toplam = 0; for (counter = 1; counter <= 6; counter++) toplam = toplam + counter; MessageBox.Show(toplam.ToString()); * counter++ deyimi, counter=counter+1 demektir
for döngüsü Aşağıdaki basit programların ne yaptığını açıklayın!! int x = 0; for (int a = 1; a <= 10; a++) x = x + 1; this.text = x.tostring(); int x = 0, a, b; for (a = 1; a <= 10; a++) for (b = 1; b <= 5; b++) x = x + 1; this.text = x.tostring();
for döngüsü Aşağıdaki basit programların ne yaptığını açıklayın!! int x = 0; int y = 0, a, b; for (a = 1; a <= 10; a++) for (b = 1; b <= 5; b++) x = x + 1; y = y + x + a + b; this.text = x.tostring() + " " + y.tostring();
for döngüsü y=x^2 fonksiyonunun 1 ile 5 arasındaki integralini for döngüsü kullanarak hesaplayınız. clc;clear; artis_mik=0.01; toplam=0; for i=1:artis_mik:4.99 toplam=toplam+((i^2)+(i+artis_mik)^2)*artis _mik/2; end toplam
for döngüsü y=x^2 fonksiyonunun 1 ile 5 arasındaki integralini for döngüsü kullanarak hesaplayınız. double sonuc = 0; double i = 0; for (i = 1; i <= 4.99; i += 0.01) sonuc = sonuc + ((Math.Pow(i, 2) + Math.Pow((i + 0.01), 2)) * 0.01) / 2; this.text = sonuc.tostring();
break ve continue komutları for döngüsü break, for döngüsünden döngü bitmeden çıkmaya yarar (çıkar) continue, for döngüsünün içinde komutları çalıştırmadan sayacı bir artırır (atlar) int carpim, counter; carpim = 1; for (counter = 1; counter <= 12; counter++) carpim = carpim * counter; if (carpim > 100000) carpim = 100000; break; MessageBox.Show(carpim.ToString());
for döngüsü Form üzerine 1 buton ve 1 textbox ekleyelim. Aşağıdaki 2 kod arasındaki fark nedir. private void button1_click(object sender, EventArgs e) textbox1.text = ""; for (int i = 0; i < 10; i++) textbox1.text += i.tostring()+" "; private void button1_click(object sender, EventArgs e) textbox1.text = ""; for (int i = 0; i < 10; i++) textbox1.text += i.tostring()+" "; if (i == 7) textbox1.text += " yedi bulundu"; break;
for döngüsü continue int carpim, counter; carpim = 1; for (counter = 0; counter <= 12; counter++) carpim = carpim * counter; if ((counter % 2) ==0) // counter çift sayı ise continue; // atla else // değilse, carpim = carpim * counter; // çarpmaya devam MessageBox.Show(carpim.ToString());
while döngüsü Bir ifade true değerini verdiği sürece istenilen deyimleri tekrar eder. while (true_yada_false_olabilecek_ifade). tekrarlanmasını istediğiniz deyimler;. int counter = 0; int toplam=0; while (counter < 10) toplam += counter; counter++; MessageBox.Show(toplam.ToString()); toplam += counter; deyimi toplam = toplam + counter; demektir * counter ı bir artırmazsanız (counter++), program sonsuz döngüye girer ve çakılır!
while döngüsü Hangi sayıya kadar olan tam sayıların toplamı 100 ü ilk gecer. int toplam = 0; int i = 1; while (toplam < 100) toplam += i; i++; i=i-1; MessageBox.Show(i.ToString ()+ "'e kadar olan sayıların toplamı 100'ü geçti " );
while döngüsü (Ödev4) Collatz Problemi Önce bir pozitif tamsayı seçin. Bu sayıya yapılacak işlem: Sayı tekse 3 katını alıp 1 ekleyin. Sayı çiftse 2'ye bölün. Aynı işleme çıkan sayıya uygulayın. En sonunda elde edeceğiniz sayı1'dir. Örneğin 8 sayısını ele alalım: 8-(2'ye böl)-4-(2'ye böl)-2-(2'ye böl)-1 5-(3 katını al 1 ekle)-16-8-4-2-1 Kullanıcıdan alınan sayının kaç adımda 1 e ulaştığını gösteren bir c# kodu yazınız. Programın arayüzü aşağıdaki gibi olacaktır.
while döngüsü (Ödev4)
do-while döngüsü Bir bloğun çalışması, sondaki ifade true değerini verdiği sürece tekrar eder. do tekrarlanmasını istediğiniz deyimler; while (true_false_olabilecek_ifade); int counter = 0; int toplam=0; do toplam += counter; counter++; while (counter<20); MessageBox.Show(toplam.ToString()); * counter ı bir artırmazsanız (counter++), program sonsuz döngüye girer ve çakılır!
do-while döngüsü İki kod arasındaki fark nedir? int a = 5; do a++; this.text = a.tostring(); while (a!= 5); MessageBox.Show("bitti"); int a = 5; while(a!=5) a++; this.text = a.tostring(); MessageBox.Show("BİTTİ"); Sonsuz döngü neden? While döngüsüne girmez neden?