Difference between revisions of "Basic Pascal Tutorial/Chapter 4/Functions/bg"

From Free Pascal wiki
Jump to navigationJump to search
m (Kai Burghardt moved page Functions/bg to Basic Pascal Tutorial/Chapter 4/Functions/bg: tidy up main name space: create subpage hierarchy for basic Pascal tutorial [cf. [[Special: PermaLink/149778#Clut...)
m (bypass language bar/categorization template redirect [cf. discussion])
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Functions}}
+
{{Basic Pascal Tutorial/Chapter 4/Functions}}
{{TYNavigator|Parameters|Scope}}
+
{{TYNavigator|Chapter 4/Parameters|Chapter 4/Scope}}
  
 
4C - Functions (author: Tao Yue, state: unchanged)
 
4C - Functions (author: Tao Yue, state: unchanged)
Line 31: Line 31:
 
Обикновено е лоша практика при програмиране да се използват VAR параметри във функциите - функциите трябва да връщат само по една стойност. Със сигурност не искате функцията sin да промени вашия параметър в радиани pi на 0 радиана, само защото те са еквивалентни - просто искате отговора 0.  
 
Обикновено е лоша практика при програмиране да се използват VAR параметри във функциите - функциите трябва да връщат само по една стойност. Със сигурност не искате функцията sin да промени вашия параметър в радиани pi на 0 радиана, само защото те са еквивалентни - просто искате отговора 0.  
  
{{TYNavigator|Parameters|Scope}}
+
{{TYNavigator|Chapter 4/Parameters|Chapter 4/Scope}}

Latest revision as of 16:19, 20 August 2022

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 

4C - Functions (author: Tao Yue, state: unchanged)

Функциите работят по същия начин като процедурите, но те винаги „връщат единична стойност“ на основната програма чрез тяхното „собствено име“:

function Name (списък_параметри) : върнат_тип;

Функциите се извикват в основната програма, като се използват в изрази:

a := Name (5) + 3;

Ако вашата функция няма аргумент, внимавайте да не използвате името на функцията от дясната страна на който и да е израз във функцията. Пример:

function Name : integer;
begin
  Name := 2;
  Name := Name + 1
end.

Това няма да завърши добре! Вместо да се върне стойността 3, както може да се очаква, това ще създаде безкраен рекурсивен цикъл в определени езикови режими (например {$MODE DELPHI} или {$MODE TP}; други режими изискват скоби при извикването на функция, дори ако скобите са празни поради липса на параметри за конкретната функция). Името ще извика Name, което ще извика Name, което ще извика Name и т.н.

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

Name := 5;

Обикновено е лоша практика при програмиране да се използват VAR параметри във функциите - функциите трябва да връщат само по една стойност. Със сигурност не искате функцията sin да промени вашия параметър в радиани pi на 0 радиана, само защото те са еквивалентни - просто искате отговора 0.

 ◄   ▲   ►