Bilgisayar Programlama Ders 3 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Atama Operatörleri Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler C, atama operatörlerini kısaltmak için bir çok atama operatörüne sahiptir. Atama Operatörü Örnek Deyim Açıklama Atar int c=3, d=5, e=4, f=6, g=12; olduğunu kabul ediniz. += c+=7 c=c+7 c’ye 10’u -= d-=4 d=d-4 d’ye 1’i *= e*=5 e=e*5 e’ye 20’yi /= f/=3 f=f/3 f’ye 2’yi %= g%=9 g=g%9 g’ye 3’ü 2 Artırma ve Azaltma Operatörleri Atama Operatörleri C, tekli artırma ve azaltma operatörlerini kullanmamıza izin verir. Artırma ve Azaltma Operatörleri Operatör Örnek Deyim Açıklama Program Kontrolü ++ ++a a’yı bir arttır ve a’nın yeni değerini a’nın içinde bulunduğu deyimde kullan ++ a++ a‘nın değerini a’nın içinde bulunduğu deyimde kullan ve daha sonra a’yı bir arttır. -- --b b’yi bir azalt ve b’nin yeni değerini b’nin içinde bulunduğu deyimde kullan -- b-- b’nin değerini b’nin içinde bulunduğu deyimde kullan ve daha sonra b’yi bir azalt Döngüler 3 4 5 ALIŞTIRMALAR Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü a) if (yas>=65); printf(“Yaş 65’ten büyük ya da 65’e eşittir\n”); else printf(“Yaş 65’ten küçüktür.\n”); Döngüler b) int x=1, toplam; “toplam=0;” ataması yapılmalı while (x<=10) { toplam+=x; ++x; } 6 ALIŞTIRMALAR Atama Operatörleri Program Kontrolü c) While (x<=100) { toplam+=x; ++x; } Döngüler d) while Artırma ve Azaltma Operatörleri Koşul unutulmuş printf(“%d\n”,y); ++y; } 7 ALIŞTIRMALAR Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler a) x ve y’nin toplamını z’ye atayın ve bu işlemin yapılmasından sonra x’i 1 arttırın. z = x++ +y ; b) carpim değişkenini *= operatörü kullanarak 2 ile çarpın. carpim *= 2 ; c) = ve * operatörlerini kullanarak, carpim değişkenini 2 ile çarpın. carpim=carpim*2 ; d) sayici değişkeninin değerinin 10’dan büyük olup olmadığını kontrol edin. Eğer büyükse,“sayici 10’dan büyüktür” yazdırın. if (sayici >10) printf(“Sayıcı 10’dan büyüktür.\n”); 8 ALIŞTIRMALAR Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler e) x değişkeninin değerini 1 azaltın ve toplam değişkeninden çıkartın. toplam -= --x ; f) x değişkenini toplam değişkenine ekleyin ve x’in değerini 1 azaltın. toplam += x-- ; g) q, bolen’e bölündükten sonra kalanı hesaplayın ve sonucu q’ya yazdırın. Bunu iki farklı yoldan yaptırın. q %= bolen; q = q % bolen; h) 123.4567 değerini 2 basamak duyarlıkta yazdırın. Sonuç ne olur? printf(“%.2f”,123.4567); sonuç: 123.46 i) 3.14159 ondalıklı sayısını 3 basamak duyarlıkta yazdırın. Sonuç ne olur? printf(“%.3f”, 3.14159); sonuç: 3.142 9 Program Kontrolü for yeni döngü kontrol yapıları Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler do/while switch çoklu seçim yapısı break kontrol yapılarından çıkış continue gövdenin bir kısmını atlayarak, diğer kısmı çalıştırma 10 Döngülerin Temelleri Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngü, döngü-devam koşulları doğru olarak kaldığı sürece bilgisayarın çalıştırdığı bir grup emirdir. İki tür döngüden bahsettik: 1- Sayıcı kontrollü döngüler (Belirli döngü) Döngüler 2- Nöbetçi kontrollü döngüler ( Belirsiz döngü) 11 Sayıcı Kontrollü Döngüler Atama Operatörleri Sayıcı kontrollü döngüler aşağıdakilere ihtiyaç duyar; Artırma ve Azaltma Operatörleri 1- Kontrol değişkeninin (ya da döngü sayıcının) ismine Program Kontrolü 2- Kontrol değişkeninin ilk değerine Döngüler 3- Kontrol değişkeninin döngü içinde arttırılarak ya da azaltılarak değiştirilmesine 4- Kontrol değişkeninin son değerini kontrol edecek bir koşula(döngünün devam edip etmeyeceğini belirlemek için). 12 13 14 for Döngü Yapısı Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler for döngü yapısı, sayıcı kontrollü döngülerin bütün detaylarını otomatik olarak kolaylıkla uygular. for yapısının gücünü anlayabilmek için bir önceki örneği tekrar yazarsak… 15 16 17 Küçük Bir Hata 18 Sonuç 19 kontrol değişkeninin ismi koşulun doğru olabileceği kontrol değişkeninin son değeri Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü for anahtar kelimesi for ( sayici = 1 ; sayici <= 7 ; + + sayici ) Döngüler kontrol değişkeninin ilk değeri kontrol değişkeninin artırılması döngü devam koşulu 20 for Döngü Yapısı İlgili Notlar ve Gözlemler Atama Operatörleri 1. İlk değer verme, döngü devam koşulu ve artırma deyimleri aritmetik operatörler içerebilir. Örneğin, x=2 ve y=10 olsun, Artırma ve Azaltma Operatörleri Program Kontrolü for (j=x; j<=4*x*y; j+=y/x) ifadesi for (j=2; j<=80; j+=5) Döngüler ile eşdeğerdir. 2. Arttırma negatif olabilir (Bu durumda döngü değişkeni azaltılır ve aşağıya doğru saydırır). 3. Eğer döngü devam koşulu en baştan yanlışsa, for yapısının gövdesi tümden atlanır ve for yapısından sonraki ilk satır çalıştırılır. 21 for Döngü Yapısı İlgili Notlar ve Gözlemler Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler 4. Kontrol değişkeni, döngü gövdesinde sıklıkla yazdırılır ya da işlemlere sokulur. Ancak genelde bu yapılmamalıdır. En uygun olan, kontrol değişkenini döngüyü kontrol etmek için kullanmak ve döngünün gövdesi içinde bir daha kullanmamaktır. 5. for yapısı while yapısının akış grafiğine benzer bir biçimde şekillendirilir. Örneğin, for(sayici = 1; sayici <= 10; sayici++) printf (“%d”,sayici); gibi bir for yapısının akış grafiği: 22 Kontrol değişkeninin ilk değerinin ayarlanması Atama Operatörleri sayici=1 Artırma ve Azaltma Operatörleri doğru Program Kontrolü sayici<=10 printf(“%d”,sayici); Döngüler yanlış Kontrol değişkeninin ulaştığı son değere karar verilmesi Döngünün gövdesi (birkaç ifadeden oluşabilir). sayici++ Kontrol değişkeninin artırılması Tipik bir for döngü yapısının akış grafiği 23 Örnekler 1. Kontrol değişkenini 1’den 100’e kadar birer birer arttır. for(i = 1; i <= 100; i ++) Atama Operatörleri 2. Artırma ve Azaltma Operatörleri Program Kontrolü 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) Döngüler 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 şekilde değiştir. for(i = 2; i <= 20; i + =3) 6. Kontrol değişkenini 99, 88, 77, ……, 22, 11, 0 değerlerini alacak biçimde değiştir. for(i = 99; i >= 0; i -=11) 24 25 Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler %4s%21s yazdırılacak değerlerin alan genişliklerini belirtir. Buna göre “Yıl” ifadesi için 4 karakter, “Depozito miktarı” ifadesi için 21 karakterlik alan ayrılmıştır. Eğer yazdırılacak alan ayrılan alandan daha az yere sahipse ifade otomatik olarak sağa dayalı yazdırılır. Sola dayalı yazdırmak için % işareti ile alan genişliği arasına – işareti konulmalıdır (Örneğin %-6d ve %-8s). “miktar” değişkeninin değerini yazdırmak için %21.2f dönüşüm belirteci kullanılmıştır. Burada da 21 değerin yazdırılacağı alan genişliğini, 2 sayının duyarlılığını (sonrası rakam sayısı) belirtir. pow(x,y) fonksiyonu x’in y’inci kuvvetini hesaplar ( xy ). 26 Switch Çoklu Seçim Yapısı Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler if tekli-seçim ve if/else çiftli seçim yapılarının yanında C’de bir değişken ya da ifadenin ayrı ayrı sabitlerle karşılaştırılması ve buna bağlı olarak farklı işlemlerin yapılması gibi bir dizi seçim yer alabilir. Bu tarz seçim yapıları switch çoklu-seçim yapısı ile gerçekleştirilebilir. 27 28 29 while ((sayi=getchar())!= EOF) Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü Döngüler ilk önce parantez içine atama (sayi=getchar())çalıştırılır. getchar fonksiyonu (standart giriş/çıkış kütüphanesi içindedir.), klavyeden bir karakter okur ve bu karakteri sayi tamsayı değişkeni içinde depolar. Karakterler genellikle char tipiyle saklanırlar. EOF: End of File stdio.h içinde tanımlanmış sembolik bir sabittir (genellikle -1). UNIX ve diğer birçok işletim sisteminde EOF, ctrl+d MS-DOS işletim sisteminde EOF, ctrl+z 30 do/while Döngü Yapısı Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü while yapısında döngü devam koşulu, döngünün gövdesinden önce test edilir. do/while yapısında döngü devam koşulu, döngünün gövdesi çalıştırıldıktan sonra kontrol edilir. Döngüler Döngü en az bir kere çalıştırılır! do { ifade } while (koşul) 31 32 33 Atama Operatörleri işlem Artırma ve Azaltma Operatörleri Program Kontrolü doğru koşul Döngüler yanlış do/while döngü yapısının akış grafiği 34 Atama Operatörleri Artırma ve Azaltma Operatörleri Program Kontrolü 3. DERSİN SONU Döngüler 35
© Copyright 2024 Paperzz