Documente Academic
Documente Profesional
Documente Cultură
FundamenteleProgramariiBejanC2020 Ro c3 1 If
FundamenteleProgramariiBejanC2020 Ro c3 1 If
FUNDAMENTELE
PROGRAMĂRII
Conf. univ. dr. Crina Anina Bejan
CAPITOLUL 6.
INSTRUCȚIUNI ALE
LIMBAJLUI C/C++
Execuția SECVENȚIALĂ a programelor în c++
#include <iostream>
using namespace std;// Program care stabileste daca B divide pe A
int main()
{
int A, B, R; // declarare variabile
bool dividesFlag;// declarare variabile
cout << “Introducerti A si B: “ << endl;
cin >> A >> B;
R = A % B; // Restul împarțirii lui A la B
dividesFlag = (R == 0); // Este restul zero?
cout << “ B este divizor a lui A? “ << dividesFlag << endl;
return 0;
}
Instrucțiunea decizională / condițională
■ Se întâlnește sub două forme:
– if (expresie)
{
instrucțiuni;
}
FALS ADEVARAT
Expresie
– if (expresie)
{
instructiune1; Instrucțiuni Instrucțiuni
}
else
{
instructiune2;
}
Instrucțiunea decizională / condițională
■ Relatii posibile pentru evaluarea expresiei in instructiunea conditionata :
if (a>b) – Daca a mai mare decat b
if (a>=b) - Daca a mai mare sau egal cu b
if (a<b) - Daca a mai mic decat b
if (a<=b) - Daca a mai mic sau egal cu b
if (a = = b) – Daca a egal b
FALS ADEVARAT
if (a!=b)- Daca a diferit b
Expresie
Pentru a=10 si b=15 avem:
(a>b)= FALS = 0
(a>=b) = FALS = 0 Instrucțiuni Instrucțiuni
(a<b) = ADEVARAT = 1
(a<=b) = ADEVARAT = 1
(a = = b)=FALS = 0
(a!=b)= ADEVARAT =1
Instrucțiunea decizională / condițională
■ Consideram doua variabile a si b. Sa se afiseze a daca a este mai mare decat b. Altfel sa se
afiseze b (maximul a doua valori intregi).
if (a>b) cout<<a;
FALS ADEVARAT
else cout b; Daca
(a=10>b=15)
Start
Citeste a,b
Adevarat
Fals
(a>=b)
Afiseaza b Afiseaza a
Stop
■ Exemplu:
2. Se citesc de la tastatura doua valori intregi pozitive. Afisati
maximul celor doua valori
■ Rezolvare: Pas4 – Scrierea algoritmului în pseudocod:
START
intreg a, b
citeşte a, b
daca (a>=b)
atunci afiseaza a
sfarsit daca
altfel
afiseaza b
sfarsit altfel
STOP
■ Exemplu:
2. Se citesc de la tastatura doua valori intregi pozitive. Afisati maximul celor doua valori
Rezolvare: Pas5 – Implementarea algoritmului în limbajul C++:
#include <iostream>
using namespace std;
int main( void )
{
int a, b, c; //declarare variabile
cout<<"a="; // se afiseaza pe ecran textul dintre ghilimele
cin>>a; //se preia in variabila a valoarea introdusa de utilizator
cout<<"b="; cin>>b;
if (a>=b)
{
cout<<"Maximul dintre "<<a<<“ si "<<b<<“ este “<< a<<endl;
}
else
{
cout<<"Maximul dintre "<<a<<“ si "<<b<<“ este “<< b<<endl;
}
}
Instrucțiunea decizională / condițională IMBRICATA
■ Se întâlnește sub două forme:
if (expresie 1) if (expresie 1)
{ {
if (expresie 2) if (expresie 2) FALS ADEVARAT
{ { Expresie
instrucțiuni; instrucțiuni;
} }
} Instrucțiuni
FALS ADEVARAT
} else
Expresie
{
instructiune2;
}
Instrucțiuni Instrucțiuni
■ Exemplu:
2. Se citesc de la tastatura doua valori intregi pozitive. Afisati maximul celor doua valori.
■ Rezolvare:
– Pas1 – stabilim datele de intrare și ieșire
■ Date de intrare: valorile introduce de la tastatura
■ Date de ieșire: afisarea maximului
– Pas2 – Analiza problemei
■ Stabilim condițiile ce trebuie îndeplinite de datele de intrare:
– cele trei laturi trebuie să fie numere reale mai mari ca zero.
■ Stabilim modul de calcul pentru datele de ieșire:
– Daca a>b atunci afiseaza a altfel afiseaza b
■ Exemplu:
2. Se citesc de la tastatura doua valori intregi pozitive. Afisati maximul celor doua valori
Rezolvare: Pas3 – Realizarea schemei logice a algoritmului:
Start
Citeste a,b
Fals Adevarat
(a>=0)
Fals Adevarat
(b>=0)
Adevarat
Fals
(a>=b)
Stop
■ Exemplu:
2. Se citesc de la tastatura doua valori intregi pozitive. Afisati maximul celor doua valori
■ Rezolvare: Pas4 – Scrierea algoritmului în pseudocod:
START
intreg a, b
citeşte a, b
daca (a>=0)
daca (b>=0)
daca (a>=b)
atunci afiseaza a
sfarsit daca
altfel
afiseaza b
sfarsit altfel
sfarsit daca
altfel
afiseaza «valori incorecte»
sfarsit altfel
sfarsit daca
altfel
afiseaza «valori incorecte»
sfarsit altfel
STOP
■ Exemplu:
2. Se citesc de la tastatura doua valori intregi pozitive. Afisati maximul celor doua valori
Rezolvare: Pas5 – Implementarea algoritmului în limbajul C++:
#include <iostream>
using namespace std;
int main( void )
{
int a, b, c; //declarare variabile
cout<<"a="; // se afiseaza pe ecran textul dintre ghilimele
cin>>a; //se preia in variabila a valoarea introdusa de utilizator
cout<<"b="; cin>>b;
if (a>=0){
if(b>=0){
if (a>=b){
cout<<"Maximul dintre "<<a<<“ si "<<b<<“ este “<< a<<endl;
}
else {
cout<<"Maximul dintre "<<a<<“ si "<<b<<“ este “<< b<<endl;
}
}
else cout<<“Valori incorecte “<<endl;
}
else
cout<<" Valori incorecte " <<endl;
}
■ Exemplu:
2. Se citesc de la tastatura laturile unui triunghi. Realizați un program care determina triunghiul
este isoscel, echilateral sau dreptunghic. Afișați un mesaj corespunzător
■ Rezolvare:
– Pas1 – stabilim datele de intrare și ieșire
■ Date de intrare: valorile laturilor triunghiului pentru care alegem trei variabile (a, b și c)
care vor desemna spațiul din memoria calculatorului unde se vor păstra valorile introduse
de utilizator.
■ Date de ieșire: mesaj cu tipul de triunghi.
– Pas2 – Analiza problemei
■ Stabilim condițiile ce trebuie îndeplinite de datele de intrare:
– cele trei laturi trebuie să fie numere reale mai mari ca zero. Presupunem că
utilizatorul introduce valori corecte
■ Stabilim modul de calcul pentru datele de ieșire:
– Triunghi isoscel: doua laturi egale a=b sau a=c sau b=c
– Triunghi echilateral: toate laturile egale a=b=c
– Triunghi dreptunghic: laturile trebuie sa satisfaca relatia
𝒂𝟐 + 𝒃𝟐 = 𝒄𝟐 𝒔𝒂𝒖 𝒃𝟐 + 𝒄𝟐 = 𝒂𝟐 𝒔𝒂𝒖 𝐚𝟐 + 𝒄𝟐 = 𝒃𝟐
■ Exemplu:
2. Se citesc de la tastatura laturile unui triunghi. Realizați un program care determina triunghiul este
isoscel, echilateral sau dreptunghic. Afișați un mesaj corespunzător
■ Rezolvare: Pas3 – Realizarea schemei logice a algoritmului:
Start
Citeste a,b,c
Stop
NU a=b=c DA
Afiseaza
“Triunghiul este
NU a=b ||b=c DA
||c=a echilateral”
Afiseaza
𝒂^𝟐+𝒃^𝟐=𝒄^𝟐 || DA “Triunghiul este
NU 𝒃^𝟐+𝒄^𝟐=𝒂^𝟐 ||
𝐚^𝟐+𝒄^𝟐=𝒃^𝟐 isoscel”
Afiseaza
“Triunghiul este
dreptunghic”
■ Exemplu:
2. Se citesc de la tastatura laturile unui triunghi. Realizați un program care determina triunghiul este isoscel, echilateral sau dreptunghic. Afișați
un mesaj corespunzător.
■ Rezolvare:
– Pas4 – Scrierea algoritmului în pseudocod:
START
real a, b, c
citeşte a, b, c
daca (a=b=c)
scrie ‘Triunghiul este echilateral‘
sfarsit daca
altfel
daca (a=b&& ||b=c|| c=a)
scrie ‘Triunghiul este isoscel‘
sfarsit daca
altfel
daca (𝑎2 + 𝑏2 = 𝑐 2 𝑠𝑎𝑢 𝑏2 + 𝑐 2 = 𝑎2 𝑠𝑎𝑢 𝑎2 + 𝑐 2 = 𝑏2 )
scrie ‘Triunghiul este dreptunghic‘
sfarsit daca
sfarsit altfel
sfarsit altfel
STOP
■ Exemplu:
2. Se citesc de la tastatura laturile unui triunghi. Realizați un program care determina triunghiul este isoscel,
echilateral sau dreptunghic. Afișați un mesaj corespunzător.
■ Rezolvare:
– Pas5 – Implementarea algoritmului în limbajul C++:
#include <iostream>
using namespace std;
int main( void )
{
float a, b, c; //declarare variabile
cout<<"latura a="; // se afiseaza pe ecran textul dintre ghilimele
cin>>a; //se preia in variabila a valoarea introdusa de utilizator