Inserarea unui element intr-un vector C++

Se citesc de la tastatura un numar natural N si un vector de N elemente intregi. Dupa care, utilizatorul trebuie sa introduca valoarea pe care doreste sa o adauge in vector, cat si pozitia pe care vrea sa fie introdusa acea valoare. Se afiseaza vectorul rezultat in urma inserarii.

Inserare element pe o pozitie data:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Suma elementelor de pe diagonala prinicipala a unei matrice patratice C++

Pentru a realiza produsul elementelor pur si simplu in codul de mai sus initializam s=1 (pentru a nu inmulti cu 0) si, la linia 15, inlocuim semnul “+” cu “*”, astfel variabila s va memora produsul elementelor de pe diagonala principala a matricei date.

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Maximul si minimul unui vector C++

Fiind dat un vector v de N elemente, atat N, cat si vectorul v, fiind citite de la tastatura, se cere sa se gaseasca minimul si maximul dintre elementele vectorului.

Maximul unui vector C++:

Video YouTube in care explicam cum functioneaza algoritmul:

Minimul unui vector C++:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Suma elementelor unei matrice C++

Pentru a realiza produsul elementelor pur si simplu in codul de mai sus initializam s=1 (pentru a nu inmulti cu 0) si, la linia 15, inlocuim semnul “+” cu “*”, astfel variabila s va memora produsul elementelor matricei date.

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Bubble sort – Vectori C++

In continuare, este prezentata sortarea unui vector de N elemente citite de la tastatura, prin metoda bubble sort. N-ul este, de asemenea, citit de la tastatura.

Principiul dupa care actioneaza bubble sort:

Sortare crescatoare:

Sortare descrescatoare:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Sortarea unui vector prin interschimbare C++

In continuare, este prezentata sortarea prin interschimbare a unui vector cu N elemente citite de la tastatura. N-ul este, de asemenea, citit de la tastatura. In josul paginii puteti gasi de asemenea videoul de pe canalul nostru de YouTube in care explicam cum functioneaza algoritmul.

Sortare crescatoare:

 

Sortare descrescatoare:

Video YouTube:

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Probleme matrici C++

Mai jos puteti gasi rezolvarea unor probleme comune ce presupun prelucrarea matricelor. Lista contine probleme ce se intalnesc adesea la clasa sau la examenul de bacalaureat.

Suma si produsul elementelor unei matrici
Suma si produsul elementelor de pe diagonala prinicipala a unei matrice patratice
Suma si produsul elementelor de pe diagonala secundara a unei matrice patratice
Transpusa unei matrice
Eliminarea unei linii si (sau) coloane

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Matrice patratica

O matrice care are numarul de linii egal cu numarul de coloane se numeste o matrice patratica.

Intrucat numarul de linii este egal cu numarul coloanelor in matiricile patratice apar 2 notiuni importante: diagonala principala si diagonala secundara.

Diagonala principala este formata din elementele unei matrici patratice aflate pe pozitiile in care indicele liniei este egal cu cel al coloanei (i=j), adica a[i][i]. Spre exemplu in matricea patratica a[3][3], elementele aflate pe diagonala principala sunt a[1][1]; a[2][2] si a[3][3].

Diagonala secundara este formata din elementele unei matrici patratice aflate pe pozitiile in care i+j=n+1, mai exact a[i][n-i+1]. Spre exemplu in matricea patratica a[3][3], elementele aflate pe diagonala principala sunt a[1][3]; a[2][3] si a[3][1].

In matricea de mai sus, patratele colorate cu verde reprezinta diagonala principala si patratele colorate cu galben reprezinta diagonala secundara.

Zone speciale in matrice patratice:

In matricea de mai sus, patratele colorate cu verde inchis reprezinta elementele de sub diagonala principala, in timp ce elementele colorate cu albastru deschis reprezinta elementele de deasupra diagonalei principale.

Relatia elementelor aflate deasupra diagonalei principale (casutele albastre) intr-o matrice patratica este i<j.

Relatia elementelor aflate sub diagonala principala (casutele verzi) intr-o matrice patratica este i>j.

diagonala secundara matrice

Relatia elementelor aflate deasupra diagonalei secundare (casutele albastre) intr-o matrice patratica este i+j<n+1.

Relatia elementelor aflate sub diagonala secundare (casutele verzi) intr-o matrice patratica este  i+j>n+1.

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂

Tablouri unidimensionale – Vectori

Vectorii sau tablourile unidimensionale sunt structuri de date bine definite si organizate in memorie. Cu ajutorul acestora, se pot pastra in memorie si accesa ulterior mai multe variabile, fara a fi nevoie de retinerea explicita a fiecareia dintre ele.

Vectorii se folosesc, cel mai adesea, cand numarul de variabile necesare intr-o problema variaza sau este de dimensiune mare. In acest caz, se doreste utilizarea un vector , in care punem cate variabile sunt necesare. In problemele noastre, ne vor interesa vectorii declarati prin numarul maxim posibil de elemente, cu memoria alocata local.

Astfel, pentru declararea unui vector se foloseste urmatoarea structura:

tip_vector nume_vector[dimensiune maxima vector];

Exemple uzuale :

                int v[100];

  • int – tip intreg
  • v – numele vectorului
  • [100] – intre paranteze patrate se pune numarul maxim posibil de elemente

Asemanator float a[100], double b[20].

Pentru a atribui un element folosim :

v[1] = 3; v[2] = 4, v[6] = 29, etc.

Pentru citirea unui vector de n elemente, unde n este citit de la tastatura, se foloseste urmatoarea portiune de program :

Se incepe citirea de la 1, primul element fiind salvat in v[1]. (La siruri de caractere, inceperea se face de la 0.) Elevul poate decide de pe ce pozitie sa inceapa : 1 sau 0.

Pentru a accesa elementul de pe pozitia K vom folosi v[K].

Afisarea se face in mod asemanator, citirii:

Un vector v[6] are urmatoarea structura:

Astfel, cu ajutorul vectorilor, putem face modificari asupra unui sir de numere intregi, salvand fiecare modificare, pentru a afisa rezultatul obtinut. De asemenea, un caz foarte uzual, in care sunt folositi vectori, este atunci cand, se afiseaza elemente citite de la tastatura, intr-o ordine care nu coincide cu ordinea de citire.

Exemplu : afisarea in ordine inversa a unui sir citit de la tastatura( In acest caz, ultimul element afisat, este primul citit, deci, acesta trebuie retinut intr-o variabila. Vectorul ofera aceasta posibilitate, primul element fiind salvat pe prima pozitie din vector).

Problemele cu siruri, in care nu este posibila parcurgerea o singura data a sirului, se reduc si ele la lucrul cu vectori, sirurile fiind salvate in vectori. Memorarea sirurilor in tablouri unidimensionale face posibila parcurgerea sirurilor de mai multe ori.

Exemple de probleme in care s-ar putea folosi vectori :

  1.  Ordonarea unui sir citit de la tastatura in ordine crescatoare sau descrescatoare.
  2.  Sa se afiseze maximul unui sir citit de la tastatura.
  3.  Sa se afiseze elementele pare ale unui sir citit de la tastatura, dupa care elementele impare ale acestuia separate prin cate un spatiu.
  4.  Sa se gaseasca cel mai mare divizor comun ( cel mai mic multiplu comun) a unui sir citit de la tastatura.

Tablouri bidimensionale – Matrici

O matrice este o forma de organziare a datelor de acelasi tip. O matrice reprezinta un tablou bidimensional in care sunt stocate date de acelasi tip. Elementele dintr-o matrice pot fi identificate dupa linia si coloana pe care se afla.

Se numeste matrice cu m linii si n coloane, un tablou cu m linii si n coloane.

Pentru m=4 si n=3 se obtine o matrice cu 4 linii si 3 coloane, spre exemplu:

In exemplul dat, numarul 35 se afla pe linia 1, coloana 1, pe cand 13 se afla pe linia 3, coloana 2. Am considerat numerotarea liniilor si coloanelor incepand de la 1. Daca matricea se va citi, luand doi contori ( i si j) cu valori de la 0 la m – 1 (pentru m linii), respectiv de la 0 la n – 1 (pentrul n coloane), atunci 35 se va afla pe linia 0 si coloana 0.

In limbajul C++ declararea unei matrici se realizeaza prin specificarea tipului elementelor din matricii, indentificatorul matricii, urmat apoi de dimensiunea acesteia (numarul de linii si de coloane) intre paranteze drepte.

Spre exemplu:

  • int A[4][3]; (declara o matrice de 4 linii si 3 coloane continand numere intregi)
  • float B[5][10]; (declara o matrice de 5 linii si 10 coloane continand numere reale)
  • char C[20][12]; (declara o matrice de 20 de linii si 12 coloane continand caractere alfanumerice)

Observatie: Numerotarea liniilor si coloanelor unei matrici incepe de la valoarea 0. Astfel, prima linie si prima coloana a matricii este linia si coloana 0, a doua coloana este 1, etc.

Observatie: Putem numerota liniile si coloanele de la 1, in acest caz, pentru a nu avea probleme de memorie, declaram matricea cu un numar in plus de linii si coloane. Astfel, daca vrem sa salvam o matrice cu 3 linii si 4 coloane, incepand numerotarea de la 1, vom scrie m[4][5] in loc de m[3][4].

Mai jos putem vedea citirea si afisare unei matrici salvata cu numerotoarea incepand de la 1.

Matricile au un caz particular, atunci cand numarul de linii este egal cu numarul de coloane, acele matrici numindu-se matrici patratice.

Spor la lucru! Daca aveti intrebari nu ezitati sa le lasati in comentarii, va vom raspunde cat de repede putem 🙂