Documente Academic
Documente Profesional
Documente Cultură
Mat Rice
Mat Rice
Mat Rice
Exemplu
a11 a12 a 13
( )
a= a21 a22 a 23 matrice patratica => nr linii=nr coloane
a31 a32 a 33
int a[100][100]; (s-a declarat matricea a de dimensiunea 100, 100 i.e. (adica) poate avea 99 linii si 99
coloane)
sau int b[][]; (s-a declarant matricea b,iar calculatorul v-a aloca automat spatial necesar liniilor, resp
coloanelor)
Aplicatii matrice
1 2 3 1 2 3
(
A= 4 5 6
7 8 9 ) in urma interschimbării obtinem A= 7
( 8 9
4 5 6 )
Tema
1 2 3
A= 4
( 5 6
7 8 9 )
Sortarea fara comparatii
Exemplu
Fie numerele 5, 35, 21, 13, 50 si 20. Se cere să se sorteze numerele fără a le compara.
Procedeu
Pentru memorarea numerelor din cele 10 clase se foloseste o matrice cu 10 coloane iar prima linie are
indicele 0.
0 1 2 3 4 5 6 7 8 9
50 21 13 5
20 35
0 1 2 3 4 5 6 7 8 9
13 20 35 50
5 21
Noul sir va fi: 5,13, 20, 21, 35, 50 => sirul sortat
Observatii
1. Daca p este numarul maxim de cifre a numerelor din sir atunci impartirea numerelor in 10 clase
se va relua de p ori
2. Acest algoritm nu este foarte eficient deoarece consuma foarte multa memorie
Programul C++
#include<iostream>
using namespace std;
int a[100][100],v[100], n,nrc, i,j,k,c,z;
/* z- determina nr de cicluri, verifica nr de cifre ale numerelor in vector, depinde de variabila nrc-
presupunem ca cel mai > nr din v are 4 cifre*/
int main()
{
cout<<"Cate numere sunt de sortat? ";
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]="; cin>>v[i];
}
Aplicatii matrice
1 2 3
(
A= 7 8 9
4 5 6 )
Elemente șa:
1(linie) si 7 (coloana)
7 si 8
4 si 9
m=a[k][1]
daca i=1
Aplicatia ,,Fereastra”
Fiind data o matrice cu m linii si n coloane, se cere sa se afiseze toate submatricele cu 3 linii si 3 coloane
ale matricei initiale.
Un astfel de procedeu este utilizat atunci cand, de exemplu, o imagine este mult prea mare si ea este
afisata cu ajutorul unei ferestre.
1 2 3 4
( 5 6 7 8
9 10 11 12
13 14 15 16
) 1 2 3
se vor afisa matricele: 5 6
(
2 3 4 5 6 7
)(
7 , 6 7 8 , 9 10 11 si
9 10 11 10 11 12 13 14 15 )( )
6 7 8
( 10 11 12
14 15 16 )