rendered paste body/*Dla danej macierzy (tablicy dwuwymiarowej) m na n oraz listy słów należy znaleĽć położenie,w którym dane słowo z listy znajduje się w tej macierzy.Elementami macierzy s± pojedyncze litery, duże i małe nie s± rozróżniane.Szukamy w pionie, w poziomie i po ukosie. Dane: 1<=n,m<=50. */#include <iostream>#include <string.h>using namespace std;class Tablica{ char tablica[50][50]; int rozmiar; string szukaj; public: Tablica(int size); void Pokaz(); void Search(string szukaj);};Tablica::Tablica(int size){ if (size>=50) { cout ("ERROR\n"); return(0); } rozmiar=size; for(int i=0; i<rozmiar; i++) for(int j=0; j<rozmiar; j++) tablica[i][j]=(char)(rand()%25)+65;}void Tablica::Pokaz(){ cout << " "; for(int i=0; i<rozmiar; i++) { if(1+i>=10) cout << i+1 << " "; else cout << i+1 << " "; } cout << endl; for(int i=0; i<rozmiar; i++) { if(1+i>=10) cout << i+1 << " "; else cout << 1+i << " "; for(int j=0; j<rozmiar; j++) cout << tablica[i][j] << " "; cout << endl; }}void Tablica::Search(string szukaj){ for(int i=0; i<rozmiar; i++) { for(int j=0; j<rozmiar; j++) { if(tablica[i][j]==szukaj.at(0)) { int ok=1; for(int n=1; n<(signed)szukaj.length(); n++) { if(n+j>=rozmiar) break; if(tablica[i][j+n]==szukaj.at(n)) ok++; else break; if((signed)szukaj.length() == ok) { cout << "Przeszukujac tablice od lewej do prawej poziomo trafiłem na ciąg: \"" << szukaj << "\" w wierszu: " << i+1 <<" kolumnie " <<j+1<<endl; } } ok=1; for(int n=1; n<(signed)szukaj.length(); n++) { if(j-n<0) break; if(tablica[i][j-n]==szukaj.at(n)) ok++; else break; if ((signed)szukaj.length() == ok) { cout << "Przeszukujac tablicę od prawej do lewej poziomo trafiłem na ciag: \"" << szukaj << "\" w wierszu: " << i+1 << " kolumnie " << j+1 << endl; } } ok=1; for(int n=1; n<(signed)szukaj.length(); n++) { if((j+n>=rozmiar)||(i+n>=rozmiar)) break; if (tablica[i+n][j+n]==szukaj.at(n)) ok++; else break; if((signed)szukaj.length()==ok) { cout << "Przeszukujac tablicę po skosie w dol trafiłem na ciag: \"" << szukaj << "\" w wierszu: " << i+1 << " kolumnie " << j+1 << endl; } } ok=1; for(int n=1; n<(signed)szukaj.length(); n++) { if((j-n<0)|| (i-n<0)) break; if(tablica[i-n][j-n]==szukaj.at(n)) ok++; else break; if ((signed)szukaj.length()==ok) { cout << "Przeszukujac tablicę po skosie w Gore trafiłem na ciag: \"" << szukaj << "\" w wierszu: " << i+1 << " kolumnie " << j+1 << endl; } } } } }}int main(){ Tablica obiekt(50); obiekt.Pokaz(); string lancuch; cout << "\nPodaj łańcuch znaków jaki chcesz wyszukać: "; cin >> lancuch; obiekt.Search(lancuch);}