220 likes | 605 Views
M ATLAB ’ de P rogramlama. Makine Müh. & Jeoloji Müh. 2012-13/ Bahar. Matlab Ders Notları. K ontrol y apıları. 1) Karşılaştırma (Compare). IF - ElseIf -Else- End. S WITCH -Case- Otherwise - End. While - End. 2) Döngü (Loop). For - End. MATLAB Ders Notları. if Şartlı deyimi.
E N D
MATLAB’ de Programlama Makine Müh. & Jeoloji Müh. 2012-13/ Bahar Matlab Ders Notları
Kontrol yapıları 1) Karşılaştırma (Compare) IF-ElseIf-Else-End SWITCH-Case-Otherwise-End While- End 2) Döngü (Loop) For - End MATLAB Ders Notları
if Şartlı deyimi Bir mantıksal ifadeyi kontrol ederek bunun sonucuna göre mümkün seçeneklerden birini icra edebilen bir komuttur. IF Şartının Üç şekli vardır 3.Çok Koşullu IF Şart … ELSEIF … … ELSE … END 2.İki Koşullu IF Şart 1.işlem; ELSE 2. işlem END 1.Tek Koşullu IF Şart 1. işlem 2. işlem 3. işlem : END MATLAB Ders Notları
Matlabda Koşul Deyimleri 1) Tek koşullu : Karşılaştırmalı denetim deyimlerinden en sadeolanıdır. Eğer denetim ifadesi doğruysa deyimişletilir. Denetim ifadesi yanlışsa program deyimiatlar. if koşul ifadesi deyim end; a = input('bir a degeri giriniz'); if a < 50 sonuc = a * 5; end fprintf('carpim %d \n',sonuc);
Matlabda Koşul Deyimleri 2) İki koşullu : Bazen if ifadesindeki koşula bağlı olarak koşul doğru ise bir deyimin yanlış ise bir deyimin işletilmesi gerekir. İf koşul ifadesi deyim else deyim end a = input('bir a degeri giriniz='); if (a < 50) sonuc = a * 5; elseif (a == 50) sonuc = a / 5; else sonuc = 0; end fprintf('islem sonucu = %d \n',sonuc);
Örnek:Girilen iki sayının oranını bulan ve payda sıfır girildiğinde ekrana “üzgünüm sıfıra bölüm hatası var” mesajı yazdıran program clear pay = input(‘payı giriniz: '); payda = input(‘paydayı giriniz: '); if payda == 0 Disp(‘üzgünüm, sıfıra bölüm hatası var‘) else oran = pay/payda; Disp(oran); end MATLAB Ders Notları
Matlabda Koşul Deyimleri İf koşul ifadesi 1 deyimgrubu elseif koşul ifadesi 2 deyimgrubu elseif koşulifadesi 3 deyim grubu else deyimgrubu end 3) Çok koşullu : Bazen üç veya daha çok ifade grubundanseçmek istenebilir.
Matlabda Koşul Deyimleri a=input('Bir a degeri giriniz\n'); if (a>=0 && a < 50 ) disp('notunuz harf degeri = FF'); elseif (a >= 50 && a < 70) fprintf('notunuz harf degeri = DD\n'); elseif (a >= 70 && a < 80) fprintf('notunuz harf degeri = CC\n'); elseif (a >= 80 && a < 90) fprintf('notunuz harf degeri = BB\n'); else fprintf('notunuz harf degeri = AA\n'); end
Örnek:Girilen (okutulan) x ve y değerlerine göre aşağıdaki sonuc değerini bulan programı yazınız x>y ise sonuc= (x-y) x=y ise sonuc=(x-y)7 Değilse sonuc=x+y x=input('x değeri='); y=input('y değeri='); if x>y sonuc=sqrt(x-y) elseif x==y sonuc=(x-y)^7 else sonuc=x+y end ÇÖZÜM: MATLAB Ders Notları
Örnek:Girilen ay’a göre gün sayısını hesaplayan program clear ay = input('Kaçınçı ayın gün sayısını öğrenmek istiyorsunuz (1-12)= ' ); if ay==1 | ay==3 | ay ==5 | ay==7 | ay==8 | ay==10 | ay==12 disp(‘Bu Ay 31 günden oluşur‘) elseif ay==2 disp(' Bu Ay 28 günden oluşur') else disp(' Bu Ay 30 günden oluşur') end MATLAB Ders Notları
Uygulama: Kullanıcıdan alınan Vize ve Final notlarının ortalamasını (vize’ nin %40’ ı + Finalin %60’ ı) hesaplayan ve Harfli Notunu ekrana yazdıran bir program oluşturunuz (ipucu: vize = input(‘vize notunu giriniz: ‘); ) Not: Şart Harfli Not --------- ------------ Ortalama >= 90A 70 <= Ortalama<90B 50 <= Ortalama< 70 C DiğerF MATLAB Ders Notları
Uygulama: Kullanıcıdan alınan Vize ve Final notlarının ortalamasını (vize’ nin %40’ ı + Finalin %60’ ı) hesaplayan ve Harfli Notunu ekrana yazdıran bir program oluşturunuz (ipucu: vize = input(‘vize notunu giriniz: ‘); ) MATLAB Ders Notları
Ödev: Dışarıdan girilen xdeğerlerine göre aşağıdaki fonksiyonun değerini hesaplayan bir program yazınız. 1 < = x< 10 10 < = x MATLAB Ders Notları
Switch - Case Şartlı Deyimi, if, else ve elseif yapılarına alternatif çözüm sunar. Switch (durum) case (durum1) işlemler case (durum2) işlemler . . otherwise►isteğe bağlı end MATLAB Ders Notları
Switch – Case Yapısı • clc • val=input('birileücarasindabirsayigirin '); • switchval • case 1 • disp('birgirdiniz') • case 2 • disp('ikigirdiniz') • case 3 • disp ('ücgirdiniz') • otherwise • disp('birileücarasindadegergirmediniz') • end clc val=input('bir ile üc arasinda bir sayi girin'); if val==1 disp('bir girdiniz') elseif val==2 disp('iki girdiniz') elseif val==3 disp('üc girdiniz') else disp ('bir ile üc arasinda deger girmediniz') end
Örnek: clc aci = input ('bir açı değeri giriniz '); switch angle case {0,360} disp ('kuzey '); case {-180,180} disp('güney'); case {-270,90 } disp ('Dogu'); case {-90,270} disp ('Bati'); otherwise disp('Böyle bir yön yoktur'); end Bir pusulanın kuzeye göre verilen tamsayı açı değerine göre yönün ne olduğunu bulan Matlab kodunu yazınız.
Örnek: 1 ile 10 arasında girilen sayıların tek ya da çift olduğunu ekrana yazdıran programı yazınız MATLAB Ders Notları
Örnek: 1 ile 10 arasında girilen sayıların tek ya da çift olduğunu ekrana yazdıran programı yazınız MATLAB Ders Notları
Çözüm: 1 ile 10 arasında girilen sayıların tek ya da çift olduğunu ekrana yazdıran programı yazınız MATLAB Ders Notları
Uygulama : Girilen ay numarasına göre, o ayın gün sayısını veren programı switch komutu kullanarak yazınız. clear ay = input('bir ay numarası giriniz (1-12)='); switch ay case {1,3,5,7,8,10,12}; disp('Bu Ay 31 günden oluşur') case {2} disp('Bu Ay 28 günden oluşur') case {4,6,8,9,11}; disp('Bu Ay 30 günden oluşur') end MATLAB Ders Notları
Uygulama:Ax2+Bx+C=0 ikinci derece denklemin köklerini hesaplayan aşağıdaki algoritmayı MATLAB’de programlayınız A1: Başla A2: A,B,C değerlerini gir A3: delta=B^2-4ac değerini hesapla A4: delta<0 ise ‘kökler kompleks’ yaz, değilse A5’e git A5: delta>0 ise ’kökler reel’ yaz, değilse ‘katlı kök hali’ yaz A6: A7: A8:X1 değerini yaz A9: X2 değerini yaz A10: Son Matlab Ders Notları
Çözüm: a=input(‘x^2 li terimin katsayısını giriniz=‘); b=input(‘x li terimin katsayısını giriniz=‘); c=input(‘Sabit terimi giriniz=‘); delta=b^2-4*a*c; if delta<0 disp(‘kökler kompleks’); elseif delta>0 disp(‘kökler Reel’) elseif delta ==0 disp(‘çakışık kök hali’) end x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); fprintf(‘1.kök:%f\n’,x1); fprintf(‘2.kök:%f\n’,x2); MATLAB Ders Notları