Процедуры. Параметры-переменные. — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Процедуры. Параметры-переменные.

2018-01-04 171
Процедуры. Параметры-переменные. 0.00 из 5.00 0 оценок
Заказать работу

Процедуры Процедурой в Паскале называется именованная последова­тельность инструкций, реализующая некоторое действие. В нуж­ное место программы процедуру вызывают с помощью оператора вызова. После выполнения процедуры программа перейдет к вы­полнению оператора, следующего за оператором вызова. Формат описания процедуры:Рrocedure<Имя процедуры>(<форм. параметры>); <Раздел описаний> Begin <Тело процедуры> End;Формальные параметры — перечень имен для обозначения исходных данных и результатов работы процедуры, используе­мых для описания процедуры, с указанием их типов.Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы. Однако все описанные здесь объекты доступны лишь в этой процедуре. Они локальны так же, как и имена формальных параметров. Объекты, описан­ные ранее в разделе описаний основной программы и не переоп­ределенные в процедуре, называются глобальными для этой под­программы и доступны для использования. Формат оператора вызова: <имя процедуры> (<фактические параметры>);Фактические параметры - данные, с которыми выполняется процедура. Между формальными и фактическими параметрами должно быть соответствие по количеству, типу и порядку следо­вания. Процедуры могут быть без параметров, например, Proce­dure Р11;. При описании процедур без параметров использу­ются глобальные переменные. Параметры процедуры Существует два способа передачи фактических параметров в подпрограмму: по значению и по ссылке. Соответственно пара­метры называются параметрами-значениями и параметрами-переменными.В первом случае значение переменной - фактического па­раметра при вызове подпрограммы присваивается локальной пе­ременной, являющейся формальным параметром подпрограммы. Изменение локальной переменной никак не отражается на соот­ветствующей глобальной. В качестве фактических параметров может служить любое выражение соответствующего типа.Передача параметров по ссылке отличается тем, что при обращении к подпрограмме имя формального параметра будет указывать на ту же область памяти, что и имя соответствующего фактического параметра. При описании подпрограммы перед именем параметра-переменной ставится служебное слово Var. В этом случае изменения выполняются в ячейках памяти фактиче­ских параметров. Поэтому в качестве фактических параметров можно использовать только имена переменных.


 

 

Пользовательские функции

Подпрограмма-функция предназначена для вычисления ка­кого-либо параметра. Функция состоит из заголовка и тела функ­ции. Заголовок функции имеет вид: Function <имя> (формальные параметры):<тип>; где Function - служебное слово; <имя> — имя функции, определяемое в соответствии с общими правилами построения идентификаторов; <тип> - тип функции, т.е. тип возвра­щаемого параметра. Функция может возвращать типы вещест­венные, порядковые, строкового и любого указателя.

У этой подпрограммы два основных отличия от процедуры. Первое отличие - заголовок. Второе отличие в том, что процеду­ра может иметь несколько выходных параметров - результатов, а функция только одно значение, передаваемое через ее имя. Именно этим объясняется то, что в теле функции хотя бы один раз имени функции должно присваиваться вычисленное значе­ние.Структура функции такая же, как и процедуры. Передача параметров осуществляется так же, как в процедуре. Функция - это некоторый независимый вспомогательный ал­горитм (или имеющая имя часть программы), к которому можно обращаться для выполнения указанной в нем последовательности операций. Функция предназначена для вычисления только одного значения переменной. Вызов функции производится на том шаге основного алгоритма, для реализации которого необходимо ис­пользовать значение именно данной функции (в выражениях, других функциях и т.п.). Обращение к функции состоит из имени функции и списка фактических параметров, которые должны совпадать по количе­ству и типам с формальными параметрами. При обращении к не­которым функциям список параметров может отсутствовать.В теле функции обязательно должна быть команда присваи­вания, где в левой части стоит имя функции, а в правой - ее значе­ние. В противном случае значение функции не будет определено. Каждое обращение к функции приводит к исполнению ком­пьютером предусмотренных этой функцией операций, которые позволяют найти конкретное значение данной функции. Получен­ное значение присваивается этой функции и помещается (как гово­рят, возвращается) в ячейку памяти, адрес которой определяется именем функции {пример - математические функции). Т.е. резуль­тат исполнения алгоритма-функции возвращается в основной алгоритм в виде единственного значения этой функции.


 

Рекурсия

При вычислениях возможны случаи, когда подпрограмма обращается к себе самой. Такую ситуацию называют рекурсией. Примером рекурсии служит подпрограмма вычисления факториала натурального числа:n!=система 1, если n=0; (n-1)!n, если n>0 function f(n:integer):integer; begin if n=0 then f:=l else f:=f (n-l)*n; end; Обращение к данной функции, например, с фактическим параметром 3, влечет следующие действия. Рекурсия. Рекурсия - это процесс, при котором вспомогательный алго­ритм (функция или процедура) вызывает самого себя. Программу с рекурсией позволяют реализовать только некоторые языки про­граммирования (в частности Pascal). Рекурсия позволяет свести общую задачу к другой, более простой задаче. Идея, рекурсии основана на использовании рекуррентных соотношений. Рекуррентное соотношение (рекуррентная формула) по­зволяет легко найти функцию для некоторого значения аргумента я, если известно ее значение для аргумента /7-1. Рекуррентные соотношения существуют для многих математических функций. Определения с п омощью рекуррентных формул иногда назы вают рекурсивными определениями. Достоинства алгоритмов, в которых используются рекурсии: простота, наглядность и компактность, поскольку использо вание рекурсии позволяет легко (почти дословно) построить алгоритм вычисления по рекуррентным.формулам. Недостаток таких алгоритмов: неэкономное использование оперативной памяти при их реализации на компьютерах.Текущим уровнем рекурсии называется число рекурсивных вызовов в каждый конкретный момент времени. Главное требование к рекурсивным процедурам: вызов ре курсивной процедуры должен выполняться по условию, которое на каком-то уровне рекурсии станет ложным. Если условие истинно, то рекурсивный спуск продолжается Когда оно становится ложным, то спуск заканчивается и начина­ ется поочередный рекурсивный возврат из всех вызванных на данный момент копий рекурсивной процедуры.Б езусловные рекурсивные процедуры приводят к бесконеч­ ным процессам, и на эту проблему нужно обратить особое внима ние, так как практическое использование процедур с бесконеч­ ным самовызовом невозможно. Такая невозможность вытекает из того, что для каждой копии рекурсивной процедуры необхо димо выделять дополнительную область памяти, а бесконечной памяти не существует.Рекурсии делятся на два вида: прямую и косвенную. При прямой рекурсии во вспомогательном алгоритме осуществляется обращение этого алгоритма к самому себе.


 

 

Понятие файла

Файл в Паскаль-программе представляет структурирован­ный тип данных, образованный последовательностью компонен­тов одного типа. В Паскале имеются три разновидности файлов: типизированные, безтиповые и текстовые. Доступ к физическим файлам происходит через так называемые файловые переменные. Для организации ввода/вывода в программе необходимо выполнить следующие действия:- объявить файловую переменную;- открыть файл для чтения и/или записи;- выполнить операции ввода/вывода;- закрыть файл. В любой момент доступен только один компонент файла. Другие компоненты становятся доступными по мере продвиже­ния по файлу, В отличие от массива число компонентов в файле не фиксируется. Его длина определяется в процессе выполнения программы и ограничивается только доступной памятью. Пози­ция файла, следующая за последним компонентом файла (или первая позиция пустого файла), помечается специальным марке­ром, который отличается от любого компонента файла. Для работы с файлами используют специальные процедуры и функции. С их помощью осуществляются все необходимые действия по созданию файлов и доступа к их компонентам. Перед выполнением операций файловая переменная связы­вается с физическим файлом, после чего он в тексте программы не упоминается. В Паскале есть подпрограммы, применяемые для файлов любого типа, а также подпрограммы для работы только с определенными типами файлов. Для эффективного выполнения операций ввода/вывода из внешних файлов в Паскале целесообразно использовать нетипизированные файлы, так как при работе с ними можно использовать быстрые дисковые операции низкого уровня. Нетипизированные файлы дают возможность прямого доступа к любому файлу на дис­ке независимо от его типа и структуры.


 


Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.