Ufukta Matlab var
Matlab serimize devam ediyoruz. Meraklıları kaçırmasın!
Bu yazımızda, hazırlamak istediğimiz M-dosyalarında kullanacağımız ve birçok programlama dilinden de aşina olduğumuz döngüler ve şartlı durumları inceleyeceğiz. Bu döngüler ve şartlı deyimler işlem algoritmamızın daha kısa sürede sonuca varmasını veya amaca bağlı olarak daha fazla iterasyon yapmasını sağlar. Bu işlemler sayesinde önceden yapılan birçok uygulamanın etkisini daha sonraki safhalara aktarabiliriz. Şimdi bunları inceleyelim:
IF ŞARTLI DEYİMİ:
Komut akışı aşağıda görülen bu şartlı deyimde eğer sunduğumuz mantıksal deyim doğruysa işlem if-end arasında olacaktır. Aksi halde ise yani mantıksal deyim yanlışsa bu komut ifadelerini atlayıp sonraki komutları irdeleyecektir.
if mantıksal deyim
komut ifadeleri
end
Buna ilaveten iç içe geçmiş olan if şartlı deyimleri kullanılabilir. Şimdi if şartlı deyiminin kullanımını bir örnekle irdeleyelim:
SORU: Bir şehirde yapılan araba yarışlarında arabaların ağırlığı(kütlesi) ve hızına göre 2 pist bulunmaktadır. Bu pistler arabaların kinetik enerjilerine göre düzenlendiyse ve eşik değer 1 milyon joule olduğuna göre ve de kinetik enerjisi bu eşik değerin üstünde olan arabalar 1. pistte yarıştığına göre ağırlığı 350 kg, hızı 73 m/sn olan bir arabanın hangi pistte yarışacağını bulunuz?
Ek=m*v2/2
m=350;
v=73;
if Ek >1000000
Pist =1else
Pist =2
End
>> m = 350 ve v=73 için Kinetik Enerji ve buna göre pist no:
Ek = 932575
Pist = 2
Aynı mantıkla ifademizin içeriğini değiştirerek farklı şartlı deyimlerle daha detaylı işlemler yapabiliriz.if deyiminin daha fazla koşula bağlanmasını sağlayan else ve elseif koşulları da if�li ifadenin aksini belirten durumları belirtir.
Elseif deyimi de mantıksal şarta sahiptir ve kendisinden önceki şartlı ifadenin yanlış olması durumunda işleme girer. Else şartlı ifadesi de verilen şartlı ifadenin doğru olmadığı durumda işleme girer.Bu kullanımın nasıl gerçeklendiğini merak edenler yukarıdaki sorunun çözümünde kullanılan komutlarda else ifadesinin nasıl kullandığımızı görebilir.
SWITCH-CASE YAPISI:
Bu yapıda herhangi bir durumun değişik durumlara göre alabileceği değişik sonuçları ve bu sonuçların doğuracağı yeni sonuçları sınıflandırmak esastır diyebiliriz. Temel yapı:
Switch durum(deyim)
Case değer1
Komut ifadeleri
Case değer 2
Komut ifadeleri
.
.
.
otherwise
Komut ifadeleri
end
Yukarda görüldüğü gibi durumun alabileceği çeşitli değerlere göre sonucu değişiyor. Eğer hiçbir değerde durum oluşmazsa bu sefer de otherwise satırı ile durumu tek bir sonuç altında toplayabiliriz. İşte aynı mantıklı bir örnek soru daha:
SORU: İki pistte yarış yapılacaktır. 1.pistte yarışabilmek için arabaların kinetik enerjisinin 60000,2. pistte yarışabilmek için ise 90000 olması gerekmektedir. Kütlesi ve hızını bildiğimiz bir arabanın herhangi bir piste girip-giremeyeceğini gösteren bir program hazırlayınız:
% kütlesi ve hızı verilen bir cismin
% kinetik enerjisinin hesabi
m=input('Lütfen kütle değerini giriniz(kg)=')
v=input('Lütfen cismin hız değerini giriniz(m/s)=')
Ek=m*v2/2
switch Ek
case 60000
disp ('1.piste girebilir')
case 90000
disp('2.piste girebilir')
otherwise
disp('herhangi bir kategoriye giremez')
end
Lutfen kütle değerini giriniz(kg) =
m = 60
Lütfen cismin hız değerini giriniz(m/s) =
v = 61
>>Ek =111630
Herhangi bir kategoriye giremez
FOR VE WHILE DÖNGÜLERİ:
For döngüsü,birden fazla kez tekrarlamak istediğimiz komutları veya işlemlerin sayısın baştan belirleyip o sayı kadar tekrarlatma imkanını sağlayan döngüdür.Yani belirli kez durumu tekrarlama şansı verir. While döngüsü ise eğer durum doğruluğu elverişliyse işlemi sonsuz kez yapar .
FOR I = 1:N,
FOR J = 1:N,
A(I,J) = 1/(I+J-1);
END
END
Bunlara ilave olarak for ve while döngülerinde döngüden çıkarak işleme döngü dışından çalışmasını sağlayan "break" ifadesi vardır. Aynı zamanda iç içe döngülerde eğer break ifadesini kullanırsak sadece en içteki döngüden çıkmış oluruz. NOT: GEÇEN AY SINAVLARIMDAN DOLAYI MATLABLA İLGİLİ GELEN MAİİLERİ HENÜZ YENİ OKUYABİLDİM. ÖNCELİKLE CEVAPLARDA OLAN BU GECİKMELERDEN DOLAYI ÖZÜR DİLERİM. GELEN HER MAİLE EN KISA ZAMANDA CEVAP VERMEYE ÇALIŞACAĞIM. HERKESE İYİ ÇALIŞMALAR…