PDA

View Full Version : عملگر توان در دلفی



behzad_dr
شنبه 23 آذر 1387, 00:57 صبح
سلام
ببخشید یه سوال ابتدایی .. تابع توان در دلفی چیه ؟ البته برای رساندن به توان 2 از sqr میشه استفاده کرد .. اما برای توان های بالاتر آیا تابعی وجود دارد ؟ یا باید الگوریتمی پیاده کنیم ؟

DAMAVAND
شنبه 23 آذر 1387, 01:08 صبح
با تابع power
ابتدا math رو به uses اضافه کنيد و بعد :


procedure TForm1.Button1Click(Sender: TObject);
var
A:Extended;
begin
A:=power(2,8);
Caption:=FloatToStr(A);
end;

samir2253122
دوشنبه 25 آذر 1387, 20:39 عصر
تابع Power هم از روش لگاريتمي استفاده ميكنه پس بهتر خودمون از اين روش استفاده كنيم و در محاسبات پيچيده سرعت را بالا ببريم.



function Power(const Base, Exponent: Extended): Extended;
begin
if Exponent = 0.0 then
Result := 1.0 { n**0 = 1 }
else if (Base = 0.0) and (Exponent > 0.0) then
Result := 0.0 { 0**n = 0, n > 0 }
else if (Frac(Exponent) = 0.0) and (Abs(Exponent) <= MaxInt) then
Result := IntPower(Base, Integer(Trunc(Exponent)))
else
Result := Exp(Exponent * Ln(Base))
end;



يعني




y=x^a

y := Exp(a * Ln(x))