Clasificarea Funcțiilor Definite de Utilizator: Funcții Procedurale și Funcții Operand 13
1. Obiectivele lecției:
- Să înțeleagă diferența dintre funcțiile procedurale și funcțiile operand.
- Să identifice utilizarea fiecărui tip de funcție.
- Să implementeze exemple practice pentru a evidenția diferențele.
2. Ce sunt funcțiile definite de utilizator?
- Funcțiile definite de utilizator sunt module create pentru a rezolva probleme specifice. Acestea pot fi clasificate în funcții procedurale și funcții operand pe baza scopului lor și a modului în care sunt utilizate.
3. Clasificarea funcțiilor
1. Funcții Procedurale
- Definiție:
- Sunt funcții care realizează o serie de operații, fără a returna o valoare semnificativă.
- Rezultatul lor este de obicei afișat sau utilizat pentru efecte secundare (ex.: modificarea unei structuri de date, afișarea unui mesaj).
- Caracteristici:
- Tipul de returnare este de obicei void.
- Utilizate pentru sarcini care nu necesită o valoare de ieșire.
- Exemple de utilizare:
- Afișarea unui mesaj.
- Modificarea unui vector.
- Scrierea în fișiere.
- Exemplu:
#include <iostream>
using namespace std;
void afiseazaMesaj() {
cout << „Aceasta este o funcție procedurală.” << endl;
}
int main() {
afiseazaMesaj();
return 0;
}
2. Funcții Operand
- Definiție:
- Sunt funcții care efectuează o operație și returnează un rezultat.
- Rezultatul este utilizat direct în program.
- Caracteristici:
- Tipul de returnare este diferit de void (ex.: int, double, string).
- Pot fi utilizate în expresii sau pentru atribuire.
- Exemple de utilizare:
- Calculul unei sume.
- Determinarea unui număr maxim.
- Returnarea unei valori transformate.
- Exemplu:
#include <iostream>
using namespace std;
int suma(int a, int b) {
return a + b;
}
int main() {
int rezultat = suma(3, 5);
cout << „Suma este: ” << rezultat << endl;
return 0;
}
4. Diferențe între funcții procedurale și funcții operand
Caracteristică | Funcții Procedurale | Funcții Operand |
Tipul de returnare | void | Tipuri precum int, double |
Scop | Realizează operații sau efecte | Calculează și returnează valori |
Exemple | Afișare, modificări de date | Calcul, comparații, transformări |
Utilizare în expresii | Nu | Da |
5. Exemple practice
Exemplu 1: Modificarea unui vector (procedurală)
#include <iostream>
using namespace std;
void cresteElemente(int vec[], int dim) {
for (int i = 0; i < dim; i++) {
vec[i] += 1;
}
}
int main() {
int vector[5] = {1, 2, 3, 4, 5};
cresteElemente(vector, 5);
for (int i = 0; i < 5; i++) {
cout << vector[i] << ” „;
}
return 0;
}
Exemplu 2: Calcularea mediei unui vector (operand)
#include <iostream>
using namespace std;
double calculeazaMedia(int vec[], int dim) {
int suma = 0;
for (int i = 0; i < dim; i++) {
suma += vec[i];
}
return static_cast<double>(suma) / dim;
}
int main() {
int vector[5] = {1, 2, 3, 4, 5};
double media = calculeazaMedia(vector, 5);
cout << „Media este: ” << media << endl;
return 0;
}
6. Combinarea funcțiilor procedurale și operand
- Exemplu complet:
- Procedural: Afișarea unui rezultat.
- Operand: Calculul unui rezultat.
#include <iostream>
using namespace std;
double calculeazaMedia(int vec[], int dim) {
int suma = 0;
for (int i = 0; i < dim; i++) {
suma += vec[i];
}
return static_cast<double>(suma) / dim;
}
void afiseazaMedia(double media) {
cout << „Media calculată este: ” << media << endl;
}
int main() {
int vector[5] = {1, 2, 3, 4, 5};
double media = calculeazaMedia(vector, 5);
afiseazaMedia(media);
return 0;
}
7. Activități practice pentru elevi
- Scrieți o funcție procedurală care afișează toate elementele pare dintr-un vector.
- Implementați o funcție operand care determină produsul elementelor unui vector.
- Realizați un program care folosește o funcție operand pentru a calcula factorialul unui număr și o funcție procedurală pentru afișare.
8. Scheme logice
- Funcție procedurală:
- Start -> Realizează operația -> Fără returnare -> Stop.
- Funcție operand:
- Start -> Efectuează calculul -> Returnează rezultatul -> Stop.
9. Concluzie
- Funcțiile procedurale sunt utile pentru realizarea operațiilor fără a returna un rezultat semnificativ.
- Funcțiile operand sunt esențiale pentru calcularea și returnarea rezultatelor în expresii.
- O bună organizare a funcțiilor ajută la crearea de programe clare, eficiente și ușor de întreținut.