28620

Описание и вызов процедур и функций

Доклад

Информатика, кибернетика и программирование

Формат описания процедуры имеет вид: procedure имя процедуры формальные параметры; раздел описаний процедуры begin исполняемая часть процедуры end; Формат описания функции: function имя функции формальные параметры:тип результата; раздел описаний функции begin исполняемая часть функции end; Формальные параметры в заголовке процедур и функций записываются в виде: var имя праметра: имя типа и отделяются друг от друга точкой с запятой. Вызов функции в Турбо Паскаль может производиться аналогичным способом кроме того имеется возможность...

Русский

2013-08-20

18.23 KB

0 чел.

Описание и вызов процедур и функций

Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, перменных. Исполняемая часть содержит собственно операторы процедур.

Формат описания процедуры имеет вид:

procedure имя процедуры (формальные параметры);

 раздел описаний процедуры

begin

 исполняемая часть процедуры

end;

Формат описания функции:

function имя функции (формальные параметры):тип результата;

 раздел описаний функции

begin

 исполняемая часть функции

end;

Формальные параметры в заголовке процедур и функций записываются в виде:

var имя праметра: имя типа

и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать (об этом далее). Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type.Список формальных параметров может отсутствовать.

Вызов процедуры производится оператором, имеющим следующий формат:

имя  процедуры(список фактических параметров);

Список фактических параметров - это их перечисление через запятую. При вызове фактические параметры как бы подставляются вместо формальных, стоящих на тех же местах в заголовке. Таким образом происходит передача входных параметров, затем выполняются операторы исполняемой части процедуры, после чего происходит возврат в вызывающий блок. Передача выходных параметров происходит непосредственно во время работы исполняемой части.

Вызов функции в Турбо Паскаль может производиться аналогичным способом, кроме того имеется возможность осуществить вызов внутри какого-либо выражения. В частности имя функции может стоять в правой части оператора присваивания, в разделе условий оператора if и т.д.

Для передачи в вызывающий блок выходного значения функции в исполняемой части функции перед возвратом в вызывающий блок необходимо поместить следующую команду:

имя функции := результат;

При вызове процедур и функций необходимо соблюдать следущие правила:

  1.  количество фактических параметров должно совпадать с количеством формальных;
  2.  соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

Рассмотрим использование процедуры на примере программы поиска максимума из двух целых чисел.

var x,y,m,n: integer;

procedure MaxNumber(a,b: integer; var max: integer);

begin

  if a>b then max:=a else max:=b;

end;

begin

  write('Введите x,y ');

  readln(x,y);

  MaxNumber(x,y,m);

  MaxNumber(2,x+y,n);

  writeln('m=',m,'n=',n);

end.

Аналогичную задачу, но уже с использованием функций, можно решить так:

var x,y,m,n: integer;

function MaxNumber(a,b: integer): integer;

  var max: integer;

begin

  if a>b then max:=a else max:=b;

  MaxNumber := max;

end;

begin

  write('Введите x,y ');

  readln(x,y);

  m := MaxNumber(x,y);

  n := MaxNumber(2,x+y);

  writeln('m=',m,'n=',n);

end.


 

А также другие работы, которые могут Вас заинтересовать

31068. Кисты кожи головы, лица и шеи 29.5 KB
  Кисты лица и шеи: 1 кератиновые кисты к которым относят волосяную кисту и эпидермальную; 2 дермоидная киста; 3 врожденные кисты и свищи лица и шеи. Кератиновые кисты: а полость волосяной кисты содержит аморфную массу белосероватого цвета внутренняя выстилка представлена рядами чешуйчатоподобных клеток б полость эпидермальной кисты заполнена слоями кератина внутренняя выстилка представлена многослойным плоским эпителием. Наиболее частая локализация кератиновых кист кожа лица шеи волосистой части головы; кисты появляются в период...
31069. Варианты лимфаденитв 19.22 KB
  Лимфогранулематоз Хлджкина злокачественная опухоль лимфоидной ткани в которой малочисленные опухолевые клетки характерного строения располагаются среди преобладающего реактивного клеточного окружения. Опухолевые клетки при нодулярном типе лимфоидного преобладания экспрессируют панВклеточные антигены в то время как клетки классического лимфогранулематоза утрачивают экспрессию Вклеточных антигенов. Клетки БерезовскогоШтернбергаРид типичного строения крупные 2030 мкм с дву или многодольчатым ядром или дву или многоядерного...
31070. Одонтогенный сепсис 30.01 KB
  Изначально причиной одонтогенного сепсиса чаще всего являются осложнения кариеса: апикальный периодонтит периостит остеомиелит челюстей и флегмоны мягких тканей орофациальной области. Для реализации сепсиса необходима неадекватная гиперергическая реакция макроорганизма на возбудителя и несостоятельность его антибактериальной защиты. При сепсисе утрачена способность макроорганизма локализовать инфекцию.
31071. Десмодонтоз 15.62 KB
  Впоследствии начинается воспалительный процесс в десневых тканях образуются пародонтальные карманы которые наполнены гнойным содержимым происходит смещение зубов их расшатывание а затем они попросту выпадают. Параллельно с этим заболеванием происходит поражение ладоней и подошв стопы гиперкератоз происходит нарушение обменных процессов триптофана и возникает диспротеинэмия. Лечение в данном случае требуется симптоматическое а при уже развившихся стадиях происходит удаление поврежденных зубов и проводится ортопедическое лечение.
31072. Кандидоз 15.34 KB
  Болеют кандидозом дети начиная с первых дней жизни и взрослые обычно пожилые и ослабленные чаще женщины. Существуют два пути возникновения кандидоза заражение от больного кандидозом и переход собственных условнопатогенных грибов в патогенные под воздействием благоприятных для развития гриба факторов. В развитии кандидоза особенно хронического значительную роль играют: дефекты клеточного иммунитета заболевания эндокринной системы тяжелые истощающие заболевания туберкулез анацидные гастриты...
31073. Актиномикоз (лучисто-грибковая болезнь) 16.46 KB
  При локализации процесса на нижней губе в области щеки инфильтрат ограниченный часто округлой формы спаян с подслизистой тканью. При расположении очага в подъязычной области на нижней и боковой поверхностях языка инфильтрат более разлитой и поверхностный. Слизистая оболочка в области поражения имеет красный иногда цианотичный цвет. При расположении очагов в области губы или щеки наблюдается абсцедирование.
31074. Предраковые заболевания 18.89 KB
  Значительную роль играют: курение табака склонность к очень горячей или острой пище крепким спиртным напиткам жевание табака употребление наса неблагоприятные метеорологические условия холод ветер сильная инсоляция длительно существующие слабые механические травмы профессиональные факторы анилиновые краски и лаки пары и пыль пека продукты сухой перегонки угля каменноугольной смолы фенол формальдегид пары бензина некоторые соединения бензола и др. Веррукозная лейкоплакия встречается в виде ограниченных...
31075. ОПУХОЛИ СЛИЗИСТОЙ ОБОЛОЧКИ ПООСТИ РТА 18.21 KB
  Рак слизистой оболочки рта При локализации поражения на первом месте стоит нижняя губа на втором язык на третьем дно полости рта затем слизистая оболочка щек неба челюстей и др. По гистологической картине различаются следующие формы рака полости рта: Для внутриэпителиального рака характерны признаки малигнизации эпителия при сохраненной базальной мембране. Плоскоклеточный рак микроскопически представляет скопления злокачественных эпителиальных клеток инфильтрирующих подлежащую соединительную ткань. Для Лимфоэпителиомы характерна...
31076. Эпителиальные опухоли 25.42 KB
  Инфильтрация подлежащих тканей отмечается лишь в запущенных случаях когда опухоль прорастает вглубь с разрушением хряща кости. Клинически опухоль проявляется в виде язвенной и папиллярной форм.: эруптивная гидраденома гидроцистома киста потовой железы доброкачественная опухоль исходящая из внутриэпидермальной части протока эккринной потовой железы.