Î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:
- Instrucțiunea
if - Instrucțiunea
if...else - 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 (
if,else if,else). - 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 if, if...else, if...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 if, if...else și if...else if...else, în funcție de complexitatea cerinței fiecărei probleme.
