Официални и действителните параметри в турбо паскал 7

10.3. Официални и действителните параметри

функция Max (А: arrayt1..100] на Real): Real;

За да се записва правилно заглавието, трябва да бъде в основната програма, въведете типа на масива, а след това да го използвате в заглавието:







Типове Тар = arrayt1..100] на Real; функционира Max (А: Тар): Real;

Когато се обадите подпрограма формални параметри се заменят със съответната реалната програма призвание или подпрограма.

10.3.1. Параметри ценности

параметри стойност се предават на главния програма рутината в стека под формата на копия, а оттам и по свой избор програма подпрограма не може да се промени.

Стойността на параметър, определен в заглавната част на подпрограма си име и на дебелото черво - тип. Вид на стойностите на параметрите може да бъде всеки, с изключение на файла.

Ако параметрите-стойностите на редица видове, те могат да бъдат комбинирани в добре група OD поставяне техните имена, разделени със запетая и след това определят общ тип, както е отбелязано по-горе, отделните параметри групи са разделени с запетая.

процедура Inp (Max, Min: Real; N: Word);
функционира Mult (X, Y: цяло число): Real;

В реалните стойности на параметрите на мястото на параметъра, когато подпрограма разговор може да бъде всеки съвместим израз, за ​​да зададете тип (виж точка 9.3 ..) Не съдържа компонент файл, например:

Inp (Abs (Z), -Abs (Т), 2 * K);
М: = Mult (X + Y, X - Y);
MA: = Max (В, 5);

Пример. Функция изчисляване на максималния елемент в масива. Нека основната програма дефиниран тип масив, масив от този тип и променлива от тип цяло число

тип
Тар = масив [1..100] на цяло число;
Var
Massiv: Тар;
Максим: Integer;

Функцията в този случай може да бъде:

функционира Max (Mas: Тар; N: Байт): цяло число;
Var Ма: цяло число;
I: Байт;
започвам
Ма: = Mas [L];
за I: = 2 до N направи
ако Ма

Трябва да се има предвид, че подпрограмата може да работи само с масиви от Тар. За други типове масиви ще трябва да се създаде друг подобен рутина. Освен това, когато стека подпрограма създава копие на оригиналния масив, което намалява скоростта на пълнене и прекомерно информация стека.

10.3.2. променливи параметри

Променлива параметър е посочен в заглавието на подпрограмата е подобен на стойностите на параметрите, но само в предната част на името на параметъра е писано Var ключова дума. Екшън думи Var прилагат към най-близката точка до точката, че е така. Д. В рамките на една и съща група.

процедура MaxMin (А: Тар; Var Max, Min: Real; N: Word);

Тук, Макс Мин - променливи параметри, А и N - стойности на параметри.

Тип променливи параметри могат да бъдат всякакви, включително файл.

В подпрограма призив за параметъра за местоположение променлива, като от действителните параметри идентични променлива тип трябва да се използва (вж. F. 9.1). По този начин, ако официалната параметър е вид определя, както следва:

Типове Тар = масив [1..100] на цяло число;

и действителния параметър трябва да бъде променлива, или от напечатан константа от тип Тар.

Пример. Функция изчисляване на максималния елемент в масива. Ние променя подпрограма претенция Пример 10.3.1 използване променлив параметър като първи параметър .:







функция Max (Var Mas: Тар; N: Байт): цяло число;
Var Ма: цяло число;
I: Байт;
започвам
Ма: = Mas [L];
за I: = 2 до N направи
ако Ма

10.3.3. Параметрите са константи

Параметърът е константа, посочено в заглавието на подпрограмата е подобен на стойностно изражение, но преди името на параметъра е писано Конст ключова дума. Екшън думи Конст отнася до най-близката точка до точката, че е така. Д. В рамките на една и съща група.

функция NewString (конст S: низ): низ;

Вид на стойностите на параметрите може да бъде всеки, с изключение на файла.

В подпрограма призив за параметъра за местоположение променлива като действителният параметър може да бъде всеки съвместим израз, за ​​да зададете тип (вж. F. 9.3), която не съдържа файл компонент.

Параметър-константа не може да бъде прехвърлено в друга подпрограма като действителен параметър.

Пример. Функция изчисляване на максималния елемент в масива. . Пример 10.3.1 използване на н като първи параметър създаването постоянно:

функция Max (конст Mas: Тар; N: Байт): цяло число;
Var Ма: цяло число;
I: Байт;
започвам
Ма: = Mas [L];
за I: = 2 до N направи
ако Ма

10.3.4. Параметри без тип

В Turbo Pascal, можете да използвате параметрите на променливи и константи параметри, без да уточнява вида. В този случай, на действителния променлив параметър може да бъде от всякакъв тип, както и отговорността за точността на използването на даден параметър се възлага на програмист.

Равно функция (Var Paraml, param2; Len: Word): булева;

Има param1, param2 --variables без тип (може да се използва вместо, например, всички променливи на прост тип запис тип матрица тип и др ...); Len - стойността на параметъра.

Трябва да се има предвид, че параметърът без рамките тип има съчетания, и преди употреба трябва да се превърне в специфичен вид чрез прилагане на идентификатор на съответния вид, както е посочено в т. 9.4, резултатът може да бъде от всякакъв размер.

Пример. Функция изчисляване на максималния елемент в масива. Да разгледаме друг примерен вариант подпрограма п 10.3.1 използване като първата параметър променлив параметър типизиран .:

функция Max (Var Mas; N: Байт): цяло число;
тип
tArray = масив [1..Maxint] на цяло число;

Var Ма: цяло число;
I: Байт;
започвам
Ма: = tArray (Mas) [1];
за I: = 2 до N направи
ако Ма

10.3.5. Масивите и отворена линия

Във версия 7.0 може да се добави като променливи параметри за използване масиви 1 и отворен линия, чиито размери не са посочени. В действително параметър в този случай е възможно да се използва масив или низ от всеки zmera PA-1, но на масива трябва да се състои от същите компоненти като компонентите й отворена масив. Тези параметри са въведени, за да подпрограма MO] ДФЗ дръжка низ или масив от всякакъв размер на. Действителният размер на масива в този случай може да бъде определена чрез Високо функция (виж, J стр. 16.1). Open масив се определя като правилна редица, но без да уточнява вида на индекса. Трябва да се има предвид, че индексирането е отворен масив винаги започва от нула, а максималната стойност на индекса на елемента е висока функция.

Пример. Функция изчисляване на максималния елемент в масива. Да разгледаме примерен вариант подпрограмата п 10.3.1 използване като предава параметър масив е отворена .:

функция Max (Var Mas: масив от цяло число): цяло число;
Var Ма: цяло число;
I: Байт;
започвам
Ма: = Mas [0];
защото: = 1 до висока (Mas) направи
ако Ма

10.3.6. Параметри процедури и параметри функция

Pass параметри могат също да бъдат процедура параметър за определяне или функция, т.е.. Д. Определяне тип процедура. В действителност, тази опция не е параметър на стойност, т. За да. Бъде написана без запазена дума VaR.

В действително параметър се използва в този случай, подходяща процедура, или функция с необходимия брой на необходимите видове параметри.

За параметрите, процедурите и параметрите на функциите, има същите правила, както и за други променливи от процедурен тип: съчетания трябва да бъдат събрани с ключа

Пример. Програмата, добавянето на печат маса и размножаването на две числа в дадения период.

програма EXAMPLE15;
тип
Func = функция (X, Y: цяло число): цяло число;
($ F +)
Добави функция (X, Y: цяло число): цяло число;
започвам
Добави: = X + Y
приключи;
функционира умножение (X, Y: цяло число): цяло число;
започвам
Умножи; = X * Y
приключи;

процедура PrintTable (А, В: цяло число; Операция: Func);

Var
И, Й: цяло число;
започвам
за I: = 1 до А задачи
започвам
за к: = 1 да се направи в
Запис (Operation (I, J): 5);
WriteLn
приключи;
WriteLn
приключи;

започвам
PrintTable (10, 10, Добавяне);
PrintTable (10, 10, умножение)
край.