Zadanie 1: Szyfrowanie - Matura z Informatyki 2026, czerwiec

Zadanie 1.1: Szyfrogram dla podanych tekstów i kluczy

Mamy do uzupełnienia tabelę z kolumnami: liczba znaków n, tekst jawny, klucz k oraz szyfrogram.
Na każdym arkuszu maturalnym pojawia się zadanie polegające na analizie algorytmu oraz przedstawieniu jego działania na przykładach. Tak jest również w tym przypadku. Zadanie można rozwiązać na dwa sposoby:
1. Metodą komputerową - przepisujemy kod do wybranego, dozwolonego na maturze języka programowania, uruchamiamy program dla danych z tabeli, a następnie uzupełniamy ją otrzymanymi wynikami. Jest to szybki sposób, który pozwala rozwiązać problem bez większego wysiłku.
2. Metodą ręczną - na kartce odtwarzamy kolejne iteracje pętli, na bieżąco aktualizując wartości zmiennych. Ostatecznie otrzymujemy taki sam wynik jak w przypadku działania programu. Choć ta metoda jest bardziej czasochłonna, umożliwia dokładne zrozumienie działania algorytmu, co jest kluczowe przy rozwiązywaniu kolejnych podpunktów.
Ma to duże znaczenie, ponieważ bardzo często w zadaniu 1.2 lub 1.3 pojawiają się pytania sprawdzające właśnie zrozumienie działania kodu.
Dlatego zamiast od razu przenosić wszystko do programu, przejdźmy drogę zrozumienia krok po kroku, analizując algorytm „ręcznie”.
Analiza algorytmu dla pierwszego tekstu
Zacznijmy od obliczenia a i c.

Mając te zmienne, możemy przejść do sedna algorytmu - pętli przechodzącej po kolejnych wartościach od 1 do n.



Dalej według tego schematu tablica S dla następnych i będzie się zmieniała w następujący sposób:

Wykonajmy teraz taki sam proces dla drugiego tekstu.






Po przeanalizowaniu działania algorytmu na przykładzie łatwo zauważyć jego główną zasadę: algorytm dzieli znaki tekstu na dwie grupy - te stojące na pozycjach będących wielokrotnością klucza k oraz całą resztę - i zapisuje je w szyfrogramie w dwóch różnych miejscach: „od przodu” i „od tyłu” tablicy S.
To właśnie ta nietypowa logika powoduje, że szyfrogram jest przestawieniem liter. W rezultacie tablica S zostaje podzielona na dwie sekcje:
Sekcja I (końcowa część S): zawiera znaki z pozycji będących wielokrotnością k, w kolejności rosnącej.
Sekcja II (początkowa część S): zawiera wszystkie pozostałe znaki, ale zapisane od końca do początku.

Przy szyfrowaniu trzeciego tekstu można postąpić w analogiczny sposób.

Zadanie 1.2: Klucz k, dla którego szyfrogram i tekst jawny są identyczne

W tym podpunkcie musimy ustalić wartość klucza k, dla której tekst jawny i szyfrogram są identyczne. Kiedy może do tego dojść?
Aby szyfrogram był taki sam jak tekst jawny, każda litera musiałaby trafić dokładnie na tę samą pozycję, na której znajduje się w tablicy T. Wiemy jednak, że algorytm zapisuje znaki w niezmienionej kolejności tylko w sekcji I - czyli dla tych pozycji, które są wielokrotnością klucza k.
Oznacza to, że każda pozycja od 1 do n musiałaby być wielokrotnością k.
Jedyną wartością, która to umożliwia, jest k = 1.
Ten podpunkt okazał się niemal „darmowym” punktem na maturze - wystarczyło wcześniej dokładnie przeanalizować algorytm. To właśnie pokazuje, jak ważne jest zrozumienie jego działania, a nie tylko mechaniczne wykonywanie obliczeń.
Zadanie 1.3: Klucz k, dla którego szyfrogram to tekst od końca

W tym podpunkcie szukamy takiej wartości klucza k, dla której szyfrogram zawsze jest tekstem jawnym zapisanym od końca.
Aby tak się stało, każdy znak musi trafić do sekcji II, czyli tej części tablicy S, która zapisuje znaki w odwrotnej kolejności. Oznacza to, że żadna pozycja nie może być wielokrotnością k, bo wtedy znak trafiłby do sekcji I i zaburzył odwrócenie tekstu.
Jedynym sposobem, aby i mod k ≠ 0 dla każdej pozycji i od 1 do n, jest ustawienie k > n. Wtedy żadna liczba z zakresu 1..n nie jest wielokrotnością k, więc cały tekst zostaje zapisany od końca. Warto zauważyć, że warunek k > n oznacza również, że poprawną wartością klucza jest k = n + 1.
Zadanie 2: Algorytm - Matura z Informatyki 2026, czerwiec

Zadanie 2.1: Największe k, dla którego T jest k-podobna

Rozważmy wszystkie wartości k mniejsze od n i sprawdźmy, dla których z nich tablica T = [1, 2, 3, 4] jest k-podobna. Na początku możemy przyjąć k = 0, ponieważ zgodnie z treścią zadania każda tablica jest 0-podobna.
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - rozwiązanie zadania 2.1: analiza k-podobieństwa tablicy T = [1, 2, 3, 4] dla k = 0, k = 1 i k = 2](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-analiza-tablicy-k-0-k-2.jpg?v=4&width=1024&quality=95&format=webp)
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - rozwiązanie zadania 2.1: analiza k-podobieństwa tablicy T = [1, 2, 3, 4] dla k = 3, największe k wynosi 0](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-tablica-k-3-najwieksze-k-0.jpg?v=4&width=1024&quality=95&format=webp)
Analogiczne rozumowanie można przeprowadzić dla tablicy T = [1, 3, 4, 1, 1, 3, 4, 1]. Oczywiście nie ma potrzeby rozpisywania tego w tak formalny sposób. Można od razu zauważyć, że za każdym razem wybieramy początkowy oraz końcowy fragment tablicy o długości k, a następnie sprawdzamy, czy oba fragmenty są identyczne.
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - zadanie 2.1: tabela k-podobieństwa tablicy [1, 3, 4, 1, 1, 3, 4, 1] dla k = 1 do k = 4](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-tablica-1341-analiza-k-1-k-4.jpg?v=4&width=1024&quality=95&format=webp)
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - zadanie 2.1: tabela k-podobieństwa tablicy [1, 3, 4, 1, 1, 3, 4, 1] dla k = 5 do k = 7, największe k wynosi 4](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-tablica-1341-analiza-k-5-k-7-najwieksze-k-4.jpg?v=4&width=1024&quality=95&format=webp)
W taki sam sposób możemy postąpić dla tablicy T = [3, 5, 3, 5, 3, 5, 3, 5, 3, 5].
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - zadanie 2.1: tabela k-podobieństwa tablicy [3, 5, 3, 5, 3, 5, 3, 5, 3, 5] dla k = 1 do k = 4](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-tablica-35-analiza-k-1-k-4.jpg?v=4&width=1024&quality=95&format=webp)
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - zadanie 2.1: tabela k-podobieństwa tablicy [3, 5, 3, 5, 3, 5, 3, 5, 3, 5] dla k = 5 do k = 8](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-tablica-35-analiza-k-5-k-8.jpg?v=4&width=1024&quality=95&format=webp)
![Matura z informatyki 2026, czerwiec, formuła 2015, poziom rozszerzony - zadanie 2.1: analiza k = 9 i największe k = 8 dla tablicy [3, 5, 3, 5, 3, 5, 3, 5, 3, 5]](https://kursmaturainformatyka.b-cdn.net/images/_blog/arkusze-matura-informatyka-2026-rozszerzenie-czerwiec-formula-2015-10-czerwca-2026-formula-2015-zadanie-2-1-k-podobna-tablica-35-k-9-nie-najwieksze-k-8.jpg?v=4&width=1024&quality=95&format=webp)
Zadanie 2.2: Algorytm największego k, dla którego T jest k-podobna

W tym zadaniu nie potrzebujemy żadnych wyszukanych operacji. Cała magia polega na porównywaniu elementów tablicy - nic więcej. Użyjemy tylko:
- zwykłych porównań ==,
- indeksowania tablicy,
- prostych pętli,
- ewentualnie odejmowania, żeby policzyć odpowiednie pozycje.
Czyli absolutne podstawy z pierwszych lekcji o tablicach.
Konstrukcja algorytmu
Najprościej jest sprawdzać kolejne wartości k od największego możliwego do najmniejszego. Dlaczego od największego? Bo zadanie każe znaleźć największe takie k - więc jeśli zaczniemy od góry, to pierwsze trafienie kończy robotę.
Jak to wygląda krok po kroku?
- Ustawiamy k = n - 1, bo k musi być mniejsze niż długość tablicy.
- Dla danego k porównujemy wszystkie elementy o indeksach i ≤ k zgodnie z zasadą: T[i] = T[n - k + i], dla i = 1, 2, ..., k.
- Jeśli wszystkie pary są równe → znaleźliśmy największe k, zwracamy wynik.
- Jeśli nie → zmniejszamy k o 1 i próbujemy ponownie.
- Jeśli dojdziemy do k = 0 → każda tablica jest 0-podobna, więc zwracamy 0.
Zadanie 3: Test - Matura z Informatyki 2026, czerwiec

Zadanie 3.1: Liczba 111010102 - oceny P/F

Najwygodniej będzie najpierw przeliczyć liczbę 11101010₂ na system dziesiętny, a dopiero potem zamienić ją kolejno na system szesnastkowy, czwórkowy i ósemkowy.


Zadanie 3.2: Wynik SQL GROUP BY nr_przeciwnika


W zapytaniu z zadania 3.2 grupujemy wszystkie rundy według numeru przeciwnika i dla każdej grupy sumujemy punkty zdobyte przez gospodarzy. Oznacza to, że patrzymy na wszystkie rundy z przeciwnikiem nr 1, dodajemy ich punkty; potem robimy to samo dla przeciwnika nr 2 i nr 3. W efekcie otrzymujemy trzy wiersze: każdy zawiera numer przeciwnika oraz łączną liczbę punktów zdobytych przeciwko niemu.
Dla podanych danych sumy wyglądają tak:
- przeciwnik 1: 9 + 7 + 1 + 4 = 21
- przeciwnik 2: 4 + 10 + 3 + 5 = 22
- przeciwnik 3: 1 + 9 + 9 + 2 = 21
Dlatego poprawną odpowiedzią jest opcja 1 (PFFF).
Zadanie 3.3: Wynik SQL SELECT runda

W zadaniu 3.3 analizujemy każdą rundę i sprawdzamy dwa warunki jednocześnie. Najpierw interesują nas rundy, w których gospodarze lub goście zdobyli więcej niż 8 punktów - czyli takie, gdzie wynik po którejkolwiek stronie jest wysoki. Następnie spośród tych rund wybieramy tylko te, w których gospodarze mają wyraźną przewagę, większą niż 7 punktów. Oznacza to, że różnica gospodarze - goście musi być większa niż 7.
Przechodzimy więc przez wszystkie rundy i patrzymy, które z nich spełniają oba warunki naraz. Po sprawdzeniu danych okazuje się, że żadna runda nie spełnia jednocześnie wysokiego wyniku oraz tak dużej przewagi gospodarzy. W efekcie zapytanie nie zwraca żadnego wiersza.
Dlatego poprawną odpowiedzią jest opcja 3 (FFPF) - pusty wynik.
Zadanie 4: Pary - Matura z Informatyki 2026, czerwiec

Zadanie 4.1: Kolejne identyczne np-pary znaków

Musimy zliczyć wszystkie sytuacje, w których dwie kolejne np-pary są identyczne. Np-para to po prostu dwa znaki, gdzie pierwszy stoi na pozycji nieparzystej, a drugi na parzystej - innymi słowy analizujemy tekst „dwójkami”: 1-2, 3-4, 5-6 itd. Żeby zrobić to w sposób czytelny i uporządkowany, podzielimy zadanie na dwie funkcje: pierwszą odpowiedzialną za podział tekstu na np-pary oraz drugą zliczającą liczbę przypadków, w których kolejne pary są takie same.
Najpierw tworzymy funkcję utworz_np_pary, która z podanego napisu wyciąga wszystkie np-pary. Jej działanie jest bardzo proste: przechodzimy po tekście co 2 znaki i zapisujemy dwuznakowe fragmenty w liście np_pary. Dzięki temu otrzymujemy pełną sekwencję np-par, którą później możemy analizować.
Następnie tworzymy funkcję policz_powtorzenia_np_par, która sprawdza każdą parę wraz z następną, aby ustalić, czy są identyczne. Jeśli tak jest, funkcja zwiększa licznik o 1. Warto podkreślić, że na początku licznik ustawiamy na 0, ponieważ startujemy bez żadnych znalezionych powtórzeń - dopiero analiza kolejnych par pozwala nam ten licznik zwiększać i ostatecznie zwrócić wynik mówiący o tym, ile takich powtórzeń wystąpiło w całym napisie.
Rozwiązanie - zadanie 4.1 (Python):
Zadanie 4.2: Różne parzyście pierwsze np-pary

Najpierw korzystamy z funkcji utworz_np_pary, która pozwala nam podzielić napis na kolejne dwuznakowe fragmenty, czyli np-pary. Dzięki temu otrzymujemy uporządkowaną listę par, które będziemy dalej analizować.
Następnie tworzymy funkcję policz_sume_ascii obliczającą sumę kodów ASCII dla jednej pary. Bierzemy oba znaki i z użyciem funkcji ord pobieramy ich kody ASCII, a następnie dodajemy te wartości. W ten sposób otrzymujemy liczbę, którą możemy sprawdzić pod kątem pierwszości. To bardzo prosta funkcja, ale pozwala nam oddzielić obliczenia od reszty logiki, dzięki czemu cały kod pozostaje przejrzysty.
Kolejnym elementem jest funkcja czy_pierwsza sprawdzająca, czy dana liczba jest liczbą pierwszą. Wykorzystujemy tutaj klasyczne podejście: odrzucamy liczby mniejsze niż 2, a następnie testujemy kolejne dzielniki, zaczynając od 2 aż do tej liczby pomniejszonej o 1. Jeśli żaden z nich nie dzieli naszej sumy, oznacza to, że mamy liczbę pierwszą.
Funkcja znajdz_parzyscie_pierwsze_pary łączy wszystkie poprzednie kroki. Najpierw tworzymy np-pary z napisu, a następnie przechodzimy przez każdą z nich. Dla każdej pary obliczamy sumę ASCII i sprawdzamy, czy jest liczbą pierwszą. Jeśli tak, dopisujemy tę parę do listy wynikowej, ale tylko wtedy, gdy nie ma jej jeszcze w tej liście - ponieważ zadanie wymaga wypisania tylko różnych parzyście pierwszych np-par. Dzięki temu nawet jeśli jakaś para pojawia się w tekście kilka razy, w wyniku pojawi się tylko raz. Po przejściu wszystkich par otrzymujemy gotowy zestaw parzyście pierwszych np-par, który możemy wypisać.
Rozwiązanie - zadanie 4.2 (Python):
Zadanie 4.3: Najdłuższy parzyście pierwszy fragment

W zadaniu 4.3 musimy znaleźć najdłuższy fragment napisu, który składa się z całych np-par i którego suma kodów ASCII wszystkich znaków jest liczbą pierwszą, a następnie podać ten fragment razem z tą sumą.
Najpierw potrzebujemy funkcji policz_sume_ascii obliczającej sumę kodów ASCII dla dowolnego fragmentu tekstu. Jej działanie jest bardzo proste: przechodzimy po każdym znaku w napisie i dodajemy jego kod ASCII, uzyskany przez funkcję ord, do zmiennej suma. Dzięki temu możemy szybko sprawdzać dowolny fragment bez powtarzania kodu.
Kolejnym elementem jest funkcja czy_pierwsza sprawdzająca, czy dana liczba jest liczbą pierwszą. Działa ona dokładnie tak samo jak w zadaniu 4.2.
Gdy mamy już te dwie pomocnicze funkcje, możemy przejść do właściwego zadania. Musimy wygenerować wszystkie możliwe fragmenty napisu, które składają się z pełnych np-par, czyli mają długość parzystą i zaczynają się na początku pary. W praktyce oznacza to, że iterujemy po napisie co dwa znaki i dla każdego takiego miejsca tworzymy fragmenty o długości 2, 4, 6, 8… aż do końca tekstu.
Każdy z tych fragmentów sprawdzamy: najpierw obliczamy jego sumę ASCII, potem sprawdzamy, czy ta suma jest liczbą pierwszą. Jeśli tak, porównujemy długość fragmentu z aktualnie najlepszym wynikiem.
Na początku najlepszy fragment ustawiamy jako pusty napis, ponieważ nie mamy jeszcze żadnego kandydata - dopiero analiza kolejnych fragmentów pozwala nam znaleźć ten właściwy. Gdy trafimy na fragment spełniający warunki i dłuższy od poprzedniego, zapisujemy go jako nowy najlepszy wynik i zapamiętujemy jego sumę ASCII. Po przejściu całego napisu otrzymujemy najdłuższy parzyście pierwszy fragment.
Rozwiązanie - zadanie 4.3 (Python):
Zadanie 4.4: Napis z np-par uporządkowanych według liczby wystąpień

W zadaniu 4.4 musimy policzyć, ile razy każda np-para występuje w napisie, a następnie ustawić wszystkie np-pary w kolejności rosnącej według liczby ich wystąpień. Na końcu łączymy je w jeden napis, w którym każda para pojawia się dokładnie raz. Ponieważ w danych nie ma dwóch par o tej samej liczbie wystąpień, wynik jest jednoznaczny i nie wymaga dodatkowych kryteriów sortowania. Dodatkowo musimy podać największą oraz najmniejszą liczbę wystąpień np-par.
Najpierw wyciągamy wszystkie np-pary z napisu. Robimy to tak samo jak wcześniej: używając funkcji utworz_np_pary, przechodzimy po tekście co dwa znaki i zapisujemy dwuznakowe fragmenty. Dzięki temu mamy pełną listę par, które później będziemy analizować.
Kolejna funkcja, zlicz_wystapienia_np_par, zajmuje się policzeniem, ile razy każda np-para występuje w napisie. Wykorzystujemy tutaj słownik, w którym kluczem jest para znaków, a wartością liczba jej wystąpień. Przechodzimy przez listę np-par i dla każdej zwiększamy licznik. Jeśli dana para pojawia się po raz pierwszy, dodajemy ją do słownika z wartością 0, a następnie zwiększamy tę wartość o 1. Po zakończeniu pętli mamy pełną informację o tym, jak często występuje każda para - to kluczowy element zadania. Dodatkowo funkcja wyznacza najmniejszą i największą liczbę wystąpień par w słowniku poprzez porównywanie kolejnych wartości i zwraca także te dwie wartości.
Następnie przechodzimy do funkcji posortuj_babelkowo_pary, która odpowiada za ustawienie np-par w kolejności rosnącej według liczby ich wystąpień. Implementujemy klasyczne i każdemu znane sortowanie bąbelkowe.
W naszym przypadku porównujemy liczby wystąpień dwóch par i zamieniamy je, jeśli pierwsza występuje częściej niż druga. Po kilku przejściach lista ustawia się w odpowiedniej kolejności, a my otrzymujemy uporządkowane np-pary zgodnie z wymaganiami zadania.
Ostatnia funkcja, uporzadkuj_np_pary, łączy wszystkie poprzednie kroki w jedną całość. Najpierw wyciągamy np-pary z napisu, potem zliczamy ich wystąpienia, a następnie tworzymy listę samych par bez powtórzeń, którą przekazujemy do sortowania bąbelkowego. Gdy lista jest już uporządkowana, budujemy wynikowy napis, dopisując kolejne pary do zmiennej wynik. W ten sposób powstaje finalny tekst, w którym każda np-para pojawia się dokładnie raz, ustawiona zgodnie z rosnącą liczbą wystąpień.
Rozwiązanie - zadanie 4.4 (Python):
Ostateczne wyniki zapisane w pliku wyniki4.txt prezentują się następująco.

Zadanie 5: Recykling - Matura z Informatyki 2026, czerwiec

Zadanie 5.1: Dzień z największą łączną dostawą materiału

Jak każde zadanie w arkuszu kalkulacyjnym, rozpoczynamy od wczytania danych. Wchodzimy w zakładkę „Dane” i wybieramy „Z pliku tekstowego/CSV”. Excel powinien sam rozpoznać odpowiedni format, ale warto upewnić się, że ogranicznikiem jest tabulator, a daty są poprawnie wykryte. Klikamy „Załaduj” i mamy bazę do pracy.

Aby znaleźć datę, w której dostarczono do magazynu największą liczbę kilogramów, najpierw musimy dla każdej daty poznać łączną liczbę dostarczonych kilogramów. Dlatego skorzystamy z tabeli przestawnej. Najpierw zaznaczamy całą tabelę, a następnie przechodzimy do zakładki „Wstawianie”, gdzie wybieramy opcję „Tabela przestawna”. W oknie wystarczy kliknąć „OK” - przeniesie nas wtedy do nowego arkusza z pustą tabelką.

Po prawej stronie, w zakładce „Pola tabeli przestawnej”, wybieramy to, co nas interesuje, czyli datę oraz liczbę kilogramów. Excel od razu uzupełnia tabelę o sumę dostarczonych kilogramów dla każdego dnia.

Następnie, żeby uzyskać największą sumę dostaw w dniu, należy posortować tabelę malejąco. Klikamy prawym przyciskiem na dowolną komórkę w kolumnie z sumą, wybieramy „Sortuj” i „Sortuj od największych do najmniejszych”. Wiersz, który teraz znajduje się na początku tabeli, jest naszą odpowiedzią.

Uwaga - niespójność w kluczu CKE.
W poleceniu wymagano podania jedynie daty, natomiast w kluczu oceniania pojawia się zapis: „1 pkt - za prawidłową wielkość dostaw”.
Co prawda w formule 2023 (czerwiec 2026) występuje bardzo podobne zadanie, w którym w poleceniu faktycznie wymagano podania wielkości dostaw oprócz daty.
Wygląda więc na niedopatrzenie, które w tym roku mogło kosztować maturzystów jeden punkt - niby niewiele, ale w rekrutacji na studia każdy punkt ma znaczenie.
Zadanie 5.2: Dostawca dwa razy tego samego dnia

W zadaniu 5.2 również najwygodniej będzie skorzystać z tabeli przestawnej. Tworzymy ją tak jak w poprzednim podpunkcie, jednak teraz w „Pola tabeli przestawnej” wybieramy nr dostawy, datę oraz dostawcę. Ważne, żeby w kategorii „wiersze” dostawca znajdował się nad datą - umożliwia to odpowiednie grupowanie wyników.

Żeby nie sumować ze sobą numerów dostaw, tylko je zliczyć, klikamy na „Suma z Nr_dostawy” i w ustawieniach zmieniamy „Liczba” zamiast „Suma”.

W kolejnym kroku skorzystamy z funkcji LICZ.JEŻELI(), jednak nie zadziała ona od razu prawidłowo, jeżeli w jej zakresie będą znajdować się sumy częściowe dla każdego dostawcy. Dlatego ukrywamy je przed skorzystaniem z funkcji. Możemy to zrobić poprzez kliknięcie prawym przyciskiem na dowolną komórkę z nazwą dostawcy i wybranie opcji „Suma częściowa Dostawca”.

Teraz używamy funkcji LICZ.JEŻELI(). Jako pierwszy argument zaznaczamy całą kolumnę z liczbą dostaw dla poszczególnych dostawców w poszczególnych dniach, a jako drugi argument ustawiamy liczbę 2 (ponieważ szukamy tylko dostawców, którzy w jednym dniu wykonali dokładnie 2 dostawy do magazynu). Po wciśnięciu Enter otrzymujemy odpowiedź do zadania.

Zadanie 5.3: Kilogramy per miesiąc i wykres kolumnowy

W zadaniu 5.3 musimy dla każdego miesiąca podać, ile łącznie dostarczono w nim materiału do magazynu oraz stworzyć wykres kolumnowy. Ponieważ będziemy musieli dla każdego miesiąca zsumować dostawy, możemy użyć tabeli przestawnej tak jak w podpunktach 5.1 i 5.2. W „Polach tabeli przestawnej” wybieramy liczbę kilogramów oraz miesiące. Żeby wybrać miesiące, najpierw zaznacz też pole „Data”. Potem możesz je odznaczyć.

Ponieważ tabela przestawna będzie częścią naszej końcowej odpowiedzi, musimy zadbać o jasne nazewnictwo. Nazwę kolumny „Etykiety wierszy” zmieniamy poprzez kliknięcie lewym przyciskiem na komórkę, a kolumny „Suma z Liczba_kg” przez kliknięcie prawym przyciskiem i zmianę nazwy w ustawieniach. Możemy również usunąć sumę końcową przez kliknięcie prawym przyciskiem na komórkę i wybranie pozycji „Usuń sumę końcową”.


To zestawienie to jednak dopiero połowa sukcesu - należy jeszcze utworzyć na jego podstawie wykres kolumnowy. Robimy to poprzez zaznaczenie całej tabeli i wybranie wykresu kolumnowego w zakładce „Wstawianie”.

Uwaga! Samo wstawienie wykresu nie kończy zadania. Wytyczne w kluczu CKE wskazują wprost, że egzaminator nie może przyznać maksymalnej liczby punktów za zadanie z wykresem, jeśli brakuje odpowiedniego formatowania. Zadbaj o czytelne formatowanie, czyli dodaj odpowiedni tytuł wskazany w zadaniu, opisy osi oraz legendę (jeśli jest wymagana). Brak tych elementów to częsty błąd, który prowadzi do niepotrzebnej straty punktów.

Co ciekawe, nawet jeśli dane przedstawione na wykresie byłyby niepoprawne, a formatowanie wykresu byłoby dobrze zrobione, otrzymasz punkty właśnie za formatowanie wykresu.
Jak to zrobić szybko i sprawnie? Zielony plusik w prawym górnym rogu wykresu pozwoli wybrać jego elementy. Polecenie może nie wymieniać osi wprost, ale zasady oceniania punktują opis wykresu i osi - dodaj je zawsze.

Tak przygotowany wykres zapewni Ci maksymalną liczbę punktów za to zadanie.

Zadanie 5.4: Dni z przetworzeniem mniej niż 3900 kg

Przechodzimy teraz do symulacji - jest to nieodłączny element zadania w arkuszu kalkulacyjnym na każdej maturze z informatyki.
Budowę symulacji zaczynamy od przygotowania tabeli opisującej łączną dostawę w każdym dniu. Taką tabelę stworzyliśmy już przy okazji zadania 5.1, tyle że z sortowaniem malejącym. Zróbmy ją ponownie bez tego sortowania - dzięki temu uzyskamy łączną dostawę kg dla każdego dnia w kolejności chronologicznej.
Następnie do tabeli dodajemy kolumny: stan magazynu rano, liczba pobranych kilogramów, stan magazynu po pobraniu oraz stan magazynu wieczorem (po dostawie).
Z treści zadania wiemy, że 2 stycznia rano (przed dostawami) w magazynie znajdowało się 5000 kg materiału. Tę wartość wpisujemy tylko w pierwszym dniu - w kolejnych dniach stan magazynu rano bierzemy ze stanu wieczorem z dnia poprzedniego.
Liczba pobranych kilogramów będzie wyliczana zgodnie z zasadą: jeżeli w magazynie znajduje się nie więcej niż 3900 kg materiału, pobieramy całość. W przeciwnym przypadku pobieramy jedynie 3900 kg, a reszta pozostaje w magazynie. Warunek ten można zrealizować w Excelu, używając funkcji JEŻELI().

Stan magazynu po pobraniu to nic innego jak różnica między stanem magazynu rano a liczbą pobranych kilogramów. Z kolei stan magazynu wieczorem to suma stanu magazynu po pobraniu i dostawy.

W kolejnych dniach symulacji stan magazynu rano będzie równy stanowi magazynu wieczorem z poprzedniego dnia, dlatego wystarczy zastosować odpowiednie odwołanie do tej komórki.
Gdy wszystkie wzory są już przygotowane, przeciągamy je do końca tabeli i w ten sposób otrzymujemy pełną symulację. Teraz możemy przejść do właściwej realizacji zadania 5.4.

W zadaniu 5.4 musimy ustalić, w ile dni przetworzono mniej niż 3900 kg materiału. Aby policzyć, w ilu komórkach w kolumnie „pobrane kg” znajduje się wartość mniejsza niż 3900, skorzystamy z funkcji LICZ.JEŻELI().

Zadanie 5.5: Największy stan magazynu na koniec dnia

W zadaniu 5.5 musimy ustalić, jaki był największy stan magazynu po dostawie oraz wskazać dzień, w którym wystąpił.
Aby znaleźć największą wartość w kolumnie „stan magazynu wieczorem”, skorzystamy z funkcji MAX().

Aby odnaleźć dzień, w którym stan magazynu wieczorem wynosił 11224 kg, możemy użyć formatowania warunkowego dostępnego w zakładce „Narzędzia główne”. Wybieramy „Reguły wyróżniania komórek”, a następnie „Równe…”. W okienku, które się pojawi, odwołujemy się do komórki zawierającej wynik funkcji MAX() i klikamy „OK”. Następnie przewijamy tabelę w dół, aż znajdziemy komórkę zaznaczoną na czerwono - jest to wiersz z dniem, którego szukamy.


Zadanie 5.6: Wydajność przetwórni przy pełnej mocy każdego dnia

Z przygotowanymi formułami z wcześniejszej symulacji to zadanie jest już formalnością. Wystarczy manipulować dzienną wydajnością w naszej formule tak, aby znaleźć wartość, dla której każdego dnia przetwarzana jest liczba kilogramów równa wydajności. Modyfikujemy więc formułę liczącą pobierane kilogramy tak, aby wydajność była pobierana z jednej, konkretnej komórki - dzięki temu możemy w ułamku sekundy testować kolejne warianty.

Następnie dodajemy kolumnę pomocniczą, która sprawdza, czy w danym dniu pobrano mniej kilogramów, niż wynosi maksymalna wydajność. Jeżeli w jakimkolwiek wierszu pojawi się wynik „TAK”, oznacza to, że ustawiona wydajność jest nadal zbyt wysoka.

Aby szybko sprawdzać, czy dana wydajność jest za wysoka, korzystamy z funkcji LICZ.JEŻELI(), która zlicza, ile razy pobrano mniej kilogramów, niż wynosi maksymalna wydajność. Gdy funkcja zwróci 0, oznacza to, że znaleźliśmy odpowiednią wartość. Pamiętajmy jednak, że musimy znaleźć maksymalną wydajność, dla której wynik funkcji nadal wynosi 0.


Na końcu możemy jeszcze rzucić okiem, jak wyglądałby wypełniony plik wyniki5.txt z odpowiedziami do zadania. I gotowe! Wszystkie zadania dotyczące arkusza kalkulacyjnego mamy wykonane. :)

Zadanie 6: Oceny - Matura z Informatyki 2026, czerwiec

Zadanie należało zacząć od wczytania danych z plików tekstowych dołączonych do arkusza. Są to trzy zbiory rekordów: uczniowie.txt, nauczyciele.txt oraz oceny.txt - zwykle każdy importujemy do osobnej tabeli (np. Uczniowie, Nauczyciele, Oceny).
Przy imporcie oceny.txt warto upewnić się, że pole z datą ma właściwy typ (Data i godzina) oraz że daty są odczytywane w układzie RMD (rok-miesiąc-dzień), zgodnie z arkuszem. W większości przypadków Access ustawi to poprawnie w kreatorze, ale ten krok warto zweryfikować przy pierwszym imporcie (także w zapisanej specyfikacji).


Po wczytaniu danych trzeba było jeszcze powiązać tabele relacjami zgodnie ze schematem z arkusza: między innymi Uczniowie → Oceny po Id_Ucznia oraz Nauczyciele → Oceny po Id_Naucz (typowe powiązania jeden-do-wielu). Poniżej przykład takiego układu w oknie relacji Access.

Teraz jesteśmy gotowi do realizacji właściwych zadań.
Zadanie 6.1: Zestawienie średnich ocen każdej klasy

W zadaniu musimy wykonać zestawienie średnich ocen dla każdej z klas oraz posortować je niemalejąco względem średnich.
Wystarczy w projekcie kwerend wybrać tabele Oceny i Uczniowie, a z nich pola Id_Klasy oraz Ocena. W kwerendzie stosujemy Grupuj według dla pola Id_Klasy, a dla pola Ocena wybieramy funkcję Średnia - dzięki temu otrzymamy osobne średnie dla każdej z klas. Wynik sortujemy rosnąco według średniej, tak aby klasy ustawiły się niemalejąco.

Zadanie 6.2: Uczeń z największą liczbą ocen celujących

W zadaniu musimy znaleźć ucznia, który otrzymał najwięcej szóstek, a następnie podać jego identyfikator, klasę oraz liczbę tych ocen.
Ponownie korzystamy z tabel Oceny i Uczniowie. Wybieramy z nich pola: Id_Ucznia, Id_Klasy, Ocena oraz Id_Oceny. W kryteriach dla pola Ocena wpisujemy „6”, aby zliczać wyłącznie oceny celujące.
Następnie ustawiamy Grupuj według dla pól Id_Ucznia, Id_Klasy i Ocena, natomiast dla pola Id_Oceny wybieramy funkcję Policz. Aby w wyniku otrzymać jedynie ucznia z największą liczbą szóstek, sortujemy malejąco po polu Id_Oceny, a w opcji Zwróć wpisujemy „1”. Na koniec warto odznaczyć pole Pokaż przy Ocena, ponieważ nie powinno ono pojawić się w wynikach kwerendy.

Zadanie 6.3: Średnia ocen z matematyki kobiet i mężczyzn

W zadaniu należy obliczyć średnią ocen z matematyki wszystkich uczniów, osobno dla kobiet i mężczyzn. Musimy wykorzystać wszystkie trzy tabele, aby wyciągnąć z nich informacje o przedmiocie, płci i ocenach.
Najpierw w kryteriach dla pola Przedmiot wpisujemy „matematyka”, aby ograniczyć nasze zestawienie wyłącznie do tego przedmiotu. W kwerendzie stosujemy Grupuj według dla pola Plec, a dla pola Ocena wybieramy funkcję Średnia - dzięki temu otrzymamy osobne średnie dla kobiet i mężczyzn.

Pozostaje już tylko zmienić we właściwościach pola Ocena format na „Stałoprzecinkowy” oraz ustawić liczbę miejsc dziesiętnych na 2. Dzięki temu wynik spełnia wszystkie wymagania polecenia.

Zadanie 6.4: Najrzadsza ocena w każdym miesiącu

W tym zadaniu musimy stworzyć zestawienie, w którym dla każdego miesiąca znajdziemy ocenę wystawioną najmniejszą liczbę razy oraz podamy tę liczbę.
Najpierw tworzymy kwerendę pomocniczą, w której dla każdego miesiąca ustalimy, ile razy poszczególne oceny zostały w nim wystawione. Aby wyodrębnić z dat miesiące, używamy funkcji Month(). Następnie stosujemy Grupuj według dla miesięcy i ocen, a dla pola Id_Oceny wybieramy funkcję Policz. My nazwaliśmy tę kwerendę POM_6_4_1.

Następnie, na podstawie właśnie utworzonej kwerendy POM_6_4_1, tworzymy kolejną kwerendę pomocniczą, aby znaleźć minimalną liczbę wystawień konkretnej oceny w każdym miesiącu. W tym celu stosujemy funkcję Minimum dla pola PoliczOfId_Oceny z POM_6_4_1. Gotową kwerendę nazywamy POM_6_4_2.

Na sam koniec wystarczy połączyć kwerendy POM_6_4_1 i POM_6_4_2 relacją między polami PoliczOfId_Oceny i MinimumOfPoliczOfId_Oceny oraz miesiącami. Dzięki temu otrzymamy dla każdego miesiąca te oceny, które miały najmniejszą liczbę wystawień spośród wszystkich ocen.

Zadanie 6.5: Nauczyciele bez ocen niedostatecznych w grudniu 2023

W zadaniu musimy znaleźć nauczycieli, którzy w grudniu 2023 roku nie wystawili ani jednej oceny niedostatecznej (1).
Od razu nasuwa się pomysł użycia kwerendy wyszukującej niepasujące dane. Jednak aby móc z niej skorzystać, musimy najpierw stworzyć kwerendę pomocniczą, w której znajdą się wszystkie oceny niedostateczne wystawione w grudniu 2023 wraz z identyfikatorami nauczycieli, którzy je wystawili.
Aby utworzyć zestawienie ocen niedostatecznych z grudnia, używamy w kryteriach funkcji Between #1.12.2023# And #31.12.2023#. Dodatkowo w kryteriach pola Ocena wpisujemy „1” i dodajemy pole Id_Naucz z tabeli Nauczyciele. Na koniec zapisujemy kwerendę pomocniczą, aby móc wykorzystać ją przy tworzeniu kwerendy wynikowej (my zapisaliśmy ją jako POM_6_5).

Na podstawie tego zestawienia tworzymy kwerendę wynikową - wyszukującą niepasujące dane.
Jak utworzyć kwerendę wyszukującą niepasujące dane?
W oknie Nowa kwerenda wybieramy Kreator kwerend wyszukujących niepasujące dane. Kreator prowadzi przez wybór tabeli „źródłowej”, tabeli porównawczej oraz przez dopasowanie klucza.

Interesują nas nauczyciele bez żadnej „jedynki” w grudniu - jako pierwszą wskazujemy więc tabelę Nauczyciele, ponieważ to z niej pochodzą rekordy, które mają trafić do kwerendy wynikowej (o ile nie mają dopasowania po drugiej stronie).

Kwerendą z pokrewnymi rekordami jest POM_6_5, ponieważ tam znajdują się wszystkie oceny niedostateczne wystawione w grudniu przez poszczególnych nauczycieli.

W obu tabelach łączymy dane po polu Id_Naucz.

W wyniku kreatora chcemy zobaczyć jedynie Id_Naucz, więc je wybieramy.

Po zakończeniu pracy kreatora zapisujemy kwerendę wynikową - w arkuszu pojawia się lista nauczycieli bez wpisów w kwerendzie POM_6_5.

To był ostatni podpunkt rozwiązywany w bazie danych, więc po wpisaniu odpowiedzi z 6.1-6.5 możemy zerknąć, jak wygląda przykładowa zawartość pliku wyniki6.txt.
