Se consideră o matrice pătrată cu dimensiunea nxn şi un vector cu n elemente. Numărul n şi elementele matricei şi ale vectorului se citesc de la tastatură. Să se verifice dacă elementele vectorului formează o linie sau o coloană a matricei. În caz afirmativ să se afişeze un mesaj în care să se precizeze numărul liniei şi/sau al coloanei. 28
Pentru a verifica dacă elementele vectorului formează o linie sau o coloană a matricei putem verifica dacă toate elementele vectorului sunt egale cu elementele de pe aceeași poziție dintr-o anumită linie sau coloană a matricei.
Pentru a implementa această verificare, putem parcurge matricea și vectorul și să comparăm elementele de pe aceeași poziție. Dacă găsim o poziție în care elementul din vector nu este egal cu elementul corespunzător din matrice, putem opri verificarea pentru acea linie/coloană și să trecem la verificarea următoarei linii/coloane.
Dacă nu găsim nicio poziție în care elementele vectorului să nu fie egale cu elementele corespunzătoare din matrice, putem afișa un mesaj care indică faptul că vectorul formează o linie sau o coloană.
#include <iostream>
using namespace std;
const int MAX = 100;
int main() {
int n, mat[MAX][MAX], vec[MAX];
// Citirea dimensiunii si a elementelor matricei si vectorului
cout << „Introduceti dimensiunea matricei si a vectorului: „;
cin >> n;
cout << „Introduceti elementele matricei:\n”;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> mat[i][j];
}
}
cout << „Introduceti elementele vectorului:\n”;
for (int i = 0; i < n; i++) {
cin >> vec[i];
}
// Verificarea daca vectorul formeaza o linie sau o coloana a matricei
int row = -1, col = -1;
for (int i = 0; i < n; i++) {
bool is_row = true, is_col = true;
for (int j = 0; j < n; j++) {
if (vec[j] != mat[i][j]) {
is_row = false;
}
if (vec[j] != mat[j][i]) {
is_col = false;
}
}
if (is_row) {
row = i;
}
if (is_col) {
col = i;
}
}
// Afisarea rezultatului
if (row != -1 && col != -1) {
cout << „Vectorul formeaza atat o linie, cat si o coloana a matricei.\n”;
} else if (row != -1) {
cout << „Vectorul formeaza linia ” << row << ” a matricei.\n”;
} else if (col != -1) {
cout << „Vectorul formeaza coloana ” << col << ” a matricei.\n”;
} else {
cout << „Vectorul nu formeaza o linie sau o coloana a matricei.\n”;
}
return 0;
}
Programul începe prin citirea numărului n, dimensiunea matricei pătrate. Apoi, se citesc elementele matricei și ale vectorului, folosind două bucle for pentru a parcurge fiecare rând și fiecare coloană a matricei.
Următorul pas este verificarea dacă elementele vectorului formează o linie sau o coloană a matricei. Se face acest lucru comparând suma elementelor vectorului cu suma elementelor corespunzătoare de pe fiecare linie și coloană a matricei.
Dacă se găsește o linie sau o coloană în care suma elementelor corespunde cu suma elementelor vectorului, se afișează mesajul corespunzător, care indică numărul liniei și/sau al coloanei.
În caz contrar, se afișează un mesaj care indică faptul că vectorul nu formează o linie sau o coloană a matricei.