Documente Academic
Documente Profesional
Documente Cultură
Argument…………………………………………………………………………2
Capitolul 1: Notiuni Teoretice……………………………………………………3
1. Definitie…………………………………………………………………....3
2. Declarare…………………………………………………………………...3
3. Instructiuni…………………………………………………………………4
4. Citire.……………………………………………………………………....4
5. Afisare.……………………………………………………………………..5
6. Atribuire.…………………………………………………………………...5
7. Structura……………………………………………………………………6
● 1.Structura Liniara…………………………………………………..6
● 2.Structura Alternativa……………………………………………....6
● 3. Structura Repetitiva……………………………………………….7
A.Structura repetitivă cu număr cunoscut de pași…………………....7
B.Structura repetitivă cu număr necunoscut de pași și test inițial …...8
C.Structura repetitivă cu număr necunoscut de pași și test final……..9
● 4.Echivalența structurilor repetitive…………………………………11
Capitolul 2: Aplicatii……………………………………………………………...15
Capitolul 3: Bibliografie…………………………………………………………..34
1
Argument
Capitolul 1
2
Noțiuni teoretice
1. Definiție:
Pseudocod este un limbaj prin care sunt descriși pașii dintr-un algoritm.
Limbajul pseudocod conține structurile specifice unui limbaj de programare
obișnuit (precum Pascal, C/C++, Basic, etc) dar este destinat a fi citit de către
oameni, nu de către calculatoare.
De obicei sunt omise detaliile vitale într-un limbaj de programare, precum
declararea variabilelor sau secvențe specifice limbajului.
Algoritmii pseudocod pot conține secvențe descrise în limbaj natural, precum și
expresii matematice compacte, care lipsesc din limbajele de programare reale.
2.Declarare:
În pseudocod variabilele nu se declară, iar numele lor respectă regula uzuală a
identificatorilor – litere, cifre, caracterul de subliniere și să nu înceapă cu cifră.
Constantele care apar de regulă în algoritmii pseudocod sunt constante literale
(valori numerice, întregi sau reale, caractere – delimitate prin apostrof , șiruri de
caractere – delimitate prin apostrof(‘) sau ghilimele(“).
De asemenea, pot să apară constante matematice, de exemplu π.
3.Instructiuni:
3
Instrucțiunile sunt componentele algoritmului care au efect, atunci când se
execută. Ele modifică valorile unor variabile, citesc sau afișează date, repetă
anumite acțiuni, etc.
De regulă fiecare instrucțiune se scrie pe o linie (sau mai multe în cazul celor
complexe), dar există situații când, pentru a economisi spațiu, două sau mai
multe instrucțiuni simple se scriu pe același rând, separate prin punct si
virgula(;).
Orice algoritm poate fi reprezentat prin intermediul a trei tipuri de structuri:
● structura liniară
● structura alternativă
● structura repetitivă
o structura repetitivă cu număr necunoscut de pași
▪ structura repetitivă cu număr necunoscut de pași și test
inițial
▪ structura repetitivă cu număr necunoscut de pași și test final
o structura repetitivă cu număr cunoscut de pași
4. Citire:
Pentru citirea datelor se folosește instrucțiunea citește <listă variabile>,
unde <listă variabile> reprezintă un șir de variabile separate prin caracterul(,).
Se preiau valori succesive de la tastatură și se memorează în variabilele din
listă.
Exemplu:
citeste a , b , c
Citirea datelor este frecvent însoțită de precizări privind datele citite (tip,
valori posibile. etc.).
4
5. Afisare:
Pentru afișarea datelor se folosește instrucțiunea scrie <listă expresii>,
unde <listă expresii> reprezintă un șir de expresii separate prin caracterul ,.
Se evaluează în ordine expresiile din listă și se afișează pe ecran rezultatele
lor.
Exemplu:
a+b=7
6. Atribuire:
a←0
S←a+b
i←i+1
5
7. Structura:
Principiul programării structurate: Orice algoritm poate fi descris utilizand trei
tipuri de structuri de control: liniara, alternativa si repetitive.
2. Structura alternativă:
În pseudocod există instrucțiunea dacă, cu următoarea sintaxă:
sau
● se evaluează <condiție>
● dacă este adevărată, se executa grupul de instrucțiuni <instrucțiuni1>, apoi
se trece la următoarea instrucțiune
● dacă este falsă, se executa grupul de instructiuni <instructiuni2>, dacă există
secțiunea altfel, apoi se trece la următoarea instrucțiune.
6
3.Structuri repetitive:
A.Structura repetitivă cu număr cunoscut de pași:
INSTRUCȚIUNEA: PENTRU
Sintaxă
Exemplu:
S ← 0; P ← 1
┌ pentru i←1,n executa
│ S←S+i
│ P←P*i
└■
scrie S, ' ' , P
7
B.Structura repetitivă cu număr necunoscut de pași și test inițial:
Mod de execuție
1. se evaluează condiția
2. dacă este adevărată se executa instrucțiunile și se revine la pasul 1
3. dacă este falsă se trece la următoarea instrucțiune din algoritm
Exemplu:
citeste n
S←0
┌ cat timp n ≠ 0 executa
│ S ← S + n % 10
│ n ← [n/10]
└■
scrie S
8
C.Structura repetitivă cu număr necunoscut de pași și test final:
A.INSTRUCTIUNEA EXECUTA … CAT TIMP
Sintaxă
┌ executa
│ <instructiuni>
└ cat timp <conditie>
Mod de execuție
1. se executa instrucțiunile
2. se evaluează condiția
3. dacă este adevărată se revine la pasul 1
4. dacă este falsă se trece la următoarea instrucțiune din algoritm
Exemplu:
citeste n
cnt ← 0
┌ executa
│ cnt ← cnt + 1
│ n ← [n/10]
└ cat timp n ≠ 0
scrie cnt
9
B. INSTRUCȚIUNEA REPETĂ … PÂNĂ CÂND
Sintaxă
┌ repeta
│ <instructiuni>
└ pana cand <conditie>
Mod de execuție
1. se executa instrucțiunile
2. se evaluează condiția
3. dacă este falsă se revine la pasul 1
4. dacă este adevărată se trece la următoarea instrucțiune din algoritm
Exemplu:
citeste n
cnt ← 0
┌ repeta
│ cnt ← cnt + 1
│ n ← [n/10]
└ pana cand n = 0
scrie cnt
10
4.Echivalența structurilor repetitive
Numeroase exerciții propun un algoritm și se cere scrierea unui algoritm
echivalent care să folosească o structură repetitivă de alt tip.
Doi algoritmi sunt echivalenți dacă pentru orice set de date de intrare
(conforme cu restricțiile problemei) ei obțin aceleași rezultate.
A. PENTRU → CÂT TIMP
11
B. PENTRU → EXECUTĂ … CÂT TIMP
C. PENTRU → REPETĂ … PÂNĂ CÂND
12
D. CÂT TIMP → EXECUTĂ … CÂT TIMP
13
F. REPETĂ … PÂNĂ CÂND → CÂT TIMP
┌ repeta
│ <instructiuni>
└ pana cand <conditie>
<instructiuni>
┌ cat timp NOT <conditie> executa
│ <instructiuni>
└■
14
Capitolul 2
Aplicatii
1. Scrieți pseudocodul unui algoritm care citeşte de la tastatură două numere reale
şi strict pozitive b şi h, reprezentând baza, respectiv înălțimea unui triunghi, apoi
calculează şi afişează aria triunghiului. În cazul în care valorile introduse nu pot
reprezenta latura şi înălțimea unui triunghi, se va afişa mesaj de eroare. Reamintim
formula ariei triunghiului: A=(b*h)/2.
REZOLVARE
Orice algoritm trebuie să înceapă cu citirea datelor de intrare, în cazul de fată baza
triunghiului (adică o latură) şi înălțimea corespunzătoare. Aşa cum am arătat în
lecția introductivă din capitolul I, instrucțiunea necesară este {citeşte b,h;}.
Aşadar: Dacă este îndeplinită această condiție atunci: – calculăm aria triunghiului;
în acest scop, atribuim unei variabile A valoarea expresiei (b*h)/2 ce reprezintă
aria; – afişăm valoarea variabilei A, cu ajutorul cuvântului cheie "scrie". În caz
contrar, tipărim mesajul "date incorecte".
15
2. Se dă secvența de algoritm de mai jos, prezentată în pseudocod, în care toate
variabilele identifică numere reale:
citeşte a,b,c; dacă (a>b+c) atunci început dacă (b>=c) atunci x←(a+b)/(2*c);
altfel x←0; sfârşit altfel x←(a/c+b/c)/2; scrie x;
d) Rescrieți algoritmul într-un mod mai scurt, folosind un număr mai mic de
ramuri de tip"dacă altfel".
a)
16
b) Pentru a=9, b=5 şi c=2, avem: − condiția "a>b+c" din prima instrucțiune de
selecție este îndeplinită pentru aceste valori (9>5+2), deci se execută ramura
"dacă" a acesteia, unde întâlnim o altă instrucțiune de selecție de tipul "dacă-
altfel"; − aici condiția "b>=c" este la rândul ei adevărată (5>=2), motiv pentru care
se execută atribuirea {x←(a+b)/(2*c);}, de unde rezultă x=(9+5)/(2*2)=14/4=3.5.
Variabila x nu mai suferă nici o modificare a valorii sale, întrucât celelalte ramuri
ale instrucțiunilor "dacă-altfel" imbricate nu sunt atinse. În concluzie, programul va
afişa valoarea 3.5.
c) Singurul loc din secvență în care găsim o atribuire prin care variabila x primeşte
valoarea 0, este pe ramura "dacă" a primei instrucțiuni de selecție şi pe ramura
"altfel" a celei de-a doua astfel de instrucțiuni. Cu alte cuvinte, valorile alese
pentru a, b şi c trebuie să îndeplinească prima condiție "a>b+c", şi să nu
îndeplinească cea de-a doua condiție b>=c". Un exemplu de astfel de valori ar fi
a=9, b=3 şi c=4, dar, evident, nu singurele.
Comasarea celor două posibilități într-o singură linie "dacă" se face utilizând
operatorul "SAU logic" (poate să se întâmple ori una ori cealaltă dintre alternative,
nu amândouă simultan). Aşadar: − dacă (a>b+c ŞI b>=c) SAU (a<=b+c) atunci lui
17
x i se atribuie valoare expresiei (a+b)/(2*c); − în caz contrar, variabila x primeşte
valoarea 0. Lăsăm ca exercițiu rescrierea secvenței, operațiune care după aceste
explicații ar trebui să fie o simplă formalitate !
e) În secvența dată, se vede foarte clar faptul că prima ramură "altfel" corespunde
lui "dacă b>=c", iar al doilea "altfel" se asociază cu "dacă a>b+c". Să vedem cum
ar arăta secvența fără cuvintele cheie "început" şi "sfârşit":
18
Nu putem introduce în calculator o funcție algebrică aşa cum o cunoaştem din
matematică, cu argument, domeniu, codomeniu şi lege de asociere.
- în caz contrar:
în caz contrar, nu mai trebuie testat nimic (deoarece nu mai rămâne decât
posibilitatea x ≥ 3 ) şi atribuim lui E valoarea expresiei x^2-4x +5
-dacă cele două valori sunt egale, atunci scrie mesajul "Eroare " ";
19
- în caz contrar:
dacă a este mai mare ca b, atunci trebuie afişat câtul împărțirii lui a la b, dar
– dacă b este diferit de 0, atunci scrie pe ecran câtul şi restul împărțirii lui
dacă a este mai mic ca b, atunci trebuie afişat câtul împărțirii lui a la b, şi
– dacă a este diferit de 0, atunci scrie pe ecran câtul şi restul împărțirii lui
20
Nu în ultimul rând trebuie remarcat că în loc de "dacă b>a" puteam să scriem pur şi
simplu "altfel". De ce ? Cazul contrar lui "a>b" este "a<=b", dar situația "a==b" a
fost tratată separat mai sus, deci rămâne doar "a<b", adică exact ceea ce testăm în
respectiva linie "dacă".
Trei numere pot fi laturile unui triunghi, dacă sunt pozitive şi suma a oricare două
dintre ele este mai mare decât al treilea. Exemplu: Numerele a=4, b=4 şi c=7 sunt
laturile unui triunghi isoscel, iar valorile a=2, b=3 şi c=9 nu pot fi laturile unui
triunghi (din cauză că 2+3<9).
21
În cazul în care această condiție este adevărată, printr-o altă structură de
- dacă triunghiul are perechi de laturi egale, adică (a==b ŞI a==c), atunci
relației de egalitate);
• dacă două laturi sunt egale, (a==b SAU a==c SAU b==c), atunci
este isoscel;
6. Se citesc doua numere natural a si b (a<b). sa se afle cate numere se afla între
cele doua numere date, a si b.
Citeste a
Citeste b
s<- b-(a-1)
Scrie s
22
7.Se citeste valoarea laturii unui patrat. Sa se determine aria și perimetrul
pătratului.
Citeste a
s<- a*a
p<- 4*a
Citeste a
Citeste b
s <- a*b
p <- 2*(a+b)
Scrie “ Perimetrul
dreptunghiului”, p
Citeste a
Citeste b
c <- a
a <- b
23
b <- c
Scrie a
Scrie b
Citeste s
h <- s /3600
s <- s % 3600
m <-s /60
s <- s % 60
Scrie h
Scrie m
Scrie s
11.Se citesc două numere naturale. Să se determine suma ultimelor lor două cifre.
Citeste a
Citeste b
sa <- a mod 10 + za
24
sb <- b mod 10 + zb
s <- sa+sb
Scrie s
minute, secunde.
Citeste h1
Citeste m1
Citeste s1
Citeste h2
Citeste m2
Citeste s2
s <- h1*3699+m1*3600+s1
s <-s+ h2*3699+m2*3600+s2
m <-s div 60
s <- s mod 60
Scrie h
25
Scrie m
Scrie s
13.Se citeşte un număr natural format din trei cifre. Să se determine produsul
cifrelor lui. Exemplu: 512 => p=5*1*2 =10
Citeste a
p <- sa*za*(a%10)
Scrie p
Citeste n
E1 < n*(n+1)/2
E2 <- n*n
E3 < n*(n+1)
Scrie E1
Scrie E2
Scrie E3
26
15.Se citesc două numere naturale diferite de zero, a şi b. Să se determine valoarea
lui x din ecuaţia a*x-b=0.
Citeste a
Citeste b
x <- b/a
Scrie “ x” , x
Citeste x
u < x mod 10
Scrie suma
27
17.Se dă un număr natural de 8 cifre. Calculați produsul cifrelor aflate pe poziții
impare în numărul dat.
Citeste a
ua < a mod 10
s <- ua+za+sa+ma
Scrie s
18.Se dau trei variabile întregi a, b, c ale căror valori se citesc de la tastatură. Se
cere să se permute circular spre stânga valorile acestor
variabile și apoi să se afișeze. (ex. a=1, b=2, c=8 => a=2, b=8, c=1)
Citeste a
Citeste b
Citeste c
x <- a
a <- b
b <- c
c <- x
Scrie a
Scrie b
Scrie c
28
19.Factorialul unui numar n n!=1*2*3*...*n folosind structura repetitiva
conditionata anterior.
start
citeste n
p=1
i=1
{p=p*i
i=i+1}
scrie p
sfarsit
start
citeste n
p=1
i=1
repeta
{p=p*i
i=i+1}
scrie p
sfarsit
29
start
citeste n
ma=0
pentru i=1,n
citeste x
ma=ma+x
ma=ma/n
scrie ma
stop
22.Sa se verifice daca un numar n diferit de 0 sau 1 este prim sau nu.
prim=0
altfel
sfarsit
30
start
citeste a,b
deimp=a
imp=b
deimp=imp
imp=r
stop
Un numar este perfect daca este egal cu suma divizorilor sai, inclusiv 1, dar fara el
insusi.
31
start
citeste n
s=0
pentru d=1,n/2
s=s+d
sfarsit
25. Sa se afle cifra maxima a unui număr (cea mai mare cifra a unui număr).
c=n mod 10
scrie max
Sfarsit
Bibliografie:
https://www.modinfo.ro/bac.php
https://www.pbinfo.ro/articole/5547/informatica-clasa-
a-ix-a
32
https://pseudocod1.weebly.com/exercitii.html
33