Intelegeinfo

  • ro
  • us
  • Matrici

    Vizualizari 199

    Postat luni, 23 iunie 2025

    Matricie Vizualizata

    Dupa ce ai citit acest articol, incearca sa modificai expresia if si vezi ce elemente corespund acesteia ca sa exersezi ce ai invatat!

    int m[20][20]; for(int i=0; i < ; i++) for(int j=0; j < ; j++) if() m[i][j] = ;

    Ce sunt matriciile?

    In c++, vectorii, cum ar fi int v[100];, pot sa aiba ca elemente alti vectori. Acest fel de vectori se numesc matrici, sau tablouri bidimensionale.
    Un astfel de vector, indexat de la 1, ar arata asa: V=
    v[1]
    1 2 3
    v[2]
    4 5 6
    v[3]
    7 8 9
    v[4]
    10 11 12

    Acesta este o matricie de 4 linii si 3 coloane. In cod, o putem defini astfel: int v[4[3]; Casutele matricii pot avea orice valoare (atat timp cat incap in memorie), de tip int, char, float etc.. In acest exemplu, am pus valorile sa reprezinte numarul casutei in "matricie".

    ...sau mai putem aranja matricia in forma asta, asezat pe linii si coloane:

    v[1]
    1 2 3
    v[2]
    4 5 6
    v[3]
    7 8 9
    v[4]
    10 11 12
    Apoi o scriem asa...
    M col. 1 col. 2 col. 3
    lin. 1 1 2 3
    lin. 2 4 5 6
    lin. 3 7 8 9
    lin. 4 10 11 12

    Primu element, adica primul tablou al vectorului unidimensional V v-a fi pus pe linia 1 al vectorului M bidimensional, al doilea element pe linia 2 si tot asa. Fiecare element v-a fi asezat pe coloane.

    Mai putem scrie matriciile si asa, indexate de la 0: (prima valoare reprezentand numarul linii, iar a doua, numarul coloanei)
    0,0 0,1 0,2
    1.0 1,1 1,2
    2,0 2,1 2,2
    3,0 3,1 3,2

    Generarea Matricii

    In c++, ca sa generam o matricie, trebuie sa folosim 2 foruri, unul pentru linie si unul pentru coloana. Variabila i reprezinta linia si variabila j coloana unui element in matricie.

    Ca exemplu, putem genera o matricie, iar elementele matriciei vor avea valoarea i + j:

        // int a[5][5], i,j;
    
        for(i=0;i<5;i++)
            for(j=0;j<5;j++)
                a[i][j]=i+j;
    

    Parcurgem fiecare coloana (j) de pe fiecare linie (i) a matricii a, iar in casuta elementului [i][j] "scriem" valoarea lui i + j. Asa v-a arata matricia:
    0 1 2 3 4
    1 2 3 4 5
    2 3 4 5 6
    3 4 5 6 7
    4 5 6 7 8

    Momentan, matricea se afla doar in memorie. Asa ca trebuie s-o si citim, ca s-o afisam pe ecran:

        // int a[5][5], i,j;
    
        for(i=0;i<5;i++) {
            for(j=0;j<5;j++)
                cout << a[i][j] << " ";
            cout << endl;
        }
    

    Programul complet de generare si citire a unei matrici:

    //    Compilator C++ online | intelegeinfo.ro
    
    #include 
    
    using namespace std;
    
    int main() {
        
        int i,j,a[5][5];
        
        for(i=0;i<5;i++)
            for(j=0;j<5;j++)
                a[i][j]=i+j;
                
        for(i=0;i<5;i++)
        {
            for(j=0;j<5;j++)
                cout << a[i][j] << " ";
            cout << endl;
        }
           
        return 0;
    
    }
    Deschide in editor

    Matricia patrata

    Dupa cum sugereaza si numele, matricia patratica este o matricie care are acelasi numar de randuri si coloane, formand un patrat. Acestea au niste proprietati speciale.

    Diagonala in matricia patrata

    0,0 0,1 0,2
    1.0 1,1 1,2
    2,0 2,1 2,2