cevaplar
daha kısa yolu var mı ? düşünmedim... uzun uzadıya yazmayı tercih ettim .
1-)
%rea
% girilen üç basamaklı bir sayının metinsel ifadesinin yazdırılması
x=input('uc(3) basamkli bir sayi giriniz...:'); %girilen sayı 312
if x > 999
% girilen degerin uc basamaklı olup olmadıgı
% kontrol edilmesi
fprintf('girilen deger uc basamaklı degil \n')
break
else if x<=99
fprintf('girilen deger uc basamaklı degil \n')
break
end
end
a=rem(x,10); % 312/10=31.2
%a=rem(31.2) rem fonksiyonu bölümden kalan değeri elde eden fonksiyon
%kalan=2 birler basamağı değeri elde edildi.
switch a
case 1
d ='bır';
case 2
d ='ıkı';
case 3
d ='uc';
case 4
d ='dort';
case 5
d ='bes';
case 6
d ='altı';
case 7
d ='yedı';
case 8
d ='sekız';
case 9
d ='dokuz';
end
xx=x/10 ; %312/10=31.2
xxx = floor(xx); %xx=floor(31.2) fonksiyonu sayının en yakın alt tam sayı
%değeri 31 değerini verir.
b=rem(xxx,10) ; %31/10=3.1 ve bolum 3 kalan 1 rem ile onlar basamağı elde edildi.
switch b
case 1
e ='on';
case 2
e ='yırmı';
case 3
e ='otuz';
case 4
e ='kırk';
case 5
e ='ellı';
case 6
e ='altmıs';
case 7
e ='yetmıs';
case 8
e ='seksen';
case 9
e ='doksan';
end
xxxx=xxx/10;
c=floor(xxxx); % c=floor(b) ile sayının onlar basamağı elde edildi.
switch c
case 1
f ='yuz';
case 2
f ='ıkıyuz';
case 3
f ='ucyuz';
case 4
f ='dortyuz';
case 5
f ='besyuz';
case 6
f ='altıyuz';
case 7
f ='yedıyuz';
case 8
f ='sekızyuz';
case 9
f ='dokuzyuz';
end
fprintf('girilen sayinin metinsel ifadesi...: %s %s %s\n',f,e,d);
2-) Soru cevabı
% y(+)=-3*x^2+2*x+5 x>0
% Y(-)= 3*x^2+3*x-5 x<0
% fonsiyon sonucunun [-9,9] aralığında hesaplanması
x=input('fonksiyon degeri hesaplanması icin[-9,9] aralıgında deger giriniz...:');
if x>9
fprintf('girilen deger 9 dan buyuk tekrar deneyin')
break
else if x < -9
fprintf('girilen deger -9 dan kucuk tekrar deneyin')
break
end
end
if x>0
y=-3*x^2+2*x+5
else
Y= 3*x^2+3*x-5
end
Başa dön