Sunteți pe pagina 1din 3

PCLP.

Laborator 2 (la Cursul 1)


Limbaje de programare. Algoritmi
NOȚIUNI TEORETICE
Un algoritm este un set finit de operaţii de prelucrare care transformă un set de date de intrare într-un set de date
de ieşire.

DATE DE INTRARE DATE DE IEŞIRE


PRELUCRĂRI

ALGORITM

În descrierea algoritmilor se folosesc mai multe limbaje de descriere, cum ar fi:


 schema logică;
 limbajul pseudocod.
Limbajul pseudocod este un limbaj folosit în scopul proiectării algoritmilor menit să ajute programatorul să se
concentreze mai mult pe esenţa prelucrărilor şi mai puţin pe sintaxa particulară a unui anumit limbaj de
programare. În general, un algoritm scris în pseudocod are patru secțiuni, nu totdeauna strict delimitate şi nu
totdeauna prezente toate:
I. Secţiunea de declarații, este situată la începutul algoritmului şi are rol în precizarea variabilelor/constantelor , a
tipurilor de date și a funcțiilor apelate în algoritm.
II. Secţiunea precizării datelor de intrare care intră în calculele pe care le realizează codul.
III. Secţiunea de calcule, în care datele de intrare sunt prelucrate în scopul obţinerii datelor de ieşire, a
rezultatelor algoritmului.
IV. Secţiunea afişării datelor de ieşire.

APLICAŢII REZOLVATE
1. Structura liniară
1. Se citesc două numere întregi a şi b să se interschimbe valorile lor folosind „regula paharelor”.
Exemplu: a = 5, b = -10 => a = -10, b = 5.
START
Schema algoritmului este:
a, b x <- a a, b
a <- b
b <- x CITEŞTE
a, b

x <- a

a <- b
Schema logică:

Algoritmul în pseudocod: b <- x

I. întreg a, b, x
II. citeşte a, b SCRIE
III. x <- a a, b
a <- b
b <- x
IV. scrie a, b STOP

1
2. Structura de decizie
2. Se citesc două numere întregi a şi b să se calculeze cea mai mare valoare dintre a şi b.

Exemplu: a = 5, b = -10 => max = 5. START

Schema algoritmului este:


a, b dacă a > b max CITEŞTE
atunci max <- a a, b
altfel max <- b

NU DA
max <- b a > b ? max <- a

Algoritmul în pseudocod:

I. întreg a, b, max SCRIE


max
II. citeşte a, b
III. dacă a > b atunci max <- a
altfel max <- b
sfârşit dacă STOP
IV. scrie max
Schema logică

3. Structura ciclică
3.1. Structura ciclică cu număr cunoscut de paşi
3. Se citeşte un număr natural n>1. Să se calculeze şi să se afişeze suma numerelor de la 1 la n.
Exemplu: n = 5 => suma = 1 + 2 + 3 + 4 + 5 = 15. START

Schema algoritmului este:

n suma CITEŞTE
suma = 1 + 2 + … + n n

suma <- 0
Algoritmul în pseudocod:
i <- 1
I. natural n, i, suma
II. citeşte n
III. suma <- 0 i <- i + 1
pentru i de la 1 până la n cu pasul 1 execută
suma <- suma + i DA
sfârşit pentru i <= n ? suma <- suma + i
IV. scrie suma

Schema logică: NU

SCRIE
suma

STOP

2
3.2. Structura ciclică cu număr necunoscut de paşi

3.2.1. Structura ciclică cu număr necunoscut de paşi condiţionată anterior

4. Se citeşte un număr natural n. Să se calculeze şi să se afişeze suma cifrelor sale.

Exemplu: n = 387 => suma = 18.

Algoritmul în pseudocod:

I. natural n, c, suma
II. citeşte n
III. suma <- 0
cât timp n > 0 execută
c <- n % 10
suma <- suma + c
n <- n / 10
sfârşit cât timp
IV. scrie suma

3.2.2. Structura ciclică cu număr necunoscut de paşi condiţionată posterior


5. Se citeşte un număr natural n. Să se calculeze şi să se afişeze suma cifrelor sale.
Exemplu: n = 387 => suma = 18.
Algoritmul în pseudocod:
I. natural n, c, suma
II. citeşte n
III. suma <- 0
execută
c <- n % 10
suma <- suma + c
n <- n / 10
cât timp n > 0
IV. scrie suma

APLICAŢII PROPUSE
1. Completați rezolvarea de la problemele 4 și 5 cu schema algoritmului și schema logică.
Folosind reprezentarea algoritmilor în pseudocod şi schemă logică să se rezolve următoarele aplicaţii:
2. Se citeşte un număr natural n. Să se calculeze şi să se afişeze factorialul său n!=1*2*3*...*n, folosind
structura ciclică cu număr cunoscut de pași. Exemplu: n = 3 => factorial = 6.
3. Se citeşte un număr natural n. Să se calculeze şi să se afişeze factorialul său n!=1*2*3*...*n, folosind
structura ciclică condiționată anterior. Exemplu: n = 4 => factorial = 24.
4. Se citeşte un număr natural n. Să se calculeze şi să se afişeze factorialul său n!=1*2*3*...*n, folosind
structura ciclică condiţionată posterior. Exemplu: n = 3 => factorial = 6.
5. Se citeşte un număr natural n şi n numere x. Să se calculeze media aritmetică a celor n numere.
Exemplu: n = 3, x = 9, 25, 4 => media = 12.67.
6. Să se verifice dacă un număr n diferit de 0 sau 1 este prim sau nu. Indicații: Un număr este prim dacă nu are
divizori decât pe 1 şi pe el însuşi. Un număr d este divizor pentru n dacă restul împărţirii lui n la d este 0.
7. Să se afişeze produsul cifrelor unui număr n. Exemplu: n = 452 => produs = 40 (4*5*2).
8. Să se spună dacă un număr n este perfect. Un număr este perfect dacă este egal cu suma divizorilor săi,
inclusiv 1, dar fără el însuşi. Exemplu: 6 (1 + 2 + 3) şi 28 (1 + 2 + 4 + 7 + 14) sunt numere perfecte.
9. Să se afle cea mai mare cifră a unui număr n. Exemplu: n = 452 => cif_max = 5.
3

S-ar putea să vă placă și