5. HAFTA 18.03.2010
For Döngüsü Genel Kullanımı: for k=başlangıç:adım:son komutlar end Bir çok uygulamada belirli işlemlerin tekrar tekrar gerçekleştirilmesi gerekir. Programlamada bu işlemler grubunu çok sayıda tekrar etmek imkanı sağlayan yapılara ÇEVRİM, DÖNGÜ veya LOOP denir. Çevrim, bir tekrarlı işlem yapısıdır. Çevrimdeki işlem sayısını önceden belirleyerek ve bu sayıya ulaşıp ulaşmadığını bir sayaç ile denetleyerek gerçekleştirilen çevrim yapıları Çevrimin sona ermesini bir koşula bağlı olarak kontrol eden çevrim yapıları Genel Kullanımı: for k=başlangıç:adım:son komutlar end
for döngüsü ile yineleme Örnek 1: Aşağıdaki program döngü içindeki hesaplamayı 5 kez yürütür. y'nin ilk değeri 1 olsun. y(1)=1 for i=2:6 y(i)=2*y(i-1); end
for döngüsü ile yineleme Örnek 2: 3X4'lük bir matrisin elemanları şu formüle göre hesaplansın; m=3; n=4; for i=1:m for j=1:n A(i,j)=1/(i+j-1) end
Örnek 3: k=1 for n=0:0.2:1 x(k)=n; f(k)=n*n; k=k+1 end Bu koda f(x)=x2 fonksiyonu [0,1] aralığında ve 0.2 ile artan tüm değerler için çalışıyor. Alternatif gösterim şekli f=x.*x
While Döngüsü Önceden belirlenmiş belli bir durum gerçekleşinceye kadar gereken sayıda tekrar edilen ifadeleri içerir. Genel Kullanımı: while durum ifade_1 ifade_2 ….. ifade_n end
Örnek 1: Bu örnekte ilk değeri 3. 14 olan bir q değişkeninin değeri, 0 Örnek 1: Bu örnekte ilk değeri 3.14 olan bir q değişkeninin değeri, 0.01’den küçük olana kadar sürekli olarak yarılanır. Burada q’nun sondan bir önceki değeri olan 0.0123, 0.01’den büyük olduğu için döngünün içindeki komut son kez yürütülmüş ve q, 0.0061 bulunmuştur. q’nun son değeri 0.01’den küçük olduğundan döngü içindeki komut bundan sonra yürütülmemiştir q=pi; while q>0.01 q=q/2 end
Örnek 2: a=5 while a<10 a=a+1 end Örnek 3: Ekrana bir ifadeyi 10 kez yazan bir programı WHILE döngüsü kullanarak yazınız. a=0 while a<10 a=a+1; disp(‘Harita Mühendisliği Bölümü') end
Örnek 4: y=zeros(1,2) x=[2 3] while x>=0 y=y+x x=x-1 disp(y) end Çıktısı; 2 3 3 5 3 6
try…catch a=3 try x=5*a y=3*b catch z=a^2 end try…catch arasındaki ifadelerden x=5*a ifadesinde kullanılan a değişkeni, önceden tanımlanmıştır. Bu yüzden ifade, aynen işletilir. Bu deyimler arasındaki diğer bir ifade olan y=3*b önceden tanımlanmamış bir b değişkeni bulundurduğu için MATLAB bu noktadan itibaren catch ile end arasındaki ifadelerin işletilmesine geçer. Eğer try—catch arasında sadece x=5*a ifadesi bulunuyor olsaydı MATLAB asla catch---end arasındaki ifadeleri işletmeyecekti.
fprintf Fonksiyonu Genel kullanımı: fprintf(‘ekrana basılacak açıklama %f \n’, deger) Burada %f : Değerin reel sayı olduğunu gösterir \n : Bir satır atlatır deger : Ekrana yazılması istenen sayısal değişkenin adı Diğer yazım biçimleri: %g : Tamsayı değeri basar %e : Üstel değer basar
Açıklama: Örnek 1: >>fprintf(‘pi sayisi = %5.2f \n\n ‘, pi) SONUÇ: pi sayisi = 3.14 Açıklama: %5; eşitlikten sonraki boşluğu (5 karakter) .2f; ondalık hane sayısını (2 hane) \n; yazının altındaki boşluğu (2 satır) belirlemektedir.
fprintf('Döngünün başı\n'); for i = 4:-1:1 fprintf('MERHABA i = %g\n',i); end fprintf('\n Döngünün sonu.\n'); Örnek 2: for a=1:10 for b=1:10 carpim=a*b; fprintf(' %d * %d = %d\n ', a, b, carpim) end Örnek 3: