Вы хотите определить к какой категории программистов вы относитесь? Тогда попробуйте решить предложенную здесь простенькую задачу, написать код решения и протестируйте себя, сравнив с типичными решениями.
Переменная I представляет собой полное слово с фиксированной точкой. I принимает значения 1 либо 2. Если I оказалось равным 1, замените его на 2 и наоборот.
Не нажимайте кнопку "Показать варианты решения", пока не напишите свое решение. Сравните ваше решение с десятью предложенными. Найдите одно или несколько наиболее похожих на ваше и прочитайте в разделе "Категории программситов" краткую характеристику. Вы можете кодировать на любом языке. Вы легко сможете понять предложеннеы варианты решения. Кстати, можете проверить себя дополнительно, определив на каком языке написаны эти варианты.
1. Недавний выпускник школы IBM. Не более одного из десяти окончивших эту школу знают разницу между 2 и "2". Удивительно, как можно вообще программировать без знания столь фундаментальной концепции.
2. Преподаватель программирования. Это решение хуже предыдущего. Много ли, однако, обучающих программированию сами написали и отладили хотя бы одну программу?
3. Программист на FORTRAN'е, только что окончивший курс PL/1. Да, старую собаку не научишь новым штукам! Это решение дает верный результат, но это все, что можно про него сказать.
4. Программист на ассемблере, прошедший тот же курс. Это решение не является ни прямым ни эффективным. Возможно, это результат обучения языку PL/1. В нем есть та прелесть, что оно не содержит самомодифицирующих кодов, но это лишь результат возврата на землю после изучения языка высокого уровня.
5. Системный аналитик. Прекрасная иллюстрация для тех, кто думает, что обязанность системного аналитика - такая разработка алгоритма, в которой окажется некомпетентен даже хороший и опытный программист.
6. Сomputer Scientist. Наверное, это самое умное решение. Однако такие "сальто-мортали" без комментариев оказываются весьма непонятными. Искусство требует жертв, а жертвой будет тот, кто разбирается в этой программе - может быть, сам автор через три месяца.
7. Математик. Очень похоже на предыдущее, столь же элегантно, но опять-таки встает проблема: как же в нем разобраться?
8. Программист, заботящийся о секретности своей программы. Вот работа настоящего композитора, и конечно, никаких комментариев. "Я могла бы придумать и более запутанный способ, как это сделать, - с гордостью сказала белая королева".
9. Структурный программист. Каждому ясно, что сие произведение - структурная программа. Иногда заботятся только о том, сколько колонок надо отступить от края листа. Настоящее структурное программирование - это прежде всего техника, и применять ее надо с умом.
10. Хороший программист. Заметьте, что ни одно из решений 1-9 не проверяло диапазон значений I, а это весьма опасно. К несчастью, вас не спасут ни структурность, ни фантастические алгоритмы, ни элегантность решения, если вдруг окажется, что I первоначально не было равно ни единице ни двойке.
И напоследок. Этому тесту уже много лет. Сравните с современным стилем и спросите себя: "Что изменилось за 33 года?" Источник теста: Datamation, march, 1977, Norman Grabowsky "What kind of programmer are you?"
2010-11-05 • Просмотров [ 4567 ]
var
i: string;
x, err: integer;
begin
read(i);
case i of
'1': i := '2';
'2': i := '1';
end;
val(i, x, err);
writeln(x);
end.
В условии задачи ЯВНО сказано, что "I принимает значения 1 либо 2". Проверять диапазон значений в данной задаче - лишняя трата времени!
I = (I AND 1) OR (I AND 2)
очень жаль
___
if I=1 then I:=2
else I:=1;
Ну всё таки я выбирал самый лёгкий вариант из тех что в голову пришли....так бы мог замудренное что-то написать....
if I=1 then
I:=2
else
I:=1;
*******дополнение
по идее похоже на 1 вариант, за исключение того что там I='2' - то есть сначала она как строковая или чаровская переменная, а потом ей присваиваются обычные числа, и в описании тоже не очень понятно что написано про "2" и 2. В задании "слово с фиксированной точкой" - я так понял имеется ввиду целочисленный word?