/* 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 #include 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=10) cout << i+1 << " "; else cout << i+1 << " "; } cout << endl; for(int i=0; i=10) cout << i+1 << " "; else cout << 1+i << " "; for(int j=0; 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 " <=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); }