profile
Опубликовано 6 лет назад по предмету Информатика от zhlobochka

Помогите исправить ошибку в 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.
Пишет ожидался порядковый тип

  1. Ответ
    Ответ дан аыыа

    Переменные 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.

  2. Ответ
    Ответ дан ingr

    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.

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


Самые новые вопросы