Clasa a IX-a lecția 4
Lectie
Programarea structurată
Programarea structurată este un mod de a scrie scheme logice care îmbunătățește claritatea, citibilitatea, calitatea și ușurința modificării ulterioare. Denumirea vine de la Programarea cu structuri. Mai exact, programarea structurată ne limitează modul în care putem folosi și îmbina blocurile. Ele pot fi aranjate în trei feluri distincte, conform unor modele numite structuri. Aceste structuri sunt:
- Structura liniară (de calcul)
- structura alternativă (decizională)
- structura repetitivă (ciclică)
Structura liniară
Se mai numește și structură de calcul. Ea constă dintr-o înșiruire de blocuri de calcul și blocuri de citire/scriere. Aceste blocuri se vor executa in ordinea in care ele apar in structura.

Exemple
Extragerea ultimei cifre
Să se afișeze ultima cifră a unui număr n, folosind operatorul '%', respectiv restul împărțirii la 10. Am demonstrat că restul împărțirii la 10 este ultima cifră a unui număr.

Structura alternativă
Structura alternativă este compusă dintr-un bloc de decizie, două ramuri de execuție, DA și NU, care se reunesc la final. Blocul de decizie contine o expresie logica. Daca expresia logica ( cond ) are valoarea True atunci se vor executa intructiunile de pe ramura DA altfel se vor executa intructiunile de pe ramura NU.

Pseudocod
if conditie atunci intrusctiune1 altfel instructiune2
Exemple
Testul de divizibilitate
Testul de divizibilitate n cu k, discuție cele două metode, prima folosind operatorul %, a doua folosind operatorul /.
![]() |
![]() |
Extragerea primei cifre
Se citește n, un număr natural strict mai mic decît 100. Să se afișeze prima cifră a lui n.

Laborator
Laturile unui triunghi
Se citesc trei numere, a, b și c. Să se spună dacă pot fi laturile unui triunghi.

Strîngeri de mînă
Avem n oameni care dau mîna fiecare cu fiecare o singură dată. În total sînt k strîngeri de mînă. Să se scrie o schemă logică care citește k (numărul de strîngeri de mînă), apoi calculează și afișează n (numărul de oameni).

Maximul a trei numere
Se citesc trei numere, a, b și c. Să se afișeze valoarea maximă.
![]() |
![]() |
Sortarea a 3 numere
- Se citesc trei numere, a, b și c. Să se afișeze în ordine crescătoare. Exemplu: dacă a = 8, b = 4, c = 12, se va afișa 4 8 12.


Am discutat la clasa de asemenea inca 2 metode de sortare, pe care le putem folosi si in situatia in care avem mai mult de 3 numere: - metoda interschimbarii directe - metoda bulelor
Metoda interschimbarii directe
intreg a, b, c, aux
cieste a, b, c
if ( a > b ) atunci
aux = a
a = b;
b = aux
if ( a > c ) atunci
aux = a
a = c;
c = aux
if ( b > c ) atunci
aux = b
b = c;
c = aux
scrie a, b, c
Metoda bulelor
intreg a, b, c, aux
cieste a, b, c
daca ( a > b ) atunci
aux = a
a = b;
b = aux
daca ( b > c ) atunci
aux = b
b = c;
c = aux
daca ( a > b ) atunci
aux = a
a = b;
b = aux
scrie a, b, c
Cifre impare
Se citește un număr n. Se știe că 1 ≤ n < 100. Să se spună dacă toate cifrele lui n sînt impare.
![]() |
![]() |
Numere divizibile cu K din [a,b]
Se citesc trei numere naturale, a, b și k. Să se afișeze numărul de numere divizibile cu k în intervalul [a, b] (inclusiv a și b).

Exerciții 2
Exerciții de folosire a structurilor liniară și alternativă folosind - Pseudocod
Diferenta dintre max si min
Să se scrie un program care citeşte de la tastatură trei numere naturale și determină diferenţa dintre cel mai mare şi cel mai mic numar.
intreg a, b, c
citeste a, b, c
min=a
max=a
daca ( min > b ) atunci
min = b
daca ( min > c ) atunci
min = c
daca ( max < b ) atunci
max = b
daca ( max < c ) atunci
max = c
scrie max - min;
Cate cifre pare are n?
Se citește de la tastatură un număr natural de 3 cifre. Să se determine câte cifre impare conține.
int n, contor;
citeste n
contor = 0
daca ( n mod 2 != 0 ) atunci
contor = contor + 1
daca( n div 10 mod 2 != 0 )
contor = contor + 1
daca ( n div 100 mod 2 != 0 )
contor = contor + 1
scrie contor
Au 2 numere acelasi semn?
Să se scrie un program care citeşte de la tastatură două numere întregi şi verifică dacă cele doua numere au acelaşi semn.
intreg a,b
citeste a, b
daca ( a < 0 ) atunci
daca ( b < 0 ) atunci
scrie "au acelasi semn"
altfel
scrie "nu au acelasi semn"
altfel
daca ( b >= 0 ) atunci
scrie "au acelasi semn"
altel
scrie "nu au acelasi semn"
SAU
intregi a, b
citeste a, b
daca ( ( a < 0 ) AND ( b < 0 ) ) OR ( ( a >= 0 AND b >= 0 ) ) atunci
scrie "au acelasi semn"
altfel
scrie "nu au acelasi semn"
SAU
intregi a, b
citeste a, b
daca ( a < 0 AND b >= 0 ) OR ( a >= 0 AND b < 0 ) atunci
scrie "nu au acelasi semn"
altfel
scrie "au acelasi semn"
Tema 4 Laborator
N are ultimele 2 cifre consecutive?
- Să se spună dacă un număr n are ultimele două cifre consecutive, în ordine crescătoare. Exemple: 312, 4523 și 1 sînt numere care au ultimele două cifre consecutive. 215, 4321 și 7 nu au ultimele două cifre consecutive crescător.
N copii se pot aseza in forma de patrat
- Varianta1: să se spună dacă n copii se pot așeza în formă de pătrat plin. Exemplu: Nouă copii se pot așeza în formă de pătrat astfel:
x x x x x x x x x
- Varianta2: să se spună dacă n copii se pot așeza în formă de pătrat gol ( pe laturile unui patrat. In imaginile de mai sus vom considera ca locuri posibile doar conturul patratului. De exemplu 12 copii se pot aseza sub forma unui patrat gol astfel:
x x x x x x x x x x x x
An bisect
- Scrieți o schemă logică care să determine dacă un an este bisect. Un an este bisect dacă este divizibil cu 4, cu excepția anilor divizibili cu 100, care nu sînt bisecți, cu excepția anilor divizibili cu 400 care sînt bisecți. Exemple: 2012 este an bisect, 1900 nu a fost an bisect, 2000 a fost an bisect.
Tema Pbinfo
Usor
- checkcolor - minim, maxim
- ciford - ordonarea cifrelor unui numar de 3 cifre
- cifmid - afisare cifra din mijloc ca valoare
- 5numere - suma celor mai mari 3 numere din 5 date
- nrsumcifmax - afisarea tuturor numerelor egale cu max din 3 numere
Mediu
Dificil