Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы и величины исп Чертежн.doc
Скачиваний:
5
Добавлен:
29.11.2019
Размер:
531.46 Кб
Скачать

14 Алгоритмы с аргументами

14.1. Пример алгоритма с аргументом

Вспомните упражнения 7, б), в) из предыдущего параграфа. Для рисования квадратов с длинами сторон 4 и 6 вы составляли два разных алгоритма, отличающихся только числами в командах.

А как быть, если нужно рисовать много разных квадратов с разными длинами сторон? Можно, конечно, составить множество похожих алгоритмов, но делать этого очень не хочется! Было бы намного удобнее создать единый алгоритм-образец, в который компьютер сам подставлял бы каждый раз нужные числа.

Для подобных целей в алгоритмическом языке существуют алгоритмы с аргументами. Например, алгоритм рисования квадрата с произвольной длиной стороны может выглядеть так:

А38

алг квадрат (арг вещ а)

дано | перо Чертежника в левом нижнем углу будущего

| квадрата и поднято

надо | нарисован квадрат с длиной стороны а, перо Чертежника

| в исходной точке и поднято

нач

о пустить перо

сместиться на вектор (а, 0)

сместиться на вектор (0, а)

сместиться на вектор (-а, 0)

сместиться на вектор (0, -а)

поднять перо

кон

Запись "алг квадрат (арг вещ а)" означает, что у алгоритма "квадрат" есть один аргумент (арг) а, который может быть произвольным числом.

Слово вещ — это сокращение от «вещественный», этим словом в информатике принято обозначать числа, которые могут быть целыми или дробными (в математике такие числа называют действительными). Это слово описывает тип аргумента. Тип указывает, какие значения может принимать величина и какие действия можно с ней выполнять.

Позже мы познакомимся с алгоритмами, аргументы которых могут быть лишь целыми (цел) числами; с алгоритмами, аргументы которых вообще не являются числами; а также с алгоритмами, у которых, кроме аргументов, есть результаты (рез). Именно этим объясняется необходимость слов арг и вещ в заголовке алгоритма "квадрат".

    1. Выполнение вспомогательного алгоритма с аргументами

Если в основном алгоритме написать вызов "квадрат (4)", то компьютер запомнит, что аргумента равен 4, и при выполнении алгоритма "квадрат (арг вещ а)" скомандует Чертежнику:

опустить перо

сместиться на вектор (4, 0)

сместиться на вектор (0, 4)

сместиться на вектор (-4, 0)

сместиться на вектор (0, -4)

поднять перо

Если же в основном алгоритме написать вызов "квадрат (6)", то компьютер запомнит, что аргумент а равен 6, и скомандует Чертежнику:

опустить перо

сместиться на вектор (6, 0)

сместиться на вектор (0, 6)

сместиться на вектор (-6, 0)

сместиться на вектор (0, -6)

поднять перо

    1. Модель памяти компьютера

Поясним подробнее, как компьютер запоминает значения аргументов в своей памяти. Память компьютера удобно представлять в виде обычной классной доски, на которой можно записывать информацию, читать, стирать, записывать заново и т. д. Место, отводимое в памяти компьютера для хранения информации, удобно изображать прямоугольником, внутри которого записывается сама информация (значение аргумента). Такой прямоугольник мы будем называть ячейкой памяти.

При выполнении каждого алгоритма ему выделяется отдельный участок памяти, где создаются ячейки для аргументов. После окончания выполнения алгоритма эта память освобождается. Память алгоритма удобно изображать в виде большого прямоугольника, внутри которого находятся прямоугольники меньшего размера, соответствующие ячейкам.

Возможный вид памяти при исполнении алгоритма "квадрат" показан на рисунке 44 (здесь

а=4)

Рис. 44