IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   In DOS We Trust (https://www.imho.ws/forumdisplay.php?f=73)
-   -   Какой ты программист (https://www.imho.ws/showthread.php?t=46951)

Ghost 26.12.2003 09:40

Какой ты программист
 
Опубликовано в Datamation, Март 1977 года (!)

Этот тест расскажет о вашем программировании больше, чем вы хотели бы знать.

Задача:
Переменная I представляет собой целое число. I принимает значения 1 или 2. Если I оказалось равным 1, то замените его на 2, и наоборот.
Сравните ваше решение с десятью предложенными. Найдите одно или несколько наиболее похожих на ваше и прочитайте в разделе "Категории" краткую характеристику.
Вы можете кодировать на любом языке, но для сравнения предпочтительнее использовать PL/1.

Решения:[LIST=1][*]
Код:

IF I='2' THEN I=1;
ELSE I=2;

[*]
Код:

IF I=2 THEN I=1;
IF I=1 THEN I=2;

[*]
Код:

IF I=1 THEN GOTO SKIP;
I=1;
GOTO DONE;
SKIP:I=2;
DONE:

[*]
Код:

J=2;
IF I=2 THEN J=1;
I=J;

[*]
Код:

DECLARE SWITCH LABEL;
IF I=1 THEN SWITCH=ONE;
IF I=2 THEN SWITCH=TWO;
GOTO SWITCH;
ONE: I=2;
GOTO DONE;
TWO: I=1;
DONE:

[*]
Код:

DECLARE ONETWO(2) FIXED BIN(31) INIT(2,1);
I=ONETWO(I);

[*]
Код:

I=3-I;
[*]
Код:

I=I-(I/2*2)+1;
[*]
Код:

IF I=2
  THEN DO;
    I=1;
  END;
ELSE DO;
    I=2;
  END;

[*]
Код:

IF I=1 THEN I=2; ELSE DO;IF I=2 THEN I=1; ELSE DO;
PUT LIST('НЕДОПУСТИМОЕ ЗНАЧЕНИЕ I: ',I,' ЗАМЕНЕНО НА 1');
I=1;
END;END;

[/LIST=1]
Категории:[LIST=2][*]Недавний выпускник школы IBM. Не более одного из десяти окончивших эту школу знают разницу между 2 и "2". Удивительно, как можно вообще программировать без знания столь фундоментальных понятий.[*]Преподаватель программирования. Это решение хуже предыдущего. Много ли, однако, обучающих программированию сами написали и отладили хотя бы одну программу?[*]Программист на Фортране, только что закончивший курсы по PL/1. Да, старую собаку не научишь новым штукам! Это решение дает верный результат, но это всё, что можно про него сказать.[*]Программист на Ассемблере, прошедший тот же курс. Это решение не является ни прямым, ни эффективным. В нём есть та прелесть, что оно не содержит самомодифицирующихся кодов, но это лишь результат возврата на землю после изучения языка высокого уровня.[*]Системный аналитик. Прекрасная иллюстрация для тех, кто думает, что главная обязанность системного аналитика - это разработка такого алгоритма, в котором окажется некомпетентным даже хороший и опытный программист.[*]Computer scientist. Наверное, это самое умное решение. Однако такое "сальто-мортале" без комментариев оказывается весьма непонятным. Искусство требует жертв, а жертвой будет тот, кто будет разбираться в этой программе - может быть, сам автор спустя три месяца.[*]Математик. Очень похоже на предыдущее, столь же элегантно, но опять-таки та же проблема: как в этом разобраться?[*]Секретчик. Программист, заботящийся о секретности своей программы. Вот работа настоящего композитора, и, конечно, никаких комментариев. "Я могла бы придумать и более запутанный способ, как это сделать", - с гордостью сказала Белая Королева.[*]Структурный программист. Каждому ясно, что сие произведение - структурная программа. Но структурная программа характеризуется не отступами от края листа, а прежде всего наличием внутренней логики.[*]Хороший программист. Заметьте, что ни одно из предыдущих решений не проверяло диапазон значений I, а это весьма опасно. Вас не спасет ни структурность, ни фантастические алгоритмы, ни элегантность решения, если вдруг окажется, что I первоначально не было равно ни единице, ни двойке.[/LIST=2]

maskman 31.12.2003 09:50

Ghost
Сильно !!!


Часовой пояс GMT +4, время: 07:33.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.