Documente Academic
Documente Profesional
Documente Cultură
1) Ce este un algoritm?
Algoritmul este o succesiune de etape care se pot aplica mecanic în vederea
obținerii unor anumite rezultate.
Exemplu: O persoană care merge la școală
În orice algoritm se pornește de la anumite informații cunoscute și se dorește
obținerea anumitor rezultate.
Exemplu: Algoritmul prin care mergem la școală:
- ne trezim
- ne spălăm pe dinți
- mâncăm
- ne îmbrăcăm de plecare
- luăm autobuzul
- ajungem la școală
a b c d
operanzi
Operatorii aritmetici sunt constante sau variabile de tip întreg sau real.
Operatorii mai des întâlniți sunt: - “+” pentru adunare
- “-” pentru scădere
- “*” pentru înmulțire
- “/” pentru împărțire
În pseudocod se poate utiliza orice simbol cu semnificație matematică (√𝑥, [x]) și
multe altele.
Operatorul NOT acționează asupra unui singur operand logic (Dacă operatorul
este TRUE, rezultatul va fi FALSE).
TRUE FALSE
NOT FALSE TRUE
6) Atribuiri:
În pseudocod, atribuirile se fac ajutându-ne de simbolul “←”.
Exemplu: a ← 5 | nr ← nr + 1 |V ← V + nr
(!) Reținem că de fiecare dată când o variabilă își schimbă valoarea, aceasta va fi
folosită / utilizată cu noua sa valoarea, nu cu ce avea memorat inițial.
(!) De aici putem înțelege că orice număr împărțit la 10 este exact același număr fără
ultima cifră.
(!) De aici putem înțelege că orice număr împărțit la orice altceva este exact partea
întreagă, fără ce se află după virgulă.
(!) De aici putem înțelege că orice număr la sută 10 rezultă exact ultima cifră a
numărului. Acest lucru se foloseste foarte des în problemele de la informatică, ne pot
ajuta să găsim cifrele unui număr, să îl inversăm, etc.
Structura Liniară
(!) Când folosim această structură trebuie să fim foarte atenti, întrucât să nu ne
încurcăm în scrierea acestora. Trebuie să deschidem (┌), să cpntinuăm (│) și să
închidem (└■) corect algoritmul, pentru a nu exista eventuale greșeli.
1) Structură:
Exemplu:
n ← 5, deci, vom executa algoritmul de 5 ori, citind astfel 5 numere.
Ne întrebăm de fiecare dată daca “i” este strict mai mic sau egal cu “n”, tocmai
pentru a nu executa algoritmul nici de mai puține, nici de mai multe ori.
Citim “nr”, apoi verificăm condiția. Dacă restul împărțirii numărului la 2 este 1,
atunci este număr impar, iar suma crește, altfel dacă restul este 0, produsul se
înmulțește.
(!) Nu există altă cale decât 0 și 1, deoarece restul împărțirii la 2 este mereu 0 sau
1, respectiv par sau impar.
Spre exemplu, pentru “n” = 5, iar “nr” = (pe rand): 12, 535, 49, 10 și 100, se va
executa:
“S” va lua valoarea: 0 + 535 + 49 -> “S” ← 584
“P” va lua valaorea: 1 * 12 * 10 * 100 -> “P” ← 12000
1) Structură:
Exemplu:
n ← 5, deci, vom executa algoritmul de 5 ori, citind astfel 5 numere.
Ne întrebăm de fiecare dată daca “i” este strict mai mic sau egal cu “n”, tocmai
pentru a nu executa algoritmul nici de mai puține, nici de mai multe ori.
Citim “nr”, apoi verificăm, pentru fiecare în parte “cifre” primește valoarea 0.
Intrăm în altă structură, dar nu o părăsim decât după ce numărul nostru este “=”
sau “<” decât 0.
“cifre” crește de fiecare dată când se execută instrucțiunea, iar mai pe scurt, am
putea spune că “cifre” se mărește cu o valoare cât timp “nr” există.
La final, afișăm valoarea lui “cifre” și punem și un spațiu pentru ca celelalte valori
ale celorlalte “n-i” valori să nu se lipească.
Spre exemplu, pentru “n” = 5, iar “nr” = (pe rand): 14, 179, 54, 10482 și 1473, se
va executa:
“cifre” va lua valoarea 0 pentru fiecare, apoi se calculează, se afișează și tot așa.
În final, ca rezultat va trebui să se afișeze: 2 3 2 5 4.
1) Structură:
┌execută
│ operație / operații
└■cât timp <condiție logică>
2) Principiu de execuție:
Pasul 1: Se execută operația / operațiile
Pasul 2: Se verifică dacă condiția este îndeplinită (TRUE), iar dacă este, se reia
pasul 1, altfel (FALSE), se părăsește structura.
3) Exemple:
Exemplu: Se citește un număr întreg. Să se calculeze suma cifelor sale.
întreg nr, S
S←0
┌execută
│ S ← S + nr % 10
│ nr ← nr / 10
└■cât timp nr > 0
scrie S
Exemplul de mai sus este identic cu cel de la structura “cât timp… execută”, doar
că, de data aceasta condiția este pusă la final.
(!) Diferența dintre cele 2 structuri nu este des prea mare, deoarece, de obicei
structurile se execută de același număr de ori.
Spre exempu, pentru nr = 123, se va memora în S tot valoarea 6, ce ulterior va fi și
afișată.
1) Structură:
┌repetă
│ operație / operații
└■până când <condiție logică>
2) Principiu de execuție:
Pasul 1: Se execută operația / operațiile
Pasul 2: Se verifică dacă condiția este îndeplinită (TRUE), iar dacă este, se reia
pasul 1, altfel (FALSE), se părăsește structura.
3) Exemple:
Exemplu: Se citește un număr întreg. Să se calculeze suma cifelor sale.
întreg nr, S
S←0
┌repetă
│ S ← S + nr % 10
│ nr ← nr / 10
└■până când nr = 0
scrie S
Exemplul de mai sus este identic cu cel de la structura “cât timp… execută”,
respectiv “execută… cât timp”, doar că, de data aceasta condiția este pusă la
final, fiind negată.
Spre exempu, pentru nr = 123, se va memora în S tot valoarea 6, ce ulterior va fi și
afișată.
i←a
┌cât timp i ≤ b execută
│ operație / operații
│ i←i+1
┌pentru i ← a, b execută └■
│ operație / operații
i←a
└■
┌dacă i ≤ b atunci
│ ┌repetă
│ │ operație / operații
│ │ i←i+1
│ └■până când i > b
└■
citește n
p ← 1; d ← 1; dd ← 2
┌cât timp n > 1 execută
│ pp ← 0
│ ┌cât timp n % dd = 0
│ │ pp ← pp + 1
│ │ n ← n / dd
│ └■
│ ┌dacă pp ≥ p atunci
│ │ p ← pp
│ │ d ← dd
│ └■
│ dd ← dd + 1
└■
scrie d, ‘ ’, p
citește n
d ← 2; max ← 1
┌cât timp n > 1 execută
│ OK ← 0
│ ┌cât timp n % d = 0
│ │ OK ← 1
│ │ n←n/d
│ └■
│ ┌dacă OK = 1 atunci
│ │ max ← d
│ └■
│ d←d+1
└■
scrie max
citește n
d ← 2; nr ← 0
┌cât timp n > 1 execută
│ p←0
│ ┌cât timp n % d = 0
│ │ p←p+1
│ │ n←n/d
│ └■
│ ┌dacă p % 2 = 1 atunci
│ │ nr ← nr + 1
│ └■
│ d←d+1
└■
scrie nr