Pascal - Funkcje
Podprogramy
Podprogram to jednostka / moduł programu, który wykonuje określone zadanie. Te podprogramy są łączone w celu utworzenia większych programów. Zasadniczo nazywa się to „konstrukcją modułową”. Podprogram może zostać wywołany przez podprogram / program, który jest nazywany programem wywołującym.
Pascal udostępnia dwa rodzaje podprogramów -
Functions - te podprogramy zwracają pojedynczą wartość.
Procedures - te podprogramy nie zwracają bezpośrednio wartości.
Funkcje
ZA functionto grupa instrukcji, które razem wykonują zadanie. Każdy program Pascal ma przynajmniej jedną funkcję, którą jest sam program, a wszystkie najbardziej trywialne programy mogą definiować dodatkowe funkcje.
Funkcja declarationinformuje kompilator o nazwie funkcji, typie zwracanym i parametrach. Funkcjadefinition dostarcza rzeczywistą treść funkcji.
Biblioteka standardowa Pascal zapewnia liczne wbudowane funkcje, które program może wywołać. Na przykład functionAppendStr() dołącza dwa ciągi, funkcja New() dynamicznie przydziela pamięć do zmiennych i wielu innych funkcji.
Definiowanie funkcji
W Pascalu a functionjest definiowana za pomocą słowa kluczowego function. Ogólna postać definicji funkcji jest następująca -
function name(argument(s): type1; argument(s): type2; ...): function_type;
local declarations;
begin
...
< statements >
...
name:= expression;
end;
Definicja funkcji w Pascalu składa się z funkcji header, lokalnie declarations i funkcję body. Nagłówek funkcji składa się ze słowa kluczowego function i plikunamenadana funkcji. Oto wszystkie części funkcji -
Arguments- Argument (y) ustanawiają powiązanie między programem wywołującym a identyfikatorami funkcji i nazywane są również parametrami formalnymi. Parametr działa jak symbol zastępczy. Gdy funkcja jest wywoływana, przekazujesz wartość do parametru. Ta wartość jest określana jako rzeczywisty parametr lub argument. Lista parametrów odnosi się do typu, kolejności i liczby parametrów funkcji. Użycie takich parametrów formalnych jest opcjonalne. Te parametry mogą mieć standardowy typ danych, typ danych zdefiniowany przez użytkownika lub typ danych podzakresu.
Lista parametrów formalnych pojawiająca się w instrukcji funkcji może być zmiennymi prostymi lub indeksowanymi, tablicami lub zmiennymi strukturalnymi lub podprogramami.
Return Type- Wszystkie funkcje muszą zwracać wartość, więc wszystkim funkcjom należy przypisać typ. Plikfunction-typejest typem danych wartości zwracanej przez funkcję. Może to być typ standardowy, skalarny lub podzakres zdefiniowany przez użytkownika, ale nie może być typem strukturalnym.
Local declarations - Deklaracje lokalne odnoszą się do deklaracji etykiet, stałych, zmiennych, funkcji i procedur, które mają zastosowanie tylko do treści funkcji.
Function Body- Treść funkcji zawiera zbiór instrukcji, które definiują, co robi funkcja. Powinien być zawsze umieszczony między zarezerwowanymi słowami rozpoczynającymi się i kończącymi. Jest to część funkcji, w której wykonywane są wszystkie obliczenia. Musi istnieć instrukcja przypisania typu -name := expression;w treści funkcji, która przypisuje wartość do nazwy funkcji. Ta wartość jest zwracana podczas wykonywania funkcji. Ostatnia instrukcja w treści musi być instrukcją końcową.
Poniżej znajduje się przykład pokazujący, jak zdefiniować funkcję w pascalu -
(* function returning the max between two numbers *)
function max(num1, num2: integer): integer;
var
(* local variable declaration *)
result: integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
Deklaracje funkcji
Funkcja declarationinformuje kompilator o nazwie funkcji i sposobie wywołania funkcji. Rzeczywistą treść funkcji można zdefiniować oddzielnie.
Deklaracja funkcji składa się z następujących części -
function name(argument(s): type1; argument(s): type2; ...): function_type;
Dla wyżej zdefiniowanej funkcji max (), poniżej znajduje się deklaracja funkcji -
function max(num1, num2: integer): integer;
Deklaracja funkcji jest wymagana, gdy definiujesz funkcję w jednym pliku źródłowym i wywołujesz tę funkcję w innym pliku. W takim przypadku powinieneś zadeklarować funkcję na początku pliku wywołującego funkcję.
Wywołanie funkcji
Tworząc funkcję, podajesz definicję tego, co funkcja ma robić. Aby użyć funkcji, będziesz musiał wywołać tę funkcję, aby wykonać określone zadanie. Gdy program wywołuje funkcję, sterowanie programem jest przekazywane do wywoływanej funkcji. Wywołana funkcja wykonuje zdefiniowane zadanie, a po wykonaniu jej instrukcji return lub po osiągnięciu ostatniej instrukcji końcowej zwraca sterowanie programem z powrotem do programu głównego.
Aby wywołać funkcję, wystarczy przekazać wymagane parametry wraz z nazwą funkcji, a jeśli funkcja zwraca wartość, można ją zapisać. Poniżej znajduje się prosty przykład pokazujący użycie -
program exFunction;
var
a, b, ret : integer;
(*function definition *)
function max(num1, num2: integer): integer;
var
(* local variable declaration *)
result: integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
begin
a := 100;
b := 200;
(* calling a function to get max value *)
ret := max(a, b);
writeln( 'Max value is : ', ret );
end.
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
Max value is : 200