Каждая подпрограмма определяется уникальным именем (идентификатором). Замечание: тексты подпрограмм помещаются в раздел описаний процедур и функций
Вид материала | Программа |
- Тема урока: «Процедуры и функции. Понятие подпрограмм. Механизм реализации подпрограмм, 54kb.
- Лгоритма его функционирования), устранения некорректности первичного описания и последовательного, 3205.47kb.
- В себя различные компоненты раздела описаний (типы, константы, переменные, процедуры, 373.81kb.
- Методические разработки Анализ уроков Публикации Вэтот раздел помещаются методические, 115.84kb.
- Методические разработки Анализ уроков Публикации Вэтот раздел помещаются методические, 113.53kb.
- Характеристика жилого фонда, 1400.13kb.
- Тексты лекций по курсу «Основы рекламного дела», 247.42kb.
- Тексты лекций по курсу «Основы рекламного дела», 466.44kb.
- Тексты лекций Санкт-Петербург 2008 Одобрено и рекомендовано к изданию Методическим, 1679.53kb.
- Каждая компонента списка определяется ключом. Обычно ключ либо число, либо строка символов, 242.97kb.
Лекция № 11.
§ 10. Процедуры и функции
1. Основные сведения.
Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.
Определение: подпрограмма - это именованная последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из нескольких точек программы.
Замечание: в языке Паскаль существует два типа подпрограмм – процедуры и функции.
Определение: процедура – выполняет определенные действия (операторы).
Определение: функция – выполняет определенные действия (операторы) и возвращает через свое имя рассчитанное в функции значение (результат).
Замечание: каждая подпрограмма определяется уникальным именем (идентификатором).
Замечание: тексты подпрограмм помещаются в раздел описаний процедур и функций.
Замечание: подпрограмма может содержать такие же разделы описаний, что и основная программа, а именно: разделы описания модулей, констант, типов данных, переменных, процедур и функций.
Замечание: внутренние переменные подпрограммы являются локальными, т.е. недоступны извне подпрограммы и могут совпадать с именами переменных основной программы, в этом случае внутренняя переменная «перекрывает» внешнюю.
Формат процедуры:
procedure ИмяПодпрограммы [(список параметров подпрограммы)];
Раздел описания подпрограммы;
begin Оператор1; Оператор2; … ОператорN; end;,
где список параметров подпрограммы – предаваемые в процедуру и возвращаемые процедурой данные;
Раздел описания подпрограммы – раздел в котором подключаются необходимые модули, описываются константы, типы данных, переменные, внутренние процедуры и функции;
Оператор1, ОператорN – операторы, входящие в состав процедуры.
Формат функции:
function ИмяПодпрограммы [(список параметров подпрограммы)]: ТипВозвращаемогоРезультата;
Раздел описания подпрограммы;
begin Оператор1; Оператор2; … ОператорN; end;,
где список параметров подпрограммы – предаваемые в процедуру и возвращаемые процедурой данные;
ТипВозвращаемогоРезультата – тип данных, соответствующий типу значения, возвращаемому через имя функции;
Раздел описания подпрограммы – раздел в котором подключаются необходимые модули, описываются константы, типы данных, переменные, внутренние процедуры и функции;
Оператор1, ОператорN – операторы, входящие в состав процедуры.
2. Передача данных в подпрограмму и из подпрограммы.
Данные передаются в подпрограмму и из подпрограммы через список параметров.
Формат списка параметров: (ОписаниеПараметра1; ОписаниеПараметра2; … ОписаниеПараметраN)
Определение: параметр подпрограммы – временная переменная, создаваемая на время работы подпрограммы и используемая для передачи данных в подпрограмму и из нее.
Формат описания параметра: [var] ИмяПараметра: ТипДанныхПараметра;
где var – признак того, что передаваемые через параметр данные (переменная) могут изменяться в подпрограмме;
ИмяПараметра – идентификатор параметра;
ТипДанныхПараметра – тип данных, соответствующий типу значения, передаваемому через параметр.
Замечание: передача данных через параметр без использования ключевого слова var – называется передача данных «по значению».
Замечание: передача данных через параметр с использованием ключевого слова var – называется передача данных «по адресу».
Замечание: var-параметры должны следовать после не-var-параметров.
Замечание: параметры подпрограммы являются локальными, т.е. недоступны извне подпрограммы.
Примеры.
- Очистка экрана через процедуру ClearScreen;
- Возведение числа в произвольную степень через функцию(Ln и Exp);
- Деление двух чисел через процедуру и через функцию (в функции проверка на ноль в качестве результата).
Замечание: если в операторе внутри подпрограммы используется имя процедуры, то подпрограмма будет вызываться рекурсивно (будет при выполнении обращаться сама к себе).
Пример.
Функция нахождения n!
function NFactor(n: integer): longint;
begin
if (n = 0) then
NFactor := 1
else
NFactor := NFactor(n - 1) * n;
end;