Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <vector>
- using namespace std;
- template <typename T>
- class Matrix{ //Сворюю клас (шаблон) для матриці
- public:
- vector<vector<int>> matr; //Створюю двовимірний масив (Матрицю)
- Matrix(int x,int y ){ //Функція яка створює матрицю по цьому щаблону заданого розміру з нульовими елементами
- for (int i = 0; i < x; ++i) { //Для кожного рядка матриці
- vector<int> temp; //Створюємо масив
- for (int j = 0; j < y; ++j) { //І для кожного стовпця
- temp.push_back({0}); //Запихаємо в цей масив нуль
- }
- this->matr.push_back(temp); //Запихаємо цей масив в матрицю
- }
- }
- void FillMatr(){ //Функція для заповнення матриці числами
- for (int i = 0; i < this->matr.size(); i++) { //Для кожного рядка
- for (int j = 0; j < this->matr[i].size(); j++) { //Для кожного стовпця в рядку
- int n;
- cout << "Enter element a["<<i<<"]["<<j<<"]:";
- cin >> n; //Вводимо число
- this->matr[i][j]=n; //Присвоюю цьому елементу в рядку число яке ввели
- this->PrintMatr(); //Виводжу оновлену матрицю
- }
- }
- for (int i = 0; i < this->matr.size(); i++) { //Для кожного рядка
- int temp;
- temp=this->matr[i][0];
- this->matr[i][0]=this->matr[i].back();
- this->matr[i].back()=temp;
- }
- }
- void PrintMatr(){ //Функція для виведення матриці
- cout <<endl;
- for (int i = 0; i < this->matr.size(); i++) { //Для кожного рядка
- cout << "[";
- for (int j = 0; j < this->matr[i].size(); j++) { //Для кожного стовпця в рядку
- cout << " "<<this->matr[i][j] << " "; //виводимо елемент
- }
- cout << "]" <<endl;
- }
- }
- void maxbymodule(){ //Функція для підрахунку стовпців з нулями
- int max=0;
- for (int i = 0; i < this->matr.size(); i++) { //Для кожного рядка матриці
- for (int j = 0; j < this->matr[i].size(); j++) { //Для кожного стовпця в рядку
- if(abs(this->matr[i][j])>abs(max)){ //Перевіряємо чи цей елемент дорівнює нулю
- max=this->matr[i][j];
- }
- }
- }
- cout << "Biggest by module element is: "<<max<<endl; //Виводим результат
- }
- void summbetween(){ //Функція для пошуку найдовшого рядка одинакових елементів
- int summ=0;
- int flag =0;
- for (int i = 0; i < this->matr.size(); i++) { //Для кожного рядка матриці
- for (int j = 0; j < this->matr[i].size(); j++) { //Для кожного стовпця в рядку
- if(this->matr[i][j]>0){ //Перевіряємо чи цей елемент дорівнює нулю
- flag++;
- continue;
- }
- if(flag==1){
- summ+=this->matr[i][j];
- }
- }
- }
- cout << "Summ of elements between first and second positive numbers: "<<summ <<endl; //виводим результат
- }
- };
- int main() {
- int x=0,y=0; //Робимо змінні для розмірів матриці
- cout << "Enter amount of rows:";
- cin >> x; //Зчитуємо число рядків
- cout << "Enter amount of columns:";
- cin >> y; //Зчитуємо число стовпців
- Matrix<int> a(x,y); //Створюємо змінну(об'єкт) матриці з заданими розмірами
- a.PrintMatr(); //Викликаємо функцію що виведе створену пусту матрицю
- a.FillMatr(); //Викликаємо функцію що заповнить матрицю числами
- a.PrintMatr(); //Виводимо заповнену матрицю
- a.maxbymodule();
- a.summbetween();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement