Sunteți pe pagina 1din 2

APEL SUBPROGRAM

Definitie :

tip_date_rezultat/ void nume(tip1 parametru1, tip2 &parametru2, tip3 parmateru2)


{corp subprogram
[return rezultat;}

Apel subprogram
Avem mai multe moduri:
1) daca subprogramul calculeaza ceva si scoate prin subprogram atunci apelul este:
variabila_in_care_pun_rezultatul=nume(lista parametrii efectivi);

Obs: Exista o corespondenta inte paramatrii efectivi si parametrii formali.


Parametrii efectivi sunt variabile "care exista",sunt declarate in programul apelant si
subprogramul lucreaza efectiv cu parametrii definiti ca parametrii efectivi.
Variabilele pot fi de intrare - variabilele trebuie sa aiba valori inainte de apel sau se pot apela
subprogramele direct pe date si variabilele de iesire -vor avea valori in urma apelului (nu se pot
pune date).

Exemplu:
Realizati un sub. care aduna elementele dintr-un vector, elementele numere intregi.
modul1:

int suma( int a[100], int n)


{int i, s=0;
for(i=0;i<n;i++) s=s+a[i];
return s;
}

int main()
{int v[100],i,p,s;
cin>>p;
for(i=0;i<p;i++) cin>>v[i];
s=suma(v,p);
cout<<s;}
descriere executie
p=5, v:
20 30 1 0 4

in apel a devine v si n devine p si ruleaza:


s=0+v[0]=0+20
s=20+v[1]=20+30
...
s=20+30+1+0+4=55
Afiseaza valoarea sumei care este 55.

1) daca subprogramul calculeaza ceva mai multe rezultate si scoate valorile calculelor prin
parametrii:
nume(lista parametrii efectivi);
Exemplu:
Realizati un sub. care aduna elementele dintr-un vector, elementele numere intregi.(pt apel 2)

void suma( int a[100], int n, int &s)


{int i;
s=0;
for(i=0;i<n;i++) s=s+a[i];
}

int main()
{int v[100],i,p,s,t;
cin>>p;
for(i=0;i<p;i++) cin>>v[i];
suma(v,p,t);
cout<<t;}

1) daca subprogramul nu calculeaza prin subprogram, nu intoare rezultate nici prin parametrii-
poate sa nu calculeze nimic (afisari, modificari in variabile) sau daca calculeaza afiseaza rezultatul
in program:

nume(lista parametrii efectivi);

Exemplu:
Realizati un sub. care aduna elementele dintr-un vector, elementele numere intregi si afiseaza
rezultatul in subrogram.
void suma( int a[100], int n)
{int i,s=0;
for(i=0;i<n;i++) s=s+a[i];
cout<<s;
}

int main()
{int v[100],i,p,s,t;
cin>>p;
for(i=0;i<p;i++) cin>>v[i];
suma(v,p);
return 0;}

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