34: "Алгоритмизация и программирование", Программа с условным оператором.
Решать задачи по темеТеория:
Общий вид условного оператора:
\(if\) <условие> \(then\) <оператор\(1\)> \(else\) <оператор\(2\)>.
\(if\) <условие> \(then\) <оператор\(1\)> \(else\) <оператор\(2\)>.
ЕСЛИ выполняется условие,
ТО делаем ЭТО,
ИНАЧЕ делаем ЧТО-ТО ДРУГОЕ.
Неполная форма условного оператора:
\(if\) <условие> \(then\) <оператор\(1\)>.
\(if\) <условие> \(then\) <оператор\(1\)>.
ЕСЛИ выполняется условие, ТО делаем ЭТО.
Поскольку про ИНАЧЕ в данном случае нам ничего не сказано, то при невыполнении условия делать ничего не надо.
Внутри условного оператора могут выполняться логические операции.
Пример:
ЕСЛИ на улице снег ИЛИ ветер, ТО надень шарф И шапку.
Пример задания из демоверсии ОГЭ-\(2024\)
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык алг нач цел s, t ввод s ввод t если s \(>\) \(10\) или t \(>\) \(10\) то вывод ′YES′ иначе вывод ′NO′ все кон | Паскаль var s, t: integer; begin readln(s); readln(t); if (s \(> \) \(10\)) or (t \(> \) \(10\)) then writeln(′YES′) else writeln(′NO′) end | Бейсик DIM s, t AS INTEGER INPUT s INPUT t IF s \(>\) \(10\) OR t \(>\) \(10\) THEN PRINT ′YES′ ELSE PRINT ′NO′ ENDIF |
Python s \(=\) int(input()) t \(=\) int(input()) if (s \(>\) \(10\)) or (t \(>\) \(10\)): print(′YES′) else: print(′NO′) | C\(++ \) #include <iostream> using namespace std; int main(){ int s, t; cin \(>>\) s; cin \(>>\) t; if (s \(>\) \(10\) || t \(>\) \(10\)) cout \(<<\) ′YES′ \(<<\) endl; else cout \(<<\) ′NO′ \(<<\) endl; return \(0\); } |
Было проведено \(9\) запусков программы, при которых в качестве значений
переменных вводились следующие пары чисел \((s, t)\):
переменных вводились следующие пары чисел \((s, t)\):
\((1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5)\).
\( \)
Сколько было запусков, при которых программа напечатала «YES»?
Сколько было запусков, при которых программа напечатала «YES»?
Решение
Из текста программы мы видим, что программа печатает «YES» всякий раз, когда выполняется условие:
\(s\) \(>\) \(10\) или \(t\) \(>\) \(10\).
Чтобы не запутаться в условии, составим таблицу, куда занесём все вводимые данные, и заполним её как таблицу истинности для логической операции «ИЛИ»:
\((s, t)\) | \(s\) \(> 10\) | \(t\) \(> 10\) | ИЛИ |
\((1, 2)\) \((11, 2)\) \((1, 12)\) \((11, 12)\) \((-11, -12)\) \((-11, 12)\) \((-12, 11)\) \((10, 10)\) \((10, 5)\) | \(0\) \(1\) \(0\) \(1\) \(0\) \(0\) \(0\) \(0\) \(0\) | \(0\) \(0\) \(1\) \(1\) \(0\) \(1\) \(1\) \(0\) \(0\) | \(0\) \(1\) \(1\) \(1\) \(0\) \(1\) \(1\) \(0\) \(0\) |
Теперь не трудно ответить на вопрос этого задания. Так как нас спрашивают, сколько раз программа напечатала «YES», а мы знаем, что «YES» программа печатала только в случае выполнения условия условного оператора, то для этого нам достаточно посчитать количество единиц в последнем столбце нашей таблицы.
Правильный ответ: \(5\).
• В условии задачи переменные \((s, t)\) могут вводиться в обратном порядке. Всегда проверяем, чтобы ввод \(s\), ввод \(t\) в самой программе совпадали с порядком переменных в задании: «...вводились следующие пары чисел \((s, t)\)».
• Обращаем внимание на знаки неравенств — включены ли границы интервалов? В нашем примере \(10\) не удовлетворяет условию \(s\) \(> 10\), так как неравенство строгое.
• При ответе на вопрос «Сколько раз программа напечатала «Да»?» считаем количество \(1\) в нашей таблице.
• При ответе на вопрос «Сколько раз программа напечатала «Нет»?» считаем количество \(0\).
• В этой задаче в условии могут встречаться операции DIV — целочисленное деление — и MOD — остаток от деления.
Источник ЯКласс.
Решать задачи по теме