- •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. Общие правила выполнения команды вызова вспомогательного алгоритма
- •Алгоритм с результатами при управлении Роботом
- •Алгоритм Евклида
- •Сумма цифр десятичного числа
- •Исполнение алгоритмов
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. Выполняя команду вызова вспомогательного алгоритма, компьютер вычисляет значения аргументов и передает их вспомогательному алгоритму в том порядке, в котором они записаны в команде вызова. После этого выполнение основного алгоритма приостанавливается.
Перед началом выполнения вспомогательного алгоритма компьютер отводит для него место в памяти. Аргументы получают значения, переданные из основного алгоритма.
В конце выполнения вспомогательного алгоритма его результаты передаются в основной алгоритм и заносятся в ячейки величин, указанных в команде вызова в качестве результатов.
После окончания вспомогательного алгоритма все, что с ним связано, стирается из памяти компьютера. (Если алгоритм вызывается еще раз, то все начинается сначала: компьютер снова отводит место в памяти, присваивает значения аргументам и т. д.)
Продолжается выполнение основного алгоритма.
