8
7/26/2019 matrici -teorie + probleme http://slidepdf.com/reader/full/matrici-teorie-probleme 1/8  Matrice. Declarații. Citire. Afișare Un tablou cu două dimensiuni se numeşte matrice. Declarare int a[50][100],n,m,i,j; Am declarat: – o matrice cu maxim 50 de linii şi 100 de coloane, numerotarea se face de la 0 – n numarul efecti! de linii; – mnumarul efecti! de coloane; – i contor "entru linie – j contor "entru coloane #bs$ %utem numerota liniile şi colonele de la 1, &n acest ca' adău(ăm 1 la numărul maxim de linii şi 1 la numărul maxim coloane Citire: for)i*1;i+*n;i- for)j*1;j+*m;j- cin..a[i][j]; Afsare: for)i*1;i+*n;i- / for)j*1;j+*j;j- cout++a[i][j]++ ; cout++2n; 3 Aplicatii cu matrici 1. Sa se citeasca si sa se tipareasca elementele unui tablou bidimensional A (matrice) cu m linii i n ș  coloane #include <iostream> using namespace std; int main () {int a[101][101], n, m, i, j; a =matricea, m,n= nr actual de linii/coloane, i, j=linia, respectiv coloana  // cout<<”Dati numarul de linii: “; cin>>m; cout<<”Dati numarul de coloane: “; cin>>n; citim nr. de coloane cout<<”Introduceti elementele matricei: “<<endl; or (i!1; i<!m; i"") or (j!1; j<!n; j"") {cout<<”a[#<<i<<#][#<<j<<#]!”; cin>>a[i][j]; citim elementele matricei $

matrici -teorie + probleme

Embed Size (px)

Citation preview

Page 1: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 1/8

 

Matrice. Declara ții. Citire. AfișareUn tablou cu două dimensiuni se numeşte matrice.

Declarare

int a[50][100],n,m,i,j;

Am declarat:

– o matrice cu maxim 50 de linii şi 100 de coloane, numerotarea se face de la 0– n numarul efecti! de linii;

– mnumarul efecti! de coloane;

– i contor "entru linie

– j contor "entru coloane

#bs$ %utem numerota liniile şi colonele de la 1, &n acest ca' adău(ăm 1 la numărul

maxim de linii

şi 1 la numărul maxim coloane

Citire:

for)i*1;i+*n;i-

for)j*1;j+*m;j-

cin..a[i][j];

Afsare:

for)i*1;i+*n;i-

/

for)j*1;j+*j;j-

cout++a[i][j]++ ;

cout++2n;3

Aplicatii cu matrici1. Sa se citeasca si sa se tipareasca elementele unui tablou bidimensional A (matrice) cu m linii i nș  coloane

#include <iostream>using namespace std;

int main (){int a[101][101], n, m, i, j; a=matricea, m,n= nr actual de linii/coloane, i, j=linia, respectiv coloana

 //

cout<<”Dati numarul de linii: “; cin>>m;

cout<<”Dati numarul de coloane: “; cin>>n; citim nr. de coloane

cout<<”Introduceti elementele matricei: “<<endl;or (i!1; i<!m; i"")or (j!1; j<!n; j""){cout<<”a[#<<i<<#][#<<j<<#]!”;cin>>a[i][j]; citim elementele matricei$

Page 2: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 2/8

cout<<”%i&am matricea: “<<endl;or (i!1; i<!m; i""){for (j=1; j<=n; j)

cout<<a[i][j]<<” “; si afisam fiecare linie! respecti" coloana! dar cu un mic spatiu intre elementecout<<endl; //dupa fiecare linie terminata! trebuie sa trecem la alt rand

$return 0;$

'. Se citesc elementele unei matrici a cu cel mult 1 de linii si 1 de coloane$Sa se calcule%e suma elementelor matricii a$

#include <iostream>using namespace std;

int main (){int a[101][101], n, m, i, j, &!0; a=matricea! n! m= nr actual de linii/coloane! i! j=linia! respecti" coloanacout<<”Dati numarul de linii: “; cin>>m; citim nr de liniicout<<”Dati numarul de coloane: “; cin>>n; citim nr$ de coloane

cout<<”Introduceti elementele matricei: “<<endl;or (i!1; i<!m; i"")or (j!1; j<!n; j""){cout<<”a[#<<i<<#][#<<j<<#]!”;cin>>a[i][j]; citim elementele matriceis=sa&i'&j';

$cout<<#&!#<<&;return 0;$

3. Se citesc elementele unei matrici a cu cel mult 100 de linii si 100 de coloane.Sa se afiseze toate elementele de pe o linie al carui numar este dat de la tastura.

#include <iostream>using namespace std;

int main (){int a[101][101], n, m, i, j,, &!0; a=matricea! n! m= nr actual de linii/coloane! i! j=linia! respecti" coloanacout<<”Dati numarul de linii: “; cin>>m; citim nr de liniicout<<”Dati numarul de coloane: “; cin>>n; citim nr$ de coloane

cout<<”Introduceti elementele matricei: “<<endl;or (i!1; i<!m; i"")or (j!1; j<!n; j""){cout<<”a[#<<i<<#][#<<j<<#]!”;cin>>a[i][j]; citim elementele matriceis=sa&i'&j';$

cout<<”Dati numarul liniei: “; cin>>; citim nr$ liniei de pe care afisam elementeleor (i!1; i<!m; i"")or (j!1; j<!n; j"")

i (i!!)cout<<a[][j]<< ;return 0;$

$Se citesc elementele unei matrici a cu cel mult 1 de linii si 1 de coloane$Sa se afise%e toate elementele de pe o coloana al carui numar este dat de la tastura$

$ Se citesc elementele unei matrici a cu cel mult 1 de linii si 1 de coloane$*erificati daca e+ista doua linii ale matricii care au aceeasi suma a elementelor$

Page 3: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 3/8

Page 4: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 4/8

Matrice patratica

4ntro matrice "ătratică numarul de linii* numarul de coloane )n*m-$

4ntro matrice "ătratică a!em:

• ia(onala "rinci"ala elementele a[i][i], cu i*1,n sau a[i][i], cu i*0,n1• ia(onala secundara elementele a[i][ni1], i*1,n sau a[i][ni1], i*0,n1

Zonele determinate de diagonale:

6$

Pe diagonala principală i=j

Sub diagonala principala: i>j

Deasupra diagonalei principale: i<j

66$

Pe diagonala secundară j=n-i+1

Sub diagonala secundara: j>n-i+1

Deasupra diagonalei secundare:j<n-i+1

7#89 s"eciale in matrice "atratice

1. Diagonala principala si secundara

Diagonala principal

Page 5: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 5/8

Diagonala principală este formată din elementele care îndeplinesc relaia

i = j  ! numărul liniei este egal cu numărul coloanei pe care se a"ă#

Diagonala secundară

Diagonala secundară con$ine elementele a1n% a& n-1 % a' n-&%(%an1 caracteri)ate de

rela$ia

i+j = n+1.

Zona de deasupra diagonalei principale

*lementele de deasupra diagonalei principale sunt a1&% a1'% a1%(%a1n% a&'% a&% a&,%

(%a&n% (#% an-1 n-1% an-1 n#

ela$ia dintre coordonate comună tuturor elementelor din această )onă este i < j  #

Zona de sub diagonala principal

*lementele a&1% a'1% a'&%(%a1% a&% a'% (##%an1% an&% an n-1 se a"ă sub diagonala

 principală .i au între coordonate rela$ia i > j #

/n practică prelucrarea elementelor se poate face e0clusi pe diagonale respecti pe

 )onele identi2cate mai sus3e0:ordonarea diagonalelor respecti eri2carea simetriei sau

a triung4iularită$ii5 sau se poate opta pentruo parcurgere a tuturor elementelor matricei

.i prelucrarea diferen$iată a elementelor în func$ie de rela$ia dintre coordonate3e0:

completarea elementelor cu anumite alori% calculul simultan al mai multor re)ultate

ob$inute pentru 2ecare )onă în parte5#

Modalităţi de prelucrare a elementelor în matrice pătratică de dimensiune n

Diagonala principala:

for )i*1;i+*n;i-

+"relucrea'ă a[i][i].

Diagonala secundara:

for )i*1;i+*n;i-

+"relucrea'ă a[i][ni1].

Page 6: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 6/8

Deasupra diagonalei principale:

for )i*1;i+*n1;i-

for)j*i1;j+*n;j-

+"relucrea'ă a[i][j].

Sub diagonala principala:

for )i*;i+*n;i-

for)j*1;j+*i1;j-+"relucrea'ă a[i][j].

Prelucrarea intro singura parcurgere a tuturor !onelor:

for )i*1;i+*n;i-

for)j*1;j+*n;j-

if )i**j-+"relucrea'ă a[i,j] – dia($ "rinc$.

else

if )ij**n1-

+"relucrea'ă a[i,j] – dia($ sec$.else

if )i.j-

+"relucrea'ă a[i,j] – deasu"ra dia($ "rinc$.

else

+"relucrea'ă a[i,j] – sub dia($ "rinc$.

if )ij+n1-

+"relucrea'ă a[i,j] – deasu"ra dia($ sec$.

if )ij.n1-

+"relucrea'ă a[i,j] – sub dia($ sec$.

Aplicatii – Matrici patratice

1. Variabila a memorează un tablou bidimensional, cu 4 linii şi 4 coloane, numerotate de la 1

la 4, cu elemente numere naturale. Scrieţi secvenţa de program C++ care afişează pe ecran produsulnumerelor de pe diagonala principală a tabloului, respectiv o secventa de program care afiseazasuma elementelor de pe diagonala secundara a tabloului.

2. Variabila t memorează o matrice cu 8 linii şi 8 coloane, umerotatede la 1 la 8, cu elemente numere întregi, iar variabilele i şi j sunt întregi.Secvenţa de program alăturată determină memorarea în variabila întreagă z asumei tuturor elementelor situate: …………………………………

. Variabila t memorează o matrice cu 8 linii şi 8 coloane,numerotate de la 1 la 8, cu elemente numere întregi, iar celelalte variabile

z!"#for$i!%# i&!'# i(()for$*!%# *&i# *(()

z!z(t+i+*#

z!"#for$i!%#i&!'#i(()for$*!%#*&!'-i(%#*(()

z!z(t+i+*#

Page 7: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 7/8

sunt întregi. Secvenţa de program alăturată determină memorarea n variabila întreagă z a sumeituturor elementelor situate: ………………………………

. Scrieţi un program C++ care citeşte de la tastatură un numar natural n $2&!n&!2) siconstruieste in memorie o matrice cu n linii si n coloane ale carei elemente vor primi valori dupacum urmeaza:

- elementele situate pe diagonala principala vor primi valoarea "#- elementele de pe prima coloana, cu e/ceptia celui aflat pe diagonala principala vor primi

valoarea n#- elementele de pe a doua coloana, cu e/ceptia celui aflat pe diagonala principala vor primi

valoarea n-%#

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ elementele de pe ultima coloana, cu e/ceptia celui aflat pe diagonala principala vor primi

valoarea %.0rogramul va afisa matricea astfel construita pe ecran, cate o linie a matricii pe cate o linie aecranului.

Exemplu: n! se afiseaza matricea:

1. Se citeste o matrice patratica de dimensiune n. Sa se calculeze si sa se afiseze sumaelementelor de pe diagonala principala si produsul elementelor de pe diagonala secundara.

. 3ititi cu atentie programul de mai *os, urmariti cu atentie e/ecutarea acestuia pentru n!.4bservati cum se construieste matricea si stabiliti un enunt corespunzator rezolvarii.

int a[<][<],i,j,a1,a,a=,n;  int main)-/

a1*1; a*1;  cout++>nr linii >; cin..n;  "or)i*1;i+*n;i-

i" )i?**1- "or)j*1;j+*n;j-

  /a=*a1a#

  a[i][j]*a=; a1*a; a*a=;3 

else

  "or)j*n;j.*1;j-  /a=*a1a;

  a[i][j]*a=; a1*a; a*a=; 3@@asare matrice5

Page 8: matrici -teorie + probleme

7/26/2019 matrici -teorie + probleme

http://slidepdf.com/reader/full/matrici-teorie-probleme 8/8

6. Scrieti un program 373(( care citeste de la tastatura un numar natural n $"&n&!2) si apoiconstruieste in memorie o matrice cu n linii si n coloane astfel incat elementele situate pediagonala secundara sa fie egale cu 2, cele situate deasupra diagonalei secundare sa fieegale cu %, iar cele situate sub diagonala secundara sa fie egale cu .0rogramul va afisa matricea pe ecran, cate o linie a matricei pe o linie a ecranului,cu cate un spatiu intre elementele fiecarei linii.Exemplu: daca n este 4 atunci programul va construi si va afisa matricea de mai *os:

1 1 1 2

1 1 2 3

1 2 3 3

2 3 3 3

'.

*.