ROZWIĄZANIA Matura z informatyki maj 2021

Artykuł przedstawia rozwiązania matury z informatyki 2021, przy pomocy Microsoft Access (SQL) oraz języków programowania C++, Java i Python. Załączniki potrzebne do wykonania poszczególnych zadań znajdziesz w tym linku.

Zadanie 1 – Cyfrowe dopełnienie

matura z informatyki 2021 zadanie 1
Zadanie 1 Cyfrowe dopełnienie z arkusza maturalnego z informatyki maj 2021

Zadanie 1.1.

matura z informatyki zadanie 1.1
Zadanie 1.1 Cyfrowe dopełnienie z arkusza maturalnego z informatyki maj 2021

Najmniejsza różnica wystąpi wtedy, kiedy dopełnienie będzie jak największe, a liczba jak najmniejsza, nie możemy jednak przesadzić, skoro bierzemy wartość bezwzględną liczby. Spróbujmy więc uzyskać jak najmniejszą liczbę dodatnią. Na pewno w naszej liczbie powinny być same zera (oprócz pierwszej cyfry). Najlepszym kandydatem na pierwsze miejsce będzie liczba 5, skoro różnica między nią, a jej dopełnieniem to 1. Sprawdźmy liczbę 5000. Jej dopełnienie to 4999, a różnica to 1. Trudno uzyskać mniejszą wartość bezwzględną.

W następnym podpunkcie sytuacja jest odwrotna, staramy się uzyskać największą liczbę z jak najmniejszym dopełnieniem, najlepiej żeby liczba składała się tylko z cyfr 9, jednak nie jest to możliwe, bo pierwsza cyfra to nie może być 9. Zastępujemy ją cyfrą 8, a jej dopełnienie to 1. Z kolei przy liczbie 8999, dopełnienie to 1000, a różnica 7999.

Nie ma znaczenia czy w odpowiedzi wpiszesz uzyskaną przez nas liczbę, czy też jej dopełnienie, bo i tak pobierasz wartość bezwzględną z różnicy.

Rozwiazanie:

  1. 5000 (możliwe też wpisanie 4999),
  2. 8999 (możliwe też wpisanie 1000).

Zadanie 1.2.

 

matura z informatyki 2021 zadanie 1.2
Zadanie 1.2 Cyfrowe dopełnienie z arkusza maturalnego z informatyki maj 2021

Rozwiązanie:

Algorytm wykorzystuje operację mod (modulo – reszta z dzielenia) do pobrania ostatniej cyfry. Używa dzielenia całkowitego przez 10, aby “usunąć” ostatnią cyfrę liczby. Następnie uzyskuje jej cyfrowe dopełnienie i dodaje je do liczby wynikowej d korzystając z mnożenia przez odpowiednie potęgi liczby 10.

Przykład działania operacji:

123 mod 10 = 3

123 div 100 = 1

123 + 1000 * 4 = 4123

Zadanie 2 – Analiza algorytmu

matura z informatyki 2021 zadanie 2
Zadanie 2 Analiza algorytmu z arkusza maturalnego z informatyki maj 2021

Zobaczmy czy da się łatwo zrozumieć algorytm. Pierwsze trzy linie jedynie zwiększają długość tablicy i inicjalizują zmienne. W pętli, trzy pierwsze linijki po prostu zamieniają miejscami dwie wartości, a ostatnia ustawia wartość s na s div 2. Warunkami pętli są dodatnie s div 2 oraz wartość T[s] większa od T[s div 2]. Podsumowując algorytm dodaje liczbę na koniec tablicy, a następnie zamienia ją z liczbą na dwa razy mniejszej pozycji, jeśli znajdująca się tam liczba jest mniejsza. Wykonuje te zamiany, dopóki nie napotka liczby, która nie jest mniejsza (jest większa lub równa) lub nie ma więcej liczb do sprawdzenia.

Przykład:

tab = [1,2,3,4]

A gdy teraz wykonamy d(5):

  1. tab = [1, 2, 3, 4, 5],
  2. tab = [1, 5, 3, 4, 2] (zamiana 2 i 5),
  3. tab = [5, 1, 3, 4, 2] (zamiana 1 i 5).

Zadanie 2.1.

matura z informatyki 2021 zadanie 2.1
Zadanie 2.1 Analiza algorytmu z arkusza maturalnego z informatyki maj 2021

Rozwiązanie:

36, 15, 17, 3, -5

30, 27, 13, 6, -3, -2, -3, 4

Zadanie 2.2.

matura z informatyki 2021 zadanie 2.2
Zadanie 2.2 Analiza algorytmu z arkusza maturalnego z informatyki maj 2021

Sprawdźmy tablicę po każdym wywołaniu.

6

6, -4

12, -4, 6

27, 12, 6, -4

27, 26, 6, -4, 12

27, 26, 8, -4, 12, 6

Rozwiązanie:

27, 26, 8, -4, 12, 6

Zadanie 2.3.

matura z informatyki 2021 zadanie 2.3
Zadanie 2.3 Analiza algorytmu z arkusza maturalnego z informatyki maj 2021

Za każdym razem dzielimy numer przeszukiwanej komórki przez wartość 2, więc złożoność jest związana z logarytmem binarnym, jednak nie wiemy czy jest to wartość zaokrąglana w górę, czy też w dół, czy może dodawana jest wartość 1? Łatwo to sprawdzić, gdyż wiemy że dla czwórki wynik to 3, a log 4 = 2. Potencjalny kandydat to log k + 1 jednak nadal musimy zdobyć informacje o zaokrągleniu, inaczej nie wykonamy k = 1025. Sprawdźmy dla k = 5.

tab = [1, 2, 3, 4] dodając 5:

  1. porównanie z T[2],
  2. porównanie z T[1],
  3. sprawdzenie warunku i wyjście z pętli.

Trzy porównania, a wartość log 5 jest większa od 2, oznacza to, że wzór na liczbę sprawdzeń to ⌊log k⌋+1. Na tej podstawie możemy łatwo uzyskać pozostałe wartości.

Rozwiązanie:

log 16 + 1 = 5

log 1025 + 1 = 11

kIle razy sprawdzany jest warunek pętli dopóki podczas wykonywania d(k)?
43 razy
165 razy
102511 razy

Uwaga: log na maturze z informatyki to log2, zwany logarytmem binarnym.

Zadanie 3 – Test

Zadanie 3.1.

matura z informatyki 2021 zadanie 3.3
Zadanie 3.1 Test z arkusza maturalnego z informatyki maj 2021

Matura z informatyki 2025 - zadanie 3.1a
Wywołania funkcji.

Rozwiązanie:

otrzymamy 5 3 1 1 3 5 F

otrzymamy 6 4 2 2 4 6 P

otrzymamy 7 5 3 1 1 3 5 7 P

otrzymamy 8 6 4 2 2 4 6 8 F

Zadanie 3.2.

matura z informatyki 2021 zadanie 3.2
Zadanie 3.2 Test z arkusza maturalnego z informatyki maj 2021

Możesz przeczytać w naszym artykule o systemach liczbowych, jak stosować konwersję pomiędzy systemami. Wystarczy zamienić wszystkie liczby na system dziesiętny, a zadanie nie powinno sprawić większych problemów.

Rozwiązanie:

100000002 = 12810A916= 1691016910 > 12810F
11114 = 851011111112 = 127108510 < 12710F
30034 = 19510C216 = 1941019510 > 19410P
3338 = 21910101001012 = 1651021910 > 16510P

Zadanie 3.3.

matura z informatyki 2021 zadanie 3.3
Zadanie 3.3 Test z arkusza maturalnego z informatyki maj

Rozwiązanie:

1Zapytanie wyświetla wszystkie produkty, których cena wynosi 2 lub 4.Te wymagania spełniają zeszyt oraz cyrkiel.F
2Zapytanie liczy średnią cenę produktów, których liczba sztuk równa się 125 lub 160.Ceny tych produktów to 2 i 8. Średnia to 5.P
3Zapytanie dodaje ze sobą liczby sztuk produktów, których cena równa się 1 lub 2.Cena to 160+250+250=660.P
4Zapytanie liczy produkty, których cena jest w przedziale [2,4].Takich produktów jest 5.F

Zadanie 4 – Neon cyfrowy

matura z informatyki 2021 zadanie 4
Zadanie 4 Neon cyfrowy z arkusza maturalnego z informatyki maj

Na początek oczywiście importujemy dane, najlepiej zrobić to tak jak jest w pliku, to znaczy stworzyć listę gdzie w pierwszej komórce jest pierwszy wiersz, w drugiej drugi itd.

Rozwiązanie:

Implementacja – Python

Implementacja – C++

Implementacja – Java

Zadanie 4.1.

matura z informatyki 2021 zadanie 4.1
Zadanie 4.1 Neon cyfrowy z arkusza maturalnego z informatyki maj

W pierwszym podpunkcie nie potrzeba od razu całej symulacji, wystarczy policzyć liczbę instrukcji DOPISZ i USUN. Czyli kiedy instrukcja to DOPISZ, dodajemy 1, a gdy USUN odejmujemy 1.

Implementacja – Python

Implementacja – C++

Implementacja – Java

Rozwiązanie:

517

Zadanie 4.2.

matura z informatyki 2021 zadanie 4.2
Zadanie 4.2 Neon cyfrowy z arkusza maturalnego z informatyki maj

Drugi podpunkt to dość standardowe zadanie maturalne. Będziemy działać następująco: porównujemy kolejne instrukcje i jeśli są takie same liczymy długość ich ciągu. Z każdym wykonaniem sprawdzamy czy długość obecnie sprawdzanego ciągu jest większa od maksymalnej, a jeśli tak to ustawiamy nową maksymalną długość. Gdy instrukcja się zmieni, po prostu resetujemy licznik długości na 1. W celu “wygrzebania” instrukcji z danych poleceń użyjemy slicingu. Jeśli nie wiesz co to, możesz sprawdzić informacje na ten temat, w naszym artykule.

Implementacja – Python

Implementacja – C++

Implementacja – Java

Rozwiązanie:

ZMIEN 7

Zadanie 4.3.

matura z informatyki 2021 zadanie 4.3
Zadanie 4.3 Neon cyfrowy z arkusza maturalnego z informatyki maj

Kolejny często występujący podpunkt maturalny. Wystarczy użyć słownika lub zwykłej tablicy, a także kodów ASCII. Tworzymy listę o długości angielskiego alfabetu (26). Następnie jeśli wykryjemy instrukcję DOPISZ, dodajemy wartość 1 do indeksu odpowiadającego danej literze. Uzyskujemy go odejmując od kodu ASCII danej litery kod oznaczający litery A.

Indeks odpowiadający literze A to 0, B to 1 itd.

Na koniec używając funkcji maks znajdujemy maksymalną liczbę wystąpień i sprawdzamy która to litera, dodając do jej indeksu kod A oraz używając funkcji chr() do zamiany kodu na znak.

Rozwiązanie:

Z 37

Implementacja – Python

Implementacja – C++

Implementacja – Java

Zadanie 4.4.

matura z informatyki 2021 zadanie 4.4
Zadanie 4.4 Neon cyfrowy z arkusza maturalnego z informatyki maj

Ostatni podpunkt to jedynie pełne wykonanie wszystkich operacji. Zamiast zmiennej typu string jak sugerowane jest to w symulacji, użyjemy listy, bo stringi w pythonie są niezmienne, więc działanie na nich byłoby dość irytujące.

Symulacja:

gdy wykryjemy instrukcję DOPISZ:

appendujemy (dodajemy na koniec) element do naszej listy,

gdy wykryjemy instrukcję DOPISZ:

usuwamy ostatnią liczbę i appendujemy nową literę, która jest podana jako argument instrukcji

gdy wykryjemy instrukcję USUN:

po prostu usuwamy ostatnią literę

gdy wykryjemy instrukcję PRZESUN:

używamy funkcji index() do znalezienia pierwszej litery podanej w argumencie. Dodajemy do jej kodu 1 i sprawdzamy czy jest on większy od litery “Z”. Jeśli występuje, to wstawiamy A, a jeśli nie, to dany kod zamieniamy na literę.

Na koniec printujemy (wypisujemy) uzyskany wyraz, możemy użyć gwiazdki, wtedy lista wyprintuje się jak napis string. Możemy też wstawić sep=””, żeby nie było odstępów między literami.

Wskazówka: Możesz sprawdzić swój wynik, porównując długość uzyskanego ciągu z długością uzyskaną w pierwszym podpunkcie.

Implementacja – Python

Implementacja – C++

Implementacja – Java

Uwaga: W zadaniach maturalnych tego typu nie zawsze wychodzi tekst, który ma sens.

Rozwiązanie:

POZNIEJMOWIONOZECZLOWIEKTENNADSZEDLODPOLNOCYODBRAMYPOWROZNICZEJSZEDLPIESZOAOBJUCZONEGOKONIAPROWADZILZAUZDEBYLOPOZNEPOPOLUDNIEIKRAMYPOWROZNIKOWIRYMARZYBYLYJUZZAMKNIETEAULICZKAPUSTABYLOCIEPLOACZLOWIEKTENMIALNASOBIECZARNYPLASZCZNARZUCONYNARAMIONAZWRACALUWAGEZATRZYMALSIEPRZEDGOSPODASTARYNARAKORTPOSTALCHWILEPOSLUCHALGWARUGLOSOWGOSPODAJAKZWYKLEOTEJPORZEBYLAPELNALUDZINIEZNAJOMYNIEWSZEDLDOSTAREGONARAKORTUPOCIAGNALKONIADALEJWDOLULICZKITAMBYLADRUGAKARCZMAMNIEJSZANAZYWALASIEPODLISEMTUBYLOPUSTOKARCZMANIEMIALANAJLEPSZEJSLAWY

Pełny kod 4.1-4.4 – implementacja w python, C++ i java

Implementacja – Python

Implementacja – C++

Implementacja – Java

Rozwiązanie:

517

ZMIEN 7

Z 37

POZNIEJMOWIONOZECZLOWIEKTENNADSZEDLODPOLNOCYODBRAMYPOWROZNICZEJSZEDLPIESZOAOBJUCZONEGOKONIAPROWADZILZAUZDEBYLOPOZNEPOPOLUDNIEIKRAMYPOWROZNIKOWIRYMARZYBYLYJUZZAMKNIETEAULICZKAPUSTABYLOCIEPLOACZLOWIEKTENMIALNASOBIECZARNYPLASZCZNARZUCONYNARAMIONAZWRACALUWAGEZATRZYMALSIEPRZEDGOSPODASTARYNARAKORTPOSTALCHWILEPOSLUCHALGWARUGLOSOWGOSPODAJAKZWYKLEOTEJPORZEBYLAPELNALUDZINIEZNAJOMYNIEWSZEDLDOSTAREGONARAKORTUPOCIAGNALKONIADALEJWDOLULICZKITAMBYLADRUGAKARCZMAMNIEJSZANAZYWALASIEPODLISEMTUBYLOPUSTOKARCZMANIEMIALANAJLEPSZEJSLAWY

Zadanie 5 – Wodociągi

matura z informatyki 2021 zadanie 5
Zadanie 5 Wodociągi z arkusza maturalnego z informatyki maj

Import danych okazuje się standardowy, możesz przeczytać o nim w naszym artykule o imporcie danych Access/Excel. W moim przypadku KodKlienta został zaimportowany jako tekst, jednak jeśli u ciebie obcina początkowe zera, musisz zmienić typ pola na tekst ręcznie. Dobrym pomysłem może być dodanie kolumn numer klienta, liczba osób oraz kod miasta. Numer klienta otrzymamy funkcją LEWY([KodKlienta],5). Do uzyskania liczby osób możemy użyć funkcji FRAGMENT.TEKSTU([KodKlienta];6;2) i na koniec kod dzielnicy funkcją PRAWY([KodKlienta],3). Z tak przygotowanymi danymi szybko rozwiążemy zadanie.

Matura z informatyki 2021 - zadanie 5a
Dobrze przygotowane dane pozwalają na szybkie rozwiązanie zadania.

Zadanie 5.1.

matura z informatyki 2021 zadanie 5.1
Zadanie 5.1 Wodociągi z arkusza maturalnego z informatyki maj

Na początek stwórzmy kolumnę z całkowitym zużyciem wody każdego klienta zwyczajnie sumując wszystkie miesiące. Zużycie wody na osobę możemy uzyskać po prostu dzieląc uzyskaną wartość na liczbę osób. Należy pamiętać o odpowiednim zaokrągleniu funkcją ZAOKR([liczba];2).

Matura z informatyki 2021 - zadanie 5.1a
Nie można zapominać o zaokrągleniu za pomocą funkcji ZAOKR().

Teraz wystarczy utworzyć tabelę przestawną z całego zestawienia, dodając numery klientów do wierszy i zużycie wody na osobę jako wartość. Na koniec, aby otrzymać numery dziesięciu osób o największym zużyciu wody na osobę, wystarczy kliknąć PPM na którąś z wartości i wybrać Sortuj / Sortuj od największych do najmniejszych.

Matura z informatyki 2021 - zadanie 5.1b
Ustaw sortowanie od największych do najmniejszych.

Rozwiązanie:

Numer klientaZużycie wody na osobę w m3
0793541,33
0508040
0064539,75
0809039,5
0573839,33
0834939,2
0885039
0220238,25
0946837,75
0686636,75

Zadanie 5.2.

matura z informatyki 2021 zadanie 5.2
Zadanie 5.2 Wodociągi z arkusza maturalnego z informatyki maj

To zadanie jest prawie identyczne. Ponownie skorzystamy z kolumny całkowite zużycie wody dla każdego klienta. Następnie utworzymy tabelę przestawną do wierszy, dodając kod kolumny, a do wartości po prostu całkowite zużycie wody. Gdyby uzyskane wartości wyglądały na nierealistyczne należy upewnić się, że po kliknięciu prawego przycisku myszy i wybraniu Podsumuj wartości według, zaznaczona jest suma.

Matura z informatyki 2021 - zadanie 5.2a
Po wybraniu Podsumuj wartości według, powinna być zaznaczona suma.

Rozwiązanie:

Kod dzielnicyCałkowite zużycie wody w m3
BEM54080
BIA61614
BIE56368
MOK55889
OCH59273
PRA57241
REM58971
SRO58124
TAR60234
URU59597
URY50116
WAW57674
WES60372
WIL55476
WLO66372
WOL60523
ZOL62312

Zadanie 5.3.

matura z informatyki 2021 zadanie 5.3
Zadanie 5.3 Wodociągi z arkusza maturalnego z informatyki maj

Kolejny podpunkt podobny do poprzednich. Na podstawie danych tworzymy tabelę przestawną, do wierszy dodajemy kod dzielnicy, a do kolumn po kolei wszystkie miesiące. Tak uzyskaną tabele wystarczy użyć wspólnie z funkcją MAX() i gotowe.

Matura z informatyki 2021 - zadanie 5.3a
Po utworzeniu tabeli przestawnej użyj funkcji MAX().

Rozwiązanie:

Kod dzielnicyMaksymalne zużycie wody w miesiącu
BEM8108
BIA9274
BIE8475
MOK8452
OCH8861
PRA8575
REM8873
SRO8776
TAR9120
URU8960
URY7519
WAW8699
WES9050
WIL8284
WLO9966
WOL9117
ZOL9417

Zadanie 5.4.

matura z informatyki 2021 zadanie 5.4
Zadanie 5.4 Wodociągi z arkusza maturalnego z informatyki maj – część pierwsza

matura z informatyki 2021 zadanie 5.4-1
Zadanie 5.4 Wodociągi z arkusza maturalnego z informatyki maj – część druga

W tym podpunkcie należy stworzyć trochę danych. Sumujemy każdy miesiąc (każdą kolumnę) i otrzymany wiersz oznaczamy jako 2019. Dalej następne wiersze oznaczamy kolejnymi latami aż do 2030.

Matura z informatyki 2021 - zadanie 5.4a
Podsumuj każdy miesiąc.

Teraz miesiące kolejnych lat generujemy poprzez formułę ZAOKR.GORA([wartość z tego samego miesiąca, ale z zeszłego roku]+0,01*[wartość z tego samego miesiąca, ale z zeszłego roku];0).

Matura z informatyki 2021 - zadanie 5.4b
Z dalszym działaniem pomoże ci formuła ZAOKR.GORA().

Czy nie zabrakło wody można sprawdzić na wiele sposobów. Ja wybrałem sprawdzenie czy w roku występuje wartość większa od 160000, a jeśli tak, manualnie wyszukuje się miesiąc. Uważam że jest to najszybszy sposób przy tak małej tabeli. Formuła, której użyto to JEŻELI(MAX([tabela wartości dla miesięcy])>160000;1;0). Uzyskany wynik to lipiec 2026.

Matura z informatyki 2021 - zadanie 5.4c
Po wykorzystaniu formuły JEŻELI() uzyskujesz wynik lipiec 2026.

Dla uzyskanego zestawienia trzeba stworzyć jeszcze wykres. Zaznaczamy przekopiowane wartości i miesiące 2030 z etykietami, po czym z zakładki wstawianie wybieramy wykres liniowy. Jak zrobić wykres na maksymalną ilość punktów możesz przeczytać w artykule o wykresach w Excelu. Pamiętaj żeby wkleić zestawienie do pliku z odpowiedziami.

Matura z informatyki 2021 - zadanie 5.4d
Wykres z przewidywanym zużyciem wody w 2030 roku.

Uwaga: Ten wykres co prawda jest odrobinę nielogiczny (zamiast liniowego, bardziej pasowałby wykres kolumnowy, bo wartości między miesiącami nie mają tu znaczenia), jednak należy trzymać się tego rozwiązania, jeśli zadanie miałoby zostać zaliczone przez CKE.

Rozwiązanie:

lipiec 2026

RokIIIIIIIVVVIVIIVIIIIXXXIXII
2019535455327453195857458562711755214952611749785623855305351653606
2020540815380753727866038648411872815102211867286480863865405254143
2021546225434654265874708734911991615253311985987345872505459354685
2022551695489054808883458822312111615405912105888219881235513955232
2023557215543955357892298910612232815560012226989102890055569155785
2024562795599455911901228999812355215715612349289994898965624856343
2025568425655456471910249089812478815872812472790894907955681156907
2026574115712057036919359180712603616031612597591803917035738057477
2027579865769257607928559272612729716192012723592722926215795458052
2028585665826958184937849365412857016354012850893650935485853458633
2029591525885258766947229459112985616517612979494587944845912059220
2030597445944159354956709553713115516682813109295533954295971259813

Zadanie 5.5.

matura z informatyki 2021 zadanie 5.5
Zadanie 5.5 Wodociągi z arkusza maturalnego z informatyki maj 2021

Zadanie 5.5 wymaga lekkiej modyfikacji poprzedniego podpunktu. Zamiast sprawdzać czy wartość przekroczyła 160000, sprawdzamy czy jest większa dla 160000+1000*([rok]-2020), można to łatwo wygenerować dane w excelu przez przeciąganie. Znaleziony wynik to lipiec 2035.

Matura z informatyki 2021 - zadanie 5.5a
Uzyskany wynik to lipiec 2035.

Rozwiązanie:

lipiec 2035

Zadanie 6 – Bitwa

matura z informatyki 2021 zadanie 6
Zadanie 6 Bitwa z arkusza maturalnego z informatyki maj 2021

Podczas importowania należy uważać na format daty oraz na dość niestandardowy klucz główny w tabeli klasy, który jest tekstem.

Matura z informatyki 2021 - zadanie 6a
Konieczne jest uważanie na niestandardowy klucz główny w tabeli klasy.

Zadanie 6.1.

matura z informatyki 2021 zadanie 6.1
Zadanie 6.1 Bitwa z arkusza maturalnego z informatyki maj 2021

Dodajemy tabele gracze. Również wstawiamy pola kraj oraz id_gracza. Aktywujemy sumy, a na id_gracza ustawiamy sumę Policz. Dodajemy nową kolumnę klikając prawy przycisk myszy (PPM) na puste pole i wybieramy konstruuj. W nowo dodanej kolumnie chcemy uzyskać rok z daty. Z pomocą przychodzi funkcja Year(), która pięknie wyjmuje rok z daty. Nasze wyrażenie to Year([Gracze].[data_dolaczenia]). Nakładamy kryterium na wyrażenie z wartością 2018, bo o taki rok pytają nas w zadaniu. Teraz wystarczy posortować malejąco biorąc pod uwagę id_gracza i przekopiować pierwsze 5 wierszy do pliku z odpowiedziami.

Matura z informatyki 2021 - zadanie 6.1a
Konieczne jest przekopiowanie pierwszych pięciu wierszy do pliku z odpowiedziami.
Implementacja – SQL

Rozwiązanie:

kraj liczba graczy

Polska 11

Stany Zjednoczone 8

Francja 7

Niemcy 6

Rosja 6

Zadanie 6.2.

matura z informatyki 2021 zadanie 6.2
Zadanie 6.2 Bitwa z arkusza maturalnego z informatyki maj 2021

Należy zauważyć, że chodzi tu konkretnie o podane sumy wartości wszystkich jednostek, które posiadają w ramach klasy część nazwy “elf”. Dodajemy tabele gracze, Jednostki oraz Klasy, po czym aktywujemy sumy. Z tabeli jednostki pobieramy kolumnę nazwa z kryterium Like “*elf*”. Z kolei z tabeli Klasy wyjmujemy pole strzal i zmieniamy sumę na Suma.

Matura z informatyki 2021 - zadanie 6.2a
Z tabeli jednostki należy pobrać kolumnę nazwa z ustawionym kryterium Like “*elf*”.
Implementacja – SQL

Rozwiązanie:

nazwa suma

ciemny elf 555

elfi czarodziej 435

lesny elf 1815

wysoki elf-gwardzista 870

Zadanie 6.3.

matura z informatyki 2021 zadanie 6.3
Zadanie 6.3 Bitwa z arkusza maturalnego z informatyki maj 2021

Na początek warto stworzyć kwerendę pomocniczą, w której umieszczeni zostaną gracze posiadający przynajmniej jednego artylerzystę. Następnie wyświetlimy tylko graczy, których nie ma w tej tabeli.

Kwerendę pomocnicza tworzymy poprzez wyciągnięcie wszystkich tabel, włączenie sum i dodanie kolumn Gracze.id_gracza oraz Klasy.nazwa z suma Gdzie, a także z kryterium “artylerzysta”.

Główna kwerenda wymaga użycia tabeli Gracze oraz naszej kwerendy pomocniczej. Po dodaniu danych i stworzeniu relacji między Gracze.id_gracza i pomocnicza.id_gracza, trzeba zmienić typ relacji na taki, który uwzględnia wszystkie rekordy z tabeli Gracze. Można to zmienić klikając prawym przyciskiem myszy na połączenie i wybierając właściwości sprzężenia. Teraz pobieramy pola Gracze.id_gracza oraz pomocnicza.id_gracza z kryterium Is Null (jeśli uwzględnimy wszystkie rekordy z tabeli gracze to wartości odpowiadające im w kwerendzie pomocniczej, będą miały wartość null, jeśli nie ma podanego id_gracza w kwerendzie pomocniczej).

Matura z informatyki 2021 - zadanie 6.3a
Pamiętaj, że główna kwerenda wymaga użycia w tym przypadku tabeli Gracze oraz kwerendy pomocniczej.
Implementacja – SQL

Matura z informatyki 2021 - zadanie 6.3b
Kwerenda okazuje się dużą pomocą.
Implementacja – SQL

Rozwiązanie:

22

24

29

35

36

37

38

47

54

61

64

72

110

114

115

122

123

138

141

167

Zadanie 6.4.

matura z informatyki 2021 zadanie 6.4
Zadanie 6.4 Bitwa z arkusza maturalnego z informatyki maj 2021

Do tego podpunktu użyjemy dwóch kwerend. Najpierw takiej, która sprawdzi czy dana jednostka może dotrzeć do bramy i drugiej która stworzy zestawienie.

Pierwsza kwerenda:

Dodajemy tabelę Jednostki oraz Klasy i wybieramy kolumnę Jednostki.nazwa. Następnie dodajemy nową kolumnę klikając PPM / konstruuj. Teraz w zasadzie przepisujemy lekko zmodyfikowaną formułę z polecenia. Funkcja IIf sprawdza czy warunek jest spełniony, a warunek to:

Matura z informatyki 2021 - zadanie 6.4a
Po przepisaniu zmodyfikowanej formuły z polecenia funkcja IIf(Abs(100-[Jednostki].[lok_x])+Abs(100-[Jednostki].[lok_y])<=[Klasy].[szybkosc],1,0) sprawdzi czy warunek jest spełniony.
Implementacja – SQL

Teraz tworzymy nową kwerendę, która wykorzystuje tabelę Klasy oraz nowo utworzoną kwerendę pomocniczą. Wyjmujemy pole Klasy.nazwa oraz pomocnicza.wyrazenie, należy też włączyć sumy i zmienić sumę na polu kwerendy na suma lub policz, ale w przypadku policz trzeba tworzyć dodatkowe warunki używając sumy gdzie.

Matura z informatyki 2021 - zadanie 6.4b
W ten sposób utworzono nową kwerendę.
Implementacja – SQL

Rozwiązanie:

nazwa SumaOfWyr1

architekt 1

artylerzysta 4

balista 2

ciemny elf 1

drwal 3

elfi czarodziej 1

goniec 2

ifryt 1

kaplan 2

katapulta 0

kawalerzysta 7

konny lucznik 4

kusznik 1

lekki jezdziec 19

lesny elf 0

lucznik 1

mag ognia 0

mag powietrza 3

mag wody 2

mag ziemi 0

paladyn 1

piechur 7

pikinier 5

robotnik 5

smok 0

szpieg 0

topornik 5

troll 0

wysoki elf-gwardzista 1

zwiadowca 4

Zadanie 6.5.

matura z informatyki 2021 zadanie 6
Zadanie 6.5 Bitwa z arkusza maturalnego z informatyki maj 2021

Najpierw stwórzmy kwerendę, która zwróci wszystkie bitwy. Najlepiej podejść tu od strony lokalizacji, ponieważ ustalając bitwy dla jednostek będą one liczone po kilka razy dla jednego pola, a w poleceniu jest napisane, że na polu może być tylko jedna bitwa. Poza tym jest to prostsze. Użyjemy kwerendy pomocniczej, która usunie przypadki gdzie jednostki tylko jednego gracza znajdują się na danym polu. Do nowej kwerendy dodajemy tabelę Jednostki i wybieram pola lok_x, lok_y i id_gracza. Na koniec włączamy sumy. Suma grupuj według pięknie łączy ze sobą zduplikowane id_gracza.

Matura z informatyki 2021 - zadanie 6.5a
Jak już wspomniano do nowej kwerendy należy dodać tabelę Jednostki, a także wybrać pola lok_x, lok_y i id_gracza.
Implementacja – SQL

Główna kwerenda wykorzystuje tylko poprzednia kwerendę i wykorzystuje wszystkie jej pola. Trzeba tylko włączyć sumy i zmienić sumę na Policz w przypadku id_gracza oraz dać na nią filtr >1. Ta kwerenda po prostu liczy jednostki na każdym polu i wyświetla dane pole, jeśli są na nim przynajmniej 2 jednostki – co oznacza że jest na nim bitwa.

Matura z informatyki 2021 - zadanie 6.5b
Na polu gdzie znajdują się dwie jednostki, przeprowadzana jest bitwa.
Implementacja – SQL

Wynik można uzyskać poprzez kliknięcie widok arkusza danych w prawym dolnym rogu i przeczytanie po lewej liczby wierszy. Gdyby nie było tam liczby, należy zjechać na sam dół.

Sprawdzenie w których bitwach brali udział Polacy wygląda podobnie. Znowu tworzymy kwerendę pomocniczą jednak zamiast id_gracza wybieramy kraj z filtrem “Polska”. Uzyskaliśmy właśnie lokalizację pól na których znajduje się przynajmniej jedna jednostka należąca do Polaków.

Matura z informatyki 2021 - zadanie 6.5c
W ten sposób zdołałeś uzyskać lokalizację pól z co najmniej jedną jednostką należącą do Polaków.
Implementacja – SQL

Wystarczy stworzyć nową kwerendę z dodanym zapytaniem liczącą bitwy i dodaną tabelą pól z jednostkami Polaków. Teraz należy utworzyć relację między lok_x i lok_y, żeby uzyskać ostateczny wynik.

Matura z informatyki 2021 - zadanie 6.5d
Utworzenie kwerendy oraz relacji okazuje się bardzo proste.
Implementacja – SQL

Domyślnie relacja wyświetla wartości które istnieją i są sobie równe w obydwu tabelach. W tym przypadku wynikiem są pola bitew z kwerendy, która ma wszystkie bitwy, ale “przefiltrowane” przez lokalizację polskich jednostek. Odpowiedź znajdziemy tak samo jak ostatnio.

Rozwiązanie:

a) 1061
b) 245

Wpisy, które mogą Cię zainteresować: