Стоп, стоп. Вы про какую версию паскаля то? Насколько я помню, x^y работало.
Никогда не работало, "^" в паскале - указатель.
PS Чтобы не писать цикл - можно по другому, через логарифм:
z:=exp(y*ln(x)) //z=x^y
PS Чтобы не писать цикл - можно по другому, через логарифм:
z:=exp(y*ln(x)) //z=x^y
Трижды ";" забыл. Не покатит.
В трубопаскале степень была
херота, можно ведь exp(ln(x)*y)
Индийский код?
хех, а в abc для этого была встроенная функция
В JS нет pow(), есть - Math.pow().
разве там нельзя используемые классы в начале прописать?
всмысле прописать? Можно конечно сделать так
window.pow = Math.pow, и тогда будет работать pow(x,y), но с таким же успехом можно и в паскале написать процедуру для введения в степень и юзать ее потом.
window.pow = Math.pow, и тогда будет работать pow(x,y), но с таким же успехом можно и в паскале написать процедуру для введения в степень и юзать ее потом.
Нафига цикл с предусловием, когда можно заюзать цикл со счётчиком. Не будеть работать, например, в случае (4.3+5i)^2.7
И вообще, в паскале есть либа math, там есть функция power()...
И вообще, в паскале есть либа math, там есть функция power()...
А если степень отрицательная? Тогда бесконечный цикл будет... Хотя можно было взять степень по мудулю, а потом уже проверять степень на отрицательность. С нецелыми числами код не работает, конечно
Аффтар только что с программированием познакомился? Представленная функция только с целыми работает. И как уже писали выше есть exp(ln(x)*y).
Я просто не догадался об этом...)
А если это выражение вернёт нецелое число при неотрицательной степени? Ведь экспонента и логарифм вычисляются приближённо, рядами Тейлора
А если это выражение вернёт нецелое число при неотрицательной степени? Ведь экспонента и логарифм вычисляются приближённо, рядами Тейлора
Это уже проблемы вещественной арифметики, и надо это учитывать. Остальные языки тут ничем не лучше, только запись выражения отличается.
Ну, так, тогда лучше не вычислять степень через логарифм и экспоненту...
Только так, и никак иначе. Разве есть другие варианты?
Можно применить вышеперечисленный алгоритм к целой степени. К дробной можно применить приближение рядами Тейлора. Вычисление целочисленной степени рядами Тейлора не стоит приближать...
Если нужна повышенная точность то да, но рядами считать будет очень медленно.
Чтобы написать коммент, необходимо залогиниться