Конференция "Прочее" » Студенческая задачка
 
  • Kerk © (09.04.17 22:12) [120]
    Всего предвидеть не может никто. Какими бы опытными зубры не были :)

    Именно поэтому читаемость и легкость сопровождения важнее хитровывернутости :)
  • Юрий Зотов © (09.04.17 22:22) [121]

    > x = x > 0?0:1;
    > x:=ord(x=0);
    > x = x != 0?0:1;

    А вот все эти варианты как раз и недопустимы. В ТЗ не сказано, что делать, если X не 0 и не 1. Поэтому надо либо уточнять ТЗ, либо выдавать ошибку - но ни в коем случае нельзя расширять неполное ТЗ своими догадками. Иначе запросто можем получить, что программа работает неверно, но никто этого не замечает.
  • ухты © (09.04.17 22:28) [122]

    > В ТЗ не сказано, что делать, если X не 0 и не 1.
    так и не писали бы никаких исключений, тоже было бы тихо-нерабоче.
    самим можно, а нам низя, не интересно так
  • Kilkennycat © (09.04.17 22:31) [123]
    ухты ©   (09.04.17 22:11) [119]
    > x = x != 0?0:1;

    да, в некоторых компиляторах так будет шустрее.
  • Kilkennycat © (09.04.17 22:37) [124]

    > Юрий Зотов ©   (09.04.17 22:22) [121]
    > но ни в коем случае нельзя расширять
    > неполное ТЗ своими догадками. Иначе запросто можем получить,
    >  что программа работает неверно, но никто этого не замечает.

    выдача исключения - точно такое же расширение ТЗ.
    но, наши варианты позволят программе, возможно, и при неверных входных данных продолжить функционирование, и вполне возможно, что успешное функционирование (исходя из предположения (опыта зубренного), что это ваще такое и зачем)
    а вариант с исключением будет дергать каждый раз.
  • Kerk © (09.04.17 22:40) [125]

    > Kilkennycat ©   (09.04.17 22:37) [124]

    Для чего ж тогда вообще нужны исключения?
  • Kilkennycat © (09.04.17 22:43) [126]

    > Kerk ©   (09.04.17 22:40) [125]

    ну, лично я стараюсь их использовать как можно меньше и в случаях, когда рискую получить что-то форсмажорное, например, при получении данных из сети.
  • Юрий Зотов © (09.04.17 22:47) [127]
    > Kilkennycat ©   (09.04.17 22:37) [124]

    > выдача исключения - точно такое же расширение ТЗ.


    Нет. В ТЗ не сказано, что надо делать - вот программа ничего и не делает. В полном соответствии с ТЗ.

    > наши варианты позволят программе, возможно, и при неверных
    > входных данных продолжить функционирование


    Ты изменишь свое мнение, когда программа, молча продолжив свое функционирование, насчитает тебе отрицательную зарплату.
  • ухты © (09.04.17 22:53) [128]
    исключения это просто оптимистик, и всего то )
  • Kilkennycat © (09.04.17 22:55) [129]

    > Юрий Зотов ©   (09.04.17 22:47) [127]

    вполне возможно, что она насчитает мне в 10 раз больше )

    В общем, тз неправильное. В случае расчетов зп, согласен, программе лучше сообщить и перестать считать. В случае управления насосом, откачивающим воду, программе лучше продолжить работу, независимо от того, остановится насос или наоборот, будет работать вхолостую - следующие входные данные могут быть истинными и выправят ситуацию.
  • Юрий Зотов © (09.04.17 22:56) [130]
    > Kilkennycat ©   (09.04.17 22:37) [124]

    > наши варианты позволят программе, возможно, и при неверных
    > входных данных продолжить функционирование


    Кто сказал, что при возникновении исключения программа непременно должна завершаться?

    Она должна прервать заведомо неверную операцию, сообщить об этом юзеру, восстановить свое правильное состояние и продолжить работу. А завершиться она должна лишь при невозможности продолжения.
  • Kilkennycat © (09.04.17 23:03) [131]

    > Юрий Зотов ©   (09.04.17 22:56) [130]

    ну, согласен. Но это лишь подтверждает, что на ту задачу ТЗ неполное, и любой ответ - верен.

    я таких неполных задач тоже могу назадавать.
    например: есть массив байтов, размер массива 3. присвоить каждому элементу 1.
  • Kilkennycat © (09.04.17 23:06) [132]

    > Kilkennycat ©   (09.04.17 23:03) [131]

    а, ну и дополню, что испытуемый написал:
    a[0] = 1;
    a[1] = 1;
    a[2] = 1;

    Берем такого на работу? :)
  • Sha © (09.04.17 23:07) [133]
    тут одного зубра мало, тут помощник нужен
  • Юрий Зотов © (09.04.17 23:15) [134]
    > Kilkennycat ©   (09.04.17 23:06) [132]

    > Берем такого на работу? :)


    Не берем. Он не предусмотрел, что завтра размер массива может измениться и что его индекс не обязан начинаться с нуля.
  • Kilkennycat © (09.04.17 23:25) [135]

    > Юрий Зотов ©   (09.04.17 23:15) [134]

    а я бы не был столь категоричен. ведь он наверняка знал и другие способы, однако в рамках этого тз такой вариант выполняется быстрее всего и при компиляции даст меньший размер. А то, что в будущем может что-то там потребоваться... так PIC10F200 обладает всего 352 байтами флэши. Забыл добавить в ТЗ ;)
  • Sha © (09.04.17 23:26) [136]
    студентам прием на работу не светит
  • Kilkennycat © (09.04.17 23:32) [137]

    > Sha ©   (09.04.17 23:26) [136]

    большинству студентов - да. Но из моего опыта их тестирования, меньшее свечение им давали амбиции - ЗП хотят как у зубра.
  • Kilkennycat © (10.04.17 00:06) [138]

    > PIC10F200 обладает всего 352 байтами

    384. память моя никчерту стала. пить, что ли, меньше надо?
  • Юрий Зотов © (10.04.17 00:23) [139]
    > Sha ©   (09.04.17 23:26) [136]

    Как-то шеф мне говорит: "Пойдем, прособеседуем одного человека, к нам на должность аналитика хочет. Два дня назад он уже приходил и получил задачку: нарисовать структуру простейшей БД для библиотеки. На нее он запросил 2 дня, вот сегодня и принес".

    Ок, идем. Сидит молодой парнишка, вчерашний студент. Смотрим его творение. Там таблица книг и таблица авторов. Связка - один к одному.

    Спрашиваем: а может быть несколько разных авторов у одной и той же книги?
    - Да, отвечает.
    - А может один и тот же автор написать несколько разных книг?
    - Да.
    - Значит, какая должна быть связка?

    Молчит. Подсказываем: многие ко многим. И спрашиваем - а как ее реализовать? Снова молчит.

    Блин! Окончил ВУЗ по специальности. Запросил 2 дня на задачку, которая набрасывается за 15 минут. Претендует на аналитика. Ну и как его брать?

    Но самая распространенная ошибка студентов - это, наверное, тихое гашение исключений (это же хорошо, когда программа работает без ошибок).
 
Конференция "Прочее" » Студенческая задачка
Есть новые Нет новых   [134431   +10][b:0.001][p:0.001]