Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

  • Mateusz Oracz
  • 7 sierpnia 2025

Każdy maturzysta przygotowujący się do egzaminu z informatyki prędzej czy później napotyka na problem, który może wywołać niemałe zamieszanie. W zadaniach algorytmicznych, które są stałym elementem arkuszy maturalnych, często mamy do czynienia z tablicami i napisami. I właśnie tutaj pojawia się kłopotliwa rozbieżność między specyfikacją zadań a rzeczywistością języków programowania.

Problem w specyfikacji

W specyfikacjach zadań maturalnych regularnie spotykamy zapis wskazujący, że tablice czy napisy wejściowe powinny być indeksowane od 1 do n, gdzie n oznacza liczbę elementów.

Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

Weźmy prosty przykład: jeśli mamy napis "Mama", to zgodnie ze specyfikacją pierwsze "M" znajduje się na indeksie 1, drugie "a" na indeksie 2, a ostatnie "a" na indeksie 4.

Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

Brzmi logicznie, prawda? Problem w tym, że w językach programowania dostępnych na maturze – C++, Java i Python – domyślnie indeksuje się tablice i napisy od 0 do n-1. W tych językach dla tego samego napisu "Mama" pierwsze "M" znajduje się na indeksie 0, drugie "a" na indeksie 1, a ostatnie "a" na indeksie 3.

Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

Dylemat maturzysty

Ta rozbieżność rodzi fundamentalne pytanie: czy rozwiązując zadanie maturalne należy indeksować zgodnie ze specyfikacją (od 1), czy wykorzystać naturalną konwencję języka programowania (od 0)? A może jeszcze ważniejsze: czy niezgodność z zapisem w specyfikacji może skutkować utratą punktów?
Przyjrzyjmy się konkretnemu przykładowi z matury z czerwca 2023 roku.

Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

W zadaniu 2.3 znalazł się zapis: "Dana jest dodatnia liczba całkowita n oraz słowo s[1...n]". Notacja 1...n jednoznacznie wskazuje na indeksowanie od 1, ale przecież w językach programowania słowa mają indeksy od 0.

Praktyczne konsekwencje problemu

Aby dostosować się do specyfikacji w języku programowania, maturzysta musiałby:

1. Stworzyć tablicę o jeden element większą – co rodzi pytanie, co zrobić z niewykorzystanym elementem na indeksie 0?

Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

2. W przypadku napisów dodać pusty znak na początku – co wydaje się całkowicie sztuczne i niepotrzebnie komplikuje kod.

Indeksowanie tablic na maturze z informatyki – problem, który niepokoi uczniów i nauczycieli

Gdyby w arkuszach było wszędzie napisane, że indeksujemy od 0 do n-1, problemu w ogóle by nie było. To tym bardziej dziwne, że na maturze mamy dostępne właśnie te trzy języki, które naturalnie indeksują od zera.

Nasze stanowisko w sprawie indeksowania

Dotychczas zalecaliśmy uczniom "sztuczne" indeksowanie od 1, traktując to jako bezpieczniejszą opcję. Argumentowaliśmy, że zgodność ze specyfikacją chroni przed ewentualnymi zarzutami egzaminatora, który mógłby uznać indeksowanie od 0 za niedostosowanie się do wymagań zadania.

Oficjalna odpowiedź CKE – więcej pytań niż odpowiedzi

Postanowiliśmy zapytać Centralną Komisję Egzaminacyjną o oficjalne stanowisko w tej sprawie. Napisaliśmy następującą wiadomość:
"W specyfikacjach wielu zadań maturalnych (przykładowo zadanie 2.3 z czerwca 2023 r.) tablice są opisywane z użyciem indeksów od 1 do n (np. s[1...n], T[1...n]).
W przypadku implementacji rozwiązania w językach programowania, takich jak Python, C++ czy Java, standardowo stosowane jest indeksowanie od 0.
W związku z tym nasuwają się następujące pytania:

  1. Czy zapisanie elementów tablicy przez zdającego na indeksach od 0 do n-1, zgodnie z naturalną konwencją języka programowania, będzie uznane za niedostosowanie się do treści polecenia?
  2. Czy zdający powinien celowo zainicjalizować element tablicy pod indeksem 0 dowolną wartością, aby spełnić warunek indeksowania przedstawiony w zadaniu?
  3. W przypadku implementacji w Pythonie (który jest często wybieranym językiem przez maturzystów), aby zapisać wartości na indeksach od 1 do n zgodnie z poleceniem, konieczne jest zadeklarowanie tablicy o rozmiarze n+1 (ze względu na dodatkowy, niewykorzystany element pod indeksem 0). Czy taka forma implementacji jest wymagana i uważana za poprawną z punktu widzenia Centralnej Komisji Egzaminacyjnej?
Dodatkowo, jeżeli dysponują Państwo takimi informacjami, ciekawi nas również powód stosowania indeksowania tablic od jedynki zamiast od zera w treściach zadań maturalnych."

Odpowiedź CKE okazała się zaskakująca:

"Zdający powinien napisać rozwiązanie zgodne ze specyfikacją. Jeśli użyto pseudokodu nie ma problemu indeksowania tablic. W przypadku języków programowania można wykorzystać obydwa podejścia takie jak: zastosować tablicę o 1 większą, aby korzystać z indeksów od 1 do n, albo n-elementową tablicę i korzystać z indeksów od 0 do n-1, należy jednak pamiętać, aby wyniki były zgodne ze specyfikacją."

Sprzeczność w odpowiedzi
Zauważcie paradoks: CKE stwierdza, że "zdający powinien napisać rozwiązanie zgodne ze specyfikacją", a jednocześnie akceptuje oba podejścia do indeksowania. Jeśli w specyfikacji jasno napisano o indeksowaniu od 1 do n, to jak może być akceptowalne indeksowanie od 0?
Ta odpowiedź budzi więcej wątpliwości niż rozwiewa:

  • Czy wszyscy egzaminatorzy wiedzą o akceptacji obu podejść?
  • Co się stanie, jeśli egzaminator nie uzna rozwiązania z indeksowaniem od 0?
  • Czy w przypadku odwołania się do wyniku, punkty zostaną przyznane?

Proste rozwiązanie problemu

Od ponad 15 lat na maturze z informatyki występuje indeksowanie od 1 do n. Rozwiązaniem wszystkich problemów byłaby zmiana tej konwencji na indeksowanie od 0 do n-1. Taka modyfikacja:

  • Wyeliminowałaby rozbieżność między specyfikacją a językami programowania
  • Zakończyła niepewność uczniów co do poprawnego podejścia
  • Uprościła kod rozwiązań
Argument o pseudokodzie, który często indeksuje od 1, nie jest przekonujący – nic nie stoi na przeszkodzie, aby również w pseudokodzie stosować indeksowanie od 0.

Konsekwencje obecnego stanu rzeczy

Aktualne podejście CKE generuje dwa poważne problemy:
Po pierwsze, utrudnia życie maturzystom. Jeśli zdający chce postępować zgodnie ze specyfikacją, musi tworzyć tablice o jeden element większe, co zwiększa ryzyko pomyłek algorytmicznych i utraty punktów.
Po drugie, podważa wiarygodność systemu. Tworzone są zadania ze specyfikacją niezgodną z dozwolonymi językami programowania, a następnie informuje się, że rozwiązanie musi być zgodne ze specyfikacją, jednocześnie akceptując rozwiązania z nią niezgodne.

Podsumowanie

Sytuacja z indeksowaniem tablic na maturze z informatyki wymaga interwencji. Obecny stan rzeczy wprowadza niepotrzebne zamieszanie, utrudnia przygotowania uczniów i podważa spójność systemu egzaminacyjnego.
Liczymy na to, że CKE przemyśli tę kwestię i wprowadzi jednoznaczne zmiany w przyszłych arkuszach maturalnych. Przejście na indeksowanie od 0 do n-1 rozwiązałoby wszystkie opisane problemy i dostosowałoby specyfikacje do rzeczywistości programistycznej.
Do tego czasu pozostaje nam instruować uczniów o dwuznaczności sytuacji i przygotowywać ich na oba scenariusze – choć nie powinno tak być w przypadku egzaminu państwowego.

Powiązane artykuły :
Jaki język programowania wybrać na maturę z informatyki – co wybrać, żeby nie żałować?
Jaki język programowania wybrać na maturę z informatyki – co wybrać, żeby nie żałować?
Artykuł
Czy można modyfikować pliki z danymi na maturze z informatyki?
Czy można modyfikować pliki z danymi na maturze z informatyki?
Artykuł