Помогите исправить ошибку в pascal Program one; Var x,y,m,n:real; Begin Writeln (‘введите...

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

Помогите исправить ошибку в pascal Program one; Var x,y,m,n:real; Begin Writeln (‘введите число’); Readln (m); Writeln (‘введите число’); Readln (n); For x:=m to n do y:=sin(4*sgr(x)); Writeln (y); End. Пишет ожидался порядковый тип


Информатика (20 баллов) | 49 просмотров
Дано ответов: 2
0 голосов

Переменные x,m,n должны быть типа integer

Var  

y:real;

x,m,n: integer;

Begin

Writeln ('введите число');

Readln (m);

Writeln ('введите число');

Readln (n);

For x:=m to n do

y:=sin(4*sqr(x));

Writeln (y);

End.

(243 баллов)
0 голосов

1) в 4 и 6 строках заменить кавычки на одинарные (те которые там где русская буква Э. PascalABC другие не понимает, другие паскали тоже могут ругаться.

2) строка 8 оператор FOR требует перечисляемый тип например integer, так что чтобы все заработало придется переменные x, m, n объявить как integer (var x, m, n : integer)

3) в десятой строке исправить название функции возведения в квадрат на sqr

4) функция sin() считает в радианах. Если данные у вас в градусах то их нужно перевести в радианы.

5) не понятно для чего используется цикл если будет выведено только последнее вычисленное значение. Возможно в цикле пропущен блок BEGIN END;

исправленная програма будет выглядеть примерно так:

Program one;

Var y : real;

   x, n, m : integer;

Begin

   Write('введите число m ');

   Readln(m);

   Write('введите число n ');

   Readln(n);

   For x := m to n do begin

       y := sin(degToRad(4*sqr(x)));

       Writeln(y);

   end;

End.

ну и плюс поправил отступы и стилистические ошибки не влияющие на результат...


(1.2k баллов)