Sunteți pe pagina 1din 7

Ministerul Educației și Cercetării al Republicii

Moldova
Universitatea Tehnică a Moldovei

Departamentul Informatică și Ingineria


Sistemelor

RAPORT

Lucrarea de laborator nr. 3


la Programarea Calculatoarelor

A efectuat: Surdu Nichita


st. gr. TI-237
A verificat: V. Toncu
Asis. Univ.

Chişinău – 2023
Lucrarea de laborator nr.3
Теmа: Prelucrarea tablourilor bidimensionale (matricelor) în limbajul C.
Scopul lucrării: Studierea posibilităților și mijloacelor limbajului C pentru
programarea algoritmilor de prelucrare a tablourilor bidimensionale.

Sarcina (cоnform variantelor): Să se determine suma elementelor


negative din coloanele impare și produsul elementelor pozitive mai mici ca media
aritmetică a elementelor situate pe diagonala principală.

Noţiuni din teorie şi metodele folosite:


Matrice
Matricea este o colecţie omogenă şi bidimensională de elemente. Acestea pot fi
accesate prin intermediul a doi indici, numerotaţi, ca şi în cazul vectorilor,
începand de la 0. Declaraţia unei matrice este de forma:

De exemplu, avem:

Numărul de elemente ale unei matrice va fi dim_1*dim_2, şi semnificaţia fiecărei


dimensiuni este o chestiune ce ţine de logica programului. În matematică, prima
dimensiune poate să însemne linia şi a doua coloana pentru fiecare element, însa
acest lucru nu este obligatoriu. Este necesar totuşi, pentru funcţionarea corectă a
programului, să se respecte semnificaţiile alese pe întreg parcursul codului sursă.

Tablouri multidimensionale
Vectorii şi matricele se pot extrapola la noţiunea generală de tablou cu mai multe
dimensiuni, care se declară în modul următor:

De exemplu:
Deşi, în cazul a mai mult de 3 dimensiuni, tablourile pot să nu
mai aibă sens concret sau fizic, acestea pot fi deosebit de utile în multe situaţii. În
acest laborator ne vom rezuma totuşi la tablouri bidimensionale.
Schema bloc a algoritmului de soluționare a problemei propuse:
\
Codul programului in limbajul C:
#include <stdio.h>

#include <stdlib.h>

int main ()

int n;

int i,j;

printf("introduceti dimensiunea matricei n: ");

scanf("%d" , &n);

int tablou[n][n];

for (i=0; i<n; i++) {

for (j=0; j<n; j++) {

printf("\n Introduceti elementul tablou[%d][%d]: " ,i, j);

scanf("%d" , &tablou[i][j]);

int SumaN=0;

int ProdusP=1;

int countP=0;

int mediaDiag=0;

for(i=0; i<n; i++);

mediaDiag += tablou[i][j];

mediaDiag /=n;

for(i=0; i<n; i++) {

for(j=0; j<n; j++) {

if(j%2==1 && tablou[i][j] < 0)

SumaN+= tablou[i][j];

if(tablou[i][j] > 0 && tablou [i][j] < mediaDiag)


{

ProdusP *= tablou[i][j];

countP++;

printf("Suma elementelor negative din coloanele impare: %d\n",SumaN);

if (countP > 0)

printf("Produsul elementelor pozitive mai mici decat media diagonalei principale: %d\n", ProdusP);

else

printf("Nu exista elemente pozitive mai mici decat media diagonalei principale: \n");

return 0;

Rezultatele testarii si functionarii programului:


Concluzie:
1. Au fost obţinute deprinderi de elaborare, compilare, rulare și testare a unui program
prelucrand tablouri bidimensionale (matrice) în limbajul de programare C.
2. Când lucrăm cu tablouri multidimensionale, este convenabil să utilizăm bucle imbricate
for. Cu ajutorul lor, putem efectua o acțiune specificată cu fiecare dintre elementele
matricei, iterând peste toate valorile indicilor.
3. Cunoaşterea reprezentării în memorie a tablourilor ne ajută să înţelegem mai bine
cum se lucrează cu aceste tipuri de date şi să evităm atât erorile comune, cât şi pe
cele mai subtile. Aşa cum se ştie, fiecare variabilă are asociata o anumită adresă în
memorie şi ocupă o anumită lungime, măsurată în octeţi.

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