Официални и действителните параметри в турбо паскал 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, умножение)
край.