DÖNGÜLER
Döngüler MATLAB Akış diyagramının bir parçasında aynı işlemlerin bilgisayara birden fazla yaptırılacağı durumlarda döngüler kullanılır. Matlab da 2 farklı döngü yapısı vardır. for döngüsü while döngüsü
Döngüler MATLAB for döngüsü while döngüsü for i=4:1:17 while a>=10 H E İşlem bloğu İşlem bloğu son son
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 vebu sayıyaulaşıp ulaşmadığını bir sayaç ile denetleyerek gerçekleştirilen çevrim yapıları (FOR) Çevrimin sona ermesini bir koşula bağlı olarak kontrol eden çevrim yapıları (WHİLE)
ForDöngüsü for döngüsünün genel yapısı for döngü değişkeni = başlangıç: artım: bitiş Akış Diyagramı işlemler Genel Kullanımı: for k=başlangıç:artım:bitiş işlemler Doğru k > son? Yanlış Komut Gurubu k=başla k=k+adım
Örnek: 1 den 20 ye kadar sayıların toplamını bulan program. (for1.m) clear 0 for x = 1:20 toplam + x toplam toplam 21 28 36 45 55 66 78 91 >> toplam=0; >> for x = 1:20 toplam + x 1 3 6 10 15 105 120 136 153 171 190 210
Örnek: 1 den 10 a kadar olan sayıların küplerinin toplamını bulan program Top = 10 i= 1 i 3 % dosya ismi: for1.m % Örnek: i = 1 den 10a kadar sayıların küpleri toplamı Top(i^3) Top = 0; for i = 1:1:10 Top = Top + i^3; fprintf( Top = %0.0f\n',Top); >> % dosya ismi: for1.m >> % Örnek: i = 1 den 10a kadar sayıların küpleri toplamı sum(i^3) >> Top = 0; >> fori = 1:1:10 Top = Top + i^3; >> fprintf('top = %0.0f\n',Top); Top = 3025
% dosya ismi: for2.m % Örnek: i = 1 den 10a kadar sayıların küpleri toplamı Top(i^3) Top = 0; for i = [1,2,3,4,5,6,7,8,9,10] Top = Top + i^3; fprintf( Top = %0.0f\n',Top); >> % dosya ismi: for2.m % Örnek: i = 1 den 10a kadar sayıların küpleri toplamı Top(i^3) Top = 0; for i = [1,2,3,4,5,6,7,8,9,10] Top = Top + i^3; >> fprintf('top = %0.0f\n',Top); Top = 3025
İçiçeforDöngüsü Đçiçe if yapısı gibi içiçe for döngüleri de bazı işlemlerde kullanılır. Program çalıştırldığında, önce ilk for un ilk elemanı ile ikinci for döngüsünün tüm elemanları işleme girer. Sonra ilk for döngüsünün ikinci elemanı ile ikincifor döngüsünün tüm elemanları işleme girer. for loopvar1 = loopvector1 Komut 1 for loopvar2 = loopvector2 KomutA 1 KomutA 2 KomutA n Komut 2 Komut n Top= 0; for I = 1:10 for J = 1:15 Top= Top+ 1; fprintf('top = %0.0f\n',Top); Top = 15 Top = 30 Top = 45 Top = 60 Top = 75 Top = 90 Top = 105 Top = 120 Top = 135 Top = 150
Örnek: 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 Top=y(1); for i=1:5 y(i+1)=2*y(i); for i=1:5 Top=Top+y(i+1) >> y(1)=1 Top=y(1); for i=1:5 y(i+1)=2*y(i); for i=1:5 Top=Top+y(i+1) y = 1 2 4 8 16 32 Top = 3 Top = 7 Top = 15 Top = 31 Top = 63
fordöngüsü ile yineleme Örnek: 3X4'lük bir matrisin elemanları A(i,j)=1/(i+j-1) formülüne göre hesaplansın; m=3; n=4; for i=1:m for j=1:n A(i,j)=1/(i+j-1)
>> m=3; n=4; for i=1:m for j=1:n A(i,j)=1/(i+j-1); 1 1.0000 0.5000 1.0000 0.5000 0.3333 1.0000 0.5000 0.3333 0.2500 1.0000 0.5000 0.3333 0.2500 0.5000 0 0 0 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0 0 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0 0 0 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0 0 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667
while döngüsü MATLAB while döngüsünün genel yapısı while şartlı durum işlemler Şartlı durum doğru olduğu sürece işlemler tekrarlanır.
WhileDö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 Yanlış (0) Akış Diyagramı ifade doğru (1) mu? Doğru (1) Komut Gurubu
Örnek :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. q=pi; while q>0.01 q=q/2 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 q = 1.5708 q = 0.7854 q = 0.3927 q = 0.1963 q = 0.0982 q = 0.0491 q = 0.0245 q = 0.0123 q = 0.0061
Örnek : a=5 while a<10 a=a+1 >> a=5 while a<10 a=a+1 5 6 7 8 9 10
Örnek : Ekrana bir ifadeyi 10 kez yazan bir programı whiledöngüsü kullanarak yazınız. a=0 while a<10 disp( İnsaatMühisliği Bölümü') a=a+1 >> a=0; >> while a<10 disp('insaat Mühisliği Bölümü') a=a+1 İnsaat Mühisliği Bölümü 1 İnsaat Mühisliği Bölümü 2 İnsaat Mühisliği Bölümü 3 İnsaat Mühisliği Bölümü 4 İnsaat Mühisliği Bölümü 5 İnsaat Mühisliği Bölümü 6 İnsaat Mühisliği Bölümü 7 İnsaat Mühisliği Bölümü 8 İnsaat Mühisliği Bölümü 9 İnsaat Mühisliği Bölümü 10
Örnek: >> y=zeros(1,2) y=zeros(1,2) y = x=[2 3] while x>=0 0 0 y=y+x x=x-1 >> x=[2 3] disp(y) x = 2 3 >> while x>=0 y=y+x x=x-1 disp(y) y = 2 3 x = 1 2 2 3 y = 3 5 x = 0 1 3 5 y = 3 6 x = -1 0 3 6
Ödev 6: forveya whiledöngü yapılarını kullanarak bir Matlab programı yazın. Ödev, 7 Nisan 2014 tarihine kadar Arş. Gör. Ufuk Ödev, 7 Nisan 2014 tarihine kadar Arş. Gör. Ufuk KANDİL eteslim edilmelidir.