- Да, напечатается 1 и 2, потому что печать происходит каждый раз после того, как X увеличился.
- Снова правильно, - поддержал школьника преподаватель. - Сколько придётся добавить команд, чтобы напечатать ещё и число 3?
- Ещё 2 команды, X=X+1 и печать X, ответил Максим, считая, что вопрос обращён к нему.
- Если писать программу таким способом, то сколько в ней будет всего команд для печати сотни чисел от 1 до 100? - задал очередной вопрос преподаватель.
Максим поднял руку сразу, через некоторое время Марк, потом Даша, потом остальные дети. Витя предложил ответить Кате.
- 100 команд, - ответила девочка. Катин папа не выдержал и покинул класс. Марк дал ответ 200, его поддержали все остальные, кроме Максима, который уточнил количество команд до 203, что и было точным ответом.
- Как вы считаете, хороша или плоха такая программа, в которой для печати 100 целых чисел по порядку требуется 203 команды? - прозвучал очередной вопрос преподавателя.
Единственным, кто немедленно поднял руку, оказался Максим: Я думаю, она плохая, нужно написать 203 строки программы, чтобы напечатать 100 целых чисел, а если нужно миллион чисел напечатать?
- Давайте, попробуем её улучшить, - предложил учитель.
- Что можно сказать о двух парах строк: 3 и 4, 5 и 6?
- Они одинаковые, кроме номеров самих строк, - общее мнение всех учеников, и уточнение Максима, - но результат печатают разный.
- Получается, что после 4-й команды вместо 5-й можно выполнять 3-ю? - вопрос преподавателя, ответ на который очевиден, что и подтвердило дружное "да".
- Как бы вы сформулировали такую команду? - на это последовало несколько предложений школьников со сходным смыслом. - Вернуться к 3-й команде, повторить 3-ю команду и т.п.
- Учитель поправил текст программы:
И задал очередной вопрос: Какие числа напечатает эта программа? - и попросил ответить Игоря.
- 1 и 2, - последовал ответ мальчика.
- Кто с ним согласен?
Согласились все, кроме Максима, который изложил своё мнение: Я думаю, что эта программа будет печатать числа до бесконечности потому, что команда номер 6 конец никогда не исполнится, после 5-й будет выполняться 3-я, и так без конца.
- Всё правильно, как бы ты сформулировал эту команду: идти к 3, чтобы программа, всё-таки напечатала ровно 100 чисел от 1 до 100? - задал учитель вопрос Максиму.
- Вернуться к 3-й строке 99 раз, или идти к 3 пока X<100, - недолго думая ответил школьник.
- Хорошо, программа будет выглядеть так:
- Что нужно изменить в этой программе, чтобы она печатала только чётные числа от 2 до 100?
Преподаватель дождался, пока руки подняли все пятеро, и попросил ответить Катю.
- Я думаю, во 2-й команде нужно вместо X=0 написать X=1.
- Кто с этим не согласен?
Не согласны оказались все остальные, и учитель предложил высказаться Марку.
- Нужно в 3-ей команде написать X=X+2, тогда к нулю прибавить 2 будет 2 и напечатается, потом к двум прибавить 2 будет 4 и напечатается и так далее.
- Верно, вношу изменение:
- Что нужно изменить в этой программе, чтобы она печатала только нечётные числа от 1 до 99?
Руку немедленно поднял Максим и, немного подумав, Даша, её Витя и попросил ответить.
- Нужно в 3-й команде написать X=X+3, ой, нет, неправильно, тогда напечатается 3, а потом 6, - поправила себя девочка. - Можно, я ещё подумаю?
- Конечно. Максим, ответь ты.
- Нужно во 2-й команде написать X=-1, а в 5-й заменить 100 на 99.
- Верно, а теперь более трудный вопрос: Как нужно изменить эту программу, чтобы она подсчитала и напечатала сумму нечётных чисел от 1 до 99?
Здесь все дети погрузились в раздумья. Руку неожиданно поднял Игорь, и на кивок учителя спросил: Разрешается кроме икса ещё игрек использовать?
- Да, разрешается, - и Витя вопросительно посмотрел на школьника. Но продолжения не последовало, мальчик просто продолжил размышления, а через некоторое время ответить захотел Максим. С позволения преподавателя высказал необходимые по его мнению изменения в программе: Нужно добавить в начале ещё одну команду Y=0, вместо печать X написать Y=Y+X, и перед последней командой вставить печать Y.