PC Laborator 9

De la WikiLabs
Jump to navigationJump to search

Obiective

În urma acestui laborator, studentul va fi capabil:

  • să înțeleagă conceptul de funcție;
  • să definească funcții, sub formă de prototip și implementare;
  • să apeleze funcții;
  • să utilizeze corect cuvintele cheie void și return.

Funcții

Funcțiile sunt secțiuni ale unui program care se pot apela de mai multe ori, care pot modifica starea programului (prin modificarea variabilelor sau operații de IO - citire și scriere de date) și care pot întoarce un rezultat.

Definirea/ Declararea unei funcții

O funcție în C este definită în următorul fel:

tip_returnat nume_functie (lista_tip_argumente);

unde:

  • tip_returnat definește tipul de date din care face parte valoarea returnată de funcție; dacă funcția nu întoarce nici o valoare (este folosit exclusiv pentru modificarea stării programului sau pentru IO), atunci se mai numește și procedură, iar tipul returnat este void;
  • nume_functie reprezintă numele funcției care este folosit ulterior pentru apelul ei, și care respectă aceleași reguli ca orice identificator generic din C: poate conține exclusiv cifre, litere mici și mari, caracterul underscore (_), și nu poate începe cu cifră;
  • lista_tip_argumente reprezintă o listă de tipuri de date, separate prin virgulă, din care fac parte argumentele funcției; această listă poate fi goală (dacă funcția nu are argumente).


O declarație de funcție se numește și prototip.

Exemple de definiții de funcții

float max (float, float);
int inc (int);
void print (char[]);
int getAge ();

Implementarea unei funcții

Implementarea unei funcții în C se face în felul următor:

tip_returnat nume_functie (lista_argumente) {
    statement_1
    statement_2
    ...
    statement_n
}

unde:

  • tip_returnat reprezintă tipul returnat al funcției (vezi definiția unei funcții);
  • nume_funcție reprezintă numele funcției (vezi definiția unei funcții);
  • lista_argumente reprezintă o listă de definiții de variabile (de forma "tip_data nume_variabila") care sunt argumentele funcției; această listă poate fi goală;
  • statement_... reprezintă una sau mai multe instructiuni (statement) C care implementează comportamentul funcției și care se execută de fiecare dată când se apelează funcția; corpul unei funcții poate fi gol (poate să nu conțină nici un statement), dar atunci apelul ei nu are nici un efect.

Exemple de implementări de funcții

float max (float a, float b) {
    if (a >= b) return a;
    return b;
}

int inc (int value) {
    return value + 1;
}

void print (char[] string) {
    printf("%s", string);
}
 
int getAge() {
    return 20;
}

Exerciții