Другие языки программирования и технологии

Помогите составить прогу в паскале: А в степени N, чтобы высчитывала ответ при вводе числа и её степени.Заранее спасиб

Доброго времени суток.

Посмотрите реализацию функции возведения в степень (Power) в модуле Math.

function IntPower(X: Extended; I: Integer): Extended;
var Y: Integer;
begin
Y := Abs(I);
Result := 1.0;
while Y > 0 do begin
while not Odd(Y) do
begin
Y := Y shr 1;
X := X * X
end;
Dec(Y);
Result := Result * X
end;
if I < 0 then Result := 1.0 / Result
end;

function Power(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, Trunc(Exponent))
else
Result := Exp(Exponent * Ln(Base))
end;

Это для Delphi. Адаптировать gkl Турбо Паскаль очень просто. Достаточно в секцию var ввести Result и последним оператором функции записить такой

Power := Result; для Power и
IntPower := Result; для IntPower

Пользоваться легко. Base - основание, а Exponent - показатель степени.

Write('Введите основание и степень через пробел');
ReadLn(x, n);
WriteLn('Результат = ', Power(x, n));

Удачи!
Глеб G_G
Глеб G_G
59 612
Лучший ответ
тут делать нечего.. .
вот вы бы мне посчитали EXP(X), где Х-матрица квадратная, разложив экспоненту в ряд...)))
var a, b,n,i: integer;
begin
writeln('Введите число'); readln(a);
writeln('Введите степень'); readln(n);
b:=1;
for i:=1 to n do b:=b*a;
writeln(a,' в степени ',n,' равно ',b);
end.

Это в том случае, если и основание степени и ее показатель целые.
Можно заменить блок описания переменных так:
var a,b:real; n,i:integer;
В этом случае основание степени, а, следовательно, и результат - любое вещественное число.

Ну, а если еще и показатель степени дробный, то сразу сообразить не могу. Вы бы задавая вопросы не отключали возможность вставки комментариев. Тогда уточнение в вопрос и в ответ можно было бы вставить когда угодно.