Przejdź do treści
Zadania praktyczne: plan przygotowań
Zadania praktyczne na maturze z informatyki — jak się przygotować

Zadania praktyczne na maturze z informatyki — jak się przygotować

W skrócie — jak wygrywa się zadania przy komputerze
  • Przeczytaj cały arkusz przed pisaniem kodu. Zadania nie są ułożone od najłatwiejszego. Kolejność rozwiązywania wybierasz sam i to jedna z niewielu decyzji, które realnie zmieniają wynik.

  • Najpierw wczytanie danych, potem cokolwiek innego. Wypisz trzy pierwsze wiersze i sprawdź typ jednego elementu. Zepsute wczytanie psuje wszystkie podpunkty zadania naraz.

  • Testuj na próbce, licz na całości. Kilkadziesiąt wierszy wystarczy, żeby zobaczyć, czy logika działa — i pozwala poprawiać kod w sekundę zamiast czekać na przeliczenie stu tysięcy rekordów.

  • Zapisuj każdy podpunkt do pliku od razu po policzeniu. Wynik trzymany tylko w konsoli przepada przy pierwszym zawieszeniu edytora, a sprawdzany jest plik, nie ekran.

  • Ostatnie kwadranse to nie nowe zadanie, tylko format. Nazwy plików, liczba miejsc po przecinku, kolejność kolumn, opis podpunktu. Punkty odzyskane tutaj kosztują najmniej czasu.

Zadania praktyczne nie sprawdzają, czy znasz definicje, tylko czy potrafisz w ograniczonym czasie doprowadzić plik z danymi do konkretnej odpowiedzi. Można świetnie rozumieć algorytmy i wyjść z sali z połową pustych podpunktów, bo pierwsze zadanie zjadło godzinę, dane wczytały się jako napisy, a wyniki zostały w konsoli.

Ten wpis jest planem pracy, a nie listą tematów do nauczenia. Znajdziesz tu: jak wygląda stanowisko egzaminacyjne, jak rozłożyć czas na zadania, jak bezpiecznie pracować z plikami danych, jakie są cztery powtarzalne typy zadań i schemat rozwiązania każdego z nich, oraz gotowy harmonogram ośmiu tygodni przygotowań.

Jak wygląda stanowisko egzaminacyjne#

Zacznijmy od rzeczy, która wciąż bywa mylona: w Formule 2023 nie ma podziału na część teoretyczną i praktyczną. Jest jeden arkusz rozwiązywany przez 210 minut, a komputer stoi na stanowisku przez cały ten czas. Podział 60 + 150 minut na dwie osobne części to stara Formuła 2015 — jeśli ktoś Ci tak mówi albo znajdziesz to w starszym poradniku, jest to nieaktualne.

Zadania są mieszane. Część odpowiedzi wpisujesz wyłącznie do arkusza papierowego, ale — cytując informator CKE — „rozwiązanie większości zadań wymaga użycia komputera i zapisania komputerowej realizacji rozwiązania". Za cały arkusz można zdobyć 50 punktów, z czego około 60% przypada na analizę algorytmów i programowanie, a około 90% to zadania otwarte.

Dostajesz arkusz z treścią zadań oraz katalog z plikami danych, a odpowiedzi zapisujesz do plików w swoim katalogu zdającego. Zapamiętaj jedną rzecz z informatora: brak pliku z komputerową realizacją rozwiązania jest traktowany jak brak rozwiązania — nawet jeśli na papierze opisałeś, co program miał robić.

Trzy rzeczy, które warto wiedzieć wcześniej niż w dniu egzaminu:

  • Oprogramowanie deklaruje się z wyprzedzeniem. Szkoła zgłasza, w jakim środowisku będziesz pracować — język programowania, arkusz kalkulacyjny, system bazodanowy. Nie wybierzesz sobie tego rano przy stanowisku. Dokładny termin złożenia deklaracji sprawdź u dyrektora szkoły.
  • Nie ma internetu. Do dyspozycji masz to, co zainstalowane, w tym dokumentację offline, jeśli jest. Żadnego wyszukiwania składni, żadnego gotowego kodu ze swojego repozytorium.
  • Nie wnosisz własnych notatek ani nośników. Listę dozwolonych przyborów określa komunikat dyrektora CKE dla danej sesji — przeczytaj go, zamiast opierać się na tym, co mówili starsi koledzy.

Praktyczny wniosek: poproś nauczyciela o dostęp do pracowni i rozwiąż tam przynajmniej dwa arkusze. Nie chodzi o zadania, tylko o środowisko. Inny edytor, inna wersja arkusza kalkulacyjnego, inny układ klawiatury i nagle połowa Twoich odruchów nie działa. To najtańsza rzecz, jaką możesz zrobić dla swojego wyniku, a prawie nikt jej nie robi.

Co sprawdzić w pracowni przed egzaminem
  • Czy Twój edytor uruchamia program jednym skrótem? Jeśli musisz klikać przez menu, poznaj skrót teraz — uruchomień będzie kilkadziesiąt.

  • Gdzie edytor zapisuje pliki domyślnie? Program szukający pliku dane.txt musi wiedzieć, gdzie ten plik leży. Najprościej: kod i dane w tym samym katalogu.

  • Jak zachowuje się arkusz kalkulacyjny przy imporcie pliku tekstowego? Separator kolumn, separator dziesiętny i kodowanie znaków ustawia się w oknie importu — pomyłka tutaj zamienia liczby w tekst.

  • Czy da się otworzyć plik z danymi w podglądzie? Zanim napiszesz linijkę kodu, zobacz plik na oczy: ile ma kolumn, czy ma nagłówek, czym rozdzielone są pola.

Pierwsze dziesięć minut: przegląd zamiast kodu#

Najdroższy błąd strategiczny to zacząć od zadania pierwszego dlatego, że jest pierwsze. Numeracja w arkuszu nie odpowiada trudności, a podpunkty w obrębie jednego zadania bywają skrajnie różne: pierwszy do zrobienia w trzy minuty, ostatni wymagający pomysłu.

Zanim dotkniesz klawiatury:

  1. Przeczytaj wszystkie polecenia. Całe, nie tylko nagłówki. Szukasz podpunktów, które umiesz zrobić natychmiast.
  2. Otwórz pliki z danymi i zobacz, co w nich jest. Liczba kolumn, nagłówek, separator, wielkość pliku. To zmienia sposób rozwiązania bardziej niż treść polecenia.
  3. Oznacz w arkuszu podpunkty trzema kategoriami: „umiem od ręki", „umiem, ale to potrwa", „nie wiem, jak ugryźć". Trzy znaczki na marginesie.
  4. Rozwiązuj w tej kolejności: wszystkie „od ręki", potem „potrwa", na końcu „nie wiem".

Powód jest arytmetyczny, nie psychologiczny. Podpunkty punktowane są niezależnie i najczęściej podobnie, więc trzy łatwe podpunkty z trzech różnych zadań dają więcej niż jeden trudny, nad którym siedziałeś czterdzieści minut. Uczniowie przegrywają te zadania na kolejności, nie na wiedzy.

Dodatkowa korzyść: czytając wszystkie zadania na początku, zauważysz, że kilka podpunktów opiera się na tej samej strukturze danych. Wczytujesz plik raz, a potem odpowiadasz na cztery pytania — zamiast pisać cztery osobne programy.

Strategia czasowa: ile minut na co i kiedy odpuścić#

Budżet czasu ustala się przed egzaminem, a nie w jego trakcie. Poniżej podział całych 210 minut, który sprawdza się przy typowym arkuszu:

EtapIle czasuCo się w tym dzieje
Przegląd arkusza i plikówok. 15 minutczytasz wszystko, oglądasz dane, ustalasz kolejność
Zadania odpowiadane na papierzeok. 25 minutalgorytmika, systemy liczbowe, sieci — zbierasz je hurtem, bez włączania edytora
Wczytanie danych i test na próbceok. 10 minutjedna struktura danych, sprawdzona, gotowa dla wszystkich podpunktów
Podpunkty łatweok. 55 minutwszystko, co umiesz od ręki, z dowolnego zadania
Podpunkty trudniejszeok. 65 minuttwardy limit na podpunkt, po przekroczeniu przerywasz
Kontrola formatu i zapis plikówok. 25 minutnazwy plików, format liczb, kolejność kolumn, zapis kodu
Rezerwaok. 15 minutwraca do podpunktu, który odłożyłeś
Razem 210 minut. Proporcje dopasuj do liczby zadań w arkuszu, ale zachowaj trzy rzeczy: przegląd na starcie, wczesny blok na zadania papierowe i nienaruszalny czas na kontrolę formatu na końcu.

Zadania odpowiadane na papierze warto zrobić wcześnie z prostego powodu: nie zależą od tego, czy cokolwiek Ci się skompiluje, a przy końcu egzaminu, gdy walczysz z ostatnim podpunktem, najłatwiej o nich zapomnieć.

Kluczowa zasada brzmi: jeden podpunkt ma limit i limit jest twardy. Przy arkuszu na 210 minut rozsądny limit to kwadrans. Gdy minie, a Ty nie masz działającego kodu — zapisujesz stan, dopisujesz w komentarzu, gdzie utknąłeś, i przechodzisz dalej.

To najtrudniejsza rzecz do wyćwiczenia, bo poddanie się w połowie zadania jest psychicznie nieprzyjemne. Pomaga jedna obserwacja: wracając do zadania po przerwie, prawie zawsze widzisz je inaczej. Mózg pracuje nad problemem w tle, a Ty w międzyczasie zbierasz punkty gdzie indziej. Uporczywe wpatrywanie się w ten sam kod przez czterdzieści minut nie daje nic poza rosnącym stresem.

Kiedy przerwać podpunkt — trzy jasne sygnały
  • Minął limit, a Ty wciąż nie wiesz, jaki ma być pierwszy krok. To nie jest problem z implementacją, tylko z pomysłem. Pomysł nie przyjdzie od dłuższego patrzenia w ekran.

  • Poprawiasz ten sam błąd po raz trzeci. Trzy nieudane próby pod rząd oznaczają, że szukasz nie tam, gdzie trzeba. Odejdź, zrób inny podpunkt, wróć ze świeżą głową.

  • Program liczy dłużej niż minutę i nie wiesz dlaczego. Prawdopodobnie masz pętlę w pętli tam, gdzie wystarczy słownik. Przerwij obliczenia, oszacuj liczbę operacji, dopiero potem uruchamiaj ponownie.

  • Zostało mniej niż 20 minut. Wtedy nie zaczynasz nic nowego. Ten czas należy do kontroli formatu i zapisu plików — i to nie podlega negocjacji.

Praca z plikami danych: wczytaj, obejrzyj, dopiero licz#

Każde zadanie praktyczne zaczyna się od pliku. Kolejność czynności jest zawsze ta sama i warto ją mieć w palcach do tego stopnia, żeby nie zajmowała myślenia.

Krok 1: wczytaj i obejrzyj

Szablon wczytania z natychmiastową kontrolą

with open("dane.txt") as plik:
  wiersze = [linia.strip() for linia in plik]

print("liczba wierszy:", len(wiersze))
for w in wiersze[:3]:
  print(repr(w))
💡
Trzy wypisane linie i sprawdzony typ jednego elementu kosztują pół minuty. To najlepiej zainwestowane pół minuty na całym egzaminie.

Funkcja repr pokazuje napis dokładnie tak, jak wygląda w pamięci — razem z cudzysłowami, spacjami i znakami specjalnymi. Zwykłe wypisanie ukryłoby tabulator albo spację na końcu, a to właśnie one psują późniejsze porównania.

Krok 2: rozbij na kolumny i zamień typy

Budowa struktury danych

rekordy = []
for linia in wiersze:
  czesci = linia.split()
  rekordy.append({
      "nazwa": czesci[0],
      "rok": int(czesci[1]),
      "kwota": float(czesci[2].replace(",", ".")),
  })

print(rekordy[0])
print(type(rekordy[0]["rok"]))
💡
Konwersję typów robisz raz, przy wczytywaniu. Dalej pracujesz już na liczbach i nie musisz o tym pamiętać przy każdym podpunkcie.

Podmiana przecinka na kropkę przed konwersją to drobiazg, który wraca niemal w każdej sesji: pliki z danymi bywają przygotowane w konwencji polskiej, a float rozumie wyłącznie kropkę.

Krok 3: sprawdź logikę na małej próbce

Zanim puścisz kod na pełnym pliku, uruchom go na kilkudziesięciu wierszach. Powody są dwa: liczy się natychmiast, więc poprawki są tanie, a wynik możesz policzyć ręcznie i porównać.

Przełącznik próbki

PROBKA = 50      # ustaw None, gdy kod juz dziala

dane = rekordy[:PROBKA] if PROBKA else rekordy

suma = 0
for r in dane:
  if r["rok"] == 2019:
      suma += r["kwota"]

print("liczba rekordow w obliczeniu:", len(dane))
print("suma:", suma)
💡
Jedna zmienna na górze pliku. Podczas pisania kodu trzymasz małą wartość, po zakończeniu ustawiasz None i uruchamiasz raz na całości. Zero przepisywania kodu.

Wypisanie liczby rekordów użytych w obliczeniu chroni przed najgłupszym możliwym błędem: oddaniem wyniku policzonego na próbce. Jeśli w ostatniej linijce widzisz „50", a plik ma dziesięć tysięcy wierszy, od razu wiesz, że zapomniałeś przełączyć.

Jeśli wczytywanie i rozbijanie plików wciąż sprawia kłopot, wróć do działu programowania w bazie wiedzy — to fundament, bez którego reszta przygotowań nie ma sensu.

Zapisuj wyniki cząstkowe do pliku, nie do konsoli#

Sprawdzana jest zawartość plików w Twoim katalogu, nie to, co wypisało się na ekranie. Konsola gubi się przy każdym kolejnym uruchomieniu, edytor potrafi się zawiesić, a przy trzech zadaniach po pięć podpunktów łatwo stracić rachubę, co już policzone.

Rozwiązanie: jedna funkcja pomocnicza na górze pliku i wywołanie po każdym policzonym podpunkcie.

Funkcja dopisująca odpowiedzi

def odpowiedz(etykieta, wartosc):
  with open("wyniki.txt", "a") as out:
      out.write(etykieta + " " + str(wartosc) + "\n")
  print(etykieta, wartosc)

odpowiedz("Zadanie 4.1.", 1287)
odpowiedz("Zadanie 4.2.", "kowalski")
💡
Tryb a oznacza dopisywanie na końcu pliku, więc kolejne wywołania nie kasują poprzednich. Etykieta podpunktu trafia do pliku razem z wynikiem, co bywa wprost wymagane w poleceniu.

Jedna pułapka trybu dopisywania: przy każdym uruchomieniu programu odpowiedzi dopisują się ponownie, więc po kilku próbach plik zawiera kilka kompletów wyników. Dlatego na samym początku programu skasuj plik jednym zapisem w trybie nadpisywania.

Wyczyszczenie pliku na starcie

open("wyniki.txt", "w").close()
💡
Tryb w tworzy plik pusty. Umieszczasz tę linię raz, na górze programu, przed pierwszym wywołaniem funkcji zapisującej.

Dwie dodatkowe zasady, które ratują punkty:

  • Wyniki pośrednie też zapisuj, jeśli podpunkt składa się z kilku etapów. Zadanie typu „znajdź największą grupę, a potem policz jej średnią" warto zapisać w dwóch krokach — jeśli druga część nie wyjdzie, pierwsza wciąż jest odpowiedzią na coś.
  • Zapisuj też kod źródłowy. Pliki z programami są oceniane osobno i bywają punktowane nawet wtedy, gdy wynik liczbowy jest zły. Program w edytorze, nigdy nie zapisany na dysk, to strata za darmo.

Cztery typy zadań i schemat rozwiązania każdego#

Zadania praktyczne wyglądają co roku inaczej, ale sprowadzają się do czterech powtarzalnych schematów. Jeśli rozpoznasz typ w pierwszej minucie, masz gotowy szkielet rozwiązania i zostaje Ci tylko treść.

Typ zadaniaPo czym poznaćSzkielet rozwiązania
Przetwarzanie liczbplik z kolumnami liczbowymi, pytania o sumy, maksima, zakresywczytaj do listy liczb, jedno przejście pętlą, licznik i akumulator
Przetwarzanie napisówplik ze słowami, kodami, datami, pytania o wzorce w tekściefunkcja sprawdzająca jeden napis, potem pętla po wszystkich
Baza danychkilka plików tekstowych do zaimportowania i połączeniaimport, relacje, potem po jednym zapytaniu na podpunkt
Arkusz kalkulacyjnypolecenie każe wykonać obliczenia i sporządzić wykreskolumny pomocnicze, jedna formuła skopiowana w dół, wykres na końcu
Rozpoznanie typu zadania zajmuje kilkanaście sekund i od razu mówi, którego szkieletu użyć.

Typ 1: przetwarzanie liczb

Najbardziej przewidywalny typ. Prawie zawsze da się rozwiązać jednym przejściem przez dane, z kilkoma zmiennymi trzymającymi stan.

Szkielet: jedno przejście, kilka odpowiedzi naraz

najwieksza = liczby[0]
suma = 0
ile_parzystych = 0

for x in liczby:
  if x > najwieksza:
      najwieksza = x
  suma += x
  if x % 2 == 0:
      ile_parzystych += 1

odpowiedz("maksimum:", najwieksza)
odpowiedz("suma:", suma)
odpowiedz("parzystych:", ile_parzystych)
💡
Skoro i tak przechodzisz przez dane, policz w tym samym przebiegu wszystko, o co pyta zadanie. Trzy podpunkty za cenę jednej pętli.

Gdy zadanie pyta o zliczanie „ile razy wystąpiła każda wartość", odruchowo sięgaj po słownik. Pętla w pętli działa na przykładzie z treści i zawiesza się na prawdziwym pliku.

Zliczanie słownikiem

ile = {}
for r in rekordy:
  k = r["rok"]
  ile[k] = ile.get(k, 0) + 1

najczestszy = max(ile, key=ile.get)
odpowiedz("rok z najwieksza liczba rekordow:", najczestszy)
💡
Metoda get zwraca zero, gdy klucza jeszcze nie ma — dzięki temu nie trzeba osobno obsługiwać pierwszego wystąpienia. Na końcu max z parametrem key wskazuje klucz o największej wartości.

Typ 2: przetwarzanie napisów

Tutaj wygrywa jedna technika: napisz funkcję sprawdzającą pojedynczy napis, przetestuj ją na trzech przykładach z treści, dopiero potem puść w pętli. Debugowanie logiki wewnątrz pętli po dziesięciu tysiącach słów to strata czasu.

Funkcja, potem pętla

def czy_pasuje(s):
  if len(s) < 4:
      return False
  if not s[0].isupper():
      return False
  return s[-1] in "aeiouy"

assert czy_pasuje("Ala") == False
assert czy_pasuje("Kotek") == False
assert czy_pasuje("Marta") == True

pasujace = [s for s in slowa if czy_pasuje(s)]
odpowiedz("ile pasuje:", len(pasujace))
💡
Trzy asercje na górze to test jednostkowy w wersji egzaminacyjnej. Jeśli któraś nie przejdzie, program zatrzyma się natychmiast i wiesz, że błąd jest w funkcji, a nie w danych.

Zestaw metod, które wystarczają do zdecydowanej większości zadań tekstowych na maturze — warto umieć je z pamięci:

ZapisCo robiTypowe zastosowanie w zadaniu
s.strip()usuwa białe znaki z obu końcówzaraz po wczytaniu linii z pliku
s.split(";")dzieli napis na listę po separatorzerozbicie wiersza na kolumny
s.lower()zamienia na małe literyporównywanie bez względu na wielkość liter
s[::-1]odwraca napispalindromy, liczby czytane wspak
s.count("a")liczy wystąpienia fragmentuile samogłosek, ile wystąpień wzorca
s.isdigit()sprawdza, czy same cyfrywalidacja kodu, PESEL-u, numeru
s[2:5]wycinek od indeksu 2 do 4wyciąganie roku z daty, fragmentu kodu
"-".join(lista)skleja listę w jeden napisbudowa wiersza wynikowego
Osiem zapisów. Przepisz je na kartkę i sprawdzaj się, aż napiszesz każdy bez zastanowienia — na egzaminie nie ma gdzie sprawdzić składni.

Więcej zadań na napisy i liczby przećwiczysz na quizach programistycznych, a systematyczne omówienie technik znajdziesz w dziale programowania.

Typ 3: zadania z bazą danych

Schemat jest sztywny i mało zaskakujący. Dostajesz kilka plików tekstowych, importujesz je jako tabele, ustawiasz relacje i odpowiadasz zapytaniami.

Kolejność pracy:

  1. Import każdego pliku osobno. W oknie importu ustaw separator kolumn, zaznacz, czy pierwszy wiersz to nagłówek, i skontroluj kodowanie znaków — polskie znaki zamienione w krzaczki oznaczają zły wybór kodowania.
  2. Sprawdź typy kolumn. Kolumna z datą zaimportowana jako tekst nie da się sortować chronologicznie, a liczba jako tekst zepsuje każdą sumę.
  3. Ustaw relacje — najczęściej jeden do wielu, po kolumnie z identyfikatorem.
  4. Jedno zapytanie na jeden podpunkt. Nie próbuj odpowiedzieć na wszystko jednym zapytaniem: krótsze zapytania łatwiej poprawić, a każde zapisujesz pod własną nazwą.

Szkielet zapytania z grupowaniem

SELECT k.nazwa, COUNT(*) AS ile, AVG(z.kwota) AS srednia
FROM zamowienia z
INNER JOIN klienci k ON z.klient_id = k.id
WHERE z.rok = 2019
GROUP BY k.nazwa
HAVING COUNT(*) > 5
ORDER BY srednia DESC;
💡
Kolejność klauzul jest sztywna: SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY. Warunek na pojedynczym wierszu trafia do WHERE, warunek na funkcji agregującej — do HAVING.

Zanim wykonasz cokolwiek modyfikującego dane, zrób kopię pliku z bazą. Instrukcja UPDATE bez warunku dotyczy całej tabeli, a na egzaminie nie ma cofnięcia jednym klawiszem. Złączenia, podzapytania i grupowanie powtórzysz w dziale baz danych.

Typ 4: zadania z arkusza kalkulacyjnego

Najbardziej „punktodajny" typ dla osoby, która ćwiczyła, i najbardziej frustrujący dla tej, która liczyła na intuicję. Zasada przewodnia: nie licz niczego ręcznie i nie wpisuj wyników z palca.

Schemat:

  1. Zaimportuj dane i sprawdź, czy liczby są liczbami — wyrównanie do prawej krawędzi komórki to sygnał, że tak; wyrównanie do lewej oznacza tekst.
  2. Dodaj kolumny pomocnicze. Jedna kolumna to jedno pytanie cząstkowe. Zadanie „ile weekendowych transakcji powyżej średniej" rozbijasz na kolumnę z dniem tygodnia, kolumnę z flagą weekendu i dopiero potem zliczasz.
  3. Napisz formułę raz i skopiuj w dół. Adresy stałych komórek blokuj dolarami, adresy danych zostaw względne.
  4. Zliczaj funkcjami warunkowymi, nie ręcznym zaznaczaniem.

Trzy formuły, które wracają w każdej sesji

=JEZELI(B2>$H$1; "powyzej"; "ponizej")
=LICZ.JEZELI($C$2:$C$500; "weekend")
=WYSZUKAJ.PIONOWO(A2; Dane!$A$2:$D$500; 3; FALSZ)
💡
Adres progu w komórce H1 zablokowany dolarami nie przesunie się przy kopiowaniu w dół. Czwarty argument FAŁSZ w WYSZUKAJ.PIONOWO wymusza dopasowanie dokładne — bez niego funkcja zwraca przybliżenia, które wyglądają poprawnie.

Wykres rób na końcu, gdy dane są już policzone, i pilnuj tego, o co prosi polecenie: typ wykresu, opisy osi, tytuł, legenda. Wykres bez opisanych osi bywa punktowany niżej niż identyczny wykres z opisami. Funkcje warunkowe, tabele przestawne i formatowanie omawia dział arkusza kalkulacyjnego.

Format wyniku: gdzie znikają punkty za dobre rozwiązania#

Odpowiedź porównywana jest dosłownie. Poprawny algorytm i zły format to brak punktu — kategoria strat najbardziej irytująca, bo cała praca była już zrobiona.

Najczęstsza pomyłka przy liczbach

srednia = 3.0999

print(round(srednia, 2))              # 3.1  -- zwykle niezgodne z kluczem
print("{:.2f}".format(srednia))       # 3.10 -- tak ma byc
💡
Funkcja round zwraca liczbę, a liczba 3.10 nie istnieje — istnieje 3.1. Formatowanie napisem wymusza dokładnie dwa miejsca po przecinku, także wtedy, gdy drugie jest zerem.

Zapis wiersza wynikowego z kilkoma kolumnami

with open("wynik4.txt", "w") as out:
  for nazwisko, klasa, punkty in wyniki:
      out.write(nazwisko + " " + klasa + " " + str(punkty) + "\n")
💡
Kolejność kolumn bierzesz wprost z polecenia — zamiana dwóch miejscami to zero punktów mimo poprawnych danych. Znak nowej linii musi kończyć każdy wiersz, inaczej cały wynik sklei się w jedną linię.

Lista rzeczy, które sprawdzasz w każdym pliku wynikowym:

  • Nazwa pliku dokładnie taka, jak w poleceniu, i w katalogu zdającego. Plik o innej nazwie bywa po prostu niesprawdzony.
  • Liczba miejsc po przecinku zgodna z treścią — również gdy ostatnią cyfrą jest zero.
  • Separator dziesiętny taki jak w danych źródłowych. Python wypisuje kropkę; jeśli w zadaniu jest przecinek, podmień go jawnie na gotowym napisie.
  • Typ całkowity bez kropki. Liczba osób zapisana jako 12.0 to sygnał, że użyłeś pojedynczego ukośnika zamiast podwójnego przy dzieleniu.
  • Etykieta podpunktu, jeśli polecenie każe opisać odpowiedzi. Sam wynik bez opisu bywa nieuznawany.
  • Brak dopisków „od siebie". Żadnych pustych linii na końcu, żadnych komentarzy w stylu „chyba tyle" — wypisujesz dokładnie to, o co proszono.

Osiem tygodni przygotowań, tydzień po tygodniu#

Plan zakłada trzy sesje w tygodniu po około półtorej godziny plus jeden dłuższy blok weekendowy. Kolejność nie jest przypadkowa: zaczyna się od umiejętności, bez której nie zrobisz żadnego zadania — wczytywania plików.

TydzieńTematCo robiszJak sprawdzasz, że umiesz
1Pliki i struktury danychWczytywanie, strip, split, konwersje typów, budowa listy słowników. Ten sam plik wczytany na trzy sposoby.Wczytujesz nieznany plik i wypisujesz liczbę wierszy oraz trzy pierwsze rekordy bez zaglądania w notatki.
2Przetwarzanie liczbJedno przejście z licznikami, słownik zliczający, sortowanie z parametrem key, wyszukiwanie ekstremów.Trzy podpunkty liczbowe ze starego arkusza rozwiązane w jednej pętli, w kwadrans.
3Przetwarzanie napisówWycinki, metody napisów, funkcja sprawdzająca pojedynczy napis, testy asercjami.Piszesz osiem zapisów z tabeli powyżej z pamięci, bez pomyłki.
4Arkusz kalkulacyjnyImport z pliku tekstowego, kolumny pomocnicze, adresowanie z dolarami, funkcje warunkowe, wykres z opisami.Zadanie arkuszowe z dawnego arkusza zrobione bez ręcznego wpisywania choćby jednej liczby wynikowej.
5Baza danychImport kilku plików, relacje, złączenia, grupowanie, HAVING, zapytania modyfikujące z warunkiem.Pięć zapytań na pięć podpunktów, każde zapisane pod własną nazwą, żadnego liczenia ręcznego.
6Pierwszy pełny arkusz na czasCały arkusz w warunkach egzaminu: zegar, brak internetu, komputer szkolny, jeśli się da.Kończysz w czasie i masz zapisane pliki wynikowe dla każdego podpunktu, który zrobiłeś.
7Drugi i trzeci arkusz plus analiza błędówDwa arkusze, po każdym spisujesz typ każdego błędu: dane, algorytm, format, czas.Lista Twoich powtarzalnych błędów ma trzy pozycje albo mniej i wiesz, co z nimi zrobić.
8Powtórka celowana i próba generalnaTylko te trzy powtarzalne błędy plus jeden arkusz w pełnych warunkach. Bez nowego materiału.Ostatni arkusz nie zawiera już błędów z Twojej listy z tygodnia siódmego.
Jeśli masz mniej niż osiem tygodni, nie skracaj tygodni 1 i 6–8. Skracaj środek — pierwsze przygotowanie danych i praca na pełnych arkuszach dają najwięcej.

Dwie uwagi do tego planu. Po pierwsze: arkusz rozwiązany bez zegara nie liczy się jako arkusz. Ten egzamin jest w dużej mierze egzaminem z zarządzania czasem, więc ćwiczenie bez presji zegara trenuje coś innego niż to, co będzie sprawdzane. Zestawy do pracy znajdziesz w dziale arkuszy maturalnych.

Po drugie: analiza błędów jest ważniejsza niż liczba przerobionych arkuszy. Po każdym arkuszu wypisz każdy stracony punkt i przypisz mu kategorię: złe wczytanie danych, zły algorytm, zły format wyniku, brak czasu. Po trzech arkuszach zobaczysz, że jedna kategoria dominuje — i to na niej, a nie na wszystkim naraz, opiera się ostatni tydzień powtórki.

Checklista na dzień egzaminu#

Ostatnia sekcja do wydrukowania i przejrzenia rano. Nic tu nie jest o algorytmach — wszystko o tym, żeby nie stracić punktów na rzeczach niezwiązanych z wiedzą.

Przed wyjściem z domu

  1. Dowód osobisty lub inny dokument ze zdjęciem.
  2. Czarny długopis — część odpowiedzi wpisujesz wprost do arkusza papierowego.
  3. Śniadanie i woda. Trzy i pół godziny skupienia na czczo to strata, której nie nadrobisz żadnym powtarzaniem składni.
  4. Zerknięcie na osiem zapisów z tabeli napisów i na szkielet wczytania pliku. Pięć minut, nic więcej — nowej wiedzy dziś nie przyswoisz.

Pierwsze minuty przy stanowisku

  1. Sprawdź, czy widzisz swój katalog zdającego i czy możesz w nim zapisać plik. Utwórz pusty plik testowy i skasuj go.
  2. Sprawdź, czy pliki z danymi są na miejscu i czy dają się otworzyć.
  3. Uruchom edytor i wykonaj trywialny program wypisujący jedną linię. Wolisz dowiedzieć się teraz, że coś nie działa, niż w czterdziestej minucie.
  4. Ustaw kod i dane w tym samym katalogu, żeby nie kombinować ze ścieżkami.

W trakcie

  1. Przeczytaj wszystkie zadania i oznacz podpunkty trzema kategoriami.
  2. Wczytaj dane raz i skontroluj je funkcją repr oraz type.
  3. Ustaw limit czasu na podpunkt i pilnuj go. Zegar na ścianie, nie w głowie.
  4. Zapisuj każdą odpowiedź do pliku od razu po policzeniu.
  5. Zapisuj plik z kodem po każdej większej zmianie. Skrót zapisu ma stać się odruchem.

Ostatnie dwadzieścia minut

  1. Nic nowego nie zaczynasz.
  2. Otwórz każdy plik wynikowy i przeczytaj go oczami. Czy zawiera dokładnie to, o co proszono, i nic ponadto?
  3. Sprawdź nazwy plików i ich lokalizację — litera po literze, zgodnie z treścią.
  4. Sprawdź format liczb: miejsca po przecinku, separator dziesiętny, brak zbędnych kropek przy wartościach całkowitych.
  5. Upewnij się, że pliki kodu, arkusza i bazy zostały zapisane i zamknięte.
Trzy nawyki, które zmieniają wynik najbardziej
  • Przegląd całego arkusza przed pierwszą linijką kodu. Kosztuje dziesięć minut, a decyduje o tym, ile podpunktów w ogóle zdążysz tknąć. Żaden inny pojedynczy nawyk nie daje takiego zwrotu.

  • Kontrola danych zaraz po wczytaniu. Trzy wypisane wiersze i sprawdzony typ. Pół minuty, które ratuje wszystkie podpunkty oparte na tym samym pliku.

  • Twardy limit czasu na podpunkt. Najtrudniejszy do wyrobienia, bo wymaga odpuszczenia zadania w połowie. Ćwicz go świadomie na każdym arkuszu, a nie dopiero na egzaminie.

  • Jeśli po dwóch arkuszach na czas wciąż nie kończysz w terminie, problem zwykle leży w kolejności pracy, a nie w tempie pisania kodu — to da się poukładać w kilka spotkań. Napisz do nas przez formularz kontaktowy i opisz, na czym najczęściej tracisz czas.

Korepetycje z informatyki

Zdajesz maturę rozszerzoną z informatyki?

Prowadzimy indywidualne przygotowanie do matury z informatyki — algorytmy, Python i C++, bazy danych i arkusz kalkulacyjny. Zajęcia online, na arkuszach CKE. Zobacz program i cennik.

Zobacz korepetycje z informatyki

Uczysz się w technikum informatycznym? Prowadzimy też przygotowanie do kwalifikacji INF.02, INF.03 i INF.04. Zobacz egzaminy zawodowe

Podoba Ci się ten artykuł? 💻

To tylko wycinek wiedzy! Na naszych korepetycjach omawiamy te tematy jeszcze dokładniej. Zapisz się na lekcję próbną i zdaj egzamin na 100%.

🚀 Zadzwoń i umów darmową konsultację

Autor: Alan Ostrowski