1
Polecenie 1

Rozważ następującą funkcję rekurencyjną, wyznaczającą n‑ty wyraz ciągu Fibonacciego, a następnie zapoznaj się z apletem prezentującym jej kolejne wywołania.

Linia 1. funkcja fib otwórz nawias okrągły n zamknij nawias okrągły. Linia 2. jeżeli n otwórz nawias ostrokątny 2. Linia 3. zwróć n. Linia 4. zwróć fib otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus fib otwórz nawias okrągły n minus 2 zamknij nawias okrągły.
RulZIWQ1WZZnA
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Symulacja przedstawia liczenie wybranego elementu z ciągu Fibonacciego.

Na górze ustawiono pole, w którym wpisuje się numer wybranego elementu do wyliczenia.
Pod nim dwa przyciski, wstecz oraz dalej.

Po środku ekranu znajduje się napis fib ( wybrana liczba ).

Od tego napisu poprowadzone zostaną rozgałęzienia, z czego każde zakończone będzie podobnym napisem, pierwsze rozgałęzienie będzie miało napis fib ( wybrana liczba - 1), zaś napis w drugiej gałęzi: napis fib (wybrana liczba - 2).

To zachowanie będzie się powtarzało przy każdym kliknięciu przycisku dalej, aż do momentu, w którym wybrana liczba – po stosownym odejmowaniu – osiągnie wartość 1 lub 0.

W przypadku osiągnięcia wartości 1 lub 0, wynik funkcji zostaje zwrócony jako 1 lub 0 odpowiednio, wtedy każdy wynik zostaje kolejno dodany i tym samym gałęzie zostają usunięte.

Po usunięciu gałęzi na jednym poziomie, schodzenie inną sąsiadującą gałęzią się powtarza.

Algorytm następnie polega na zsumowaniu wszystkich kolejnych wyników rozgałęzień i uzyskaniu wyniku dla początkowej wybranej liczby.

Zadanie 2

Bartek zapisał na kartce 1000 par liczb, każda para w osobnej linii. Pierwsza liczba oznacza klucz danej linii, druga natomiast jej wartość.

W pliku liczby.txt znajduje się 1000 par liczb, każda w osobnej linii. Każdy klucz to liczba naturalna z przedziału <1, 2000>.

R4HQMEAnJnT6D

Przycisk do pobrania pliku TXT z treścią zadania.

Plik TXT o rozmiarze 9.12 KB w języku polskim
Polecenie 2

Napisz program, który dla pliku liczby.txt wyznaczy linie, których klucze są wyrazami ciągu Fibonacciego, a następnie wypisze tylko parzyste wartości tych linii. Wyniki zapisz w pliku wynik.txt. Pamiętaj, że linie numerujemy od 1.

R1KVeQ37Xtl7U
Przykład 1

Dla przykładowych danych:

Linia 1. 50 222. Linia 2. 3 12. Linia 3. 1 15. Linia 4. 1 300. Linia 5. 51 292. Linia 6. 100 327.

Plik wynikowy powinien wyglądać następująco:

Linia 1. 12. Linia 2. 300.

Do oceny oddajesz:

  • plik wynik.txt, zawierający odpowiedź do zadania (wartości – drugie liczby – linii z pliku liczby.txt, które są parzyste oraz których klucze – pierwsze liczby z linii – są liczbami ciągu Fibonacciego),

  • plik(i) z komputerową realizacją zadania (kodem programu)·

Odpowiedź do zadania

Twoim zadaniem jest opracowanie rozwiązania zadania w wybranym przez siebie języku programowania: C++, Java lub Python. Odpowiedź do zadania dla danych z pliku znajdziesz na dole strony.

Rozwiązanie

Rozwiązanie zadania przedstawimy w postaci pseudokodu, ponieważ na egzaminie maturalnym można korzystać z wybranego języka programowania: C++, Java lub Python.

Na początku wczytujemy dane z pliku do tablicy. Następnie chcemy obliczyć elementy ciągu Fibonacciego, które wynoszą maksymalnie 2000. Dzięki temu nie będziemy musieli wykonywać tego za każdym razem, gdy będziemy sprawdzać klucz. Zapisujemy je w tablicy. Gdy jest ona gotowa, tworzymy dwie pętle, które sprawdzają, czy klucz linii (pierwsza liczba) jest elementem ciągu Fibonacciego, oraz czy wartość linii (druga liczba) jest liczbą parzystą. Jeżeli tak jest, wpisujemy wartość linii do pliku wynikowego i przerywamy pętlę wewnętrzną.

Linia 1. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 wykonuj dwukropek. Linia 2. liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy ← wczytaj pierwszą liczbę z linii z pliku cudzysłów liczby kropka txt cudzysłów. Linia 3. liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy ← wczytaj drugą liczbę z linii z pliku cudzysłów liczby kropka txt cudzysłów. Linia 4. przejdź do nowej linii w pliku cudzysłów liczby kropka txt cudzysłów. Linia 6. wartość ← 1. Linia 8. fibonacci kropka dodaj otwórz nawias okrągły 0 zamknij nawias okrągły. Linia 10. dopóki wartość otwórz nawias ostrokątny 2000 dwukropek. Linia 11. fibonacci kropka dodaj otwórz nawias okrągły wartość zamknij nawias okrągły. Linia 12. wartość ← wartość plus fibonacci otwórz nawias kwadratowy długość otwórz nawias okrągły fibonacci zamknij nawias okrągły minus 2 zamknij nawias kwadratowy. Linia 14. fibonacci kropka dodaj otwórz nawias okrągły wartość zamknij nawias okrągły. Linia 16. dla i znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek 999 dwukropek. Linia 17. dla j znak równości 0 przecinek 1 przecinek kropka kropka kropka przecinek długość otwórz nawias okrągły fibonacci zamknij nawias okrągły dwukropek. Linia 18. jeżeli liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy znak równości znak równości fibonacci otwórz nawias kwadratowy j zamknij nawias kwadratowy oraz liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy mod 2 znak równości znak równości 0 dwukropek. Linia 19. wpisz liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy do nowej linii w pliku cudzysłów wynik kropka txt cudzysłów. Linia 20. przerwij pętlę.
Ważne!

Funkcja dodaj(x) oznacza dodanie elementu x na koniec zbioru danych (tablicy), na którym jest wywoływana, natomiast mod oznacza operację modulo.

Odpowiedź do zadania

Odpowiedź do zadania znajduje się w pliku:

RexI2IjnVfIQj

Przycisk do pobrania pliku TXT z wynikiem zadania.

Plik TXT o rozmiarze 41.00 B w języku polskim