Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_Informatika.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

18) Классификация вспомогательных алгоритмов: функция, процедура, процедура-функция.

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

· Вспомогательный алгоритм, который обладает только побочным эффектом, т.е. не имеет явного результата, называется процедурой

· Применительно к роботу побочным эффектом является изменение обстановки

Пример вспомогательного алгоритма-процедуры:

|Закрасить ряд в заданном направлении

алг закрасить_ряд(лит направление, цел длина)

нач

если длина > 0 то |есть, что закрашивать

|Закрасить ряд ненулевой длины

закрасить

нц длина-1 раз

перейти_на_клетку(направление)

закрасить

кц

все

кон

2. Вспомогательные алгоритмы-функции

· Вспомогательный алгоритм, главное назначение которого — вычисление некоторой величины, называется функцией

· Вычисляемая величина называется результатом функции

· У функции возможен побочный эффект, но он является следствием вычисления результата

Пример вспомогательного алгоритма-функции:

|Обнаружение рядом стоящей стены

алг лог стена_рядом(лит направление)

дано |направление, в котором происходит поиск стены

надо |наличие/отсутствие стены в заданном направлении

нач

выбор

при направление = "влево": знач := слева стена

при направление = "вправо": знач := справа стена

при направление = "вверх": знач := сверху стена

при направление = "вниз": знач := снизу стена

все

кон

Вызов вспомогательного алгоритма-функции:

· Так как алгоритм-функция возвращает результат, то она может быть использована (вызвана) в арифметических и логических выражениях

· После исполнения алгоритма-функции на месте ее вызова появится величина, вычисленная функцией

· Пример:

лог left_top

left_top := стена_рядом("влево") и стена_рядом("вверх")

3. Вспомогательные алгоритмы-процедуры-функции

· Вспомогательные алгоритмы, в которых изменяются (обновляются) входные величины, будем называть процедуры-функции

· Для реализации процедуры-функции требуется использовать параметры, которые одновременно являются и аргументами, и результатами

· Синтаксис аргумента-результата:

аргрез тип_параметра имя_параметра

Пример вспомогательного алгоритма -процедуры-функции:

|Сменить направление робота на противоположное

алг сменить_на_противоположное(аргрез лит направление)

дано |направление движения робота

надо |противоположное движение

нач

выбор

при направление = "влево": направление := "вправо"

при направление = "вправо": направление := "влево"

при направление = "вверх": направление := "вниз"

при направление = "вниз": направление := "вверх"

все

кон

Вызов вспомогательного алгоритма-процедуры-функции:

· Так как алгоритм-процедура-функция принимает некоторую величину, а затем вычисляет и присваивает ей новое значение, то параметром функции может быть только переменная

· После исполнения алгоритма значение передаваемой величины обновится

· Пример:

лит direct = "влево"

сменить_на_противоположное(direct)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]