В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
nazfire2003
nazfire2003
20.01.2021 15:36 •  Информатика

Program nl; Var: x,y; real;
Begin
Readln (x);
if x>=0 then
y:= x*x
Else
y:= sqrt(x)
Writeln(y);
End.

Program nl;
Var: x,y;real;
Begin
Readln(x);
if (8-x)<>0 then
y:=3x/8-x
Else
Writeln('решений нет');
Writeln(y);
End.

Правильно ли я составил программу для Паскаль?


Program nl; Var: x,y; real; Begin Readln (x); if x>=0 then y:= x*x Else y:= sqrt(x) Writeln(y); E

Показать ответ
Ответ:
MRLamaKing
MRLamaKing
24.06.2021 22:18

Объяснение:

Есть ошибки. Не будет компилироваться. Будет ошибка выполнения в первой программе для отрицательных значений x.

Жирным выделены строчки, где есть ошибки.

1) Описание переменных следует писать так

Var x, y: real;

2) Пропущена точка с запятой

y:= sqrt(x);

3) Корень с отрицательного числа

y:= sqrt(x)

4) Во второй программе в объявлении переменных

Var x, y: real;

5) Пропущены знаки операций

y :=3 * x / (8 - x)

6) во второй программе, если знаменатель == 0, то после вывода - решений нет, следует вывод не инициализированного значения у.

Вывод значения y надо перенести выше, после вычисления y.

Program nl;

Var: x,y; real;

Begin

Readln (x);

if x >= 0 then

y:= x*x

Else

y:= sqrt(x)

Writeln(y);

End.

Program nl;

Var: x,y;real;

Begin

Readln(x);

if (8-x)<>0 then

y:=3x/8-x

Else

Writeln('решений нет');

Writeln(y);

End.

Так лучше будет (по возможности исправлено)

{ Тело первой программы }

Var x, y: real;

Begin

 Write ('Input x: ');

 Readln(x);

 if x >= 0 then

    y := x * x

 Else

    y := sqrt(abs(x));

 Writeln('y: ', y: 10: 3);

 Readln();   // удерживаем консоль

End.

{ Тело второй программы }

Var x, y: real;

Begin

 Write ('Input x: ');

 Readln(x);

 if (8-x) <> 0 then

   bеgin

    y:=3*x/(8-x);

     Writeln(' y=', y: 10: 2);

  end

 Else

   Writeln('решений нет');

  Readln();   // удерживаем консоль

End.                                    

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота