Стоп, стоп. Вы про какую версию паскаля то? Насколько я помню, 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).
Я просто не догадался об этом...)
А если это выражение вернёт нецелое число при неотрицательной степени? Ведь экспонента и логарифм вычисляются приближённо, рядами Тейлора
А если это выражение вернёт нецелое число при неотрицательной степени? Ведь экспонента и логарифм вычисляются приближённо, рядами Тейлора
Это уже проблемы вещественной арифметики, и надо это учитывать. Остальные языки тут ничем не лучше, только запись выражения отличается.
Ну, так, тогда лучше не вычислять степень через логарифм и экспоненту...
Только так, и никак иначе. Разве есть другие варианты?
Можно применить вышеперечисленный алгоритм к целой степени. К дробной можно применить приближение рядами Тейлора. Вычисление целочисленной степени рядами Тейлора не стоит приближать...
Если нужна повышенная точность то да, но рядами считать будет очень медленно.