Sunteți pe pagina 1din 17

Ministerul Educaţiei, Culturii și Cercetării al Republicii

Moldova

Universitatea Tehnică a Moldovei


Departamentul Tehnologia Informatiei

RAPORT

Lucrarea de laborator nr. 4 la Programarea Calculatoarelor

Chişinău – 20XX
LUCRAREA DE LABORATOR Nr. 4
Tema: Tehnicile prelucrării tablourilor bidimensionale
Scopul lucrării: însuşirea tehnicilor de algoritmizare şi programare
cu subprograme în prelucrarea structurilor complexe în TP şi C.
Obiectivele temei:
1. Aprofundarea cunoştinţelor în limbajul şi mediul TurboC şi
perfecţionarea tehnicii de programare în prelucrarea structurilor
complexe, analizând soluţiile stereotipe şi cele eficiente de
introducere, afişare şi rearanjări ale tablourilor bidimensionale etc.
2. Însuşirea tehnicilor eficiente de parcurgere, căutare, schimbare
şi ordonare a matricilor şi calculul conform cunoştinţelor obţinute
din matematică şi în baza ciclurilor încorporate într-un program
complex.
Subiectele temei şi ordinea executării:
1. Studierea principiilor prelucrării (descrierii, declarării, formării,
etc.) tablourilor bidimensionale.
2. Analiza Testelor: intrebări – răspuns cu afisarea rezultatelor.
3. Însuşirea tehnicilor moderne de elaborare a programelor
complexe în C în baza problemelor din anexă.
4. Elaborarea algoritmilor, programelor şi testelor de depanare a
programului prin diverse moduri în mediul integrat C.

Teste: intrebări – răspuns :


Ex 4
#include <stdio.h>
void main() {
int i,j,m,n,p,a[10][10],b[6]; m=2; n=3; p=6; i=0;
while(i<p) b[i++]=i;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
a[i][j]=b[3*i+j];
return 0;
}
c)
Ex 5
#include <stdio.h>
void main() {
int nr, n, i, j, x, b[20];
int a[3][3]={{7,1,7},{-7,7,0}, {2,4,11}}; n=3; x=7;
for(i=0;i<n;i++) { nr=0;
for(j=0;j<n;j++)
if(a[i][j]==x) nr++; b[i]=nr; }
return 0;
}
e)
Ex 6
#include <stdio.h>
void main() {
int x=1;
for(i=1;i<=n-1;i++)
for(j=0;j<=i-1;j++) if(a[i][j]!=0) x=0;
return 0;
}
b)
Ex 7
#include <stdio.h>
void main() {
int a[10],m[10],i,x;
x=a;
for(i=0;i<m;i++) if (x<a[i][m-i] x=a[i][m-i]);
return 0;
}
d)
Ex 8
#include <stdio.h>
void main() {
int x=a[0][0];
for(i=0;i<m;i++) { if(x<a[i][i]) x=a[i][i];
if(x<a[i][m-i-1]) x=a[i][m-i-1];
return 0;
}
a)
Ex 9
#include <stdio.h>
void main() {
int s=1,i,m,j,a;
for(i=0;i<m;i++) for(j=0;j<i;j++) s*=a[i][j];
return 0;
}
b)
Ex 10
#include <stdio.h>
void main() {
int i=0; m=a[0][0];
while(i<n) { for(j=0;j<n;j++) if(m<a[i][j]) m=a[i][j]; i++; }
return 0;
}
a)
Ex 11
#include <stdio.h>
void main() {
for(i=0;i<n;i++) v0[n-i-1]=v1[i];
return 0;
}
b)
Ex 12
#include <stdio.h>
void main() {
int p=1;
for(i=0;i<n;i++) p=p*m[i][i]-2;
return 0;
}
c)
Ex 13
#include <stdio.h>
void main() {
int i,j; int ctr=0;
int tab[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++) { tab[i][j]:=ctr; ++ctr; }
return 0;
}
c)
Rezolvare :
Ex 1
#include<stdio.h>
main()
{
int i,size,pos=0,neg=0;
float avg;
printf("Introduceti marimea matricei : ");
scanf("%d",&size);
int array[size];
printf("\nIntroduceti numerele pentru calcul : \n");
for(i=0;i<size;i++)
{
scanf("%d",&array[i]);
}
for(i=0;i<size;i++)
{
if(array[i]>0)
pos+=array[i];
if(array[i]<0)
neg+=array[i];
}
printf("Suma numerelor pozitive este : %d\n",pos);
return 0;
}
Ex 2
#include <stdio.h>

int main()
{
int array[100];
int size, i;

printf("Introduceti marimea matricei : ");


scanf("%d", &size);

printf("Introduceti elementele matricei : \n");


for(i=0; i<size; i++)
{
scanf("%d", &array[i]);
}
printf("\nMatricea inversa este : ");
for(i = size-1; i>=0; i--)
{
printf("%d\t", array[i]);
}

return 0;
}

Ex 3
#include<stdio.h>
int main()
{
int m, n, c, d, matrix[10][10], transpose[10][10];

printf("Introduceti nr. de randuri si coloane ale matricei : \n");


scanf("%d%d", &m, &n);
printf("\nIntroduceti elementele matricei : \n");
for (c = 0; c < m; c++)
for (d = 0; d < n; d++)
scanf("%d", &matrix[c][d]);

for (c = 0; c < m; c++)


for (d = 0; d < n; d++)
transpose[d][c] = matrix[c][d];

if (m == n)
{
for (c = 0; c < m; c++)
{
for (d = 0; d < m; d++)
{
if (matrix[c][d] != transpose[c][d])
break;
}
if (d != m)
break;
}
if (c == m)
printf("\nMatricea este simetrica.\n");
else
printf("\nMatricea nu este simetrica!\n");
}
else
printf("\nMatricea nu este simetrica!\n");
return 0;
}

Ex 6
#include <stdio.h>
int main() {
int n, i;
float num[100], sum = 0.0, avg;

printf("Introduceti un numar de elemente : ");


scanf("%d", &n);

while (n > 100 || n < 1) {


printf("Numarul trebuie sa fie in intervalul pana la 100.\n");
printf("Introduceti numarul din nou : ");
scanf("%d", &n);
}
for (i = 0; i < n; ++i) {
printf("%d. Enter number: ", i + 1);
scanf("%f", &num[i]);
sum += num[i];
}
avg = sum / n;
printf("Media aritmetica este : %.2f", avg);
return 0;
}

Ex 8
#include<stdio.h>
int main()
{
int array1[10][10],i,j,m,n,sum = 0;
printf("Introduceti nr. randuri : ");
scanf("%d", &m);
printf("Introduceti nr. de coloane : ");
scanf("%d",&n);
printf("\nIntroduceti datele matricei : ");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("\nIntroduceti datele [%d][%d] : ",i,j);
scanf("%d", &array1[i][j]);
}
}
printf("\nMatricile introduse sunt : \n\n");
for (i = 0; i < m; ++i)
{
for (j = 0; j < n; ++j)
{
printf("\t%d", array1[i][j]);
}
printf("\n\n");
}
for(i=0;i<m;i++)
{
sum = sum + array1[i][m-1-i];
}
printf("\nSuma diagonalei secundare este : %d \n", sum);
return 0;
}
Ex 12
#include <stdio.h>
#include <conio.h>
void main()
{
int a[2][3],b[2][3],c[2][3],i,j;
printf("Introduceti valori pentru Matricea A : \n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("\nIntroduceti valori pentru Matricea B :\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&b[i][j]);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
printf("\nProdul Matricei A si B este : \n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%5d",c[i][j]);
printf("\n");
}
}

Ex 13
#include<stdio.h>
#include<conio.h>

int main() {
int i, j, a[10][10], sum, rows, columns;
printf("Introduceti nr. de randuri : ");
scanf("%d", &rows);
printf("\nIntroduceti nr. de coloane : ");
scanf("%d", &columns);

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


for (j = 0; j < columns; j++) {
printf("\nIntroduceti elementul [%d][%d] : ", i, j);
scanf("%d", &a[i][j]);
}
sum = 0;
for (i = 0; i < rows; i++)
for (j = 0; j < columns; j++) {
if (i < j) {
sum = sum + a[i][j];
}
}
printf("\nSuma elementelor din triunghiul superior este : %d\n",
sum);
return (0);
}
Ex 14
#include <stdio.h>
#define MAX_ROWS 3
#define MAX_COLS 3

int main()
{
int A[MAX_ROWS][MAX_COLS];
int row, col, sum = 0;
printf("Introduceti valorike matricei : %dx%d: \n", MAX_ROWS,
MAX_COLS);
for(row=0; row<MAX_ROWS; row++)
{
for(col=0; col<MAX_COLS; col++)
{
scanf("%d", &A[row][col]);
}
}
for(row=0; row<MAX_ROWS; row++)
{
for(col=0; col<MAX_COLS; col++)
{
if(col<row)
{
sum += A[row][col];
}
}
}
printf("\nSuma elementelor din triunghiul inferior al diagonalei
principale este : %d\n", sum);
return 0;
}

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