О чем думал Вирт?
Да, можно через экспоненту и логарифм. Но тогда нужно заморачиваться со случаем отрицательного числа.
Главное, для квадратного корня сделал функцию, а для степени нет. Хотя можно было сделать для степени и обойтись без корня
Другие языки программирования и технологии
Почему в базовом Паскале не предусмотрена функция степени?
Корень математически вычисляется просто, а вот возведение в степень - сложнее, и Вирт, видимо, старался обойтись минимумом простейших математических функций. Конечно, практика показала, что экономить на этой функции не стоило, но Вирт при создании Паскаля этого еще не знал :(( Зато он ввел кучу операций для работы фактически на уровне ассемблера, которые на практике оказались ненужными.
Корень был внесён потому, что довольно часто требуется, а через разложение в ряд — слишком мало кто сможет вспомнить (тем более объяснить и выполнить доказательство ;–), плюс всего одно условие для для ОДЗ.
А вот, скажем для тангенса уже всё не так просто и однозначно, как и для произвольной степени.
А зачем заморачиваться этим в настоящее время?
Большинство современных паскалей уже обзавелись этой функцией.
А некоторые даже операцией!
И кстати, в те времена компьютеры были не такими шустрыми как сейчас, а ещё на программы как в памяти так и на их хранение накладывались жёсткие ограничения.
А вот, скажем для тангенса уже всё не так просто и однозначно, как и для произвольной степени.
А зачем заморачиваться этим в настоящее время?
Большинство современных паскалей уже обзавелись этой функцией.
А некоторые даже операцией!
И кстати, в те времена компьютеры были не такими шустрыми как сейчас, а ещё на программы как в памяти так и на их хранение накладывались жёсткие ограничения.
>> О чем думал Вирт?
Цитата из книги "Паскаль. Руководство пользователя" (Н. Вирт, К. Йенсен):
"При первом знакомстве с языком Паскаль многие программисты начинают "причитать" по поводу отсутствия в нём "удобных" конструкций. Упоминают и операцию возведения в степень, и конкатенацию строк, и динамические массивы, и арифметические операции над логическими значениями, и автоматическое преобразование типов, и описание исключительных ситуаций. Но всё это исключено из языка не по какой-либо оплошности, а в результате намеренных сокращений. Некоторые из таких конструкций стали бы "приглашениями" к неэффективным программным решениям, а некоторые, как нам казалось, должны были вступить в противоречие со стремлением к ясности, надёжности и хорошему стилю программирования. Кроме всего прочего, строгий отбор из огромного множества имеющихся вариантов нужно проводить и для того, чтобы транслятор оставался относительно компактным и эффективным."
Компьютеры, для которых разрабатывался Паскаль, не имели таких инструкций, как например FYL2X и F2XM1 из x86. Поэтому универсальная реализация возведения в степень, подходящая для любого случая (а встроенная в язык реализация обязана быть именно такой), на этих компьютерах не отличалась эффективностью. Так что выгоднее было оставить это программисту, чтобы он мог сам выбирать максимально эффективный алгоритм для каждого конкретного случая.
Цитата из книги "Паскаль. Руководство пользователя" (Н. Вирт, К. Йенсен):
"При первом знакомстве с языком Паскаль многие программисты начинают "причитать" по поводу отсутствия в нём "удобных" конструкций. Упоминают и операцию возведения в степень, и конкатенацию строк, и динамические массивы, и арифметические операции над логическими значениями, и автоматическое преобразование типов, и описание исключительных ситуаций. Но всё это исключено из языка не по какой-либо оплошности, а в результате намеренных сокращений. Некоторые из таких конструкций стали бы "приглашениями" к неэффективным программным решениям, а некоторые, как нам казалось, должны были вступить в противоречие со стремлением к ясности, надёжности и хорошему стилю программирования. Кроме всего прочего, строгий отбор из огромного множества имеющихся вариантов нужно проводить и для того, чтобы транслятор оставался относительно компактным и эффективным."
Компьютеры, для которых разрабатывался Паскаль, не имели таких инструкций, как например FYL2X и F2XM1 из x86. Поэтому универсальная реализация возведения в степень, подходящая для любого случая (а встроенная в язык реализация обязана быть именно такой), на этих компьютерах не отличалась эффективностью. Так что выгоднее было оставить это программисту, чтобы он мог сам выбирать максимально эффективный алгоритм для каждого конкретного случая.
Похожие вопросы
- паскаль процедуры и функции
- Написать программу на языке паскаль возведение числа в степень. Степень вводится с клавиатуры.
- Как в паскале процедуру или функция сохранить в файл а потом её использовать?
- как возвести в Паскале выражение в произвольную степень? например в четвертую.
- Turbo Paskall. Как в Паскале поднести число в степень? Какой используется значок???
- Как написать функцию возведения квадратной матрицы в степень? Язык Паскаль
- C++. Функция возведения в степень
- Написать программу в Паскале для построения графика функций. К программе желательно составить алгоритм.
- Паскаль!!)) входной файл содержит два числа x и y. Выходной последнюю цифру числа x в y степени! помогите пожалуйста!
- составить программу вычисление 2**64(два в шестьдесят четвёртой степени), на паскале, с помощтью циклов
"Ну если бы мы это оставили, то все писали бы говнокод и бла-бла-бла"
Да нифига подобного, блин