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.
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.
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ą.
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.
| n | ciąg | liczba 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) |
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.
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.
(Przykład 1) dla i = 1, 2, …, n B[i] ← 0 k ← 0 dla i = 1, 2, ..., n jeżeli A[i] ≤ n B[A[i]] ← B[A[i]] + 1 w przeciwnym razie k ← k + 1 dla i = 1, 2, ..., n jeżeli B[i] > 1 k ← k + B[i] - 1 podaj wynik k (Przykład 2) w ← 0; dla i = 1, 2, …, n dla j = 1, 2, .., n jeżeli (A[j] = i) w ← w + 1 przerwij pętlę k ← n - w podaj wynik k (Przykład 3) dla i = 1, 2, …, n-1 dla j = i+1, i+2, …, n jeżeli (A[i] > A[j]) x ← A[i] A[i] ← A[j] A[j] ← x k ← 0; dla i = 1, 2, …, n-1 jeżeli (A[i] = A[i+1] lub A[i] > n) k ← k + 1 jeżeli (A[n] > n) k ← k + 1 podaj wynik k
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]
Uzupełnij tabelę – wpisz wynik działania algorytmu dla podanych wartości s.
| n | s | Wynik działania algorytmu (wartość k) |
|---|---|---|
| 5 | aabab | 4 |
| 2 | ab | 2 |
| 3 | aaa | 3 |
| 6 | aababb | |
| 9 | baabbaaab |
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.
| n | s | Wynik działania algorytmu (wartość k) |
|---|---|---|
| 10 | 10 | |
| 10 | 5 |
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.
Możliwe odpowiedzi dla k = 10: „aaaaaaaaaa", „bbbbbbbbbb", albo dowolny inny ciąg, w którym wszystkie litery „a" są na początku, a „b" na końcu, np.: „aaaaabbbbb", „aaaaaaaaab".
Możliwe odpowiedzi dla k = 5: każdy ciąg składający się z 5 liter „a" i 5 liter „b", w którym licząc do każdego znaku liczba liter „a" od początku nie jest większa od liczby liter „b", np.: „bababababa", „bbabbaabaa", „bbbbbaaaaa".
Dla uproszczenia będziemy pisać a² zamiast aa, a³ 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 =
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.
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
| Nr | Zdanie | P / F |
|---|---|---|
| 1. | liniowa. | |
| 2. | kwadratowa. | |
| 3. | n log n. | |
| 4. | nie większa niż sześcienna. |
Po dodaniu liczb 132₄ oraz 3111₄ zapisanych w systemie czwórkowym otrzymamy:
| Nr | Zdanie | P / F |
|---|---|---|
| 1. | 1111011₂ | |
| 2. | 362₈ | |
| 3. | F3₁₆ | |
| 4. | 3303₄ |
W bazie danych istnieje tabela mandaty(numer, id_osoby, punkty) zawierająca następujące dane:
| numer | id_osoby | punkty |
|---|---|---|
| 1 | 1 | 5 |
| 2 | 1 | 14 |
| 3 | 2 | 20 |
| 4 | 3 | 21 |
| 5 | 2 | 1 |
| 6 | 1 | 2 |
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
| Nr | P / F |
|---|---|
| 1. |
Wynikiem zapytania:
SELECT id_osoby, sum(punkty) FROM mandaty GROUP BY id_osoby
jest zestawienie:
1 21 2 21 3 21
| Nr | P / F |
|---|---|
| 2. |
Wynikiem zapytania:
SELECT numer + punkty FROM mandaty
jest
86
| Nr | P / F |
|---|---|
| 3. |
Wynikiem zapytania:
SELECT count(punkty) FROM mandaty WHERE punkty = 21
jest
1
| Nr | P / F |
|---|---|
| 4. |
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.
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:
Znajdź w pliku liczby.txt:
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:
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)
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.
Podaj, ile razy składano zamówienia z każdego z magazynów.
| magazyn | liczba zamówień |
|---|---|
| Gniezno | |
| Malbork | |
| Ogrodzieniec | |
| Przemysl |
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:
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.
Łączna wielkość zamówień z każdego z magazynów:
| magazyn | łączna liczba butelek |
|---|---|
| Gniezno | 819000 |
| Malbork | 944240 |
| Ogrodzieniec | 1115560 |
| Przemysl | 1062920 |
Na podstawie zestawienia tworzymy procentowy wykres kołowy zatytułowany „Procentowy udział liczby zamówionych butelek przez każdy z magazynów", z legendą i wartościami procentowymi.
Informacje do zadań 5.4., 5.5.
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.
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ę:
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ź:
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:
| Pole | Opis |
|---|---|
IdKlasy | identyfikator klasy |
ProfilKlasy | profil 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:
| Pole | Opis |
|---|---|
IdUcznia | identyfikator ucznia |
Imie | imię ucznia |
Nazwisko | nazwisko ucznia |
IdKlasy | identyfikator 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:
| Pole | Opis |
|---|---|
IdEwidencji | identyfikator wpisu dotyczącego wejścia i wyjścia ze szkoły |
IdUcznia | identyfikator ucznia |
Wejscie | datę i godzinę zarejestrowanego wejścia do szkoły (w formacie rrrr-mm-dd gg:mm:ss) |
Wyjscie | datę 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.
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ź:
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) |
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.
| IdUcznia | Imie | Nazwisko |
|---|---|---|
Podaj imiona i nazwiska wszystkich uczniów, którzy byli nieobecni 6.04.2022 r.
| Imie | Nazwisko |
|---|---|