Spisok.h
#pragma once class Spisok { int size1; int size2; int **mas; public: Spisok(int,int); ~Spisok(); int get(int, int); // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² void get(); // Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΡΡ void sort1(int); //ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊΠΈ void sort2(int); //ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΡΠΎΠ»Π±ΡΠ° };
Spisok.cpp
#include "stdafx.h" #include "Spisok.h" #include <stdio.h> #include <stdlib.h> #include <time.h> #include<iostream> #include<conio.h> Spisok::Spisok(int n, int m) { size1 = n; size2 = m; mas = new int*[size1]; for (int i = 0; i < size1; i++) mas[i] = new int[size2]; srand(time(NULL)); for (int i = 0; i < size1; i++) for (int j = 0; j < size2; j++) mas[i][j] = rand() % 100; } //ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»Ρ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΠ°Π½Π΄ΠΎΠΌΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ Spisok::~Spisok() { } int Spisok::get(int n, int m) { return mas[n - 1][m - 1]; }//Π²ΡΠ²ΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ void Spisok::get() { for (int i = 0; i < size1; i++) { std::cout << "\n"; for (int j = 0; j < size2; j++) std::cout << mas[i][j] << "\t"; } }//Π²ΡΠ²ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΡΡ void Spisok::sort1(int n) { for (int i = 0; i < size2 - 1; i++) { if (mas[n][i] > mas[n][i + 1]) { int z; z = mas[n][i]; mas[n][i] = mas[n][i + 1]; mas[n][i + 1] = z; i = -1; } } }//ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊΠΈ void Spisok::sort2(int n) { for (int i = 0; i < size1 - 1; i++) { if (mas[i][n] > mas[i + 1][n]) { int z; z = mas[i][n]; mas[i][n] = mas[i + 1][n]; mas[i + 1][n] = z; i = -1; } } }//ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΡΠΎΠ»Π±ΡΠ°
Main file
#include "Spisok.h" #include <iostream> #include <stdio.h> #include <locale.h> #include <windows.h> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int i = 1, n = 1, m = 1; Spisok *T = nullptr; while (i != 0) { cout << endl << "ΠΠ°ΠΏΠΈΡΠΈΡΠ΅, ΡΡΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ"; cout << endl << "1)CΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ"; cout << endl << "2)ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ"; cout << endl << "3)ΠΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΡΡ"; cout << endl << "4)ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅"; cout << endl << "5)ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΡ"; cout << endl << "6)ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ" << endl; int b; cin >> b; switch (b) { case 1: { cout << endl << "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΏΠΈΡΠΊΠ°\n"; int n, m; cin >> n >> m; T = new Spisok(n, m); break; } case 2: { if (T == nullptr) std::cout << "ΠΠ΅ Π·Π°Π΄Π°Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΡΡ!!!\n"; else { cout << endl << "ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅\n"; int n, m; cin >> n >> m; cout << "\nΠ§ΠΈΡΠ»ΠΎ Π² ΡΡΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ =" << T->get(n, m); } break; } case 3: { if (T == nullptr) std::cout << "ΠΠ΅ Π·Π°Π΄Π°Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΡΡ!!!\n"; else T->get(); break; } case 4: { if (T == nullptr) std::cout << "ΠΠ΅ Π·Π°Π΄Π°Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΡΡ!!!\n"; else { cout << endl << "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ \n"; int z; cin >> z; T->sort1(z - 1); } break; } case 5: { if (T == nullptr) std::cout << "ΠΠ΅ Π·Π°Π΄Π°Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΡΡ!!!\n"; else { cout << endl << "ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ°\n"; int z; cin >> z; T->sort2(z - 1); } break; } case 6: { i = 0; break; } default: { cout << "Π’Π°ΠΊΠΎΠΉ Ρ-ΡΠΈΠΈ Π½Π΅Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ½ΠΎΠ²Π°"; break; } } } return 0; }
Help to implement the class inheritor containing additional methods for calculating the scalar product of two specified rows and / or two specified columns. Thank you very much in advance!!!