Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа № 10-11.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
84 Кб
Скачать

Подпрограммы.

Подпрограммы – процедуры.

Программы решают задачи значительно облегчающие программирование:

  1. Избавляют необходимости многократно повторять в тексте программы аналогичные объекты.

  2. Улучшают структуру программы, облегчают и понимают при разборе.

  3. Повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификации.

Подпрограмма может состоять из тех или иных разделов что и основная программа.

Описание в программе.

Подпрограммы описываются в раздели описания основной программы, в подразделе процедур.

Procedure имя процедуры (список формальных параметров);

Список формальных параметров представляет собой перечисление через точку с запятой имен переменных с указанием их типов.

Например:

Procedure WWOD (Var: mas; var s, p: real);

Формальные параметры предназначены для передачи значений в процедуру и для возврата результата работы процедуры в основную программу.

Формальные параметры делятся на:

  1. Параметры – значения с их помощью в процедуру передаются входные значения.

  2. Параметры – переменные. С их помощью процедура возвращает результат своей работы в программу.

Перед описанием параметров всегда ставится ключевое слово Var

Вызов процедуры.

Вызов процедуры осуществляется из основной программы

Имя процедуры(список фактических параметров);

Фактические параметрыэто идентификаторы переменных или их значения необходимые для работы подпрограммы. Между формальными и фактическими параметрами должно соответствие по кол – ву, по порядку следования и типу.

Область действия идентификаторов (ОДИ).

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

Если идентификаторы – их действия распространяются по несколько, вложенных процедур и функций, то такие идентификаторы называются глобальными.

Функции.

Оформляет подпрограмму как функцию целесообразно только в том случае если ожидается некоторый результат работы подпрограммы если же последовательность команд ориентировано на выполнение некоторых действий (выдача информаций на экран и т.д.) целесообразно оформлять как процедуру. Общая структура функции совпадает со структурой процедуры за исключением заголовка. В отличие от процедуры имя функции связывается с ее значением поэтому имя вычисляемой переменной должно совпадать с именем функции.

Описание в программе.

Function имя функции (список формальных параметров): тип возвращаемого результата;

Пример:

Ввести 2 числа вычислить сумму этих чисел.

Var a, b, c: integer;

Function summa (c,d: integer): integer;

Begin

summa:= c+d;

End;

Begin

Writeln(‘Введите два числа’);

Realn(a,b);

S:=summa(a,b);

Writeln(‘Сумма чисел = ’, S);

End.

Вызов функции в операторах вывода обрабатывается формально точно также как и упоминание о константах и переменных.

Writeln(‘Сумма чисел = ’, summa(a,b));

Рекурсия.

Под программа в Pascal может обращаться сама к себе такое обращение называется РЕКУРСИЕЙ.

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

Максимальное число рекурсных вызовов процедуры или функции без возвратов которые происходят во время выполнения программы называется глубиной рекурсии. Число рекурсивных вызовов в каждый конкретный момент времени называется текущим уровнем рекурсии.

Формы рекурсивных процедур.

  1. Форма с выполненным действий до результатного вызова

Procedure rec;

Begin

Оператор;

If условие then rec;

End;

  1. Формат с выполненным действий после рекурсивного вызова.

Procedure rec;

Begin

If условие then rec;

Оператор;

End;

  1. Форма с выполнением действий как до так и после рекурсивного вызова

Procedure rec;

Begin

Оператор 1;

If условие then rec;

Оператор 2;

End;

Задание 1. Отладить программу и вывести все варианты результата выполнения программы.

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

По введенному номеру каждое действие выполняется отдельно. После выполнения действий экран очищается для ввода новой строки.

Листинг программы:

Задание 2. Построить блок-схему, написать программу, отладить программу и вывести результат выполнения программы.

Вариант 1

Вариант 2

Создать программу:

Введите первое множество

(вводиться первое множество)

Введите второе множество

(вводиться второе множество)

Выберите действие

1. Выполнить операцию пересечение

2. Выполнить операцию разность

3. Включить элемент

(вводиться номер действия)

Создать программу:

Введите первое множество

(вводиться первое множество)

Введите второе множество

(вводиться второе множество)

Выберите действие

1. Выполнить операцию объединение

2. Выполнить операцию эквивалентность

3. Исключить элемент

(вводиться номер действия)