Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.70 KB | None | 0 0
  1. // Фигурывер2.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. // Фигуры.cpp: определяет точку входа для консольного приложения.
  5. //
  6.  
  7. #include "stdafx.h"
  8.  
  9.  
  10. //#include "stdafx.h"
  11.  
  12. #include <stdio.h>
  13.  
  14. #include <iostream>
  15.  
  16. #include <cstdlib>
  17.  
  18. #include <ctime>
  19.  
  20. #include<iomanip>
  21.  
  22. #include<list>
  23.  
  24. using namespace std;
  25.  
  26.  
  27. class Figuri {
  28.  
  29.     int **matrix;
  30.  
  31.     int M;
  32.  
  33. public:
  34.  
  35.     Figuri();
  36.  
  37.     void vvod();
  38.  
  39.     void vivod();
  40.  
  41.     void Zadanie1();
  42.  
  43.     void Zadanie2();
  44.  
  45.     void Zadanie3();
  46.  
  47.     void Zadanie4();
  48.  
  49. };
  50.  
  51. Figuri::Figuri() {
  52.  
  53.     cout << "Vvedite razmer matritci" << endl;
  54.  
  55.     cin >> M;
  56.  
  57.     matrix = new int *[M];
  58.  
  59.     for (int i = 0; i < M; i++)
  60.  
  61.         matrix[i] = new int[M];
  62.  
  63. }
  64.  
  65. void Figuri::vvod() {
  66.  
  67.     for (int i = 0; i < M; i++)
  68.  
  69.         for (int j = 0; j < M; j++) {
  70.  
  71.         //  cout << "Vvedite element " <<i<<" "<<j<< endl;
  72.  
  73.             //cin >> matrix[i][j];
  74.  
  75.             matrix[i][j] = rand() % 2;
  76.  
  77.         }
  78.  
  79. }
  80.  
  81. void Figuri::vivod() {
  82.  
  83.  
  84.  
  85.     for (int i = 0; i < M; i++) {
  86.         for (int N = 5; N < M; N++)
  87.             cout << "------------------------------------------" << endl;
  88.         for (int j = 0; j < M; j++) {
  89.             //  if (Pole[i][j] == -1) Pole[i][j]=p1;
  90.             if (matrix[i][j] < 0) cout << "| " << matrix[i][j] << "  |";
  91.             if ((matrix[i][j] < 10) && (matrix[i][j] >= 0))cout << "|  " << matrix[i][j] << "  |";
  92.             if (matrix[i][j] >= 10)cout << "| " << matrix[i][j] << "  |";
  93.         }
  94.         cout << "";
  95.         cout << endl;
  96.         for (int N = 0; N < M; N++)cout << "";
  97.     }
  98.     cout << "------------------------------------------";
  99.     cout << endl;
  100. }
  101.  
  102.  
  103. void Figuri::Zadanie1() {// Выводит номера строк в которых 0 и 1 строго чередуются
  104.  
  105.     int s = M / 2, kol1 = 0;
  106.     for (int i = 0; i < M-1; i++)
  107.     {
  108.         for (int j = 0; j < M-1; j++)
  109.             if (i == j)
  110.             {
  111.                 //if ((matrix[i][j] == 0) && (matrix[i + 1][j + 1] == 1) && i<M - 1 && j<M - 1)
  112.                 if ((matrix[i][j] == 0) && (matrix[i + 1][j + 1] == 1))
  113.                 {
  114.                     kol1++;
  115.                 }
  116.             }
  117.  
  118.     }
  119.     if (kol1 == s)cout << "strogoe cheredovanie na glavnoi diagonali" << endl;
  120.     else cout << "net strogogo cheredovaniya na glavnoi diagonali" << endl;
  121.  
  122. }
  123.  
  124. void Figuri::Zadanie2()//Находит на главной диагонали наибольшей длины цепочку элементов
  125.  
  126. {
  127.  
  128.  
  129.     int kol1 = 0;
  130.     int kol2 = 0;
  131.     int kol3 = 0;
  132.     int n = 0, n1 = 0;
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.     for (int j = 0; j < M; j++)
  140.     {
  141.  
  142.         kol1 = 1;
  143.         kol2 = 1;
  144.  
  145.         for (int i = 0; i < M - 1; i++) {
  146.  
  147.             if (matrix[i][j] == 1 && matrix[i + 1][j] == 1)
  148.             {
  149.                 n = i;
  150.                 n1 = j;
  151.                 //cout << n << " " << i << endl;
  152.  
  153.             }
  154.  
  155.  
  156.  
  157.  
  158.             if (matrix[i][j] == 1 && matrix[i + 1][j] == 1)
  159.             {
  160.                 kol1++;
  161.  
  162.  
  163.             }
  164.             if (matrix[i][j] == 0 && matrix[i + 1][j] == 0)
  165.             {
  166.                 kol2++;
  167.  
  168.  
  169.             }
  170.             if (kol1 > kol2)kol3 = kol1;
  171.             if (kol1 < kol2)kol3 = kol2;
  172.  
  173.         }
  174.  
  175.  
  176.         cout << "V " << j << " stolbtse tsepochka iz " << kol3 <<  endl;
  177.  
  178.     }
  179.  
  180. }
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. void Figuri::Zadanie3()
  188. {
  189.     int kol = 0;
  190.     for (int i = 0; i < M; i++)
  191.  
  192.     {
  193.  
  194.         for (int j = 1; j < M; j++)
  195.  
  196.         {
  197.             //if (matrix[i][j] != matrix[i - 1][j - 1] && matrix[i][j] != matrix[i - 1][j] && matrix[i][j] != matrix[i - 1][j + 1] && matrix[i][j] != matrix[i][j - 1]
  198.             //  && matrix[i][j] != matrix[i][j + 1] && matrix[i][j] != matrix[i + 1][j - 1] && matrix[i][j] != matrix[i + 1][j] && matrix[i][j] != matrix[i +1][j + 1]&&i<M-1&&j<M-1&&i>0&&j>0)
  199.             if (i = j) {
  200.                 if (i > 0 && j > 0 && j < M - 1 && i < M - 1 && matrix[i][j] != matrix[i + 1][j + 1] && matrix[i][j] != matrix[i - 1][j - 1] && matrix[i][j] != matrix[i - 1][j + 1] && matrix[i][j] != matrix[i + 1][j - 1] && matrix[i][j] != matrix[i - 1][j] && matrix[i][j] != matrix[i + 1][j] && matrix[i][j] != matrix[i][j - 1] && matrix[i][j] != matrix[i][j + 1])
  201.                 {
  202.                     kol++;
  203.                     cout << "i= " << i << "j= " << j << endl;
  204.                 }
  205.             }
  206.            
  207.         }
  208.     }
  209.     if (kol == 0) cout << "sovpadeniy net" << endl;
  210. }
  211.  
  212. void Figuri::Zadanie4()//Выводит количество V-образных фигур
  213.  
  214. {
  215.  
  216.     int kolvo = 0;
  217.  
  218.     int kolvo1 = 0;
  219.  
  220.     for (int i = 0; i < M; i++)
  221.  
  222.     {
  223.  
  224.         for (int j = 1; j < M; j++)
  225.  
  226.         {
  227.             //cout << i << " " << j << endl;
  228.             //if (matrix[i][j] == matrix[i][j - 1] && matrix[i][j] == matrix[i][j + 1] && matrix[i][j] == matrix[i - 1][j] && matrix[i][j] == matrix[i +1][j])
  229.             //if (matrix[i][j] == matrix[i + 1][j - 1] && matrix[i][j] == matrix[i + 2][j - 2] && matrix[i][j] == matrix[i + 1][j + 1] && matrix[i][j] == matrix[i + 2][j + 2])
  230.             if (i>0 && j>0 && j<M - 1 && i<M - 1 && matrix[i][j] == matrix[i][j - 1] && matrix[i][j] == matrix[i][j + 1] && matrix[i][j] == matrix[i - 1][j] && matrix[i][j] == matrix[i + 1][j])
  231.             {
  232.  
  233.                 kolvo++;
  234.  
  235.                 cout << "Centr " << i << " " << j << endl;
  236.  
  237.             }
  238.  
  239.         }
  240.  
  241.     }
  242.  
  243.     cout << "Kol-vo X figur : " << kolvo << endl;
  244.  
  245.     for (int i = 0; i < M; i++)
  246.  
  247.     {
  248.  
  249.         for (int j = 0; j < M; j++)
  250.  
  251.         {
  252.             if (i>0 && j>0 && j<M - 1 && i<M - 1 && matrix[i][j] == matrix[i + 1][j + 1] && matrix[i][j] == matrix[i - 1][j - 1] && matrix[i][j] == matrix[i - 1][j + 1] && matrix[i][j] == matrix[i + 1][j - 1])
  253.                 //if (matrix[i][j] == matrix[i + 1][j + 1] && matrix[i][j] == matrix[i + 2][j + 2] && matrix[i][j] == matrix[i][j + 2] && matrix[i][j] == matrix[i+2][j])
  254.             {
  255.  
  256.                 kolvo1++;
  257.  
  258.                 cout << "Centr " << i << " " << j << endl;
  259.  
  260.             }
  261.  
  262.         }
  263.  
  264.     }
  265.  
  266.     cout << "Kol-vo X figur drygie : " << kolvo1 << endl;
  267.  
  268.     cout << "Vsego figur : " << kolvo + kolvo1 << endl;;
  269.  
  270. }
  271.  
  272. int main() {
  273.  
  274.     setlocale(LC_ALL, "Russian");
  275.  
  276.     srand(time(0));
  277.  
  278.     Figuri A;
  279.  
  280.     A.vvod();
  281.  
  282.     A.vivod();
  283.  
  284.     A.Zadanie1();//+
  285.  
  286.     A.Zadanie2();
  287.  
  288.     A.Zadanie3();//+
  289.  
  290.     A.Zadanie4();//+
  291.  
  292.     system("pause");
  293.  
  294.     return 0;
  295.  
  296. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement