Некорректно работает программа созданная в Pascal PROGRAM T;
VAR X,Y,Z,S:REAL;
BEGIN
WRITELN('ВВЕДИТЕ X,Y,Z')
READ(X,Y,Z);
S:=ABS(COS(X)-COS(Y))^(1+2*SQR(SIN(Y)))*(1+Z+(SQR(Z)/2)+(SQR(Z)*Z/3)+(SQR(Z)*Z*Z/4));
WRITELN('ОТВЕТ S=',S)
end.
При выполнении выдает "Program1.pas(5) : Нельзя разыменовать это выражение, так как оно не является типизированным указателем" что делать ?

11 Июн 2021 в 19:48
194 +1
0
Ответы
1

Ошибка в данной программе возникает из-за неправильного использования операций со значениями типа REAL. В Pascal операции возведения в степень и извлечения корня поддерживаются для целых чисел, но не для вещественных.

Чтобы исправить эту ошибку, нужно использовать функции из стандартной библиотеки для работы с вещественными числами. В данном случае можно воспользоваться функцией Power для возведения в степень и функцией Sqrt для извлечения корня.

Пример исправленной программы:

PROGRAM T;
VAR X,Y,Z,S:REAL;
BEGIN
WRITELN('ВВЕДИТЕ X,Y,Z');
READ(X,Y,Z);
S := ABS(COS(X)-COS(Y)) * Power((1 + 2*SQR(SIN(Y))), (1 + Z + (SQR(Z)/2) + (SQR(Z)*Z/3) + (SQR(Z)*Z*Z/4));
WRITELN('ОТВЕТ S=',S)
END.

После внесения этих изменений программа должна корректно выполняться без ошибок.

17 Апр в 16:46
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 94 835 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир