Documente Academic
Documente Profesional
Documente Cultură
1. Structura liniară
2. Structura decizională (alternativă)
3. Structura repetitivă
Structura liniară
Tema:
Se dau 2 numere naturale h m, reprezentând un ora curentă
exprimată în ore şi minute.
Să se determine care va fi ora peste x minute.
Restricţii şi precizări
0 ≤ h1, h2 ≤ 23
Structuri logice – programarea structurată
0 ≤ m1, m2 ≤ 59
0 ≤ x ≤ 10000
Structura decizională
1. Structura decizională simplă
2. Structura decizională cu ramură vidă
Modul de functionare:
- se evalueaza expresia logica
- daca este adevarata, se executa Instructiuni 1
- daca nu este adevarata, se executa Instructiuni 2
Obs. - In C++, instructiuni 1, sau instructiuni 2 se grupeaza in bloc de
instructiuni, intre {}
- daca este o singura instructiune nu este necesar sa punem bloc {}
- pe ramurile atunci/ altfel pot fi incluse si alte instructiuni decizionale
- in situatia de mai sus, cel mai apropiat “altfel” se leaga de ultimul
“daca”
- NICIODATA nu se vor efectua ambele ramuri
Aplicatie:
Sa se determine maximul dintre doua numere intregi date a, b. Pe ecran se va afisa cel mai
mare dintre ele.
Structuri logice – programarea structurată
Sfarsit
Structuri logice – programarea structurată
Aplicatie:
Sa se determine maximul dintre trei numere intregi date a, b, c.
Structura repetitiva
1. Structura repetitiva cu numar necunoscut de pasi
a. cu test initial
b. cu test final
2. Structura repetitiva cu numar cunoscut de pasi
Structuri logice – programarea structurată
Modul de functionare:
- se evalueaza expresia logica
- daca este adevarata se executa instructiunile
- se revine la evaluarea expresiei logice si se vor executa instructiunile in mod repetat
pana cand expresia logica devine falsa
OBS.
1. Variabila care apare in expresia logica si determina repetarile din bucla se numeste variabila
de ciclare.
2. Variabila de ciclare trebuie initializata (citita, sau sa aiba o valoare atribuita) inainte de
structura cat timp
3. Variabila de ciclare trebuie sa se modifice in interiorul instructiunilor, altfel se obtine o
bucla infinita
Aplicatie:
Se citeste un numar natural n. Sa se calculeze suma cifrelor lui n.
Structuri logice – programarea structurată
Intreg n,s
Inceput
Citeste n
s<- 0
cat timp n!=0 executa
s<-s+n%10
n<-n/10
sfarsit cat timp
scrie s
sfarsit
Problema:
Se da numar natural n. Se cere sa se determine numarul de cifre ale lui n.
citeste n
z← 0
p←1
daca n>0 atunci
executa
!
while ( expresia logica);
Modul de functionare:
- se executa instructiunile (cel putin o data oricum)
- se evalueaza expresia logica
- daca este adevarata FALSA se executa instructiunile in mod repetat pana cand
expresia logica devine ADEVARATA
OBS. Structura repeta..pana cand nu are o instructiune asociata anume in C++, ea se
traduce cu do..while negand expresia logica
4. Variabila care apare in expresia logica si determina repetarile din bucla se numeste variabila
de ciclare.
5. Variabila de ciclare trebuie initializata (citita, sau sa aiba o valoare atribuita) inainte de
structura
6. Variabila de ciclare trebuie sa se modifice in interiorul instructiunilor, altfel se obtine o
bucla infinita
Problema:
Se da numar natural n. Se cere sa se determine numarul de cifre ale lui n.
Modul de functionare:
1. Se atribuie contorului valoarea initiala (de unde pornim) vi
2. Se compara contorul cu valoarea finala (unde ne oprim) vf
3. Daca este mai mic sau egal se executa instructiunile
4. Se actulizeaza contorul cu pasul contor=contor+pas
5. Se compara contorul cu valoarea finala (unde ne oprim) si se repeta pasii
3,4 pana cand contorul devine mai mare decat valoarea finala
OBS.
1. Daca pasul este pozitiv (crescator), instructiunile se vor executa cel
putin o data daca vi<=vf
2. Daca pasul este negativ (descrescator), instructiunile se vor
executa cel putin o data daca vi>=vf
3. In pseudocod nu se mai scrie pasul daca pas=1
Structuri logice – programarea structurată
4. Numarul de repatari pentru cazul in care pas=1 este vf-vi+1
5. In c++ instructiunea for are sintaxa generala
Pseudocod C++
intreg i,n,x,k
Inceput
citeste n
Pentru i←1, n executa
citeste x
daca x%2=0 atunci
k←k+1
sfarsit daca
Sfarsit pentru
scrie k
sfarsit
contor← contor+pas
Sfarsita daca
Structuri logice – programarea structurată
contor← contor+pas
Obs.