1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
(Сам и контр)
Задание 6 Вариант 1 Самостоятельная работа 3 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
Босова, Босова, Аквилянов
11 класс
Автор
Босова, Босова, Аквилянов

Задание 6 Вариант 1 Самостоятельная работа 3 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)

Задача

Программист торопился и написал программу с ошибками:
var х: real;
begin
readin(х);
if х > =-5 then
if x < =10 then if x < 5 then write(’принадлежит’) else write('не принадлежит') end. Выясните, как работает программа при значениях х, принадлежащих областям А, В, С, D, Е. Анализ программы проведите, заполнив таблицу: Область Условие х > = —5
Условие х < = 10 Условие х < 5 Сообщение программы Корректность сообщения Предложите свой вариант программы, исключающий случаи её неправильной работы. Из-за неправильной структуры вложенного условного оператора программа не выдает сообщения, если не выполняется первое или второе условие. program s3_v1_6; var x: integer; begin readln(x); if (x > = -5) and (x < = 0) or (x > = 5) and (x < = 10) then writeln('принадлежит') else writeln('не принадлежит ') end.

Подробный ответ

На рисунке выделены два отрезка: $$[-5;0]$$ и $$[5;10]$$. Нужно проверить, как работает данная программа для областей $$A, B, C, D, E$$.

ОбластьУсловие $$x \ge -5$$Условие $$x \le 10$$Условие $$x < 5$$Сообщение программыКорректность сообщения
A
B+++принадлежит+
C+++принадлежит
D++не принадлежит
E+

Из-за неправильной структуры вложенного условного оператора программа не выдаёт сообщение, если не выполняется первое или второе условие.

program s3_v1_6;
var
  x: integer;
begin
  readln(x);
  if (x >= -5) and (x <= 0) or (x >= 5) and (x <= 10) then
    writeln(‘принадлежит’)
  else
    writeln(‘не принадлежит’);
end.

Ответ

Для областей $$B$$ и $$C$$ программа выводит «принадлежит», но в области $$C$$ это неверно. Для областей $$A$$, $$D$$ и $$E$$ программа работает неправильно или не выдаёт нужного сообщения.

Правильный вариант программы:

program s3_v1_6;
var
  x: integer;
begin
  readln(x);
  if ((x >= -5) and (x <= 0)) or ((x >= 5) and (x <= 10)) then
    writeln(‘принадлежит’)
  else
    writeln(‘не принадлежит’);
end.



Общая оценка
4.5 / 5
Другие учебники
Другие предметы