Algoritma ve Akış Şeması Örnekleri #3 – Döngüler 1
Son güncelleme: 1 Aralık 2020
Kodlamada döngüler çok önemli bir yere sahiptir çünkü bilgisayar dediğimiz cihazları esas olarak kullanma sebebimiz bunlardır. Mesela sana herhangi bir X işi versem ve bunu Y defa hiç sıkılmadan, hatasız bir şekilde yap desem, bu X işini yapmakta çok zorlanırsın. Çünkü hiçbir insan iyi kodlanmış herhangi bir programdan daha hızlı ve hatasız bir şekilde o işi bitiremez.
İşte döngüler burada devreye giriyor. Sürekli veya belli bir sayıda tekrar eden aynı iş veya işleri döngü içerisine sokuyoruz ve işimiz bitiyor. O iş veya işleri arka arkaya X defa yazmıyoruz. X defa tekrar edecek bir döngü kuruyoruz ve döngünün içine yapılacakları yazıyoruz ve işimiz bir kerede bitmiş oluyor.
Döngü ile ilgili aşağıda verilecek örneklerde iki farklı akış şeması kullanılacaktır. Birinde döngüleri belirtmek için kullanacağımız altıgen şekli, diğerinde ise şimdiye kadar gördüğümüz diğer şekilleri kullanarak döngüleri oluşturacağız. İlk örneğimizle başlayalım;
#1 – Klavyeden girilen bir kelimeyi 5 defa ekrana yazdıran akış şeması
- Girdi – Girilen kelime
- Çıktı – Girilen veriyi 5 defa ekranda yazdırmak
- Matematik – Yok
- Koşullu Yürütme – Yok
- Tekrarlama – Girilen veriyi ekranda gösterme işi 5 defa tekrarlanacak
Bu problemi şimdiye kadar çözdüğümüz problemler gibi çözmeye kalkışırsak işin içinden çıkamayız ve çok kullanışsız akış şemaları yapmış oluruz. Mesela;
Fakat burada döngüyü devreye sokarsak işimiz kolaylaşır. Şöyle ki;
Aslında bu döngü olayının tek bir kalıbı var. Bu kalıp içindeki;
- başlangıç sayısını (tekrar=1),
- ne olduğu sürece bu döngünün devam edeceği (tekrar<=5),
- her bir tekrardan sonra döngü değişkenin kaçar kaçar artacağı (tekrar=tekrar+1)
yapılarını değiştirerek istediğimiz sayıdan başlayıp, istediğimiz sayıya kadar ilerleyen ve istediğimiz sayı kadar artabilen her türlü döngüyü kurabiliriz.
Yukarıdaki döngü örneğini daha önce kullandığımız şekillerlede yapabiliriz. Şöyle ki;
Bu açıklamalar ile belki aklına tam olarak oturmamış olabilir. O yüzden aşağıdaki örnekler ile biraz daha pekiştirelim.
#2 – 1’den 10’a kadar olan sayıları ekrana yazdıran akış şeması
- Girdi – Yok
- Çıktı – 1, 2, 3, …., 9, 10
- Matematik – Yok
- Koşullu Yürütme – Yok
- Tekrarlama – 1’den başlayıp 10’a kadar devam edecek, birer birer artan döngü
Akış Şeması
#3 – 5’ten 55’e kadar olan sayıları ekrana yazdıran akış şeması
- Girdi – Yok
- Çıktı – 5, 6, 7, …., 54, 55
- Matematik – Yok
- Koşullu Yürütme – Yok
- Tekrarlama – 5’ten başlayıp 55’e kadar devam edecek, birer birer artan döngü
Akış Şeması
#4 – 3’ten 33’e kadar olan tek sayıları ekrana yazdıran akış şeması
Akış Şeması
#5 – 0’dan 99’a kadar olan 6’ya bölünebilen sayıları ekrana yazdıran akış şeması
Akış Şeması
#6 – 21’den -21’e kadar olan 4’e bölünebilen sayıları ekrana yazdıran akış şeması
Akış Şeması
#7 – 0’dan kullanıcının girdiği sayıya (pozitif tam sayı girdiği varsayılarak) kadar olan çift sayıları ekrana yazdıran akış şeması
Akış Şeması
#8 – Kullanıcının girdiği sayıdan (pozitif tam sayı girdiği varsayılarak) 0’a kadar olan tek sayıları ekrana yazdıran akış şeması
- Girdi – Pozitif tam sayı girilecek
- Çıktı – Girilen sayıdan başlayıp 1’e kadar giden tek sayılar
- Matematik – Girilen sayının ikiye bölümünden kalan 0 değilse sayı tektir. Kalan 0 ise sayı çifttir ve sayı bir azaltılmalıdır.
- Koşullu Yürütme – Girilen sayı tek mi? Tek ise döngü girilen sayıdan başlayıp ikişer ikişer azalarak gitsin. Fakat çift ise girilen sayıdan bir çıkarttıktan sonra döngü aynen devam etsin.
- Tekrarlama – Girilen sayıdan başlayıp 1’e kadar ikişer ikişer azalarak devam eden döngü
Akış Şeması
#9 – 1’den 100’e kadar içinde 3’e tam bölünebilen sayıların bulunmadığı sayıları ekrana yazdıran akış şeması
- Girdi – Yok
- Çıktı – 1’den 100’e kadar içinde 3’e bölünebilen sayıların bulunmadığı sayılar
- Matematik – Döngüden gelen sayının 3’e bölümünden kalan 0 ise sayı 3’e tam bölünebilen bir sayıdır.
- Koşullu Yürütme – Döngüden gelen sayının 3’e bölümünden kalan 0 mı? Kalan 0 ise 3’e tam bölünüyordur ve bu sayıyı ekrana yadırmadan döngüye geri dön. Kalan 0 değilse bu sayıyı ekrana yadır ve döngü aynen devam etsin.
- Tekrarlama – 1’den 100’e kadar birer birer artarak devam eden döngü
Akış Şeması
#10 – Ekrana “1/2 2/3 3/4 4/5 5/6 7/8 8/9 9/10” şeklinde yazdıran akış şeması
- Girdi – Yok
- Çıktı – 1/2 2/3 3/4 5/6 7/8 8/9 9/10
- Matematik – Paydada ki sayı paydan bir fazla
- Koşullu Yürütme – Döngüden gelen sayının 6 mı? 6 ise ekrana yazdırmadan döngüye geri dön, değilse ekrana “d / (d+1)” şeklinde yazdır.
- Tekrarlama – 1’den 9’a kadar birer birer artarak devam eden döngü