Автор: neualena 16.11.2004 22:38
задача. Вычисление целой степени вещественного числа а пожалуйста, помогите решить
Автор: Altair 16.11.2004 22:45
УРА!
neualena, вам неслыханно повезло!
Вы первая, кому понадобилась написанная мной проуцедура, я выложил ее в FAQ. вот она:
Код
Procedure S(Var p,n,r : Integer);
Begin
IF r=0 Then r:=1;
IF n=0 Then Exit;
r:=r*p;
Dec(n);
S(p,n,r)
End;
Var
a,b,c:Integer;
Begin
ReadLn(a,b);
S(a,b,c);
WriteLn(c);
End.
Это процедура возведения в степень и пример использования.
Считайте, что я писал ее для Вас!
заходите к нам еще, спрашивайте!
и не грустите впредь, любые задачи решаемы!
;)
Автор: APAL 16.11.2004 23:11
Oleg_Z
Вещественного числа!
А у тебя целого...
Автор: Altair 16.11.2004 23:15
Без разницы, поменять-то в одном месте только
Тогда так (то было демоверсией :D )
Код
Procedure S(p:real; var n:integer; var r :real);
Begin
IF r=0 Then r:=1;
IF n=0 Then Exit;
r:=r*p;
Dec(n);
S(p,n,r)
End;
Var
b:Integer;
a,c:real;
Begin
ReadLn(a,b);
S(a,b,c);
WriteLn(c:8:2);
End.
Зы: заходите к нам еще ! ;)
ЗЫЫ (после совещания с APAL'ом
)
Параметры в рекурсивной процедуре передаются по ссылке а не по значению, так что следите заданными, параметр n после выполнения процедуры изменится.!!!
Автор: zx1024 16.11.2004 23:39
Код
function POW (p : real; n : integer) : real;
var q : real;
begin
if n = 0 then POW := 1
else
if n = 1 then POW := p
else
if n and 1 = 1 then
begin
q := POW (p, n shr 1);
POW := q*q*p
end
else
begin
q := POW (p, n shr 1);
POW := q*q
end
end;
Автор: Altair 16.11.2004 23:44
Моя короче и понятнее :yes:
Автор: Гость_neualena 7.12.2004 0:35
ОГРОМНОЕ СПАСИБО ВАМ OLEG_Z И ZX1024 :flowers: Я ВАМ ОЧЕНЬ БЛАГОДАРНА :P :rose: