"Информатика и ИКТ (в 2 частях)", Бененсон Е.П., Паутова А.Г.
Необычный аквариум в информатике — это изображение, которое создают с помощью алгоритма: точного порядка команд для исполнителя. В нём часто повторяются рыбки, растения, пузырьки или другие детали. Чтобы не записывать одинаковые действия много раз, используют цикл — повторение команд. Если объекты нужно расположить рядами и столбцами, помогают вложенные циклы. Главное — правильно задать число повторений и перемещение к следующему месту, а затем проверить, что элементы стоят так, как задумано.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алгоритм — точная последовательность команд, по которой создают изображение необычного аквариума. Исполнитель выполняет команды в заданном порядке и получает рисунок. Алгоритм нужен, чтобы изображение можно было построить не наугад, а по понятному плану.
Цикл — конструкция алгоритма, которая повторяет заданные команды несколько раз. Например, вместо нескольких одинаковых команд для рыбок можно задать одно повторение нужное число раз. Цикл помогает сделать алгоритм короче и упрощает изменение количества элементов.
Тело цикла — команды, выполняемые при каждом повторении цикла. Это может быть не только команда нарисовать элемент, но и команда переместиться к следующему месту. Выделение тела цикла помогает понять, какие именно действия должны повторяться вместе.
Вложенный цикл — цикл, размещённый внутри другого цикла и повторяющийся при каждом его выполнении. Например, внешний цикл перебирает ряды, а внутренний размещает элементы в каждом ряду. Такой приём нужен, когда одного повторения недостаточно для построения узора из строк и столбцов.
Изображение аквариума можно представить как набор деталей и правил их размещения. Сначала решают, какие объекты будут нарисованы, например рыбки и растения, а затем определяют их расположение. Если несколько деталей одинаковы, их можно считать повторениями одного действия, а не отдельными задачами. Такое представление помогает увидеть структуру рисунка до записи команд.
Когда элементы похожи, команды для их построения часто тоже совпадают. Если записывать каждую такую команду отдельно, алгоритм разрастается, а при исправлении приходится менять много мест. Цикл позволяет описать общую часть один раз и задать число повторов. Тогда, например, для другого количества рыбок достаточно изменить число повторений, если остальные условия не меняются.
Одного числа повторений недостаточно, если все объекты должны оказаться в разных местах. После создания элемента исполнитель должен перейти туда, где появится следующий; перемещение можно включить в тело цикла. Длину шага выбирают с учётом размеров объекта и желаемого расстояния между деталями. Поэтому проверяют не только количество повторов, но и то, как меняется положение исполнителя от шага к шагу.
Для рисунка из рядов и столбцов удобно использовать вложенные циклы. Внешний цикл задаёт очередной ряд, а внутренний размещает в нём нужное количество элементов. После завершения внутреннего цикла исполнитель переходит на позицию следующего ряда, и внутренний цикл запускается снова. Такой порядок помогает не путать горизонтальные перемещения внутри ряда с переходами между рядами.
Готовый алгоритм проверяют пошаговым выполнением. Для каждого повтора отмечают, какая команда выполняется и где после неё оказывается исполнитель. Затем сравнивают получившееся расположение с задуманным: хватает ли элементов, совпадают ли ряды и не пересекаются ли объекты. Если рисунок отличается, проще найти шаг, на котором возникло расхождение, и исправить соответствующую команду или число повторений.
| Что размещаем | Как организовать построение | Что проверить |
|---|---|---|
| Один элемент | Выполнить команды создания элемента один раз. | Выбрано ли нужное место и верно ли построен элемент. |
| Несколько элементов в ряд | Поместить создание элемента и переход к следующему месту в цикл. | Совпадает ли число повторов с количеством элементов и достаточен ли шаг. |
| Элементы в нескольких рядах | Использовать внешний цикл для рядов, а внутренний — для элементов в каждом ряду. | Правильно ли задан переход между рядами и их количество. |
| Одинаковые группы элементов | Повторять построение всей группы, если для каждой группы подходят одинаковые команды. | Совпадают ли состав и расположение групп с планом рисунка. |
Пользуйся таблицей как планом: сначала определи, что именно нужно разместить, затем выбери способ построения. В последнем столбце собраны проверки, которые помогают заметить ошибки до завершения всего рисунка. Если группы отличаются, проверь, можно ли повторять их целиком или отдельные параметры придётся менять.
Условие. Нужно составить алгоритм, который разместит три одинаковые рыбки в ряд. Их размеры и направление не меняются, а между соседними рыбками должно быть одинаковое расстояние. Значит, повторяться будет построение рыбки вместе с переходом к следующей позиции.
Ответ. Алгоритм состоит из цикла на три повторения с командами «нарисовать рыбку» и «перейти вправо на один шаг размещения». Шаг выбирают так, чтобы рыбки располагались на одной линии и не накладывались друг на друга.
Условие. Требуется разместить одинаковые элементы в четырёх рядах, по три элемента в каждом. Внутри ряда элементы идут горизонтально, а между рядами исполнитель должен переходить на новую строку. Два направления повторения подсказывают, что понадобятся вложенные циклы.
Ответ. Используются внешний цикл на четыре ряда и вложенный внутренний цикл на три элемента. Внешний цикл запускает размещение элементов в каждом ряду, а переход между рядами выполняется после завершения внутреннего.
Условие. Нужно построить пять рядов, в которых число повторяющихся элементов различается. Поэтому одного одинакового числа повторов внутреннего цикла для всех рядов может быть недостаточно. При этом команды создания элемента и горизонтального перемещения могут оставаться общими.
Ответ. Команды построения элемента можно использовать повторно, но число повторов нужно задавать с учётом конкретного ряда. Команды перехода между рядами сохраняют, а количество элементов в каждом ряду проверяют отдельно.
Повторяют команды вручную вместо цикла. Так бывает, если ученик воспринимает каждый элемент как отдельную команду и не замечает одинаковые действия. Алгоритм становится длинным, а исправление повторяющихся частей требует лишней работы. Проверь себя: если несколько фрагментов команд совпадают, подумай, можно ли объединить их циклом.
Указывают неверное число повторений. Иногда начальное действие считают отдельно, а иногда, наоборот, включают его в цикл и получают лишний элемент. Причина — неясно, сколько раз выполняется тело цикла. Проследи каждый повтор по порядку и посчитай, сколько элементов появилось именно в результате цикла.
Не включают перемещение в тело цикла. Если исполнитель каждый раз начинает рисовать в одной точке, элементы окажутся друг на друге. Эту ошибку допускают, сосредоточившись на команде создания объекта и забыв о его следующем положении. Проверь координаты или положение после каждого повтора: они должны изменяться так, как требует рисунок.
Путают порядок вложенных циклов. Если цикл элементов не запускается заново для каждого ряда, рисунок может получиться одной длинной строкой или с неверным числом объектов. Обычно причина в том, что переход между рядами поставлен не после завершения внутреннего цикла. Проверь порядок: сначала строятся все элементы ряда, затем исполнитель переходит к следующему ряду и повторяет построение.
Для работы с аквариумом нужны знания об алгоритме, команде и последовательном выполнении команд. Без этого нельзя определить, в каком порядке исполнитель будет строить детали. Сначала полезно уметь описывать простое действие, а затем объединять несколько действий в понятную последовательность.
Также важно уметь задавать повторение команд и отслеживать положение исполнителя или объекта. Эти умения помогают понять, почему следующая деталь появляется в новом месте, а не поверх предыдущей. Они пригодятся и при создании рисунков, узоров и других алгоритмов с повторяющимися действиями.
Зачем использовать цикл, если команды можно просто повторить?
Цикл позволяет записать повторяющиеся команды один раз и указать, сколько раз их выполнить. Так алгоритм становится короче, а изменить число одинаковых элементов проще.
Что входит в тело цикла?
В тело цикла входят команды, которые исполнитель выполняет при каждом повторении. Например, нарисовать рыбку и переместиться к месту следующей.
Как определить, сколько раз должен выполниться цикл?
Сосчитай, сколько элементов нужно разместить в той части рисунка, за которую отвечает цикл. Число повторений должно совпадать с этим количеством.
Когда нужны вложенные циклы?
Они нужны, когда повторяющиеся элементы расположены в нескольких рядах или столбцах. Один цикл может отвечать за ряды, а другой — за элементы внутри каждого ряда.
Почему элементы могут оказаться наложенными друг на друга?
Чаще всего в теле цикла забывают перемещение к следующему месту или задают слишком маленький шаг. Проверь команды перемещения и проследи, где оказывается исполнитель после каждого повторения.
Необычные аквариумы