M5 L3 Structura alternativă instrucțiunea if

Structura alternativă este reprezentată de instrucțiunea de control a fluxului if-else(dacă-altfel), care permite executarea unor blocuri de cod diferite în funcție de o condiție. Aceasta este denumită „structură alternativă” deoarece programul poate urma una dintre două căi alternative.

Sintaxa generală:

if (condiție) {
    // Codul executat dacă condiția este adevărată
} else {
    // Codul executat dacă condiția este falsă
}

Exemplu simplu:

#include <iostream>
using namespace std;

int main() {
    int numar;
    cout << "Introdu un numar: ";
    cin >> numar;

    if (numar % 2 == 0) {
        cout << "Numarul este par." << endl;
    } else {
        cout << "Numarul este impar." << endl;
    }

    return 0;
}

Variante:

  1. Doar if (fără alternativă):
if (condiție) {
    // Codul executat doar dacă condiția este adevărată
}

2. if - else if - else (structură alternativă multiplă):

if (condiție1) {
    // Cod pentru condiția 1
} else if (condiție2) {
    // Cod pentru condiția 2
} else {
    // Cod dacă niciuna dintre condițiile de mai sus nu este îndeplinită
}

3. if-else se poate înlocui cu switch (doar pentru cazuri discrete)

Pentru variabile de tip întreg sau caracter, poți folosi și switch:

int optiune = 2;

switch(optiune) {
    case 1:
        cout << "Ai ales 1\n";
        break;
    case 2:
        cout << "Ai ales 2\n";
        break;
    default:
        cout << "Optiune necunoscuta\n";
        break;
}

Iată un exemplu simplu în C++ care citește două numere întregi a și b de la tastatură și afișează care dintre ele este mai mare, folosind structura alternativă if-else:

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cout << "Introdu primul numar (a): ";
    cin >> a;

    cout << "Introdu al doilea numar (b): ";
    cin >> b;

    if (a > b) {
        cout << "Numarul mai mare este: " << a << endl;
    } else if (b > a) {
        cout << "Numarul mai mare este: " << b << endl;
    } else {
        cout << "Numerele sunt egale." << endl;
    }

    return 0;
}

Explicație:

  • Se citesc valorile a și b de la tastatură.
  • Se compară cele două numere:
    • Dacă a > b, se afișează a.
    • Dacă b > a, se afișează b.
    • Dacă sunt egale, se afișează un mesaj corespunzător.

Un exemplu de program C++ care folosește instrucțiunea switch. Acest program citește o opțiune de la tastatură și afișează un mesaj în funcție de opțiune:

Exemplu: Meniu simplu cu switch

#include <iostream>
using namespace std;

int main() {
    int optiune;

    cout << "Meniu:" << endl;
    cout << "1. Afiseaza salut" << endl;
    cout << "2. Afiseaza mesajul Acum faci informatica!" << endl;
    cout << "3. Afiseaza cum se inchide corect programul" << endl;
    cout << "Alege o optiune (1-3): ";
    cin >> optiune;

    switch (optiune) {
        case 1:
            cout << "Salut! Bine ai venit!" << endl;
            break;
        case 2:
            cout << "Acum faci informatica!" << endl; 
            break;
        case 3:
            cout << "Programul se inchide daca apesi orice tasta." << endl;
            break;
        default:
            cout << "Optiune invalida!" << endl;
            break;
    }

    return 0;
}

Explicație:

  • switch(optiune) verifică valoarea introdusă.
  • Pentru fiecare case, dacă valoarea se potrivește, se execută blocul respectiv.
  • break oprește executarea și iese din switch.
  • default este cazul implicit, folosit când valoarea nu corespunde niciunui case.

Temă:

Să se explice linie cu linie fiecare program din această pagină.

Observații:

  1. Funcția endl înseamnă new line = trece cursorul pe linia următoare
  2. Structura liniară din pseudocod devine instrucțiune secvențială în cod (program).
  3. Funcția cout are ca scop afișarea pe ecran.
  4. Funcția cin are ca scop citirea de la tastatură.
  5. La declararea variabilei numar se alocă un spațiu de memorie pe 32 biți pentru stocarea unei valori de tip int (număr întreg).
  6. Operația „%” ne oferă restul împărțirii deci numar % 2 == 0 ne spune că restul impărtirii la 2 este zero.

Întrebări:

  1. Pe câte linii se scrie structura liniară în pseudocod?
  2. Care este corespondența structurii liniare în cod?
  3. Ce execută funcția cout?
  4. Ce execută funcția cin?
  5. Ce se petrece în memorie la declararea variabilelor de tip int ?
  6. Ce rezultat are instrucțiunea cout << „Introdu un numar: „; ?
  7. Ce rezultat are instrucțiunea cin >> numar; ?
  8. La ce se referă operația % ?

 

Results

QUIZ START

#1. Pe câte linii se scrie structura liniară în pseudocod?

Select all that apply:

Previous
Next

#2. Ce rezultat are instrucțiunea cin >> numar; ?

Select all that apply:

Previous
Next

#3. Ce execută funcția cout?

Select all that apply:

Previous
Next

#4. Ce execută funcția cin?

Select all that apply:

Previous
Next

#5. Ce se petrece în memorie la declararea variabilelor de tip int ?

Select all that apply:

Previous
Next

#6. Ce rezultat are instrucțiunea cout << "Introdu un numar: "; ?

Select all that apply:

Previous
Next

#7. Care este corespondența structurii liniare în cod?

Select all that apply:

Previous
Next

#8. La ce se referă operația % ?

Select all that apply:

Previous
Finish