PROIECT FINAL

Calculator cu functii

Aplica tot ce ai invatat despre functii pentru a crea un calculator complet!

+
Vreau sa construiesc un calculator!
Vei crea un program care face operatii matematice (+, -, *, /) folosind functii separate pentru fiecare operatie.
Ce trebuie sa faca calculatorul:
  • 1 Sa aiba 4 functii: adunare, scadere, inmultire, impartire
  • 2 Sa aiba o functie meniu care afiseaza optiunile
  • 3 Utilizatorul alege operatia si introduce 2 numere
  • 4 Programul afiseaza rezultatul folosind functia corespunzatoare
  • 5 Verificare impartire: nu se poate imparti la 0!
Cum va arata la rulare:
=== CALCULATOR ===
1. Adunare
2. Scadere
3. Inmultire
4. Impartire
0. Iesire
==================
Alege operatia: 1
Primul numar: 15
Al doilea numar: 7
Rezultat: 15 + 7 = 22

Pasul 1: Planificarea functiilor

Functiile de care avem nevoie:
1. Functii pentru operatii (4 functii):
float aduna(float a, float b); // returneaza a + b
float scade(float a, float b); // returneaza a - b
float inmulteste(float a, float b); // returneaza a * b
float imparte(float a, float b); // returneaza a / b
2. Functie pentru meniu (void - doar afiseaza):
void afiseazaMeniu(); // afiseaza optiunile
De ce folosim float?

Folosim float in loc de int pentru ca impartirea poate da rezultate cu zecimale.
Exemplu: 7 / 2 = 3.5 (cu float), dar ar fi 3 (cu int)

Pasul 2: Codul complet

Codul calculatorului - copiaza in Code::Blocks:
#include <iostream>
using namespace std;
// ========== FUNCTIILE DE CALCUL ==========
float aduna(float a, float b) {
return a + b;
}
float scade(float a, float b) {
return a - b;
}
float inmulteste(float a, float b) {
return a * b;
}
float imparte(float a, float b) {
return a / b;
}
// ========== FUNCTIA MENIU ==========
void afiseazaMeniu() {
cout << "\n=== CALCULATOR ===\n";
cout << "1. Adunare\n";
cout << "2. Scadere\n";
cout << "3. Inmultire\n";
cout << "4. Impartire\n";
cout << "0. Iesire\n";
cout << "==================\n";
}
// ========== PROGRAMUL PRINCIPAL ==========
int main() {
int optiune;
float num1, num2, rezultat;
do {
afiseazaMeniu();
cout << "Alege operatia: ";
cin >> optiune;
if (optiune >= 1 && optiune <= 4) {
cout << "Primul numar: ";
cin >> num1;
cout << "Al doilea numar: ";
cin >> num2;
switch (optiune) {
case 1:
rezultat = aduna(num1, num2);
cout << num1 << " + " << num2 << " = " << rezultat << endl;
break;
case 2:
rezultat = scade(num1, num2);
cout << num1 << " - " << num2 << " = " << rezultat << endl;
break;
case 3:
rezultat = inmulteste(num1, num2);
cout << num1 << " * " << num2 << " = " << rezultat << endl;
break;
case 4:
if (num2 != 0) {
rezultat = imparte(num1, num2);
cout << num1 << " / " << num2 << " = " << rezultat << endl;
} else {
cout << "Eroare: Nu se poate imparti la 0!" << endl;
}
break;
}
} else if (optiune != 0) {
cout << "Optiune invalida!" << endl;
}
} while (optiune != 0);
cout << "La revedere!" << endl;
return 0;
}
Verifica daca ai inteles:
Provocare BONUS (optional):

Adauga o noua functie pentru a calcula puterea (a la puterea b):

float putere(float baza, int exp) {
float rezultat = 1;
for(int i = 0; i < exp; i++) {
rezultat = rezultat * baza;
}
return rezultat;
}
+

FELICITARI!

Ai terminat Modulul 1: Algoritmi cu subprograme!

+100 XP
BADGE: Constructor de Functii

Ce ai invatat in acest modul:

  • De ce avem nevoie de functii (DRY, organizare, reutilizare)
  • Cum declaram functii (tip returnat, nume, parametri)
  • Cum transmitem date prin parametri
  • Diferenta dintre void si functii cu return
  • Ordinea declararii functiilor
  • Cum construim un program complex cu mai multe functii

Acum poti scrie programe organizate si profesioniste!