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

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

Задача

Требовалось написать программу, при выполнении которой с клавиатуры вводится целочисленная координата x точки на прямой и определяется принадлежность этой точки одному из выделенных отрезков (включая границы).

Программист торопился и написал программу с ошибками:

var х: real;
begin
readin(х);
if х >= -5 then
if x <= 10 then
if x < 5 then write(‘принадлежит’) else write(‘не принадлежит’)
end.

Выясните, как работает программа при значениях х, принадлежащих областям А, В, С, D, Е.

Анализ программы проведите, заполнив таблицу:

ОбластьУсловие х >= −5Условие х <= 10Условие х < 5Сообщение программыКорректность сообщения

Предложите свой вариант программы, исключающий случаи её неправильной работы.

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

На рисунке выделены два отрезка: $$[-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.

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



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