Documente Academic
Documente Profesional
Documente Cultură
Laborator 1 PC
Laborator 1 PC
Crearea și utilizarea
UNIT-urilor în C++
Obiectivul laboratorului: Organizarea aplicațiilor de consolă la nivel de module
Beneficiul: Programarea modulară presupune gruparea procedurilor cu funcționalități asemănătoare în același fișier,
numit unitate de compilare.
✓ Un program mare poate fi ușor de scris, de înțeles și de modificat dacă este modular;
✓ Un program mare poate fi reutilizat în mai multe aplicații, ceea ce reduce efortul de programare al unei
noi aplicații;
✓ Un program mare poate fi scris și verificat separat de restul aplicației, ceea ce reduce timpul de punere la
punct a unei aplicații mari;
✓ Întreținerea unei aplicații este simplificată, deoarece modificările se fac numai în anumite subprograme
și nu afectează alte subprograme( care nici nu mai trebuie compilate).
Cuprins
Laboratorul trata aspecte referitoare la:
- Modificatorul const
- Supraîncărcarea funcțiilor
- Aplicații modulare C/C++;
- Directiva include;
- Exemplu de program;
- Pointeri către funcții;
- Exemplu de utilizare;
- Partea practică a laboratorului
Modificatorul const
Utilizarea modificatorului const, în procesul de elaborare a problemelor bazate pe funcții poate aduce mai multe
avantaje:
1. Parametrii de tip valoare precedați de modificatorul const nu vor fi modificați în cadrul funcției;
2. De regulă, pentru parametrii formali se creează a câte o copie în stivă, însă pentru parametri formali de
tip constantă această copie nu se creează, prin urmare programul devine mai rapid.
Exemplu
Supraîncărcarea funcțiilor
Funcțiile care au unul și același nume diferă între ele prin tipurile parametrilor și/sau numărul de parametri se
numesc funcții supraîncărcate (engl. overload)
Procesul de creare a funcțiilor respective se numește supraîncărcare (engl. overloading)
1
Exemplu:
✓ În cadrul modulelor funcțiile se grupează astfel încât fiecare dintre modul să ofere o funcționalitate bine
definită.
✓ Când un fișier .h se modifică este nevoie de recompilare a tuturor unit-urilor care se referă (direct sau
indirect) la el.
✓ Fișierele .c/.cpp se pot compila separat, modificarea implementării nu afectează modulele care folosesc (ele
se referă doar definițiile de header)
✓ Detaliile de implementare sunt ascunse în fișierul .h
Directiva include
Pentru a avea acces la funcțiile declarate într-un modul (biblioteca de funcții) se folosește directiva #include
Preprocesorul include fișierul referit în fișierul sursă în locul unde apare directiva.
2
Exemplu de program: Elaborarea unui program pentru gestiunea datelor despre tipul de date student
Fișierul student.h
3
Pointeri către funcții
Pointerii în limbajele c/c++ sunt foarte populari
Așa cum rezultatul returnat de către o funcție este scris în memorie, prin intermediul pointerului către funcție,
poate fi apelat acel rezultat. Prin urmare, când se vorbește de pointerii către funcții se are în vedere variabile
pointer care conțin adresa de început a codului executabil al unei funcții.
Exemple:
Fie dat prototipul funcției f cu doi parametri: int d(double a, int b);
atunci instrucțiunea : int (pointer *)(double, int);
permite declararea unui pointer către funcția f, prin intermediul numelui pointer
int i,j;
double d;
pointer=f;
atribui adresa codului executabil al funcției f pointerului pointer:
j=*pointer(d,i);
4
Apelul funcției f, folosind pointer
Exemplu de utilizare
Pointerii catre functii pot fi utilizati si în calitate de parametric formali. Un astfel de exemplu este si urmatorul
program:
#include <iostream.h>
double f1(double x){return 2*x*x;}
double f2(double a, double(*f)(double)){
return (f(a)+f(a*a))/2;
}
main(){
double x,d;
cout<<"X=:";cin>>x;
d=f2(x,f1);
cout<<"Valoarea functiei: "<<d;
}
De studiat:
tema 6 pag 218 din E. Cerchez, M. Șerban, Programarea în limbajul C/C++ pentru liceu, volumul 1, 2005