Soru sorAna programda dışarıdan girilen 3 sayıyı bir alt programa
cevherbeyimiz tarafından 4 yıl önce soruldu

Ana programda dışarıdan girilen 3 sayıyı bir alt programa (function) gönderilecektir.
Alt programda (fonksiyon) bu sayıların toplamını ve en küçüğünü hesaplayarak
sonuçları ana programda ekrana yazdıran bir MATLAB programı yazmam gerekiyor.

clc;
a = input(' sayi 1 giriniz : ');
b = input(' sayi 2 giriniz : ');
c = input(' sayi 3 giriniz : ');
if ( a < b )
   if( a < c)
    fprintf(' en küçük sayı : %d \n ',a);
   else
    fprintf(' en küçük sayı : %d \n ',c);
   end
else
   if( b < c)
    fprintf(' en küçük sayı : %d \n ',b);
   else
    fprintf(' en küçük sayı : %d \n ',c);
   end
end
toplam=(a+b+c);
fprintf(' toplam : %d \n ',toplam);

kodu bu şekilde yazdım doğru mu?

6 Cevap
ekremt Yönetici tarafından 4 yıl önce cevaplandı

Merhaba
Kodunuz çalışıyor sorun yok. Toplamı da en küçük sayıyı da hesaplıyor.
Ancak belirttiğiniz gibi bir fonksiyon yazmamışsınız. Bu yaptığınız biçim sadece bir m.file yani tek bir ana dosya üzerinde işlem yapmaya yarar. Fonksiyon yazmak istiyorsanız düzenleme yapmanız gerekir.

cevherbeyimiz tarafından 4 yıl önce cevaplandı

hocam bi yardım edermisiniz nasıl yapcağım. 

cevherbeyimiz tarafından 4 yıl önce cevaplandı

ana program hangisi alt program hangisi olacak. bunlar ne anlama geliyor. 

ekremt Yönetici tarafından 4 yıl önce cevaplandı

Fonksiyon yazma ile aşağıdaki bağlantıyı inceleyin.
https://www.mathworks.com/help/matlab/ref/function.html
Size yardımcı olabilmek adına da açıklamaya çalışayım.
Ana programınız değerleri aldığınız kısım olacak.

a = input(' sayi 1 giriniz : ');
b = input(' sayi 2 giriniz : ');
c = input(' sayi 3 giriniz : ');

Alt programınız ise değerleri kullandığınız kısım olacak.

if ( a < b )
   if( a < c)
    fprintf(' en küçük sayı : %d \n ',a);
   else
    fprintf(' en küçük sayı : %d \n ',c);
   end
else
   if( b < c)
    fprintf(' en küçük sayı : %d \n ',b);
   else
    fprintf(' en küçük sayı : %d \n ',c);
   end
end
toplam=(a+b+c);
ekremt Yönetici tarafından 4 yıl önce cevaplandı

Bunları fonksiyon biçiminde yazmanız gerekir. Onun için de bahsettiğim linki inceleyin. 
Size deneyip yaparsanız daha rahat öğrenirsiniz. Bir sorunuz olursa tekrar iletin.
Birden fazla çıkış değeri olan fonksiyon aşağıdaki gibi yazılır

function [m,s] = stat(x)
    n = length(x);
    m = sum(x)/n;
    s = sqrt(sum((x-m).^2/n));
end

Fonksiyon yazarken:

  1. function ile başlamalı end ile bitmelidir
  2. [m,s] çıkış değerleri olup ana programa bu değerler atanır
  3. stat fonksiyonun adıdır. Programda bu şekilde çağrılır
  4. (x) giriş değeridir
  5. Function ve end arası kodların olduğu kısım

 
Fonksiyonu ana programda çağırma işlemi de:

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat(values)

Bu işlemin çıktısı:

ave =
   47.3400
stdev =
   29.4124
cevherbeyimiz tarafından 4 yıl önce cevaplandı

hocam verdiğiniz değerli yanıt ve bilgi için çok teşekkür ederim. görüşmek üzere . saygılarımla.