![]() | |
| | #1 (permalink) |
| Üye Üyelik Tarihi: 03/2006
Mesaj: 15
|
Merhaba Arkadaşlar; Pascal da girilen reel sayının üssünü, fonksiyon kullanmadan nasıl bulabiliriz ? İnteger sayı olsa kolayca halledebiliriz, fakat işe reel sayılar girince fonksiyon kullanmadan bir türlü yapamıyorum. Bakın "exp" fonksiyonu kullanarak program çalışıyor. program usalma; uses crt; function us_al(var a,b:real):real; begin us_al:=exp(b*ln(a)); end; var i,j:real; s:string[1]; begin repeat clrscr; writeln('örnek'); writeln('tabanı giriniz: 3.4'); writeln('üssü giriniz: 1.5'); writeln('sonuc: 6.2693'); writeln; write('tabanı giriniz: ');readln(i); write('üssü giriniz: ');readln(j); writeln(i: 3:4,' üssü ',j: 3:4,' = ',us_al(i,j): 3:4); s:=readkey; until (s='0'); end. Burada fonksiyon kullanmadan programı çalıştırmam gerekiyor. Bana bir akıl verebilirmisiniz. eğer pascal bilmiyorsanız bile, mantığı konusunda yardımcı olabilirseniz sevinirim ... |
| | |
| | #2 (permalink) |
| . Üyelik Tarihi: 02/2003
Mesaj: 508
|
program usalma; uses crt; var i,j:real; s:string[1]; begin repeat clrscr; writeln('örnek'); writeln('tabanı giriniz: 3.4'); writeln('üssü giriniz: 1.5'); writeln('sonuc: 6.2693'); writeln; write('tabanı giriniz: ');readln(i); write('üssü giriniz: ');readln(j); writeln(i: 3:4,' üssü ',j: 3:4,' = ',exp(i*ln(j)): 3:4); s:=readkey; until (s='0'); end. Bende pascal yok deneyemedim. Delphi ile benzerini denedim çalıştı. Böyle çalışması lazım. |
| | |
| | #3 (permalink) |
| Üye Üyelik Tarihi: 03/2006
Mesaj: 15
|
saol @fobus, hoca demiştiki function kullanılmasın."exp ve ln" fonksiyon olmuyor mu ? Ama fonksiyon kullanılmadan yapmanın tek bir çaresi olması lazım, o da "exp ve ln" fonksiyonunun programını bulmak. "exp ve ln" fonksiyonunun programını nasıl bulabilirim acaba ? |
| | |
| | #4 (permalink) |
| Üye Üyelik Tarihi: 01/2007 Yer: İstanbul
Mesaj: 29
|
Rasyonel bir sayının tamsayı kuvvetini alan bir programı döngüyle yapabiliriz. En rahat ve en güzel yöntem budur diye tahmin ediyorum. İşte hızlıca yazdığım program: Kod: program usal;
uses wincrt; {ya da crt}
var
i,us:Integer;
sonuc,sayi:Real;
begin
repeat
sonuc:=1;
clrscr;
write('ussu alinacak sayiyi giriniz: '); readln(sayi);
write('sayinin kacinci kuvveti alinacak? '); readln(us);
if us<0 then
for i:=-1 downto us do sonuc:=sonuc/sayi
else if us=0 then sonuc:=1
else if us>0 then
for i:=1 to us do sonuc:=sayi*sonuc;
writeln(sayi:0:5, ' sayisinin ', us, '. kuvveti: ', sonuc:0:5);
write('tekrar? (e/h)');
if upcase(readkey)<>'E' then break;
until 1=2;
end.
|
| | |
| | #6 (permalink) | |
| Eski Cevizci Üyelik Tarihi: 04/2005 Yer: samsun
Mesaj: 1,171
| Alıntı:
taylor serileri çözüm olabilir: exp(x) = (x^n) / n! ; ( n=0 dan sonsuza ) ln(1+x) = [(-1)^(n+1)] * (x^n) / n ; ( n=1 den sonsuza ) | |
| | |
| | #7 (permalink) | |
| Üye Üyelik Tarihi: 03/2006
Mesaj: 15
| Alıntı:
Bakalım Rasyonel sayının rasyonel üssünü fonksiyon kullanmadan yapabilecekmiyiz ... | |
| | |
| | #8 (permalink) | |
| Üye Üyelik Tarihi: 03/2006
Mesaj: 15
| Alıntı:
Dediğiniz yöntem doğru olabilir, bu yöntemi başka bir arkadaştanda duydum, eğer konuyu açabilirseniz sevinirim ... | |
| | |
| | #9 (permalink) |
| Eski Cevizci Üyelik Tarihi: 04/2005 Yer: samsun
Mesaj: 1,171
|
ilk mesajda verdiğiniz programdaki exp ve ln yerine, taylor serisi gelicek. http://en.wikipedia.org/wiki/Taylor_series List of Taylor series of some common functions kısmında denklemler daha açık şekilde verilmiş. n değerini ne kadar büyük tutacağınız istediğiniz hassasiyete bağlı. teorik olarak bulmanın yolu var ama bence deneme yanılma size yeter. aşağıdaki kodu test etmedim, fikir vermesi açısından yazıyorum. pascal bilmediğim için C de yazdım. PHP Kodu: |
| | |
| | #10 (permalink) |
| Syntax Error Üyelik Tarihi: 05/2006 Yer: Bursa // İzmit
Mesaj: 633
|
Pascal da variant değişken tipi varmiydi tam emin degilim eger varsa degiskenleri variant tanimlayip, girilen sayiyi, girilen us kadar carptirmayi denersen olabilir.. Variant yoksa double felanda tanimlamayi denermisin.. Yada artik neyse iste ![]() Boylelikle fonksiyon kullanmadan basit bir for dongusuyle us bulmus olabiliriz..
__________________ ProgramcIlIk; Kendini ifade edebilme yetenegidir.. http://www.volkanyildirim.org |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Sınav sorusu iki rakamın arasındaki sayıların toplamı | EmsiMaMi | Pascal / Delphi / Delphi.NET | 4 | 27/03/2006 11:02 |
| Sayıların inanılmazlıgı | NeoBre | Hayata Dair | 9 | 25/02/2006 13:15 |
| C, C++ & pascal | Mr_MOON | Genel Programlama | 1 | 14/10/2005 17:03 |
| toblodaki sayıların toplamı | I2sync | ASP | 1 | 19/01/2005 23:28 |
| Sayıların en büyüğünü bulmak. | C.d. | C / C++ | 2 | 26/09/2004 23:01 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |