Некорректно работает программа созданная в 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
218 +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 Апр 2024 в 16:46
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир