Extras din laborator
Utilizarea matricelor. Citirea şi afişarea matricelor
1.1 Definirea matricelor
O matrice este o structură de date compusă dintr-un număr finit de componente, fiecare componentă fiind de acelaşi tip: întreg, real, caracter, şir de caractere etc.
Utilizarea unei matrice presupune parcurgerea următorilor paşi:
- definirea matricei, moment în care se precizează tipul indicelui, tipul elementelor şi dimensiunea maximă admisă a matricei;
- iniţializarea sau citirea matricei;
- operaţiile efectuate asupra matricei;
- afişarea matricei.
1.1.1 Matrice în C
Pentru a defini o matrice, în limbajul C, se foloseşte o construcţie de forma:
type nume_tip = array [tip_ordinal] of tip_elemente;
unde:
nume_tip denumirea unui tip de date, creat de utilizator, care defineşte matricele de formatul respectiv;
tip_ordinal cel mai adesea, un interval care indică limita minimă şi maximă a indicelui elementelor matricei (de aici rezultă şi dimensiunea matricei);
tip_elemente denumirea unui tip de date care defineşte elementele matricei.
iar mai apoi, în acelaşi program, se definesc matricele care sunt de tipul indicat mai sus, printr-o construcţie de forma:
var matrice1, [matrice2, …] : nume_tip;
De exemplu: pentru a defini o matrice pătrată de dimensiune maxim 10 x 10 elemente, ale cărei elemente sunt valori întregi, se folosesc instrucţiunile C:
type matrice_intreaga = array [1..10] of integer;
var a : matrice_intreaga;
Observaţie: dacă programul nu include subprograme (proceduri sau funcţii) atunci definirea matricei se poate face prescurtat astfel:
var matrice1, [matrice2, …] = array [tip_ordinal] of tip_elemente;
5
1.2 Algoritmul de citire a matricelor -- presupune parcurgerea următorilor paşi:
1) se citesc dimensiunile matricei
2) se parcurg, pe rând, liniile matricei
3) pe fiecare linie, se parcurg toate elementele (fiecare coloană)
4) se citeşte elementul din matrice
1.3 Algoritmul de afişare a matricelor -- presupune parcurgerea următorilor paşi:
1) se parcurg, pe rând, liniile matricei
2) pe fiecare linie, se parcurg toate elementele (fiecare coloană)
3) se afişează elementul din matrice
4) când s-au afişat toate elementele de pe o linie a matricei, se trece la linia următoare pe ecran
Rezolvarea temei în limbajul C
//Citirea și afișarea matricelor, cu posibilitatea modificării unui element de pe o anumită poziție
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define MAX 15
int main(){
int i,j,matrice[MAX][MAX],n,m,k,l,p, stare;
char car;
printf("n Introducerea elementelor matriceinn");
printf("Tastati nr de linii(n<10): ");scanf("%d",&n);
printf("Tastati nr de coloane(m<10): ");scanf("%d",&m);
printf("nTastati elementele matricei:n");
for(i=0;i<n;i++)
for(j=0;j<m;j++){
printf("Elementul a[%d,%d]: ",i+1,j+1);
scanf("%d",&matrice[i][j]);
}
printf("nnMatricea este:n");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf(" %d",matrice[i][j]);
printf("n");
}
stare=0;
do{
printf("nVreti sa modificati valoarea unui anumit element?D/Nn");
car=getche(); //in codeblocks este getche(); in borland C este getchar()
if(car=='D' || car=='d'){
stare=1;
printf("nTastati pozitia de modificat sub forma x,y : ");scanf("%d%*c%d",&k,&l);
printf("Tastati noua valoare :");scanf("%d",&p);
matrice[k][l]=p;
}
}while(car=='D' || car=='d');
if(stare){
printf("nnAfisarea matricii modificate:n");
for(i=0;i<n;i++){
printf("|");
for(j=0;j<m;j++)
printf(" %d",matrice[i][j]);
printf("|n");
6
}
}getche();
return 0;
}
Preview document
Conținut arhivă zip
- 1_01.c
- Operatii cu matrici.pdf