Matura z informatyki - rozwiązania zadań

Matura 2017

Zadanie 2.1

Jest to funkcja rekurencyjna, która zwraca zwiększony o 1 (gdy x jest nieparzyste) lub zmniejszony o 1 (gdy x jest parzyste) wynik siebie samej podzielonej bez reszty przez 2.

Jak zabrać się do obliczenia wyniku? Spróbujmy najpierw wykonać przykład, czyli wartość funkcji dla x=11.

1. W pierwszym kroku za x podstawiamy 11. Jest to wartość różna od 1, więc zgodnie z zadaniem wywołujemy ponownie funkcję licz, tym razem za x podstawimy 5, bo tyle wyniesie dzielenie bez reszty 11 przez 2.

2. Otrzymaną wartość, czyli 5 podstawiamy do funkcji licz, która jest niejako "wewnętrzna", w stosunku do funkcji z podpunktu 1.

3. Liczba 5 jest różna od 1, więc wywołujemy ponownie funkcję licz, tym razem za x podstawimy 2, bo tyle wyniesie dzielenie bez reszty 5 przez 2.

4. Otrzymaną wartość, czyli 2 podstawiamy do funkcji licz, która jest niejako "wewnętrzna", w stosunku do funkcji z podpunktu 3.

5. Liczba 2 jest różna od 1, więc wywołujemy ponownie funkcję licz, tym razem za x podstawimy 1, bo tyle wyniesie dzielenie bez reszty 2 przez 2.

4. Otrzymaną wartość, czyli 2 podstawiamy do funkcji licz, która jest niejako "wewnętrzna", w stosunku do funkcji z podpunktu 5.

6. Liczba 1 spełnia warunek postawiony na początku zadania. stąd zmienna w=1.

7. Teraz musimy wrócić drogą, którą tu przyszliśmy, czyli przechodzimy o poziom wyżej, do funkcji licz, która była wywołana z x=2. Nasze x=2 jest parzyste. tzn. operacja modulo zwróci nam 0, dlatego od zmiennej w, która nadal wynosi 1 odejmujemy 1. W tym momencie wartość w=0.

8. Przechodzimy znowu o poziom wyżej, do wywołania funkcji dla x=5. Nasze x=5 jest nieparzyste. tzn. operacja modulo zwróci nam 1, dlatego do zmiennej w, która wynosi 0 dodajemy 1. W tym momencie wartość w=1.

9. Przechodzimy znowu o poziom wyżej, do wywołania funkcji dla x=11. Nasze x=11 jest nieparzyste. tzn. operacja modulo zwróci nam 1, dlatego do zmiennej w, która wynosi 1 dodajemy 1. W tym momencie wartość w=2.

Wartość w dla licz(11) wynosi 2.

Podobnie rozwiązujemy kolejne podpunkty. Zauważ, że dla x=13 kluczowe będzie policzenie tego co zwróci funkcja dla x równego kolejno: 13, 6, 3, 1 (wartości powstałe z dzielenia modulo). Wiemy, że dla licz(1) wartość zmiennej w=1 (patrz wyżej podpunkt 6).  W związku z tym dla licz(3) (liczba nieparzysta, stąd w+1) wartość zmiennej w=2, dla licz(6) (liczba parzysta, stąd w-1) wartość zmiennej w=1,  dla licz(13) (liczba nieparzysta, stąd w+1) wartość zmiennej w=2.

Dla kolejnych podpunktów wyniki wyglądają następująco:

dla licz(21) w=1 (kolejne funkcje, które wywołujemy to: licz(21), licz(10), licz(5), licz(2), licz(1))

dla licz(32) w=-4 (kolejne funkcje, które wywołujemy to: licz(32), licz(16), licz(8), licz(4), licz(2), licz(1))

Obejrzyj na Youtube nasz film, który w formie prezentacji pokazuje rozwiązanie zadania: https://www.youtube.com/watch?v=Gi8TzERNbAo

© 2023 MaturaInformatyka.pl || Kontakt: admin(malpa)maturainformatyka.pl

Search