Sıra | DOSYA ADI | Format | Bağlantı |
---|---|---|---|
01. | Bilgisayar Bilimi Döngüler | pptx | Sunumu İndir |
Transkript
Bilgisayar BilimiDöngüler
1. Döngü YapılarıDöngüler, sıralı bir kod blokunun istenilen sayıda tekrarlanmasıdır. Döngü ve karar yapıları, algoritma oluşturma ve programlamada birçok problemin çözümünde kullanılır. Aşağıdaki kod bloku 1’den 5’e kadar sayıları ekrana yazar.01/18/2020Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni2Ekran Çıktısı12345prin t(1)print(2)print(3)print(4)print(5)
2. For DöngüsüFor döngüleri belirli sayıda işlemlerin tekrarlanması için kullanılan döngülerdir. For döngüleri başlangıç ve bitiş değerleri arasında artım miktarına göre istenilen sayıda tekrar yapar.Yukarıdaki örnek çıktı for döngüsüyle yapılmak istenseydi yazılması gereken kodlar şu şekilde olurdu:for n in range(1,6)print(n)Örnek Kullanımfor n in range(1, 11):print(n)3 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
2.1. For Döngüsü İçin Söz DizimiBaşlangıç değeri: Döngü değişkeninin alacağı ilk değerdir. Eğer boş bırakılırsa 0 olarak belirlenir.Son değer: Döngü değişkeninin bitiş değeridir. Boş bırakılmamalıdır.Artırma/azaltma değeri: Döngü değişkeninin artırma veya azaltma miktarını belirler. Eğer boş bırakılırsa, 1 olarak belirlenir. Başlangıç, bitiş, artırma ve azaltma değerlerinin hepsi tam sayı olmalıdır. Ondalıklı değerler veya diğer veri türleri kullanılmaz. Bunun dışında range ifadesi esnek kullanıma sahiptir:for n in range(21, 0, -3):print(n, end=” “)Ekran Çıktısı21 18 15 12 9 6 34 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
2.1. For Döngüsü İçin Söz Dizimiend parametresi: print() içerisinde kullanılan end, bir parametre olarak görev yapar. İşlevi ise yazdırılmak istenen ifadelerin sonuna hangi karakterin geleceğini belirler. Varsayılan olarak “\\n” karakteri ile birlikte gelir. Yani yazılan ifade bitince bir alt satıra geçer.Başka bir örnektop= 0for i in range(1, 100): # burada döngü değişkeni olarak i kullanılmıştır.top+= iprint(top)Ekran Çıktısı4950range(1000) denildiğinde 999’a kadar olan sayıların toplamı işlemini yapar ve ekrana 4950 yazar. Çünkü range() komutunda bitiş değeri döngüye dahil değildir.5 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
2.2. For Döngüsü İçin Farklı ÖrneklerÖrnekrange(10) → 0,1,2,3,4,5,6,7,8,9range(1, 10) → 1,2,3,4,5,6,7,8,9range(1, 10, 2) → 1,3,5,7,9range(10, 0, -1) → 10,9,8,7,6,5,4,3,2,1range(10, 0, -2) → 10,8,6,4,2range(2, 11, 2) → 2,4,6,8,10range(-5, 5) → −5,−4,−3,−2,−1,0,1,2,3,4range(1, 2) → 16 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020• range içerisinde 1 değer varsa bitiş değerini gösterir. 0’dan başlayıp birer artarak çalışır.• range içerisinde 2 değer varsa başlangıç ve bitiş değerini simgeler ve birer artarak ilerler.• 3 değer varsa başlangıç, bitiş ve artma miktarını ifade eder.
2.2. For Döngüsü İçin Farklı Örneklerformat() metodu: print() komutunda çıktı verilirken yazdırılmak istenilen değerlerde hizalama, ekranda istenildiği yere yazdırma gibi biçimlendirme işlemlerinde kullanılan bir metotdur.Örnek>>> print(“{} {}”yi seviyor!”.format(“Ali”, “Ayşe”)) “Ali Ayşe”yi seviyor!”>>> print(“{} {} yaşında bir {}dur”.format(“Ahmet”, “18”, “futbolcu”))“Ahmet 18 yaşında bir futbolcudur”7 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Örnekfor i in range(10):print(i, end=” “)if i == 5:i = 20print(“({})”.format(i), end=” “)print()Ekran Çıktısı0 (0) 1 (1) 2 (2) 3 (3) 4 (4) 5 (20) 6 (6) 7 (7) 8 (8) 9 (9)
3. İç İçe Döngülerİf ifadelerinde olduğu gibi while ve for blokları, başka döngü yapılarını içerebilir. İç içe döngülerin çalışma mantığını anlayabilmek için programın bir çarpım tablosu ürettiğini varsaymak gerekir. Benzer şekilde satır ve sütun değerleri olan bir tablo gibi de düşünülebilir.Örnek# Satır oluşturmak içinsayi = int(input(“Lütfen tablo ölçüsünü giriniz: “))for satir in range(1, sayi + 1):print(“Satır #”, satir)8 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Ekran ÇıktısıLütfen tablo ölçüsünü giriniz: 10Satır # 1Satır # 2Satır # 3Satır # 4Satır # 5Satır # 6Satır # 7Satır # 8Satır # 9Satır # 10
3. İç İçe Döngüler• İç içe döngülerde önemli olan, döngü dışında kalacak kod satırlarının belirlenmesidir.• Hangi satırların bir kere, hangi satırların döngü içerisinde olacağını belirlemek gerekir.• İç içe döngüde satır (satir) dıştaki kontrol döngüsü olup sütun (sutun) döngüsü ise içteki döngüdür.• İçteki döngü, dıştaki döngünün her tekrarında en baştan son bitiş değerine ulaşıncaya kadar kendini yineler.9 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
4. İç İçe 3’lü Döngü# ABC harflerinin farklı permütasyonu:for ilk in “ABC”:for ikinci in “ABC”:if ikinci != ilk:for ucuncu in “ABC”:if ucuncu != ilk and ucuncu != ikinci:print(ilk + ikinci + ucuncu)10 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Ekran ÇıktısıABCACBBACBCACABCBA
5. While Döngüsüsayac = 1 # Başlangıç değeri kontrol değişkenine atanır.while sayac <= 5: #İstenilen değere ulaşıp ulaşmadığını kontrol eder.print(sayac) # Sayaç değerini ekrana yazar.sayac+= 1 # Sayaç değerini 1 arttırır.While ifadesi, aşağıdaki ifadeleri 5 kere tekrar eder.>>>print(sayac)>>>sayac += 111 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
5. While Döngüsü• Sayac değişkeninin değerini sürekli olarak ekrana yazar.• Yazma işlemi sonrasında değişkenin değerini 1 artırır.• Bu işlemden sonra sayac değerinin 5’ten küçük veya eşit olması durumuna göre yazma işlemine devam eder.• Şart sağlanmadığında ilgili kod blokunun tekrarlanması duracaktır.12 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
5.1. While Döngüsü İçin Söz Dizimi• While ifadesi, ilgili kod satırlarının çalıştırılıp çalıştırılmayacağını belirler.• Şart doğru olduğu sürece kod blokunu tekrar tekrar çalıştırır.• Şart yanlış olduğunda ise döngü sonlanır.• While için söz diziminde ilk önce while ifadesi yazılır.• Şart ifadesi sonrasında : işareti ile yazılmalı ve bu şarta bağlı olarak çalışacak kod satırları alt alta yazılmalıdır.13 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
5.2. While Döngüsü İçin Akış Şeması14 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
5.2. While Döngüsü İçin Örnek SoruDışarıdan negatif sayı girilinceye kadar sayıları toplayan while döngüsüsayi = 0 toplam = 0print(“Bir sayı giriniz, negatif sayı döngüyü sonlandırır:”)while sayi >= 0:sayi= int(input())toplam += sayi print(“Toplam=”, toplam)15 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
5.2. While Döngüsü İçin Örnek SoruÇalışmayan bir bilgisayar için sorun çözme adımlarını gösteren while döngüsü16 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
6. Belirli ve Belirsiz DöngülerDöngünün tekrar sayısının bilindiği veya bilinmediği durumlar olabilir. Belirli döngülerde döngünün kaç defa döneceği, kaç kere çalışacağı kestirilebilir. Çünkü şart ifadesi bu konuda bilgi verir. Ancak bu durumun aksine kullanıcı girişine göre değişiklik gösteren ve farklı sayıda çalışan döngüler olabilir. Böyle durumlarda kullanılan döngülere de belirsiz döngü denir.Belirli döngü örneği 1n = 1while n <= 10:print(n)n += 117 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
6. Belirli ve Belirsiz DöngülerBelirli döngü örneği 2n = 1karar= int(input())while n <= karar:print(n)n += 118 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Belirsiz döngü örneği 3karar = False while not karar:giris = int(input())if giris == 999:karar = Trueelse:print(giris)
7. Döngü’den Çıkma KomutlarıWhile döngüsü, şart sağlandığı sürece ilgili kod satırlarını çalıştırır. Benzer şekilde for döngüsü de aralık içerisinde ilgili işlemleri gerçekleştirir. Ancak bazı değerler için döngü yapısından çıkmak, başka bir deyişle döngü işleyişinde değişiklik yapmak mümkündür. Bunun için break ve continue komutları kullanılabilir.19 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020giris = 0toplam = 0print(“Lütfen bir sayı giriniz, negatif sayılar döngüyü sonlandırır:”)while True:giris = int(input())if giris < 0:break # Döngüden çıkılıyortoplam += giris print(“Toplam =”, toplam)
7. Döngü’den Çıkma KomutlarıÖrnek# Metin içerisindeki sesli harfleri bulmakelime = input(“Lütfen bir metin giriniz (Çıkış için X / x): “)sesliHarfSayisi = 0for c in kelime:if c == “A” or c == “a” or c == “E” or c == “e” \\ or c == “I” or c == “ı” or c == “O” or c == “o”\\ or c == “U” or c == “u” or c == “Ö” or c == “ö”\\ or c == “Ü” or c == “ü” or c == “İ” or c==”i”: print(c, “,”, end=” “, sep=” “)sesliHarfSayisi += 1elif c == “X” or c ==”x”:breakprint(” (“, sesliHarfSayisi, ” adet sesli harf)”, sep=””)20 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Ekran ÇıktısıLütfen bir metin giriniz (Çıkış için X / x): AaEeIıİiOoÖöUuÜüA, a, E, e, I, ı, İ, i, O, o, Ö, ö, U, u, Ü, ü, (16 adet sesli harf)
8. Continue İfadesi• Break ifadesi kullanıldığında ilgili kod satırları çalıştırılmadan atlanırken continue ifadesi kullanıldığında döngü başı yapılarak bir sonraki yeni değer için işlem yapılır.21 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020
8. Continue İfadesiÖrnek# 999 girilene kadar girilen pozitif sayıların toplamını alan program# < girilen negatif sayılar işleme alınmayacaktır. >toplam = 0 durum = False while not durum:deger = int(input(“Lütfen pozitif tam sayı giriniz (Çıkış için 999):”))if deger < 0:print(“Negatif değer girildi, “, deger, “degeri işleme alınmadı”)continueif deger != 999:print(“Eklenen değer”, deger)toplam += deger else:durum = (deger == 999)print(“Toplam =”, toplam)22 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Ekran ÇıktısıLütfen pozitif tam sayı giriniz (Çıkış için 999):1Eklenen değer 1Lütfen pozitif tam sayı giriniz (Çıkış için 999):2Eklenen değer 2Lütfen pozitif tam sayı giriniz (Çıkış için 999):3Eklenen değer 3Lütfen pozitif tam sayı giriniz (Çıkış için 999):6
9. While/else ve for/elsePython döngüler için opsiyonel else bloku kullanımını destekler. Break ifadesine rağmen döngünün terkedilmediği durumlarda döngüye ait else ifadesi kullanılabilir.While / else# Girilen 5 sayının ortalamasını alan program# Negatif sayı girildiğinde program sonlandırılırsayac = toplam = 0print(“Lütfen Ortalama hesaplamak için 5 pozitif sayı giriniz”)while sayac < 5:sayi = float(input(“Sayı giriniz: “))if sayi < 0:print(“Negatif sayılar kabul edilmemektedir. Çıkılıyor”)break sayac += 1 toplam += sayielse:print(“Ortalama =”, toplam/sayac)23 Mehmet ÇOLAK - Bilişim Teknolojileri Öğretmeni 01/18/2020Ekran ÇıktısıLütfen Ortalama hesaplamak için 5 pozitif sayı girinizSayı giriniz: 6Sayı giriniz: 7Sayı giriniz: 8Sayı giriniz: 6Sayı giriniz: 5Ortalama = 6.4