tikla-indir - Asilkan.Net

Download Report

Transcript tikla-indir - Asilkan.Net

MATLAB’ de
Programlama
2012-13/ Bahar
Makine Müh. & Jeoloji Müh.
Matlab Ders Notları
Kontrol
yapıları
1) Karşılaştırma (Compare)
IF-ElseIf-Else-End
SWITCH-Case-Otherwise-End
2) Döngü (Loop)
For - End
While - 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
1.Tek Koşullu
IF Şart
1. işlem
2. işlem
3. işlem
:
END
Üç şekli vardır
2.İki Koşullu
IF Şart
1.işlem;
ELSE
2. işlem
END
3.Çok Koşullu
IF Şart
…
ELSEIF …
…
ELSE
…
END
MATLAB Ders Notları
Matlabda Koşul Deyimleri
1) Tek koşullu : Karşılaştırmalı denetim
deyimlerinden en sade
olanıdır. Eğer
denetim ifadesi doğruysa deyim işletilir.
Denetim ifadesi yanlışsa program deyimi
atlar.
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
pay
oran
payda
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
Hafta 4
MATLAB Ders Notları
Matlabda Koşul Deyimleri
3) Çok koşullu : Bazen üç veya daha çok
ifade grubundan seçmek istenebilir.
İf koşul ifadesi 1
deyimgrubu
elseif koşul ifadesi 2
deyimgrubu
elseif koşulifadesi 3
deyim grubu
else
deyimgrubu
end
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
ÇÖZÜM:
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
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
Hafta 4
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
--------Ortalama >= 90
70 <= Ortalama < 90
50 <= Ortalama < 70
Diğer
Harfli Not
-----------A
B
C
F
Hafta 4
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: ‘); )
Hafta 4
MATLAB Ders Notları
Ödev:
Dışarıdan girilen x değerlerine göre aşağıdaki fonksiyonun değerini
hesaplayan bir program yazınız.
1 < = x < 10
F(x)  x  x2  x3  x4  x5
10 < = x
ln(x)  1
3 x  5
F(x)  x  x 
 tan(x) x 
log10 (x)
x4
2
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
Hafta 4
MATLAB Ders Notları
Switch – Case Yapısı
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
clc
val=input('bir ile üc arasinda bir sayi girin ');
switch val
case 1
disp('bir girdiniz')
case 2
disp('iki girdiniz')
case 3
disp ('üc girdiniz')
otherwise
disp('bir ile üc arasinda deger girmediniz')
end
Örnek:
• 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.
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
Örnek: 1 ile 10 arasında girilen sayıların tek ya da
çift olduğunu ekrana yazdıran programı yazınız
Hafta 4
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
Hafta 4
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
Hafta 4
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
Hafta 4
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: X1  (b  delta) / 2a
A7: X 2  (b  delta) / 2a
A8: X1 değerini yaz
A9: X2 değerini yaz
A10: Son
Hafta 6-7
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);
Hafta 6-7
MATLAB Ders Notları