Zadanie 2. Długość napisów binarnych (7 pkt.)

Treść zadania

Opisana poniżej funkcja rekurencyjna wyznacza dla liczby naturalnej n>0 długość napisu uzyskanego przez sklejenie binarnych reprezentacji liczb naturalnych od 1 do n-1.

Funkcja sklej(n)

Krok 1. Jeśli n=1, to podaj 0 jako wynik i zakończ działanie.

Krok 2. Jeśli n parzysta, to wynikiem jest n-1+2·sklej(n:2).

Krok 3. Jeśli n jest nieparzysta, to wynikiem jest n-1+sklej((n-1):2)+sklej((n+1):2).

b) Uzupełnij tabelę, podając wartości funkcji sklej dla wskazanych argumentów.

n

sklej(n)

1

0

2

1

3

4

5

6

Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w 2011 roku (poziom rozszerzony). Cały arkusz można znaleźć na stronie internetowej CKE.

Przykładowe rozwiązanie:

Obliczmy kolejne wartości podane w tabeli.

sklej(3)=31+sklej((31)2)+sklej((3+1)2)=

=2+sklej(1)+sklej(2)=2+0+1=3

sklej(4)=41+2·sklej(42)=3+2·sklej(2)=

=3+2·1=3+2=5

sklej(5)=51+sklej((51)2)+sklej((5+1)2)=

4+sklej(2)+sklej(3)=4+1+3=8

sklej(6)=61+2·sklej(62)=5+2·sklej(3)=

=5+2·3=5+6=11

Schemat oceniania

Korzystanie z informacji

Obliczenie kolejnych wartości funkcji dla wskazanych argumentów

Poprawna odpowiedź

n

sklej(n)

1

0

2

1

3

3

4

5

6

11 

2 pkt – za poprawne uzupełnienie wartości funkcji w tabeli

1 pkt – za uzupełnienie wartości funkcji w tabeli z jednym błędem

0 pkt – za wypełnioną tabelę z więcej niż jednym błędem albo brak odpowiedzi

Schemat oceniania pochodzi z arkusza odpowiedzi wykorzystywanego podczas egzaminu maturalnego z informatyki w 2011 roku (na poziomie rozszerzonym). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.

Zwróćmy uwagę na schemat oceniania w tym zadaniu. Za prawidłowo wypełnioną tabelę uzyskamy 2 punkty. Gdy jedna z wartości będzie błędna, otrzymamy 1 punkt. Z tego powodu zawsze warto sprawdzić poprawność otrzymywanych wyników.

Problem 1

Przeanalizuj działanie funkcji sklej(n), a następnie rozwiąż zadanie.

Funkcja sklej(n)

Krok 1. Jeśli n=1, to podaj 0 jako wynik i zakończ działanie.

Krok 2. Jeśli n parzysta, to wynikiem jest n-1+2·sklej(n:2).

Krok 3. Jeśli n jest nieparzysta, to wynikiem jest n-1+sklej((n-1):2)+sklej((n+1):2).

a) Wykonanie funkcji sklej można przedstawić w postaci drzewa wywołań rekurencyjnych, ilustrującego wszystkie wywołania funkcji po jej uruchomieniu dla zadanego argumentu. Rysunek przedstawia takie drzewo dla wywołania sklej(5).

R18Z466M24X17
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Polecenie 1

Narysuj podobne drzewo dla wywołania sklej(7).

Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w 2011 roku (poziom rozszerzony, część I). Cały arkusz można znaleźć na stronie internetowej CKE.

Polecenie 2

Porównaj swoje rozwiązanie z prezentacją, w której krok po kroku przedstawiono tworzenie schematu reprezentującego drzewo wywołań rekurencyjnych dla funkcji sklej(7).

R1OU2RR33NZ1D1
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Za prawidłowe drzewo wywołań funkcji sklej dostajemy 1 pkt, w innym przypadku dostajemy 0 pkt. Schemat oceniania pochodzi z arkusza odpowiedzi wykorzystanego podczas egzaminu maturalnego z informatyki w 2011 roku (na poziomie rozszerzonym). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.