Zadanie 1.13 punktyWariant AAnaliza rekurencji
Uzupełnij liczbę i listę wywołań rekurencyjnych funkcji A dla (m, n) = (2⁵, 2⁵) i (10, 15), a dla (1, 2¹⁰⁰ + 1) podaj samą liczbę wywołań.
Funkcja A(m, n), dla dodatnich liczb całkowitych m i n, jest zdefiniowana rekurencyjnie: A(m, 1) = m; dla parzystego n > 1: A(m, n) = A(2m, n/2); dla nieparzystego n > 1: A(m, n) = 2 · A(m, (n−1)/2) + m.
Pokaż odpowiedź
Dla (2⁵, 2⁵): 5 wywołań — A(2⁶, 2⁴), A(2⁷, 2³), A(2⁸, 2²), A(2⁹, 2¹), A(2¹⁰, 2⁰). Dla (10, 15): 3 wywołania — A(10, 7), A(10, 3), A(10, 1). Dla (1, 2¹⁰⁰ + 1): 100 wywołań.Zapis potęg odtworzono z tabeli arkusza i tabeli poprawnej odpowiedzi CKE.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 3.
Rozwiązanie krok po kroku
- 1
Śledź zmianę argumentu nKażde wywołanie zastępuje n przez n/2 dla n parzystego albo przez (n−1)/2 dla n nieparzystego. Liczymy tylko wywołania wykonane po wywołaniu początkowym.
- 2
Rozpisz dwa pierwsze przypadkiDla (2⁵,2⁵) kolejne parzyste wartości n to 2⁴,2³,2²,2¹,2⁰, a m podwaja się: 2⁶,…,2¹⁰. Daje to 5 wywołań. Dla (10,15) otrzymujemy n=7,3,1, czyli 3 wywołania i stałe m=10.
- 3
Uogólnij ostatni przypadekDla 2¹⁰⁰+1 pierwszy krok daje 2⁹⁹, a następnie wykładnik maleje o 1 aż do 2⁰. Łącznie wykonuje się 100 wywołań rekurencyjnych.
Typowy błąd: Wliczenie wywołania początkowego do liczby wywołań rekurencyjnych albo zakończenie o krok za wcześnie, przed A(m,1).
Punktowanie: 3 pkt za pięć poprawnych pól; 2 pkt za cztery; 1 pkt za co najmniej dwa.
Zadanie 1.21 punktWariant AObliczanie funkcji rekurencyjnej
Podaj wartości A(m, n) dla (m, n) = (1, 777) oraz (2 · 10⁶, 256 · 10⁶).
Funkcja A(m, n), dla dodatnich liczb całkowitych m i n, jest zdefiniowana rekurencyjnie: A(m, 1) = m; dla parzystego n > 1: A(m, n) = A(2m, n/2); dla nieparzystego n > 1: A(m, n) = 2 · A(m, (n−1)/2) + m.
Pokaż odpowiedź
A(1, 777) = 777. A(2 · 10⁶, 256 · 10⁶) = 512 · 10¹² = 512 000 000 000 000.Oba wyniki są wymagane do uzyskania punktu.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 3.
Rozwiązanie krok po kroku
- 1
Rozpoznaj wartość funkcjiZ definicji wynika niezmiennik A(m,n)=m·n: dla n=1 jest to m, a oba kroki rekurencji zachowują ten iloczyn.
- 2
Podstaw pierwszą paręA(1,777)=1·777=777.
- 3
Podstaw drugą paręA(2·10⁶,256·10⁶)=2·256·10¹²=512·10¹²=512 000 000 000 000.
Typowy błąd: Zgubienie czynnika 10¹² przy mnożeniu 10⁶ przez 10⁶ albo potraktowanie zapisu 256·10⁶ jako 256+10⁶.
Punktowanie: 1 pkt za poprawne odpowiedzi w obu wierszach.
Zadanie 1.33 punktyWariant AUogólnienie rekurencji
Dla n = 2ᵏ oraz n = 2ᵏ − 1, gdzie k jest dodatnią liczbą całkowitą większą od 2, podaj liczbę wywołań rekurencyjnych i wartość drugiego argumentu w i-tym wywołaniu.
Funkcja A(m, n), dla dodatnich liczb całkowitych m i n, jest zdefiniowana rekurencyjnie: A(m, 1) = m; dla parzystego n > 1: A(m, n) = A(2m, n/2); dla nieparzystego n > 1: A(m, n) = 2 · A(m, (n−1)/2) + m.
Pokaż odpowiedź
Dla n = 2ᵏ: k wywołań, a drugi argument w i-tym wywołaniu ma wartość 2ᵏ⁻ⁱ. Dla n = 2ᵏ − 1: k − 1 wywołań, a drugi argument ma wartość 2ᵏ⁻ⁱ − 1 (równoważnie: ⌊(2ᵏ − 1)/2ⁱ⌋).Zakres indeksu i obejmuje wszystkie kolejne wywołania rekurencyjne.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 4.
Rozwiązanie krok po kroku
- 1
Przeanalizuj potęgę dwójkiDla n=2ᵏ każdy krok jest parzysty i dzieli n przez 2. Po i krokach drugi argument ma wartość 2ᵏ⁻ⁱ, a dojście do 1 wymaga k wywołań.
- 2
Przeanalizuj liczbę o jeden mniejsząDla n=2ᵏ−1 pierwszy i każdy kolejny argument są nieparzyste. Po zastosowaniu (n−1)/2 otrzymujemy kolejno 2ᵏ⁻¹−1, 2ᵏ⁻²−1 itd.
- 3
Ustal warunek końcaCiąg dla 2ᵏ−1 dochodzi do 1 po k−1 wywołaniach. Równoważny zapis i-tego argumentu to ⌊(2ᵏ−1)/2ⁱ⌋.
Typowy błąd: Podanie k wywołań także dla 2ᵏ−1; w tym przypadku punkt końcowy 1 osiągamy już po k−1 krokach.
Punktowanie: 3 pkt za cztery poprawne pola; 2 pkt za trzy; 1 pkt za dwa.
Zadanie 2.11 punktWariant ADodawanie pisemne
Podaj liczbę przeniesień podczas dodawania pisemnego par: 88765 + 11111 oraz 456789 + 222222.
Pokaż odpowiedź
88765 + 11111: 0 przeniesień. 456789 + 222222: 3 przeniesienia.Wiersz przykładowy 37932 + 12528 ma 3 przeniesienia.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 5.
Rozwiązanie krok po kroku
- 1
Dodawaj od prawej stronyW każdej kolumnie sumujemy dwie cyfry i ewentualne przeniesienie z poprzedniej kolumny. Nowe przeniesienie powstaje, gdy suma jest co najmniej równa 10.
- 2
Policz pierwszą paręW 88765+11111 żadna suma cyfr nie przekracza 9, więc liczba przeniesień wynosi 0.
- 3
Policz drugą paręW 456789+222222 przeniesienia powstają w kolumnach jedności, dziesiątek i setek; w dalszych kolumnach już nie. Wynik to 3.
Typowy błąd: Liczenie cyfr wyniku zamiast zdarzeń przeniesienia lub nieuwzględnienie przeniesienia przy sumowaniu następnej kolumny.
Punktowanie: 1 pkt za obie poprawne liczby.
Zadanie 2.24 punktyWariant AProjektowanie algorytmu
Zapisz algorytm obliczający liczbę przeniesień w dodawaniu pisemnym dwóch dodatnich liczb całkowitych a i b o tej samej liczbie cyfr. Algorytm może operować wyłącznie na liczbach całkowitych, bez tablic, napisów i funkcji konwersji.
Pokaż odpowiedź
Przykładowy pseudokod CKE:
wpamieci ← 0; p ← 0
dopóki a > 0:
cyfraa ← a mod 10
cyfrab ← b mod 10
suma ← cyfraa + cyfrab + wpamieci
jeżeli suma ≥ 10: wpamieci ← 1; p ← p + 1
w przeciwnym razie: wpamieci ← 0
a ← a div 10
b ← b div 10CKE akceptuje każde całkowicie poprawne rozwiązanie spełniające ograniczenia z polecenia.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 6.
Rozwiązanie krok po kroku
- 1
Zainicjalizuj stanUstawiamy licznik p=0 i zmienną wpamieci=0. Nie potrzebujemy tablic ani napisów, ponieważ cyfry można pobierać operacjami mod i div.
- 2
Pobieraj ostatnie cyfryW każdej iteracji cyfraa=a mod 10 i cyfrab=b mod 10. Po obliczeniu sumy z wpamieci usuwamy cyfry przez a=a div 10 oraz b=b div 10.
- 3
Obsłuż przeniesienieJeżeli suma≥10, zwiększamy p i ustawiamy wpamieci=1; w przeciwnym razie zerujemy wpamieci. Pętla działa, dopóki a>0, bo liczby mają tę samą liczbę cyfr.
- 4
Zwróć licznikPo przetworzeniu wszystkich kolumn p jest liczbą przeniesień. Końcowe przeniesienie zostało już policzone w kolumnie, w której powstało.
Typowy błąd: Pozostawienie wpamieci=1 po kolumnie bez przeniesienia albo zwiększanie p dopiero w następnej iteracji.
Punktowanie: Po 1 pkt za: pętlę po cyfrach, pobieranie cyfr, poprawne liczenie sumy i przeniesienia oraz poprawny wynik z właściwą inicjalizacją.
Zadanie 3.12 punktyWariant APrzetwarzanie napisów i kodów ASCII
Dla f(s) równego sumie kodów ASCII znaków słowa s znajdź w pary.txt jedyną parę s₁, s₂ maksymalizującą |f(s₁) − f(s₂)| i podaj tę wartość.
Dane znajdują się w plikach pary.txt i pary_przyklad.txt z oficjalnego pakietu CKE. Plik pary.txt zawiera 500 par słów złożonych z małych liter alfabetu angielskiego; każda para zajmuje osobny wiersz, a słowa są rozdzielone spacją.
Pokaż odpowiedź
gpeeazeugmvsbzwsrxfplqdbakoxxe lhpbmoirdm 2206Kolejno: pierwsze słowo, drugie słowo, maksymalna wartość różnicy.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 7.
Rozwiązanie krok po kroku
- 1
Policz wartość każdego słowaDla każdego słowa sumujemy kody ASCII wszystkich znaków, np. przechodząc po znakach i dodając ord(znak).
- 2
Porównaj paryDla każdego z 500 wierszy obliczamy wartość bezwzględną różnicy obu sum i zapamiętujemy największą wraz z parą słów.
- 3
Odczytaj maksimumPonowne przeliczenie oficjalnego pary.txt daje jedyne maksimum 2206 dla pary gpeeazeugmvsbzwsrxfplqdbakoxxe oraz lhpbmoirdm.
Typowy błąd: Sumowanie pozycji liter w alfabecie zamiast kodów ASCII albo pominięcie wartości bezwzględnej różnicy.
Punktowanie: 2 pkt za poprawną parę i wartość; 1 pkt za tylko jeden z tych elementów.
Zadanie 3.23 punktyWariant AZliczanie wspólnych znaków
Znajdź w pary.txt jedyną parę słów o największej sumie wspólnych wystąpień wszystkich liter, gdzie dla litery x przyjmujemy minimum liczby jej wystąpień w obu słowach. Podaj parę i sumę.
Dane znajdują się w plikach pary.txt i pary_przyklad.txt z oficjalnego pakietu CKE. Plik pary.txt zawiera 500 par słów złożonych z małych liter alfabetu angielskiego; każda para zajmuje osobny wiersz, a słowa są rozdzielone spacją.
Pokaż odpowiedź
aacbcccaacacbcabac cccccaaaacaccbabcba 18Kolejno: pierwsze słowo, drugie słowo, suma wspólnych wystąpień.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 8.
Rozwiązanie krok po kroku
- 1
Zlicz litery osobnoDla każdego słowa budujemy licznik 26 liter. Liczność wspólnych wystąpień litery x to minimum z dwóch liczników.
- 2
Zsumuj wspólne wystąpieniaDodajemy minima dla wszystkich liter i porównujemy wynik z dotychczasowym maksimum, zachowując także oba słowa.
- 3
Zweryfikuj wynik na danychOficjalny plik daje sumę 18 dla pary aacbcccaacacbcabac oraz cccccaaaacaccbabcba; jest to jedyne maksimum.
Typowy błąd: Zliczanie tylko różnych wspólnych liter; zadanie wymaga sumy wystąpień, więc dla każdej litery bierzemy minimum jej liczności.
Punktowanie: 3 pkt: 2 pkt za parę słów i 1 pkt za liczbę.
Zadanie 3.34 punktyWariant APrefiksy i sufiksy napisów
Podaj wszystkie pary z pary.txt, dla których najdłuższy prefiksosufiks ma co najmniej 5 liter, oraz długość najdłuższego prefiksosufiksu każdej pary.
Dane znajdują się w plikach pary.txt i pary_przyklad.txt z oficjalnego pakietu CKE. Plik pary.txt zawiera 500 par słów złożonych z małych liter alfabetu angielskiego; każda para zajmuje osobny wiersz, a słowa są rozdzielone spacją. Prefiksosufiks to słowo będące początkiem jednego słowa i końcem drugiego — w dowolnej z dwóch kolejności.
Pokaż odpowiedź
bbbbaabbababbaaaa baaaaabaaabbbabab 5
aababbbababbbbbbaab bbbbaabbababababa 7
aaaababaaaabbbb aabbbbbabbbaaaa 6
bbbbabaaabbbabb aaababaabbbbbbba 5
ccccabacbba acbbabcbcbcbaa 5
caabbccabccc cabccccabbaac 6
abaacabcccccabbbc abbbcbbbbbcabaca 5Każdy wiersz zawiera parę słów i długość jej najdłuższego prefiksosufiksu.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 9.
Rozwiązanie krok po kroku
- 1
Sprawdź obie kolejnościPrefiks pierwszego słowa może być sufiksem drugiego albo odwrotnie. Dla każdej pary trzeba więc zbadać oba kierunki.
- 2
Znajdź największą długośćTestujemy długości k od 1 do długości krótszego słowa i zapamiętujemy największe k, dla którego odpowiednie fragmenty są identyczne.
- 3
Odfiltruj wynikiPo pozostawieniu długości co najmniej 5 ponowne przeliczenie pary.txt zwraca dokładnie siedem wierszy, zgodnych z odpowiedzią CKE, z długościami 5, 7, 6, 5, 5, 6 i 5.
Typowy błąd: Sprawdzenie tylko prefiksu pierwszego słowa z sufiksem drugiego i pominięcie odwrotnej kolejności.
Punktowanie: 4 pkt za pełną odpowiedź; kryteria CKE przewidują częściowe punkty za poprawne pary, długości i niektóre zawężone warianty algorytmu.
Zadanie 4.11 punktWariant AAnaliza hierarchii drzewiastej
Dla ośmioosobowej przykładowej hierarchii z arkusza podaj dla każdego pracownika liczbę bezpośrednich oraz wszystkich podwładnych.
Relacje bezpośrednie w przykładzie CKE: 1→2, 1→4, 2→3, 2→5, 2→6, 3→7, 4→8.
Pokaż odpowiedź
Pracownik 1: 2 bezpośrednich, 7 wszystkich; 2: 3 i 4; 3: 1 i 1; 4: 1 i 1; 5: 0 i 0; 6: 0 i 0; 7: 0 i 0; 8: 0 i 0.Pierwsza liczba przy pracowniku oznacza bezpośrednich podwładnych, druga — wszystkich podwładnych.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 10.
Rozwiązanie krok po kroku
- 1
Zbuduj listy dzieciDla każdej relacji przełożony→pracownik dopisujemy pracownika do listy bezpośrednich podwładnych przełożonego. Długość listy daje pierwszą kolumnę.
- 2
Policz całe poddrzewaLiczba wszystkich podwładnych pracownika to suma 1+liczba wszystkich podwładnych każdego jego bezpośredniego podwładnego. Liczymy ją od liści ku korzeniowi.
- 3
Uzupełnij przykładPrezes 1 ma bezpośrednio 2 i 4, a w całym poddrzewie pozostałe 7 osób. Pracownik 2 ma bezpośrednio 3,5,6 i łącznie 4 osoby; wyniki pozostałych wynikają analogicznie.
Typowy błąd: Uznanie wszystkich potomków w drzewie za bezpośrednich podwładnych albo nieuwzględnienie pracowników z pustą listą dzieci.
Punktowanie: 1 pkt za poprawne uzupełnienie tabeli.
Zadanie 4.22 punktyWariant AAnaliza danych hierarchicznych
Na podstawie korpo.txt podaj, ilu pracowników nie jest przełożonym żadnego pracownika.
Dane znajdują się w plikach korpo.txt i korpo_przyklad.txt z oficjalnego pakietu CKE. Plik korpo.txt opisuje hierarchię 50 000 pracowników: w pierwszym wierszu jest 0 dla prezesa, a w i-tym wierszu — numer bezpośredniego przełożonego pracownika i.
Pokaż odpowiedź
25 113.CKE przyznaje 1 pkt również za wynik różniący się o 1: 25 112 lub 25 114.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 11.
Rozwiązanie krok po kroku
- 1
Zbierz numery przełożonychZ pliku korpo.txt tworzymy zbiór wszystkich dodatnich numerów występujących jako bezpośredni przełożony.
- 2
Policz numery spoza zbioruPracownik nie jest niczyim przełożonym, jeśli jego numer od 1 do 50 000 nie występuje w tym zbiorze.
- 3
Zweryfikuj na korpo.txtNiezależne przeliczenie oficjalnego pliku daje 25 113 takich pracowników, zgodnie z CKE.
Typowy błąd: Pominięcie prezesa lub błędne przesunięcie indeksów, ponieważ numer pracownika wynika z numeru wiersza liczonego od 1.
Punktowanie: 2 pkt za 25 113; 1 pkt za 25 112 albo 25 114.
Zadanie 4.32 punktyWariant AMaksimum w danych hierarchicznych
Podaj numer pracownika z korpo.txt mającego najwięcej bezpośrednich podwładnych oraz liczbę tych podwładnych.
Dane znajdują się w plikach korpo.txt i korpo_przyklad.txt z oficjalnego pakietu CKE. Plik korpo.txt opisuje hierarchię 50 000 pracowników: w pierwszym wierszu jest 0 dla prezesa, a w i-tym wierszu — numer bezpośredniego przełożonego pracownika i.
Pokaż odpowiedź
Pracownik 2 — 19 bezpośrednich podwładnych.Odpowiedź w formacie danych CKE: 2 19.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 12.
Rozwiązanie krok po kroku
- 1
Zlicz wystąpienia przełożonychKażde wystąpienie numeru x w korpo.txt oznacza jednego bezpośredniego podwładnego pracownika x. Tworzymy tabelę częstości.
- 2
Znajdź maksimumWyszukujemy największą częstość i odpowiadający jej numer. Dla oficjalnych danych maksimum wynosi 19 i należy do pracownika 2.
Typowy błąd: Liczenie wszystkich potomków zamiast wyłącznie osób, które wskazują danego pracownika jako bezpośredniego przełożonego.
Punktowanie: Po 1 pkt za numer pracownika i liczbę bezpośrednich podwładnych.
Zadanie 4.43 punktyWariant AGłębokość hierarchii
Podaj największą liczbę przełożonych jednego pracownika w korpo.txt oraz liczbę pracowników mających właśnie tylu przełożonych.
Dane znajdują się w plikach korpo.txt i korpo_przyklad.txt z oficjalnego pakietu CKE. Plik korpo.txt opisuje hierarchię 50 000 pracowników: w pierwszym wierszu jest 0 dla prezesa, a w i-tym wierszu — numer bezpośredniego przełożonego pracownika i.
Pokaż odpowiedź
22 przełożonych; 2 pracowników.Odpowiedź w formacie danych CKE: 22 2.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 12.
Rozwiązanie krok po kroku
- 1
Nadaj głębokość prezesowiPrezes, którego wiersz zawiera 0, ma głębokość 0, czyli nie ma przełożonych.
- 2
Wyznacz głębokości pozostałychDla pracownika i liczba przełożonych to 1+głębokość jego bezpośredniego przełożonego. Wartości można zapamiętywać, aby nie przechodzić wielokrotnie tych samych łańcuchów.
- 3
Znajdź maksimum i jego częstośćPrzeliczenie 50 000 wierszy daje maksymalną głębokość 22, osiąganą przez 2 pracowników.
Typowy błąd: Liczenie pracownika jako własnego przełożonego albo ustawienie głębokości prezesa na 1 zamiast 0.
Punktowanie: 3 pkt: 2 pkt za największą liczbę przełożonych i 1 pkt za liczbę pracowników.
Zadanie 52 punktyWariant ASystemy pozycyjne
Uzupełnij liczby w systemie piątkowym i trójkowym: (1440)₅ + (…)₅ = (427)₁₀ = (…)₃ − (110002)₃.
Pokaż odpowiedź
(1440)₅ + (1212)₅ = (427)₁₀ = (1000220)₃ − (110002)₃.Wymagane uzupełnienia to 1212 w systemie piątkowym i 1000220 w systemie trójkowym.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 13.
Rozwiązanie krok po kroku
- 1
Przelicz znaną liczbę piątkową(1440)₅=1·5³+4·5²+4·5=245. Brakujący składnik ma więc wartość 427−245=182, czyli (1212)₅.
- 2
Przelicz odejmowaną liczbę trójkową(110002)₃=1·3⁵+1·3⁴+2=326. Liczba przed znakiem minus musi mieć wartość 427+326=753.
- 3
Zamień 753 na system trójkowyKolejne dzielenia przez 3 lub rozkład na potęgi dają 753=(1000220)₃. Oba uzupełnienia spełniają równanie.
Typowy błąd: Odjęcie 326 od 427 przy wyznaczaniu pierwszej liczby po prawej stronie, mimo że to ona pomniejszona o 326 ma dać 427.
Punktowanie: 2 pkt za dwie poprawne liczby; 1 pkt za jedną.
Zadanie 61 punktWariant AAdresacja IP
Podaj długość adresu IPv4 i IPv6 w bitach.
Pokaż odpowiedź
IPv4: 32 bity. IPv6: 128 bitów.Obie wartości należy podać poprawnie.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 13.
Rozwiązanie krok po kroku
- 1
Rozpoznaj format IPv4IPv4 składa się z czterech oktetów, a każdy oktet ma 8 bitów, więc 4·8=32 bity.
- 2
Rozpoznaj format IPv6IPv6 składa się z ośmiu grup po 16 bitów, więc 8·16=128 bitów.
Typowy błąd: Podanie liczby znaków zapisu tekstowego adresu zamiast stałej długości adresu w bitach.
Punktowanie: 1 pkt za poprawne uzupełnienie obu zdań.
Zadanie 7.13 punktyWariant AArkusz kalkulacyjny i wykres
Na podstawie staw.txt utwórz zestawienie średnich miesięcznych temperatur, zaokrąglonych do jednego miejsca po przecinku, oraz wykres kolumnowy porównujący wartości.
Dane pogodowe znajdują się w pliku staw.txt z oficjalnego pakietu CKE. Każdy wiersz zawiera datę, średnią temperaturę i sumę opadów. W zadaniach 7.3–7.4 przyjmij wzrost rzęsy o 1,75% każdej nocy, początkowe 2000 m² (20% stawu) 1 marca 2023, zjadanie 0,25 m² dziennie przez każdego amura oraz odławianie 60 m² w każdy piątek.
Pokaż odpowiedź
Miesiące 1–12: 1,1; 4,1; 4,1; 7,4; 15,9; 20,5; 20,4; 21,1; 13,7; 12,5; 5,2; 1,6 °C. Wykres: kolumnowy, z poprawnym doborem danych, tytułem i opisami osi.Podane liczby są oficjalnym zestawieniem CKE; sam wykres stanowi osobny element odpowiedzi egzaminacyjnej.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 14.
Rozwiązanie krok po kroku
- 1
Wczytaj i pogrupuj daneZ każdego wiersza staw.txt odczytujemy miesiąc z daty oraz temperaturę, zamieniając przecinek dziesiętny na format liczbowy używany przez program lub arkusz.
- 2
Oblicz średnieDla każdego miesiąca dzielimy sumę temperatur przez liczbę dni i zaokrąglamy do jednego miejsca po przecinku. Ponowne przeliczenie daje: 1,1; 4,1; 4,1; 7,4; 15,9; 20,5; 20,4; 21,1; 13,7; 12,5; 5,2; 1,6 °C.
- 3
Zbuduj wykresNa osi poziomej umieszczamy miesiące 1–12, a na pionowej średnią temperaturę w °C. Wybieramy wykres kolumnowy i dodajemy tytuł oraz opisy osi.
Typowy błąd: Uśrednienie wszystkich dni roku naraz albo potraktowanie przecinka dziesiętnego jako separatora tekstu, przez co temperatury nie są liczbami.
Punktowanie: 1 pkt za zestawienie oraz 2 pkt za wykres: dobór danych i typ, a także czytelny opis.
Zadanie 7.22 punktyWariant AAnaliza ciągów danych
Dla każdego miesiąca wyznacz długość najdłuższego ciągu kolejnych dni bez opadów w tym miesiącu.
Dane pogodowe znajdują się w pliku staw.txt z oficjalnego pakietu CKE. Każdy wiersz zawiera datę, średnią temperaturę i sumę opadów. W zadaniach 7.3–7.4 przyjmij wzrost rzęsy o 1,75% każdej nocy, początkowe 2000 m² (20% stawu) 1 marca 2023, zjadanie 0,25 m² dziennie przez każdego amura oraz odławianie 60 m² w każdy piątek.
Pokaż odpowiedź
Miesiące 1–12: 11; 7; 20; 8; 20; 11; 10; 8; 14; 15; 10; 10 dni.Ciąg powinien być liczony osobno w obrębie każdego miesiąca.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 16.
Rozwiązanie krok po kroku
- 1
Prowadź bieżący licznikDla dni z opadem 0 zwiększamy długość bieżącej serii, a po dniu z opadem dodatnim zerujemy ją. Osobno zapamiętujemy maksimum.
- 2
Resetuj serię na granicy miesiącaCiąg nie może przechodzić z końca jednego miesiąca na początek następnego, więc przy zmianie miesiąca zerujemy licznik i rozpoczynamy nowe maksimum miesięczne.
- 3
Zweryfikuj wynikiOficjalny plik daje kolejno 11, 7, 20, 8, 20, 11, 10, 8, 14, 15, 10 i 10 dni.
Typowy błąd: Połączenie bezdeszczowych dni z dwóch sąsiednich miesięcy w jeden ciąg albo uznanie opadu większego od 0 za dzień bez opadów.
Punktowanie: 2 pkt za pełną odpowiedź; 1 pkt za wskazane w zasadach CKE systematyczne błędy zliczania.
Zadanie 7.32 punktyWariant AModelowanie wzrostu
Podaj dzień, licząc od 1 marca 2023, w którym poranny pomiar po raz pierwszy wykazał więcej niż 75% powierzchni stawu zajętej przez rzęsę.
Dane pogodowe znajdują się w pliku staw.txt z oficjalnego pakietu CKE. Każdy wiersz zawiera datę, średnią temperaturę i sumę opadów. W zadaniach 7.3–7.4 przyjmij wzrost rzęsy o 1,75% każdej nocy, początkowe 2000 m² (20% stawu) 1 marca 2023, zjadanie 0,25 m² dziennie przez każdego amura oraz odławianie 60 m² w każdy piątek.
Pokaż odpowiedź
167. dzień, czyli 14 sierpnia 2023 r.CKE akceptuje numer dnia albo datę.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 17.
Rozwiązanie krok po kroku
- 1
Ustal kolejność zdarzeń1 marca rano zapisujemy 2000 m². W ciągu dnia 80 amurów zjada 20 m², a w piątek dodatkowo odławia się 60 m²; dopiero w nocy pozostały obszar rośnie o 1,75%.
- 2
Symuluj kolejne porankiDla każdego dnia zapisujemy poranny stan, wykonujemy dzienne ubytki i mnożymy wynik przez 1,0175, otrzymując stan następnego poranka.
- 3
Znajdź pierwsze przekroczeniePierwszy poranny stan większy od 7500 m² występuje w 167. dniu; jest to 14 sierpnia 2023 r. Ponowne przeliczenie daje wtedy około 7536,73 m².
Typowy błąd: Odczyt powierzchni po nocnym wzroście jako stanu tego samego dnia; przesuwa to wynik na 166. dzień.
Punktowanie: 2 pkt za 167 lub 14.08.2023; 1 pkt za 166 lub 13.08.2023 wynikające z przesunięcia momentu pomiaru.
Zadanie 7.42 punktyWariant AOptymalizacja modelu
Podaj najmniejszą liczbę amurów białych potrzebną, aby przez cały badany okres rzęsa zajmowała maksymalnie 50% powierzchni stawu.
Dane pogodowe znajdują się w pliku staw.txt z oficjalnego pakietu CKE. Każdy wiersz zawiera datę, średnią temperaturę i sumę opadów. W zadaniach 7.3–7.4 przyjmij wzrost rzęsy o 1,75% każdej nocy, początkowe 2000 m² (20% stawu) 1 marca 2023, zjadanie 0,25 m² dziennie przez każdego amura oraz odławianie 60 m² w każdy piątek.
Pokaż odpowiedź
94 amury białe.Wynik musi być najmniejszą liczbą spełniającą warunek.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 17.
Rozwiązanie krok po kroku
- 1
Sparametryzuj modelW algorytmie z zadania 7.3 zastępujemy 80 amurów zmienną n, więc codzienny ubytek wynosi 0,25·n m². Nadal uwzględniamy piątkowe 60 m² i nocny mnożnik 1,0175.
- 2
Sprawdzaj całe 184 dniDla kolejnych całkowitych n symulujemy każdy poranny pomiar od 1 marca do 31 sierpnia i odrzucamy wariant, jeśli choć raz powierzchnia przekracza 5000 m².
- 3
Udowodnij minimalnośćDla 93 amurów maksimum wynosi około 5249,93 m², więc warunek nie jest spełniony. Dla 94 maksimum wynosi około 4916,74 m², więc najmniejsza poprawna liczba to 94.
Typowy błąd: Sprawdzenie tylko stanu z 31 sierpnia zamiast maksimum z całego okresu albo zaokrąglanie powierzchni po każdym dniu.
Punktowanie: 2 pkt za 94; 1 pkt za wynik różniący się o 1: 93 lub 95.
Zadanie 8.11 punktWariant AŁączenie danych transakcyjnych
Podaj imię i nazwisko klienta, który dokonał łącznie najwięcej transakcji w całym analizowanym okresie.
Dane znajdują się w plikach klienci.txt, transakcje.txt i opis_transakcji.txt z oficjalnego pakietu CKE. Łączą one klientów, transakcje, sklepy, sprzedawców oraz zakupione produkty przez identyfikatory opisane w arkuszu.
Pokaż odpowiedź
Marcelino Kruk.Wynik wymaga połączenia klienta z jego transakcjami.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 18.
Rozwiązanie krok po kroku
- 1
Policz transakcje klientówGrupujemy wiersze transakcje.txt według IdKlienta i liczymy wiersze w każdej grupie.
- 2
Znajdź maksimum i połącz daneNajwiększą liczbę, 8 transakcji, ma IdKlienta 2041. Po połączeniu z klienci.txt otrzymujemy imię i nazwisko Marcelino Kruk.
Typowy błąd: Liczenie pozycji produktów z opis_transakcji.txt zamiast transakcji; jedna transakcja może zawierać kilka pozycji.
Punktowanie: 1 pkt za poprawne imię i nazwisko.
Zadanie 8.22 punktyWariant AWyszukiwanie brakujących relacji
Podaj liczbę kobiet i mężczyzn wśród klientów, którzy nie dokonali żadnego zakupu w analizowanym okresie.
Dane znajdują się w plikach klienci.txt, transakcje.txt i opis_transakcji.txt z oficjalnego pakietu CKE. Łączą one klientów, transakcje, sklepy, sprzedawców oraz zakupione produkty przez identyfikatory opisane w arkuszu.
Pokaż odpowiedź
Kobiety: 689. Mężczyźni: 651.Łącznie zakupów nie dokonało 1340 klientów.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 19.
Rozwiązanie krok po kroku
- 1
Zbuduj zbiór kupującychZ transakcje.txt zbieramy wszystkie różne IdKlienta, które pojawiły się w co najmniej jednym wierszu.
- 2
Znajdź brakujące relacjeOd pełnego zbioru klientów odejmujemy zbiór kupujących, a pozostałych grupujemy według pola Plec.
- 3
Zweryfikuj licznościPonowne przeliczenie daje 689 kobiet i 651 mężczyzn, łącznie 1340 klientów bez zakupu.
Typowy błąd: Użycie zwykłego złączenia wewnętrznego, które usuwa klientów bez transakcji, zamiast różnicy zbiorów lub lewego złączenia.
Punktowanie: Po 1 pkt za poprawną liczbę kobiet i mężczyzn; 1 pkt za samą poprawną sumę 1340.
Zadanie 8.32 punktyWariant AAgregacja danych transakcyjnych
Podaj liczbę różnych sklepów z transakcjami w kasach samoobsługowych oraz łączną kwotę zakupów w tych kasach.
Dane znajdują się w plikach klienci.txt, transakcje.txt i opis_transakcji.txt z oficjalnego pakietu CKE. Łączą one klientów, transakcje, sklepy, sprzedawców oraz zakupione produkty przez identyfikatory opisane w arkuszu.
Pokaż odpowiedź
28 sklepów; łączna kwota 19 443,29.Kasa samoobsługowa jest oznaczona brakiem identyfikatora sprzedawcy.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 20.
Rozwiązanie krok po kroku
- 1
Wybierz kasy samoobsługoweFiltrujemy transakcje, w których IdSprzedawcy jest puste. Z tych wierszy liczymy różne IdSklepu, otrzymując 28 sklepów.
- 2
Połącz pozycje transakcjiŁączymy wybrane IdTransakcji z opis_transakcji.txt i dla każdej pozycji obliczamy Cena·Liczba.
- 3
Zsumuj wartośćSuma wszystkich pozycji z kas samoobsługowych wynosi 19 443,29, co potwierdza wynik CKE.
Typowy błąd: Sumowanie samej kolumny Cena bez pomnożenia przez Liczba albo traktowanie pustego IdSprzedawcy jako wartości 0.
Punktowanie: Po 1 pkt za liczbę sklepów i łączną kwotę.
Zadanie 8.42 punktyWariant AGrupowanie danych według miesiąca
Podaj identyfikator sprzedawcy, który w jednym miesiącu obsługiwał klientów w największej liczbie różnych sklepów, oraz ten miesiąc.
Dane znajdują się w plikach klienci.txt, transakcje.txt i opis_transakcji.txt z oficjalnego pakietu CKE. Łączą one klientów, transakcje, sklepy, sprzedawców oraz zakupione produkty przez identyfikatory opisane w arkuszu.
Pokaż odpowiedź
IdSprzedawcy 14; styczeń (miesiąc 1).Nazwa albo numer miesiąca są równoważne.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 20.
Rozwiązanie krok po kroku
- 1
Wyodrębnij miesiącZ daty każdej transakcji pobieramy miesiąc i tworzymy grupę identyfikowaną przez parę (IdSprzedawcy, miesiąc).
- 2
Policz różne sklepyW każdej grupie liczymy zbiór różnych IdSklepu, a nie liczbę transakcji.
- 3
Wybierz największą grupęNajwiększy wynik to 3 różne sklepy dla sprzedawcy 14 w styczniu. Zatem odpowiedź to IdSprzedawcy 14, miesiąc 1.
Typowy błąd: Liczenie wszystkich transakcji sprzedawcy w miesiącu zamiast liczby różnych sklepów.
Punktowanie: Po 1 pkt za identyfikator sprzedawcy i miesiąc.
Zadanie 8.52 punktyWariant AZapytania SQL
Napisz zapytanie SQL zwracające IdProduktu i Nazwę wszystkich zakupionych produktów z kategorii „spozywcze”, których opis zawiera fragment „do ekspresu kolbowego”. Użyj tabel Opis_transakcji, Produkty i Kategorie.
Pokaż odpowiedź
SELECT Produkty.IdProduktu, Nazwa
FROM Opis_transakcji
JOIN Produkty ON Opis_transakcji.IdProduktu = Produkty.IdProduktu
JOIN Kategorie ON Kategorie.IdKategorii = Produkty.IdKategorii
WHERE NazwaKategorii = 'spozywcze'
AND Opis LIKE '%do ekspresu kolbowego%';To przykładowe rozwiązanie CKE; równoważne poprawne zapytania także spełniają polecenie.
Źródło odpowiedzi: zasady oceniania CKE, strona PDF 21.
Rozwiązanie krok po kroku
- 1
Połącz trzy tabeleOpis_transakcji łączymy z Produkty po IdProduktu, a Produkty z Kategorie po IdKategorii. Dzięki temu dla kupionej pozycji dostępne są nazwa produktu, opis i nazwa kategorii.
- 2
Nałóż oba warunkiW WHERE wymagamy NazwaKategorii='spozywcze' oraz Opis LIKE '%do ekspresu kolbowego%'. Znaki % pozwalają znaleźć fragment w dowolnym miejscu opisu.
- 3
Wybierz wymagane kolumnySELECT zwraca Produkty.IdProduktu i Nazwa. Jeżeli system ma zwrócić każdy produkt tylko raz mimo wielu zakupów, równoważnym rozszerzeniem zapytania jest SELECT DISTINCT.
Typowy błąd: Połączenie Opis_transakcji bezpośrednio z Kategorie albo użycie LIKE bez znaków %, co wymagałoby pełnej zgodności całego opisu.
Punktowanie: 1 pkt za wybór pól i połączenie tabel oraz 1 pkt za warunki wyszukiwania.