Помогите срочно!!! По информатике! Нужно составить программу в Паскале!!!! Я его плохо...

0 голосов
37 просмотров

Помогите срочно!!! По информатике! Нужно составить программу в Паскале!!!! Я его плохо понимаю! Молю!!!! Само задание во вложении!!!


image

Информатика Начинающий (381 баллов)
Дан 1 ответ
0 голосов
Архангел (142k баллов)
 
Правильный ответ

В языке Паскаль отсутствует операция извлечения кубического корня, а также операция возведения числа в степень, отличную от двух. Поэтому приходится использовать логарифмирование с последующим потенцированием.
\displaystyle \sqrt[3]{x^2+ \frac{1}{y}}=\left (x^2+ \frac{1}{y} \right )^ \frac{1}{3}=e^{\frac{1}{3}ln(x^2+ \frac{1}{y})}
Это выражение накладывает на параметры некоторые ограничения.
image0 \end {cases} " alt=" \begin {cases} y \ne 0 \\ \displaystyle x^2+ \frac{1}{y} >0 \end {cases} " align="absmiddle" class="latex-formula">
Если первое условие вытекает из исходного выражения, то второе появляется при не совсем эквивалентной замене операции извлечения кубического корня логарифмированием и последующим потенцированием. Дело в том, что операция извлечения кубического корня определена для любого аргумента. а логарифмирование - только для положительного. Для полноценной замены надо анализировать аргумент логарифма и в зависимости от его значения (отрицательное, ноль, положительное) определять результат.
Но при этом мы получим алгоритм с ветвлением, а у нас задание написать линейный алгоритм.

var
  x,y,r:real;
begin
  Write('Введите значения x и y: ');
  Read(x,y);
  r:=exp(ln((sqr(x)+1/y))/3);
  Writeln('Вычисленное значение: ',r)
end.

Тестовое решение:
Введите значения x и y: 13.54 -2.6
Вычисленное значение: 5.6768630662591

оставил комментарий Одаренный (1.3k баллов)

Вау. Такие знания! Вы программист?

оставил комментарий Архангел (142k баллов)

Да и об этом в моем профиле написано

оставил комментарий Одаренный (1.3k баллов)

В профиль я не заходила. Просто заметила вопрос в категории, а тут такое... В хорошем смысле

оставил комментарий Архангел (142k баллов)

Написал, потому что предыдущий ответ неверен: он содержит условный оператор.

оставил комментарий Одаренный (1.3k баллов)

Хоть и не в тему, да и писать такие вопросы надо в лич.-сообщения - и все же, Вы на пьедестале лучших решающих оказались как - потому что много баллов, или Вы бываете в Сервисе очень часто, или же много решено заданий, нет нарушений?

оставил комментарий Одаренный (1.3k баллов)

Просто интересно, тоже хочу быть там... :)

оставил комментарий Одаренный (2.8k баллов)

Не могу понять, почему моё решение неправильное? Потому что переменные не риловские?

оставил комментарий Одаренный (2.8k баллов)

Мне Ваше решение как раз совсем непонятно, может я чего не понимаю, но по-моему read должен быть до begin, и первый write совсем не к месту (такое ощущение, что содрали откуда-то)) ) А к типу переменных я уж не думаю, что будут сильно придираться.

оставил комментарий Архангел (142k баллов)

Да, Вы действительно не понимаете, но не "чего-то", а довольно многое.

...