Documente Academic
Documente Profesional
Documente Cultură
Laboratorul 6: Tablouri
Dan Novischi
19 martie 2017
1. Introducere
Scopul acestui laborator este lucrul cu colectia de date tablou (sau s, iruri de date) a limba-
jului C.
Sintaxa generica pentru definirea/int, ializarea array-urilor este după cum urmează:
2. Exemplu de program
1 /* Inversare unui sir de numere */
2 #include <stdio.h>
3 int main () {
4 int x[50], y[50], n,i,j ;
5 /* citire date */
6 printf ("n = "); scanf ("%d", &n);
7
15 /* afisare vector y */
16 for (i = 0;i < n; i++) printf ("%d ",y[i]);
17 return 0;
18 }
1
3. Cerint, e
Cerint, a 1 (2p) Realizat, i un program care cites, te un numar de n note (ı̂ntre 1 si 10) s, i
afis, ează procentul notelor sub 5.
Cerint, a 2 (1p) Să se scrie un program care cites, te n numere reale ı̂ntr-un array 1D s, i
apoi calculează media elementelor din acest array pe care o afiseaza.
c) Realizat, i functia mean(...) care returneaza media elementelor din array-ul 1D.
Cerint, a 3 (2p) Să se scrie un program care cites, te un s, ir de numere s, i verifică dacă
acest s, ir este ordonat crescător sau ordonat descrescător sau nu este ordonat sau este un s, ir
constant.
c) Realizat, i functia getOrder(...) care returneaza -1 dacă sirul este ordonat descresca-
tor, 0 dacă sirul este constant, 1 daca sirul este ordonat crescator si 2 daca s, irul este
neordonat.
d) Afis, at, i rezultatul aplicării funct, iei asupra sirului introdus de la tastatură.
Cerint, a 4 (2p) Să se scrie un program care determină elementul cu valoare maximă
absolută dintr-o matrice cu n linii s, i m coloane.
2
Cerint, a 5 (3p) Să se scrie un program care calculează norma unei matrici.
a) Declarati variabilele aferente.
b) Citit, i datele de la tastura.
c) Impementat, i o funct, ie absSum care determina suma de valori absoute dintr-un array
1D.
d) Utilizati functia de la punctul absSum pentru a calucula sumele pentru fiecare linie
din matrice, care le veti salva intr-un vector.
e) Norma matricii este data de maximul dintre sumele calculate la punctul d. Maximul
se va determina cu ajutorul unei funct, ii, iar rezultatul se va afis, a pe ecran.
Cerint, a 6 - Bonus1 Să se scrie un program care cites, te notele obt, inute de n student, i
(n <= 100) la m discipline (m <= 10) ı̂ntr-o matrice, apoi crează un vector cu mediile
obt, inute de fiecare student s, i un vector cu mediile la fiecare disciplină s, i afisează cei doi
vectori (medii pe linii s, i pe coloane).
Cerint, a 7 - Bonus2 Să se scrie un program pentru rezolvarea unui sistem triunghiular
inferior de n ecuatii cu n necunoscute. Se vor citi numai coeficient, ii nenuli, deci de sub
diagonala principală s, i de pe aceasta diagonală. Indicatie:
Cerint, a 8 - Bonus3 Să se scrie un program pentru rezolvarea unui sistem triunghiular
superior de n ecuat, ii cu n necunoscute. Se vor citi numai coeficient, ii nenuli, de pe diagonala
principală s, i deasupra ei. Indicat, ie:
1 Sistemul initial:
2 a[1,1]*x[1] + a[1,2]*x[2] + ... + a[n,n]*x[n] = b[1]
3 ...
4 ...
5 a[n-1,n-1]*x[n-1] + a[n-1,n]*x[n] = b[n-1]
6 a[n,n]*x[n] = b[n]
7 Relatii de calcul:
8 x[n] = b[n]/a[n][n]
9 x[i] = (b[i] - Suma (a[i][j]*x[j]) ) /a[i][i] (i=n-1,1)