Выбрать главу

Руки подняли Максим, Даша и ещё один мальчик, Марк, но ответить Витя попросил вторую девочку, Катю: Как ты считаешь, какая из этих команд даёт приказ печатать результат?

- Команда номер 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 целых чисел, а если нужно миллион чисел напечатать?

- Давайте, попробуем её улучшить, - предложил учитель.