пятница, 19 января 2018 г.

Информатика ошибок

Вчера помогал сыну с заданием по информатике. Ну, что им преподаватель толком не объяснила даже основ синтаксиса языка программирования Pascal, уже о многом говорит. Но задание выдала - решайте. Задание было вот такое:

Напишите программу, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет сумму чисел, крат­ных 3. Про­грам­ма по­лу­ча­ет на вход ко­ли­че­ство чисел в последовательности, а затем сами числа. В по­сле­до­ва­тель­но­сти все­гда име­ет­ся число, крат­ное 3. Ко­ли­че­ство чисел не пре­вы­ша­ет 100. Введённые числа не пре­вы­ша­ют 300. Про­грам­ма долж­на вы­ве­сти одно число — сумму чисел, крат­ных 3.

Пример ра­бо­ты программы:

Входные данные Выходные данные
3 21
12
25
9


Тут даже не надо быть программистом, чтобы увидеть - ответ неправильный. Я сначала на него и не посмотрел, мы разбирались как программу написать. Я-то ведь тоже не программист ни разу, так, по верхам. Ну, конструкцию IF...THEN знаю, ну про циклы слышал. Методом научного тыка, регулярно выслушивая матюки компилятора на нашу тупость, составили программу. Попутно я понял сам и объяснил сыну зачем там остаток от целочисленного деления и что оператор MOD именно его и считает...

В общем, когда программа таки заработала и прожевала числа, которые мы ей скормили, ответ она выдала как бы неправильный. То есть он не совпал с ответом, приведённом в задании. У нас получилось 24. Сын поначалу опять загрустил, решил, что неправильно программа работает. Но я-то помню, что уже не первый раз сталкиваюсь с ошибками в заданиях, поэтому заставил его посчитать самостоятельно. А чего там считать-то, в четырёх числах? Кратны 3 - собственно 3, 12 и 9, их сумма равно 24. Наша программа считает ровно так же. Следовательно идиоты не мы. С этим напутствием и отправил ребёнка в школу. Результатов пока не знаю, но если вдруг кто-то заявит, что неправильно - пойду ругаться.

Комментариев нет :

Отправить комментарий