M1 L4 info Structura decizională, instrucțiunea IF

În programarea C++, structurile decizionale (sau structurile condiționale) permit executarea diferitelor secțiuni de cod în funcție de îndeplinirea unor condiții specificate. Acestea sunt esențiale pentru controlul fluxului programului și pentru implementarea logicii condiționale. Principalele structuri decizionale în C++ sunt:

  1. Instrucțiunea if
  2. Instrucțiunea if...else
  3. Instrucțiunea if...else if...else

1. Instrucțiunea if

Instrucțiunea if verifică o condiție și execută un bloc de cod doar dacă condiția este adevărată.

Sintaxă:

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

Exemplu:

int numar = 10;
if (numar > 0) {
    cout << "Numărul este pozitiv." << endl;
}

Observație: Dacă condiția de mai sus este falsă programul nu afișează nimic.

2. Instrucțiunea if...else

Permite executarea unui bloc de cod dacă condiția este adevărată și altul dacă condiția este falsă.

Sintaxă:

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

Exemplu:

int numar = -5;
if (numar > 0) {
    cout << "Numărul este pozitiv." << endl;
} else {
    cout << "Numărul este negativ sau zero." << endl;
}

3. Instrucțiunea if...else if...else

Permite verificarea mai multor condiții în serie.

Sintaxă:

if (condiție1) {
    // Cod executat dacă condiția1 este adevărată
} else if (condiție2) {
    // Cod executat dacă condiția2 este adevărată
} else {
    // Cod executat dacă niciuna dintre condiții nu este adevărată
}

Exemplu:

int scor = 85;
if (scor >= 90) {
    cout << "Nota este A." << endl;
} else if (scor >= 80) {
    cout << "Nota este B." << endl;
} else if (scor >= 70) {
    cout << "Nota este C." << endl;
} else {
    cout << "Nota este D sau mai mică." << endl;
}

Aplicație 1:

Se citesc de la tastatură două numere întregi. Să se scrie în pseudocod și în cod C++ care este mai mare. Să se afișeze rezultatul pe ecran.

Pseudocod:

START
    Citeste numar1
    Citeste numar2

    IF numar1 > numar2 THEN
        Afișează "numar1 este mai mare"
    ELSE IF numar2 > numar1 THEN
        Afișează "numar2 este mai mare"
    ELSE
        Afișează "Numerele sunt egale"
    END IF
END

COD în C++

#include <iostream>

using namespace std;

int main() {
    int numar1, numar2;

    // Citirea numerelor de la tastatură
    cout << "Introduceți primul număr: ";
    cin >> numar1;

    cout << "Introduceți al doilea număr: ";
    cin >> numar2;

    // Compararea numerelor și afișarea rezultatului
    if (numar1 > numar2) {
        cout << numar1 << " este mai mare." << endl;
    } else if (numar2 > numar1) {
        cout << numar2 << " este mai mare." << endl;
    } else {
        cout << "Numerele sunt egale." << endl;
    }

    return 0;
}

Explicația programului

  • Programul citește două numere întregi de la utilizator.
  • Compară numerele între ele folosind instrucțiuni condiționale (ifelse ifelse).
  • Dacă primul număr este mai mare decât al doilea, afișează acest lucru.
  • Dacă al doilea număr este mai mare, se afișează al doilea.
  • Dacă numerele sunt egale, programul va afișa un mesaj corespunzător.

Temă:

Iată câteva probleme sugestive de rezolvat în C++ care se pune accent pe utilizarea structurilor decizionale precum ifif...elseif...else if...else:

1. Clasificarea în funcție de vârstă

Scrie un program care citește vârsta unei persoane și afișează categoria de vârstă corespunzătoare: copil (0-12 ani), adolescent (13-17 ani), adult (18-64 ani) sau senior (65+ ani).

2. Determinarea semnului unui număr

Scrie un program care citește un număr întreg și afișează dacă acesta este pozitiv, negativ sau zero.

3. Zilele săptămânii

Scrie un program care citește un număr întreg între 1 și 7 și afișează ziua săptămânii corespunzătoare (1 – luni, 2 – marți, etc.). Dacă numărul nu este în intervalul corect, afișează un mesaj de eroare.

4. Verificarea unui număr de tip „perfect square”

Scrie un program care citește un număr întreg și verifică dacă este un pătrat perfect (adică rădăcina sa pătrată este un număr întreg).

5. Calcularea sumei și produsului a două numere

Scrie un program care citește două numere întregi. Dacă ambele numere sunt pozitive, calculează și afișează produsul lor. Dacă oricare dintre ele este negativ sau zero, calculează și afișează suma lor.

6. Determinarea categoriei unui unghi

Scrie un program care citește valoarea în grade a unui unghi și afișează ce tip de unghi este: ascuțit (0-89°), drept (90°), obtuz (91-179°) sau alungit (180°).

7. Determinarea unei valori în interval

Scrie un program care citește un număr întreg și verifică dacă acesta se află în intervalul [10, 50]. Dacă este, afișează un mesaj corespunzător. Dacă nu este, afișează un alt mesaj.

8. Calificative școlare

Scrie un program care citește nota unui elev (de la 1 la 10) și afișează calificativul: „Insuficient” (1-4), „Suficient” (5-6), „Bine” (7-8), „Foarte bine” (9), „Excelent” (10).

9. Determinarea tipului unei litere

Scrie un program care citește o literă de la tastatură și verifică dacă este vocală sau consoană. Afișează un mesaj corespunzător pentru fiecare caz (tratând atât literele mari, cât și literele mici).

Aceste probleme sunt concepute pentru a exersa folosirea structurilor decizionale fundamentale în C++, precum ifif...else și if...else if...else, în funcție de complexitatea cerinței fiecărei probleme.