Görsel C# ile Windows Programlama Güz 2009 (4. Hafta)
Kontrol Yapıları – Seçim Deyimleri if Deyimi Tek seçim if…else Deyimi Çift seçim switch Deyimi Birden fazla seçim
Kontrol Yapıları – Tekrarlama Deyimleri Döngüye-devam-koşulu doğru olduğu müddetçe belirli işlemleri tekrar eden yapılardır. while Deyimi for Deyimi foreach Deyimi
Sınıf Ortalamasını Hesaplayan Algoritma
GradeBook.cs (1 of 3)
GradeBook.cs (2 of 3)
GradeBook.cs (3 of 3)
GradeBookTest.cs int veri tipli bir değişken içinde saklanan ortalama !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Bitiş-değer Kontrollü Döngüler (Sentinel-controlled)
GradeBook.cs (1 of 3)
GradeBook.cs (2 of 3)
Calculate average grade using (double) to perform explicit conversion GradeBook.cs (3 of 3) Calculate average grade using (double) to perform explicit conversion Display average grade Display “No grades were entered” message
Ondalıklı Sayıları Formatlı Yazdırma double number = 3.1234; System.Console.WriteLine(“OUTPUT: {0:F3}”, number); OUTPUT: 3.123
GradeBookTest.cs
Bileşik Atama Deyimleri BİLEŞİK ATAMA OPERATÖRÜ KULLANIM AÇIK FORM += c += 7 c = c + 7 -= d -= 4 d = d - 4 *= e *= 5 e = e * 5 /= f /= 3 f = f / 3 %= g %= 9 g = g % 9
Artırma ve Azaltma Operatörleri ++ Artırma Operatörü (increment) -- Azaltma Operatörü (decrement) ++a Önce artır (Pre-increment) Operatörü (a değişkenini bir artır ve a değişkeninin yeni değerini kullan.) y=++x; ise x=x+1 ve sonra y=x a++ Sonra artır (Post-increment) Operatörü (a değiskeninin mevcut değerini kullan ve sonra değerini bir artır.) y=x++; ise y=x ve sonra x=x+1 --b Önce azalt (Pre-decrement) Operatörü b-- Sonra azalt (Post-decrement) Operatörü
4 Değişik 1 Artırma Deyimi a=a+1; ya da a+=1; a++; ++a;
Increment.cs
for Tekrarlama Deyimi for (initialization; loopContinuationCondition; increment ) statement; initialization; while (loopContinuationCondition ) { statement; increment; }
Control-variable name is counter Control-variable initial value is 1 ForCounter.cs Control-variable name is counter Control-variable initial value is 1 Condition tests for counter’s final value Increment for counter
For Döngüsü Örnekleri Vary control variable from 1 to 100 in increments of 1 for ( int i = 1; i <= 100; i++ ) Vary control variable from 100 to 1 in increments of –1 for ( int i = 100; i >= 1; i-- ) Vary control variable from 7 to 77 in increments of 7 for ( int i = 7; i <= 77; i += 7 ) Vary control variable from 20 to 2 in decrements of -2 for ( int i = 20; i >= 2; i -= 2 ) Vary control variable over the sequence: 2, 5, 8, 11, 14, 17, 20 for ( int i = 2; i <= 20; i += 3 ) Vary control variable over the sequence: 99, 88, 77, 66, 55, 44, 33, 22, 11, 0 for ( int i = 99; i >= 0; i -= 11 )
increment number by 2 each iteration Sum.cs increment number by 2 each iteration
Interest.cs (1 of 2) Second string is right justified and displayed with a field width of 20
Calculate amount with for statement Interest.cs (2 of 2) amount is displayed right justified in currency format
Çıktıyı Formatlama {1, 20} Alan genişliği virgülden sonra yazılır. Varsayılan (default) olarak sağa dayalıdır. Sola dayalı yapmak için - kullanılır.
break ve continue Deyimleri Döngü içlerinde programın akış kontrolünü değiştirmek için bu deyimleri kullanırız. “break” deyimi while, for veya switch yapılarının içinde kullanıldığında bu yapılar ani bir şekilde sonlandırılır. “continue” deyimi sadece for döngüsü içerisinde kullanıldığında bu deyimden sonra gelen komutlar atlanır ve döngü bir sonraki iterasyona başlar.
Exit for statement (break) when count equals 5 Loop 10 times BreakTest.cs Exit for statement (break) when count equals 5
Skip line 14 and proceed to line 9 when count equals 5 Loop 10 times ContinueTest.cs Skip line 14 and proceed to line 9 when count equals 5
switch Çoklu Seçim Deyimi Her case mutlaka bir break deyimi ile sonlanmalıdır. case lerden hiçbirinin işletilmediği durumları karşılamak üzere bir default durumu olmalıdır.
Variables to be incremented determined by the switch statement GradeBook.cs (1 of 5) Variables to be incremented determined by the switch statement
GradeBook.cs (2 of 5)
Loop condition: if there is more data input Display prompt GradeBook.cs (3 of 5) Loop condition: if there is more data input
(grade / 10 ) is the controlling expression GradeBook.cs (4 of 5) (grade / 10 ) is the controlling expression switch statement determines which case label to execute, depending on controlling expression default case for grade less than 60
GradeBook.cs (5 of 5) Prints out results
Call GradeBook public methods to count grades GradeBookTest.cs (1 of 2) Call GradeBook public methods to count grades
GradeBookTest.cs (2 of 2)
Sonsuz Döngü public static void Main( string[ ] args ) { while(true) //sonsuz dongu ………. if(…….) //kullanici dogru tahminde bulunduysa break; }
Sonsuz Döngü public static void Main( string[ ] args ) { bool oyunaDevam=true; while(oyunaDevam) //sonsuz dongu ………. if(…….) //kullanici dogru tahminde bulunduysa oyunaDevam=false; }
SINAV HAZIRLIK SORULARI Kullanıcıdan klavye yoluyla aldığı bir sayının bölenlerini veya çarpanlarını bularak ekrana basan bir C# programı yazınız. Kullanıcıdan klavye yoluyla aldığı bir sayının ASAL sayı olup olmadığını belirleyen ve eğer ASAL sayı ise ASAL çarpanlarını ekrana basan bir C# programı yazınız. Kullanıcıdan klavye yoluyla aldığı belirli bir aralık içerisindeki bütün ASAL sayıları ve bu ASAL sayıların sayısını ekrana basab bir C# programı yazınız. Kullanıcıdan klavye yoluyla aldığı iki sayının aralarında ASAL olup olmadığını bulan bir C# programı yazınız. (4 ve 15 aralarında asaldır örneğin.) Kullanıcıdan klavye yoluyla aldığı 3 sayının En Büyük Ortak Bölenini (EBOB) bulacak bir C# programı yazınız. Kullanıcıdan klavye yoluyla aldığı 3 sayının En Küçük Ortak Katını (EKOK) bulacak bir C# programı yazınız. (15 sayısının katları: 15 30 45 60 75 ve 20 sayısının katları: 20 40 60 tır. Dolayısıyla EKOK(15,20)=60 tır.) Kullanıcıdan klavye yoluyla aldığı 2 rasyonel sayıyı toplayıp en sade haliyle ekrana basacak bir C# programı yazınız.