Ах, программирование – это как поход в супермаркет: вроде бы всё просто, но всегда найдётся что-то, что заставит тебя задуматься. Вот, например, у нас есть программа, написанная аж на пяти языках программирования. Пять!
Представьте себе: если бы эта программа была блюдом, то это был бы кулинарный шедевр с пятью разными специями – от острого до сладкого. Но суть не в этом. Вопрос в том, сколько раз она ответит нам заветным «YES» при разных входных данных.
Итак, у нас есть переменные s и k – звучит почти как имена героев романа про программиста и его кота.
И девять пар чисел для них: (1, 1), (7, 9), (8, –12), (6, 6), (8, 11), (–10, -12), (–10, 11), (7, 1) и (12, 7). Задача – узнать: сколько раз программа скажет нам «YES». Ну а если нет? Тогда «NO».
Чтобы понять логику программы, вспомним старую добрую поговорку программистов: «Если хочешь знать правду – посмотри на условие».
Условие тут простое и лаконичное: если s больше шести **и** k больше шести — выводим «YES», иначе — «NO». Да-да, именно так просто!
Программа словно строгий охранник на входе в клуб: пропускает только тех гостей, у которых оба параметра выше шести. Остальные идут домой с пустыми руками.
Теперь представим эту программу как добродушного сторожа с биноклем. Он внимательно смотрит на каждого гостя:
Первый гость пришёл с цифрами (1, 1).
Сторож посмотрел и сказал: «1 больше 6? Нет.» Значит — мимо клуба!
Ответ: «NO».
Второй гость — (7, 9). Тут сторож улыбнулся: «7 больше 6?
Да! 9 больше 6? Тоже да!» Добро пожаловать!
Ответ: «YES».
Третий парень — (8, -12). Сторож нахмурился: «8 больше 6? Отлично! А вот -12… ну уж нет!» Вывод — снова «NO».
Четвёртый гость — (6, 6).
Тут сторож слегка озадачен и говорит: «А вы точно сюда? Шесть это не больше шести!» Проход закрыт — ответ «NO».
Пятый посетитель — (8,11). Два раза да!
Ура! Ответ «YES».
Шестой пришёл из тёмного леса с (-10,-12). Сторож даже не стал смотреть дважды — сразу отказал.
Ответ «NO».
Седьмой гость (-10,11) попытался пробиться одной ногой вперёд. Но увы — первая цифра не прошла проверку. Ответ снова «NO».
Восьмой посетитель — (7,1). Одна нога прошла тест успешно; другая нет.
Итог — нет.
И наконец девятый герой — (12,7) – оба параметра выше шести! Вход открыт широко!
Если подытожить этот веселый парад цифр и условий – то наш строгий сторож пропустил ровно три пары. Три раза он сказал заветное слово «YES». А остальные шесть получили дружеское “NO”.
Знаете анекдот про программиста?
Он приходит домой и говорит жене:
— Сегодня я написал программу!
— Круто! Что она делает?
— Проверяет числа на большее чем шесть.
— И что?
— Если оба числа большие чем шесть – говорит “YES”, иначе “NO”.
Жена удивлённо:
— Так это же просто!
Программист гордо:
— Вот именно! Главное – чтобы условие было ясным… а то иногда приходится объяснять компьютеру целую лекцию!
Так что мораль сей истории такова: иногда всё зависит от простого условия. Как говорил мой преподаватель по программированию: “Если хочешь быть счастливым программистом – пиши условия проще!” Ну а мы теперь знаем точное количество запусков программы с ответом “YES” – целых три раза из девяти.
Вот вам ещё история из жизни айтишника: однажды коллега решил проверить условие “если кофе горячее чем утро”.
Оказалось кофе всегда горячее утра… кроме понедельника утром после выходных.
Так что держите свои условия чёткими и понятными – и пусть ваши программы говорят вам “YES” чаще!