Вопрос:

3. Отметьте выражение, которое необходимо добавить в условный оператор, чтобы результатом выполнения фрагмента программы стало значение a = -2.

Смотреть решения всех заданий с листа

Ответ:

Решение:

Дана программа:

x:=-2; y:=-1;
if (x<0) and (...) then a:=x
else a:=y*2;

Нам нужно, чтобы результатом стало a = -2. Рассмотрим два случая:

  1. Если условие if истинно: Тогда a присваивается значение x, то есть -2. Это достигается, если x < 0 (что верно, так как x = -2) И условие (...) истинно.
  2. Если условие if ложно: Тогда выполняется else, и a := y * 2. Так как y = -1, то a = -1 * 2 = -2. Это происходит, если условие x < 0 ложно ИЛИ условие (...) ложно.

Поскольку нам нужно, чтобы a стало -2, и в случае истинности if (присваивается x) и в случае ложности if (вычисляется y*2), нам нужно найти такое условие (...), которое будет истинным, чтобы получить a = -2. Истинным является условие, когда a присваивается x, то есть -2.

Рассмотрим предложенные варианты для (...):

  • 1) x < y: -2 < -1 — истинно. В этом случае a = x = -2.
  • 2) x < 10: -2 < 10 — истинно. В этом случае a = x = -2.
  • 3) y > 0: -1 > 0 — ложно. В этом случае a = y * 2 = -1 * 2 = -2.
  • 4) y < 0: -1 < 0 — истинно. В этом случае a = x = -2.

Все варианты приводят к a = -2. Однако, если трактовать задачу как поиск единственно верного условия, которое *необходимо* добавить, то нужно учитывать, что если условие в if будет ложным, то a все равно станет -2. Если же мы хотим, чтобы a стало -2 именно через ветку then, то нам нужно, чтобы дополнительное условие было истинным. Варианты 1, 2, 4 делают так, что a присваивается x. Вариант 3 делает так, что a присваивается y*2.

Наиболее логичным является случай, когда мы хотим, чтобы a стало -2 через ветку then. Для этого дополнительное условие должно быть истинным. Все варианты 1, 2, 4 являются истинными. Однако, если выбрать вариант 3) y > 0, то условие if (x<0) and (y>0) будет ложным, так как y>0 ложно. В этом случае выполнится ветка else, и a станет y*2 = -1*2 = -2. Этот вариант также приводит к нужному результату.

Если бы нам нужно было, чтобы a стало -2 только в одном из случаев, тогда выбор был бы очевиден. Поскольку оба пути приводят к -2, мы выбираем тот, который делает условие if ложным, чтобы показать, что else тоже работает. Или наоборот, выбрать истинное условие.

Смотрим на варианты. Если выбрать 1, 2, или 4, то a станет -2. Если выбрать 3, то a станет -2. Задание просит условие, которое *необходимо добавить*. Предполагается, что x < 0 уже есть. Если добавить y > 0, то все условие if станет ложным, и a станет -2. Если добавить x < y, то if станет истинным, и a станет -2.

Учитывая, что x=-2 и y=-1, оба варианта x<0 и y<0 истинны, а x истинно. Вариант y>0 ложен.

Если мы добавляем условие, чтобы a стало -2, и мы знаем, что x < 0 уже истинно, то для того, чтобы a стало x, дополнительное условие должно быть истинным. Например, x < y. Тогда a станет -2. Если же мы хотим, чтобы a стало -2 через ветку else, то все условие if должно быть ложным. Это произойдет, если (x<0) and (...) будет ложным. Поскольку x<0 истинно, то (...) должно быть ложным. Из предложенных вариантов ложным является y > 0. В этом случае a = y*2 = -1*2 = -2.

Наиболее вероятно, что требуется условие, при котором срабатывает ветка else, т.к. ветка then и так присваивает -2. Это y > 0.

Ответ: 3) y>0

ГДЗ по фото 📸
Подать жалобу Правообладателю

Похожие