Matrice


Cererea a fost trimisă. Vom face update la video cât mai curând posibil.
Cere video cu proiectul

Descrierea proiectului

Lucrarea de fata are ca tema tablourile bidimensionale (matricile). Proiectul este realizat in C++. Documentatia este realizata in Microsoft Word si contine 14 de pagini.

Programul acesta este o exemplificare a lucrului cu matrici in C++. Programul consta in exemplificarea catorva operatii asupra matricilor, cum ar fi, adunarea si scaderea a 2 matrici, inmultirea a 2 matrici, inmultirea unei matrici cu scalar, ridicarea la putere a unei matrici patratice, calcularea determinantului si inversei unei matrici patratice, cat si traspunerea unei matrici oarecare.

In prima instanta s-au declarat librariile de care a fost nevoie, respectiv stdio.h, iostream.h, conio.h, stdlib.h, math.h. Apoi au fost declarate variabilele globale respectiv cateva matrici, "a", "aa", "bb", "rez", "matr_inv" care sunt folosite pe parcursul programului in functie de operatia care este in executie in momentul acela, cat si niste variabile de tip integer cu ajutorul carora vom tine minte diferiti parametri, cum ar fi dimensiunile matricilor sau alte valori necesare efectuarii cu succes a operatilor dorite.

Pentru a optimiza cat mai mult programul s-a incercat descompunerea pe mai multe module, respectiv functii, care fie returneaza sau nu o valoare depinzand de utilitatea lor. Din acest motiv au fost create cateva tipuri de functii de afisare si citire a matricelor pentru a nu fi nevoit la fiecare operatie sa implementam acelasi cod, fiindca programul ar deveni, atat mai ineficient din punctul de vedere al memoriei cat si mai greu de verificat.

In programul principal (main) s-a creat un meniu interactiv, cu ajutorul caruia utilizatorul poate sa efectueze diferite operatii asupra matricelor. Acest meniu se afiseaza dupa efectuarea fiecarei operatii si vizualizarea efectelor acesteia, astfel utilizatorul poate ramane in aplicatie si poate efectua un numar nelimitat de operatii pana cand el va introduce optiunea “0” care corespunde iesirii din program.

Programul poate fi rulat fie dupa ce a fost compilat si construit prin deschiderea aplicatiei “matrice.exe” din fisierul atestatului, fie prin deschiderea aplicatiei "matrice.cpp" in mediul de programare “C++ for DOS” si rularea acestuia din meniu sau prin apasarea combinatiei de taste “Ctrl+F9”.

Procedura "meniu" a fost creata strict pentru afisarea meniului si este folosita in programul principal de mai multe ori pentru a afisa meniul dupa fiecare operatie facuta de utilizator.

Toate procedurile au primit nume semnificative pentru actiunile care le indeplinesc la rularea programului. Vom face un desfasurator al procedurilor folosite:

  • “citire_matrice_patratica” – citeste o matrice patratica “n x n”, cu elemente de tip integer, de la tastatura;
  • “afisare_matrice_inv” – afiseaza o matrice cu elemente de tip float in consola;
  • “citire_matrice” – citeste o matrice “n x m”, cu elemente de tip integer, de la tastatura;
  • “afisare_matrice” – afiseaza o matrice de dimensiune oarecare, cu elemente de tip integer in consola;
  • “adunare” – efectueaza adunarea a doua matrici intr-o a treia matrice;
  • “scadere” - efectueaza scaderea a doua matrici intr-o a treia matrice;
  • “inmultire” – efectueaza inmultirea a doua matrici intr-o a treia matrice;
  • “inmult_scalar” – efectueaza inmultirea unei matrici cu un scalar;
  • “ridicare_putere” – efectueaza ridicarea la putere a unei matrice patratice;
  • “determinant” – calculeaza determinantul unei matrici;
  • “inversa” – calculeaza inversa unei matrici (daca se poate);
  • “transpunere” – transpune o matrice intr-o alta matrice;

De asemenea pe tot parcursul programului au fost incluse comentarii pentru a facilita verificarea si corectarea acestuia, cat si pentru a da detalii, de exemplu unui programator care ar trebui sa continue dezvoltarea acestui program.