Programarea calculatoarelor și limbaje de programare - funcții

Previzualizare laborator:

Extras din laborator:

1. Noţiuni teoretice

1.1. Forma generală a unei funcţii

Un program conţine una sau mai multe funcţii. Fiecare funcţie are un nume. Numele funcţiei principale este main, iar numele celorlalte funcţii sunt definite de utilizator.

Forma generală a unei funcţii este:

specificator_de_tip nume_functie (lista_parametri)

{

corpul functiei

}

Specificator_de_tip indică tipul de date returnat de funcţie. O funcţie poate returna orice tip de date, cu excepţia tablourilor. Lista_parametri este o listă de nume de variabile şi a tipurilor asociate acestora, separate prin virgulă, care primesc valorile argumentelor la apelul funcţiei. Unei funcţii îi pot lipsi parametrii, caz în care lista de parametri este vidă. Totuşi, chiar dacă funcţia nu are parametri, parantezele sunt necesare.

În cazul declaraţiilor de variabile, mai multe variabile pot fi declarate ca fiind de acelaşi tip folosind o listă de nume de variabile, separate prin virgulă. Spre deosebire de acestea, toţi parametrii unei funcţii trebuie declaraţi individual, fiecare declaraţie trebuind să conţină numele şi tipul parametrului. Ca atare, lista de declarare a parametrilor unei funcţii are forma:

f(tip numevar1, tip numevar2,..., tip numevarN)

1.2. Regulile de competenţă ale unei funcţii

Regulile de competenţă ale unui limbaj sunt acele reguli care controlează dacă un fragment de program are cunoştinţă sau acces la un alt fragment de program sau de date.

În C/C++, fiecare funcţie reprezintă un bloc de cod distinct. Codul unei funcţii este propriu acelei funcţii şi nu poate fi accesat de nici o altă instrucţiune conţinută într-o altă funcţie, cu excepţia cazului când este apelată funcţia. Codul care reprezintă corpul unei funcţii este ascuns faţă de restul programului şi, cu excepţia cazului în care foloseşte date sau variabile globale, nu poate afecta şi nu poate fi afectat de către alte componente ale programului.

În C/C++, toate funcţiile au acelaşi nivel al domeniului de acţiune, adică nu se poate defini o funcţie în interiorul altei funcţii. Iată de ce C/C++ nu este, din punct de vedere tehnic, un limbaj structurat pe blocuri.

1.3. Argumentele unei funcţii

Dacă o funcţie urmează să folosească argumente, trebuie să declare variabile care să accepte valorile argumentelor. Aceste variabile se numesc parametrii formali ai funcţiei. Aceştia se comportă ca orice altă variabilă locală în interiorul funcţiei, fiind creaţi la intrarea în funcţie şi distruşi la ieşire. După cum o arată funcţia care urmează, declaraţiile parametrilor survin după numele funcţiei:

/* Returnează 1 dacă c aparţine şirului s; 0 în caz contrar.*/

int este_in(char *s, char c);

{

while (*s)

if(*s==c) return 1;

else s++;

return 0;

}

Funcţia este_in() are doi parametri, anume s şi c. Această funcţie dă rezultatul 1 dacă caracterul c este inclus în şirul s şi 0 în caz contrar.

Trebuie să vă asiguraţi că argumentele folosite la apelul unei funcţii sunt compatibile cu tipul parametrilor acesteia. Dacă tipurile sunt incompatibile, compilatorul nu va emite neapărat un mesaj de eroare, dar pot apărea rezultate neaşteptate.

1.4. Apelul funcţiilor folosind tablouri

Când un tablou este folosit ca argument al unei funcţii, se transferă numai adresa tabloului, şi nu o copie a întregului tablou. La apelul unei funcţii cu numele unui tablou, este transmis funcţiei un pointer al primului element din tablou. Aceasta înseamnă că declararea parametrului trebuie să fie compatibilă cu tipul pointerului. Există trei modalităţi de a declara un parametru care urmează să primească un pointer tablou:

- declararea unui tablou;

void afiseaza(int num[10])

- declararea unui tablou nedimensionat;

void afiseaza(int num[])

- declararea unui pointer.

void afiseaza(int *num)

Prima aplicaţie de la punctual 2 reprezintă un exemplu pentru prima modalitate, iar a doua aplicaţie un exemplu pentru cea de-a treia modalitate.

1.5. Revenirea dintr-o funcţie

Revenirea dintr-o funcţie se poate realiza în două moduri:

- după execuţia ultimei instrucţiuni din corpul funcţiei;

- la întâlnirea instrucţiunii return.

Instrucţiunea return este instrucţiunea de revenire din funcţie. Ea are formatele:

- return

- return expresie

Formatul al doilea se foloseşte în corpul unei funcţii care returnează o valoare la revenirea din ea. Valoarea expresiei din instrucţiunea return este chiar valoarea returnată de funcţie.

În cazul în care tipul acestei expresii diferă de tipul din antet, valoarea expresiei se converteşte automat spre tipul din antet, înainte de a reveni din funcţie. Se foloseşte revenirea din funcţie fără instrucţiunea return sau cu ajutorul instrucţiunii return fără a fi urmată de o expresie atunci când funcţia nu returnează nici o valoare.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Programarea Calculatoarelor si Limbaje de Programare - Functii.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
7/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
5 pagini
Imagini extrase:
5 imagini
Nr cuvinte:
1 679 cuvinte
Nr caractere:
8 531 caractere
Marime:
16.06KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Profesorului:
Vasilescu Dragos
Sus!