Matura informatyka zbiór zadań. Zadanie 61 - Ciągi.

Kliknij i wspomóż mnie :)

Python

Każdy przygotowywujący się do matury z informatyki spotyka się z różnymi zadaniami w języku c++. Obecnie coraz więcej szkół zaczyna korzystać z Python'a, a ja chcę w tej serii pokazać jak rozwiązywać przykładowe zadania.

Arkusz z zadaniami (Matura Zbiór zadań Informatyka) możesz znaleźć pod tym linkiem:

Matura Zbiór zadań Informatyka

Kod źródłowy do zadania wraz z plikami znajdziesz tutaj:

Github

Wczytywanie danych

Ciąg liczb całkowitych nazywamy ciągiem arytmetycznym, jeśli różnica między każdymi dwoma kolejnymi jego wyrazami jest identyczna. Ciągiem arytmetycznym jest na przykład ciąg (1, 3, 5, 7, 9). Jest to ciąg o różnicy 2, ponieważ każdy wyraz tego ciągu, poza pierwszym, różni się od poprzedniego wyrazu o 2. Ciąg (17, 22, 27, 32, 37) jest ciągiem arytmetycznym o różnicy 5.

W tym zadaniu rozpatrujemy tylko takie ciągi arytmetyczne, które mają dodatnią różnicę oraz co najmniej pięć wyrazów.

Informacji jest dużo, ale dla nas najważniejsze jest to, że doczynienia mamy z ciągami artmetycznymi o stałej różnicy.

Ważna jest także informacja o liczbie poprzedzającej ciąg. Można założyć, iż jest ona pomocna dla języka c++, gdzie wymagane jest zadeklarowanie wielkości tablicy.

Po części wczytywanie danych zostało omówione w pierwszym zadaniu tego cyklu:

Zadanie 60 - Dzielniki.

Funkcja wczytująca posiada parametr fileName, gdyż późniejsze zadanie wymaga odczytania podobnego pliku o tej samej strukturze.

W następnych linijkach dane są odczytywane i rozdzielane za pomocą funkcji split().

Ciągi artmetyczne

Podaj, ile spośród podanych w pliku ciagi.txt ciągów jest ciągami arytmetycznymi. Znajdź wśród nich ciąg o największej różnicy i oblicz jego różnicę.

Powyższy kod sprawdza podany ciąg liczb. Na początku wyznacza różnicę początkową. Jeśli wszystkie wyrazy rosną o podanę różnicę to zwraca True.

Ważnym elementem jest tutaj funkcja enumerate(). Pozwala ona na iterowanie po elementach oraz podawanie indeksu na raz :).

Na samym końcu sprawdzamy który ciąg jest artmetyczny i dodajemy go oraz jego różnicę. Ostatnim krokiem jest podanie ilości ciągów oraz największej różnicy.

Sześcian liczby

Dla każdego podanego ciągu znajdź — jeśli istnieje — największą występującą w nim liczbę, która jest pełnym sześcianem jakiejś liczby naturalnej (w pierwszym z przykładowych ciągów jest to `1 = 1^3`, w drugim — `27 = 3^3` ).

Bez użycia bibloteki math. Sprawdzanie czy liczba jest sześcianem innej liczby może wydać się nieco skomplikowane. Jednak w pythonie można skorzystać z prostego triku.

Kiedy mamy funkcję sprawdzającą czy liczba jest sześcianem możemy poszukać tych największych.

Kolejno wyszukujemy wszystkie sześciany w danym ciągu i umieszczamy w tablicy cubesInLine. Ze wszystkich liczb te największe dodajemy w tablicy cubes.

Błędne ciągi

Plik bledne.txt ma identyczną strukturę jak ciagi.txt, ale zawiera tylko 20 ciągów. Wiadomo jednak, że wszystkie występujące w nim ciągi są ciągami arytmetycznymi z jednym błędem: jeden z wyrazów w każdym ciągu został zastąpiony przez liczbę naturalną nienależą- cą do ciągu. Dla każdego ciągu znajdź i wypisz błędny wyraz.

Początkowe linie kodu odpowiadają za znalezienie różnicy. Poźniej porównujemy czy kolejne wyrazy spełniają regułę. Jeśli nie to dodajemy je do tablicy wrongNumbers oraz wskazujemy znalezienie.

Ostateczne wyniki jednak nie do końca pokrywają się z odpowiedziami. W arkuszu możemy przeczytać, że To zadanie może sprawić kłopoty bardzo szczególnego rodzaju.

Powodem jest rozważanie przypadków, kiedy błędny jest wyraz pierwszy lub drugi.

Ja jednak nie zamierzam rozważać tych przypadków i wywołać ostatecznie nasze funkcje :).

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.