Lezioni di Informatica
"Una volta che abbiate conosciuto il volo, camminerete sulla terra guardando il cielo" [ L. da Vinci ]
Informazioni sul Sito
N. visitatori  000067089  dal 21/01/2007  |   e-mail: ksoft64camera@gmail.com   
Cerca nel sito
Documenti collegati alla pagina
Parametri

Significato di parametro

Il parametro è un dato che viene inviato ad una funzione affinché questa risponda in modo dinamico.
Il parametro inviato si chiama parametro attuale, quello descritto nell'intestazione della funzione si chiama parametro formale.

Esempio di programma con funzione:

#include <iostream>
using namespace std;

/* dichiarazione del prototipo della funzione */
float prodotto (float a, float b);

int main()
{
	float x, y, p;
	
	cout << "Inserire primo numero: ";
	cin >> x;
	
	cout << "Inserire secondo numero: ";
	cin >> y;
	
	p = prodotto (x, y);
	
	cout << "\nIl prodotto e' " << p << "\n";

	return 0;
	
}

/* implementazione della funzione */
float prodotto (float a, float b)
{
	return a * b;
}

Nell'esempio i parametri formali sono a e b; quelli attuali sono x e y.

Passaggio dei parametri

Il passaggio dei parametri può avvenire:

Passaggio di parametri per valore

Nel passaggio per valore perché i valori dei parametri attuali vengono copiati nei parametri formali.
Di conseguenza le eventuali modifiche a questi ultimi non determinano cambiamenti per i parametri attuali.
Facciamo un esempio:

#include <iostream>
using namespace std;

/* dichiarazione del prototipo della funzione */
float elabora (float a, float b);

int main()
{
	float x, y, r;
	
	cout << "Inserire parametro x: ";
	cin >> x;
	
	cout << "Inserire parametro y: ";
	cin >> y;
	
	r = elabora (x, y);
	
	cout << "\nIl risultato e' " << r << "\n";
	
	cout << "Il parametro y e' ancora " << y << "\n";
	return 0;
	
}

/* implementazione della funzione */
float elabora (float a, float b)
{
	if (a > 10)
		b += a / 2;
	else
		b += a;
		
	return b;
}
Il programma in esecuzione fa capire cosa succede:
Inserire parametro x: 13
Inserire parametro y: 12

Il risultato e' 18.5
Il parametro y e' ancora 12

Passaggio per riferimento | Passaggio dei parametri
Passaggio di parametri per riferimento

Nel passaggio per riferimento gli indirizzi di menoria dei parametri attuali (x e y) corrispondono con quelli dei parametri formali (a e b).
Di conseguenza le eventuali modifiche a questi ultimi si ripercuotono sui parametri attuali.
In c e c++ basta mettere il simbolo & prima del nome del parametro formale. Facciamo un esempio:

#include <iostream>
using namespace std;

/* dichiarazione del prototipo della funzione */
float elabora (float a, float &b);

int main()
{
	float x, y, r;
	
	cout << "Inserire parametro x: ";
	cin >> x;
	
	cout << "Inserire parametro y: ";
	cin >> y;
	
	r = elabora (x, y);
	
	cout << "\nIl risultato e' " << r << "\n";
	
	cout << "Il parametro y e' diventato " << y << "\n";
	return 0;
	
}

/* implementazione della funzione */
float elabora (float a, float &b)
{
	if (a > 10)
		b += a / 2;
	else
		b += a;
		
	return b;
}
Il parametro attuale x viene passato per valore mentre il parametro y per riferimento.
Il programma in esecuzione fa capire cosa succede:
Inserire parametro x: 13
Inserire parametro y: 12

Il risultato e' 18.5
Il parametro y e' diventato 18.5

Passaggio per valore | Passaggio dei parametri