Написать программу на Си++ (C++). Проверить, есть ли в матрице A (5х4) строки с отрицательной суммой

15. Условие:

Проверить, есть ли в матрице A (5×4) строки с отрицательной суммой и есть ли в матрице B (4×5) строки, сумма элементов которых меньше 5.

1) Функциональная

#include <iostream>

using namespace std;

void matrixin(float arr[][10], int n, int m, int x, char c)

{

cout «"Введите матрицу" «c «endl;

for (int i = 0; i < n; i++)

{

for (int j = 0; j < m; j++)

{

cin» arr[i][j];

}

}

}

void function(float arr[][10], int n, int m, int x)

{

int k = 0;

for (int i = 0; i < n; i++)

{

float summ = 0;

for (int j = 0; j < m; j++)

{

summ = summ + arr[i][j];

}

if (summ < x)

k = k + 1;

}

return k;

}

int main()

{

setlocale(LC_ALL, "rus");

float arrA[10][10],arrB[10][10];

int n, m, x, k;

cout «"Введите размерность матрицы А: ";

cin» n» m;

cout«"Введите переменную X: ";

cin» x;

matrixin(arrA, n, m, x, ' ');

function(arrA, n, m, x);

if (k > 0)

cout «("В матрице есть ") «k «(" строк, сумма элементов которых меньше ") «x;

else

cout «("В матрице нет строк, удовлетворяющих условию\n");

cout «endl;

cout «"Введите размерность матрицы B: ";

cin» n» m;

cout«"Введите переменную";

cin» x;

matrixin(arrB, n, m, x, ' ');

function(arrB, n, m, x);

cout «("В матрице есть ") «k «(" строк, сумма элементов которых меньше ") «x;

else

cout «("В матрице нет строк, удовлетворяющих условию\n");

cout «endl;

system("pause");

}

2) Объектно-ориентированная

#include <iostream>

#include <conio.h>

#include <stdio.h>

using namespace std;

class matr {

protected:

float **a;

int n, m, x, k;

char c;

public:

matr(int n1, int m1, char c1);

void input(); //метод ввода

int output(); // метод вывода

int seeker(); //метод обработки

};

matr::matr(int n1, int m1, char c1) {

n = n1; m = m1; c = c1;

a = new float*[n];

 

for (int i = 0; i < n; i++) {

a[i] = new float[m];

for (int j = 0; j < m; j++)

a[i][j] = 0;

}

}

 

void matr::input() {

cout << "Введите переменную X - ";

cin >> x;

cout << "Введите матрицу " << c << " размером " << n << "*" << m << endl;

for (int i = 0; i < n; i++) {

for (int j = 0; j < m; j++)

cin >> a[i][j];

}

}

 

int matr::output() {

if (k > 0)

cout << ("В матрице есть ") << k << ("строк, удовлетворяющих условию");

else

cout << ("В матрице нет строк, удовлетворяющих условию\n");

cout << endl;

 

}

 

int matr::seeker() { //обработка по строкам

k=0;

for (int i = 0; i < n; i++){

float sum = 0;

for (int j = 0; j < m; j++)

{

sum = sum + a[i][j];

}

if (sum < x)

k = k + 1;

}

return k;

};

 

// наследование

class matr_nasl: public matr {

public:

matr_nasl(int n1, int m1, char c1);

void output(); // переопределенный метод вывода

int seeker2(); // переопределенный метод обработки

void input(); // переопределенный метод ввода

};

matr_nasl::matr_nasl(int n1, int m1, char c1): matr(n1, m1, c1) {}

 

void matr_nasl::output() {

if (k > 0)

cout << ("В матрице есть ") << k << ("столбцов, удовлетворяющих условию");

else

cout << ("В матрице нет столбцов, удовлетворяющих условию\n");

cout << endl;

}

 

void matr_nasl::input() {

cout << "Введите новую переменную X - ";

cin >> x;

cout << "Введите новую матрицу " << c << " размером " << n << "*" << m << endl;

for (int i = 0; i < n; i++) {

for (int j = 0; j < m; j++)

cin >> a[i][j];

}

}

 

int matr_nasl::seeker2() { //обработка по столбцам

k=0;

 

for (int j = 0; j < m; j++){

float sum = 0;

for (int i = 0; i < n; i++)

{

sum = sum + a[i][j];

}

if (sum < x)

k = k + 1;

}

return k;

};

 

int main() {

setlocale(LC_ALL, "Russian");

matr *a; matr_nasl *b;

a = new matr(3, 3, 'A');

b = new matr_nasl(3, 3, 'B');

 

a->input();

a->seeker();

a->output(); cout << endl;

 

b->input();

b->seeker2();

b->output();

 

delete a;

delete b;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: