Documente Academic
Documente Profesional
Documente Cultură
Moldova
RAPORT
Lucrarea de laborator nr.5
la Programarea Calculatoarelor
A efectuat:
st. gr. AI-171 S.Crușnevschi
A verificat:
dr., conf.univ. M. Kulev
Chişinău -2017
Lucrarea de laborator nr.5
Tablouri bidimensionale (matrici)
Tip nume[dim1][dim2];
unde:
Tip - poate fi unul din tipurile de bază folosit (int, float,char,...) sau un tip definit de utilizator
(articole, obiecte);
nume – numele prin care va fi referită matricea;
dim1 – numărul de linii din matrice;
dim2 – numărul de coloane din matrice.
Citirea elementelor unui tablou nu este posibilă decât prin citirea fiecărui
element. De aceea, ca şi în cazul vectorilor, operaţia de citire a matricelor impune
folosirea a două secvenţe ciclice suprapuse. Acestea corespund indicilor liniei i,
respectiv coloanei j.
Analiza datelor:
a) date de intrare:
n,m, key, keya - variabile simpe fara zecimale,W[i][j] –valoarea elementelor tabelului (de
introdus de la tastatura).
b) date de ieşire:
c,S,exit,min,max–variabile simple fara zecimale, W[i][j] –valoarea elementelor tabelului (de
afişat pe ecran).
c) date intermediare:temp,-variabile pentru parcurgerea tabloului, Y[2]-tablou pentru stocarea
datelor intermediare,
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,i,j,n,temp,key,exit=0,W;
printf("n=%i,m=%i\n",n,m);
while(1){
printf("Lucrarea de laborator nr.5 - Masive bidimensionale\n");
printf("Executat de studentul Crusnevschi Stanislav gr Ai-171\n");
printf("M E N I U L P R O G R A M U L U I\n");
printf("\n1. Prima conditie a problemei");
printf("\n2. A doua conditie a problemei");
printf("\n3. Iesire din sistem\n");
scanf("%i",&key);
switch(key)
{
case 1:{
int keya;
printf("1:Manual\n2:Random\n");
scanf("%d",&keya);
switch(keya)
{
case 1:
{
printf("Introduceti marimile matricei:\n");
scanf("%d",&n);
scanf("%d",&m);
int W[10][10];
printf("Introduceti matricea:\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d", &W[i][j]);
int min,max,
Y[2];
printf("Matricea introdusa:\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<m;j++)
printf("%d\t",W[i][j]);
}
max=W[0][0];
for(j=0;j<m;j++)
if(W[0][j]>max)
{
max=W[0][j];
Y[0]=j;
}
min=W[0][m-1];
for(i=0;i<n;i++)
if(W[i][m-1]<min)
{
min=W[i][m-1];
Y[1]=i;
}
temp=W[0][Y[0]];
W[0][Y[0]]=W[Y[1]][m-1];
W[Y[1]][m-1]=temp;
printf("\n\n\n\n");
break;
}
case 2:
{
puts("Introduceti marimile matricei:");
scanf("%d",&n);
scanf("%d",&m);
int W[10][10];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
W[i][j]=rand()%100-60;
int min,max,
Y[2];
printf("Matricea introdusa:\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<m;j++)
printf("%d\t",W[i][j]);
}
max=W[0][0];
for(j=0;j<m;j++)
if(W[0][j]>max)
{
max=W[0][j];
Y[0]=j;
}
min=W[0][m-1];
for(i=1;i<n;i++)
if(W[i][m-1]<min)
{
min=W[i][m-1];
Y[1]=i;
}
temp=W[0][Y[0]];
W[0][Y[0]]=W[Y[1]][m-1];
W[Y[1]][m-1]=temp;
printf("\n\n\n\n");
break;
}
break;
}
case 2:{
int c=0,keya,
S=0;
printf("1:Manual\n2:Random\n");
scanf("%d",&keya);
switch(keya)
{
case 1:
{
printf("Introduceti marimile matricei\n");
scanf("%d",&n);
scanf("%d",&m);
int W[10][10];
printf("Introduceti matricea:\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&W[i][j]);
printf("Matricea introdusa:\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<m;j++)
printf("%d\t",W[i][j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<m;j++)
{
if(W[i][j]<0)
{
S=S+W[i][j];
c++;
}
printf("Matricea introdusa:\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
W[i][j]=rand()%100-55;
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<m;j++)
printf("%d\t",W[i][j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<m;j++)
{
if(W[i][j]<0)
{
S=S+W[i][j];
c++;
}
}
printf("\nSuma elementelor = %i\n Nr elementelor negative = %i",S,c);
printf("\n\n\n\n");
break;
}
}
break;
}
case 3:
{return 0;}
Rezultatul obtinut:
Date de intrare Nr.2 (key,keya,n,m):
2266
Rezultatul obtinut:
Date de intrare Nr.2(key)
3
Rezultatul obtinut:
Analiza rezultatelor si concluzii:
Bibliografie: