Funkcje wbudowane na maturze z informatyki - jak nie stracić punktów?

Opublikowano

Które funkcje wbudowane można używać na maturze? Które zabronione? Odpowiedź CKE + przykłady z arkuszy 2023-2025.

Całe nagranie: ok. 9 min.


Każdy, kto przygotowuje się do matury z informatyki, natknął się na tajemniczy zapis w arkuszach egzaminacyjnych, który wywołuje konsternację wśród zdających. Mowa o uwadze dotyczącej funkcji wbudowanych, która regularnie pojawia się w zadaniach algorytmicznych.

Uwaga o zakazie funkcji wbudowanych w arkuszu maturalnym z informatyki

W tym artykule wyjaśnimy raz na zawsze, co można, a czego nie można używać, aby nie stracić cennych punktów na egzaminie.

Czym są funkcje wbudowane?

Funkcjami wbudowanymi nazywamy wszystkie funkcje dostępne w języku programowania i dodatkowych bibliotekach, których można używać bez konieczności ich samodzielnego implementowania. Do tej kategorii należą między innymi:

  • print() (Python) lub cout (C++) - do wyświetlania danych
  • input() (Python) lub cin (C++) - do wczytywania danych
  • sort() - do sortowania
  • max(), min() - do znajdowania wartości maksymalnej i minimalnej
  • abs() - wartość bezwzględna
  • length() - długość łańcucha znaków
  • range() - używane w pętlach Pythona

Zablokowanie funkcji takich jak sort(), min(), max() ma uzasadnienie - samodzielna implementacja np. sortowania bąbelkowego jest przecież w wymaganiach maturalnych. Ale jak mamy wczytać czy wyświetlić dane?

Jak wczytać lub wyświetlić dane bez użycia funkcji wbudowanych?

Przyjrzyjmy się zadaniu 3.1 z matury z 2024 roku.

Zadanie 3.1 z matury z informatyki 2024 z poleceniem „napisz funkcję”

Kluczowe jest sformułowanie „napisz funkcję”. Oznacza to, że:

  • Nie wczytujesz nic od użytkownika - więc nie potrzebujesz ani input, ani cin
  • Nie wyświetlasz nic w konsoli - więc nie potrzebujesz ani print, ani cout
  • Masz napisać funkcję, która jako argument przyjmie wartości określone w specyfikacji i zwróci wynik

W tym przypadku funkcja powinna przyjąć argument (wartość n) i zwrócić zmienną wynikową (m).

Uwaga w arkuszu może być podpowiedzią do rozwiązania

Warto traktować zapis o funkcjach wbudowanych jako wskazówkę, w którym kierunku pójść z rozwiązaniem. Wracając do wspomnianego zadania - chodziło o wyeliminowanie parzystych cyfr z liczby. W uwadze znajdziemy podpowiedź: „liczby całkowite”, „dzielenie z resztą”.

Uwaga w zadaniu maturalnym podpowiadająca liczby całkowite i dzielenie z resztą

Rozwiązanie nasuwa się samo:

  1. Za pomocą modulo 10 wyciągamy ostatnią cyfrę.
  2. Za pomocą dzielenia całkowitego przez 10 zmniejszamy liczbę o ostatnią cyfrę.
  3. Powtarzamy proces, dopóki liczba jest większa od zera.
  4. Sprawdzamy, czy cyfra jest nieparzysta (modulo 2).
  5. Jeśli tak, dodajemy ją do wyniku na odpowiedniej pozycji.

Zadania są skonstruowane tak, że przy solidnych podstawach programowania nie odczuwa się potrzeby użycia zakazanych operacji.

Jak używać tablic bez funkcji wbudowanych?

Zapis „uwagi” nie jest zawsze identyczny. W zadaniu 2.3 z matury czerwcowej 2023 mamy inną sytuację - uwaga dotyczy odwoływania się do elementów tablicy.

Zadanie 2.3 z matury czerwcowej 2023 - uwaga o odwoływaniu się do elementów tablicy

Wyświetlenie wartości pod danym indeksem tablicy (zarówno w C++, jak i w Pythonie) odbywa się przez podanie indeksu w nawiasie kwadratowym - i to możemy robić. Ale żeby wyświetlić element tablicy, trzeba najpierw coś do niej dodać.

Jeśli samo odwoływanie się do elementów tablicy sprawia Ci trudność, zobacz też poradnik jak indeksować tablice na maturze z informatyki.

Dodawanie elementów do tablicy/listy

W C++ sprawa jest prosta - odwołujemy się tak samo jak przy wyświetlaniu i zmieniamy wartości za pomocą operatora przypisania.
W Pythonie większość osób od razu sięga po append(), ale czy to przypadkiem nie brzmi jak funkcja wbudowana? Dokładnie tak! Skoro w poleceniu wyraźnie napisano, czego wolno używać, trzeba przypomnieć sobie, że listę w Pythonie możemy najpierw utworzyć wypełnioną zerami za pomocą mnożenia. Później możemy odczytać i zmienić dane w poszczególnych elementach. Dzięki takiemu zabiegowi kod jest zgodny ze specyfikacją.

Różnica między „napisz funkcję” a „zapisz algorytm”

Warto zwrócić uwagę na różnicę w poleceniach. W zadaniu z tablicami nie było sformułowania „napisz funkcję”, tylko „zapisz w wybranej przez siebie notacji algorytm, który obliczy wartości elementów tablicy T”.

Polecenie „zapisz algorytm” obliczający wartości elementów tablicy T

Na pierwszy rzut oka może to być nieintuicyjne, ale w praktyce polecenie mówi nam, że należy napisać sam algorytm, który nie jest zamknięty w funkcji. Można myśleć o tym jako o fragmencie większego kodu - wszystkie dane są już wczytane, trzeba na nich tylko odpowiednio operować.

Ważne: tablica T nie jest daną wejściową. Polecenie opisuje tylko, co ma być wynikiem. Zatem tablicę T należy zainicjalizować w ramach rozwiązania.

Jak iterować po tablicy bez funkcji wbudowanych?

Przy tablicach, po których zazwyczaj iterujemy, warto zwrócić uwagę na pętle, szczególnie w Pythonie.
Większość programistów od razu sięgnie po for i in range(len(lista)), ale uwaga - range() oraz len() to też funkcje wbudowane! Alternatywami są:

  • Pętla while
  • for element in lista (operator in w Pythonie nie jest zabroniony)

W C++ pętle można robić standardowo, ale funkcje jak length() czy size() też odpadają.

Kiedy trzeba użyć funkcji wbudowanych?

Żeby nie było za prosto, istnieją wyjątki. W zadaniu 1.2 z matury majowej 2016 musieliśmy wypisać liczbę lub komunikat.

Zadanie 1.2 z matury majowej 2016 wymagające wypisania liczby lub komunikatu


W tym przypadku trzeba było użyć funkcji wypisującej, jak print() czy cout - było to wyraźnie zaznaczone w poleceniu.
Zasada jest prosta: jeśli autor zadania mówi, że możesz czegoś użyć, to korzystasz. Tylko wtedy jest to zgodne z zasadami.

Częste pytania dotyczące zadań algorytmicznych

Czy można testować algorytm na komputerze?

W formule 2023: Oczywiście! Masz dostęp do komputera przez cały egzamin. Nie ma już podziału na teorię i praktykę - wszystko jest w jednym arkuszu. Możesz napisać algorytm na komputerze, sprawdzić go i przepisać do arkusza maturalnego.

W formule 2015: W części teoretycznej nie masz dostępu do komputera, więc jeśli coś zapiszesz, już nie sprawdzisz, czy faktycznie działa.

Czy trzeba zapisywać importowane nagłówki/biblioteki?

Jeśli w zadaniu wyraźnie zakazano funkcji wbudowanych - po co chcesz coś importować? Na przykład, jeśli nie używasz cout ani cin, to w zasadzie nie korzystasz z biblioteki iostream, więc nie musisz jej importować.

Co z funkcją main() w C++?

Dopisywanie funkcji main() nie jest konieczne. Polecenie jasno wskazuje, że należy napisać samą funkcję lub algorytm, a nie w pełni działający program. Rozróżniamy więc: „napisz funkcję”, „algorytm” czy „program”.

Porady do zadań algorytmicznych

Kluczem do sukcesu jest dokładne czytanie poleceń i stosowanie się do zapisów w arkuszu. Pamiętaj:

  1. Jeśli jest zapis w uwadze - zawsze się do niego stosujesz.
  2. Jeśli nie ma uwagi - możesz robić, co chcesz (ale nie możesz doinstalowywać dodatkowych bibliotek).
  3. Traktuj uwagę jako podpowiedź.
  4. Rozróżniaj zapis „napisz funkcję” od „zapisz algorytm”.
  5. Testuj swoje rozwiązania (jeśli masz dostęp do komputera).

Zadania maturalne są skonstruowane tak, że przy solidnych podstawach programowania nie odczuwa się potrzeby używania zakazanych funkcji. Kluczem jest zrozumienie, że ograniczenia mają sens edukacyjny - mają sprawdzić, czy potrafisz samodzielnie zaimplementować podstawowe algorytmy.

Jeśli masz jeszcze wątpliwości dotyczące konkretnych zapisów w arkuszach maturalnych, warto skonsultować się z nauczycielem lub przeanalizować więcej przykładowych zadań z poprzednich lat. Pomocne będą też nasze zestawienia: algorytmy na maturze z informatyki oraz przegląd najczęstszych pułapek w artykule 5 najczęstszych błędów na maturze z informatyki.

Najczęściej zadawane pytania dot. artykułu (FAQ)

Zakaz dotyczy zwykle funkcji, które wyręczają zdającego w tym, co ma sam zaimplementować - na przykład sort(), min(), max(), a w Pythonie także len(), range() czy append(). Dokładny zakres zawsze wynika z uwagi w treści konkretnego zadania, więc trzeba ją uważnie przeczytać.

Jeśli polecenie brzmi „napisz funkcję”, najczęściej nie musisz nic wczytywać ani wypisywać - funkcja przyjmuje dane przez argument i zwraca wynik, więc input, cin, print i cout nie są potrzebne. Gdy polecenie wyraźnie każe wypisać liczbę lub komunikat, użycie print() lub cout jest dozwolone.

Tak. range() oraz len() to funkcje wbudowane Pythona, więc przy zakazie funkcji wbudowanych pętla for i in range(len(lista)) odpada. Zamiast niej możesz użyć pętli while albo zapisu for element in lista - sam operator in nie jest zabroniony.

Nie - append() jest funkcją wbudowaną. W takiej sytuacji najpierw tworzysz listę wypełnioną zerami przez mnożenie, na przykład [0] * n, a następnie przypisujesz wartości pod konkretnymi indeksami, np. lista[5] = 15. Dzięki temu kod pozostaje zgodny ze specyfikacją zadania.

„Napisz funkcję” oznacza kod zamknięty w funkcji, która przyjmuje argumenty i zwraca wynik. „Zapisz algorytm” to sam ciąg instrukcji operujących na danych - nie musisz zamykać go w funkcji ani dopisywać funkcji main() w C++, bo polecenie nie wymaga w pełni działającego programu.

© 2026 Software Bay. Design with ♥