Sunteți pe pagina 1din 15

Informatic Aplicat

Timp mediu de studiu: 2 ore


Sarcini de nvare: Prin parcurgerea acestei uniti de studiu, studentul va fi capabil:
s defineasc noiunea de masiv de date
s identifice coordonate/valori ntr-un masiv de date
s foloseasca algoritmi pentru prelucrarea masivelor de date

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 1


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Vom considera urmtorii algoritmi exprimai n pseudo-cod (varianta n scheme logice a fost
discutat n timpul laboratoarelor):
1. S se realizeze o schem logic care determin maximul a dou numere citite de la
tastatura.
Citeste a
Citeste b
Afiseaza b
Afiseaza a
2. Extindei programul anterior astfel nct s lucreze cu trei numere.
Citeste a
Citeste b
Citeste c
Afiseaza c
Afiseaza b
Afiseaza a
n mod similar se pot rezolva i cazul pentru 4 numere. Dei este relativ simplu, acest exemplu
evidenieaz o problem major: algoritmul trebuie modificat/rescris n funcie de numrul
datelor de intrare. Variabilele a, b, c au acelai rol, dar sunt denumite diferit i nu au o
caracteristic comun. Calculatorul nu poate s deduc din primele instruciuni citeste cum
vor arta urmtoarele instruciuni citeste. Deci, proiectantul algoritmului trebuie s includ in
mod explicit aceste instruciuni.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 2


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Masivele de date sunt soluia pentru problema anterioar. Un masiv de date este o variabil
care conine mai multe valori de acelai tip. Practic, masivele de date ne permit s grupm mai
multe date (care au un rol comun) sub un sigur nume. Notiunea de masiv de date mai este
intalnita si sub alte denumiri (vector, matrice, sir de valori, tablou de date etc).

Colecia de date din masiv este identificat prin numele acestuia, dar fiecare informaie n parte
este identificat prin numele masivului i poziia ei n masiv. De exemplu, ca s memorm
notele studenilor dintr-o clas putem s folosim masivul de date note. Nota primului student din
grup se gsete pe prima poziie din masiv, deci scriem note[1]. Poziia din masiv se numete
i index.

Folosind masive de date i instruciuni de buclare, proiectantul algoritmului poate s-i ofere
executantului un mini-algoritm de prelucrare a datelor. De exemplu, n algoritmul cu citirea si
afisarea numerelor, n loc s scriem instruciuni citeste a, b, c, ... pentru fiecare variabila in
parte, vom scrie o singur instruciune general valabile pentru toate numerele (citeste X[i]).
Deci, masivele de date mpreun cu instruciunile de buclare ofer algoritmului scalabilitate
relativ la dimensiunea datelor de intrare.

Raptor permite folosirea masivelor de date unidimensionale (denumite vector) i bidimensionale


(denumire matrice) cu ajutorul operatorul de indexare [].

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 3


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Trebuie s identificai valorile din vectorul X indicate de expresiile menionate:

Folosind poziiile menionate, gsim urmtoarele valori:


X[3] = 5
X[4] = 3
X[1] = 10

Folosind valorile menionate, gsim urmtoarele poziii:


X[3] = 5
X[5] = 13
X[2] = 9

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 4


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

In continuare vor fi prezentati algoritmi specifici pentru prelucrarea datelor din vectori. La modul
general, toti acesti algoritmi realizeaza parcurgerea vectorului si procesarea operatiilor din el.
Deci ei se incadreaza in urmatorul tipar (V este vectorul si N este lungimea lui):
pentru X = 1 la N cu pasul 1
executa o operatie cu elementul V[X]
sfarsit

Cu mici modificari, acest model poate fi transformat astfel incat sa citeasca, sa afiseze, sa
copieze etc datele dintr-un vector oarecare.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 5


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Pe acest slide, algoritmul general de parcurgere si prelucrare a unui vector este particularizat
astfel incat sa efectueze operatiile de citire si afisare a unui vector.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 6


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Acesta este exemplul folosit la inceputul acestei unitati de studiu. Folosind masive de date,
putem sa construim un algoritm care permite citirea si afiseaza unui sir de numere de lungime
oarecare, chiar si atunci cand lungimea lui nu este cunoscuta in momentul scrierii algoritmului.

date de intrare: N, V[1...N]


date de iesire: V[N....1]

citeste N
pentru X = 1 la N cu pasul 1
citeste V[X]
sfarsit
pentru X= N la 1 cu pasul -1
afiseaza V[X]
sfarsit

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 7


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Pe acest slide, algoritmul general de parcurgere si prelucrare a unui vector este particularizat
astfel incat sa efectueze operatiile de calcul cu vectori si cautare intr-un vector a elementelor
care indeplinesc anumite conditii.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 8


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

1. date de intrare: N, V[1...N]


date de iesire: M = maximul valorilor V[1...N]

citeste N
citeste V[1...N] se inlocuieste cu algoritmul de la exercitiile anterioare
calculeaza M = V[1]
pentru X = 1 la N cu pasul 1
daca M<V[X] atunci
calculeaza M=V[X]
sfarsit
sfarsit
afiseaza Maximul este M

2. date de intrare: N, V[1...N]


date de iesire: V[X1...XN] = valori din V mai mari decat media

citeste N
citeste V[1...N] se inlocuieste cu algoritmul de la exercitiile anterioare
calculeaza S = 0
pentru X = 1 la N cu pasul 1
calculeaza S = S+V[X]
sfarsit
calculeaza M = S/N
pentru X = 1 la N cu pasul 1
daca V[X]>M atunci
afiseaza V[X]
sfarsit
sfarsit

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 9


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Trebuie s identificai valorile din matricea X indicate de expresiile menionate:

Folosind poziiile menionate, gsim urmtoarele valori:


X[2,3] = 26
X[4,1] = 8
X[1,5] = 13
X[4,4] = 2

Folosind valorile menionate, gsim urmtoarele poziii:


X[4,5] = 1
X[4,3] = 7
X[3,4] = 15
X[1,4] = 3

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 12


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

In continuare vor fi prezentati algoritmi specifici pentru prelucrarea datelor din matrici. Ei sunt o
extensie in spatiul 2D a cazurilor de la vectori. La modul general, toti acesti algoritmi realizeaza
parcurgerea matricii si procesarea operatiilor din el. Deci ei se incadreaza in urmatorul tipar (M
este matricea, L este numarul de linii din matricea M, C este numarul de linii din matricea M):
pentru X = 1 la L cu pasul 1
pentru Y = 1 la C cu pasul 1
executa o operatie cu elementul M[X,Y]
sfarsit
sfarsit

Cu mici modificari, acest model poate fi transformat astfel incat sa citeasca, sa afiseze, sa
copieze etc datele dintr-o matrice oarecare.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 13


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Pe acest slide, algoritmul general de parcurgere si prelucrare a unei matrice este particularizat
astfel incat sa efectueze operatiile de citire si afisare a unei matrice.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 14


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

date de intrare: L, C, M[1...L, 1...C]


date de iesire: MT[1...C, 1...L] = transpusa lui M

citeste L, C
pentru X=1 la L cu pasul 1
pentru Y = 1 la C cu pasul 1
citeste M[X,Y]
sfarsit
sfarsit
pentru Y = 1 la C cu pasul 1
pentru X = 1 la L cu pasul 1
afiseaza M[X,Y] (separate prin spatii)
sfarsit
afiseaza (si treci pe o linie noua)
sfarsit

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 15


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

Pe acest slide, algoritmul general de parcurgere si prelucrare a unei matrici este particularizat
astfel incat sa efectueze operatii de calcul cu matrici si cautare intr-o matrice a elementelor care
indeplinesc anumite conditii.

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 16


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.
Informatic Aplicat

1. date de intrare: L, C, M[1...L, 1...C]


date de iesire: M[X,Y] valori negative din M

citeste L, C
citeste M[1...L, 1...C] se inlocuieste cu algoritmul din exemplul anterior
pentru X = 1 la L cu pasul 1
pentru Y = 1 la C cu pasul 1
daca M[X,Y]!=0 atunci
afiseaza M[X,Y]
sfarsit
sfarsit
sfarsit

2. date de intrare: L, C, M[1...L, 1...C]


date de iesire: S suma valorilor din M

citeste L, C
citeste M[1...L, 1...C] se inlocuieste cu algoritmul din exemplul anterior
calculeaza S = 0
pentru X = 1 la L cu pasul 1
pentru Y = 1 la C cu pasul 1
calculeaza S=S+M[X,Y]
sfarsit
sfarsit
afiseaza Suma este S

1 noiembrie 2017 Conf. univ. dr. Andrei Butu 17


Academia Naval "Mircea cel Btrn" (ANMB). Orice form de copiere, stocare, modificare
i/sau transmitere a acestui material fr acordul prealabil i scris al ANMB este strict interzis.

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