-
Всего предвидеть не может никто. Какими бы опытными зубры не были :)
Именно поэтому читаемость и легкость сопровождения важнее хитровывернутости :)
-
> x = x > 0?0:1; > x:=ord(x=0); > x = x != 0?0:1;
А вот все эти варианты как раз и недопустимы. В ТЗ не сказано, что делать, если X не 0 и не 1. Поэтому надо либо уточнять ТЗ, либо выдавать ошибку - но ни в коем случае нельзя расширять неполное ТЗ своими догадками. Иначе запросто можем получить, что программа работает неверно, но никто этого не замечает.
-
> В ТЗ не сказано, что делать, если X не 0 и не 1. так и не писали бы никаких исключений, тоже было бы тихо-нерабоче. самим можно, а нам низя, не интересно так
-
ухты © (09.04.17 22:11) [119] > x = x != 0?0:1;
да, в некоторых компиляторах так будет шустрее.
-
> Юрий Зотов © (09.04.17 22:22) [121] > но ни в коем случае нельзя расширять > неполное ТЗ своими догадками. Иначе запросто можем получить, > что программа работает неверно, но никто этого не замечает.
выдача исключения - точно такое же расширение ТЗ. но, наши варианты позволят программе, возможно, и при неверных входных данных продолжить функционирование, и вполне возможно, что успешное функционирование (исходя из предположения (опыта зубренного), что это ваще такое и зачем) а вариант с исключением будет дергать каждый раз.
-
> Kilkennycat © (09.04.17 22:37) [124]
Для чего ж тогда вообще нужны исключения?
-
> Kerk © (09.04.17 22:40) [125]
ну, лично я стараюсь их использовать как можно меньше и в случаях, когда рискую получить что-то форсмажорное, например, при получении данных из сети.
-
> Kilkennycat © (09.04.17 22:37) [124]
> выдача исключения - точно такое же расширение ТЗ.
Нет. В ТЗ не сказано, что надо делать - вот программа ничего и не делает. В полном соответствии с ТЗ.
> наши варианты позволят программе, возможно, и при неверных > входных данных продолжить функционирование
Ты изменишь свое мнение, когда программа, молча продолжив свое функционирование, насчитает тебе отрицательную зарплату.
-
исключения это просто оптимистик, и всего то )
-
> Юрий Зотов © (09.04.17 22:47) [127]
вполне возможно, что она насчитает мне в 10 раз больше )
В общем, тз неправильное. В случае расчетов зп, согласен, программе лучше сообщить и перестать считать. В случае управления насосом, откачивающим воду, программе лучше продолжить работу, независимо от того, остановится насос или наоборот, будет работать вхолостую - следующие входные данные могут быть истинными и выправят ситуацию.
-
> Kilkennycat © (09.04.17 22:37) [124]
> наши варианты позволят программе, возможно, и при неверных > входных данных продолжить функционирование
Кто сказал, что при возникновении исключения программа непременно должна завершаться?
Она должна прервать заведомо неверную операцию, сообщить об этом юзеру, восстановить свое правильное состояние и продолжить работу. А завершиться она должна лишь при невозможности продолжения.
-
> Юрий Зотов © (09.04.17 22:56) [130]
ну, согласен. Но это лишь подтверждает, что на ту задачу ТЗ неполное, и любой ответ - верен.
я таких неполных задач тоже могу назадавать. например: есть массив байтов, размер массива 3. присвоить каждому элементу 1.
-
> Kilkennycat © (09.04.17 23:03) [131]
а, ну и дополню, что испытуемый написал: a[0] = 1; a[1] = 1; a[2] = 1;
Берем такого на работу? :)
-
тут одного зубра мало, тут помощник нужен
-
> Kilkennycat © (09.04.17 23:06) [132]
> Берем такого на работу? :)
Не берем. Он не предусмотрел, что завтра размер массива может измениться и что его индекс не обязан начинаться с нуля.
-
> Юрий Зотов © (09.04.17 23:15) [134]
а я бы не был столь категоричен. ведь он наверняка знал и другие способы, однако в рамках этого тз такой вариант выполняется быстрее всего и при компиляции даст меньший размер. А то, что в будущем может что-то там потребоваться... так PIC10F200 обладает всего 352 байтами флэши. Забыл добавить в ТЗ ;)
-
студентам прием на работу не светит
-
> Sha © (09.04.17 23:26) [136]
большинству студентов - да. Но из моего опыта их тестирования, меньшее свечение им давали амбиции - ЗП хотят как у зубра.
-
> PIC10F200 обладает всего 352 байтами
384. память моя никчерту стала. пить, что ли, меньше надо?
-
> Sha © (09.04.17 23:26) [136]
Как-то шеф мне говорит: "Пойдем, прособеседуем одного человека, к нам на должность аналитика хочет. Два дня назад он уже приходил и получил задачку: нарисовать структуру простейшей БД для библиотеки. На нее он запросил 2 дня, вот сегодня и принес".
Ок, идем. Сидит молодой парнишка, вчерашний студент. Смотрим его творение. Там таблица книг и таблица авторов. Связка - один к одному.
Спрашиваем: а может быть несколько разных авторов у одной и той же книги? - Да, отвечает. - А может один и тот же автор написать несколько разных книг? - Да. - Значит, какая должна быть связка?
Молчит. Подсказываем: многие ко многим. И спрашиваем - а как ее реализовать? Снова молчит.
Блин! Окончил ВУЗ по специальности. Запросил 2 дня на задачку, которая набрасывается за 15 минут. Претендует на аналитика. Ну и как его брать?
Но самая распространенная ошибка студентов - это, наверное, тихое гашение исключений (это же хорошо, когда программа работает без ошибок).
|