Merhabalar arkadaşlar ödevimi tamamladım ancak bir eksiğim kaldı. Örneğin eğim yani m=-0.1777 buluyorum. Ancak bunu sonuçta yani fprintf komutunun ekrana yazdırdığı kısımda kesirli sayı olarak görmem lazım. Yani -0.1777 değil de -32/180 olarak nasıl görebilirim? İnternette rat yani rational kodunu kullanın diyor. Ancak tam olarak nereye ve nasıl yazacağımı anlayamadım. Şimdiden ilginiz için teşekkür ederim.
药>> rat(-0.1777)
ans = -0 + 1/(-6 + 1/(3 + 1/(-3 + 1/(-6 + 1/35))))
veya
>> format rational
>> 0.5
ans =
1/2
Teşekkürler ancak matlabda inputla girdiğim değerlerden 0.1777 buluyor. Yani bulduğu herhangi bir sayıyı otomatik printfe yazarken kesirli yazmalı. Sayı belli olmuyor her seferinde, ben 4 değer giriyorum bir sayı hesaplıyor.
Merhaba,
Sayıları fprintf'e iletirken rat fonksiyonundan gecirebilirsiniz, yeterli olur mu:
>> sonuc = 0.1 + 0.0777
sonuc = 0.1777
>> fprintf('Bulunan sonuc: %s', rat(sonuc))
Bulunan sonuc: 0 + 1/(6 + 1/(-3 + 1/(3 + 1/(6 + 1/(-35)))))>>
Böyle sonuç veriyor evet ancak mesela 0.1777 = 32/180 miş kesirli olarak. Ancak sizin bulunan sonuç kısmında bir sürü garip sayılar var yani bu kısmı anlayamadım. Direk 32/180 olarak yazamaz mı matlab?
Öncelikle 32/180 de sadeleşmiş değil. 8/45 olabilirdi.
0.1777 de 32/180'e eşit değil.
>> 32/180
ans =
0.1778
rat algoritması benim örneğimde olduğu gibi birden fazla kesir kullanarak sonuc veriyor.
Buna benzer bir de rats var, isterseniz onun sonuclarını da deneyin.
peki sonuç kesirli çıkıyorsa onu nasıl ondalıklı sayı şekline çevirebilirim yardımcı olursanız sevinirim.