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

17 Алгоритмы с результатами

17.1. Простейший пример алгоритма с результатами

Как мы уже знаем, для задания исходной информации в алгоритме используются аргументы. Но алгоритм может не только получать информацию, но и отдавать ее (рис. 62). Для этого существует специальный вид величины —результаты.

Рис. 62

Рассмотрим пример алгоритма с результатом.

А56

алг гипотенуза (арг вещ а, b, рез вещ с)

дано а >= 0 и b >= 0 | длины катетов треугольника

надо | с = длина гипотенузы этого треугольника

нач

| с := sqrt (а**2 + b**2)

кон

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

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

В команде вызова вспомогательного алгоритма на месте его результатов указываются имена величин основного алгоритма, в которых должны оказаться вычисленные значения. Например, если нам надо в основном алгоритме "вычисление" найти гипотенузу х прямоугольного треугольника с катетами р - 1 и р + 1, то достаточно написать вызов вспомогательного алгоритма "гипотенуза" (А56):

алг вычисление

нач вещ р, х

гипотенуза (р - 1, р + 1, х)

кон

Пусть к моменту выполнения этого вызова величина р имеет значение 7 (рис. 63).

Рис. 63

Встретив вызов "гипотенуза (р - 1, р + 1, х)", компьютер вычислит значения р-1 и р+1 передаст их алгоритму "гипотенуза" в качестве значений аргументов а и b. Значение х в этот момент не вычисляется, так как х соответствует результату вспомогательного алгоритма.

Затем начинается выполнение вспомогательного алгоритма "гипотенуза". Выделяется память алгоритма, в ней создаются ячейки для аргументов а, b и результата с, аргументы получают значения, переданные из основного алгоритма (рис. 64).

Рис. 64

В памяти компьютера при этом будет одновременно храниться информация, относящаяся и к алгоритму "вычисление", и к алгоритму "гипотенуза". Далее ЭВМ выполнит алгоритм "гипотенуза" и вычислит значение величины-результата с (рис. 65).

Рис. 65

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

Рис. 66

17.3. Общие правила выполнения команды вызова вспомогательного алгоритма

1. Выполняя команду вызова вспомогательного алгоритма, компьютер вычисляет значения аргументов и передает их вспомогательному алгоритму в том порядке, в котором они записаны в команде вызова. После этого выполнение основного алгоритма приостанавливается.

  1. Перед началом выполнения вспомогательного алгоритма компьютер отводит для него место в памяти. Аргументы получают значения, переданные из основного алгоритма.

  2. В конце выполнения вспомогательного алгоритма его результаты передаются в основной алгоритм и заносятся в ячейки величин, указанных в команде вызова в качестве результатов.

  3. После окончания вспомогательного алгоритма все, что с ним связано, стирается из памяти компьютера. (Если алгоритм вызывается еще раз, то все начинается сначала: компьютер снова отводит место в памяти, присваивает значения аргументам и т. д.)

  4. Продолжается выполнение основного алгоритма.