6. Программа с условным оператором: #293065
Ниже приведена программа, записанная на пяти языках программирования.
Алгоритмический язык:
алг
нач
цел s, t
ввод s
ввод t
если не (s <= 2 и t < 3)
то вывод "YES"
иначе вывод "NO"
все
кон
Паскаль:
var s, t: integer;
begin
readln(s);
readln(t);
if not((s <= 2) and (t < 3))
then writeln('YES')
else writeln('NO')
end.
Бейсик:
DIM s, t AS INTEGER
INPUT s
INPUT t
IF NOT(s <= 2 AND t < 3) THEN
PRINT "YES"
ELSE
PRINT "NO"
ENDIF
Python:
s = int(input())
t = int(input())
if not ((s <= 2) and (t < 3)):
print("YES")
else:
print("NO")
C++:
#include <iostream>
using namespace std;
int main() {
int s, t;
cin >> s;
cin >> t;
if (!(s <= 2 && t < 3))
cout << "YES" << endl;
else
cout << "NO" << endl;
return 0;
}
Было проведено $9$ запусков программы, при которых в качестве значений переменных $s$ и $t$ вводились следующие пары чисел:
$(2,-2)$; $(5,3)$; $(-4,1)$; $(-12,5)$, $(5,-7)$; $(10,3)$; $(-8,12)$; $(3,0)$; $(2,3)$.
Сколько было запусков, при которых программа напечатала «YES»?
Программа выводит «YES», если истинно условие: $\neg\bigl((s\leqslant2)\land(t<3)\bigr).$
По закону де Моргана это условие равносильно: $(s>2)\lor(t\geqslant3).$
Проверим каждую пару:
- $(2,-2)$: условия $s>2$ и $t\geqslant3$ ложны — «NO»;
- $(5,3)$: условие $s>2$ истинно — «YES»;
- $(-4,1)$: оба условия ложны — «NO»;
- $(-12,5)$: условие $t\geqslant3$ истинно — «YES»;
- $(5,-7)$: условие $s>2$ истинно — «YES»;
- $(10,3)$: оба условия истинны — «YES»;
- $(-8,12)$: условие $t\geqslant3$ истинно — «YES»;
- $(3,0)$: условие $s>2$ истинно — «YES»;
- $(2,3)$: условие $t\geqslant3$ истинно — «YES».
Программа напечатала «YES» в $7$ запусках.