- •Процедуры и функции
- •Объявление процедур и функций без параметров
- •Определение процедуры, основные особенности работы
- •Определение функции, основные особенности работы
- •Области видимости процедур и функций
- •Глобальные и локальные переменные
- •Оформление исходного текста процедур и функций
- •Параметры-значения и особенности работы с ними
- •Параметры-переменные и особенности работы с ними
- •Параметры-константы и особенности работы с ними
- •Открытые параметры-массивы и особенности работы с ними
- •Бестиповые параметры и особенности работы с ними
- •Процедурный тип, определение, область применения
- •Явная и неявная рекурсия
- •Типизированные константы
- •Определение файла, общие процедуры и функции для работы с ними
- •Текстовые файлы, особенности,процедуры и функции для работы с ними
- •Типизированные файлы, особенности,процедуры и функции для работы с ними
- •Нетипизированные файлы, особенности,процедуры и функции для работы с ними
- •Модули. Структура модулей Паскаль
- •Особенности использования, видимость содержимого
- •Компилляция модуля(3 режима)
- •Стандартные модули Паскаль
- •Указатели
- •Основные понятия, типы указателей, объявление
- •Способы задания значений переменных
- •Основные процедуры работы с указателем
- •Работа с диманической памятью
- •Основные ошибки при работе с указателями
- •Объекты
- •Ооп, основные понятия и определения
- •Достоинства и недостатки
- •Объявление объектного типа, поля, методов
- •Области видимости в модели объектов Паскаль
- •Наследование
- •Полиморфизм, виртуальные методы
- •Использование экземпляров объекта
- •Динамическая память и деструкторы
Процедуры и функции
Объявление процедур и функций без параметров
Вызов процедуры без параметров осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При выполнении этого оператора выполняется вся подпрограмма.
Procedure <имя процедуры>;
function MyCoolFunc: String; begin MyCoolFunc := 'Hello, world!'; end;
Правила определения функций без параметров (из процедуры без параметров): В процедуре определяется локальная переменная, в которой хранится вычисляемый в этой процедуре параметр. Эта переменная в процедуре заменяет соответствующую ей глобальную переменную. Слово Procedure заменяется словом Function. После имени функции вставляется двоеточие и тип возвращаемого значения. В конце тела функции необходимо присвоить имени функции значение локальной переменной, хранящей вычисленный параметр.
Определение процедуры, основные особенности работы
Процедура - это часть программы, в которой выполняется специфическое действие, обычно основанное на наборе параметров.
В заголовке процедуры определяются ее идентификатор и набор формальных параметров (если таковые есть).
Процедура вызывается с помощью процедурного оператора.
Заголовок процедуры сопровождается:
разделом описаний, в котором объявляются локальные объекты
операторами, находящимися между Begin и End, которые определяют, что должно быть выполнено при вызове процедуры.
procedure <имя> (<сп.форм.пар.>);
Определение функции, основные особенности работы
function <имя> (<сп.форм.пар.>) : <тип>;
Функция в Паскале — это подпрограмма, которая в отличие от процедуры всегда возвращает какое-либо значение. Для этого в теле функции её имени присваивается вычисленное значение — результат, который она возвращает.
Тип, который принимает вычисляемое значение, указывается в заголовке функции через двоеточие.
Вызывается функция в теле основной программы только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно. Рассмотрим синтаксис:
var …;{объявление глобальных переменных}
function название (параметры): тип результата; var…; {объявление локальных переменных} begin … {тело функции} название:=результат; {результат вычислений всегда присваивается функции} end;
begin … {тело основной программы} end. |
Области видимости процедур и функций
Имена объектов, описанных в некотором блоке, считаются известными в пределах данного блока, включая и все вложенные блоки.
Имена объектов, описанные в блоке, должны быть уникальными в пределах данного блока и могут совпадать с именами объектов из других блоков.
Если в некотором блоке описан объект, имя которого совпадает с именем объекта, описанного в объемлющем блоке, то последнее становится недоступным в данном блоке (экранировка).
Пример: Program X; Var I,j:integer; z:real; Procedure x1(i:integer;); Var j:integer; begin End; Begin End; Procedure x2; Var z:integer; Procedure x3(z:string); Begin End; Function y4(z:string):integer; Begin End; Begin End; Begin End.
