Wyszukany ciąg
Zadanie polega na tym, że wpisuję podany tekst, a następnie wyszukuję w nim ciąg znaków. No i powiedzmy podaję taki tekst: "Siała baba mak mak". Szukana fraza: "mak". No i otrzymane wyniki.
Tekst: S, i, a, ł, a, , b, a, b, a, , m, a, k, , m, a, k,
Szukane: m, a, k,
Wyniki: I, :, 1, 1, I, :, 1, 5,
Czyli tak, podaję dla interpretera ciąg znaków, szukaną frazę, a ten mi wyświetla wyniki czyli wyszukane indeksy. Wyszukany indeks to początkowy indeks danej frazy. Nie zrobiłem tego przy udziale standardowych metod klasy String, bo wiadomo interpreter tego nie przepuści. Podaję dane i tak, szukam wystąpienia pierwszego znaku z tego szukanego ciągu znaków w tekście. U mnie jest to litera "m". Cała metoda jest po prostu wartownikiem, ona że tak powiem jest warta tego, żeby programowanie albo polubić do granic albo znienawidzić, ja je polubiłem, uff. Słyszałem już o podejściu wartownika, ale w tym zadaniu są jeszcze inne podejścia. Jest podejście, które sam stworzyłem czyli tzw. loc_index. "loc_index" czyli indeks loci, numer loci czyli wchodzimy w genetykę. No ale nie teraz o tym. Dobra, powiedzmy że znalazłem literę "m". Spoko, kolejna rzecz. Wyraz "mak", muszę sprawdzić czy nie wyjdę poza zakres tablicy z tekstem.
W tym celu sprawdzam indeks tej litery "m" w tekście i odległość jej od końca tekstu. Jak ta odległość jest większa lub równa szukanej frazie czyli tutaj wyrazowi "mak" no to sprawdzam, czy kolejne znaki szukanej frazy są takie same jak znaki w tekście. Jak wszystko się zgadza to sprawdzam znaki. Jak wszystkie znaki są takie same to ustawiam flagę o nazwie "wart" na wartość "true". Flaga to po prostu zmienna logiczna która sprawdza pewne rzeczy. No i jak flaga "wart" ma wartość "true" to dodaję początkowy indeks do wewnętrznej tablicy, którą potem na końcu zwracam żeby wyświetlić wszystkie znalezione indeksy. Odczyt indeksu wygląda tak: I:11, 15. Tam gdzie jest "I:" tam jest oznaczenie w wynikach indeksów. Inaczej po prostu by się przemieszały i nie wiadomo by było jak odczytać wyniki. I tak to wykonanie wygląda. Przykłady dla innych wyszukań.
Tekst: S, i, a, ł, a, , b, a, b, a, , m, a, k, , m, a, k,
Szukane: b, a, b, a,
Wyniki: I, :, 6,
Tekst: S, i, a, ł, a, , b, a, b, a, , m, a, k, , m, a, k,
Szukane: m, a, k, a,
Wyniki:
Tekst: S, i, a, ł, a, , b, a, b, a, , m, a, k, , m, a, k,
Szukane: S, i, a, ł, a,
Wyniki: I, :, 0,