Безплатен стил на Pascal
Функцията е специален тип процедура, резултатът от която е единично значение. Обичайно е да го наричат стойността, върната от функцията. Този резултат позволява функцията да се използва като операнд за всяка формула от съответния тип:
Декларацията за функция започва с хедър, който обикновено изглежда така:
функция name_fun [(list_arg)]: съвет; [директиви];
В сравнение със заглавката на директивата тук има нов задължителен компонент: tip - тип връщане.
Като пример за оформяне на функция, Листинг 9.2 показва фрагмента,
прилагане на изчислението на точковото произведение на вектори в традицията на ранните версии на Pascal.
Листинг 9 .2. Изчисляване на калоричния продукт
vecN = масив [1.N] на double;
a, b: vecN; c: двойно
функция vec_mult (A, B: vecN): двойно; вар
i: байт; s: двойно;
Допълнителна специфичност на дизайна на функциите е начинът за връщане на изчисления резултат: той трябва да бъде присвоен на „променлива“, чието име съвпада с името на функцията.
Object Pascal и всички версии на Delphi вече имат по-удобен начин за връщане на стойност на функция: специална системна променлива с име
Резултат. Не е необходимо да се декларира, а типът на тази „променлива“ винаги е същият като типа на функцията. Следователно в предишния пример операторът vec_mul: = s; може да бъде заменен с Резултат: = s;. Всъщност възможностите на променливата Result са малко по-широки: тя може да се използва както отляво, така и отдясно на оператора за присвояване. Следователно дизайнът на функцията vec_mult може да изглежда така: функция vec_mult (A, B: vecN): double;
Резултат: = Резултат + A [i] * B [i];
В езика Free Pascal има друга възможност за връщане на стойността на изчислена функция:
Този формат е заимстван от C, C ++, връща се само функционалната дума
(връщане) заменено тук с изход.
В рамките на една функция можете едновременно да използвате както променлива с име Резултат, така и променлива с име на функция. например
функция qq: цяло число; започнете
функция f1 (x: цяло число): цяло число; започнете
Аргументът на функцията f1 се предава по стойност, така че промяната на параметъра x в тялото на функцията няма ефект върху действителния аргумент, даден в конкретно извикване:
y: цяло число = 2; z: цяло число;
функция f2 (var v: цяло число): цяло число; започнете
Инверсия z: = f2 (y); не само ще промени стойността на променливата z (z = 4), но също така ще промени стойността на променливата y (y = 4). Функцията f2 не може да бъде достъпна с аргумент, представен от формулата.
Листинг 9 .3. Програма с данни от всякакъв тип comp_all
функция Равен (var a1, a2; размер: дума): boolean; Тип
Байтове = масив [0.MaxInt div 2] от байт;
N: цяло число; започнете
while (N Bytes (a2) [N] then exit (False); exit (true);
Параметри на подпрограмата по подразбиране
Във Free Pascal е възможно да декларирате процедура или функция, която има стойностите на няколко последни аргументи list_arg списъците са дадени със стойности по подразбиране:
функция mid3 (x1: дума; x2: дума = 1; x3: дума = 2); започнете
Резултат: = (x1 + x2 + x3) div 3;
1 Ако получите грешки по време на компилацията, изпълнете командата Настроики ® Съставител и в групата Режим на компилатор задайте опцията Разширение на обект Pascal на или Съвместим с Delphi. (Предпочита се първата опция.) - Забележка. изд.
Функцията mid3 може да бъде достъпна с един (задължителен) параметър, с два и три:
mid3 (6) = 3 // еквивалент на инверсия mid3 (6,1,2) mid3 (6,3) = 3 // еквивалент на инверсия mid3 (6,3,2) mid3 (6,3,5) = 4
Във всеки случай параметрите, които не са посочени в повикването, се заменят със съответните стойности по подразбиране.
Източник: Кетков, Ю. Л., Свободен софтуер. БЕЗПЛАТЕН ПАСКАЛ за студенти и ученици, Ю. Л. Кетков, А. Ю. Кетков. - SPb.: BHV-Петербург, 2011. - 384 с.: Ил. + CD-ROM - (IiICT)
- ЛЕВО-ИНВАРИАНТНА ФУНКЦИЯ превод от руски на английски, превод руски на английски
- Определения на функцията на Ляпунов и критерия на Силвестър
- Липопротеини какво е, класификация и функция
- Най-добрата спалня 10 кв м дизайн, снимки, правила за дизайн и препоръки
- Красив дизайн на статии