Sunteți pe pagina 1din 10

Ministerul Educaiei al RM

Universitatea Tehnic a Moldovei


Catedra SRCO

REFERAT
la disciplina "Programare"
lucrarea de laborator Nr.4
Tema: Prelucrarea masivelor bidimensionale

A efectuat st.gr.IMTC-141
A verficat lectorul superior

Chisinu 2014
Problema n1
1-Varianta X;
2-Condiia problemei:

3-Schema bloc (logic) a algoritmului:

4:Listingul programului
#include<stdio.h>
#include<math.h>
#include<conio.h>
int main(void){
int x[50][50],n,m,i,j,k=0;
printf("Introduceti valori lui n si m ");
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("x[%d][%d]",i,j);
scanf("%d",&x[i][j]);}}
printf("Masivele initiale");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("%3d",x[i][j]); }}
for(i=0;i<n;i++){
for(j=m-1;j<m;j++){
if(fmod(x[i][j],2)!=0) { k++;}}}
if(k>x[1][1]){ printf("cantitatea elementelor impare
%d>%d ",k,x[1][1]);}
else printf("x[1][1] %d > cantitatea elementelor impare %d
",x[1][1],k);
}

5:Descrierea programului :
Introducem valori masivului n si m dupa asta programal va face
comparatie cu valoarea n[1][1] cu cele impare din ultimul rind.
6:Analisa rezultatelor:

Problema n2
1-Varianta X;

2-Condiia problemei:

3-Schema bloc (logic) a algoritmului:


2

START

i=0;i<n;i++

j=0;j<n;j++
n
X[i][j]
randomize

i=0;i<n;i++

j=0;j<n;j++

i=0;i<n;i++
j=0;j<n;j++
v=0;v<n-1;v++

x[i][j]=random(25)-5

x[v][j]<x[v+1][j]

Masivul
initial

aux=x[v][j]
x[v][j]=x[v+1][j]
x[v+1][j]=aux

2
Masivul
final

i=0;i<n;i++
j=0;j<n;j++

x[i][j]

STOP

4:Listingul programului
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

void main(void){
int x[50] [50],i,j,n,v,aux;
char z;
printf("Dati valori lui n ");
scanf("%d",&n);
label:
printf("Alege o metoda de completare ");
printf("a-Automat ");
printf("m-Manual ");
z=getch();
if((z==a)(z==A)) goto automat;else
if((z==m)(z==M)) goto manual;else
goto label;
automat:
randomize();
for(i=0;i<n;i++){
for(j=0;j<n;j++){
x[i][j] = random(20)-5;}}
goto masiv;
manual:
printf("Culegeti elementele masivului
\n");

for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("x[%d][%d]= ",i,j);
scanf("%d",&x[i][j]);}}
goto masiv;
masiv:
printf("Masivul initial =\n");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d",x[i][j]);}
printf("\n");}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
for(v=0;v<n-1;v++){
aux=x[v][j];
x[v][j]= x[v+1][j];
x[v+1][j]=aux;}}}
printf("Masivul final :\n");
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d",x[i][j]);}
printf("\n");}
getch();}

5:Descrierea programului :
Programul va cere ca sa introducem valoarea masivului n, dupa asta ne
intreaba sa alegeo metoda de completar, unde sunt doua optiuni automat si
manual, dupa ce alegem din aceste optiuni programal va ordona in ordine
descrescatoare elementele

6:Analisa rezultatelor:

7:Concluzie:
In lucrarea n4 am folosit masive bidimensionale, unde trebuia sa
comparam cantitatea elementelor impare din ultimul rind cu valoarea
elementului n[1][1]. La problema n2 am aranjat in ordine
descrescatoare elementual fiecarei coloane.