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?
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.
ana program hangisi alt program hangisi olacak. bunlar ne anlama geliyor.
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);
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:
- function ile başlamalı end ile bitmelidir
- [m,s] çıkış değerleri olup ana programa bu değerler atanır
- stat fonksiyonun adıdır. Programda bu şekilde çağrılır
- (x) giriş değeridir
- 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
hocam verdiğiniz değerli yanıt ve bilgi için çok teşekkür ederim. görüşmek üzere . saygılarımla.