
Подпрограммы.
Подпрограммы – процедуры.
Программы решают задачи значительно облегчающие программирование:
Избавляют необходимости многократно повторять в тексте программы аналогичные объекты.
Улучшают структуру программы, облегчают и понимают при разборе.
Повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификации.
Подпрограмма может состоять из тех или иных разделов что и основная программа.
Описание в программе.
Подпрограммы описываются в раздели описания основной программы, в подразделе процедур.
Procedure имя процедуры (список формальных параметров);
Список формальных параметров представляет собой перечисление через точку с запятой имен переменных с указанием их типов.
Например:
Procedure WWOD (Var: mas; var s, p: real);
Формальные параметры предназначены для передачи значений в процедуру и для возврата результата работы процедуры в основную программу.
Формальные параметры делятся на:
Параметры – значения с их помощью в процедуру передаются входные значения.
Параметры – переменные. С их помощью процедура возвращает результат своей работы в программу.
Перед описанием параметров всегда ставится ключевое слово 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 может обращаться сама к себе такое обращение называется РЕКУРСИЕЙ.
Рекурсивным – называют объект который частично определяется через самого себя для того, чтобы такого обращения не было бесконечным в тексте подпрограммы должно быть условие по достижению которого дальнейшего обращения не происходит. Таким образом, рекурсное обращение может включаться только в одну из ветвей подпрограммы.
Максимальное число рекурсных вызовов процедуры или функции без возвратов которые происходят во время выполнения программы называется глубиной рекурсии. Число рекурсивных вызовов в каждый конкретный момент времени называется текущим уровнем рекурсии.
Формы рекурсивных процедур.
Форма с выполненным действий до результатного вызова
Procedure rec;
Begin
Оператор;
If условие then rec;
End;
Формат с выполненным действий после рекурсивного вызова.
Procedure rec;
Begin
If условие then rec;
Оператор;
End;
Форма с выполнением действий как до так и после рекурсивного вызова
Procedure rec;
Begin
Оператор 1;
If условие then rec;
Оператор 2;
End;
Задание 1. Отладить программу и вывести все варианты результата выполнения программы.
Задача: Создать программу, которая выполняет следующие действия с введенной строкой данных: удаляет введенный символ и считает количество удаленных символов, вставляет строку символов после первого пробела во введенной строке данных, копирует введенное количество символов после первого пробела во введенной строке данных. Действия отражаются в виде меню:
По введенному номеру каждое действие выполняется отдельно. После выполнения действий экран очищается для ввода новой строки.
Листинг программы:
Задание 2. Построить блок-схему, написать программу, отладить программу и вывести результат выполнения программы.
Вариант 1 |
Вариант 2 |
Создать программу:
Введите первое множество (вводиться первое множество) Введите второе множество (вводиться второе множество) Выберите действие 1. Выполнить операцию пересечение 2. Выполнить операцию разность 3. Включить элемент (вводиться номер действия) |
Создать программу:
Введите первое множество (вводиться первое множество) Введите второе множество (вводиться второе множество) Выберите действие 1. Выполнить операцию объединение 2. Выполнить операцию эквивалентность 3. Исключить элемент (вводиться номер действия) |