top of page

BİLGİSAYAR BİLİMİ KUR 1 - 2. DÖNEM 2. HAFTA - WHİLE DÖNGÜSÜ

Güncelleme tarihi: 25 Şub

ÜNİTE:


1.2. PROBLEM ÇÖZME VE ALGORİTMALAR


KAZANIMLAR:


1.2.6.3. Mantıksal yapıları birbirine dönüştürür.


1.2.6.4. Problemin çözümünde çoklu karar yapılarını kullanır.




PYTHON - WHILE DÖNGÜSÜ



  1. KISIM



WHILE DÖNGÜSÜ TEMEL YAPISI


While Döngüsü Nedir?


  • While döngüsü, bir şart (koşul) doğru olduğu sürece kod bloğunu tekrar tekrar çalıştırır.


  • Şart yanlış olduğunda döngü durur.



Temel Yapısı



while döngüsü, belirli bir koşul doğru (True) olduğu sürece bir kod bloğunu tekrar tekrar çalıştıran bir döngü yapısıdır. Yani koşul False olduğunda döngü durur. Bu tür döngüler, koşulun ne zaman sonlanacağı önceden bilinmediğinde veya belirli bir koşulun sağlanana kadar devam etmesi gerektiğinde kullanılır.













Örnek:


Birden başlayarak 5'e kadar sayıları yazdıralım.



Çıktı:



Açıklama


  1. Başlangıçta sayi = 1.

  2. while kontrol eder: "sayi 5'ten küçük mü?"

  3. Eğer doğruysa, kod bloğundaki print(sayi) çalışır.

  4. Sonra sayi += 1 ile sayı bir artırılır.

  5. Bu işlem, sayi 6 olana kadar tekrar eder.

  6. sayi = 6 olduğunda koşul yanlış olur ve döngü durur.














Infinite Loop - Sonsuz Döngü


Infinite Loop (Sonsuz Döngü), bir döngünün belirlenen koşulun hiçbir zaman yanlış olmaması nedeniyle sonsuz kez çalışması durumudur. Bu tür döngüler, genellikle bir hata sonucu oluşsa da, bazı durumlarda bilinçli olarak kullanılabilir. İşte infinite loop hakkında detaylı bir açıklama:


  • Eğer koşul değişmezse, döngü sonsuz döngüye girer.

  • Bu yüzden her döngüde koşulu değiştirecek bir işlem yapılmalı.





Hatalı Örnek:







Kasıtlı Yapılan Örnek:


Eğer bir while döngüsünün koşulu hiçbir zaman False olmazsa, döngü sonsuz bir döngüye dönüşür. Bu tür döngüler genellikle kasıtlı olarak yapılır, ama dikkatli kullanılmalıdır:


Bu döngü, True ifadesi her zaman doğru olduğu için sürekli olarak çalışacaktır. Sonsuz döngüleri genellikle kullanıcı bir işlem yapana kadar programın durmadan çalışması gerektiğinde kullanabilirsiniz (örneğin, bir oyun sürekli çalışır ve kullanıcı çıkış yapana kadar kapanmaz).
















  1. Kısım Özet Video














  1. KISIM ALIŞTIRMALARI:




  1. SAYILARI SIRAYLA YAZDIRMA


Birden başlayarak 20'ye kadar sayıları yazdıralım.




Nasıl Çalışır?


  1. Başlangıç Değeri: Döngüye başlamadan önce sayi = 1 ile başlangıç değeri belirlenir.


  2. Koşul: Döngü her iterasyonda sayi <= 20 koşulunu kontrol eder. Eğer bu koşul True ise, döngü devam eder. Koşul False olduğunda döngü sona erer.


  3. Artış: Her döngüde sayi += 1 işlemi ile sayı bir artırılır.














  1. HATALI SONSUZ DÖNGÜYÜ DÜZELTME


Aşağıdaki sonsuz döngünün kodlarını düzeltiniz.




Hatalı Kodun Çalışma Mantığı:


  1. Başlangıç: sayi başlangıçta 1 olarak belirlenir.


  2. Koşul Kontrolü: sayi > 0 koşulu kontrol edilir.

    • sayi başlangıçta 1 olduğu için bu koşul True olur.


  3. Yazdırma ve Artış:

    • print(sayi) ile mevcut değer ekrana yazdırılır.

    • Ardından sayi += 1 ifadesiyle sayi bir artırılır.


  4. Bu işlem sonsuza kadar devam eder çünkü sayi her zaman sıfırdan büyük kalır.




Sonsuz Döngüyü Önlemek İçin Çözüm:


  1. Döngüye Bir Limit Ekleme: Döngüyü belirli bir değerden sonra durdurabilirsiniz.

















  1. KISIM ALIŞTIRMALARI ÇÖZÜMLERİ:
















  1. KISIM


While Döngüsünün Özellikleri (BREAK, CONTİNUE, ELSE BLOĞU)



1. break


break ifadesi, bir döngüyü koşuldan bağımsız olarak erken sonlandırmak için kullanılır. Döngü içinde bir break ifadesine ulaşıldığında, döngü tamamen durur ve kontrol döngünün dışına çıkar.



break Kullanım Örneği:




Çıktı:


Açıklama: break ifadesine ulaşıldığında döngü hemen sona erer ve 5 ekrana yazdırılmaz.







2. continue


continue ifadesi, döngünün o anki yinelemesini atlamasını sağlar. Döngü içindeki kalan kod çalıştırılmaz, ancak döngü bir sonraki yinelemeye devam eder.



continue Kullanım Örneği:




Çıktı:



Açıklama: continue ifadesi çalıştığında, print(sayi) çalıştırılmaz ve döngü bir sonraki yinelemeye geçer.










3. else Bloğu


Döngülerin else bloğu, döngü normal şekilde tamamlandığında (yani bir break ifadesiyle kesilmezse) çalışır. Döngü koşulu False olduğunda veya döngü tamamlandığında else bloğu devreye girer.



else Kullanım Örneği:



Çıktı:



Açıklama: Döngü koşulu sayi <= 5 False olduğunda else bloğu çalışır.








4) break ile else Kullanımı:


Eğer bir döngü break ile kesilirse, else bloğu çalışmaz.



Çıktı:



Açıklama: Döngü 3’e ulaştığında break çalıştığı için else bloğu atlanır.











KISACA:


  • break: Döngüyü koşuldan bağımsız olarak tamamen durdurur.


  • continue: Döngünün o anki yinelemesini atlar ve bir sonraki yinelemeye geçer.


  • else: Döngü koşulu False olduğunda veya döngü normal şekilde tamamlandığında çalışır. Ancak, bir break ile döngü sona ererse else çalışmaz.













  1. Kısım Özet Video
















  1. KISIM ALIŞTIRMALARI:



1. break Alıştırması


Kullanıcıdan sürekli olarak sayı girmesini isteyin. Eğer kullanıcı 0 girerse, döngüyü durdurun ve ekrana "Döngü durduruldu" yazdırın.




Açıklama:


  • while True: Sonsuz döngü oluşturulur, böylece kullanıcı sayı girdikçe döngü devam eder.


  • Koşul: Kullanıcı 0 girerse, if bloğu devreye girer ve break ifadesi çalışarak döngüyü tamamen durdurur.


  • Normal Akış: Eğer kullanıcı 0 girmezse, girilen sayı ekrana yazdırılır ve döngü tekrar başlar.













2. continue Alıştırması


1 ile 10 arasındaki sayılardan sadece çift olanları ekrana yazdırın. Tek sayılar için döngünün o adımını atlayın.




Açıklama:


  • Koşul: sayi % 2 != 0 kontrolü ile sayının tek olup olmadığı belirlenir.


  • continue: Eğer sayı tekse, döngünün o adımındaki kodların geri kalanı atlanır ve bir sonraki iterasyona geçilir.


  • Normal Akış: Eğer sayı çiftse, print(sayi) ile ekrana yazdırılır ve döngü devam eder.












3. else Bloğu Alıştırması


Kullanıcıdan bir parola tahmin etmesini isteyin. Kullanıcının en fazla 3 hakkı olsun. Eğer doğru tahminde bulunursa döngüden çıkın ve "Doğru tahmin!" yazdırın. Kullanıcı 3 hakkını da yanlış kullanırsa, döngü sonunda else bloğunda "Haklarınız bitti!" mesajı gösterin.




Açıklama:


  1. Döngü Başlangıcı:

    • Kullanıcının hak değişkeni ile tahmin hakkı tutulur. Her tahmin yanlış olduğunda hak -= 1 ile bir hak azaltılır.


  2. Doğru Tahmin:

    • Eğer kullanıcı doğru tahmin yaparsa, if parola == dogru_parola kontrolü True olur, "Doğru tahmin!" mesajı yazdırılır ve break ile döngü sona erer.


  3. Yanlış Tahmin:

    • Kullanıcı yanlış tahminde bulunduğunda, kalan hak sayısı ekrana yazdırılır.


  4. else Bloğu:

    • Eğer döngü bir break ifadesiyle sonlanmaz ve haklar tükenirse, döngü normal şekilde tamamlandığı için else bloğu çalışır ve "Haklarınız bitti!" mesajı yazdırılır.











4) break ile else Kullanımı Alıştırması


Kullanıcıdan bir sayı isteyin, ardından program bu sayıyı tahmin etmeye çalışsın. Eğer doğru tahmin yapılırsa break, aksi takdirde else bloğu çalışsın.




Bu alıştırmada:


  1. Kullanıcıdan bir sayı (hedef) belirlemesi istenir.

  2. while döngüsü 1'den başlayarak 10'a kadar her sayıyı tahmin etmeye çalışır.

  3. Eğer tahmin == hedef ise:

    • "Doğru tahmin!" mesajı yazdırılır.

    • break ile döngü sona erer.

  4. Döngü hiçbir tahminde break ile kesilmezse, else bloğu çalışır ve "Doğru sayı bulunamadı!" mesajı gösterilir.












  1. KISIM ALIŞTIRMALARI ÇÖZÜMLERİ:














While Döngüsü İleri Seviye Alıştırmalar


1'den 10'a Kadar Sayılar


Kullanıcıdan bir başlangıç sayısı alarak 10'a ulaşana kadar ekrana yazdıran bir program yazın.



  • Kullanıcının girdiği sayı 10 veya daha küçük olduğu sürece ekrana yazdırılıyor.

  • sayi += 1 ile her seferinde bir artırılarak devam ediliyor.




















2. Tahmin Oyunu 1


Bilgisayar 1 ile 100 arasında rastgele bir sayı tutsun. Kullanıcı doğru tahmin edene kadar tahmin istemeye devam eden bir while döngüsü yazın.



  • Bilgisayar rastgele bir sayı seçiyor.

  • Kullanıcının doğru tahmin yapana kadar sayıları denemesine izin veriliyor.

  • Girilen sayı rastgele sayıdan küçükse "daha büyük", büyükse "daha küçük" uyarısı veriliyor.









3. Tahmin Oyunu 2


Bilgisayar 1 ile 100 arasında rastgele bir sayı tutsun. Kullanıcı doğru tahmin edene kadar tahmin istemeye devam eden bir while döngüsü yazın 3 hakkı olsun












4. Tek Sayıları Toplama


Kullanıcıdan sürekli olarak sayı girmesini isteyen bir program yazın. Kullanıcı 0 girdiğinde döngü dursun ve girilen tek sayıların toplamını ekrana yazdırsın.



  • Kullanıcıdan sürekli sayı alıyoruz.

  • Eğer sayı 0 ise döngüyü durduruyoruz.

  • Sayının tek olup olmadığını % 2 == 1 ile kontrol edip tek sayıları topluyoruz.













5. Parola Doğrulama

Kullanıcıdan bir şifre girmesini isteyen ve doğru şifreyi girene kadar sormaya devam eden bir program yazın. Doğru şifre girildiğinde "Giriş Başarılı" yazsın.



  • Kullanıcının şifreyi doğru girene kadar tekrar denemesini sağlıyoruz.

  • Eğer şifre doğruysa, "Giriş başarılı!" yazdırılıp döngü sonlandırılıyor.

  • Eğer yanlışsa, "Hatalı şifre" uyarısı veriliyor ve tekrar giriş isteniyor.













6. Faktöriyel Hesaplama


Kullanıcıdan bir sayı alıp, while döngüsü kullanarak faktöriyelini hesaplayan bir program yazın.



  • Faktöriyel: n! = n × (n-1) × (n-2) × ... × 1

  • while temp > 0 döngüsü ile 1’e kadar sayıları çarpıyoruz.












  1. En Büyük ve En Küçük Sayıyı Bulma


    Kullanıcıdan sürekli olarak sayı girmesini isteyen, 0 girildiğinde en büyük ve en küçük girilen sayıyı ekrana yazdıran bir program yazın.


  • Sonsuz (inf) ve negatif sonsuz (-inf) kullanarak başlangıç değerleri belirlenir.

  • Kullanıcıdan gelen her sayıyı kontrol edip en büyük ve en küçük olanları saklıyoruz.

  • Kullanıcı 0 girdiğinde döngü durur ve sonucu yazdırır.









8- Sayıyı Ters Çevirme


Soru: Kullanıcının girdiği sayıyı ters çevirin.




  • Sayıyı basamak basamak alıp yeni bir sayıya ekliyoruz.

  • Örneğin:

    • 123 → 3 → 32 → 321

Örnek Çalışma:

  • Girdi: 567

  • Çıktı: 765









 9- Armstrong Sayısı Kontrolü


Soru: Kullanıcının girdiği sayının Armstrong Sayısı olup olmadığını kontrol edin.(Armstrong Sayısı: Basamaklarının küplerinin toplamı kendisine eşit olan sayı. Örn: 153 → 1³ + 5³ + 3³ = 153)



Mantık:

  • Sayının basamaklarını bulup küplerini alarak toplam oluşturuyoruz.

  • Eğer bu toplam, orijinal sayıya eşitse Armstrong Sayısıdır.













Ödev:


Kullanıcıdan bir sayı isteyin, ardından program bu sayıyı tahmin etmeye çalışsın. Eğer doğru tahmin yapılırsa break, aksi takdirde else bloğu çalışsın ve oluşturduğunuz kodların fotoğrafını aşağıdaki mail adresine gönderiniz.


Maile isim soy isim, sınıf ve okul numarası bilgilerinizi yazmayı unutmayınız.


egitimdebil@gmail.com


Önerilen program: IDE - PYTHON (Bilgisayarla çalışmayanlar, kodları deftere yazıp fotoğrafını gönderebilirler.)


Bilişim Teknolojileri Öğretmeni: İshak BEZCİ


Son gün ve saat : Pazar gece 12.00







Comments


bottom of page