Sunteți pe pagina 1din 2

Variabile globale-Variabile Locale (pag.

127-Manual)
Variabile globale=variabilele de memorie care au fost declarate la inceputul programului in sectiunea de
declaratii (valorile lor sunt „vazute” in tot programul)

Variabile Locale=variabilele de memorie care sunt declarate in corpul unui subprogram (valorile lor sunt
„vazute” doar in subprogramul in care au fost declarate)

EX: Fie programul urmator:


#include <iostream>
#include <iomanip.h>

int a,b; float x;

int f(int c)
{ a=9; b=5; //linia 5
return (a-b+c);
}

int main()
{a=2; b=1;
x=f(a+b)/2.;
cout<<a<<” ”<<b<<” ”<<setw(4)<<setprecision(2)<<x<<endl;
return 0;}
Cerinte:
a) Incercuiti cu rosu variabilele globale
b) Incercuiti cu verde variabilele locale

OBS: Intr-un program putem avea o variabila globala si locala cu acelasi nume, fara a se
crea confuzie. In timpul executiei functiei in care a fost declarata este „vizibila” variabila
locala, iar in rest este recunoscuta variabila globala.
c) Ce se va afisa daca:
c1) nu lipseste linia 5 din program
c2) lipseste linia 5 din program
Parametri = informatiile prin care se stabileste legatura de date dintre modulul apelant si subprogram
(apar scrisi dupa numele subprogramului, intre paranteze rotunde)
Clasificare:
- parametri formali (generici, simbolici) – cei ce apar in antetul unui subprogram (in
momentul declaratiei suprogramului nu se cunosc)
-pot fi numai nume de variabila
Parametrii formali se deosebesc de variabilele locale, prin aceea ca in momentul apelului sunt initializati cu
valori din programul apelant
- parametri (actuali, efectivi) – cei ce apar la apel (in momentul apelului, valorile acestora
sunt cunoscute)
- pot fi constante, variabile, valori ale unor expresii, valori returnate de functii

OBS: Numele parametrilor actuali pot fi diferite de numele parametrilor formali


Intre parametri FORMALI si parametri ACTUALI trebuie sa existe o corespondenta de tip de
data (cu exceptia cazului cand parametrii efectivi pot fi convertiti implicit in tipul parametrilor formali),
numar (cu exceptia catorva cazuri)si ordine.

1
Ex: Sa se construiasca un subprogram care sa calculeze valoarea absoluta a unui numar real.
#include <iostream>
Tipul rezultatului este FLOAT, la fel ca al numarului pentru care
se calculeaza valoarea absoluta

float modul(float a)
{if (a<0) a=-a;  parametru formal, a
return a;
}

int main()
{ float x; //variabila locala in functia main()
cout<<"Dati numarul : "; cin >>x;
cout<<modul(x);
return 0;}
Apelul
 parametru actual, x
subprogramului

Domeniu de vizibilitate= zona din program unde este recunoscuta valoarea unei variabile
EX: Daca in programul anterior, introducem in functia main(), la sfarsit instructiunea:
cout<< a; programul genereaza eroare la compilare .

Exercitiu:
Cate erori va produce executia programului urmator?
# include <iostream>
# include <math.h>

int calcul (int p, int q)


{
return (sqrt(p*q));
}

int main ()
{cout<<calcul(1,2);
return 0;
}

S-ar putea să vă placă și