11
Pokaż ćwiczenia:
11
Ćwiczenie 1

W programie zdefiniowano zmienną slowo. Twoim zadaniem jest zbudowanie dla niej tablicy częściowych dopasowań metodą MP. W jednej linii wypisz tablicę dopasowań dla zmiennej, oddzielając jej elementy przecinkiem oraz spacją.

Przetestuj program dla zmiennej slowo = "tata".

Przypomnienie z poprzednich e‑materiałów:

W przeciwieństwie do metody KMP, metoda MP zakłada, że w momencie, gdy element występujący po znalezionym prefikso‑sufiksie będzie taki sam jak występujący po sufiksie, zamiast wpisywać wartość z tablicy na pozycji równej szerokości prefikso‑sufiksu, będziemy wpisywać do tablicy szerokość prefikso‑sufiksu.

Specyfikacja problemu:

Dane:

  • slowo – zmienna typu String

Wynik:

Program tworzy tablicę częściowych dopasowań metodą MP.

Przykładowe wyjście (slowo = "mama"):

Linia 1. minus 1 przecinek 0 przecinek 0 przecinek 1 przecinek 2.
RWHhL6hsncCjW
Wymyśl pytanie na kartkówkę związane z tematem materiału.
21
Ćwiczenie 2

W programie zdefiniowano tablicę zawierającą n słów. Twoim zadaniem jest zbudowanie dla nich tablic częściowych dopasowań metodą KMP. Dla każdego słowa wypisz w osobnej linii jego tablicę dopasowań, oddzielając jej elementy przecinkiem oraz spacją. Przetestuj działanie programu dla następującej tablicy:

Linia 1. String otwórz nawias kwadratowy zamknij nawias kwadratowy slowa znak równości otwórz nawias klamrowy. Linia 2. cudzysłów algorytm cudzysłów przecinek. Linia 3. cudzysłów metoda cudzysłów przecinek. Linia 4. cudzysłów mama cudzysłów przecinek. Linia 5. cudzysłów kajak cudzysłów przecinek. Linia 6. cudzysłów joanna cudzysłów. Linia 7. zamknij nawias klamrowy średnik.

Specyfikacja problemu:

Dane:

  • slowa – tablica składająca się z n elementów (łańcuchów znaków)

  • n – liczba naturalna dodatnia

Wynik:

Program tworzy tablicę częściowych dopasowań metodą KMP.

Przykładowe wyjście (slowa = {"cogito", "ergo", "sum", "carpe", "diem"):

Linia 1. minus 1 przecinek 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0. Linia 2. minus 1 przecinek 0 przecinek 0 przecinek 0 przecinek 0. Linia 3. minus 1 przecinek 0 przecinek 0 przecinek 0. Linia 4. minus 1 przecinek 0 przecinek 0 przecinek 0 przecinek 0 przecinek 0. Linia 5. minus 1 przecinek 0 przecinek 0 przecinek 0 przecinek 0.
RnLnFAWBAtAly
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
31
Ćwiczenie 3

Do programu z ćwiczenia 2 dodano ciąg znaków: tekst. Korzystając z uprzednio utworzonych tablic częściowych dopasowań, sprawdź, które elementy tablicy slowa występują w łańcuchu znaków tekst. Dla każdego słowa w osobnej linii wypisz TAK, jeśli pojawia się w tekście lub NIE – w przeciwnym wypadku.

Specyfikacja problemu:

Dane:

  • slowa – tablica składająca się z n elementów (łańcuchów znaków)

  • n – liczba naturalna dodatnia

  • tekst – ciąg znaków o długości m

  • m – liczba naturalna dodatnia

Wynik:

Program dla każdego słowa w osobnej linii wypisuje komunikat TAK lub NIE (w zależności od tego, czy pojawia się w tekście).

Rbjp1R2zhkl0e
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.