Passaggio dei parametri

sub_valueAll’atto della chiamata di un sottoprogramma è possibile specificare dei parametri.

Prima dell’esecuzione del codice del sottoprogramma B avviene un passaggio, assegnazione, del valore di a in x e del valore di b in y.

Il sottoprogramma B svolgerà l’operazione per la quale è stato progettato in modo parametrico, cioè in funzione dei valori assunti dai parametri formali (x, y, …) specificati dal sottoprogramma chiamante A tramite iparametri attuali (a, b, …)

La modalità di passaggio dei parametri dipende dal linguaggio adottato

VISUAL
BASIC
C…
Pascal

Note

  1. l’elenco dei parametri attuali deve corrispondere in numero e tipo all’elenco dei parametri formali
  2. ogni parametro formale viene dichiarato e si comporta come una variabile locale inizializzata al valore specificato con il parametro attuale all’atto della chiamata
  3. i parametri attuali devono essere valori, quindi possono essere costanti (-1, +5.0), variabili (a, b), espressioni (-a, b+5.0), …
  4. al termine dell’esecuzione del sottoprogramma le eventuali modifiche dei valori dei parametri formali scompariranno per sempre…

Passaggio per variabile

sub_varPiuttosto che passare dei valori si può scegliere di passare delle variabili (indirizzi, reference, …).

Il sottoprogramma B svolgerà l’operazione per la quale è stato progettato utilizzando a, il parametro attuale, ogni volta che nel suo codice compare x, il parametro formale.
Si dice che x è solo un reference, un riferimento, per a.

Analogamente per l’uso di b piuttosto che di y.

Intestazione Chiamata
VISUAL
BASIC
C
C++
Pascal

Note

  1. gli effetti dell’esecuzione del sottoprogramma B si manifestano nei valori contenuti nelle variabili utilizzate come parametri attuali all’atto della chiamata
  2. i parametri attuali devono essere variabili
  3. Basic applica di default la modalità ByRef (by reference)
  4. C++ aggiunge una sintassi semplificata rispetto a quella adottata in C
  5. Java non prevede il passaggio dei parametri per riferimento

sub_var_valueLe due modalità di passaggio dei parametri (per valore, per riferimento) possono essere utilizzate contemporaneamente…

Alla fine dell’esecuzione del sottoprogramma B il valore di a, nel sottoprogramma A, dipenderà dalle operazioni che sono state eseguite su x in B

Intestazione Chiamata
VISUAL
BASIC
C
C++
Pascal

Funzioni

sub_funQuando il sottoprogramma B termina restituisce un risultato che occuperà logicamente lo spazio di codice della chiamata in A

Il sottoprogramma chiamante A riceverà dal sottoprogramma chiamato B (la funzione) un dato, risultato dell’elaborazione, e potrà utilizzarlo come argomento di altre elaborazioni
  • visualizzazione
  • assegnazione a una variabile
  • elaborazione all’interno di un’espressione
  • come parametro all’interno di un’altra chiamata
VISUAL
BASIC
C…
Pascal

Note

  1. In Pascal e BASIC si assegna letteralmente il risultato alla funzione…
  2. L’assegnazione potrebbe avvenire più volte, quindi l’ultima assegnazione determinerà il risultato effettivo
  3. In linguaggio C… si specifica il risultato e contemporaneamente si restituisce il controllo al chiamante…