You are on page 1of 42

Bilgisayar Programcılığı (UE)

Oturum 6-7: Algoritma ve Programlamaya


Giriş

DÖNGÜLER (1-2)
Osman Bülent Baykal

1
Bilgisayar Programcılığı (UE)

Oturum 6-7: Algoritma ve Programlamaya


Giriş
Osman Bülent Baykal

2
DÖNGÜLER (1-2)
6 ve 7 HAFTA KONULARI
DÖNGÜ YAPILARI
DÖNGÜ YAPILARI İLE İLGİLİ BİLİNMESİ GEREKEN ÖZELLİKLER
ÖRNEKLER
ÇOK SEÇİMLİ YAPI
WHILE
DO-WHILE
FOR
İÇ İÇE DÖNGÜ YAPISI
İKİ AKIŞ DİYAGRAMI SONUCUNU BULALIM

ue.aydin.edu.tr 3
DÖNGÜ YAPILARI

Programın belirli bir kesiminin birden fazla tekrarlanması işlemine döngü denir.
Bir değişken belirli bir değerden başlayıp, son değeri alıncaya kadar belirtilen
işlemler tekrarlatılır. Tüm program dillerinde bu işlemi gerçekleştiren bir komut
bulunur.

ue.aydin.edu.tr 4
DÖNGÜ YAPILARI

Döngü değişkeni : Döngünün her tekrarında tekrarlanan değeri.


Başlangıç değeri : Döngünün hangi değerden başlayacağı.
Bitiş değeri : Döngünün hangi değerde sona ereceği.
Artım değeri : Döngünün her tekrarında artımın ne kadar
olacağı

ue.aydin.edu.tr 5
BİLGİ

 Daha önceki bölümlerde işlemleri tekrar etmek için sayaç kullanmıştık.


Sayaç değişkenine başlangıç değerini atadıktan sonra artırma ya da
azaltma işlemi yapıyorduk ve sayacın son değerine ulaşıp
ulaşmadığını her işlemden sonra kontrol ediyorduk.
 Döngü yapıları bu işlemleri oldukça basitleştirmektedir.

ue.aydin.edu.tr 6
ÖRNEKLER

Örnek1: 1 den 100 e kadar sayıların toplamını bulup toplamı ekrana


yazdıran akış diyagramını sayaç ve döngü mantığı kullanarak yapınız.

ue.aydin.edu.tr 7
ÖRNEKLER

Örnek2: 1 den 100 e kadar çift sayıların toplamını bulup toplamı


ekrana yazdıran akış diyagramını sayaç ve döngü mantığı kullanarak
yapınız.

ue.aydin.edu.tr 8
DÖNGÜ İŞLEMLERİYLE İLGİLİ BİLİNMESİ GEREKEN
ÖZELLİKLER

 Başlangıç değeri, son değerden küçük ise bu döngüye artan döngü adı
verilir.
 Başlangıç değeri, son değerden küçük ise bu döngüye artan döngü adı
verilir.
 Başlangıç değeri, son değerden büyük ise bu döngüye azalan döngü
adı verilir.
 Azalan döngülerde artım değeri mutlaka (-) değerini almalıdır.
 Döngünün içerisine dışarıdan girilemez, döngü içerisinden dışarı
çıkılabilir.
 Döngünün başlangıç ve son değeri eşit ise bir kez tekrarlanır.

ue.aydin.edu.tr 9
ÖRNEKLER

Örnek3: 10 kişilik bir işyerinde maaş ortalamalarını bulan akış


diyagramı.

ue.aydin.edu.tr 10
HATIRLATMA
DEYİMLER (Döngü, Denetim)

Bir algoritmanın çatısı denetim ve döngü deyimleri üzerine kurulur. Bu


deyimler olmasa idi çok basit programlar yazabilirdik. Denetim deyimi
program akışını belirli bir koşula göre farklı yöne dallandıran ifadelerdir.
Döngü deyimleri de belirli bir kod parçasının farklı değerler üzerinde
tekrar tekrar çalıştırılmasını sağlarlar. Örneğin, diziye dayalı
uygulamalar, genel olarak döngü deyimleri üzerine kurulur.
Uygulamalarda sıkça döngü kurulması gerekmektedir. Buda döngü
deyimleri ile yada Yapısal programlarda kesinlikle önerilmeyen goto
deyimiyle yapılabilir.

11
HATIRLATMA
DÖNGÜ DEYİMLERİ

Belirli kod parçasının veya algoritmik ifadenin değişen veriler üzerinde


tekrarlanması için kullanılır . Döngü deyimleri kod uzunluğunu oldukça azaltır.
Bazen de , döngü deyimlerini kullanmamız kaçınılmadır. Döngü deyimeleri iki
sınıfa ayrılır
a) Koşulu başta sınayanlar

b) Koşulu sonda sınayanlar

Koşulu başta sınamak, daha çevrime girmeden, döngü koşuluna bakılması ve


koşul olumluysa çevrimin tekrarlanmasıdır. Koşul olumsuzsa çevrim hiç
yürütülmez. Koşulun sonda sınanması ise, çevrim içerisindeki kodun bir kez
yürütülmesi ve tekrara geçilmeden önce koşul sınaması yapılmasıdır.
Programlama dillerinin çoğunda FOR, WHILE; DO_WHILE kullanılmaktadır.
FOR ve WHILE koşulu baştan sınarlar, DO-WHILE koşulu ise koşulu sondan
sınar. DO ve WHILE da çevrim içine hiç girilmeyebilir, DO-WHILE da ise
çevrim en az bir kere yürütülür.

12
HATIRLATMA
WHILE DEYİMİ

En yalın döngü deyimidir. Koşul çevrim içine girmeden sınanır, olumsuz


olduğunda çevrime hiç girmez ve döngü içerisinde yapılanlar atlanır.

13
HATIRLATMA
WHILE deyimine ÖRNEK

Bankaya yatırılan 1000 TL nin yıllık %8 faizle kaç yıl sonra 5000 TL
olacağını belirleyen program tasarlayınız. İpucu: Faiz sonucu
hesaplanan para tam olarak 5000 TL olmayabilir. 5000 i geçince çevrim
hemen durmalıdır.

ue.aydin.edu.tr 14
HATIRLATMA

WHILE (PARA< 5000) ( para=para+para*0.08)


İlk önce değişkenlere başlangıç değeri verilmiştir. Paranın başlangıç değeri
1000, ay’ın ise 0 dır. Hemen ardından while(para<5000) şeklinde döngü
kurulmuştur. Para adlı değişkenin içeriği 5000’den küçük olduğu sürece
döngü koşulu olumlu olacak ve çevrim sürecektir. Ay değişkeni kaç aylık
hesaplama yapıldığını tutmak için vardır.

ue.aydin.edu.tr 15
HATIRLATMA
DO-WHILE DEYİMİ
Bu döngü deyiminde , çevrim en az bir kere gerçeklenir. Çünkü koşul sınaması
işlemlerin sonunda yapılmaktadır.

ue.aydin.edu.tr 16
HATIRLATMA
FOR DEYİMİ
FOR koşul satırında ayrık üç parametre vardır birisi ‘’döngü sayacına başlangıç değeri
verilmesi’’ ikincisi ‘’koşul’’ ve üçüncüsü de ‘’sayacın her çevrimde nasıl arttırılacağı
eksiltileceği’’ ifadesidir. Görüldüğü gibi döngüye girmeden önce sayaç değişkene başlangıç
değeri atılmakta ve daha sonra koşula bakılmaktadır. Döngü içerisindekiler de yapıldıktan
sonra sayaç değişkeni değiştirilmektedir. ÖRNEK: 1 ile 100 arasındaki tek sayıların karesini
hesaplayıp ekrana yazan bir program tasarlayın
FOR (K=1; K<100; K+=2)
KARE=K*K

ue.aydin.edu.tr 17
HATIRLATMA
FOR örneğinin açıklanması
Verilen programda döngü sayacı K adlı değişkendir. Başlangıç olarak 1
değeri atanmıştır. Döngü koşulu ise K sayacının 100 den küçük olmasıdır.
Bu olduğu sürece çevrim yinelenir. Döngü sayacının çevrim sonlarında ne
kadar artacağı K+=2 ifadesi ile verilmiştir. Bu her çevrimde sayaç 2 artacak
anlamındadır.

ue.aydin.edu.tr 18
ÖRNEKLER

Örnek4 : Bir ilin 1970 yılında nüfusu 30000 dir . Her 4 yılda nüfus artışı %3.8
dir . Buna göre 2004 yılında bu ilin nüfusunun ne kadar olacağını bulduran
akış diyagramı.

ue.aydin.edu.tr 19
ÖRNEKLER

Örnek5 : Bir kuruluşta çalışan 175 kişiye ikramiye verilecektir. Çalışan kişinin
hizmet yılı 5 yıl ve üstünde ise 500 TL , 5byıldan az ise 300 TL ikramiye
verilmesi planlanmıştır. Çalışan personele ödenecek ikramiye bedelini bulan ve
görüntüleyen bir akış diyagramı.

ue.aydin.edu.tr 20
İÇ İÇE DÖNGÜ YAPISI

 Bazı hallerde birden çok döngüyü iç içe kullanmak gerekebilir. Bir


döngü içerisinde , bir veya birden fazla döngünün kullanılması
durumunda dıştaki döngünün her değeri için içteki döngü son
değeri kadar tekrarlanır.

ue.aydin.edu.tr 21
İÇ İÇE DÖNGÜ YAPISI

İç içe döngü yapıları, bir döngü içerisinde başka bir döngü ya da döngülerin
kullanıldığı yapılardır. İç içe döngülere verebileceğimiz en güzel örneklerden
biri zaman sistemimizdir. Bir gün, 24 saatten, 1 saat 60 dakikadan, 1 dakika
60 saniyeden ibarettir ve hepsi iç içedir. Zaman sistemindeki en içteki
döngüyü saniye temsil etmektedir. Saniye en son değerine ulaştığında yani
60 değerini aldığında dıştaki döngü bir artar yani dakikada bir artar. Dakika
en son değerine ulaştığında dıştaki döngü yani saat bir artar. Saat son
değerine ulaştığında yani 24 olduğunda bir gün tamamlanmış olur.

ue.aydin.edu.tr 22
ÖRNEK

Örnek 1: Bir ilde 7 tane ilçe , her ilçede 12 tane köy, her köyde 3 tane okul
bulunuyor. Klavyeden her okulda bulunan öğrenci sayıları giriliyor. Her ilçedeki
ve köydeki öğrenci toplamını tüm ilçe, köy, ve okuldaki öğrenci toplamını bulan
akış diyagramı.

ue.aydin.edu.tr 23
Örnekler

 Örnek 2-2: d’den r’ye kadar olan harfleri


ekrana yazdırınız
 char i; for (i ='d'; i <= 'r'; i++)
{ Console.WriteLine(i); }

ue.aydin.edu.tr 24
Örnekler
 Örnek 2-3: 10’dan 0’a geriye doğru sayan ve sayıları
ekrana yazdıran programı yazdırınız. int i; for (i=10;i>=0;i--)
Console.WriteLine(i);

ue.aydin.edu.tr 25
BUNDAN SONRAKİ SAYFADA İKİ AKIŞ
DİYAGRAMINI İCELEYİP SONUÇLARINI
BULALIM

ue.aydin.edu.tr 26
27
28
29
30
KISA BİR
TEKRAR
YAPALIM
ue.aydin.edu.tr 31
FOR DÖNGÜSÜ

Belirlenen başlangıç değerinden itibaren belirtilen koşul sağlanana kadar


içine yazıldığı kod parçasını ardı ardına çalıştıran bir döngü çeşididir.
For döngüsünün kullanımı şu şekildedir;
Kullanımı:
for(başlangıç;koşul;artım) { yapılacak işler;)
Başlangıç, döngü kontrol değişkeni olarak da ifade edilebilir. Döngü
içerisinde bir sayaç görevini görür.
Koşul, döngünün ne kadar çalışacağını denetleyen mekanizmadır. Koşul
sağlanıyorken döngü çalışmaya devam eder. Koşul sağlanmadığında ise
döngü durur. Koşulda genellikle başlangıç değerinin durumu denetlenir.
Artım, başlangıç değerinin döngünün her adımda artma ya da azaltma
miktarını belirler. Eğer başlangıç değeri hiç değişmez ise sonsuz döngü
oluşur.

ue.aydin.edu.tr 32
AKIŞ DİYAGRAMI İLE FOR DÖNGÜSÜNÜN GÖSTERİLMESİ

ue.aydin.edu.tr 33
FOR için ÖRNEK

Örnek1 : 1’den 10’a kadar olan sayıları ekrana yazdırınız.

for(i=1;i<=10;i++) { Console.WriteLine(i); }
Yukarıdaki kodu incelediğimizde; Döngü kontrol değişkenimiz olan i’ye
1 değerini atayarak başlangıç değerimizi, Döngümüzün ne zamana kadar
döneceğini belirlediğimiz koşulumuzu i<=10 ifadesini, i++ ile de i
değerimizi döngümüzün her dönüşünde 1 arttıracağımızı belirliyoruz.

ue.aydin.edu.tr 34
FOR için ÖRNEK

Örnek 2: i=0’dan başlayacak ve j=10’dan başlayacak olan iki


değişkendir. i ve j birbirine eşit olana kadar iki değişkenin durumlarını
ekrana yazdıran programı yazınız.
for (i = 0, j = 10; i <= j; i++, j-- ) Console.WriteLine("i'nin "+i+" değeri için
j="+j);
İ=5 ve J=5 olana kadar döngü devam eder.

ue.aydin.edu.tr 35
WHILE için ÖRNEK

While döngüsü bir koşul sağlanıyorken dönmeye devam eder. Koşul


yanlış ( false ) sonucunu verdiği zaman ise sonlandırılır. Genel yazım şekli
şöyledir.
Kullanımı:
while(koşul) { yapılacak işler; }

ue.aydin.edu.tr 36
WHILE için ÖRNEK

Örnek1: 0’dan 20’ye kadar olan çift sayıları ekrana yazdırınız.


while (i <= 20) { Console.WriteLine(i); i = i + 2; }

ue.aydin.edu.tr 37
DO…WHILE Döngüsü

For ve While döngülerinde döngü bloklarının koşul sağlanmadığı takdirde hiç


çalıştırılmama ihtimali vardır. Ancak döngünün en az bir kere çalıştırılması
istenilen durumlarda Do-while döngüleri kullanılırlar. Do-While döngülerinde
koşul döngü içerisindeki işlemler bir kez gerçekleştirildikten sonra kontrol
edilir. Koşul doğru olduğu müddetçe de döngü içerisindeki işlemler
tekrarlanmayı sürdürür.
Genel yazım şekli şöyledir.
do { yapılacak işler; } while(koşul);

ue.aydin.edu.tr 38
DO-WHILE için ÖRNEK

Örnek: 1’den 20’ye kadar olan tek sayıları ekrana yazdırınız


do{ Console.WriteLine(i); i = i + 2; } while (i < 20)
Yukarıdaki örnek kod incelendiğinde koşulun do-while döngüsünün en
sonunda kontrol edildiğini görebilirsiniz.

ue.aydin.edu.tr 39
ÖRNEK

ÖRNEK : N sayısını ekrandan okutarak faktöriyelini hesaplayan ve


yazan akış şeması ve algoritma şöyledir.
NFAK = N! Değerini göstersin. ISAYI
= 1 den N e kadar olan sayıları göstersin.

ue.aydin.edu.tr 40
ue.aydin.edu.tr 41
Kaynaklar
1. …Algoritmayı Anlamak – Mustafa Eker
2. …Algoritma Tasarlama ve Programlamaya Giriş- Selami Eryılmaz
3. …C ile Programlamaya Giriş – Dr. Hasan H.Balık
4. …Pascal 7.0 ile Programlama A.Oral

ue.aydin.edu.tr 42

You might also like