
Co wolno używać na maturze z informatyki? Języki, biblioteki i funkcje wbudowane
- ✓Programujesz w jednym z trzech języków: C/C++, Java albo Python (w wersji 3.10 lub nowszej).
- ✓Do arkusza i bazy danych masz jeden pakiet: Microsoft Office, LibreOffice albo OpenOffice, za każdym razem razem z XAMPP (czyli także MySQL).
- ✓W zadaniach rozwiązywanych na komputerze możesz korzystać z całej biblioteki standardowej swojego języka —
sorted(),Counter,math.gcd,std::sorti reszty. - ✓Ograniczenie pojawia się tylko wtedy, gdy treść zadania wprost je wprowadza. Zwykle dotyczy to zadań typu „zapisz algorytm”.
- ✓Nie licz na
numpy,pandasani podpowiedzi AI. Wtyczki AI w środowiskach programistycznych mają być na egzaminie odinstalowane albo wyłączone.
To pytanie pada na pierwszych zajęciach prawie zawsze, zwykle w wersji „czy mogę po prostu napisać sorted()?”. Odpowiedź brzmi: najczęściej tak. Są jednak trzy sytuacje, w których ta sama linijka kosztuje punkty: zadanie wprost zakazuje funkcji wbudowanych, w szkole stoi starsza wersja kompilatora niż ta, na której ćwiczyłeś, albo korzystasz z funkcji Excela, której nie ma w zainstalowanym pakiecie.
Poniżej wszystko po kolei: co dokładnie dopuszcza Centralna Komisja Egzaminacyjna, co z biblioteki standardowej naprawdę się przydaje i gdzie leżą pułapki, o których nikt nie mówi przed egzaminem.
Co mówi komunikat CKE na 2027 rok#
Listę dopuszczonych języków, środowisk i programów CKE publikuje co roku w sierpniu. Na maturę 2027 obowiązuje komunikat dyrektora CKE o egzaminie maturalnym z informatyki z 20 sierpnia 2026. Egzamin odbędzie się 17 maja 2027 o 9:00, a termin dodatkowy to 9 czerwca 2027.
Języki programowania i środowiska
| Język | Windows | Linux |
|---|---|---|
| C/C++ | Microsoft Visual Studio C++, Dev-C++ (Orwell) 5.11 lub nowszy, Code::Blocks 20.03 lub nowszy | GCC/G++ 4.5 lub nowszy, Code::Blocks 20.03 lub nowszy |
| Java | Java SE 8 lub nowsza z IntelliJ IDEA | Java SE 8 lub nowsza z IntelliJ IDEA |
| Python | Python 3.10 lub nowszy z IDLE albo PyCharm | Python 3.10 lub nowszy z IDLE albo PyCharm |
Zwróć uwagę na słowo „lub nowszy”. Komunikat podaje wersje minimalne. Szkoła może mieć Pythona 3.13, ale równie dobrze może mieć 3.10. Wracam do tego niżej, bo od wersji zależy, które funkcje w ogóle zadziałają.
Programy użytkowe
Wybierasz jeden pakiet:
| Pakiet | Arkusz | Baza danych | Dodatkowo |
|---|---|---|---|
| Microsoft Office 2007 lub nowszy | Excel | Access | XAMPP |
| LibreOffice 7.0 lub nowszy | Calc | Base | XAMPP |
| OpenOffice / Apache OpenOffice 4.1 lub nowszy | Calc | Base | XAMPP |
OpenOffice znika z listy od 2028 roku, więc na maturze 2027 jest dostępny ostatni raz.
Warto zatrzymać się przy XAMPP. To pakiet z serwerem bazy danych MySQL/MariaDB i panelem phpMyAdmin. Jeśli lepiej czujesz się w czystym SQL niż w kreatorze kwerend Accessa, zadanie z bazy danych możesz rozwiązać właśnie tam. Zapytaj jednak nauczyciela, czy szkoła faktycznie go zainstaluje i czy ktoś to sprawdził.
Pozostałe zasady
- Wybierasz system, język i programy spośród tych, które ma Twoja szkoła. Zapytaj nauczyciela informatyki już teraz, a nie w kwietniu, jakie dokładnie wersje będą na stanowisku.
- Szkoła zapewnia pamięć USB, na którą zapisujesz rozwiązania. Dane do zadań praktycznych dostajesz na płycie CD.
- Wtyczki AI generujące kod należy w środowiskach odinstalować, a jeśli to niemożliwe — wyłączyć. Dotyczy to na przykład asystentów AI w PyCharmie.
- Komputer nie ma dostępu do internetu. Dokumentacji online nie przejrzysz, ale wbudowana pomoc działa i jest naprawdę przydatna. Piszę o niej niżej.
Najważniejsza zasada: wynik czy algorytm?#
Arkusz z informatyki w Formule 2023 trwa 210 minut i przez cały ten czas masz dostęp do komputera. Zadania dzielą się jednak na dwa rodzaje, a zasady korzystania z funkcji wbudowanych są w nich zupełnie inne.
Zadania praktyczne — „napisz program, który…”, „podaj, ile jest…”, „utwórz zestawienie…”. Oceniany jest wynik w pliku z odpowiedziami i, jeśli polecenie tego wymaga, plik z kodem. Tu korzystasz ze wszystkiego, co oferuje język. sorted(), Counter, max() z kluczem — wszystko jest w porządku, o ile wynik się zgadza.
Zadania algorytmiczne — „zapisz algorytm…”, „napisz funkcję…”. Tu często pojawia się uwaga, która zawęża listę dozwolonych operacji. Przykład z arkusza z maja 2026, zadanie 2.2:
„Twój algorytm może operować wyłącznie na liczbach całkowitych i używać tylko zmiennych przechowujących pojedyncze liczby całkowite. W zapisie algorytmu możesz korzystać tylko z operatorów arytmetycznych: dodawania, odejmowania, mnożenia, dzielenia, dzielenia całkowitego i reszty z dzielenia; z operatorów logicznych, porównań, instrukcji sterujących, instrukcji przypisania lub samodzielnie napisanych funkcji i procedur wykorzystujących powyższe operacje. Zabronione jest używanie funkcji wbudowanych oraz operatorów innych niż wymienione, dostępnych w językach programowania, nie wolno zwłaszcza korzystać z tablic/list oraz żadnych funkcji zamiany z typu znakowego lub napisowego na liczbowy – i odwrotnie.”
To jest bardzo restrykcyjna uwaga. Nie wolno w niej użyć str(n), żeby rozbić liczbę na cyfry, nie wolno odwrócić napisu, nie wolno nawet utworzyć listy. Cyfry wyciąga się wtedy tylko dzieleniem całkowitym i resztą z dzielenia. Całe zadanie z rozwiązaniem znajdziesz w naszym opracowaniu arkusza z maja 2026.
Praktyczna reguła jest jedna: jeśli przy zadaniu jest uwaga, trzymasz się jej co do słowa. Jeśli jej nie ma, możesz korzystać z funkcji wbudowanych. Kieruj się przy tym zdrowym rozsądkiem. W zadaniu „zapisz algorytm sortowania” samo wywołanie sorted() nie jest rozwiązaniem, nawet jeśli żadna uwaga tego nie zabrania.
Dlatego warto znać obie drogi. Rozbicie liczby na cyfry przez str() i przez resztę z dzielenia to dwie wersje tego samego zadania, a na egzaminie może być potrzebna każda z nich:
n = 40518
# wersja "praktyczna" - wolno, gdy nie ma uwagi
suma_cyfr = sum(int(c) for c in str(n))
# wersja "algorytmiczna" - tylko arytmetyka na liczbach calkowitych
suma = 0
while n > 0:
suma += n % 10
n //= 10Python: co z biblioteki standardowej naprawdę się przydaje#
Biblioteka standardowa Pythona jest ogromna, ale na maturze wraca kilkanaście rzeczy. Tych warto używać odruchowo, bo oszczędzają czas i zmniejszają ryzyko pomyłki.
Funkcje wbudowane
| Funkcja | Do czego na maturze | Przykład |
|---|---|---|
| sorted() | sortowanie, także według własnego klucza | sorted(slowa, key=len) |
| max(), min() | wartość lub indeks największego elementu | max(range(len(t)), key=lambda i: t[i]) |
| sum(), len() | sumy, średnie, zliczanie | sum(t) / len(t) |
| enumerate() | numer wiersza razem z wartością | for i, x in enumerate(t, start=1) |
| zip() | pary sąsiednich elementów | zip(t, t[1:]) |
| any(), all() | „czy istnieje”, „czy wszystkie” | all(x > 0 for x in t) |
| divmod(), pow() | iloraz z resztą, potęgowanie modulo | pow(3, 200, 1000) |
| int(s, podstawa) | zamiana z dowolnego systemu na dziesiętny | int("1011", 2) → 11 |
| bin(), oct(), hex(), format() | zamiana na system dwójkowy, ósemkowy, szesnastkowy | format(11, "b") → '1011' |
| ord(), chr() | szyfry, przesunięcia liter | chr(ord("a") + 3) |
Do tego metody napisów, które pojawiają się w niemal każdym zadaniu z plikiem tekstowym: strip(), split(), count(), find(), replace(), isdigit(), lower() oraz odwracanie przez wycinek s[::-1].
Przykład, który warto mieć w palcach — wczytanie pliku z parami liczb i zapis wyniku:
with open("dane.txt") as plik:
pary = [tuple(map(int, linia.split())) for linia in plik]
ile = sum(1 for a, b in pary if a > b)
with open("wyniki4.txt", "w") as wynik:
print("4.1.", ile, file=wynik)Moduły, które warto znać
math — gcd(), lcm(), isqrt(), comb(), factorial(), sqrt(), floor(), ceil(), log(). Funkcja isqrt() zwraca pierwiastek całkowity bez ryzyka błędów zaokrągleń. Przydaje się przy sprawdzaniu pierwszości i kwadratów doskonałych.
import math
math.gcd(12, 18, 30) # 6 - NWD kilku liczb naraz
math.lcm(4, 6, 10) # 60 - NWW
math.isqrt(99) # 9 - pierwiastek calkowity
math.comb(5, 2) # 10 - liczba kombinacjicollections — Counter liczy wystąpienia jedną linijką, defaultdict oszczędza sprawdzania, czy klucz już istnieje, a deque to szybka kolejka.
from collections import Counter
c = Counter("abrakadabra")
c.most_common(2) # [('a', 5), ('b', 2)]itertools — combinations(), permutations(), product() do zadań „sprawdź wszystkie możliwości”, pairwise() do par sąsiadów (od Pythona 3.10) i accumulate() do sum prefiksowych.
functools.lru_cache — zapamiętywanie wyników funkcji rekurencyjnej. Zadania z rekurencją wracają regularnie, w maju 2026 było to zadanie pierwsze. Gdy chcesz sprawdzić na komputerze wartości dla większych argumentów, bez zapamiętywania program może liczyć bardzo długo.
from functools import lru_cache
import sys
sys.setrecursionlimit(10000)
@lru_cache(maxsize=None)
def fib(n):
return n if n < 2 else fib(n - 1) + fib(n - 2)
fib(90) # wynik od razu, bez zapamietywania - praktycznie nigdybisect — gotowe wyszukiwanie binarne w posortowanej liście. bisect_right(t, x) - bisect_left(t, x) od razu zwraca liczbę wystąpień x.
datetime — zadania z datami: dzień tygodnia, różnica w dniach, dodawanie dni.
from datetime import date, timedelta
d = date(2027, 5, 17)
d.weekday() # 0 - poniedzialek
(d - date(2026, 10, 6)).days # 223 dni
d + timedelta(days=30) # 2027-06-16fractions.Fraction — dokładne ułamki, gdy zadanie wymaga porównywania wyników dzielenia i nie możesz pozwolić sobie na błąd zaokrąglenia.
Uważaj na wersję Pythona
Komunikat dopuszcza Pythona od 3.10 w górę. Jeśli w domu masz 3.13, możesz nieświadomie korzystać z rzeczy, których w szkole nie będzie.
| Działa w 3.10 | Pojawiło się później — nie licz na to |
|---|---|
| match / case | itertools.batched() (3.12) |
| itertools.pairwise() | f-stringi z tym samym cudzysłowem w środku (3.12) |
| int.bit_count() | math.cbrt() (3.11) |
| zip(..., strict=True) | moduł tomllib (3.11) |
| math.lcm(), math.isqrt(), math.comb() | instrukcja type do aliasów typów (3.12) |
| str.removeprefix(), łączenie słowników operatorem „|” | — |
Najprościej zainstalować w domu Pythona 3.10 i na nim robić arkusze. Wtedy nic Cię nie zaskoczy.
Pułapka, o której mało kto wie: round()
Python zaokrągla połówki do najbliższej liczby parzystej:
round(2.5) # 2, nie 3
round(3.5) # 4
round(0.5) # 0
round(2.675, 2) # 2.67 - przez sposob zapisu liczb w pamieci
0.1 + 0.2 == 0.3 # FalseExcel i Calc w funkcji ZAOKR zaokrąglają połówki w górę. Jeśli to samo zadanie liczysz w arkuszu i w Pythonie, wyniki mogą się różnić na ostatniej cyfrze. Przy kwotach pieniężnych licz w groszach na liczbach całkowitych, a do wypisania używaj formatowania. Gdy zadanie każe zaokrąglić „w górę od połowy”, napisz to zaokrąglenie samodzielnie.
A numpy i pandas?
Nie ma ich w komunikacie, a komputer nie ma internetu, więc niczego nie doinstalujesz. Nawet jeśli w szkolnym PyCharmie akurat by się znalazły, budowanie przygotowań na czymś, czego może nie być, to niepotrzebne ryzyko. Wszystko, co pojawia się na maturze, da się zrobić samą biblioteką standardową.
Pomoc działa bez internetu
W IDLE i w konsoli PyCharma działają help() i dir():
dir(str) # lista wszystkich metod napisow
help(str.split) # opis argumentow konkretnej metody
help("itertools") # dokumentacja calego moduluJeśli nie pamiętasz, czy rjust przyjmuje znak wypełnienia, sprawdzasz w dziesięć sekund zamiast zgadywać.
C++: biblioteka standardowa i pułapka starego kompilatora#
W C++ korzystasz z całej biblioteki standardowej: <algorithm> (sort, reverse, max_element, count, lower_bound), <vector>, <string>, <map>, <set>, <fstream>, <cmath>, <iomanip>.
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main() {
ifstream we("dane.txt");
vector<int> t;
int x;
while (we >> x) t.push_back(x);
sort(t.begin(), t.end());
int najw = *max_element(t.begin(), t.end());
string s = "kajak";
string odwr(s.rbegin(), s.rend());
ofstream wy("wyniki.txt");
wy << najw << " " << (s == odwr) << endl;
return 0;
}Ten kod skompiluje się wszędzie, także na najstarszym kompilatorze z listy. Z nowszymi konstrukcjami trzeba uważać. Komunikat dopuszcza Dev-C++ 5.11 i GCC 4.5. Dev-C++ 5.11 jest dostarczany z kompilatorem GCC 4.9.2, który domyślnie kompiluje w standardzie sprzed C++11. W takim środowisku nie zadziała nic z poniższych:
vector<int> t = {3, 1, 2}; // inicjalizacja klamrami - od C++11
for (auto x : t) cout << x; // auto i petla zakresowa - od C++11
string s = to_string(42); // to_string, stoi - od C++11
int d = gcd(12, 18); // std::gcd - dopiero od C++17Sprawdziłem to na kompilatorze ustawionym na stary standard. Kod z pierwszego przykładu przechodzi, a każda z czterech linijek powyżej kończy się błędem kompilacji.
Co z tym zrobić:
- W dniu sprawdzenia stanowiska skompiluj krótki program z
autoi pętlą zakresową. Jeśli nie przejdzie, w opcjach kompilatora dopisz-std=c++11. - Zamiast
std::gcdużyj__gcdz<algorithm>(rozszerzenie GCC) albo napisz własny algorytm Euklidesa. To trzy linijki. - Code::Blocks 20.03 ma nowszy kompilator i problem jest mniejszy, ale
std::gcdnadal wymaga ustawienia standardu C++17.
Java: wersja 8 to minimum#
Dla Formuły 2023 komunikat dopuszcza Javę SE 8 lub nowszą z IntelliJ IDEA. Jeśli szkoła ma Javę 8, nie zadziałają rzeczy wprowadzone później:
var— od Javy 10,List.of(),Map.of()— od Javy 9,String.repeat(),strip(),isBlank()— od Javy 11,- rekordy, bloki tekstowe i wyrażenia
switch— jeszcze później.
Bezpiecznie działają: Scanner i BufferedReader do plików, Arrays.sort(), Collections.sort(), HashMap z getOrDefault(), StringBuilder z reverse() oraz klasa Math.
Arkusz kalkulacyjny: nie każda funkcja Excela będzie na stanowisku#
Komunikat podaje jako minimum Office 2007 i LibreOffice 7.0. Funkcje dynamicznych tablic — X.WYSZUKAJ, FILTRUJ, SORTUJ, UNIKATOWE — są dostępne dopiero w Excelu 2021 i Microsoft 365. LibreOffice dodał swoje odpowiedniki w wersji 24.8. Jeśli ćwiczysz w domu na Microsoft 365, możesz przyzwyczaić się do funkcji, których w szkolnym Excelu 2016 po prostu nie będzie.
Bezpiecznie i zawsze działa:
WYSZUKAJ.PIONOWOorazINDEKSzPODAJ.POZYCJĘ,JEŻELI,ORAZ,LUB,LICZ.JEŻELI,SUMA.JEŻELI,LICZ.WARUNKI,SUMA.WARUNKÓW,- funkcje tekstowe i daty:
LEWY,PRAWY,FRAGMENT.TEKSTU,DŁ,DZIEŃ.TYG,ROK, - tabele przestawne i wykresy.
Między Excelem a Calc różni się zapis odwołania do innego arkusza: w Excelu Dane!A1, w Calc $Dane.A1. Bierze się z tego sporo nerwów, jeśli w domu ćwiczysz na innym programie niż w szkole. Szczegóły z przykładami znajdziesz w teorii funkcji wyszukiwania i w pewniaku o adresowaniu względnym i bezwzględnym.
Bazy danych: Access, Base albo MySQL#
Trzy możliwe narzędzia mają trzy różne dialekty SQL. Najczęściej punkty gubi się na drobiazgach:
| Access | Base / MySQL | |
|---|---|---|
| Dowolny ciąg znaków w LIKE | * | % |
| Jeden znak w LIKE | ? | _ |
| Data w warunku | #2027-05-17# | '2027-05-17' |
Zapytanie skopiowane z Accessa do Base bez zamiany symboli zwróci pustą tabelę i żadnego komunikatu o błędzie. Więcej przykładów w teorii kwerend wybierających i w fundamentach pracy z bazą.
Lista kontrolna przed 17 maja#
- Teraz: zapytaj nauczyciela, jaki system, jaki język w jakiej wersji i jaki pakiet biurowy będą na stanowisku.
- Ćwicz na tych samych wersjach. Python 3.10, Office w szkolnej wersji albo LibreOffice — nie na najnowszych.
- Wyłącz w domu podpowiedzi AI w edytorze. Na egzaminie ich nie będzie, a odzwyczajanie się w maju jest bolesne.
- Przygotuj szablon wczytania pliku i zapisu wyników. Pisany z pamięci za każdym razem zabiera minuty i daje okazję do błędu.
- W dniu sprawdzenia stanowiska uruchom krótki program w swoim języku, otwórz arkusz i bazę, sprawdź zapis na pendrive.
- Przy każdym zadaniu czytaj, czy jest uwaga o dozwolonych operacjach. Jeśli jest — tylko to, co wymienione.
Najczęstsze pytania#
Czy na maturze z informatyki można używać funkcji wbudowanych?
Tak, chyba że treść zadania wprost tego zabrania. Zakazy pojawiają się głównie w zadaniach typu „zapisz algorytm”. W zadaniach praktycznych na komputerze ocenia się wynik i możesz korzystać z całej biblioteki standardowej.
Czy można używać sorted() w Pythonie?
W zadaniach praktycznych — tak. W zadaniu, którego celem jest napisanie algorytmu sortowania, albo przy uwadze zakazującej funkcji wbudowanych — nie.
Czy można używać numpy albo pandas?
Nie ma ich na liście CKE, a komputer na egzaminie nie ma internetu. Wszystko, co jest potrzebne, da się zrobić biblioteką standardową.
W jakim języku można pisać maturę z informatyki?
W C/C++, Javie albo Pythonie. Wybierasz spośród tego, co zapewnia Twoja szkoła. Porównanie języków pod kątem matury znajdziesz w tekście o najczęstszych błędach na maturze z informatyki.
Czy na maturze z informatyki jest internet?
Nie. Działa natomiast wbudowana pomoc: help() i dir() w Pythonie oraz pomoc w programach biurowych.
Ile trwa matura z informatyki?
210 minut, z dostępem do komputera przez cały czas. Część odpowiedzi zapisujesz w arkuszu na papierze, a pliki z rozwiązaniami na pendrivie.
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 informatykiUczysz 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. Zacznij od bezpłatnej 15-minutowej konsultacji i przygotuj się do matury z planem.
🚀 Zadzwoń i umów darmową konsultacjęAutor: Alan Ostrowski