# Shkenca > Informatikë dhe Internet > Arti i programimit >  Shumëzimi i matricave në C++!

## princi-kalter

Pershendetje te gjithve !!! Atehere kam nje pyetje nga ju antare te forumit  qe besoj se smund te me ndihmonit!!

Kam nje detyre ne c++ per shumezimin e matricave, ndoshta eshte e thjeshte por nuk ja kam idene se si eshte rregulla per shumezim te matricave.
Nese mundet te me jepni ndonje ide si behet shumezimi i DY MATRICAVE.

----------


## Uke Topalli

E pse ta merr mendja se nuk mundemi me te ndihmu? A ke nevoj per ndihme ne matematike apo programim?

----------


## princi-kalter

Jo nuk ma mer mendja se nuk me ndohmoni, e dij se ne  shume raste me keni ndihmuar dhe besoj se edhe tash do te me ndihmoni!!
Atehere shumezimi i matricave ne c++ , kjo eshte matematik e  shprehur ne c++ e dini dhe vet, te pakten nese keni ndonje ide si mundet te shumezohen dy matrica.

----------


## Uke Topalli

Mvaresisht nga niveli i detyres ky problem mund te zgjidhet ne disa menyra. Zgjidhja te cilem une e pata adoptuar ne nje punim ka qene perdorimi i "templates" ku i definon tipin e  variablave si dhe operacionet te cilat mund te kryhen mbi keto tipe, si psh shumezimi (anetaret e matrices kan qene numra kompleks). Kjo metode mund te jet e tepert per detyren tende. Nese eshte fjala per shumezim te thjeshte te dy matricave atehere deklaroje nje funksion shumezimi i matricave me parametra hyres: matrica e pare dhe matrica e dyte (duke pasur parasysh se nuk vlen ligji komutativ me fjale tjera AXB != BXA) dhe i shumezon matricat. Shumezimi i matricave behet duke kalkuluar cdo element te matrices rezultante si shume te shumezimit te cdo rreshti te matrices se pare me cdo kolone te matrices se dyte.

pra C11 = A11XB11 + A12XB21 + ...

Kodin nuk do ta postoj pasiqe eshte ne interesin tend ta mendosh dhe shkruash vet sepse vetem keshtu do te mesosh

----------


## princi-kalter

Pershendetje Uke!
Atehere simpas asaj qe e mesova pra matricat shumezohen sipas reshtit dhe kolones, pra reshti i pare shumezohet me kolonen e pare i dyti me te dytin......
Po e postoj kodin themelor vetem hedhi nje sy:
.
.
.
for(i=0;i<n;i++){
  for(j=0;j<n;j++){
   for(k=0;k<n;k++){
     C[i][j]=C[i][j]+ A[i][k]*B[k][j];
}
}
}
.
.
.

----------


## Uke Topalli

Ne rruge te mbarre je, vec vazhdo

----------


## Ardi_Pg_ID

> Pershendetje Uke!
> Atehere simpas asaj qe e mesova pra matricat shumezohen sipas reshtit dhe kolones, pra reshti i pare shumezohet me kolonen e pare i dyti me te dytin......
> .
> .
> .


A e di si behet shumezimi i matricave ne matematike? A i di kushtet qe 2 matrica duhet te kene qe te shumezohen me njera tjetren?

ardi

----------


## interX

Ardi ka te drejte fillimisht vendos kushtin qe dy matrica te shumzohen. (sinqerisht nuk me kujtohet per momentin, se nuk i kam as librat afer, por ne mos gaboj eshte :
qe shumzimi A*B te ekzistoj duhet qe numri i shtyllave te A te jete baraz me numrin e rreshtave te B.
Kam kohe qe nuk punoj me matricat dhe nuk jam e sigurt. Besoj se nuk ka kushte te tjera vec ketij!

----------


## princi-kalter

Po shiko tash mua me jane  dhene dy matrica katrore, me dimenzione po e zeme 3*3, tash me dueheshte qe te bej shumezimin e atyre dy matricave, mirre kete e zgjodha... A per ate qe the ti interX nuk e di sigurt se nuk kemi mesuar shumezim te matricave ne matematik.
Por kam nje ide se nese po e zeme se matrica A[6][3], dhe matrica B[4][3] atehere me siguri matrica e fituar C do te jete C[6][4] te pakten keshtu mendoj une duke nisur nga ajo se reshti shumezon kolonen!!! Edhe pse nuk e kam provuar !!

----------


## hot_prinz

> Po shiko tash mua me jane  dhene dy matrica katrore, me dimenzione po e zeme 3*3, tash me dueheshte qe te bej shumezimin e atyre dy matricave, mirre kete e zgjodha...


@princi-kalter

une nuk jam specialist i matricave shumedimensionale, mezi po ia dal me ato nje-dimension, prandaj kisha pase deshire ne baze te ketyre dy shembujve te meposhtem te matricave njedimensionale.

Shembulli i pare, shumezimi i pareve te dy matricave njedimensionale dhe ruajtja e rezultateve ne nje matrice tjeter:




```

            //deklarojme dhe inicializojme matricen e pare
            int[] matrica_a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            //deklarojme dhe inicializojme matricen e dyte
            int[] matrica_b = { 9, 8, 7, 6, 5, 4, 3, 2, 1 };
            //deklarojme matricen e shumes dhe inicializojme me gjatsine e matrices se pare
            int[] matrica_shuma = new int[matrica_a.Length];

            //me iteracion (rritjen e ndryshores i) deri tek fundi i matrices se pare
            for (int i = 0; i < array_a.Length; i++)
            {
                //vendosim shumezimin e matricave ne matricen e shumes
                matrica_shuma[i] = matrica_a[i] * matrica_b[i];
            } 



```

Shembulli i dyte, kur cdo element i matrices se pare shumezohet me te gjithe elementet e matrices se dyte dhe ruajtja e rezultateve ne nje ndryshore integer:



```

            //deklarojme dhe inicializojme matricen e pare
            int[] matrica_a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            //deklarojme dhe inicializojme matricen e dyte
            int[] matrica_b = { 9, 8, 7, 6, 5, 4, 3, 2, 1 };
            //deklarojme nje ndryshore integer qe permban shumezimet e matricave
            int int_shuma = 0;

            //me iteracion (rritjen e ndryshores i) deri tek fundi i matrices se pare
            for (int i = 0; i < matrica_a.Length; i++)
            {
                //me iteracion (rritjen e ndryshores j) deri tek fundi i matrices se dyte
                for (int j = 0; j < matrica_b.Length; j++)
                {
                    //vendosim shumezimin e matricave ne shumen integer
                    int_shuma += (matrica_a[i] * matrica_b[j]);
                }
            } 



```


do te kisha pase deshire te na ilustroje disa shembuj te njejte me shumzime te matricave shumedimensionale, mos harro pershkrimin e kodit se nuk besoj se do e kuptojme.

falemnderit

----------


## interX

Nga shumzimi i dy matricave A dhe B do te dali nje matrice e trete e cila do te kete aq rreshta sa ka matrica e pare dhe aq shtylla sa ka matrica e dyte. 
Dy matrica shumezohen kur numri i shtyllave te matrices A eshte = me numrin e rreshtave te matrices B.
Pra matrica A[6][3] dhe B[4][3] nuk shumezohen dot me njera tjetren!
Matrica A[6][3] dhe matrica B[3][4] shumezohen dhe japin nje matrice C[6][4].

Ky eshte informacion i sakte pasi po e shkruaj me librin e Algjebrs perpara :ngerdheshje: 
Por nese ty te kerkohet shumezimi i matricave katrore nuk do kesh probleme te tilla.

----------


## P@R4nOi@C_LorD

> Nga shumzimi i dy matricave A dhe B do te dali nje matrice e trete e cila do te kete aq rreshta sa ka matrica e pare dhe aq shtylla sa ka matrica e dyte. 
> Dy matrica shumezohen kur numri i shtyllave te matrices A eshte = me numrin e rreshtave te matrices B.
> Pra matrica A[6][3] dhe B[4][3] nuk shumezohen dot me njera tjetren!
> Matrica A[6][3] dhe matrica B[3][4] shumezohen dhe japin nje matrice C[6][4].
> 
> Ky eshte informacion i sakte pasi po e shkruaj me librin e Algjebrs perpara
> Por nese ty te kerkohet shumezimi i matricave katrore nuk do kesh probleme te tilla.


Mos na e kutjo algjebren se po na iken truri.haha.(me duket se dhe ti te politkniku e vazhdoke shkollen)

----------

