Pascal - Funzioni
Sottoprogrammi
Un sottoprogramma è un'unità / modulo di programma che esegue un compito particolare. Questi sottoprogrammi vengono combinati per formare programmi più grandi. Questo è fondamentalmente chiamato "design modulare". Un sottoprogramma può essere richiamato da un sottoprogramma / programma, chiamato programma chiamante.
Pascal fornisce due tipi di sottoprogrammi:
Functions - questi sottoprogrammi restituiscono un unico valore.
Procedures - questi sottoprogrammi non restituiscono direttamente un valore.
Funzioni
UN functionè un gruppo di istruzioni che insieme svolgono un'attività. Ogni programma Pascal ha almeno una funzione, che è il programma stesso, e tutti i programmi più banali possono definire funzioni aggiuntive.
Una funzione declarationindica al compilatore il nome, il tipo restituito e i parametri di una funzione. Una funzionedefinition fornisce il corpo effettivo della funzione.
La libreria standard Pascal fornisce numerose funzioni incorporate che il tuo programma può chiamare. Ad esempio, functionAppendStr() aggiunge due stringhe, function New() alloca dinamicamente la memoria alle variabili e a molte altre funzioni.
Definizione di una funzione
In Pascal, a functionè definito utilizzando la parola chiave function. La forma generale della definizione di una funzione è la seguente:
function name(argument(s): type1; argument(s): type2; ...): function_type;
local declarations;
begin
...
< statements >
...
name:= expression;
end;
Una definizione di funzione in Pascal consiste in una funzione header, Locale declarations e una funzione body. L'intestazione della funzione è composta dalla funzione parola chiave e da un filenamedato alla funzione. Ecco tutte le parti di una funzione:
Arguments- Gli argomenti stabiliscono il collegamento tra il programma chiamante e gli identificatori di funzione e sono chiamati anche parametri formali. Un parametro è come un segnaposto. Quando viene richiamata una funzione, si passa un valore al parametro. Questo valore viene indicato come parametro o argomento effettivo. L'elenco dei parametri si riferisce al tipo, all'ordine e al numero di parametri di una funzione. L'uso di tali parametri formali è facoltativo. Questi parametri possono avere un tipo di dati standard, un tipo di dati definito dall'utente o un tipo di dati di sottointervallo.
L'elenco dei parametri formali che appare nell'istruzione della funzione potrebbe essere variabili semplici o con indice, array o variabili strutturate o sottoprogrammi.
Return Type- Tutte le funzioni devono restituire un valore, quindi a tutte le funzioni deve essere assegnato un tipo. Ilfunction-typeè il tipo di dati del valore restituito dalla funzione. Può essere di tipo standard, scalare o subrange definito dall'utente, ma non può essere di tipo strutturato.
Local declarations - Le dichiarazioni locali si riferiscono alle dichiarazioni di etichette, costanti, variabili, funzioni e procedure, che si applicano solo al corpo della funzione.
Function Body- Il corpo della funzione contiene una raccolta di istruzioni che definiscono cosa fa la funzione. Dovrebbe essere sempre racchiuso tra le parole riservate inizio e fine. È la parte di una funzione in cui vengono eseguiti tutti i calcoli. Deve essere presente un'istruzione di assegnazione del tipo:name := expression;nel corpo della funzione che assegna un valore al nome della funzione. Questo valore viene restituito come e quando la funzione viene eseguita. L'ultima affermazione nel corpo deve essere un'istruzione di fine.
Di seguito è riportato un esempio che mostra come definire una funzione in pascal -
(* 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;
Dichiarazioni di funzione
Una funzione declarationindica al compilatore il nome di una funzione e come chiamare la funzione. Il corpo effettivo della funzione può essere definito separatamente.
Una dichiarazione di funzione ha le seguenti parti:
function name(argument(s): type1; argument(s): type2; ...): function_type;
Per la funzione max () sopra definita, di seguito è riportata la dichiarazione della funzione:
function max(num1, num2: integer): integer;
La dichiarazione di funzione è richiesta quando si definisce una funzione in un file di origine e si chiama quella funzione in un altro file. In tal caso, è necessario dichiarare la funzione all'inizio del file che chiama la funzione.
Chiamare una funzione
Durante la creazione di una funzione, dai una definizione di ciò che la funzione deve fare. Per utilizzare una funzione, dovrai chiamare quella funzione per eseguire l'attività definita. Quando un programma chiama una funzione, il controllo del programma viene trasferito alla funzione chiamata. Una funzione chiamata esegue un'attività definita e quando viene eseguita la sua istruzione return o quando viene raggiunta l'ultima istruzione end, restituisce il controllo del programma al programma principale.
Per chiamare una funzione, è sufficiente passare i parametri richiesti insieme al nome della funzione e, se la funzione restituisce un valore, è possibile memorizzare il valore restituito. Di seguito è riportato un semplice esempio per mostrare l'utilizzo:
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.
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Max value is : 200