Kezdőlap › Fórumok › Programozás › pascal – gyökvonás
- This topic has 2 hozzászólás, 3 résztvevő, and was last updated 20 years, 6 months telt el by
begyu.
-
SzerzőBejegyzés
-
2004-12-17-15:48 #1991656
Azt hiszem megvan a megoldás:
hatványozás2004-12-18-06:29 #1991657Valamikor *akodtam vele, probald meg ezt is:
Code:function power(num,exponent:real; var error:boolean):real;
function psub:real;
var i:integer;
x:real;
begin
x:=num;
if (exponent=int(exponent)) and (trunc(exponent) in [1..100])
then begin
for i:=1 to trunc(exponent)-1 do x:=x*num;
psub:=x end
else psub:=exp(exponent*ln(num))
end;
begin
power:=0;
error:=false;
if exponent=0 then if num=0 then error:=true else power:=1
else if num=0 then if exponent>0 then power:=0
else error:=true
else if num>0 then if abs(exponent*ln(num))>88 then error:=true
else power:=psub
else if int(exponent)=exponent then
if exponent<0 then
power:=1/power(num,abs(exponent),error)
else if odd(trunc(exponent)) then
power:=-power(abs(num),exponent,error)
else power:=power(abs(num),exponent,error)
else error:=true
end; {power}function root(exponent,num:real; var error:boolean):real;
begin
root:=0;
if num<0 then error:=true
else if exponent=0 then error:=true
else root:=power(num,(1/exponent),error);
end;ez kikeruli a hibalehetosegeket is.
2009-12-04-19:56 #1877585Sziasztok!
Kaptam egy beadandó feladatot, melynek lényege, hogy írjni kell egy Pascal programot (Turbo Pascal 7.0), amely kirajzolja a Cassinian görbét. A köregyenletbõl indulok ki. A sugarat a megadott módon kell kiszámolni. A gond csak az, hogy itt r^n van megadva, ezért n-edik gyököt kéne vonni, hogy meglegyen a sugár. A Pascal ugye nem tud hatványozni sem gyököt vonni, kizárólag négyzetre emel és négyzetgyököt von.
Oda jutottam, hogy gyököt vonni lehet logaritmussal is.
Mégpedig:
N_edik_gyök(A)=X
A^(1/N)=X
(1/N)*ln(A)=ln(X)
ln(A)/N=ln(X)X=e^(ln(A)/N)
Ez rendben is volna, de: hatványozni csak egész hatványkitevõvel tudok, ha írok rá egy ciklust, és itt bizony a kitevõ az ln(A)/N, ami valós…
Valakinek van-e ötlete, hogy mit kezdhetnék ezzel?
Tudok valahogyan valós hatványkitevõvel számolni? Vagy van valami egyszerû módszer amivel meg lehet oldani?Köszönöm
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz