Darmowe konto pozwoli wrócić do niego później.
Polecenie
W zaprezentowanej w tym punkcie funkcji REG(w,n) uzupełnij brakujące elementy tak, aby realizowała ona następującą specyfikację:
Specyfikacja:
Dane:
n – dodatnia liczba całkowita
w[1..n] – słowo złożone z liter A, B
Wynik:
– wartość reg(w).
Funkcja REG(w,n)
Darmowe konto pozwoli wrócić do niego później.
jeżeli n = 1
wynikiem jest ……………………
w przeciwnym przypadku
jeżeli n mod 2 = 0
m ← n / 2
w przeciwnym przypadku
m ← (n – 1) / 2
dla i=1,2,…,m wykonuj
jeżeli w[i] ≠ ……………………
podaj wynik 0 i zakończ wykonywanie funkcji
x ← w[1..m]
wynikiem jest 1 + ……………………
Uwaga: mod – reszta z dzielenia całkowitego
Poprawne uzupełnienia:
- Pierwsza luka: 1
- Druga luka: w[n+1-i]
- Trzecia luka: REG(w[1..m],m) lub REG(x,m)
Pełna funkcja:
Funkcja REG(w,n)
jeżeli n = 1
wynikiem jest 1
w przeciwnym przypadku
jeżeli n mod 2 = 0
m ← n / 2
w przeciwnym przypadku
m ← (n – 1) / 2
dla i=1,2,…,m wykonuj
jeżeli w[i] ≠ w[n+1-i]
podaj wynik 0 i zakończ wykonywanie funkcji
x ← w[1..m]
wynikiem jest 1 + REG(w[1..m],m)
poprawne uzupełnienie pierwszej luki (wynikiem jest 1).
poprawne uzupełnienie drugiej luki (w[i] ≠ w[n+1-i]).
poprawne uzupełnienie trzeciej luki (wynikiem jest 1 + REG(w[1..m],m) lub 1 + REG(x,m)).
Algorytm sprawdza, czy słowo jest palindromem. Warunek w[i] ≠ w[n+1-i] porównuje znaki z obu końców słowa.
Ocena według schematu punktowania CKE, zwykle w 15–30 s
Dowiedz się, ile punktów naprawdę zdobywasz. Zrób zdjęcie kartki albo wklej odpowiedź: Maturownik+ porówna ją ze schematem punktowania, policzy punkty i wytłumaczy, gdzie i dlaczego je tracisz.