Разминка для мозгов после праздников
Тест-шутка для тех, кто знаком хотя бы с азами информатики:
Вернуться на страницу "Экслюзивные статьи">>>
Да, это бессовестный плагиат - многие помнят этот прикол. Но комментарии и "дигнозы" - мои, авторские.
Есть две переменные a и b
Они принимают значения 1 или 2.
Если a равно 1, то b присвивается значение 2
И наоборот, если а равно 2, то b присваивается значение 1.
Напишите фрагмент программы на любом языке или просто опишите алгоритм словами и формулами.
Описания классов, типов, объектов (если они не являются "изюминкой" алгоритма) опускаем. Ввод и вывод - тоже. Положим, что значение a уже получено, а b - просто промежуточная величина.
Написали? А теперь узнайте свой "диагноз".
Спринтер
if a=1 then b:=2;
if a=2 then b:=1;
Зачем что-то придумывать, если алгоритм и так уже описан в условии? Такие люди мгновенно принимают самые простые, хоть и не всегда оптимальные, решения.
Доктор
b:=1; if a=1 then b:=2;
Примочки на это место... Не поможет – будем это место удалять. Такие люди выбирают первый попавшийся вариант, надеясь на то, что потом, если что, можно будет всё исправить.
Философ
if a=1 then b:=2 else b:=1;
С одной стороны, это так... Но с другой стороны... Такие люди склонны к длительным раздумьям о двойственности мира и обычно никуда не торопятся как с действиями, так и с решениями.
Инженер
if a<=1.5 then b:=2 else b:=1;
Инженеры, использующие компьютер, обычно не работают с целыми числами. А действительные числа оценивать на "равно" - занятие неблагодарное, могут сказаться ошибки округления и представления. Люди с таким мышлением не дают категоричных оценок - они задают удовлетворяющий их диапазон с запасом.
Художник
b:=3-a;
Изящное решение. Такие люди стремятся увидеть красоту даже в скучных формулах и бытовых вопросах. К сожалению, часто в ущерб практичности.
Акробат
var c: array [1..2];
...
c[1]:=2; c[2]:=1;
b:=c[a];
{Создан массив c из двух элементов. Значение первого установлено равным 2, а второго 1. Переменная a определяет номер элемента этого массива и пересылает значение в b}
Воистину, акробатический трюк с привлечением дополнительных ресурсов и преобразований. Эти люди не ищут лёгких путей – они жаждут славы и аплодисментов.
Аудитор
if a<>1 and a<>2 then write (‘ошибка’)...
{А вдруг a – не 1 и не 2? Следует проверить! Дальше может следовать любой из вышеописанных алгоритмов}
Доверяй, но проверяй. А вдруг кто-то что-то напахал, а я буду это расхлёбывать? Такие люди всегда стараются все перепроверить и выяснить, прежде чем за что-то взяться или высказаться.
Эрудит
Двочное представление числа 1 – '01', а числа 2 – ‘10’. Чтобы поменять 1 на 2 и наоборот, достаточно поменять местами первый и второй бит или инвертировать их. Это решение называют ‘1221' или ‘ABBA’ по номерам букв A и Б в алфавите.
{Решение кажется простым и изящным, но из-за того, что данные в компьютерах представляются не двумя, а, как минимум, восемью двоичными разрядами, оно требует целый ряд преобразований и на практике реализуется гораздо сложнее всех вышеописанных}
Предлагающий это решение где-то слышал или прочитал о нём, но даже не попытался реализовать его алгоритм. Этот человек похож на любителя кроссвордов – он может угадать любое слово и высказать мнение по любому вопросу, оставаясь в стороне от реальных знаний и практических решений.
Вернуться на страницу "Экслюзивные статьи">>>