Döngü (loop)
Yazan : Şadi Evren ŞEKER
Bilgisayar programlama mantığının en önemli öğelerinden birisidir. Buna göre bilgisayarın tekrarlaması istenen fiiller bir döngü içerisine yerleştirilir ve döngü sonu gelene kadar bu fiiller tekrarlanır.
Bir döngüyü oluşturan 3 ana unsur bulunur:
- ilkleme (başlangıç değeri) (initialisation)
- koşul (bitiş değeri) (condition)
- adım (hareket değeri) iteration
Bu değerlerden birisinin eksik olması veya bulunmaması durumunda döngüde problem var demektir.
Örneğin C / C++ JAVA ve C# dillerinin hepsinde ortak olan aşağıdaki döngü yazılımını (syntax) inceleyelim:
for(int i = 0 ; i< 10; i++){
// eylem
}
Yukarıdaki kodda // yorum olarak yazılan eylem 10 kere tekrarlanır. Buradaki 3 unsuru sıralayalım:
ilk değer: i= 0
bitiiş değeri : i<10
adım değeri : i++
bu değerlerden birisinin bulunmaması durumunda döngüde beklenmeyen durulmar oluşabilir örneğin sonsuz döngü (fasit daire, infinite loop) oluşması veya döngünün hiç çalışmadan çıkması gibi durumlar görülebilir.
Döngüler adımsal (iteratif) programlamanın ana elemanlarıdır. Bir programlama dili yapısal ise bu dilde tekrarlı alt programların (sub program) bulunması ve her alt programın yukarıda listelenen unsurlara göre tekrarlanabilmesi gerekir.
Aşağıda basit bazı döngü örnekleri verilmiştir:
C dili ile ekrana 1’den 10’a kadar sayıları basan program:
for(int i = 0 ;i<10 ; i++){
printf("%dn",i);
}
Java dilinde ekrana 10’dan 0’a kadar sayıları basan kod:
for(int i = 10 ; i>0;i--){
System.out.println(i);
}
C++ dilinde ekrana 10 kere “sadi” yazan kod:
for(int i = 0;i<10;i++){
cout << "sadi" << endl;
}
C# dilinde ekrana 1’den 10’a kadar olan sayıların toplamını yazan kod:
int toplam=0;
for(int i = 0;i<=10;i++){
toplam += i;
}
Console.writeln(toplam);
Yukarıdaki kodlar dikkatlice incelendiğinde hepsinin for döngüsü ile yazıldığı farkedilebilir. Genelde bir dilde bulunan döngüler şunlardır:
- for döngüsü
- while döngüsü
- do/while döngüsü
Yukarıda for döngüleri detaylıca gösterilmiştir. Döngünün ana unsuru olan başlangıç, koşul ve adım değerlerinin yerleri değiştirerek bütün for döngüleri while döngüsü şeklinde de yazılabilir:
Bir while döngüsünün yapısı aşağıdaki şekildedir:
ilkleme
while(koşul){
adım
//eylem
}
Yukarıda da görüldüğü üzere while komutuna parametre olarak sadece koşul verilmekte ve döngünün başlangıç değeri döngüye girilmeden hemen önce belirtilmektedir. Yine döngünün adım değeri döngü içerisinde belirtilmektedir.
klavyeden girilen herhangi bir tamsayının dijit sayısını bulan programı c de yazınız.
klavyeden girilen herhangi bir tamsayının dijit toplamlarını bulan programı c de yazınız. bunlar bnm sorularım hocam çözümünü tam olarak istemiyorum tabiki for ve while ile çözümleri isteniyor bnden. yardımcı olabilirseniz çok sevinirim..
Bu soruları, sürekli olarak 10’a bölme ve mod alma işlemleri ile çözebilirsiniz.
Örneğin sayımız 1234 olsun. Bu sayının hane sayısını ve toplamlarını bulan bilgisayar kodunun çalışmasını adım adım aşağıda yazıyorum.
n=1234 için n değeri 0 olana kadar
toplam = 0
sayaç = 0
x = 1234 %10 –> 4
toplam = toplam + x –> toplam = 4
sayaç ++ –> 1
n = n / 10 –> 123
x = 123 % 10 –> 3
toplam = toplam + x –> toplam = 4 + 3 –> toplam = 7
sayaç ++ –> 2
n = n / 10 –> 12
x = 12 % 10 –> 2
toplam = toplam + x –> toplam = 7 + 2 –> toplam = 9
sayaç ++ –> 3
n = n/ 10 –> 1
x = 1 % 10 –> 1
toplam = toplam + x –> toplam = 9 + 1 –> toplam = 10
sayaç ++ –> 4
n = n / 10 –> 0
n’in değeri 0 olduğu için duruyoruz. Toplam değişkeninde hane sayılarının toplamı olan 10 ve sayaç değişkeninde kaç hane olduğu bulunuyor.
başarılar