Sprawdzian obejmuje samodzielne rozwiązanie 2–3 zadań programistycznych (90 minut) w języku Python, analogicznie do zadań z arkusza maturalnego rozszerzonego. Oceniana jest zarówno poprawność działania, jak i jakość (czytelność, efektywność) kodu.
| Obszar | Kluczowe zagadnienia | Blok |
|---|---|---|
| Efektywność | Notacja O(n), analiza pętli | 02 |
| Rekurencja | Warunek stopu, stos wywołań, fraktale | 03 |
| Dziel i zwyciężaj | Potęgowanie, wyszukiwanie binarne, min/max | 04 |
| Metody numeryczne | Bisekcja, schemat Hornera, pierwiastek | 05 |
| Algorytmy tekstowe | Cezar, palindromy, wzorce | 06 |
| Grafy | Reprezentacja, BFS, DFS | 07 |
| Sortowanie | MergeSort, QuickSort, Counting Sort | 08–09 |
| Teoria liczb | Sito, Euklides, systemy liczbowe | 10 |
| Pliki | Odczyt/zapis .txt, moduł csv | 11 |
| Struktury danych | Stos, kolejka, lista, ONP | 12 |
| OOP | Klasy, dziedziczenie, polimorfizm | 13–14 |
| PD i zachłanność | Memoizacja, LCS, algorytm Kadane'a | 15 |
Napisz program, który wczytuje z pliku liczby.txt ciąg liczb całkowitych (po jednej w linii), a następnie:
a) wypisuje wszystkie liczby pierwsze z tego ciągu,
b) sortuje ciąg algorytmem MergeSort i zapisuje wynik do pliku posortowane.txt,
c) wyznacza długość najdłuższego spójnego podciągu o rosnących wartościach.
To zadanie łączy trzy bloki: sprawdzanie pierwszości można oprzeć o sito Eratostenesa (Blok 10) lub prostszą funkcję pomocniczą; sortowanie — gotowa funkcja merge_sort z Bloku 08; najdłuższy rosnący podciąg spójny liczy się jednym przejściem liniowym (podobnie jak algorytm Kadane'a z Bloku 15, tylko śledzimy długość zamiast sumy).
str → int/float po wczytaniu danych z pliku.with open(...)).Rozwiąż samodzielnie (na czas, 45 minut) zadanie z sekcji 3 bez podglądania wskazówek. Po ukończeniu porównaj swoje podejście z proponowanym rozwiązaniem i zanotuj, które fragmenty sprawiły najwięcej trudności — to Twoja osobista mapa do powtórki przed właściwym sprawdzianem.
1. Ile czasu trwa sprawdzian praktyczny opisany w tym bloku?
2. Który błąd jest najczęstszy przy pracy z danymi wczytanymi z pliku?
3. Który algorytm z Semestru I ma złożoność O(n log n) w każdym przypadku?