Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <Windows.h>
- #include <iomanip>
- #include <clocale>
- using namespace std;
- void vvod(char S[5][5], int n, int m);
- void vivod(char S[5][5], int n, int m);
- void poisk(char S[5][5], int n, int m);
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- const int n = 5, m = 5;
- char S[n][m];
- vvod(S, 5, 5);
- vivod(S, 5, 5);
- poisk(S, 5, 5);
- system("pause");
- }
- void vvod(char S[5][5], int n, int m)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- cout << "S[" << i + 1 << "][" << j + 1 << "] - ";
- cin >> S[i][j];
- }
- }
- system("cls");
- }
- void vivod(char S[5][5], int n, int m)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- cout << setw(3) << S[i][j];
- }
- cout << endl;
- }
- cout << endl;
- }
- bool prohod(char S[5][5], string slovo, int n, int m, int action)
- {
- for (int i = 0; i < (int)slovo.size(); i++)
- {
- if (slovo[i] != S[n][m])
- {
- return false;
- }
- else if (i + 1 == slovo.size() && slovo[i] == S[n][m])
- {
- return true;
- }
- switch (action)
- {
- case 1: if (n <= (int)slovo.size()) n++; break;
- case 2: if (n > 0) n--; break;
- case 3: if (m <= (int)slovo.size()) m++; break;
- case 4: if (n > 0) m--; break;
- }
- }
- return false;
- }
- void poisk(char S[5][5], int n, int m)
- {
- string slovo;
- cout << "Введите слово для поиска: ";
- cin.ignore();
- getline(cin, slovo);
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- if (slovo[0] == S[i][j])
- {
- if (slovo[1] == S[i + 1][j] && (i + 1) < n)
- {
- if (prohod(S, slovo, i, j, 1))
- {
- cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " вертикальное\n";
- }
- }
- if (slovo[1] == S[i - 1][j] && (i - 1) >= 0)
- {
- if (prohod(S, slovo, i, j, 2))
- {
- cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " вертикальное обратное\n";
- }
- }
- if (slovo[1] == S[i][j + 1] && (j + 1) < m)
- {
- if (prohod(S, slovo, i, j, 3))
- {
- cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " горизонтальное\n";
- }
- }
- if (slovo[1] == S[i][j - 1] && (j - 1) >= 0)
- {
- if (prohod(S, slovo, i, j, 4))
- {
- cout << "Слово " << slovo << " начинается с координат " << i + 1 << " - " << j + 1 << " горизонтальное обратное\n";
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement