download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Степенуване в Pascal

Автор
Съобщение
anonymous
Сря, 17.12.08, 21:51
Здравейте!! Въпроса ми е с кой знак или с коя команда в паскал се задава дадено число или променлива да се повдигне на степен! Примерно "x на степен n"! Пробвах със стандартния знак "^", но ми изкара грешка! Ще съм много благодарен, ако някой ми каже :)!
anonymous
Сря, 17.12.08, 22:01
phrozencrew
Сря, 17.12.08, 22:34
Паскал няма вградена вункция за степенуване, но има функциите Exp и Ln, които обикновено се използват в този случай
Ако искаме получим z=x^y, трябва да се направи следното:
z = Exp(Ln z) = Exp(y* Ln x)

Ето и функцията, която връща x^y:
function PowerFn (number, exponent: float): float;
begin
PowerFn := Exp(Exponent*Ln(Number));
end;

където експонентата е = y а числото е = x.
PS: Това е в буквален превод.

anonymous
Сря, 17.12.08, 23:56

RE: Степенуване в Pascal

” Здравейте!! Въпроса ми е с кой знак или с коя команда в паскал се задава дадено число или променлива да се повдигне на степен! Примерно "x на степен n"! Пробвах със стандартния знак "^", но ми изкара грешка! Ще съм много благодарен, ако някой ми каже :)! „

Здравей,
от постовете на illieva и phrozencrew сигурно ти е станало ясно и вече си си отговорил на въпроса.
Линковете, които е дала illieva са много добри и дават точната информация.
phrozencrew също е дал много добър пример и обяснението е много добро, точно и ясно.
Бих искал само да добавя нещо. Трябва да знаеш, че Exp функцията винаги връща реална стойност (дано не бъркам тук). Също така хубавото и е, че можеш да работиш с реални числа (от тип real) например:
x:=Exp(5.4*Ln(3.6));

По този начин, както сам сигурно вече се досещаш можеш и да коренуваш. Например корен 3-ти от 8 би изглеждало по следния начин:
x:=Exp(8*LN(1/3));

Разбира се, за да степенуваш би могъл и да напишеш цикъл който да се изпълни n-пъти като x да се умножава по първоначалната си стойност, но това е по-дулго пък и не можеш да използваш за степен реална стойност.
Иначе можеш да повдигаш на квадрат с функцията SQR по следния начин:
x:=SQR(x);

на 4-та степен съответно:
x:=SQR(SQR(x));

и т.н.
а пък корен квадратен се намира чрез функцията SQRT:
x:=SQRT(x);

Поздрави!

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.