4. DÖNGÜ YAPILARI 4.1. While Yapısı 4.2. For Yapısı

4. DÖNGÜ YAPILARI
4.1. While Yapısı
while döngüsü, programda tekrar eden bir eylem var ise kullanılır. while döngüsü belirlenen
bir şart SAĞLANDIĞI SÜRECE döngü devam eder. Genellikle while komutu yazılarak yazılan
programlarda while döngüsü içinde bu koşulu ihlal edecek bir ifade bulunur.
while koşul
komut_1
komut_2
…
komut_n
end
Örnek: Ekrana 10 defa “Deneme” yazdıran bir program yazınız.
i=0;
while i<10
disp(“Deneme”);
i=i+1;
end
Örnek: 5’den 10’a kadar olan sayıların toplamını bulan bir program yazınız.
a=5;
toplam=0
while a<10
a=a+1
toplam=toplam+a
end
While döngüsü birden fazla koşula bağlı olarak oluşturulabilir. Bu durumda koşullar if
yapısında olduğu gibi ( && - ve) ya da ( || - veya ) koşulları ile birbirine bağlanmalıdır.
4.2.
For Yapısı
Döngüdeki işlem sayısını önceden belirleyerek ve bu sayıya ulaşıp ulaşmadığını bir sayaç ile
denetleyerek gerçekleştirilen döngü yapıları for yapılarıdır.
for sayac = başlangıç : bitiş
komut_1
komut_2
…
komut_n
end
Örnek: 1’den 20’ye kadar sayıların toplamını bulan program
23
toplam = 0 ;
for x = 1:20
toplam = toplam + x;
end
disp(toplam);
Örnek: Ekrandan girilen bir sayıya kadar olan sayıların çarpımını bulan program
sayi=input(‘lütfen bir sayı giriniz=’)
carpim=1 ;
for i=1:sayi
carpim=carpim*i;
end
disp(carpim);
4.3.
break ifadesi
FOR ve WHILE döngülerine ilaveten bir program akışını kontrol edebilmenin diğer bir yolu
break ifadesini kullanmaktır. Break ifadesini döngü gövdesi içerisinde kullanmak, döngünün
durmasını ve döngüden sonra gelen ilk ifade veya komutun işletilmesini sağlar. Aşağıdaki örneği
inceleyiniz.
for j=2:6
if j==4
disp(j);
break;
end
end
disp(‘döngü sonlandırıldı’)
4.4.
İç içe döngüler
Bazı işlemlerde bir döngünün içerisinde başka bir döngü kullanmak gerekebilir.
Örnek : Kullanıcının girdiği bir N sayısına göre aşağıdaki x değerini hesaplayan bir program yazınız.
N=input(‘Bir Sayı giriniz = ’);
toplam=0;
for i = 1:N
ic_toplam = 0
for j = 1:N
ic_toplam = ic_toplam + i/(j^2);
end
toplam = toplam +ic_toplam;
end
disp(toplam);
Örnek : Kullanıcının girdiği bir N sayısına göre aşağıdaki x değerini hesaplayan bir program yazınız.
24
1
!
N=input(‘Bir Sayı giriniz = ’);
toplam=0;
for i = 1:N
ic_carpim = 1;
for j = 1:i
ic_carpim = ic_carpim *i;
end
toplam = toplam +1/ic_carpim;
end
disp(toplam);
Örnek: Kullanıcının verdiği x sayısını kullanarak aşağıdaki değeri hesaplayan bir program yazınız.
!
!
!
⋯
!
Denklemin genel formülü yazılırsa daha kolay bir şekilde program yazılabilir.
x
!
x=input(‘Bir Sayı giriniz = ’);
toplam=0;
for i = 0:10
ic_carpim = 1;
for j = 1:i
ic_carpim = ic_carpim *i;
end
toplam = toplam +x/ic_carpim;
end
disp(toplam);
Örnek : Kullanıcının girdiği bir N sayısına göre aşağıdaki x değerini hesaplayan bir program yazınız.
!
N=input(‘Bir Sayı giriniz = ’);
toplam=0;
for i = 1:N
ic_carpim = 1;
for k = 1:i
ic_carpim = ic_carpim *k;
end
ic_toplam=0;
for j=i:N-i
ic_toplam=ic_toplam+sqrt(j);
end
toplam = toplam +(1/ic_carpim)*ic_toplam;
end
disp(toplam);
25
4.5.
Alıştırmalar
1. Kullanıcının girdiği bir N sayısına kadar olan 3’e bölünebilen bütün sayıların karelerinin
toplamını bulan bir program yazınız.
2. Kullanıcı tarafından girilen herhangi bir sayının basamaklarını tersten alt alta yazan bir program
yazınız.
Örneğin, sayi = 65852364 olsun (long int)
Çıktı
4
6
3
2
5
8
5
6
3. Kullanıcının girdiği bir N sayısına göre aşağıdaki formülü hesaplayan bir program yazınız
1
√
4. Kullanıcıdan aldığı bir N sayısına kadar olan bütün sayıların
a. Aritmetik Ortalamasını
b. Standart Sapmasını
c. Harmonik Ortalamasını
d. Geometrik Ortalamasını
hesaplayıp ekrana yazdıran bir program yazınız.
5. Basamaklarının küplerinin toplamı kendisine eşit olan üç basamaklı sayıları bulan bir program
yazınız. Örneğin 153 sayısı
153=13+53+33
6. Basamaklarının faktöriyelleri toplamı kendisine eşit olan sayıları bulan bir program yazınız.
(10000’e kadar olan sayıları kontrol ediniz )
Örneğin;
1!=1
2!=2
1!+4!+5!=145
4!+0!+5!+8!+5!=40585
7. Kullanıcı tarafından girilen iki sayının
a. OBEB
b. OKEK
değerlerini bulunuz
8. Kullanıcının girdiği bir sayının asal sayı olup olmadığını bulan bir program yazınız
9. Kullanıcının girdiği bir sayıya kadar olan bütün asal sayıları bulan bir program yazınız
10. Kullanıcının girdiği bir sayının asal bölenlerini bulan bir program yazınız.
11. Kullanıcının girdiği bir x sayısının aşağıdaki değerlerini bulan programları yazınız
sin x
cos
1
3!
5!
7!
2!
4!
6!
…
…
15!
14!
26