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

как в паскале возвести число в произвольную степень???

exp(in) что-то не действует, или не так пишу, и что делать если степень минусовая?
Саня Чек
Саня Чек
89
Элементарно:
X^Y = exp(ln(X) * Y)
А внизу опять какую-то хрень написали!
ВЛ
Виталий Лабунский
1 633
Лучший ответ
> что делать если степень минусовая?

Повеситься, перед этим проштудировав любой букварь по элементарной математике и сделав для себя "гениальное открытие" - оказывается, "икс в степени минус эн равно единице, деленной на икс в степени эн"
!E
!!! Er@syl !!! ))))
32 502
Игорь Игоревич, огромное спасибо за формулу!
Возник вопрос: если и основание и показатель целые, а значит результат предполагается целым, то как учесть погрешность оцифровки иррациональных чисел?
Число e — заведомо иррациональное. Натуральный логарифм из целого числа в некоторых случаях иррационален. Оцифровка даст погрешность дважды. Результат должен быть точным. Правильно ли применить округление? Как это обосновывается? Заранее спасибо!
Сергей Арефьев
Сергей Арефьев
16 172
напиши свою функцию возведения в степень n где n - любое целое число
function power(var x,n:integer):real;
begin
for i:=1 to n do x:=x*x
if n>0 then power:=x
else if n<0 then power:=1/x
else power:=1;
end;
теперь чтобы возвести любое число в любую степень, например число 5 в степень 35,
тебе понадобиться в теле программы написать power(5,35);
Оскар Клочков
Оскар Клочков
2 920
В паскале нет функции возведения в произвольную степень. Нужно писать её самостоятельно. Вот так например (не я написал, ибо в падлу)
var
x,i:integer;
function VozvStep(i,x:integer):integer;
var
j:integer;
begin
result:=1;
for j:=1 to i do
result:=result*x;
end;

begin
writeln('введите степень');
readln(i);
writeln('введите число, которое собираетесь возвести в степень');
readln(x);
writeln(VozvStep(i,x));
readln

А вообще
Чем не устраивает чисор*число*число)
program slojenie;
Var
a, b, d, i, j, s : integer; // - öåëî÷èñëåííûé
//s: string; // - ñòðîêà
//c: real; // - äåñÿòè÷íàÿ äðîáü

Begin
write('Ââåäèòå íàèìåíüøåå ÷èñëî êîòîðîå õîòèòå âîçâåñòè â êâàäðàò a:');
readln(a);
write('Ââåäèòå íàèáîëüøåå ÷èñëî êîòîðîå õîòèòå âîçâåñòè â êâàäðàò b:');
readln(b);

for j:=a to b do
begin

Write ('Âîçâåäèòå â ñòåïåíü ÷èñëî ',j, '^2 = '); // - ïåðåõîä íà ñëåä ñòðîêó
readln(d);

if (j * j = d) then writeln (j,'^2 = ', d)

else
Begin
writeln('Íåâåðíî - ó÷è òàáëèöó êâàäðàòîâ');
j:=j-1;
end;
End;
writeln('Ìîëîäåö');

//readln; // - ïðè çàïóñêå åêçå ôàéëà, ÷òî áû ñðàçó íå çàêðûâàëñÿ åêçå ôàéë

end.
Андрей
Андрей
142

Похожие вопросы