Wróć do: Arkusze maturalne
2022MAJ

Matura z informatyki 2022 – maj, poziom rozszerzony

Formuła 2015arkusz CKE · poziom rozszerzony

Arkusz maturalny z informatyki rozszerzonej, maj 2022 (Formuła 2015). Rozwiąż zamknięte części zadań online i sprawdź odpowiedzi, pobierz PDF z pełną treścią, dane do zadań oraz klucz CKE.

01

Opis

Arkusz maturalny z informatyki na poziomie rozszerzonym z sesji maj 2022 (Formuła 2015). Egzamin składał się z dwóch części: część I (zadania 1–3, 60 minut, 15 punktów) oraz część II z dostępem do komputera (zadania 4–6, 150 minut, 35 punktów). Poniżej znajdziesz interaktywne wersje zamkniętych części zadań – uzupełnij puste pola i kliknij Sprawdź, aby od razu sprawdzić poprawność (odpowiedzi pochodzą z klucza CKE).

W zadaniach z konkretną odpowiedzią (liczba, wartość, lista) wpisz swój wynik i kliknij Sprawdź. W zadaniach otwartych (napisz program, algorytm, zapytanie SQL) kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE. Pełną treść zadań znajdziesz też w arkuszu PDF.

02

Zadanie 1. n-permutacja

Dla dodatniej liczby całkowitej n, n-permutacją nazywamy taki n-elementowy ciąg liczb całkowitych, który zawiera każdą z liczb 1, 2, …, n dokładnie jeden raz.

Przykład:

ciąg (4,2,1,3) jest 4-permutacją,
ciąg (6,5,4,1,2,3) jest 6-permutacją,
ciągi (1,3,1,2) i (2,3,4,5) nie są 4-permutacjami.

W ciągu n liczb całkowitych, który nie jest n-permutacją, można podmienić niektóre elementy tak, aby otrzymać n-permutację.

Przykład:

w ciągu (1,3,1) wystarczy podmienić jeden element – pierwszą lub ostatnią jedynkę (1) – na dwójkę (2), aby powstały ciąg był 3-permutacją.

Zadanie 1.1

Uzupełnij poniższą tabelę – dla każdego z podanych ciągów podaj najmniejszą liczbę elementów, które trzeba podmienić, aby dany ciąg był n-permutacją. Jeśli ciąg jest już n-permutacją, wpisz 0.

nciągliczba elementów do podmiany
3(1, 3, 1)1
4(1, 4, 2, 5)
5(2, 2, 2, 2, 2)
4(4, 2, 3, 1)
6(5, 4, 1, 5, 6, 8)
6(8, 4, 9, 6, 5, 7)

Zadanie 1.2

Zapisz w pseudojęzyku lub wybranym języku programowania algorytm, który dla danego ciągu n dodatnich liczb całkowitych zapisanego w tablicy A obliczy najmniejszą liczbę elementów, które trzeba w nim podmienić, aby otrzymać n-permutację.

Uwaga: W zapisie algorytmu możesz korzystać tylko z instrukcji sterujących, operatorów arytmetycznych: dodawania, odejmowania, mnożenia, dzielenia, dzielenia całkowitego i reszty z dzielenia; operatorów logicznych, porównań, odwoływania się do pojedynczych elementów tablicy i 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.

Specyfikacja
Dane: n – dodatnia liczba całkowita A[1..n] – tablica n dodatnich liczb całkowitych, gdzie A[i] jest i-tym elementem ciągu Wynik: k – minimalna liczba elementów, które trzeba podmienić w ciągu zapisanym w tablicy A, aby otrzymać n-permutację

Kliknij Pokaż odpowiedź, aby zobaczyć rozwiązanie z klucza CKE.

Uwaga: to zadanie otwarte – odpowiedź z klucza CKE jest jedynie przykładowa; istnieją również inne poprawne rozwiązania.

03

Zadanie 2. ab-słowo

Niech n będzie dodatnią liczbą całkowitą i niech s będzie słowem o długości n zbudowanym z liter a lub b. Zapis s[i] oznacza i-tą literę w tym słowie (1 ≤ i ≤ n). Dla słowa s wykonujemy poniższy algorytm. Wynikiem działania algorytmu jest wartość zmiennej k.

Algorytm

A[0]  0
dla i = 1, 2, ..., n
    jeżeli s[i] = 'a'
        A[i]  A[i − 1] + 1
    w przeciwnym razie
        A[i]  A[i − 1]

B[n + 1]  0
dla j = n, n − 1, ..., 1
    jeżeli s[j] = 'b'
        B[j]  B[j + 1] + 1
    w przeciwnym razie
        B[j]  B[j + 1]

k  1
dla i = 0, 1, 2, ..., n
    jeżeli A[i] + B[i + 1] > k
        k  A[i] + B[i + 1]

Zadanie 2.1

Uzupełnij tabelę – wpisz wynik działania algorytmu dla podanych wartości s.

nsWynik działania algorytmu (wartość k)
5aabab4
2ab2
3aaa3
6aababb
9baabbaaab

Zadanie 2.2

Podaj przykłady dziesięcioliterowych słów złożonych z liter a lub b, dla których wynik działania powyższego algorytmu (wartość k) jest równy odpowiednio 10 i 5.

nsWynik działania algorytmu (wartość k)
1010
105

Kliknij Pokaż odpowiedź, aby zobaczyć rozwiązanie z klucza CKE.

Uwaga: to zadanie otwarte – odpowiedź z klucza CKE jest jedynie przykładowa; istnieją również inne poprawne rozwiązania.

Zadanie 2.3

Dla uproszczenia będziemy pisać zamiast aa, zamiast aaa i tak dalej. Innymi słowy: dla dowolnej dodatniej liczby całkowitej m, zapis aᵐ oznacza literę a powtórzoną m razy, natomiast bᵐ oznacza literę b powtórzoną m razy.

Podaj wynik działania (wartość k) powyższego algorytmu dla słowa a³⁰⁰b⁵⁵⁰a³⁰⁰b⁷a²⁸⁰b¹¹⁰.

k =

04

Zadanie 3. Test

Oceń prawdziwość podanych zdań. Zaznacz P, jeśli zdanie jest prawdziwe, albo F – jeśli jest fałszywe.

W każdym zadaniu punkt uzyskasz tylko za komplet poprawnych odpowiedzi.

Zadanie 3.1

Dany jest algorytm:

s  0
dla  i = 1, 2, …, n
    dla  j = i,  i + 1, …, n
        s  s + 1

Złożoność obliczeniowa powyższego algorytmu oceniona liczbą wykonań instrukcji s ← s + 1, w zależności od dodatniej liczby całkowitej n, jest

NrZdanieP / F
1.liniowa.
2.kwadratowa.
3.n log n.
4.nie większa niż sześcienna.

Zadanie 3.2

Po dodaniu liczb 132₄ oraz 3111₄ zapisanych w systemie czwórkowym otrzymamy:

NrZdanieP / F
1.1111011₂
2.362₈
3.F3₁₆
4.3303₄

Zadanie 3.3

W bazie danych istnieje tabela mandaty(numer, id_osoby, punkty) zawierająca następujące dane:

numerid_osobypunkty
115
2114
3220
4321
521
612

Wynikiem zapytania:

SELECT id_osoby, sum(punkty)
FROM mandaty
GROUP BY id_osoby
HAVING sum(punkty) > 5

jest zestawienie:

1   14
2   20
3   21
NrP / F
1.

Wynikiem zapytania:

SELECT id_osoby, sum(punkty)
FROM mandaty
GROUP BY id_osoby

jest zestawienie:

1   21
2   21
3   21
NrP / F
2.

Wynikiem zapytania:

SELECT numer + punkty
FROM mandaty

jest

86
NrP / F
3.

Wynikiem zapytania:

SELECT count(punkty)
FROM mandaty
WHERE punkty = 21

jest

1
NrP / F
4.
05

Zadanie 4. Liczby

W pliku liczby.txt danych jest 200 różnych liczb całkowitych z zakresu [10, 100000]. Każda z tych liczb zapisana jest w osobnym wierszu.

Napisz program (lub kilka programów), który(-e) znajdzie(-dą) odpowiedzi do poniższych zadań. Odpowiedzi zapisz w pliku wyniki4.txt. Każdą odpowiedź poprzedź numerem oznaczającym zadanie.

Do dyspozycji masz plik przyklad.txt, który także zawiera 200 liczb – odpowiedzi dla tego pliku podano w treściach zadań. Możesz sprawdzać na nim działanie swojego programu.

Uwaga: Pamiętaj, że Twój program musi ostatecznie działać dla pliku liczby.txt.

Zadanie 4.1

Podaj, ile jest w pliku liczby.txt takich liczb, których cyfry pierwsza i ostatnia są takie same. Zapisz tę z nich, która występuje w pliku liczby.txt jako pierwsza. W pliku z danymi jest co najmniej jedna taka liczba.

Odpowiedź dla danych z pliku przyklad.txt: 26 626
(26 takich liczb, które mają pierwszą i ostatnią cyfrę taką samą; pierwszą z nich w pliku przykładowym jest 626)

Poniżej podaj odpowiedź dla pełnego pliku liczby.txt i kliknij Sprawdź.

Liczba takich liczb:

Pierwsza taka liczba:

Zadanie 4.2

Znajdź w pliku liczby.txt:

  • liczbę, która ma w rozkładzie najwięcej czynników pierwszych (podaj tę liczbę oraz liczbę jej czynników pierwszych)
  • liczbę, która ma w rozkładzie najwięcej różnych czynników pierwszych (podaj tę liczbę oraz liczbę jej różnych czynników pierwszych).

Przykład: liczba 420=2·2·3·5·7 ma w rozkładzie 5 czynników pierwszych, w tym 4 różne czynniki pierwsze (2, 3, 5, 7).

Odpowiedź dla danych z pliku przyklad.txt: 144 6 210 4
(Liczba 144 ma najwięcej czynników pierwszych; liczba czynników pierwszych liczby 144 wynosi 6. Liczba 210 ma najwięcej różnych czynników pierwszych; liczba różnych czynników pierwszych liczby 210 wynosi 4).

Poniżej podaj odpowiedź dla pełnego pliku liczby.txt i kliknij Sprawdź.

Liczba o największej liczbie czynników pierwszych:

Liczba jej czynników pierwszych:

Liczba o największej liczbie różnych czynników pierwszych:

Liczba jej różnych czynników pierwszych:

Zadanie 4.3

Trójka (x, y, z) jest dobra, jeśli y jest wielokrotnością x, natomiast z jest wielokrotnością y (czyli x dzieli y, a y dzieli z) oraz x, y, z są różne.

Przykład: trójka (2, 6, 12) jest dobra, ponieważ 2 dzieli 6, a 6 dzieli 12. Trójka (2, 10, 12) nie jest dobra, ponieważ 10 nie dzieli 12.

Analogicznie możemy zdefiniować dobrą piątkę liczb – piątka (u, w, x, y, z) jest dobra, jeśli każda z liczb, poza pierwszą, jest podzielna przez poprzednią liczbę z piątki (u dzieli w, w dzieli x, x dzieli y oraz y dzieli z) oraz wszystkie liczby z piątki są różne.

a) Podaj, ile jest dobrych trójek wśród liczb występujących w pliku liczby.txt. Zapisz wszystkie dobre trójki do pliku trojki.txt, każdą w osobnym wierszu.

Uwaga: Liczby z trójki nie muszą występować w pliku liczby.txt w kolejnych wierszach, a ich kolejność w tym pliku może być dowolna.

b) Podaj, ile jest dobrych piątek wśród liczb występujących w pliku liczby.txt.

Odpowiedzi dla danych z pliku przyklad.txt:
a) 10
b) 1
(10 dobrych trójek i jedna dobra piątka)

Poniżej podaj odpowiedź dla pełnego pliku liczby.txt i kliknij Sprawdź.

a)

b)

06

Zadanie 5. Sok

Plik o nazwie soki.txt zawiera informacje o zamówieniach butelkowanego soku owocowego składanych w pewnym zakładzie przez cztery magazyny (Gniezno, Malbork, Ogrodzieniec i Przemyśl). Dane w pliku uporządkowano według kolejności zamówień. W każdym wierszu pliku znajdują się następujące dane: numer zamówienia, data zamówienia, magazyn (który składał dane zamówienie) oraz wielkość zamówienia (liczba butelek soku). Zakład przyjmuje zamówienia codziennie. Z każdego magazynu spływa maksymalnie jedno zamówienie dziennie. Pierwszy wiersz pliku jest wierszem nagłówkowym, a dane w wierszach rozdzielono znakami tabulacji.

Przykład:

nr_zamowienia  data         magazyn       wielkosc_zamowienia
1              02.01.2021   Ogrodzieniec  1290
2              02.01.2021   Przemysl      4420
3              02.01.2021   Gniezno       5190
4              03.01.2021   Malbork       950
5              03.01.2021   Gniezno       6000

Wykorzystaj dostępne narzędzia informatyczne i podaj odpowiedzi do zadań 5.1.–5.5. Odpowiedzi zapisz w pliku wyniki5.txt. Każdą odpowiedź poprzedź numerem oznaczającym zadanie.

Zadanie 5.1

Podaj, ile razy składano zamówienia z każdego z magazynów.

magazynliczba zamówień
Gniezno
Malbork
Ogrodzieniec
Przemysl

Zadanie 5.2

Podaj liczbę dni najdłuższego okresu, kiedy zamówienia z Ogrodzieńca wpływały do zakładu codziennie, oraz datę pierwszego dnia i ostatniego dnia tego okresu.

Liczba dni:

Data pierwszego dnia:

Data ostatniego dnia:

Zadanie 5.3

Wykonaj zestawienie zawierające łączną wielkość zamówień (czyli łączną liczbę zamówionych butelek soku) z każdego z magazynów. Na podstawie wykonanego zestawienia utwórz procentowy wykres kołowy ilustrujący łączną wielkość zamówień z każdego z magazynów. Pamiętaj o czytelnym opisie wykresu: o tytule, legendzie i wartościach procentowych.

Kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE – zestawienie łącznej wielkości zamówień oraz gotowy wykres.

Zadanie 5.4

Informacje do zadań 5.4., 5.5.

  • Sok był produkowany w zakładzie głównym i jego filii.
  • Każdego dnia roboczego (od poniedziałku do piątku) w zakładzie głównym wytwarzano 12 000 butelek soku, natomiast w soboty i w niedziele – po 5 000 butelek soku.
  • Każdego dnia, po zakończeniu dziennej produkcji, zakład wysyłał do magazynów butelki soku zgodnie z zamówieniem z danego dnia (to oznacza, że każde zamówienie było realizowane w tym samym dniu, w którym było złożone przez magazyn).
  • Zamówienia były wysyłane w takiej kolejności, w jakiej zostały złożone przez magazyny (czyli zgodnie z ich numeracją zapisaną w pliku soki.txt).
  • Każde zamówienie realizowano zawsze w całości. Gdy do wykonania całości danego zamówienia w zakładzie głównym zabrakło butelek soku, to realizacja całości tego zamówienia przekazywana była do filii (na potrzeby zadania zakładamy, że w filii nigdy nie zabrakło soku).

Przykład:

nr_zamowienia  data         magazyn       wielkosc_zamowienia
1              02.01.2021   Ogrodzieniec  8000
2              02.01.2021   Przemysl      5000
3              02.01.2021   Gniezno       3000

Dla powyższych przykładowych danych gdyby w zakładzie głównym, przed rozpoczęciem realizacji zamówień 1–3, było 12 000 butelek soku, to zamówienia 1 i 3 byłyby zrealizowane przez zakład główny, natomiast zamówienie 2 – przez filię zakładu.

  • Przyjmujemy, że w dniu 2.01.2021 rano (przed produkcją) w zakładzie głównym znajdowało się 30 000 butelek soku.

Podaj datę oraz numer zamówienia, które jako pierwsze zostało zrealizowane przez filię głównego zakładu. Podaj, ile zamówień w ciągu całego roku zostało przekazanych do filii i ile butelek łącznie przekazał do magazynów zakład filialny.

Uwaga: Dla danych z zadania po realizacji zamówienia nr 20 w zakładzie głównym pozostało 9 680 butelek soku.

Data:

Numer zamówienia:

Liczba zamówień przekazanych do filii:

Łączna liczba butelek przekazanych przez filię:

Zadanie 5.5

Podaj, ile najmniej butelek (liczba całkowita) powinien wyprodukować w dni robocze zakład główny (przy niezmienionej produkcji w soboty i w niedziele), przy podanych zamówieniach, aby zrealizować wszystkie zamówienia samodzielnie.

Odpowiedź:

07

Zadanie 6. System kontroli dostępu

W plikach klasa.txt, uczen.txt i ewidencja.txt zapisano dane pochodzące z automatycznego systemu kontroli wejść i wyjść w pewnej szkole, z 5 dni (od 4 do 8 kwietnia 2022 r.). Uczniowie posiadają imienne identyfikatory, które umożliwiają rejestrację wejścia do szkoły i wyjścia ze szkoły.

Pierwszy wiersz w każdym z plików jest wierszem nagłówkowym. Dane w każdym wierszu oddzielono średnikiem.

Uwaga: Jeżeli uczeń jest obecny, to danego dnia wchodzi do szkoły jeden raz i jeden raz z niej wychodzi.

W pliku klasa.txt zapisano informacje o klasach. Każdy wiersz zawiera:

PoleOpis
IdKlasyidentyfikator klasy
ProfilKlasyprofil kształcenia klasy

Przykład

IdKlasy;ProfilKlasy
1a;biologiczno-chemiczny
1b;humanistyczny

W pliku uczen.txt zapisano informacje o uczniach tej szkoły. Każdy wiersz zawiera:

PoleOpis
IdUczniaidentyfikator ucznia
Imieimię ucznia
Nazwiskonazwisko ucznia
IdKlasyidentyfikator klasy

Przykład

IdUcznia;Imie;Nazwisko;IdKlasy
1;Mariusz;Koprowski;3e
2;Maciej;Machol;3a

W pliku ewidencja.txt zapisano informacje o wejściach i wyjściach ze szkoły. Każdy wiersz zawiera:

PoleOpis
IdEwidencjiidentyfikator wpisu dotyczącego wejścia i wyjścia ze szkoły
IdUczniaidentyfikator ucznia
Wejsciedatę i godzinę zarejestrowanego wejścia do szkoły (w formacie rrrr-mm-dd gg:mm:ss)
Wyjsciedatę i godzinę zarejestrowanego wyjścia ze szkoły (w formacie rrrr-mm-dd gg:mm:ss)

Przykład

IdEwidencji;IdUcznia;Wejscie;Wyjscie
1;18;2022-04-04 07:02:00;2022-04-04 14:11:00
2;94;2022-04-04 07:07:00;2022-04-04 14:14:00
3;121;2022-04-04 07:07:00;2022-04-04 14:14:00
4;88;2022-04-04 07:10:00;2022-04-04 14:12:00

Wykorzystaj dostępne narzędzia informatyczne i podaj odpowiedzi do zadań 6.1.–6.4. Odpowiedzi zapisz w pliku wyniki6.txt. Każdą odpowiedź poprzedź numerem oznaczającym zadanie.

Zadanie 6.1

Oblicz i podaj, ile wszystkich wejść dziewcząt z klas o profilu biologiczno-chemicznym („biologiczno-chemiczny") do szkoły zarejestrował system kontroli dostępu w analizowanym okresie 5 dni. Wszystkie imiona dziewcząt (i tylko dziewcząt) w tej szkole kończą się literą a.

Odpowiedź:

Zadanie 6.2

Utwórz zestawienie zawierające informację o liczbie uczniów, którzy w poszczególnych dniach analizowanego okresu nie spóźnili się do szkoły. Jako godzinę rozpoczęcia zajęć przyjmujemy godzinę 8⁰⁰. Wejście ucznia zarejestrowane po 8⁰⁰ traktujemy jako spóźnienie.

dzieńliczba uczniów
04.04.2022 (Poniedziałek)
05.04.2022 (Wtorek)
06.04.2022 (Środa)
07.04.2022 (Czwartek)
08.04.2022 (Piątek)

Zadanie 6.3

Dla każdej osoby zliczamy łączny czas pobytu w szkole w analizowanym okresie 5 dni. Podaj identyfikatory oraz imiona i nazwiska trzech osób, które w ciągu monitorowanego czasu przebywały najdłużej na terenie szkoły.

IdUczniaImieNazwisko

Zadanie 6.4

Podaj imiona i nazwiska wszystkich uczniów, którzy byli nieobecni 6.04.2022 r.

ImieNazwisko