BMT 101 Algoritma ve Programlama I 8. Hafta Yük. Müh. Köksal GÜNDOĞDU 1
C++ Döngü Deyimleri Yük. Müh. Köksal GÜNDOĞDU 2
Döngüler Programın belirli bölümlerinin defalarca işlenmesi söz konusu olabilir. Bunu sağlamak üzere döngülerden yararlanılır. C++ programlarında döngü işlemleri farklı biçimlerde gerçekleşebilmektedir: for döngüsü while döngüleri do while döngüleri Yük. Müh. Köksal GÜNDOĞDU 3
For Döngüsü C++ programı içinde bir ya da daha fazla sayıda deyimin belirli bir koşulun gerçekleşmesine dek tekrarlanması söz konusu ise for deyimi kullanılır. Bu deyim şu şekilde tanımlanmaktadır: Yük. Müh. Köksal GÜNDOĞDU 4
For Döngüsü for(sayaç ; koşul ; artma) deyimler; Bu deyimden şu anlaşılmaktadır: Döngü bir sayaca göre yapılacaktır. Yani her bir döngü işlemi sayılacaktır. Döngü işlemi koşul gerçekleşinceye dek devam edecektir. Koşul gerçekleştiğinde, yani doğruluk değeri "yanlış" olduğunda döngü terkedilerek bir sonraki deyim işlem görmeye başlar. for içinde sayacın nasıl artacağı da ayrıca tanımlanır. Yük. Müh. Köksal GÜNDOĞDU 5
For Döngüsü Örnek1:Ekran üzerinde 1 den 10 a kadar olan tamsayıları görüntülemek için gerekli Programın akış şemasını çizerek C++ programını yazınız. Yük. Müh. Köksal GÜNDOĞDU 6
For Döngüsü Başla I=1,10,1 I Dur Yük. Müh. Köksal GÜNDOĞDU 7
For Döngüsü Yük. Müh. Köksal GÜNDOĞDU 8
For Döngüsü Örnek2 :Klavye yardımıyla girilen iki tamsayı arasındaki tüm sayıların toplamını bulan programın akış şemasını çizerek C++ kodlarıyla yazınız. Yük. Müh. Köksal GÜNDOĞDU 9
For Döngüsü Başla sayi1,sayi2 Toplam=0 I=sayi1+1,I<sayi2-1,1 Toplam=Toplam+I Toplam Dur Yük. Müh. Köksal GÜNDOĞDU 10
For Döngüsü Yük. Müh. Köksal GÜNDOĞDU 11
Örnek 3: Dışarıdan girilen sayının faktöriyelini bulan programın akış şemasını çizerek C++ kodlarıyla yazınız. For Döngüsü Yük. Müh. Köksal GÜNDOĞDU 12
For Döngüsü Başla N Faktoriyel=1 I=1,N,1 Faktoriyel=Faktoriyel*I Faktoriyel Dur Yük. Müh. Köksal GÜNDOĞDU 13
For Döngüsü Yük. Müh. Köksal GÜNDOĞDU 14
Koşullu Döngüler Belirli bir koşulun gerçekleşmesi durumunda bazı deyimlerin çalıştırılması söz konusu ise koşullu döngü deyimlerinden yararlanılır. Bu döngüler iki türlüdür. Birincisi, koşulun döngü başlangıcında tanımlandığı durumdur. Bu şekildeki döngüler while döngüleri olarak bilinirler. Eğer koşul döngünün sonunda test ediliyorsa, bu kez do..while döngüleri kullanılır. 1. Döngü başında denetim: while döngüleri 2. Döngü sonunda denetim do..while döngüleri Yük. Müh. Köksal GÜNDOĞDU 15
Koşullu Döngüler Döngü başında denetim: while döngüleri: Bir koşulun gerçekleşmesi durumunda belirli işlemlerin tekrarlanması söz konusu ise while döngülerinden yararlanılır. Bu döngü Şekil1'de görüldüğü biçimde çalışmaktadır. Koşul sağlanmadığı sürece döngü içindeki hiçbir deyim çalışmayacaktır. Bu denetim döngü bloğunun başında yapılır. Yük. Müh. Köksal GÜNDOĞDU 16
Koşullu Döngüler Döngü sonunda denetim-do..while döngüleri: Yukarıda açıklanan while döngülerinde koşul, bu deyimin tanımlandığı noktadan itibaren test edilmektedir. Yani daha başlangıçta bu koşul geçerli değil ise hiç bir deyim işlem görmemektedir. Buna karşılık, koşulun döngü bloğunun son satırında yapılması söz konusu olabilir. Böyle durumlarda do while deyimleri kullanılır. Yük. Müh. Köksal GÜNDOĞDU 17
While- Do while döngüsü arasındaki fark Yük. Müh. Köksal GÜNDOĞDU 18
While- Do while döngüsü arasındaki fark İkinci döngü sonsuz olarak çalışır. Yük. Müh. Köksal GÜNDOĞDU 19
Koşullu Döngüler Örnek 4: Girilen pozitif sayıdan 0 a kadar olan küçük sayıları ekrana yazdıran C++ programını hazırlayınız. Yük. Müh. Köksal GÜNDOĞDU 20
Koşullu Döngüler Yük. Müh. Köksal GÜNDOĞDU 21
Döngülerden Çıkış ve Devam Bazı uygulamalarda, döngü işlemi tamamlanmadan döngünün sona erdirilmesi söz konusu olabilir. Bu gibi durumlarda break deyimi kullanılır. Bu deyim, break; biçiminde tanımlanır. Döngü içinde bu deyime sıra geldiğinde, break ardından döngü sonuna kadar olan tüm deyimler atlanır ve döngüye bir sonraki adımdan itibaren devam edilir. Yük. Müh. Köksal GÜNDOĞDU 22
Döngülerden Çıkış ve Devam Bir döngüyü terketmeden bir adımının atlanması söz konusu ise, continue; deyimi kullanılır. Bu deyim döngünün işlemesini sona erdirmez, sadece bir sonraki döngü adımına geçilmesini sağlar. Eğer for döngüsü kullanılıyorsa, işlem sırası bu deyime geldiğinde, bu deyimden döngü sonuna kadar olan deyimler çalışmaz, döngü bir artırılarak sonraki döngüye geçilir. Eğer while döngüsü kullanılıyorsa, continue deyimine sıra geldiğinde, döngü içinde bu deyimden sonraki tüm deyimler atlanır ve koşul sağlandığı sürece döngüye devam edilir. Yük. Müh. Köksal GÜNDOĞDU 23
Break Deyimi Yük. Müh. Köksal GÜNDOĞDU 24
Continue Deyimi Yük. Müh. Köksal GÜNDOĞDU 25
Örnek Uygulamalar Örnek: Klavyeden girilen iki sayı için seçilen işlem türüne göre (toplamaçıkarma- çarpma- bölme) sonuç üreten C++ programına devam etmek istiyor musunuz? Sorusunu ekleyerek işlemlerin tekrar edilmesini sağlayınız. Yük. Müh. Köksal GÜNDOĞDU 26
Örnek Uygulamalar Yük. Müh. Köksal GÜNDOĞDU 27
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 28
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 29
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 30
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 31
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 32
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 33
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 34
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 35
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 36
Değerlendirme Soruları Yük. Müh. Köksal GÜNDOĞDU 37