
- •13 Исполнитель Чертежник и работа с ним
- •13.1. Особенности записи чисел в информатике
- •13.2. Исполнитель Чертежник
- •13.3. Команды с параметрами
- •13.4. Абсолютное и относительное смещение
- •13.5. Пример алгоритма управления Чертежником
- •13.6. Рисование букв
- •13.7. Использование вспомогательных алгоритмов
- •14 Алгоритмы с аргументами
- •14.1. Пример алгоритма с аргументом
- •Выполнение вспомогательного алгоритма с аргументами
- •Модель памяти компьютера
- •Алгоритмы с несколькими аргументами
- •14.5. Аргументы в заголовке цикла n раз
- •14.6. Закрашивание прямоугольника
- •14.7. Заголовок алгоритма с аргументами
- •15 Арифметические выражения и правила их записи
- •15.1. Арифметические выражения в алгоритмическом языке
- •15.2. Выражения вычисляет компьютер
- •15.3. Правила записи арифметических выражений в алгоритмическом языке
- •15.4. Операции и стандартные функции алгоритмического языка
- •15.5. Порядок действий в арифметических выражениях
- •16 Величины в алгоритмическом языке. Команда присваивания
- •16.1. Измерение радиации и температуры
- •16.2. Компьютер запоминает информацию
- •16.3. Компьютер выполняет подсчет
- •16.4. Величины и их характеристики
- •16.5. Описание величин
- •6.6. Модель памяти компьютера
- •16.7. Команда присваивания
- •Примеры использования команды присваивания
- •Еще один пример алгоритма, работающего с величинами
- •Рисование параболы
- •17 Алгоритмы с результатами
- •17.1. Простейший пример алгоритма с результатами
- •17.2. Выполнение алгоритма с результатами
- •17.3. Общие правила выполнения команды вызова вспомогательного алгоритма
- •Алгоритм с результатами при управлении Роботом
- •Алгоритм Евклида
- •Сумма цифр десятичного числа
- •Исполнение алгоритмов
14 Алгоритмы с аргументами
14.1. Пример алгоритма с аргументом
Вспомните упражнения 7, б), в) из предыдущего параграфа. Для рисования квадратов с длинами сторон 4 и 6 вы составляли два разных алгоритма, отличающихся только числами в командах.
А как быть, если нужно рисовать много разных квадратов с разными длинами сторон? Можно, конечно, составить множество похожих алгоритмов, но делать этого очень не хочется! Было бы намного удобнее создать единый алгоритм-образец, в который компьютер сам подставлял бы каждый раз нужные числа.
Для подобных целей в алгоритмическом языке существуют алгоритмы с аргументами. Например, алгоритм рисования квадрата с произвольной длиной стороны может выглядеть так:
А38
алг квадрат (арг вещ а)
дано | перо Чертежника в левом нижнем углу будущего
| квадрата и поднято
надо | нарисован квадрат с длиной стороны а, перо Чертежника
| в исходной точке и поднято
нач
о
пустить
перо
сместиться на вектор (а, 0)
сместиться на вектор (0, а)
сместиться на вектор (-а, 0)
сместиться на вектор (0, -а)
поднять перо
кон
Запись "алг квадрат (арг вещ а)" означает, что у алгоритма "квадрат" есть один аргумент (арг) а, который может быть произвольным числом.
Слово вещ — это сокращение от «вещественный», этим словом в информатике принято обозначать числа, которые могут быть целыми или дробными (в математике такие числа называют действительными). Это слово описывает тип аргумента. Тип указывает, какие значения может принимать величина и какие действия можно с ней выполнять.
Позже мы познакомимся с алгоритмами, аргументы которых могут быть лишь целыми (цел) числами; с алгоритмами, аргументы которых вообще не являются числами; а также с алгоритмами, у которых, кроме аргументов, есть результаты (рез). Именно этим объясняется необходимость слов арг и вещ в заголовке алгоритма "квадрат".
Выполнение вспомогательного алгоритма с аргументами
Если в основном алгоритме написать вызов "квадрат (4)", то компьютер запомнит, что аргумента равен 4, и при выполнении алгоритма "квадрат (арг вещ а)" скомандует Чертежнику:
опустить перо
сместиться на вектор (4, 0)
сместиться на вектор (0, 4)
сместиться на вектор (-4, 0)
сместиться на вектор (0, -4)
поднять перо
Если же в основном алгоритме написать вызов "квадрат (6)", то компьютер запомнит, что аргумент а равен 6, и скомандует Чертежнику:
опустить перо
сместиться на вектор (6, 0)
сместиться на вектор (0, 6)
сместиться на вектор (-6, 0)
сместиться на вектор (0, -6)
поднять перо
Модель памяти компьютера
Поясним подробнее, как компьютер запоминает значения аргументов в своей памяти. Память компьютера удобно представлять в виде обычной классной доски, на которой можно записывать информацию, читать, стирать, записывать заново и т. д. Место, отводимое в памяти компьютера для хранения информации, удобно изображать прямоугольником, внутри которого записывается сама информация (значение аргумента). Такой прямоугольник мы будем называть ячейкой памяти.
При выполнении каждого алгоритма ему выделяется отдельный участок памяти, где создаются ячейки для аргументов. После окончания выполнения алгоритма эта память освобождается. Память алгоритма удобно изображать в виде большого прямоугольника, внутри которого находятся прямоугольники меньшего размера, соответствующие ячейкам.
а=4)
Рис. 44