Тема 2. Процедуры и функции. Организация ветвлений
Процедуры и функции Турбо Паскаль позволяет выделять фрагменты программы во вспомогательные алгоритмы. Это позволяет писать хорошо структурированные программы. Языки программирования, в которых предусмотрены вспомогательные алгоритмы, называются процедурно-ориентированными. Структурированные программы обычно проще для понимания и отладки. Подпрограмма - это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Каждая подпрограмма определяется уникальным именем. В языке ПАСКАЛЬ существуют два типа подпрограмм - процедуры и функции. Процедура и функция - это именованная последовательность описаний и операторов. При использовании процедур или функций ПАСКАЛЬ - программа должна содержать текст процедуры или функции и обращение к процедуре или функции. Тексты процедур и функций помещаются в раздел описаний процедур и функций. Процедура может содержать такие - же разделы описаний, что и ПАСКАЛЬ - программа, а именно: разделы описания модулей, меток, констант, типов, переменных, процедур и функций. Вызов процедуры на выполнение осуществляется отдельным оператором с помощью ее имени. Вызов функции может быть составной частью любого выражения при условии согласованности типов. Описание процедур и функций должно предшествовать их вызову и располагается перед началом основной программы. Нельзя вызывать на выполнение те вспомогательные алгоритмы, которые содержатся внутри других процедур и функций. Описание процедуры имеет следующую структуру. Procedure Имя (Список формальных параметров);
Label const Описание локальных меток, type констант, типов и переменных Var procedure Описание внутренних процедур function и функций Begin Операторы end; Описание функции имеет следующую структуру: Function Имя (Список формальных параметров): Тип результата; Label const Описание локальных меток, type констант, типов и переменных Var procedure Описание внутренних процедур function и функций Begin Операторы, среди которых хотя бы один, который присваивает имени функции значение результата End. Типом результата в функциях может быть любой из стандартных типов Турбо Паскаля кроме файловых типов. Использование конструируемых типов здесь недопустимо. Существуют понятия локальных и глобальных меток, констант, типов и переменных. Переменные, описанные в основной программе, являются глобальными по отношению к процедурам и функциям, которые описаны позже этих переменных. Аналогично, переменные, описанные в процедурах и функциях, являются глобальными по отношению к внутренним процедурам и функциям, которые описаны позже. Остальные переменные называются локальными. Их область действия локализована, т.е. ограничена, тем вспомогательным алгоритмом, где они описаны. Исходные данные для работы вспомогательных алгоритмов можно передавать через глобальные переменные, а также через параметры. Параметры при вызове вспомогательных алгоритмов называются фактическими, а параметры в заголовке вспомогательных алгоритмов называются формальными. Формальные параметры вспомогательных алгоритмов также относятся к его локальным переменным. Локальные данные создаются, т.е. им выделяется память, при вызове вспомогательные алгоритмы, а освобождение этой памяти происходит при завершении работы вспомогательные алгоритмы. В том случае, когда локальная переменная имеет тот же идентификатор, что и глобальная, алгоритм работает с локальной. При этом, значение глобальной переменной сохраняется в специальной области памяти, которая называется стек.
По способу передачи параметры в Турбо Паскале делятся на типы: ü параметры-значения, ü параметры-переменные, ü параметры-константы. Параметры-значения При вызове процедур и функций формальным параметрам-значениям выделяется новое место в памяти и присваиваются значения фактических параметров. При этом на месте фактических параметров могут стоять выражения. Совместимость типов определяется возможностями присваивания. После выполнения подпрограммы место формальных параметров освобождается. Изменение формальных параметров не сказывается на значении фактических, т.е. «время жизни» таких параметров, как и других локальных переменных, ограничивается временем работы подпрограммы. Заголовок процедуры с параметрами-значениями имеет вид: Procedure MyProc1(par1,par2: type1; par3,par4: type2);
Читайте также: I. МЕТОДЫ, ПОДХОДЫ И ПРОЦЕДУРЫ ДИАГНОСТИКИ И ЛЕЧЕНИЯ Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|