Przeczytaj
Przykładowe zadania maturalne
Zadanie 1. Liczby Fibonacciego
Liczby Fibonacciego są definiowane w następujący sposób:
Rekurencyjny algorytmalgorytm, który służy do obliczania wartości dla dowolnego , można zapisać następująco:
Zapisz w wybranej przez siebie notacji (w języku programowania lub w pseudokodzie) algorytm iteracyjnyiteracyjny, który służy do obliczania wartości liczby dla dowolnego . Algorytm nie może używać tablic.
Zadanie zostało opracowane przez CKE i pojawiło się na egzaminie maturalnym z informatyki w czerwcu roku (poziom rozszerzony).
Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python.
Przykładowe rozwiązanie:
Specyfikacja problemu:
Dane:
n
– liczba naturalna określająca wyraz ciągu Fibonacciego o indeksien
Wynik:
fn
– wartość wyrazu ciągu Fibonacciego o indeksien
Rozwiązanie przedstawimy w postaci pseudokodu. Na początek zauważmy, że dla każdego wyrazu ciągu Fibonacciego potrzebujemy znać dwa wyrazy go poprzedzające. Dwa początkowe wyrazy są znane, zatem bez problemu możemy wyliczyć trzeci. Podobnie dla wyrazu czwartego skorzystamy z wyrazu drugiego i trzeciego.
Zauważmy, że indeksy wyrazów potrzebnych do zbudowania kolejnego przesunęły się o jeden do przodu. Wystarczy zatem skorzystać z pomocniczej zmiennej, która przechowa n poprzedni z obu wyrazów. Wyrazem poprzednim stanie się obecny wyraz następny, a wyrazem następnym stanie się suma obecnego następnego i zmiennej pomocniczej. Powtarzając procedurę – 2 razy (dwa pierwsze wyrazy są już znane), możemy obliczyć wartość wyrazu ciągu Fibonacciego o indeksie .
Schemat przyznawania punktów:
– za poprawny algorytm (w tym za prawidłowe zapisanie warunków początkowych i iteracji 1 pkt).
– za zapamiętanie tylko dwóch poprzednich wyrazów ciągu.
– za podanie odpowiedzi błędnej albo za brak odpowiedzi.
Zadanie 2. Analiza algorytmu
Niech n
będzie nieujemną liczbą całkowitą, a T[1..n]
– tablicą zawierającą n
liczb całkowitych. Dla n = 0
tablica T
jest pusta (nie zawiera żadnego elementu). Przeanalizuj przedstawioną funkcję d(x)
, która rozszerza tablicę T
o liczbę całkowitą x
, a następnie przeprowadza pewną reorganizację zawartości tej tablicy.
Uwaga: w tym zadaniu przyjmujemy, że:
tablica
T
może być powiększana;jeśli wartość lewego argumentu operatora
oraz
jest tofałsz
, to wartość prawego argumentu nie jest wyliczana;div
jest operatorem oznaczającym część całkowitą z dzielenia.
Uzupełnij tabelę – wpisz zawartość tablicy T
po wykonaniu d(x)
z podanym parametrem x
:
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
| |
|
|
|
Zadanie zostało opracowane przez CKE i pojawiło się na egzaminie maturalnym z informatyki w roku (poziom rozszerzony). Cały arkusz można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.
Przedstaw rozwiązanie zadania w postaci programu w języku C++, Java lub Python.
Przykładowe rozwiązanie:
Specyfikacja problemu:
Dane:
n
– liczba naturalnaT[1..n]
– tablica zawierającan
liczb całkowitych
Wynik:
T[1..n]
– tablica liczb całkowitych powstała po wykonaniud(x)
Zgodnie z przedstawionym algorytmem wstawiamy element x
na koniec tablicy T
, jej nowy rozmiar zapisujemy do pomocniczej zmiennej s
, a następnie, dopóki s div 2
jest większe lub równe oraz element o indeksie s
jest większy od elementu o indeksie s div 2
, to zamieniamy oba elementy miejscami i dzielimy s
całkowitoliczbowo przez .
Dla drugiego wiersza s
wynosi , zatem pierwsza iteracja sprawdzi elementy o indeksach oraz . Element T[5]
jest jednak mniejszy od T[2]
, czyli warunek nie jest spełniony. Na koniec tablicy T
zostanie jedynie wstawiony argument x
o wartości .
|
Dla trzeciego wiersza s
wynosi , zatem najpierw sprawdzone zostaną elementy o indeksach oraz . Element T[4]
jest mniejszy, więc zostaną zamienione:
|
|
W drugiej iteracji sprawdzamy elementy o indeksach oraz . Ponownie zachodzi zamiana:
|
|
W ostatnim iteracji porównujemy dwa pierwsze elementy tablicy, dla których również spełniony jest warunek pętli:
|
|
Końcowa tabela przedstawia się następująco:
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Schemat przyznawania punktów:
– za poprawną odpowiedź w obu wierszach.
– za poprawną odpowiedź w jednym wierszu.
– za podanie odpowiedzi niepoprawnej albo za brak odpowiedzi.
Słownik
przepis postępowania prowadzący do rozwiązania ustalonego problemu, określający ciąg czynności elementarnych, które należy w tym celu wykonać
technika programowania polegająca na powtarzaniu tych samych operacji w pętli określoną liczbę razy lub do momentu, aż zostanie spełniony zadany warunek
dokument, który precyzyjnie określa, które elementy rozwiązania zadań są sprawdzane i w jaki sposób przyznawane są punkty