34: "Алгоритмизация и программирование", Программа с условным оператором.

Решать задачи по теме

Теория:

Общий вид условного оператора:
 \(if\) <условие> \(then\) <оператор\(1\)> \(else\) <оператор\(2\)>.
Условный оператор можно интерпретировать таким образом:
 
ЕСЛИ выполняется условие,
ТО делаем ЭТО,
ИНАЧЕ делаем ЧТО-ТО ДРУГОЕ

Неполная форма условного оператора:
\(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)\):

\((1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5)\).
\( \)
Сколько было запусков, при которых программа напечатала «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 — остаток от деления.

Источник ЯКласс.

Решать задачи по теме