I parametri (o argomenti) sono una lista di dati che può essere scambiata tra un modulo e l’altro.
Le variabili che compaiono nella definizione di un modulo vengono dette parametri formali; i dati che vengono sostituiti ai parametri formali al momento del richiamo del modulo vengono detti parametri attuali (o argomenti attuali).
Nella definizione della procedura vengono descritti i parametri formali, cioè le variabili utilizzate all’interno della procedura.
I parametri formali dal punto di vista dell’ambito di visibilità si comportano come variabili locali: sono visibili all’interno del modulo in cui sono definiti e di tutti i suoi sottomoduli e nascondono eventuali variabili globali con lo stesso nome.
I parametri formali si distinguono in parametri di input se permettono al modulo chiamante di fornire un valore al modulo chiamato, e parametri di output se permettono al modulo chiamante di ricevere un valore dal modulo chiamato; alcuni parametri possono essere di input/output.
Al momento del richiamo della procedura si devono fornire i parametri attuali, cioè i valori che andranno a sostituirsi ai parametri formali.
Il nome delle variabili usate come parametri può essere diverso tra i parametri formali e i parametri attuali; l’assegnazione dei valori avviene in base alla posizione, associando il primo parametro attuale al primo parametro formale, il secondo parametro attuale al secondo parametro formale e così via.
I parametri attuali nell’istruzione di chiamata di un modulo e i parametri formali nella definizione del modulo stesso devono essere uguali per numero e tipo.
Parametri formali
I parametri formali sono identificati da:
-
un identificatore;
-
un tipo;
-
una posizione;
-
una direzione (input/output) che dipende dalla modalità di passaggio del parametro.
Nel momento in cui vengono usati, cioè il richiamo della procedura e la sostituzione dei parametri attuali, sono inoltre caratterizzati da un valore.
Nella documentazione per i programmatori che devono riutilizzare il modulo è importante precisare, in base alla posizione, il tipo e la direzione del parametro.
Le modalità di passaggio dei parametri
Il passaggio dei parametri può avvenire con modalità diverse; le modalità principali sono quella per valore e quella per riferimento o indirizzo.
Nella trasmissione per valore al parametro formale viene trasmesso il valore del parametro attuale, ma i due dati sono distinti, in locazioni diverse di memoria.
Il parametro formale è una copia temporanea del dato; quindi, anche se il parametro viene modificato all’interno del modulo, non si ha alcun effetto sul parametro attuale, una volta che il modulo è terminato (le modifiche non hanno effetto sulle variabili del modulo chiamante).
Nella trasmissione per riferimento o indirizzo il parametro formale e il parametro attuale fanno riferimento alla stessa locazione di memoria.
Al modulo chiamato viene trasmesso l’indirizzo del parametro (puntatore); il modulo accede direttamente alla variabile e quindi qualsiasi modifica della variabile all’interno del modulo ha effetto anche dopo che il modulo è terminato; si deve usare il passaggio per riferimento per restituire valori al modulo chiamante.