20 Aralık 2013 Cuma

Şartlı Deyimler ve Uygulamalar (Örnekler)


if elseif yapısıyla ilgili bazı uygulamalar
(Uygulamaların örnek çözüm videoları ilerleyen günlerde eklenecektir.)
  • input komutu ile kullanıcıdan klavye yoluyla aldığı bir sayının mutlak değerini hesaplayan ve fprintf komutuyla ekrana basan bir MATLAB programını SayininMutlakDegeriniHesapla.m adındaki düzyazı m-dosyasının içerisine kaydediniz.
sayi=input('Lutfen mutlak degeri hesaplanacak sayiyi giriniz=');
mutlakDeger=sayi;
if sayi<0
     mutlakDeger=sayi*(-1);
end
fprintf('Girilen sayinin mutlak degeri = %g\n',mutlakDeger);
  • input komutuyla kullanıcıdan aldığı iki sayının (pay ve payda) oranını hesaplayan ve fprintf komutuyla ekrana basan bir MATLAB programını IkiSayininOraniniHesapla.m dosyası içerisine yazınız. Programınız payda sıfır girildiğinde ekrana disp komutuyla 'Uzgunum! Sifira bolum hatasi var.' mesajını yazdırmalı.
pay=input('Lutfen birinci sayiyi giriniz=');
payda=input('Lutfen ikinci sayiyi giriniz=');
if payda==0
     disp('Uzgunum! Sifira bolum hatasi var.');
else
     oran=pay/payda;
     fprintf('Girilen sayilarin orani= %g\n', oran);
end
  • input komutuyla kullanıcıdan klavye yoluyla aldığı iki sayı arasındaki ilişkiyi (eşitlik,büyüklük,küçüklük) belirleyen ve fprintf komutuyla ekrana basan bir MATLAB programını IkiSayiArasindakiIliskiyiBelirle.m dosyası içerisine kaydediniz.
sayi1=input('Lutfen birinci sayiyi giriniz=');
sayi2=input('Lutfen ikinci sayiyi giriniz=');
if  sayi1==sayi2
      fprintf('Girilen sayilar eşittir.');
elseif sayi1<sayi2
     fprintf('Birinci sayi ikinci sayisan kucuktur.');
else
    fprintf('Birinci sayi ikinci sayidan buyuktur.');
end
şeklinde verilen ikinci derecede bir denklemin köklerinin hesaplayan ve ekrana basan bir MATLAB programını yazınız
A=input('Lutfen A katsayisini giriniz=');
B=input('Lutfen B katsayisini giriniz=');
C=input('Lutfen C sabitini giriniz=');
delta=B^2-4A*C;
if A==0
    disp('Bu denklem ikinci dereceden bir denklem degil.');
elseif delta<0
    disp('Denklemin reel koku yok.');
elseif delta==0
    disp('Denklemin tek koku var.');
    fprintf('Kok= %f\n',-B/(2*A));
else
    disp('Denklemim iki tane koku var.');
    X1=(-B+sqrt(delta))/(2*A);
    X2=(-B-sqrt(delta))/(2*A);
    fprintf('Kok1 = %f \n',X1);
    fprintf('Kok2 = %f \n',X2);
end
  • input komutuyla kullanıcıdan klavye yoluyla aldığı üç sayının en küçüğünü bularak fprintf komutuyla ekrana basan MATLAB programını yazınız..
sayi1=input('Lutfen birinci sayiyi giriniz=');
sayi2=input('Lutfen ikinci sayiyi giriniz=');
sayi3=input('Lutfen ucuncu sayiyi giriniz=');
enKucuk=sayi1; %En küçük sayı olarak birinci sayıyı varsaydık
if sayi1>sayi2
    enKucuk=sayi2;
end
if sayi2>sayi3
    enKucuk=sayi3;
end
fprintf('Girilen sayilarin en kucugu = %d\n',enKucuk);
  • input komutuyla kullanıcıdan aldığı bir ay numarasını kullanarak o ayın kaç günden oluştuğunu bulan ve disp komutuyla ekrana basan bir MATLAB programını yazınız.
ayNo=input('Lutfen gun sayisini ogrenmek istediginiz ay numarasini (1-12) araliginda giriniz:');
if ayNo==1||ayNo==3||ayNo==5||ayNo==6||ayNo==8||ayNo==10||ayNo==12
    disp('Girilen ay 31 gunden olusmaktadir.');
elseif ayNo==2
    disp('Subat ayi 28 gundur.');
elseif ayNo==4||ayNo==6||ayNo==9||ayNo==11
   disp('Girilen ay 30 gunden olusmaktadir.');
else
   disp('Lutfen 1 ile 12 arasinda bie deger giriniz.');
end

Şartlı Deyimler ve Uygulamalar

if ŞARTLI DEYİMİ, if-else ŞARTLI DEYİMİ ve if-elseif-else ŞARTLI DEYİMİ
if şartlı deyimi, programcı tarafından belirlenen ve sadece 1 (true) veya 0 (false) değerlerinden birini sonuç olarak üretecek bir koşula bağlı olarak farklı işlemlerin gerçekleştirlmesine yardımcı olan bir programlama yapısıdır. Bu tanımdan hareketle, if şartlı deyimlerinde koşul olarak kullanılmak üzere, ilişkisel ve mantıksal operatörlerden faydalanabileceğimizi rahatlıkla söyleyebiliriz. MATLAB’de, if deyiminin istenildiğinde program akışını değiştirmek amacına hizmet eden üç farklı kullanım şekli vardır:
if koşul
              işlem(ler)
end
1.kullanımda if ve end kelimeleri MATLAB için anahtar kelimelerdir. koşul, 1 (true) sonucu ürettiğinde if ile end arasındaki işlem(ler) gerçekleştirilir yani if bloğunun (gövdesinin) içerisine girilir. koşul, 0 (false) ürettiğinde ise if bloğunun içine girilmez ve program akışı end deyiminin bir alt satırına yönlendirir.
if koşul
      işlem(ler)
else
     işlem(ler)
end
2.kullanımda if, else ve end kelimeleri MATLAB için anahtar kelimelerdir. koşul, 1 (true) sonucunu ürettiğinde if ile else arasındaki işlem(ler), koşul0 (false) sonucunu ürettiğinde ise else ile end arasındaki işlem(ler) gerçekleştirilir.
if koşul1
    işlemler
elseif
    işlemler
else
    işlemler
end
3.kullanımda if, elseif, else ve end kelimeleri MATLAB için anahtar kelimelerdir. koşul1, 1(true) sonucunu ürettiğinde if ile elseif arasındaki işlemler gerçekleştirilir ve program akışı end deyiminin bir alt satırına yönlendirilir. koşul1, 0(false) sonucunu ürettiğinde ise koşul2’nin durumuna bakılır. Benzer şekilde koşul2, 1(true) sonucu ürettiğinde elseif ile else arasındaki işlemler gerçekleştirlir ve program akışı end deyiminin bir alt satırna yönlendirilir. koşul2, 0(false) sonucunu ürettiğinde ise else ile end arasındaki işlemler gerçekleştirilir. Bu kullanımda elseif’lerin sayısı duruma göre istenildiği kadar artıılabilir.
İPUCU: Kullanılan her if deyiminin muhakkak bir end karşılığı olmalıdır. Ayrıca if deyimi ile koşul arasında en az bir boşluk bırakılmalıdır.
İPUCU: sayi adlı değişkenin sadece 1 veya 0 değeri saklayan bir değişken olduğunu kabul edelim. Bu durumda if sayi==1 deyimi yerine doğrudan if sayi deyimini ve benzer şekilde if sayi==0 deyimi yerine de doğrudan if~sayi deyimini kullanabiliriz.
İPUCU: MATLAB metin düzenleyicisinde if deyiminin yanına koşul yazılıp ENTER tuşuna basıldığında imleç TAB kadar sağa otomatik olarak kaydırılır. Lütfen bu duruma müdahele etmeyiniz. Bu işlem editör tarafından maksatlı olarak, programın anlaşılmasını kolaylaştırmak amacıyla gerçekleştirlmektedir.