Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Nöbetçi Kontrollü Döngü • Ortalama örneğini geliştirelim; Program çalıştırıldığında, kaç kişinin ortalamasının hesaplanacağını önceden bilmeden, sınıf.

Benzer bir sunumlar


... konulu sunumlar: "Nöbetçi Kontrollü Döngü • Ortalama örneğini geliştirelim; Program çalıştırıldığında, kaç kişinin ortalamasının hesaplanacağını önceden bilmeden, sınıf."— Sunum transkripti:

1 Nöbetçi Kontrollü Döngü • Ortalama örneğini geliştirelim; Program çalıştırıldığında, kaç kişinin ortalamasının hesaplanacağını önceden bilmeden, sınıf ortalamasını bulacak bir program.  Öğrenci sayısı bilinmemekte  Program nasıl sonlandırılacak? • Nöbetçi değer kullan.  Ayrıca sinyal ve ya işaretçi değer de denir.  ‘Veri girişi sonunu.’ gösterir  Kullanıcı nöbetçi değeri girdiğinde döngü biter.  Nöbetçi değer, kabul edilebilir herhangi bir giriş değeriyle karıştırılmayacak biçimde seçilmelidir.( Bu örnek için -1)

2 Toplam değişkenini sıfır olarak belirle Sayıcı değişkenini sıfır olarak belirle İlk notu gir Kullanıcı nöbetçi değeri girmediği sürece (while) bu notu o andaki değere ekle Sayıcıyı bir arttır Sıradaki notu al(bu değer nöbetçi değer olabilir) Eğer ( if ) sayıcı sıfıra eşit değilse Ortalamayı, notların toplamını sayıcıya bölerek hesapla Ortalamayı yazdır Aksi takdirde ( else ) “Not girilmemiştir” yazdır Sınıf Ortalaması Problemini Nöbetçi Kontrollü Döngülerle Çözen Sahte Kod

3 #include int main() { float average; int counter, grade, total; total = 0; counter = 0; printf( "Notu giriniz(Cikis icin -1): " ); scanf( "%d", &grade ); while ( grade != -1 ) { total = total + grade; counter = counter + 1; printf( "Notu giriniz(Cikis icin -1): " ); scanf( "%d", &grade ); } if ( counter != 0 ) { average = ( float ) total / counter; printf( "Sinif ortalamsi is %.2f", average ); } else printf( "Hic not girilmemistir.\n" ); getch(); return 0; }

4 • Bir kontrol yapısını diğerinin içine yuvalamak. • Problem  Bir kursun 10 öğrencinin test sonuçları(1=geçti, 2=kaldı) için bir listesi vardır.  Sonuçları analiz eden bir program yazınız  Eğer 8’den fazla öğrenci geçtiyse ‘yüksek başarı’ mesajını yazdırmanızı istemektedirler. • Göz önünde bulundurulmalıdır ki;  Program 10 test sonucu işleyecektir. Sayıcı kontrollü döngü kullanılacaktır.  İki Sayıcı kullanılacaktır. Bunlardan biri sınavı geçen öğrenci sayısını, diğeri kalan öğrenci sayısını saymak için.  Her test sonucu 1 ya da 2 gibi bir sayıdır. Eğer sayı 1 değilse, bunun 2 olduğunu varsaya biliriz. Yuvalı Kontrol Yapıları

5 #include int main() { int passes = 0, failures = 0, student = 1, result; while ( student <= 10 ) { printf( "Sonuc Gir( 1=gecti,2=kaldi ): " ); scanf( "%d", &result ); if ( result == 1 ) //if/else,while içine yuvalanmıştır. passes = passes + 1; else failures = failures + 1; student = student + 1; } printf( "Gecenler: %d\n", passes ); printf( "Kalanlar: %d\n", failures ); if ( passes > 8 ) printf( "Yuksek Basari\n" ); getch(); return 0; }

6 Atama Operatörleri

7 Artırma ve Azaltma Operatörleri

8 #include int main() { int c = 5; printf( "%d\n", c ); printf( "%d\n", c++ ); printf( "%d\n\n", c ); c = 5; printf( "%d\n", c ); printf( "%d\n", ++c ); printf( "%d\n", c ); getch(); return 0; }

9 Hatırlatma: Şu ana kadar anlatılan operatörlerin öncelikleri

10 for Döngü Yapısı • Döngüler için kullanıldığında formatı For(ilk değer ataması, döngü koşulu, artırma deyimi) • Örneğin; int counter; for(counter = 1; counter <= 10; counter++ ) printf( "%d\n", counter );  Tam sayıları 1’den 10 ‘ a kadar yazdırma.

11 for Döngü Yapısı • Çoğu durumda for yapısı while yapısı biçimine çevrilebilir. İlk değer ataması; while( döngü koşulu){ ifade; artırma; } • İlk değer ve artırma  Sıklıkla, virgüllerle ayrılmış listelerdir.  Örneğin; int i, j; for (i = 0, j = 0; j + i <= 10; j++, i++) printf( "%d\n", j + i );

12 Tipik Bir for Yapısı

13 Tipik Bir for Döngüsünün Akış Diyagramı

14 for Döngü Yapısıyla İlgili Notlar ve Gözlemler • İlk değer verme, döngü devam koşulu ve artırma deyimleri aritmetik operatörler içerebilir. Örneğin;. Eğer x = 2 ve y = 10 ise for ( j = x; j <= 4 * x * y; j += y / x ) eşdeğerdir for ( j = 2; j <= 80; j += 5 ) ile. • Artırma negatif olabilir. • Eğer döngü devam koşulu en baştan yanlışsa, for yapısının gövdesi en baştan atlanır. • Kontrol değişkeni, döngü gövdesinde sıklıkla yazdırılır ya da işleme sokulur ancak bu gerekli değildir.

15 for Yapısı İle İlgili Örnekler • 1. Kontrol değişkenini 1‘den 100‘e kadar birer birer arttır. for ( i = 1; i <= 100; i++) • 2. Kontrol değişkenini 100‘den 1‘e kadar birer birer azalt. for ( i = 100; i >= 1; i--) • 3. Kontrol değişkenini 7‘den 77‘ye kadar yedişer yedişer arttır. for ( i = 7; i <= 77 ; i += 7) • 4. Kontrol değişkenini 20‘den 2‘ye kadar ikişer ikişer azalt. for ( i = 20; i >= 2 ;i -= 2) • 5. Kontrol değişkenini 2, 5, 8, 11, 14, 17, 20 değerlerini alacak biçimde değiştir. for ( j = 2; j <=20; j += 3) • 6. Kontrol değişkenini 99, 88, 77, 66, 55, 44, 33, 22, 11, 0 değerlerini alacak biçimde değiştir. for ( j = 99; j >= 0 ;j -= 11)

16 #include int main() {//for ile toplama int sum = 0, number; for ( number = 2; number <= 100; number += 2 ) sum += number; printf( "Toplam: %d\n", sum ); getch(); return 0; }

17 #include int main() { int year; double amount, principal = , rate =.05; printf( "%4s%21s\n", "Yil", "Depozito Miktari" ); for ( year = 1; year <= 10; year++ ) { amount = principal * pow( rate, year ); printf( "%4d%21.2lf\n", year, amount ); } getch(); return 0; } Yeni Önişlemci pow fonksiyonu ilk argümanın, ikinci argümanına göre kuvvetini hesaplar. Bir kişi $1000’nı %5 faizle bankaya yatırmıştır. Bütün faizin hesaptaki paraya eklendiğini düşünerek 10 yıl boyunca, her yılsonunda hesapta birikecek parayı hesaplayıp yazdırınız. a = p (1 + r)^n a: n yıl sonra hesapta birikecek miktar p: ilk yatırılan miktar n: yıl sayısı r: faiz oranı

18 switch Çoklu Seçim Yapısı • switch  Bir değişken ya da bir ifadenin ayrı ayır sabitlerle karşılaştırılması ve buna bağlı olarak farklı işlemlerin yapılması gibi bir dizi seçimin yer aldığı durumlarda kullanılır. Format  case ve tercihe bağlı default kısımlarında oluşur. switch ( ifade ){ case '1': actions case '2': actions default: actions }  break; yapıdan çıkmak için

19 switch Çoklu Seçim Yapısı

20 #include int main() { char islem; int s1, s2, s3; printf("Önce islemi sonra sayilari girin "); scanf("%c%d%d",&islem, &s1, &s2); switch (islem) { case '+' : s3 = s1 + s2; break; case '-' : s3 = s1 - s2; break; case '*' : s3 = s1 * s2; break; case '/' : s3 = s1 / s2; break; default : printf ("Hatali islem"); } printf("\nSonuc = %d",s3); getch(); return 0; }

21 do/while Döngü Yapısı • do/while döngü yapısı  while yapısına oldukça benzer.  Döngü devam koşulu, döngünün gövdesi çalışdıktan sonra kontrol edilir.  Bu sebepten, döngü gövdesi en az bir kez çalışır.  Format: do { İfade; } while ( condition );

22 do/while Döngü Yapısı ve Akış Diyagramı • Örnek (counter = 1): do { printf( "%d ", counter ); } while (++counter <= 10);  1’den 10’a kadar tamsayıları yazar.

23 #include int main() { int sayac = 1; do { printf( "%d ", sayac ); } while ( ++sayac <= 10 ); getch(); return 0; }

24 break ve continue ifadeleri • break  while,for,do/while ve switch ile kullanıldığında o yapıdan çıkış sağlar.  Program yapıdan sonraki ilk ifadeyi çağırarak devam eder.  En genel kullanımı bir döngüden istenen anda çıkmak ve döngünün belli bir kısmandan çıkmaktır. • continue  while,for ve do/while yapıları içinde çalıştığında döngü gövdesinin kalan kısmı atlanır.  while ve do/while yapılarında döngü koşulu hemen kontrol edilir.  for yapısında artırma deyimi çalıştırılır daha sonra ise döngü koşulu kontrol edilir.

25 #include int main() { int x; for ( x = 1; x <= 10; x++ ) { if ( x == 5 ) break; printf( "%d ", x ); } printf( "\nDonguden x= %d oldugunda cikildi\n", x ); getch(); return 0; } #include int main() { int x; for ( x = 1; x <= 10; x++ ) { if ( x == 5 ) continue; printf( "%d ", x ); } printf( "\ncontinue, 5 degerinin atlanmasi icin kullanildi\n" ); getch(); return 0; }

26 Mantık Operatörleri • && ( mantıksal VE)  İki koşulda true ise true döndürür. • || ( mantıksal VEYA)  İki koşuldan biri true ise true döndürür. • ! ( mantıksal DEĞIL)  Koşul yanlış olduğunda izlenecek yollu belirler. • Döngülerde ki koşul durumları; İfadeSonuç true && falsefalse true || falsetrue !false true


"Nöbetçi Kontrollü Döngü • Ortalama örneğini geliştirelim; Program çalıştırıldığında, kaç kişinin ortalamasının hesaplanacağını önceden bilmeden, sınıf." indir ppt

Benzer bir sunumlar


Google Reklamları