ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Процедура в Паскале и ее формат.В языке PASCAL выделяют два вида подпрограмм: процедура(ргосв<1иге) и функция (function). Имея один и тот же смысл и аналогичную структуру, процедуры и функции различаются назначением и способом их использования. Мы уже встречались со стандартными процедурами и функциями. Любая программа может содержать несколько процедур и функции. Процедуры и функции объявляются в разделе описания вслед за разделом описания переменных. Процедура - это независимая часть программы, которую можно вызывать по имени для выполнения определенных действий. Процедуры служат для задания совокупности действий, направленных на изменение внешней по отношению к ним программной обстановки; например, вычисления каких-либо выражений с разными значениями параметров или рисования геометрических фигур с различными значениями сторон или радиусов. Структура процедуры имеет следующий вид: procedure имя [(список формальных параметров)]; раздел описаний begin раздел операторов end; Первая строка описания называется заголовком процедуры, а раздел операторов называется телом процедуры. В заголовке указывается служебное слово PROCEDURE, за которым следуют имя процедуры и список формальных параметров, заключенные в круглые скобки (если такие имеются). В списке перечисляются имена формальных параметров и их тип. Имя параметра отделяется от типа двоеточием, а параметры друг от друга - точкой с запятой. Если несколько формальных параметров имеют одинаковый тип, тогда их можно перечислить через запятую, а затем указать тип. Имя процедуры задается по правилам задания имен переменных. Тело процедуры заключается в операторные скобки BEGIN и END, причем после END, в отличие от основной программы, вместо точки ставится точка с запятой. Раздел описаний процедуры подобен программе и состоит из разделов меток, констант, типов, переменных и, в свою очередь, процедур и функций. Процедура вызывается по ее имени: имя [(список фактических параметров)]; Формальные параметры - параметры, определенные в заголовке процедуре. Фактические параметры - выражения, задающие конкретные значения при обращении к процедуре. При обращении к процедуре ее формальные параметры замещаются фактическими, переданными из основной программы. С помощью формальных и фактических параметров данные передаются из программы в процедуру и, наоборот, из процедуры в программу. Между формальными и фактическими параметрами должно быть соответствие по количеству параметров, по их типу и порядку следования. Среди параметров процедуры выделяют параметры-значения и параметры-переменные. Параметры-значения выполняют роль входных параметров процедуры. Они могут получать значения фактических параметров, но не могут передавать свои значения фактическим параметрам. Параметры-переменные выполняют роль как входных, так и выходных параметров процедуры. Они могут получать значения фактических параметров, изменять их в процедуре и возвращать новые значения в основную программу. Для передачи результатов выполнения подпрограммы в основную программу следует использовать параметры-переменные. В списке формальных параметров они перечисляются после зарезервированного слова VAR с обязательным указанием типа. 19.3. Механизм передачи параметров Если параметр определен как параметр-значение, то перед вызовом процедуры это значение вычисляется, полученный результат помещается во временную память и передается процедуре. Процедура использует в качестве значения соответствующего параметра значение из этой памяти. При выходе из процедуры эта временная память недоступна основной программе. Таким образом, значения фактических параметров не изменяются подпрограммой, а остаются теми же, что были при обращении к подпрограмме. Если же формальный параметр определен как параметр-переменная, то при вызове подпрограммы ей передается сама переменная, поэтому изменение в подпрограмме значения параметра - переменной приводит к изменению фактического параметра в основной программе. Следовательно, исходные данные из программы в подпрограмму могут быть переданы как через параметры - значения, так и через параметры - переменные, а результат работы процедуры возвращается в основную программу только через параметры -переменные. Любая процедура может содержать несколько входных параметров и несколько результатов ее выполнения. Пример процедуры: PROCEDURE EXPRES(A,B,C:REAL;VAR X,Y:REAL); VAR Z:REAL; BEGIN Z-A+B+C; X:=SQR(Z); (*КВАДРАТг *) Y:=SQRT(Z) (*KOPEHbH3Z *) END; Эту процедуру можно вызвать таким образом: EXPRESS(25.4,44.6,30,X1,Y1); Формальные входные параметры А, В, С принимают значения соответствующих фактических параметров, А=25.4, B=344.6, С=30. При этих значениях выполняется процедура. Результатом выполнения процедуры являются X, Y, которые передают свои значения соответствующим фактическим параметрам XI, Y1. Таким образом, в основной программе будем иметь Xl=10000, Yl=10. Допускается одинаковое обозначение соответствующих формальных и фактических параметров. Например, вызов процедуры может иметь вид: EXPRESS(25.4,44.6,30,X,Y); В качестве фактических параметров, которые соответствуют параметрам-значениям, могут быть константы, переменные, выражения. Их тип должен соответствовать типу формального параметра. Например, вызов процедуры может быть таким: А:=25;С-.=30; EXPRESS(A,44.6,C,X1,Y1); или D:=44.6;R:=10; EXPRESS(25.4,D,R+20,Z,T); В любом случае формальные параметры получат значения А=25.4, В=44.6, 030. В качестве фактических параметров, которым соответствуют параметры-персменные, используются только имена переменных (константы и выражения недопустимы). Допускается использование процедур без параметров. В этом случае формальные и фактические параметры отсутствуют. Назначение такой процедуры - изменение значений некоторых переменных или выполнение каких- либо действий, внешних по отношению к процедуре (очистка экрана, например). В процедуре, как и в основной программе, может отсутствовать раздел описаний. Не нашли, что искали? Воспользуйтесь поиском:
|