Wróć do: Arkusze maturalne
2023CZERWIEC

Matura z informatyki 2023 – czerwiec, poziom rozszerzony

Formuła 2023arkusz CKE · poziom rozszerzony

Arkusz maturalny z informatyki rozszerzonej, czerwiec 2023 (Formuła 2023). 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 czerwiec 2023 (Formuła 2023, termin dodatkowy). Egzamin trwał 210 minut, można było zdobyć 50 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. Mnożenie

Następujący rekurencyjny algorytm mnożenia dwóch liczb całkowitych dodatnich x, y jest realizowany z użyciem operacji arytmetycznych dodawania i dzielenia całkowitego przez 2.

iloczyn(x, y):
    jeżeli y = 1
        wynikiem jest x
    w przeciwnym razie
        k  y div 2
        z  iloczyn(x, k)
        jeżeli y mod 2 = 0
            wynikiem jest z + z
        w przeciwnym razie
            wynikiem jest x + z + z

Uwaga: x mod y oznacza resztę z dzielenia x przez y, natomiast x div y oznacza wynik dzielenia całkowitego x przez y.

Dla danych liczb x, y interesuje nas liczba wykonywanych operacji dodawania podczas obliczania wyniku funkcji iloczyn(x, y).

Przykład 1.

Dla liczb x=9 i y=11 algorytm wykonuje 5 dodawań. Działanie funkcji iloczyn(9, 11) można zilustrować w następujący sposób (w nawiasach obok wskazano liczbę wykonywanych operacji dodawania):

iloczyn(9, 11) = 9 + z + z,     (dwa dodawania)
gdzie z = iloczyn(9, 5)

iloczyn(9, 5) = 9 + z + z,      (dwa dodawania)
gdzie z = iloczyn(9, 2)

iloczyn(9, 2) = z + z,          (jedno dodawanie)
gdzie z = iloczyn(9, 1)

iloczyn(9, 1) = 9

Poniższa tabela ilustruje obliczenia wykonywane podczas wywołania iloczyn(9, 11):

Numer wywołaniaParametry wywołaniaObliczone k, zWynik
xykz
191154599 (9+45+45)
29521845 (9+18+18)
3921918 (9+9)
4919

Zadanie 1.1

Uzupełnij poniższą tabelę tak, aby ilustrowała obliczenia wykonywane podczas wywołania iloczyn(10, 45).

Numer wywołaniaParametry wywołaniaObliczone k, zWynik
xykz
1104522
2
3
4
5
61

Zadanie 1.2

Dla liczb x, y wymienionych w poniższej tabeli podaj liczbę operacji dodawania, jaka zostanie wykonana podczas obliczania wyniku funkcji iloczyn(x, y).

xyLiczba dodawań
9115
832
247
112112

Zadanie 1.3

Poniżej zapisano iteracyjny algorytm realizujący funkcję iloczyn(x, y). Uzupełnij trzy luki w algorytmie, tak aby był zgodny z poniższą specyfikacją.

UWAGA: spośród operacji arytmetycznych możesz użyć tylko: dodawania, odejmowania, dzielenia całkowitego i reszty z dzielenia. Nie możesz użyć zwłaszcza operacji mnożenia.

Specyfikacja
Dane: x, y – liczby całkowite dodatnie Wynik: z – wartość iloczynu x*y

Algorytm:

z  
dopóki  wykonuj:
    jeżeli y mod 2 = 1
        z  z + x
    x  x + x
    y  
03

Zadanie 2. Sufiksy

Słowo definiujemy jako ciąg złożony z małych liter alfabetu angielskiego.

Niech s[1..n] będzie słowem o długości n > 0.

Sufiksem słowa s nazywamy każde jego podsłowo kończące na ostatniej pozycji słowa s. Sufiks s[k..n] nazywamy k-tym sufiksem.

Przykład 1.

słowo s[1..10] = mascarpone ma następujące sufiksy:

ks[k..n]
1mascarpone
2ascarpone
3scarpone
4carpone
5arpone
6rpone
7pone
8one
9ne
10e

Uporządkowanie alfabetyczne wszystkich sufiksów słowa mascarpone daje następującą kolejność ich numerów (od najmniejszego): 5, 2, 4, 10, 1, 9, 8, 7, 6, 3:

ks[k..n]
5arpone
2ascarpone
4carpone
10e
1mascarpone
9ne
8one
7pone
6rpone
3scarpone

Poniżej zapisano funkcję czy_mniejszy(n, s, k1, k2). Wynikiem funkcji jest wartość PRAWDA, gdy sufiks s[k1..n] jest mniejszy w porządku alfabetycznym od sufiksu s[k2..n] oraz FAŁSZ w przeciwnym przypadku.

Specyfikacja
Dane: n – długość słowa, s[1..n] – słowo zapisane jako tablica znaków (numerowanych od 1), k1 – numer pierwszego sufiksu (1 ≤ k1 ≤ n), k2 – numer drugiego sufiksu (1 ≤ k2 ≤ n, k1 ≠ k2). Wynik: PRAWDA jeśli sufiks s[k1..n] jest mniejszy w porządku alfabetycznym od s[k2..n], albo FAŁSZ – w przeciwnym wypadku.
czy_mniejszy (n, s, k1, k2)
    i  k1
    j  k2
    dopóki ( i  n oraz j  n ) wykonuj
        jeżeli ( s[i] == s[j] )
            i  i + 1
            j  j + 1
        w przeciwnym razie
            jeżeli ( s[i] < s[j] )
                zakończ z wynikiem PRAWDA
            w przeciwnym razie
                zakończ z wynikiem FAŁSZ
    jeżeli ( j  n )
        zakończ z wynikiem PRAWDA
    w przeciwnym razie
        zakończ z wynikiem FAŁSZ

Zadanie 2.1

Pierwsze dwie instrukcje jeżeli w funkcji czy_mniejszy wykonują porównania dwóch znaków słowa s.

Przykład:

dla danych s = mascarpone, k1 = 5, k2 = 2 algorytm wykona 3 porównania:

  • (pierwsza instrukcja jeżeli) – sprawdzenie, czy s[5] = s[2]
  • (pierwsza instrukcja jeżeli) – sprawdzenie, czy s[6] = s[3]
  • (druga instrukcja jeżeli) – sprawdzenie, czy s[6] < s[3]

Podaj przykład słowa s, o długości ≤ 10 oraz liczb k1, k2, k1 ≠ k2 dla których funkcja czy_mniejszy wykona dokładnie 6 porównań w pierwszej instrukcji jeżeli.

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.2

W plikach slowa1.txt, slowa2.txt i slowa3.txt znajdują się po trzy wiersze:

  • w pierwszym wierszu każdego pliku zapisana jest liczba całkowita dodatnia n, oznaczająca długość słowa
  • w drugim wierszu zapisane jest n-literowe słowo s, składające się z małych liter alfabetu angielskiego a-z
  • w trzecim wierszu zapisane są dwie liczby k1 i k2, oddzielone spacją.

Napisz program z zaimplementowaną funkcją czy_mniejszy. Jako wynik Twój program powinien wypisywać TAK lub NIE, w zależności od wyniku funkcji czy_mniejszy. Odpowiedzi dla poszczególnych plików zapisz w pliku wyniki2_2.txt.

Dla przykładowego pliku sufiks_1.txt, Twój program powinien dać odpowiedź: TAK, a dla przykładowego pliku sufiks_2.txt – odpowiedź: NIE.

Poniżej wpisz odpowiedź (TAK lub NIE) dla każdego z plików i kliknij Sprawdź.

slowa1.txt:

slowa2.txt:

slowa3.txt:

Zadanie 2.3

Dana jest dodatnia liczba całkowita n oraz słowo s[1..n]. Naszym celem jest obliczenie wartości elementów tablicy T[1..n] zawierającej numery sufiksów słowa s[1..n] uporządkowanych w porządku alfabetycznym.

Przykład:

dla słowa mascarpone wynikowa tablica T to [5, 2, 4, 10, 1, 9, 8, 7, 6, 3],
dla słowa kalafiorowa wynikowa tablica T to [11, 4, 2, 5, 6, 1, 3, 7, 9, 8, 10].

Z wykorzystaniem funkcji czy_mniejszy(n, s, k1, k2) zapisz w wybranej przez siebie notacji (w postaci pseudokodu lub w wybranym języku programowania) algorytm, który obliczy wartości elementów tablicy T zawierającej numery sufiksów zgodnie z porządkiem alfabetycznym sufiksów słowa s.

Uwaga: w zapisie możesz wykorzystać tylko operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie, dzielenie całkowite, reszta z dzielenia), odwoływanie się do pojedynczych elementów tablicy, porównywanie liczb lub znaków, instrukcje sterujące i przypisania lub samodzielnie napisane funkcje zawierające wyżej wymienione operacje.

Specyfikacja
Dane: n – liczba całkowita dodatnia, długość słowa s[1..n] – słowo zapisane jako tablica znaków (numerowana od 1) Wynik: T[1..n] – tablica T taka, że T[i]-ty sufiks słowa s jest mniejszy w porządku alfabetycznym od T[i+1]-go sufiksu słowa s dla każdego 1 ≤ i < n.

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.4

W pliku slowa4.txt znajduje się 10 wierszy. Każdy wiersz zawiera liczbę n (1 ≤ n ≤ 100 ) oraz n-literowe słowo s składające się z małych liter alfabetu angielskiego. Dane w wierszu są oddzielone znakiem odstępu.

Napisz program, który dla każdego słowa s z pliku wypisze jego sufiks najmniejszy w porządku alfabetycznym.

Przykład:

Sufiksem najmniejszym w porządku alfabetycznym dla słowa mascarpone jest arpone, a dla słowa truskawki sufiksem najmniejszym w porządku alfabetycznym jest awki.

Dla przykładowego pliku sufiks_4.txt, zawierającego tylko 4 wiersze (ze słowami: banan, mascarpone, abcaabbaabbccba, maturazinformatyki), Twój program powinien dać odpowiedź:

an
arpone
a
aturazinformatyki

Wyniki zapisz w pliku wyniki2_4.txt, każdy sufiks w oddzielnym wierszu, zgodnie z kolejnością danych w pliku slowa4.txt.

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

04

Zadanie 3. Anagram binarny

W pliku anagram.txt znajduje się 1000 wierszy. Każdy wiersz zawiera liczbę binarną, składającą się z maksymalnie 14 cyfr: 0 lub 1. Każda liczba zaczyna się jedynką i żadna z nich się nie powtarza.

Napisz program(y), który(-e) da(-dzą) odpowiedzi do podanych zadań. Odpowiedzi do zadań zapisz w pliku wyniki3.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.

Uwaga: plik przyklad.txt zawiera 100 wierszy przykładowych danych spełniających warunki zadania. Odpowiedzi dla danych z pliku przyklad.txt są podane pod treściami zadań.

Zadanie 3.1

Liczbę binarną nazywamy zrównoważoną, gdy zawiera tyle samo zer i jedynek, natomiast prawie zrównoważoną, gdy liczba jedynek różni się od liczby zer o 1.

Przykład:

Liczba 101010 jest liczbą zrównoważoną.
Liczba 1011010 jest liczbą prawie zrównoważoną.

Podaj, ile jest liczb binarnych zrównoważonych oraz ile jest liczb binarnych prawie zrównoważonych w pliku anagram.txt.

Dla danych z pliku przyklad.txt prawidłową odpowiedzią jest:
21
15

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

Liczby zrównoważone:

Liczby prawie zrównoważone:

Zadanie 3.2

Anagramy cyfrowe to liczby utworzone z tego samego zestawu cyfr ustawionych w różnych kolejnościach. Przy tym pierwsza cyfra liczby nie może być równa zero.

Przykład:

Z liczby 209 zapisanej dziesiętnie można utworzyć 4 anagramy: 209, 902, 290, 920.
Z liczby binarnej 11100 można utworzyć 6 różnych anagramów: 10011, 10101, 10110, 11001, 11010, 11100.

Znajdź wszystkie takie liczby binarne 8-cyfrowe w pliku anagram.txt, z których można utworzyć największą liczbę anagramów. Wypisz te liczby w kolejności, w jakiej występują w pliku anagram.txt.

Dla danych z pliku przyklad.txt prawidłową odpowiedzią jest:
10001011
10111000
10100111
11111000
10011100
11100011
10111010
10100011
10011010
10110001
11011010

Poniżej wpisz odpowiedź dla pełnego pliku anagram.txt – każdą liczbę w osobnym wierszu – i kliknij Sprawdź.

Zadanie 3.3

Podaj największą wartość bezwzględną różnicy między sąsiednimi liczbami (to jest liczbami zapisanymi w sąsiednich wierszach np. 1 i 2 wierszu, 2 i 3 wierszu itd.) w pliku anagram.txt. Tę wartość podaj w zapisie binarnym.

Dla danych z pliku przyklad.txt prawidłową odpowiedzią jest:
1110001010

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

Odpowiedź:

Zadanie 3.4

Zamień wszystkie liczby binarne z pliku anagram.txt na ich odpowiedniki w systemie dziesiętnym. Następnie spośród otrzymanych liczb dziesiętnych:

a) podaj, ile jest takich, w których nie występuje cyfra zero

b) podaj liczbę, która ma największą sumę różnych cyfr (jeśli liczb, które mają tę samą, największą sumę różnych cyfr, jest więcej niż jedna – podaj tę, która występuje jako pierwsza w pliku z danymi).

Przykład:

Dla liczby 20462 suma jej różnych cyfr to 12 (2+0+4+6), dla liczby 344 suma różnych cyfr to 7.

Dla danych z pliku przyklad.txt prawidłową odpowiedzią jest:
81
895

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

a)

b)

05

Zadanie 4

Uzupełnij brakujące pola tabeli:

– w wierszu pierwszym dla liczby zapisanej w systemie o podstawie 3 podaj jej zapis w systemie o podstawie 9

– w wierszu drugim dla liczby zapisanej w systemie o podstawie 9 podaj jej zapis w systemie o podstawie 3.

LiczbaLiczba
1.101201₃
2.2487₉
06

Zadanie 5

Zapis koloru tła w arkuszu CSS został wyrażony w postaci

background-color: #E9967A;

NrZdanieP / F
1.Zapis dziesiętny składowej czerwonej koloru #E9967A to 233.
2.Zmiana zapisu #E9967A na rgb(255,255,255) da w efekcie biały kolor tła.
07

Zadanie 6. Fotowoltaika

Pan Oszczędny pod koniec roku 2019 zamontował 18 paneli fotowoltaicznych na dachu swojego domu. Od 1 stycznia 2020 do 31 maja 2020 roku zapisywany był co godzinę przez całą dobę pobór prądu od dostawcy i generowany prąd przez panele fotowoltaiczne. W pliku fotowoltaika.txt zapisano datę i godzinę, pobór prądu z sieci energetycznej [kWh] oraz liczbę wygenerowanych kilowatogodzin przez panele. Dane w wierszach oddzielone są znakiem tabulacji.

Gospodarstwo domowe Pana Oszczędnego w pierwszej kolejności zużywa prąd wygenerowany przez panele fotowoltaiczne. Jeżeli potrzeby są większe, to pobiera go z sieci energetycznej. Pobór równy 0 oznacza, że ogniwa wytwarzają co najmniej tyle energii, ile wynosiły potrzeby gospodarstwa domowego. Generowanie równe 0 oznacza, że panele nie produkują energii (z powodu braku nasłonecznienia).

Przykładowy fragment pliku:

Data_godzina          Pobor [kWh]     Generowanie [kWh]
01.01.2020 01:00      0,367           0
01.01.2020 02:00      0,485           0
01.01.2020 03:00      0,299           0
01.01.2020 04:00      0,453           0
01.01.2020 05:00      0,409           0
01.01.2020 06:00      0,542           0
01.01.2020 07:00      0,416           0
01.01.2020 08:00      0,453           0
01.01.2020 09:00      0,35            0,001
01.01.2020 10:00      0,22            0,02
01.01.2020 11:00      0,178           0,07
01.01.2020 12:00      0,084           0,158
01.01.2020 13:00      0,25            0,165
01.01.2020 14:00      0,175           0,238
01.01.2020 15:00      2,057           0,129
01.01.2020 16:00      1,051           0
01.01.2020 17:00      2,179           0

Z wykorzystaniem dostępnych narzędzi informatycznych podaj odpowiedzi do poniższych zadań. Odpowiedzi zapisz w pliku wyniki6.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.

Zadanie 6.1

Podaj dzień, w którym panele wytworzyły łącznie w ciągu całego dnia najwięcej energii liczonej w kWh. Podaj datę i liczbę wygenerowanych kilowatogodzin.

Data:

Liczba wygenerowanych kWh:

Zadanie 6.2

O której godzinie najczęściej zdarzała się sytuacja, że energia wytworzona przez ogniwa pokrywa w całości zapotrzebowanie gospodarstwa (pobór z sieci wynosił 0)? Podaj tę godzinę i liczbę dni, w których pobór z sieci wynosił 0 o tej godzinie.

Godzina:

Liczba dni:

Zadanie 6.3

Utwórz zestawienie średniej liczby wygenerowanych kWh w poszczególnych godzinach. Wartości zapisz z dokładnością do czterech miejsc po przecinku. Dla swojego zestawienia utwórz wykres kolumnowy. Pamiętaj o prawidłowym opisie osi oraz o tytule wykresu.

Kliknij Pokaż odpowiedź, aby zobaczyć wzorcowe rozwiązanie z klucza CKE – zestawienie średnich oraz gotowy wykres.

Zadanie 6.4

Pan Oszczędny rozważa rozbudowę systemu generowania energii za pomocą ogniw fotowoltaicznych. Bazą do obliczeń są wszystkie dane z kwietnia 2020 roku.

Podaj minimalną liczbę paneli, o którą należałoby powiększyć system, aby przy kwietniowym zużyciu prądu i kwietniowym nasłonecznieniu, w godzinach od 10 do 15 system nie pobierał prądu z zakładu energetycznego.

Odpowiedź:

08

Zadanie 7. Instalacje

W bazie danych firmy X zawarte są informacje o instalacjach pewnej aplikacji, o urządzeniach, na których ta aplikacja została zainstalowana, oraz o krajach, w których przeprowadzono instalacje.

Dane zgromadzono w plikach tekstowych: kraje.txt, instalacje.txt oraz urzadzenia.txt. Pierwszy wiersz każdego z plików jest wierszem nagłówkowym, a dane w wierszach rozdzielone są znakami tabulacji.

Plik o nazwie kraje.txt zawiera informacje o krajach, w których instalowano aplikację. W każdym wierszu pliku znajdują się następujące dane:

PoleOpis
kod_kkod kraju (napis dwuznakowy)
nazwa_knazwa kraju (napis do 50 znaków)
ludnosc_kludność kraju (liczba całkowita do 10 cyfr określająca liczbę ludności).

Przykład:

kod_knazwa_kludnosc_k
ANNETHERLANDS ANTILES227049
CRCOSTA RICA5003393
DZALGERIA42545964

Plik o nazwie urzadzenia.txt zawiera informacje o urządzeniach, na których może być instalowana aplikacja. W każdym wierszu pliku znajdują się następujące informacje:

PoleOpis
kod_uunikatowy kod (liczba całkowita co najwyżej 5-cyfrowa)
nazwa_unazwa urządzenia (napis do 80 znaków)
producent_uproducent urządzenia (napis do 35 znaków)
typ_utyp urządzenia (napis: Tablet, Phone lub PC).

Uwaga: nazwa urządzenia nie jest unikatowa – w tabeli mogą występować dwa lub więcej urządzenia o tej samej nazwie.

Przykład:

kod_unazwa_uproducent_utyp_u
12410PLATINUM_E5Sky DevicesPhone
6549Ilium L1120LanixPhone

Plik o nazwie instalacje.txt zawiera informacje o instalacjach aplikacji. W każdym wierszu pliku znajdują się następujące informacje:

PoleOpis
data_idata instalacji (w formacie dd.mm.rrrr)
kod_ukod urządzenia, na którym była wykonana instalacja (liczba całkowita co najwyżej 5-cyfrowa)
kod_kkod kraju, w którym znajdowało się to urządzenie (napis dwuznakowy).

Uwaga: kod_u nie oznacza pojedynczego egzemplarza urządzenia, a tylko jego rodzaj – to znaczy na urządzeniach o tym samym kodzie może być wykonanych wiele instalacji.

Przykład:

data_ikod_kkod_u
01.03.2019AM145
01.03.2019AR804
01.03.2019AT12632

Z wykorzystaniem danych zawartych w podanych plikach oraz dostępnych narzędzi informatycznych, podaj odpowiedzi do zadań 7.1.–7.4. Odpowiedzi zapisz w pliku wyniki7.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.

Zadanie 7.1

Dla każdego typu urządzenia podaj liczbę instalacji aplikacji na tym typie urządzenia.

typ_uliczba_instalacji
PC
Phone
Tablet

Zadanie 7.2

Podaj nazwę producenta urządzeń, dla którego w lutym 2019 wykonano najwięcej instalacji. Podaj liczbę tych instalacji.

Nazwa producenta:

Liczba instalacji:

Zadanie 7.3

Podaj nazwy pięciu krajów, w których przeprowadzono najwięcej instalacji w przeliczeniu na 1 000 000 mieszkańców, oraz podaj liczby tych instalacji.

Dla każdego z tych pięciu krajów podaj liczbę instalacji na 1 000 000 mieszkańców z dokładnością do dwóch miejsc po przecinku.

Uwaga: pomiń kraje, w których jest mniej niż milion mieszkańców.

nazwa_kliczba

Zadanie 7.4

Podaj kod oraz nazwę urządzenia typu tablet („Tablet"), na którym zainstalowano aplikację w największej liczbie krajów. Podaj także liczbę krajów, w których instalowano aplikację na tym urządzeniu.

Kod urządzenia:

Nazwa urządzenia:

Liczba krajów:

Zadanie 7.5

Do istniejących już tabel bazy danych dołączono tabelę firmy zawierającą dane firm, w których wykonywano instalacje aplikacji.

Tabela firmy zawiera pola id_firmy (identyfikator firmy – klucz podstawowy) oraz nazwa – nazwa firmy.

Do tabeli instalacje (zawierającej dane z pliku instalacje.txt) dodano pole id_firmy wskazujące, w której firmie na należących do niej urządzeniach wykonano instalację.

Tabele firmy i instalacje połączone są relacją jeden do wielu.

Zapisz w języku SQL zapytanie, w którym dla każdej nazwy firmy z tabeli firmy zliczysz liczbę instalacji wykonanych w tej firmie. Wynik posortuj nierosnąco według liczby instalacji.

Kliknij Pokaż odpowiedź, aby zobaczyć zapytanie z klucza CKE.

Uwaga: to zadanie otwarte – zapytanie z klucza CKE jest jedynie przykładowe; to samo zadanie można rozwiązać też innym poprawnym zapytaniem SQL.