- •Центр Компьютерного Обучения
- •Подпрограммы: процедуры.
- •1. Структурное программирование и технология нисходящего программирования.
- •2. Подпрограммы в языке Pascal. Понятие «процедура».
- •3. Формальные и фактические параметры.
- •4. Параметры-значения и параметры-переменные (входные и выходные параметры) подпрограмм, механизм передачи параметров (можно перенести на Занятие 2, если не хватит времени).
- •5. Локальные и глобальные переменные, область действия переменных
- •Подпрограммы: функции
- •Функция не имеет выходных параметров, она возвращает единственное значение (результат);
- •Рекурсия
- •Строковый тип данных – String
- •6. Для обработки строковых данных можно использовать стандартные процедуры и функции, описание которых можно найти в [1] или в любом справочнике по Pascal.
- •1. Общие сведения.
- •5. Доступ к компонентам файла.
- •Дополнительно (на усмотрение преподавателя!!!) процедуры Rename и Erase.
- •Текстовые файлы
- •1. Назначение.
- •Типизированные файлы
- •Динамические структуры данных
- •1. Статическая и динамическая память.
- •Распределение памяти.
- •2. Статические и динамические переменные.
- •Статическая переменная:
- •4. Доступ к переменной по указателю.
- •5. Управление динамической памятью (процедуры New и Dispose).
- •Формирование с помощью указателей однонаправленного списка по принципу стека, поиск элемента
- •Однонаправленный список
- •Пояснения к программе
- •Формирование с помощью указателей однонаправленного списка по принципу «очереди», поиск элемента
- •Пояснения к программе
- •Удаление элемента из линейного однонаправленного списка
4. Параметры-значения и параметры-переменные (входные и выходные параметры) подпрограмм, механизм передачи параметров (можно перенести на Занятие 2, если не хватит времени).
Формальные параметры подпрограмм можно разбить на две основные группы: параметры-значения (без Var) и параметры-переменные (c Var).
Параметры-значения используются только для передачи исходных данных из основной программы в подпрограмму, поэтому они являются входными параметрами. Параметры-значения могут изменяться подпрограммой, но в основную программу они не передаются.
Если формальный параметр объявлен как параметр-значение, то фактическим параметром может быть константа, переменная или некоторое выражение. При вызове подпрограммы фактические параметры вычисляются и используются как начальные значения формальных параметров, т. е. осуществляется подстановка значений. Если формальный параметр определен как параметр-значение, то перед вызовом процедуры это значение вычисляется, полученный результат помещается во временную память и передается процедуре. Даже если фактический параметр – константа (переменная), все равно процедуре будет передана лишь копия этой константы (переменной). В процессе выполнения подпрограммы формальные параметры могут изменяться, но это никак не отразится на соответствующих фактических параметрах, т. к. меняются не они, а их копия. Значения же фактических параметров не изменяется (сохраняются те значения, что и до вызова подпрограммы). Поэтому параметры-значения нельзя использовать для передачи результатов из подпрограммы в основную программу.
Параметры-переменные обязательно используются для определения результатов выполнения процедуры, поэтому они являются выходными параметрами. После окончания работы процедуры они передаются в основную программу. В <списке формальных параметров> выходные параметры перечисляются после зарезервированного слова Var с обязательным указанием типа.
-
Входные параметры = параметры-значения (без Var).
Выходные параметры = параметры-переменные (с Var).
Каждому формальному параметру, объявленному как параметр-переменная, должен соответствовать фактический параметр в виде переменной соответствующего типа. Если формальный параметр определен как параметр-переменная, то при вызове процедуры ей передается сама переменная, а не её копия (подпрограмме разрешается доступ к области памяти, где хранится значение переменной), и изменение параметра-переменной приводит к изменению фактического параметра в вызывающей программе. Следовательно, исходные данные в процедуру из программы могут передаваться как через параметры-значения, так и через параметры-переменные, а результаты работы процедуры возвращаются в вызывающую программу только через параметры-переменные.
Например, (задача 1) в процедуре формирования массива Input() параметр D типа Massiv является выходным (параметром-переменной), т. к. процедура формирует матрицу, т. е. изменяет переменную. А целочисленное N процедурой не изменяется, поэтому является параметром-значением.