Download - Lucrarea Nr. 4 C
Ministerul Educaţiei al Republicii MoldovaUniversitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică şi Microelectronică
Lucrarea de laborator nr. 4La disciplina: Programarea calculatoarelor
Tema: Prelucrarea tablourilor bidimensionale in C.
A efectuat: Dobrovolschi Victor, gr. TI-134 A verificat: Luchianov Ludmila,Doc.Conf.Univ.
Chişinău 2013
Problema 1: De calculate suma si cantitatea elementelor pare de pe prima si ultima coloana.
2
Listingul programului:#include<stdio.h>#include<conio.h>#include<math.h>void main(){clrscr();int y[20][20],i,j,s,k,n,m;printf("\n Culegeti cantitatea de linii n ale masivului y\n");scanf("%d",&n);printf("\n Culegeti cantitatea de coloane m ale masivului y\n");scanf("%d",&m);printf("\n Culegeti masivul y\n\n");for(i=0;i<n;i++){for(j=0;j<m;j++){printf("y[%d][%d]=",i,j);scanf("%d",&y[i][j]);}}s=0; k=0;printf("\n Masivul initial:\n");for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%3d",y[i][j]);}printf("\n");}for(i=0;i<n;i++){if(fmod(y[i][0],2)==0){k++;s+=y[i][0];}if(fmod(y[i][m-1],2)==0){k++;s+=y[i][m-1];}}printf("\n Suma elementelor pare din prima si ultima coloana=%d",s);printf("\n Cantitatea elementelor pare din prima si ultima coloana =%d",k);getch();}
3
START
y[20][20],i,j,m,n,s,k
n
Culegeti nr.de coloane
Culegeti nr.de linii
m
i=0; i<n; i++
j=0; j<n; j++
y[i][j]
s=0;k=0
i=0; i<n; i++
j=0; j<n; j++
Fmod…
K++
i,j
Masivul initial..
y[i][j]
S+=y…
Suma
Cantitatea
END
4
Rezultatele finale:
5
Problema 2: De schimbat cu locul elementele ariei II cu elementele ariei III.
6
Listingul programului:#include<stdlib.h>#include <stdio.h>#include<conio.h>void main(){int x[20][20],n,m,i,j,h,g,min;char z; clrscr();printf("\nCulegeti marimea masivului");scanf("%d",&n);label:clrscr();printf("\n\nAlegeti metoda de completare a masivului a/m:\n");printf("\n a-Automat\n");printf("\n m-Manual\n");z=getch();if((z=='a')||(z=='A')) goto automat; elseif((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(19)-9; }}goto masiv;manual:printf("\n Culegeti masivul[%d][%d]\n",n,n);for(i=0;i<n;i++){for(j=0;j<n;j++){printf("x[%d][%d]= ",i,j);scanf("%d",&x[i][j]); }}masiv:clrscr();printf("\Masivul x[%d][%d] initial:\n\n",n,n);for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%3d",x[i][j]); }printf("\n\n"); }m=n/2; printf("Cadranul 3:\n\n"); for(i=(n-m);i<n;i++){for(j=0;j<m;j++){printf("%3d ",x[i][j]);//cadranul 3}printf("\n\n");}printf("Cadranul 2:\n\n");for(i=0;i<m;i++){for(j=(n-m);j<n;j++){printf("%3d ",x[i][j]);//cadranul 2}
7
printf("\n\n");}h=0;//schimbam cu locul cadranul 3 principalprintf("Schimbarea cu locul elementele ariei 2 cu elementele ariei 3\n\n"); for(i=(n-m);i<n;i++){ g=n-m;for(j=0;j<m;j++){min=0;min = x[i][j];x[i][j]=x[h][g];x[h][g]=min;g++;}h++;} //ne uitam la masivfor(i=0;i<n;i++){for(j=0;j<n;j++){printf("%3d",x[i][j]); }printf("\n\n");}getch();
}
8
START
clrscr();
n
Alegeti modul de…
i=0; i<n; i++
j=0; j<n; j++
i=0; i<n; i++
j=0; j<n; j++
Masivul…
x[i][j]
Z=a
automat
randomize
Z=m
manual
Culegeti mas
i=0; i<n; i++
j=0; j<n; j++
i=0; i<n; i++
j=0; j<n; j++
x[i][j]
i=n-m,n
j=0; j<m; j++
Min=0
H++
x[i][j]
x[i][j]
G++
9
i=0; i<n; i++
j=0; j<m; j++
x[i][j]
END
10
Rezultatele finale:
11