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