Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2008, 20:56   #1
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию Какой вы программист?

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

Задача:

Переменная I представляет собой целое число. I принимает значения 1 или 2. Если I оказалось равным 1, то замените его на 2, и наоборот.

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

Решения:

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

ELSE I=2;


2 IF I=2 THEN I=1;

IF I=1 THEN I=2;


3 IF I=1 THEN GOTO SKIP;

I=1;

GOTO DONE;

SKIP:I=2;

DONE:


4 J=2;

IF I=2 THEN J=1;

I=J;


5 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:


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

I=ONETWO(I);


7 I=3-I;

8 I=I-(I/2*2)+1;


9 IF I=2

THEN DO;

I=1;

END;

ELSE DO;

I=2;

END;

10
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;



Категории:

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

Последний раз редактировалось Viteef; 18.04.2008 в 13:21. Причина: пронумеровал
Elm0 вне форума Ответить с цитированием
Старый 16.04.2008, 21:13   #2
J.Smith
Пользователь
 
Аватар для J.Smith
 
Регистрация: 16.04.2008
Сообщений: 20
Хорошо

Прикольно
This is our world now... the world of the electron and the switch, the beauty of the baud...
J.Smith вне форума Ответить с цитированием
Старый 17.04.2008, 15:08   #3
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Или если :
if (i<>1) or (i<>2) then
begin
if I=2 then I:=1;

else I:=2;
end
else
SHOWMESSAGE("ТЫ ВВЁЛ ЧТО ТО НЕ ТО!");
то вы - Шоумэн.

Последний раз редактировалось Gauss; 18.04.2008 в 14:31.
Gauss вне форума Ответить с цитированием
Старый 17.04.2008, 15:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот мое предложение
Код:
i:=2;
i:=3-i;
Ну и кто я после этого?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2008, 16:51   #5
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию

Stilet, это тот же по составу код,что и №7
Elm0 вне форума Ответить с цитированием
Старый 17.04.2008, 17:09   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну дык я ж говорю, мол, неверный тест - я далеко не математик. Уж себя то я знаю
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2008, 17:56   #7
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

а если вот так
case i of
1: i:=2;
2: i:=1
else
showmessage('FUCK OFF');
end;
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 17.04.2008, 19:34   #8
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

какой-то глупый тест....
а почему там не было такого варианта:
Код:
IF I=2 THEN I=1
         ELSE I=2;
например, у меня такой вариант. я тогда кто?
rpy3uH вне форума Ответить с цитированием
Старый 17.04.2008, 19:46   #9
Fainder
Участник клуба
 
Регистрация: 15.02.2007
Сообщений: 1,112
По умолчанию

2гру3uН: Вообще-то у меня тоже такой варниант, но вариант 7 мне оч. понравился. Просто, как и всё гениальное
Fainder вне форума Ответить с цитированием
Старый 18.04.2008, 07:53   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Fainder
Вообще то самый простой и оптимальный вариант при таких условиях следующий:
i:=not i and 3;
Его в тесте нет, так что тест - чепуха.
Цитата:
а почему там не было такого варианта:
Ой как он жутко похож на первый )))
I'm learning to live...

Последний раз редактировалось Stilet; 18.04.2008 в 07:55.
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой браузер ваш Spellsinger Софт 64 23.02.2009 12:23
Какой компонент VenMaster Общие вопросы Delphi 4 07.06.2008 10:38
Какой вы Сотона?) Viteef Свободное общение 14 05.06.2008 08:10
Какой это компонент? Antonio747 Компоненты Delphi 2 07.01.2008 23:39