ИМХО, чушь полная.
Я бы сделал наверное так (не знаю pl/2, и не знаю, есть ли там такой оператор):
i = (i == 1 ? 2 : 1);
Так как по условию задача может имееть всего два ответа и это решение очень легко в данном случае читается. ИМХО .
Если бы были шансы, что будут другие варианты входных данных и/или вариантов ответа, переделал бы через if/else if или switch для облегчения поддержки кода.
Плюс лишняя проверка не нужна (о которой говорится в 10м решении), хотя это уже некорректно, т.к. задано, что "i принимает значения 1 либо 2".
Здравствуйте, VEAPUK, Вы писали:
VEA>Здравствуйте, fuyant, Вы писали:
VEA>7. Математик. VEA>Очень похоже на предыдущее, столь же элегантно, но опять-таки VEA>встает проблема: как же в нем разобраться?
Искал именно его, всё не читал (((
2. Преподаватель программирования.
Это решение хуже предыдущего. Много ли, однако, обучающих
программированию сами написали и отладили хотя бы одну программу?
Вероятно составитель этого теста считает себя гением, а преподавателей идиотами, раз он им приписал такое решение. Однако сам он написал свои тесты на паскакале — и этим все сказано.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Здравствуйте, qwertyuiop, Вы писали:
Q>Вероятно составитель этого теста считает себя гением, а преподавателей идиотами, раз он им приписал такое решение. Однако сам он написал свои тесты на паскакале — и этим все сказано.
Не идиотами, а теоретиками. Кем они зачастую и являются. Это простейшая ошибка из-за невнимательности. Они, так же как и ты, который не догадался что это pl/1, а не паскаль, на что в тексте дан очень четкий намек, и выдают решение №2
Здравствуйте, Кодёнок, Вы писали:
Q>>Вероятно составитель этого теста считает себя гением, а преподавателей идиотами, раз он им приписал такое решение. Однако сам он написал свои тесты на паскакале — и этим все сказано.
Кё>Не идиотами, а теоретиками. Кем они зачастую и являются. Это простейшая ошибка из-за невнимательности. Они, так же как и ты, который не догадался что это pl/1, а не паскаль, на что в тексте дан очень четкий намек, и выдают решение №2
Могу прзнаться — я не знаю pl/1; кроме того — я никогда не писал на паскале и горжусь этим. Что же до твоего самоуверенного заявления, что "они выдают решение №2" — то это лишь твои домыслы граничащие с комплексом неполноценности (хочется самому себе казаться умнее преподавателей). Как раз теоретики такого не напишут. Это больше свойственно студентам-первокурсникам.
P.S. Я не преподаватель и никогда им не был.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Здравствуйте, qwertyuiop, Вы писали:
Q>Могу прзнаться — я не знаю pl/1;
Думаешь я знаю? Первый раз увидел. Но догадался же.
Q>кроме того — я никогда не писал на паскале и горжусь этим.
И этим все сказано
Q>Что же до твоего самоуверенного заявления, что "они выдают решение №2" — то это лишь твои домыслы граничащие с комплексом неполноценности (хочется самому себе казаться умнее преподавателей). Как раз теоретики такого не напишут. Это больше свойственно студентам-первокурсникам.
Тот, кто написав сразу запускает программу, тут же её заметит. А тот, кто пишет на бумажке, нет. Дальше объяснять?
Здравствуйте, Кодёнок, Вы писали:
Кё>Тот, кто написав сразу запускает программу, тут же её заметит. А тот, кто пишет на бумажке, нет. Дальше объяснять?
Осталось только понять, почему ты решил что преподаватели не запускают программы...
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Здравствуйте, qwertyuiop, Вы писали:
Кё>>Тот, кто написав сразу запускает программу, тут же её заметит. А тот, кто пишет на бумажке, нет. Дальше объяснять?
Q>Осталось только понять, почему ты решил что преподаватели не запускают программы...
потому что то, что написано на доске или на бумажке, нельзя запустить
Здравствуйте, qwertyuiop, Вы писали:
Q>Здравствуйте, Кодёнок, Вы писали:
Q>>>Вероятно составитель этого теста считает себя гением, а преподавателей идиотами, раз он им приписал такое решение. Однако сам он написал свои тесты на паскакале — и этим все сказано.
Кё>>Не идиотами, а теоретиками. Кем они зачастую и являются. Это простейшая ошибка из-за невнимательности. Они, так же как и ты, который не догадался что это pl/1, а не паскаль, на что в тексте дан очень четкий намек, и выдают решение №2
Q>Могу прзнаться — я не знаю pl/1; кроме того — я никогда не писал на паскале и горжусь этим. Что же до твоего
Я знал ПЛ/1 и писал на Паскале. Я не горжусь этим. Просто факт. Гордость должна быть где-то в другом месте...
Q>самоуверенного заявления, что "они выдают решение №2" — то это лишь твои домыслы граничащие с комплексом неполноценности (хочется самому себе казаться умнее преподавателей). Как раз теоретики такого не напишут. Это больше свойственно студентам-первокурсникам.
Выдал себя с потрохами...
Q>P.S. Я не преподаватель и никогда им не был.
Здравствуйте, Unforgiver, Вы писали:
U>Там же внизу комментарии есть
U>Написано "Ни в одном из примеров не проверяется начальное значение переменной i". U>Так что i = 3-i не совсем верно.
Ага, только в начале написано
Переменная i представляет собой полное слово с фиксированной
точкой. i принимает значения 1 либо 2.
А потом он ехидничает что никто не проверяет значение.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Здравствуйте, qwertyuiop, Вы писали:
Q>Ага, только в начале написано Q>Переменная i представляет собой полное слово с фиксированной Q>точкой. i принимает значения 1 либо 2. Q>А потом он ехидничает что никто не проверяет значение.
Вообще-то программер с опытом уже научен, что спецификация тоже может содержать ошибки. Если вы договорились с программистом Н что он будет давать вашей функции 1 или 2, то это не значит что однажды вы не получите 3.
match (i)
{
| 1 => 2
| 2 => 1
| _ => "whoops"
}
switch (i)
{
case 1: return 2
case 2: return 1
}
return some_error;
Кстати что интересно, при использовании pattern matching (или switch/case) в комбинации с возвратом значения случай "не 1 и не 2" приходит на ум сам собой, вы просто обязаны его обработать.