Advertisement
PhotoShaman

Untitled

Dec 25th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <Windows.h>
  4. #include <iomanip>
  5. #include <clocale>
  6.  
  7. using namespace std;
  8. void vvod(char S[5][5], int n, int m);
  9. void vivod(char S[5][5], int n, int m);
  10. void poisk(char S[5][5], int n, int m);
  11.  
  12. int main()
  13. {
  14.     SetConsoleCP(1251);
  15.     SetConsoleOutputCP(1251);
  16.  
  17.     const int n = 5, m = 5;
  18.     char S[n][m];
  19.  
  20.     vvod(S, 5, 5);
  21.  
  22.     vivod(S, 5, 5);
  23.  
  24.     poisk(S, 5, 5);
  25.  
  26.     system("pause");
  27.  
  28. }
  29.  
  30. void vvod(char S[5][5], int n, int m)
  31. {
  32.     for (int i = 0; i < n; i++)
  33.     {
  34.         for (int j = 0; j < m; j++)
  35.         {
  36.             cout << "S[" << i + 1 << "][" << j + 1 << "] - ";
  37.             cin >> S[i][j];
  38.         }
  39.     }
  40.     system("cls");
  41. }
  42.  
  43. void vivod(char S[5][5], int n, int m)
  44. {
  45.     for (int i = 0; i < n; i++)
  46.     {
  47.         for (int j = 0; j < m; j++)
  48.         {
  49.             cout << setw(3) << S[i][j];
  50.         }
  51.         cout << endl;
  52.     }
  53.     cout << endl;
  54. }
  55.  
  56. bool prohod(char S[5][5], string slovo, int n, int m, int action)
  57. {
  58.     for (int i = 0; i < (int)slovo.size(); i++)
  59.     {
  60.         if (slovo[i] != S[n][m])
  61.         {
  62.             return false;
  63.         }
  64.         else if (i + 1 == slovo.size() && slovo[i] == S[n][m])
  65.         {
  66.             return true;
  67.         }
  68.         switch (action)
  69.         {
  70.         case 1: if (n <= (int)slovo.size()) n++; break;
  71.         case 2: if (n > 0) n--; break;
  72.         case 3: if (m <= (int)slovo.size()) m++; break;
  73.         case 4: if (n > 0) m--; break;
  74.         }
  75.     }
  76.     return false;
  77. }
  78.  
  79. void poisk(char S[5][5], int n, int m)
  80. {
  81.     string slovo;
  82.     cout << "Введите слово для поиска: ";
  83.     cin.ignore();
  84.     getline(cin, slovo);
  85.  
  86.     for (int i = 0; i < n; i++)
  87.     {
  88.         for (int j = 0; j < m; j++)
  89.         {
  90.             if (slovo[0] == S[i][j])
  91.             {
  92.                 if (slovo[1] == S[i + 1][j] && (i + 1) < n)
  93.                 {
  94.                     if (prohod(S, slovo, i, j, 1))
  95.                     {
  96.                         cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " вертикальное\n";
  97.                     }
  98.                 }
  99.                 if (slovo[1] == S[i - 1][j] && (i - 1) >= 0)
  100.                 {
  101.                     if (prohod(S, slovo, i, j, 2))
  102.                     {
  103.                         cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " вертикальное обратное\n";
  104.                     }
  105.                 }
  106.                 if (slovo[1] == S[i][j + 1] && (j + 1) < m)
  107.                 {
  108.                     if (prohod(S, slovo, i, j, 3))
  109.                     {
  110.                         cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " горизонтальное\n";
  111.                     }
  112.                 }
  113.                 if (slovo[1] == S[i][j - 1] && (j - 1) >= 0)
  114.                 {
  115.                     if (prohod(S, slovo, i, j, 4))
  116.                     {
  117.                         cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " горизонтальное обратное\n";
  118.                     }
  119.                 }
  120.             }
  121.         }
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement