You are on page 1of 82

CENTRALNA KOMISJA EGZAMINACYJNA

OKRGOWE KOMISJE EGZAMINACYJNE

INFORMATOR
O EGZAMINIE MATURALNYM
Z INFORMATYKI
OD ROKU SZKOLNEGO 2014/2015

INFORMATOR
O EGZAMINIE MATURALNYM
Z INFORMATYKI
OD ROKU SZKOLNEGO 2014/2015

opracowany przez Centraln Komisj Egzaminacyjn


we wsppracy z okrgowymi komisjami egzaminacyjnymi
w Gdasku, Jaworznie, Krakowie, odzi,
omy, Poznaniu, Warszawie i we Wrocawiu

Centralna Komisja Egzaminacyjna


Warszawa 2013

Centralna Komisja Egzaminacyjna


ul. Jzefa Lewartowskiego 6, 00-190 Warszawa
tel. 22 536 65 00
ckesekr@cke.edu.pl

Okrgowa Komisja Egzaminacyjna w Gdasku


ul. Na Stoku 49, 80-874 Gdask
tel. 58 320 55 90
komisja@oke.gda.pl

Okrgowa Komisja Egzaminacyjna w Jaworznie


ul. Adama Mickiewicza 4, 43-600 Jaworzno
tel. 32 616 33 99
oke@oke.jaworzno.pl

Okrgowa Komisja Egzaminacyjna w Krakowie


os. Szkolne 37, 31-978 Krakw
tel. 12 683 21 01
oke@oke.krakow.pl

Okrgowa Komisja Egzaminacyjna w omy


ul. Nowa 2, 18-400 oma
tel. 86 216 44 95
sekretariat@oke.lomza.pl

Okrgowa Komisja Egzaminacyjna w odzi


ul. Ksawerego Praussa 4, 94-203 d
tel. 42 634 91 33
komisja@komisja.pl

Okrgowa Komisja Egzaminacyjna w Poznaniu


ul. Gronowa 22, 61-655 Pozna
tel. 61 854 01 60
sekretariat@oke.poznan.pl

Okrgowa Komisja Egzaminacyjna w Warszawie


ul. Grzybowska 77, 00-844 Warszawa
tel. 22 457 03 35
info@oke.waw.pl

Okrgowa Komisja Egzaminacyjna we Wrocawiu


ul. Tadeusza Zieliskiego 57, 53-533 Wrocaw
tel. 71 785 18 94
sekretariat@oke.wroc.pl

Spis treci

Wstp ..

1. Opis egzaminu maturalnego z informatyki na poziomie rozszerzonym .......

1.1. Zakres wiadomoci i umiejtnoci sprawdzanych na egzaminie


1.2. Oglne informacje o egzaminie maturalnym z informatyki od roku szkolnego
2014/2015
1.3. Arkusz egzaminacyjny z informatyki na poziomie rozszerzonym
1.4. Ocenianie odpowiedzi zdajcych ....

9
9
10
10

2. Przykadowe zadania z informatyki na poziomie rozszerzonym wraz z rozwizaniami ....

13

Opinia Konferencji Rektorw Akademickich Szk Polskich o informatorach maturalnych


od 2015 roku

81

Wstp

Wstp
Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015 jest
podzielony na dwie czci.
CZ PIERWSZA (1.1.1.4.) zawiera oglne informacje dotyczce egzaminu maturalnego
z informatyki, w tym zakres sprawdzanych wiadomoci i umiejtnoci, krtk
charakterystyk arkusza egzaminacyjnego oraz sposobu oceniania odpowiedzi w zadaniach
zamknitych i otwartych.
CZ DRUGA zawiera przykadowe zadania z informatyki, jakie mog pojawi si
w arkuszach egzaminacyjnych w obu czciach egzaminu. Do kadego zadania:
przypisano najwaniejsze wymagania oglne i szczegowe z podstawy programowej
ksztacenia oglnego, do ktrych to zadanie si odnosi,
podano przykadowe rozwizania zada otwartych oraz odpowiedzi do zada
zamknitych.
Zadania w Informatorze:
nie wyczerpuj wszystkich typw zada, ktre mog wystpi w arkuszach
egzaminacyjnych,
nie ilustruj wszystkich wymaga z zakresu informatyki w podstawie programowej,
nie zawieraj wszystkich moliwych rodzajw materiaw rdowych, ktre mog
stanowi obudow zada.
Informator nie moe by zatem jedyn ani nawet gwn wskazwk do planowania procesu
ksztacenia w zakresie informatyki w szkole ponadgimnazjalnej. Tylko realizacja wszystkich
wymaga z podstawy programowej moe zapewni wszechstronne wyksztacenie uczniw
szk ponadgimnazjalnych.
Przed przystpieniem do dalszej lektury Informatora warto zapozna si z oglnymi zasadami
obowizujcymi na egzaminie maturalnym od roku szkolnego 2014/2015. S one okrelone
w rozporzdzeniu Ministra Edukacji Narodowej z dnia 30 kwietnia 2007 r. w sprawie
warunkw i sposobu oceniania, klasyfikowania i promowania uczniw i suchaczy oraz
sposobu przeprowadzania sprawdzianw i egzaminw w szkoach publicznych (Dz.U. nr 83,
poz. 562, z pn. zm.), w tym w szczeglnoci w rozporzdzeniu z 25 kwietnia 2013 r.
zmieniajcym powysze rozporzdzenie (Dz.U. z 2013 r., poz. 520), oraz w skrconej
formie w czci oglnej Informatora o egzaminie maturalnym od roku szkolnego
2014/2015, dostpnej na stronie internetowej Centralnej Komisji Egzaminacyjnej
(www.cke.edu.pl) oraz na stronach internetowych okrgowych komisji egzaminacyjnych.

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Opis egzaminu

1.

Opis egzaminu maturalnego z informatyki na poziomie rozszerzonym

1.1. Zakres wiadomoci i umiejtnoci sprawdzanych na egzaminie


Egzamin maturalny z informatyki sprawdza, w jakim stopniu absolwent spenia wymagania
z zakresu tego przedmiotu okrelone w podstawie programowej ksztacenia oglnego dla IV
etapu edukacyjnego w zakresie rozszerzonym i podstawowym. Poszczeglne zadania zestawu
egzaminacyjnego mog te odnosi si do wymaga przypisanych do etapw wczeniejszych,
tj. II (klasy 46 szkoy podstawowej) oraz III (gimnazjum).
Podstawa programowa dzieli wymagania na szczegowe i oglne. Wymagania szczegowe
nie s hasami odnoszcymi si do caociowych obszarw wiedzy, lecz odwouj si
do cile okrelonych wiadomoci i konkretnych umiejtnoci. Wymagania oglne, jako
syntetyczne ujcie nadrzdnych celw ksztacenia, stanowice odpowied na pytanie, po co
uczymy informatyki, informuj, jak rozumie podporzdkowane im wymagania szczegowe.
Sposb speniania wymaga szczegowych jest wartociowy tylko wtedy, gdy przyblia
osignicie celw zawartych w wymaganiach oglnych.
Zadania w arkuszu maturalnym z informatyki na poziomie rozszerzonym maj na celu
sprawdzenie w szczeglnoci:

znajomoci i umiejtnoci posugiwania si komputerem i jego oprogramowaniem oraz


korzystania z sieci komputerowych,
umiejtnoci wyszukiwania, gromadzenia, selekcjonowania, przetwarzania i wykorzystywania
informacji, zasad wsptworzenia zasobw w sieci, korzystania z rnych rde oraz znajomoci
sposobw zdobywania informacji,
znajomoci i umiejtnoci komunikowania si za pomoc komputera i technologii
informacyjno-komunikacyjnych,
umiejtnoci opracowywania informacji za pomoc komputera, w tym rysunkw, tekstw,
danych liczbowych, animacji, prezentacji multimedialnych i filmw,
umiejtnoci rozwizywania problemw i podejmowania decyzji z wykorzystaniem
komputera, stosowania podejcia algorytmicznego,
znajomoci i umiejtnoci stosowania podstawowych algorytmw.

W informatorze dla kadego zadania podano najwaniejsze wymagania oglne i szczegowe,


do ktrych to zadanie si odnosi, oraz zamieszczono przykadowe rozwizanie/rozwizania
wraz z komentarzem.
1.2. Oglne informacje o egzaminie maturalnym z informatyki od roku szkolnego
2014/2015
Od roku szkolnego 2014/20151 egzamin maturalny z informatyki moe by zdawany
wycznie jako przedmiot dodatkowy na poziomie rozszerzonym.
Egzamin ma form pisemn, trwa 210 minut i skada si z dwch czci:
a) cz pierwsza trwa 60 minut i polega na rozwizaniu zestawu zada bez korzystania
z komputera,
b) cz druga trwa 150 minut i polega na rozwizaniu zada przy uyciu komputera.

W przypadku absolwentw technikw od roku szkolnego 2015/2016.

10

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Do egzaminu z informatyki moe przystpi kady absolwent, niezalenie od typu szkoy,


do ktrej uczszcza, oraz od przedmiotw, ktrych uczy si w zakresie rozszerzonym.
W czasie trwania pierwszej czci egzaminu zdajcy moe korzysta z kalkulatora.
Wyniki czci pisemnej egzaminu maturalnego s wyraane w procentach i na skali
centylowej (por. punkt G. Ocenianie i wyniki egzaminu w CZCI OGLNEJ Informatora
o egzaminie maturalnym od roku szkolnego 2014/2015). Wyniki uzyskane w czci pisemnej
egzaminu maturalnego z informatyki podobnie jak z innych przedmiotw dodatkowych
nie maj wpywu na zdanie egzaminu maturalnego.2
1.3. Arkusz egzaminacyjny z informatyki na poziomie rozszerzonym
Arkusze egzaminacyjne do kadej czci egzaminu z informatyki bd zawieray okoo
4 zada. W drugiej czci egzaminu zdajcy bdzie pracowa na autonomicznym stanowisku
komputerowym i bdzie mg korzysta wycznie z programw i danych zapisanych
na dysku twardym oraz na innych nonikach stanowicych wyposaenie stanowiska lub
otrzymanych z arkuszem egzaminacyjnym. Przy numerze kadego zadania podana bdzie
maksymalna liczba punktw, ktr mona uzyska za poprawne jego rozwizanie.
Zadania w arkuszu egzaminacyjnym:
bd dobrane w taki sposb, aby reprezentoway rnorodne wymagania oglne
i szczegowe z podstawy programowej,
bd sprawdzay przede wszystkim umiejtnoci zoone, w tym np. umiejtno
informatycznego rozwizywania problemu, charakteryzujca si przestrzeganiem
kolejnoci etapw rozwizania: od projektowania do otrzymania rozwizania,
bd sprawdzay umiejtnoci rozwizywania postawionego problemu na podstawie
informacji przedstawionych w rnej formie oraz umiejtnoci ich przetwarzania
i analizowania,
bd zrnicowane pod wzgldem poziomu trudnoci oraz sposobu udzielania
odpowiedzi,
bd miay form zamknit lub otwart. W zadaniach zamknitych, np. wyboru
wielokrotnego, prawda / fasz, na dobieranie, zdajcy wybiera jedn z podanych opcji
odpowiedzi, natomiast w zadaniach otwartych tworzy odpowied samodzielnie.
W arkuszu bd przewaay zadania otwarte.
bd wystpoway pojedynczo lub w wizkach tematycznych,
bd odnosi si do rnorodnych materiaw rdowych zamieszczonych w arkuszu,
np. zwartych fragmentw artykuw popularnonaukowych, algorytmw, schematw, tabel
z danymi.
1.4. Ocenianie odpowiedzi zdajcych
Rozwizania poszczeglnych zada oceniane s na podstawie szczegowych kryteriw
oceniania, jednolitych w caym kraju. Egzaminatorzy w szczeglnoci zwracaj uwag
na poprawno merytoryczn rozwiza, kompletno i dokadno prezentacji rozwiza
zada, tworzonych dokumentw, zachowanie odpowiednich zasad w zapisie programw
i algorytmw. Ocenianiu podlegaj tylko te fragmenty pracy zdajcego, ktre dotycz
polecenia. Komentarze i rozwizania, nawet poprawne, nie majce zwizku z poleceniem
nie podlegaj ocenianiu.
2

Z wyjtkiem sytuacji, kiedy egzamin z informatyki by jedynym egzaminem z przedmiotu dodatkowego,


ktrego zdawanie zadeklarowa zdajcy, po czym nie przystpi do tego egzaminu lub egzamin ten zosta mu
uniewaniony.

Opis egzaminu

11

Za rozwizanie zadania, ktrego celem jest uoenie i napisanie algorytmu, zdajcy otrzymuje
pen liczb punktw tylko za poprawny i dziaajcy algorytm. W przypadku usterek,
np. niepoprawnej konstrukcji ptli, pominicia niektrych elementw w zliczaniu, bdw
w przeszukiwaniu tablicy, indeksowaniu przyznawana jest tylko cz punktw
(za poprawnie zapisane czynnoci wynikajce z treci zadania).
W zadaniach praktycznych, w drugiej czci egzaminu, oceniane s rzeczywiste efekty
i osignite rezultaty pracy zdajcego, np. wyniki oblicze w arkuszu kalkulacyjnym, wyniki
symulacji, odpowiedzi uzyskane za pomoc kwerend, wyniki uzyskane za pomoc programu
napisanego przez zdajcego. Dane do zada programistycznych mog by tak dobrane,
e uzyskanie wynikw dla danych duych rozmiarw bdzie wymaga zastosowania
w napisanym programie algorytmu o jak najmniejszej zoonoci.
Zdajcy w drugiej czci egzaminu, jako rozwizanie zadania, powinien przekaza do oceny
pliki zawierajce komputerow realizacj rozwizania/oblicze oraz pliki (najczciej
tekstowe) zawierajce odpowiedzi do zadania/zada.
Za cakowicie poprawne rozwizania zada, uwzgldniajce inny tok rozumowania ni
podany w kryteriach oceniania, przyznawana jest pena liczba punktw.
Gdy do jednego polecenia zdajcy podaje kilka rozwiza (prawidowe i bdne),
to egzaminator nie wybiera prawidowego rozwizania i nie przyznaje punktw.

12

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Przykadowe zadania z rozwizaniami

13

Przykadowe zadania z informatyki na poziomie rozszerzonym


wraz z rozwizaniami

2.

Zadania 112 zawieraj po cztery odpowiedzi, z ktrych kada jest albo prawdziwa, albo
faszywa. Zdecyduj, ktre z podanych odpowiedzi s prawdziwe (P), a ktre faszywe (F).
Zaznacz znakiem X odpowiedni rubryk w tabeli.
Zadanie 1. (01)
Dana jest tabela:
Sprawdzian
uczen
Abacki
Babacki
Cabacki
Dabacki

klasowka
45
50
100
80

egzamin
0
80
90
70

Dla powyszej tabeli utworzono nastpujce zapytanie w SQL:


SELECT uczen
FROM Sprawdzian
WHERE (klasowka > egzamin AND egzamin > 75) OR klasowka < 50

Wynikiem tego zapytania jest


P

Abacki, Babacki.
Babacki, Cabacki.
Abacki, Cabacki.
Abacki, Dabacki.

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

II. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, korzystanie
z rnych rde i sposobw zdobywania informacji.
Zdajcy:
2) stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych.
FFPF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

14

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 2. (01)
Liczba CB(16) jest rwna liczbie
P

1010101111(2).
313(8).
112011120(3).
203(10).

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

III. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
11) opisuje podstawowe algorytmy.
FPFP
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Zadanie 3. (01)
W grafice rastrowej
P

kady piksel ma jednoznacznie okrelony kolor.


obraz pamitany jest w postaci obiektw geometrycznych.
zalet jest skalowalno obrazu.
mog by zapisywane zdjcia z aparatu cyfrowego.

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

I. Bezpieczne posugiwanie si komputerem i jego


oprogramowaniem, wykorzystanie sieci komputerowej;
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych.
1. Posugiwanie si komputerem i jego oprogramowaniem,
korzystanie z sieci komputerowej.
Zdajcy:
1) przedstawia sposoby reprezentowania rnych form
informacji w komputerze: liczb, znakw, obrazw, animacji,
dwikw.
PFFP
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Przykadowe zadania z rozwizaniami

15

Zadanie 4. (01)
Do szyfrowania informacji suy
P

algorytm RSA.
metoda bisekcji.
PGP.
algorytm Huffmana.

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

III. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
11) opisuje podstawowe algorytmy.
PFPF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Zadanie 5. (01)
Dynamicznym przydzielaniem numerw IP w sieci zajmuje si serwer
P
DNS.
DHCP.
SMTP.
FTP.

Wymagania oglne

Wymagania szczegowe
Rozwizanie
Schemat punktowania

I. Bezpieczne posugiwanie si komputerem i jego


oprogramowaniem, wykorzystanie sieci komputerowej;
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych.
1. Posugiwanie si komputerem i jego oprogramowaniem,
korzystanie z sieci komputerowej.
Zdajcy:
3) prawidowo posuguje si terminologi sieciow.
FPFF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

16

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 6. (01)
Dane: n liczba naturalna wiksza od zera
Funkcja K(n)
1. dla n 4 wynikiem jest 1
2. dla n 4 wynikiem jest K(n1) K(n3)
Dla funkcji K zachodzi
P

dla kadego n>4 zachodzi K(n)<0.


K(2) > K(5).
K(10) = 3.
funkcja jest niemalejca.

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

III. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
16) opisuje waciwoci algorytmw na podstawie ich analizy.
FPPF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Zadanie 7. (01)
Rozwa poniszy algorytm, gdzie n jest liczb cakowit nieujemn.
(1) wynik 0;
(2) dopki n 0 wykonuj
(3)
wynikwynik + (n mod 10)
(4)
nn div 10
gdzie: mod to operator reszty z dzielenia,
div to operator dzielenia cakowitego.
Dla podanego algorytmu zachodzi
P
dla n = 36789 wynik = 30.
dla n = 11111111 wynik = 8.
wynik jest rwny sumie cyfr w zapisie dziesitnym liczby n.
dla n = 1234 zmienna wynik w kolejnych iteracjach przyjmuje wartoci
1,3,6,10.

Przykadowe zadania z rozwizaniami

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

17

III. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
16) opisuje waciwoci algorytmw na podstawie ich analizy.
FPPF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Zadanie 8. (01)
Rozwa poniszy algorytm, gdzie n jest liczb cakowit nieujemn, a[0..n] jest tablic liczb
cakowitych, z liczb rzeczywist.
(1) in;y a[n];
(2) dopki i 0 wykonuj
(3)
ii1
(4)
yy*z + a[i]
Algorytm ten przedstawia realizacj
P
obliczania wartoci wielomianu dla danej wartoci z.
obliczenia NWW dla n liczb naturalnych.
obliczenia NWD dla n liczb naturalnych.
schematu Hornera.

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

III. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
11) opisuje podstawowe algorytmy.
PFFP
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

18

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 9. (01)
Program komputerowy na licencji freeware mona
P

rozpowszechnia, jednak z zachowaniem informacji o autorze.


wykorzysta do tworzenia nowych programw przez wprowadzanie w nim
zmian.
stosowa do oblicze.
sprzedawa.
Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

V. Ocena zagroe i ogranicze, docenianie spoecznych


aspektw rozwoju i zastosowa informatyki.
7. Wykorzystywanie komputera i technologii informacyjnokomunikacyjnych do rozwijania zainteresowa, opisywanie
zastosowa informatyki, ocena zagroe i ogranicze, aspekty
spoeczne rozwoju i zastosowa informatyki.
Zdajcy:
3) stosuje normy etyczne i prawne zwizane
z rozpowszechnianiem programw komputerowych,
bezpieczestwem i ochron danych oraz informacji
w komputerze i w sieciach komputerowych.
PFPF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Zadanie 10. (01)


Zgodnie z przepisami prawa autorskiego dozwolone jest
P

publikowanie pod wasnym nazwiskiem, na swojej stronie WWW,


skopiowanych zasobw internetowych (zdj i artykuw).
zamieszczanie na wasnej stronie linkw do innych stron WWW.
zamieszczanie na wasnej stronie cudzych programw na licencji freeware.
zamieszczenie na stronie internetowej treci utworw, do ktrych wygasy
majtkowe prawa autorskie.
Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

V. Ocena zagroe i ogranicze, docenianie spoecznych


aspektw rozwoju i zastosowa informatyki.
7. Wykorzystywanie komputera i technologii informacyjnokomunikacyjnych do rozwijania zainteresowa, opisywanie
zastosowa informatyki, ocena zagroe i ogranicze, aspekty
spoeczne rozwoju i zastosowa informatyki.
Zdajcy:
3) stosuje normy etyczne i prawne zwizane
z rozpowszechnianiem programw komputerowych,
bezpieczestwem i ochron danych oraz informacji
w komputerze i w sieciach komputerowych.
FPPP
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Przykadowe zadania z rozwizaniami

19

Zadanie 11. (01)


Do jednoznacznej identyfikacji osoby podpisujcej cyfrowy dokument suy
P

podpis elektroniczny.
wpisanie imienia i nazwiska.
zaszyfrowanie dokumentu.
wstawienie zeskanowanego podpisu autora.
Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

V. Ocena zagroe i ogranicze, docenianie spoecznych


aspektw rozwoju i zastosowa informatyki.
7. Wykorzystywanie komputera i technologii informacyjnokomunikacyjnych do rozwijania zainteresowa, opisywanie
zastosowa informatyki, ocena zagroe i ogranicze, aspekty
spoeczne rozwoju i zastosowa informatyki.
Zdajcy:
3) stosuje normy etyczne i prawne zwizane
z rozpowszechnianiem programw komputerowych,
bezpieczestwem i ochron danych oraz informacji
w komputerze i w sieciach komputerowych.
PFFF
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

Zadanie 12. (01)


Algorytmem sortowania przez porwnania jest
P
sortowanie przez wybr.
sortowanie kubekowe.
sortowanie przez wstawianie.
sortowanie szybkie.

Wymagania oglne

Wymagania szczegowe

Rozwizanie
Schemat punktowania

III. Rozwizywanie problemw i podejmowanie decyzji


z wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
11) opisuje podstawowe algorytmy.
PFPP
1 pkt poprawne zaznaczenie wszystkich odpowiedzi.
0 pkt bdne zaznaczenia lub ich brak.

20

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 13. Zapisy binarne (07)


W tym zadaniu badamy zapisy binarne dodatnich liczb cakowitych. Rozwaamy nastpujcy
algorytm:
Specyfikacja
Dane: dodatnia liczba cakowita n
Wynik: dodatnia liczba cakowita j rwna ..
(1) j 0;
(2) powtarzaj
(3)
jeli n mod 2 = 1, to
(4)
jj+1;
(5)
nn div 2;
(6) a n = 0;
Uwaga: uyte operatory mod i div oznaczaj odpowiednio reszt z dzielenia i dzielenie
cakowite. Na przykad 5 mod 2 = 1, 5 div 2 = 2, 6 mod 2 = 0, 6 div 2 = 3.
a)

Przeanalizuj powyszy algorytm i podaj wartoci zmiennej j po zakoczeniu jego


dziaania dla n = 183 oraz dla n = 1022. Uzupenij brakujcy fragment specyfikacji.
n

183
1022
Miejsce na obliczenia.

b) U algorytm i zapisz go w wybranej przez siebie notacji (lista krokw lub jzyk
programowania, ktry wybrae na egzamin), ktry dla danej dodatniej liczby cakowitej
n oblicza maksymaln liczb kolejnych jedynek pojawiajcych si w zapisie binarnym tej
liczby.
Specyfikacja
Dane: dodatnia liczba cakowita n
Wynik: dodatnia liczba cakowita m maksymalna liczba kolejnych jedynek w zapisie
binarnym n
Przykad: dla n = 187 wynikiem jest m = 3, poniewa 187 = (10111011)2

Przykadowe zadania z rozwizaniami

21

Algorytm

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu,
4) dobiera efektywny algorytm do rozwizania
sytuacji problemowej i zapisuje go w wybranej
notacji,
5) posuguje si podstawowymi technikami
algorytmicznymi,
11) opisuje podstawowe algorytmy,
12) projektuje rozwizanie problemu (realizacj
algorytmu) i dobiera odpowiedni struktur danych.

22

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Schemat punktowania

Podpunkt

Liczba
punktw
za
podpunkt

Czynno

Za kad poprawn odpowied 1 punkt.

Za poprawny algorytm 4 punkty.


W przypadku niepoprawnego algorytmu:
za prawidowe wyznaczanie maksimum dugoci
blokw jedynek 1 punkt.
za prawidowe wyznaczanie dugoci blokw
jedynek 1 punkt.

Liczba
punktw
za
zadanie

Zadanie 13. Zapisy binarne (07) rozwizanie

W tym zadaniu badamy zapisy binarne dodatnich liczb cakowitych. Rozwaamy nastpujcy
algorytm:
Specyfikacja
Dane: dodatnia liczba cakowita n
Wynik: dodatnia liczba cakowita j rwna liczbie jedynek w zapisie binarnym liczby n
(1) j 0;
(2) powtarzaj
(3)
jeli n mod 2 = 1, to
(4)
jj+1;
(5)
n :n div 2;
(6) a n = 0;
Uwaga: uyte operatory mod i div oznaczaj odpowiednio reszt z dzielenia i dzielenie
cakowite, np. 5 mod 2 = 1, 5 div 2 = 2, 6 mod 2 = 0, 6 div 2 = 3.
a) Przeanalizuj powyszy algorytm i podaj wartoci zmiennej j po zakoczeniu jego
dziaania dla n = 183 oraz dla n = 1022. Uzupenij brakujcy fragment specyfikacji.
n

183

1022

Miejsce na obliczenia.
183 = (10110111)2
1022 = (1111111110)2

Przykadowe zadania z rozwizaniami

23

b) U algorytm i zapisz go w wybranej przez siebie notacji (lista krokw lub jzyk
programowania, ktry wybrae na egzamin), ktry dla danej dodatniej liczby cakowitej
n oblicza maksymaln liczb kolejnych jedynek pojawiajcych si w zapisie binarnym tej
liczby.
Specyfikacja
Dane: dodatnia liczba cakowita n
Wynik: dodatnia liczba cakowita m maksymalna liczba kolejnych jedynek w zapisie
binarnym n
Przykad: dla n = 187 wynikiem jest m = 3, poniewa 187 = (10111011)2
Algorytm
Kady cig kolejnych jedynek w zapisie binarnym liczby, ktry nie mona ju wyduy,
nazywamy blokiem. W zapisie binarnym liczby 187 mamy trzy bloki jedynek o dugociach
jeden, trzy i dwa: (10111011)2. Naszym celem jest policzenie dugoci najduszego bloku.
Modyfikujemy algorytm z podpunktu a), wyznaczajc kolejne cyfry liczby n, od cyfr najmniej
znaczcych do cyfr najbardziej znaczcych. W momencie wykrycia bloku (pierwszej jedynki
w tym bloku) rozpoczynamy zliczanie jedynek w nim zawartych, a w zapisie binarnym
napotkamy zero lub wyznaczymy ju wszystkie cyfry zapisu. Po przetworzeniu bloku
porwnujemy jego dugo z dugoci dotychczas najduszego bloku i jeli policzona
dugo jest wiksza od dotychczas najwikszej, aktualizujemy informacj o dugoci
najduszego bloku.
Oto zapis opisanego sowami algorytmu:
(1) m 0;
(2) powtarzaj
// m dugo dotychczas najduszego bloku
(3)
jeli n mod 2 = 1, to
// nowy blok
(4)
dl_bloku 0; // tu zliczamy liczb jedynek w bloku
(5)
powtarzaj
(6)
dl_blokudl_bloku + 1;
(7)
n n div 2;
(8)
a n mod 2 = 0;
(9)
jeli dl_bloku >m, to
(10)
m dl_bloku;
(11) nn div 2;
(12) a n = 0;
Komentarz
Podpunkt a) w tym zadaniu nie powinien sprawi adnych trudnoci. Przedstawiony w nim
algorytm jest typowym szkolnym algorytmem wyznaczania kolejnych cyfr dodatniej liczby
cakowitej w jej zapisie binarnym, poczynajc od cyfry najmniej znaczcej, a koczc na
cyfrze najbardziej znaczcej. Warto zauway, e w ten sam sposb mona wyznaczy cyfry
w zapisie pozycyjnym przy dowolnej podstawie p, 2 p 10. Wystarczy wykonywa

24

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

operacje dzielenia cakowitego i brania reszty z dzielenia z parametrem p zamiast 2. Dla


liczby naturalnej n, n mod p jest najmniej znaczc cyfr w zapisie pozycyjnym liczby n przy
podstawie p. Dla przykadu 187 mod 10 = 7, 187 mod 2 = 1. Jeli najmniej znaczc cyfr
w zapisie przy podstawie p liczby n jest cyfra c, to n = np + c, dla pewnej liczby naturalnej
n. Wwczas n div p = n i kolejna cyfr w zapisie n jest najmniej znaczca cyfra w zapisie
n. Te wasnoci wanie wykorzystano w algorytmie z podpunktu a).
W punkcie b), oprcz wyznaczania cyfr liczby n, naley zlicza jedynki w blokach kolejnych
jedynek. Tutaj najpierw trzeba wykry blok. To jest proste blok rozpoczyna si od jedynki.
Nastpnie naley zlicza w ptli kolejne napotkane jedynki, a pojawi si zero. Tak
naprawd w tym celu wykorzystujemy ptl z algorytmu w punkcie a). Tak wic cay
algorytm skada si z dwch zagniedonych ptli, ktrych struktury s podobne do ptli
z punktu a).
Mona sobie wyobrazi inne rozwizanie. W tym nowym rozwizaniu zliczamy jedynki za
kadym razem od momentu pojawienia si pierwszej jedynki w bloku. Pojawienie si zera
powoduje wyzerowanie licznika jedynek. Oto formalny zapis tego algorytmu:
(1) m 0;
(2) dl_bloku 0;
(3) dopki n 0 wykonuj
(4)
jeli n mod 2 = 1 to
(5)
dl_blokudl_bloku + 1;
(6)
w przeciwnym wypadku
(7)
jeli dl_bloku >m to
(8)
m := dl_bloku;
(9)
dl_bloku 0;
(10) n n div 2;

Przykadowe zadania z rozwizaniami

25

Zadanie 14. Fani (09)

Fani spotykaj si z ulubionymi gwiazdami filmowymi w sali, ktrej podoga ma ksztat


kwadratu. Podog podzielono pionowymi i poziomymi liniami na mniejsze kwadraty
rozmiaru 1x1. Zaproszona gwiazda zawsze siada w rodku sali. Fani zajmuj miejsca w sali
na przeciciach linii. Jedno miejsce moe zaj co najwyej jedna osoba.
Po wejciu na sal wypeniaj oni kolejno strefy zaznaczone na Rys.2. kwadratami, kad
stref maksymalnie, jak si da. Fani zajmuj tylko te miejsca, z ktrych gwiazda jest
widoczna, co oznacza, e na odcinku czcym ich miejsce z miejscem zajmowanym przez
gwiazd nie ma adnej innej osoby. Na potrzeby zadania fanw i gwiazd utosamiamy
z punktami, ktre zajmuj. Na Rys. 1. przedstawione jest przykadowe rozmieszczenie
wszystkich osb zgodnie z opisem. Na Rys. 2. pokazany jest przykadowe cakowite
wypenienie sali w 3 strefach. Jak wida w I strefie zasidzie 8 fanw, w II strefie 8, a w III
a 16.
14.1 Uzupenij ponisz tabel
Strefa
I
II
III
IV
V
VI

Maksymalna liczba
fanw w kwadracie
8
16
32

Przyrost fanw w stosunku


do poprzedniego poziomu
8
16

26

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

14.2 Potraktuj sal (Rys. 1.) jako ukad kartezjaski, przyjmujc pozycj gwiazdy jako punkt
(0,0), a pozycje fanw jako punkty kratowe o okrelonych wsprzdnych (x,y),
odpowiedz na pytania:
a) W ktrej strefie znajduje si pozycja o wsprzdnych (1718)?
.....
b) Podaj dwie pozycje, najbliej pooone wzgldem pozycji (4,3), zasaniane przez
fana stojcego na tej pozycji.
.....
c) Podaj wsprzdne dwch miejsc, ktrych zajcie przez fanw uniemoliwi
ogldanie gwiazdy przez fana znajdujcego si w polu (8; 12).
.....
d) Czy fan moe stan na kadej pozycji, ktrej jedna ze wsprzdnych jest rwna 1?
.....
e) Czy fan moe stan w miejscu o wsprzdnych (13; 39)? Odpowied uzasadnij.
.....
14.3 Zapisz algorytm (w postaci listy krokw, schematu blokowego lub w wybranym jzyku
programowania) sprawdzajcy, czy fan moe stan w miejscu o danych wsprzdnych
(x,y).
Specyfikacja
Dane: x,y liczby cakowite okrelajce pooenie fana wzgldem gwiazdy
Wynik: Komunikat TAK, jeeli fan widzi gwiazd lub komunikat NIE, jeeli fan gwiazdy nie
widzi.

Przykadowe zadania z rozwizaniami

27

Algorytm

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje
problemowe z rnych dziedzin,
5) posuguje si podstawowymi technikami
algorytmicznymi,
6) ocenia wasnoci rozwizania algorytmicznego
(komputerowego), np. zgodno ze specyfikacj,
efektywno dziaania,
11) opisuje podstawowe algorytmy.

28

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Schemat punktowania
Nr
podpunktu
14.1.
14.2.
14.3.

Czynno
Za poprawn uzupenienie tabeli 3 punkty.
Za poprawnie uzupenienie kadego wiersza 1 punkt.
Za poprawne podanie odpowiedzi do kadego
podpunktu 1 punkt; razem 4 punkty.
Za poprawny algorytm 2 punkty.
W przypadku algorytmu z bdnymi warunkami
brzegowymi 1 punkt.

Liczba
punktw
za
podpunkt

Liczba
punktw
za
zadanie

3
4

Zadanie 14. Fani (09) rozwizanie

Fani spotykaj si z ulubionymi gwiazdami filmowymi w sali, ktrej podoga ma ksztat


kwadratu. Podog podzielono pionowymi i poziomymi liniami na mniejsze kwadraty rozmiaru
1x1. Zaproszona gwiazda zawsze siada w rodku sali. Fani zajmuj miejsca w sali na
przeciciach linii. Jedno miejsce moe zaj co najwyej jedna osoba.
Po wejciu na sal wypeniaj oni kolejno strefy zaznaczone na Rys. 2. kwadratami, kad
stref maksymalnie, jak si da. Fani zajmuj tylko te miejsca, z ktrych gwiazda jest widoczna,
co oznacza, e na odcinku czcym ich miejsce z miejscem zajmowanym przez gwiazd nie ma
adnej innej osoby. Na potrzeby zadania fanw i gwiazd utosamiamy z punktami, ktre
zajmuj. Na Rys. 1. przedstawione jest przykadowe rozmieszczenie wszystkich osb zgodnie
z opisem. Na Rys. 2. pokazany jest przykadowe cakowite wypenienie sali w 3 strefach. Jak
wida w I strefie zasidzie 8 fanw, w II strefie 8, a w III a 16.

Przykadowe zadania z rozwizaniami

29

14.1. Uzupenij ponisz tabel


Strefa
I
II
III
IV
V
VI

Maksymalna liczba
fanw w kwadracie
8
16
32
48
80
96

Przyrost fanw w stosunku


do poprzedniego poziomu
8
16
16
32
16

14.2.Traktujc sal (Rys.1.) jako ukad kartezjaski, przyjmujc pozycj gwiazdy jako punkt
(0,0), a pozycje fanw jako punkty kratowe o okrelonych wsprzdnych (x,y) odpowied
na pytania:
a) W ktrej strefie znajduje si pozycja o wsprzdnych (17; 18)?
XVIII(max z |x| lub |y|)
b) Podaj dwie pozycje, najbliej pooone wzgldem pozycji (4,3), zasaniane przez fana
stojcego na tej pozycji.
(8; 6) oraz (12; 9)
c) Podaj wsprzdne dwch miejsc, ktrych zajcie przez fanw uniemoliwi ogldanie
gwiazdy przez fana znajdujcego si w polu (8; 12).
(2; 3) oraz (4; 6)
d) Czy fan moe stan w kadym punkcie, ktrego jedna ze wsprzdnych jest rwna 1?
TAK
e) Czy fan moe stan w miejscu o wsprzdnych (13; 39)? Odpowied uzasadnij.
NIE. Wsprzdne x i y fana musz by liczbami wzgldnie pierwszymi.
14.3.Zapisz algorytm (w postaci listy krokw, schematu blokowego lub w wybranym jzyku
programowania) sprawdzajcy, czy fan moe stan w miejscu o danych wsprzdnych
(x,y).
Specyfikacja
Dane: x,y liczby cakowite okrelajce pooenie fana wzgldem gwiazdy
Wynik: komunikat TAK, jeeli fan widzi gwiazd lub komunikat NIE jeeli fan gwiazdy nie
widzi
Algorytm
Poniej zamieszczony jest algorytm zapisany w jzyku programowania C:
int nwd(int a, int b)
{ while (a != b)
if (a > b) a -= b; else b -=a;
return a;
}
int main()
{
cin>>x>>y;

30

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

if (x<0)x=-x; if(y<0)y=-y; //sprowadzenie problemu do liczb


//nieujemnych
if (((x==0)&&(y==0))cout<<NIE; else
if ((x==0)&&(y!=1)||(x!=1)&&(y==0))) cout<<NIE; else
if (((x==0)&&(y==1))||((y==0)&&(x==1))) cout<<TAK;else
if (nwd(x,y)==1) cout<<TAK; else
cout<<NIE;
}

Komentarz
Kluczem do poprawnego sformuowania algorytmu jest spostrzeenie, e fani mog zaj tylko
te punkty kratowe o wsprzdnych (x, y) , ktre nie zostan przesonite przez aden inny punkt
kratowy. Inaczej, na odcinku, czcym punkt (0, 0) i punkt kratowy (x, y), ktry ma zaj fan,
nie moe wystpi aden inny punkt o wsprzdnych cakowitych. Punktami speniajcymi ten
warunek s punkty, ktrych NWD(x, y)=1, czyli takie, ktrych wsprzdne s liczbami
wzgldnie pierwszymi. Dlaczego? Gdyby wsprzdne (x, y) nie byy wzgldnie pierwsze, to
znaczyoby, e na wymienionym odcinku musiaby si znale punkt o wsprzdnych
cakowitych (x / NWD(x, y), y/ NWD(x, y)), ktry zasaniaby gwiazd.
Dla uproszczenia algorytmu mona sprowadzi warunki zadania do przypadku, gdy x> 0
i y>0, poniewa NWD(x,y)=NWD(|x|,|y|). Jeeli ktrakolwiek wsprzdna jest rwna zero, to
mona wykorzysta fakt, e NWD(x, 0)=|x|.
Punkt 14.1 oraz 14.2 z podpunktami od a) do e) pomagaj w analizie problemu przed
sformuowaniem i zapisaniem algorytmu. Po poprawnym uzasadnieniu odpowiedzi z punktu
14.2.e) zapisanie algorytmu nie powinno przysporzy trudnoci zdajcym.

Przykadowe zadania z rozwizaniami

31

Zadanie 15. Sortowanie (06)


W tym zadaniu rozwaamy algorytmy sortujce niemalejco n-elementow tablic liczb
cakowitych a[1..n], gdzie n jest dodatni liczb cakowit. Algorytm sortowania nazywamy
lokalnym, gdy podczas sortowania mona porwnywa i zamienia ze sob tylko ssiednie
elementy tablicy. Na przykad dopuszczalne jest porwnanie i zamiana elementw a[5] i a[6],
natomiast nie mona bezporednio porwnywa i zamienia ze sob elementw a[5] i a[7].
a) Ktre z nastpujcych algorytmw sortowania s algorytmami lokalnymi: bbelkowy,
przez wstawianie liniowe, szybki? Udziel odpowiedzi wpisujc sowa TAK lub NIE
w prawej kolumnie tabeli poniej.
Algorytm

Czy jest lokalny?

Bbelkowy
Przez wstawianie liniowe
Szybki
b) Dla tablicy a[1..4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona
dokadnie 4 zamiany ssiednich elementw: (3 z 2), (4 z 1), (3 z 1), (2 z 1). Uzupenij luki
w podanych poniej tablicach rnymi liczbami cakowitymi tak, aby algorytm
sortowania przez wstawianie liniowe wykona na kadej z nich dokadnie 11 zamian
ssiednich elementw.
Tablica 1.
Pozycja

Zawarto

10

Pozycja

Zawarto

10

10

Tablica 2.
8

c) Zamy teraz, e w jednym kroku moemy posortowa blok kolejnych elementw


tablicy duszy ni 2. Na przykad gdybymy mogli sortowa bloki o dugociach
do 9 elementw, wwczas tablic 10-elementow mona by posortowa w trzech
krokach: najpierw w jednym kroku sortujemy ostatnie 9 elementw. W nastpnym kroku
sortujemy pierwsze 9 elementw. Teraz wiemy, e element najmniejszy jest ju na swojej,
czyli pierwszej, pozycji w tablicy. Jeszcze jedno sortowanie ostatnich 9 elementw
koczy sortowanie caego cigu. Oznaczmy przez Sort(i,j) sortowanie w jednym kroku
bloku kolejnych elementw z pozycji od i do j. Wwczas powysze sortowanie mona
zapisa w nastpujcy sposb:
(1) Sort(2,10);
(2) Sort(1,9);
(3) Sort(2,10);

32

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Przykad:
Pocztkowa zawarto tablicy:
a = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]
Sortowanie ostatnich 9 elementw (Sort(2,10)):
a = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Sortowanie pierwszych 9 elementw (Sort(1,9)):
a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]
Sortowanie ostatnich 9 elementw (Sort(2,10)):
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Zapisz algorytm sortowania tablicy 1000-elementowej w co najwyej 6 krokach, przy
zaoeniu, e w jednym kroku mona posortowa blok zoony z co najwyej 500 elementw.
Kolejne kroki algorytmu:
1.
2.
3.
4.
5.
6.

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu,
5) posuguje si podstawowymi technikami
algorytmicznymi,
11) opisuje podstawowe algorytmy,
16) opisuje wasnoci algorytmw na podstawie ich
analizy.

Przykadowe zadania z rozwizaniami

33

Schemat punktowania
Podpunkt

Liczba
punktw
za
podpunkt

Czynno
Za poprawne uzupenienie wszystkich wierszy tabeli
1 punkt.
Za poprawne uzupenienie pierwszej tabeli (pozycja 4
3, pozycja 8 9) 1 punkt.
Za poprawne uzupenienie drugiej tabeli (10,9,8,7,6)
1 punkt.
Za poprawny algorytm 3 punkty.
W przypadku bdnego algorytmu:
ustawienie minimum na pierwszej pozycji 1 punkt.
ustawienie maksimum na ostatniej pozycji 1 punkt.

Liczba
punktw
za
zadanie

2
6

Zadanie 15. Sortowanie (06) rozwizanie


W tym zadaniu rozwaamy algorytmy sortujce niemalejco n-elementow tablic liczb
cakowitych a[1..n], gdzie n jest dodatni liczb cakowit. Algorytm sortowania nazywamy
lokalnym, gdy podczas sortowania mona porwnywa i zamienia ze sob tylko ssiednie
elementy tablicy.
Na przykad dopuszczalne jest porwnanie i zamiana elementw a[5] i a[6], natomiast nie
mona bezporednio porwnywa i zamienia ze sob elementw a[5] i a[7].
a) Ktre z nastpujcych algorytmw sortowania s algorytmami lokalnymi: bbelkowy,
przez wstawianie liniowe, szybki? Udziel odpowiedzi wpisujc sowa TAK lub NIE
w prawej kolumnie tabeli poniej:
Algorytm
Bbelkowy
Przez wstawianie liniowe
Szybki

Czy jest lokalny?


TAK
TAK
NIE

b) Dla tablicy a[1..4] = [3,2,4,1] algorytm sortowania przez wstawianie liniowe wykona
dokadnie 4 zamiany ssiednich elementw. Uzupenij luki w podanych poniej tablicach
rnymi liczbami cakowitymi tak, aby algorytm sortowania przez wstawianie liniowe
wykona na kadej z nich dokadnie 11 zamian ssiednich elementw.
Tablica 1.
Pozycja
Zawarto

1
10

2
1

3
2

4
3

5
4

6
5

7
6

8
9

9
7

10
8

Tablica 2.
Pozycja
Zawarto

1
1

2
2

3
3

4
5

5
4

6
10

7
9

8
8

9
7

10
6

c) Zamy teraz, e w jednym kroku moemy posortowa blok kolejnych elementw


tablicy duszy ni 2. Na przykad, gdybymy mogli sortowa bloki o dugociach do
9 elementw, wwczas tablic 10-elementow mona by posortowa w trzech krokach:

34

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

najpierw w jednym kroku sortujemy ostatnie 9 elementw. W nastpnym kroku


sortujemy pierwsze 9 elementw. Teraz wiemy, e element najmniejszy jest ju na
swojej, czyli pierwszej pozycji w tablicy. Jeszcze jedno sortowanie ostatnich
9 elementw koczy sortowanie caego cigu. Oznaczmy przez Sort(i,j) sortowanie
w jednym kroku bloku kolejnych elementw z pozycji od i do j. Wwczas powysze
sortowanie mona zapisa w nastpujcy sposb:
(4) Sort(2,10);
(5) Sort(1,9);
(6) Sort(2,10);
Przykad:
Pocztkowa zawarto tablicy:
a = [10, 2, 8, 4, 6, 5, 7, 9, 3, 1]
Sortowanie ostatnich 9 elementw (Sort(2,10)):
a = [10, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Sortowanie pierwszych 9 elementw (Sort(1,9)):
a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]
Sortowanie ostatnich 9 elementw (Sort(2,10)):
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
Zapisz algorytm sortowania tablicy 1000-elementowej w co najwyej 6 krokach, przy
zaoeniu, e w jednym kroku mona posortowa blok zoony z co najwyej 500
elementw.
Kolejne kroki algorytmu:
1.
2.
3.
4.
5.
6.

Sort(1,500)
Sort(251,750)
Sort(501,1000)
Sort(1,500)
Sort(251,750)
Sort(1,500)

Komentarz
To zadanie sprawdza rozumienie zasad dziaania podstawowych algorytmw sortowania.
Wszystkie trzy algorytmy wymienione w punkcie a), to algorytmy sortujce polegajce na
porwnywaniu wartoci elementw znajdujcych si na rnych pozycjach w tablicy
a i zamianie ich miejscami, jeli element o wikszej wartoci poprzedza w tablicy element
o mniejszej wartoci. W algorytmach sortowania, bbelkowym i przez wstawianie liniowe,
porwnywane i zamieniane s tylko pary ssiednich elementw w tablicy. Tak nie jest
w algorytmie szybkim, poniewa w przeciwnym razie stracilibymy walor szybkoci.
eby rozwiza punkt b) zastanwmy si, ile zamian wykonamy sortujc algorytmem przez
wstawianie tablic a[1..n] o zadanej zawartoci. Oznaczmy przez b[i] liczb elementw
w tablicy a znajdujcych si na pozycjach o indeksach mniejszych od i, ale o wartociach
wikszych od wartoci elementu a[i]. Nietrudno zauway, e podczas wstawiania elementu
a[i] do uporzdkowanego ju fragmentu tablicy a[1..i-1], zostanie on zamieniony ze
wszystkimi elementami o wartociach wikszych, a jest ich dokadnie b[i]. Zatem czna
liczba zamian wykonywanych w algorytmie sortowania przez wstawianie tablicy a wyniesie
b[1]+b[2]+ +b[n]. Poniej pokazujemy zawarto tablicy b dla przykadw z punktu b).

Przykadowe zadania z rozwizaniami

35

Tablica 1.
pozycja
Zawarto
tablica b

1
10
0

2
1
1

3
2
1

4
3
1

5
4
1

6
5
1

7
6
1

8
9
1

9
7
2

10
8
2

1
1
0

2
2
0

3
3
0

4
5
0

5
4
1

6
10
0

7
9
1

8
8
2

9
7
3

10
6
4

Tablica 2.
pozycja
zawarto
tablica b

Do rozwizania punktu c) moemy zaadoptowa algorytm sortowania bbelkowego. Gdyby


tablica a liczya tylko cztery elementy, to do jej posortowania wystarczy (i potrzeba) 6
wywoa procedury Sort:
Sort(1,2), Sort(2,3), Sort(3,4), Sort(1,2), Sort(2,3), Sort(1,2).
Po trzech pierwszych wywoaniach Sort element o najwikszej wartoci znajdzie si ju na
swojej docelowej pozycji nr 4. Dwa nastpne wywoania zagwarantuj, e na pozycji nr 3
w a znajdzie si element drugi, liczc od najwikszego. Ostatnie wywoanie Sort porzdkuje
dwa najmniejsze elementy i ustawia je na waciwych, dwch pierwszych pozycjach w tablicy
a. Podobnie dzieje si w zaproponowanym rozwizaniu sortowania tablicy 1000
elementowej. Pierwsze trzy wywoania Sort gwarantuj umieszczenie 250 najwikszych
elementw na ich docelowych pozycjach. Kolejne dwa wywoania Sort umieszczaj
w dobrym porzdku, na docelowych pozycjach od 501 do 750, kolejne 250 elementw.
Ostatnie sortowanie porzdkuje pierwszych 500 najmniejszych elementw. Alternatywne
rozwizanie mogoby polega na zaadaptowaniu sortowania przez wstawianie, kiedy to
wstawiamy bloki po 250 elementw:
Sort(1,500), Sort(251,750), Sort(1,500), Sort(501,1000), Sort(251,750), Sort(1,500).

36

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 16. Miejsce zerowe (06)


Przedstawiona poniej rekurencyjna funkcja Mzer znajduje metod bisekcji miejsce zerowe
funkcji f , cigej w przedziale a, b , z dokadnoci do

[epsilon].
2

Specyfikacja
Dane: liczby a i b takie, e a b oraz f a f b 0
liczba 0
Wynik: liczba rzeczywista x z przedziau a, b taka, e f x 0 dla pewnego takiego,
e


2
2

Funkcja Mzer a, b,
1. jeeli b a , to wykonaj:
a. s a b / 2
b. jeeli f s 0 , to podaj s jako wynik
c. jeeli f a f s 0 , to podaj Mzer a, s, jako wynik
w przeciwnym przypadku podaj Mzer s, b, jako wynik
2. w przeciwnym przypadku podaj a b / 2 jako wynik
a)

Poniej prezentujemy fragment wykresu funkcji f , dla ktrej wywoujemy funkcj Mzer:
Wykres funkcji f w przedziale <0,128>
100
80
60
40
20
0
0
-20
-40

10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125

Przykadowe zadania z rozwizaniami

37

Wykres przecina o OX w punkcie 72,7. Zamy, e funkcja Mzer zostaa wywoana


dla a 0 i b 128 . W poniszej tabelce podaj liczb kolejnych rekurencyjnych wywoa
funkcji Mzer przy podanych poniej pocztkowych wartociach .

10
32
25
5
1
5

liczba wywoa Mzer


4

Miejsce na obliczenia

b)

Poniej prezentujemy zapis algorytmu opisanego funkcj Mzer w postaci


nierekurencyjnej. Zapis poniszego algorytmu jest niepeny, uzupenij brakujce
elementy tak, aby realizowa t sam metod poszukiwania miejsca zerowego, ktr
opisuje funkcja Mzer.

Algorytm:

1. dopki b a wykonuj
a) s .............................
b) jeeli f s 0 , to podaj s jako wynik i zakocz wykonywanie algorytmu
c) jeeli f a f s 0 , to b ....................
w przeciwnym przypadku .............................
2. podaj a b / 2 jako wynik

38

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu,
5) posuguje si podstawowymi technikami
algorytmicznymi,
9) stosuje rekurencj w prostych sytuacjach
problemowych,
11) opisuje podstawowe algorytmy.

Wymagania oglne

Wymagania szczegowe

Schemat punktowania

Podpunkt

a
b

Liczba
punktw
za
podpunkt

Czynno
Za wszystkie poprawne odpowiedzi 3 punkty.
Za trzy poprawne odpowiedzi 2 punkty.
Za dwie poprawne odpowiedzi 1 punkt.
Za kade poprawne uzupenienie brakujcego
elementu 1 punkt.

Liczba
punktw
za
zadanie

3
6
3

Zadanie 16. Miejsce zerowe (06) rozwizanie


Przedstawiona poniej rekurencyjna funkcja Mzer znajduje metod bisekcji miejsce zerowe
funkcji f cigejw przedziale a, b z dokadnoci do

[epsilon].
2

Specyfikacja:
Dane: liczby a i b takie, e a b oraz f a f b 0
liczba 0
Wynik: liczba rzeczywista x z przedziau a, b taka, e f x 0 dla pewnego

takiego, e
2
2
Funkcja Mzer a, b,
1. jeeli b a , to wykonaj:
ab
a. s
2
b. jeeli f s 0 , to podaj s jako wynik
c. jeeli f a f s 0 , topodaj Mzer a, s, jako wynik
w przeciwnym przypadku podaj Mzer s, b, jako wynik

Przykadowe zadania z rozwizaniami

2. w przeciwnym przypadku podaj a b / 2 jako wynik

a)

Poniej prezentujemy fragment wykresu funkcji f , dla ktrej wywoujemyfunkcj Mzer:


Wykres funkcji f w przedziale <0,128>
100
80
60
40
20
0
0

10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125

-20
-40

Wykres przecina o OX w punkcie 72,7. Zamy, e funkcja Mzer zostaa wywoana


dla a 0 i b 128 . W poniszej tabelce podaj liczb kolejnych rekurencyjnych wywoa
funkcji Mzerprzy podanych poniej wartociach

10
32
25
5
1
5
b)

liczba wywoa Mzer


4
2
3
5
10

Poniej prezentujemy zapis algorytmu opisanego funkcj Mzer w postaci


nierekurencyjnej. Zapis poniszego algorytmu jest niepeny, uzupenij brakujce
elementy tak, aby realizowa t sam metod poszukiwania miejsca zerowego, ktr
opisuje funkcja Mzer.

Algorytm
1. dopki b a wykonuj

ab
2
b) jeeli f s 0 , to podaj s jako wynik i zakocz wykonywanie algorytmu

a)

39

40

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

c) jeeli f a f s 0 , to b s
w przeciwnym przypadku a s
2. podaj a b / 2 jako wynik
Komentarz
Podpunkt a
Aby obliczy liczb kolejnych rekurencyjnych wywoa funkcji Mzer dla kadej podanej
wartoci , naley ustali wartoci zmiennych z jakimi bdzie ona wywoywana w kolejnych
krokach. Funkcja zakoczy dziaanie w momencie, gdy b a .
Dla kadej dokadnoci startujemy od wywoania funkcji Mzer 0,128, , za kolejne
wywoania to:
Dla 32 mamy dwa wywoania:
Mzer 64,128,32
Mzer 64,96,32

Dla 25 mamy trzy wywoania:


Mzer 64,128, 25
Mzer 64,96, 25
Mzer 64,80, 25

Dla 5 mamy pi wywoa:


Mzer 64,128,5
Mzer 64,96,5
Mzer 64,80,5
Mzer 72,80,5
Mzer 72, 76,5

Dla

1
mamy dziesi wywoa:
5
1

Mzer 64,128,
5

Mzer 64, 96,


5

Mzer 64,80,
5

Mzer 72,80,
5

Mzer 72, 76,


5

Mzer 72, 74,


5

Przykadowe zadania z rozwizaniami

41

Mzer 72, 73,


5

Mzer 72, 5; 73;


5

Mzer 72, 5; 72, 75;


5

Mzer 72, 625; 72, 75;


5

Podpunkt b
Aby uzupeni luki w przedstawionej nierekurencyjnej wersji funkcji Mzer, naley zauway
prost wasno: w kolejnych krokach zawsze ustalamy rodek aktualnego przedziau, tzn.
ab
s
, a nastpnie sprawdzamy czy miejsce zerowe funkcji ley na lewo od punktu s
2
(wtedy b s ), czy na prawo od punktu s(as).
Podpunkt a) sprowadza si do przeanalizowania algorytmu zaprezentowanego w treci
zadania na konkretnych danych i wyznaczenia liczby wywoa funkcji rekurencyjnej. Funkcja
Mzer opisuje podrcznikowy algorytm znajdowania miejsca zerowego funkcji cigej f
metod bisekcji. Zadaniem zaprezentowanej implementacji tego algorytmu jest podanie

przy zaoeniu, e
2
f a f b 0 (zauwamy, e cigo funkcji f w powizaniu z warunkiem f a f b 0

miejsca zerowego funkcji w przedziale a, b , z dokadnoci do

gwarantuje, e f ma miejsce zerowe w przedziale a, b ).


W treci zadania przedstawiono pseudokod rekurencyjnej wersji algorytmu, ktra
rozpoczyna si od sprawdzenia czy odlego midzy kracami przedziau [a,b] jest wiksza
od (czyli podwojonej dokadnoci wyniku):
1. Gdy b a , wwczas mamy gwarancj e rodek przedziau a, b znajduje si nie dalej
ni

od miejsca zerowego funkcji f. Dlatego te jako wynik zwracany jest wanie


2

rodek przedziau, czyli warto (a+b)/2.


2. Gdy b a , mamy dwie moliwoci. Jeli rodek przedziau a, b jest miejscem
zerowym funkcji f, zwracamy go oczywicie jako warto. W przeciwnym razie
redukujemy zadanie wyszukania miejsca zerowego w a, b do zadania poszukiwania
miejsca zerowego w [a,s] lub [s,b], gdzie s to rodek przedziau a, b . Efektem redukcji
jest wic dwukrotne zmniejszenie dugoci przedziau, w ktrym poszukujemy miejsca
zerowego.
Zauwamy, e gdyby wywoania funkcji Mzer dla a=0 i b=128 oraz podanych w punkcie a)
wartoci nigdy nie koczyy si znalezieniem dokadnej wartoci miejsca zerowego (czyli
spenieniem warunku f(s)=0), odpowiedzi w punkcie a) sprowadzayby si do wskazania
ilokrotnie trzeba poowi przedzia o dugoci 128 aby uzyska przedzia o dugoci nie
wikszej ni . W rozwizaniu mona by wic ograniczy si do policzenia, ile takich
poowie naley wykona. Aby jednak mie pewno poprawnoci rozwizania, trzeba
sprawdzi e warto rodka przedziau s rzeczywicie w naszym przykadzie nie trafi
idealnie w miejsce zerowe (rwne 72,7) w kolejnych wywoaniach rekurencyjnych. Tak
skrupulatn analiz przedstawilimy omawiajc rozwizanie punktu a).

42

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Punkt b) zadania wymaga zastosowania standardowej techniki zamiany rekurencji na


iteracj. Zamiast wywoywa funkcj z nowymi wartociami kracw przedziaw,
zmieniamy w ptli wartoci zmiennych a i b tak, aby odpowiaday one kocom coraz
mniejszych przedziaw dla ktrych wywoywana jest funkcja rekurencyjna Mzer.
Przedstawiony szkielet algorytmu z pozostawionymi miejscami do uzupenienia sugeruje
sposb, w jaki w tym przypadku naley dokona zamiany rekurencji na iteracj.

Przykadowe zadania z rozwizaniami

43

Zadanie 17. Bruker (011)


Firma Bruker wygraa w przetargu kontrakt na uoenie kostki na rynku starego miasta.
Docelowo Bruker miaa uoy 16 500 m2 kostki obu rodzajw. Firma Bruker rozpocza
prace w dniu 1.03.2013 roku i planowaa je zakoczy w drugiej poowie listopada 2013 roku.
W dniu 1.03.2013 roku, przed rozpoczciem pracy, na rynku zgromadzono 500 m2 kostki
granitowej i 200 m2 kostki bazaltowej.
W firmie zatrudniono 20 pracownikw, kady z nich dziennie potrafi uoy 4,5 m2
powierzchni granitowej lub 3,8 m2 powierzchni bazaltowej. Firma pracuje 5 dni w tygodniu
oprcz sobt i niedziel3. Bruker posiada samochody ciarowe, kady z nich jednorazowo
moe dostarczy 32 m2 kostki granitowej lub 28 m2 kostki bazaltowej.
Kierownik opracowa nastpujcy system pracy: wszyscy pracownicy (20 osb) ukadaj
kostk granitow do dnia, w ktrym rano zapas kostki granitowej jest mniejszy, ni ten
zuywany codziennie przez cay zesp 20 pracownikw. Wwczas poowa pracownikw
zostaje oddelegowana do pracy z kostk bazaltow, a poowa ukada nadal kostk granitow.
Kiedy zapas kostki granitowej zostanie uzupeniony (rano zapas kostki wystarczy na cay
dzie pracy dla wszystkich 20 pracownikw) wszyscy ponownie ukadaj tylko kostk
granitow.
Uzupenianie zapasw nastpuje wieczorem, po pracy brukarzy, wg opisanej reguy: jeeli
po pracy zapas kostki granitowej jest mniejszy ni 40 m2, to przyjedaj 3 samochody
z dostaw, jeeli zapas wynosi od 40 m2 do 100 m2 wcznie przyjeda 1 samochd, jeeli
zapas kostki jest wikszy ni 100 m2, wwczas nie ma dostawy. Zapas kostki bazaltowej jest
uzupeniany w kady poniedziaek i rod z uyciem jednego samochodu.
Korzystajc z dostpnych narzdzi informatycznych, wykonaj ponisze polecenia.
Odpowiedzi do podpunktw a), b), c) i e) zapisz w pliku wyniki.txt, a kad z nich
poprzed liter oznaczajc ten podpunkt.
Uwaga: Pamitaj, e firma Bruker pracuje 5 dni w tygodniu oprcz sobt i niedziel. Dostawy
kostki odbywaj si rwnie tylko w dni robocze, zatem w swoich obliczeniach pomi soboty
i niedziele.
a) Podaj liczb dostaw kostki bazaltowej, przy zaoeniu, e prace trway do koca listopada.
b) Podaj dat pierwszej dostawy kostki granitowej.
c) Dla kadego pierwszego roboczego dnia miesica w okresie od 1.03.2013 do 1.11.2013
utwrz zestawienie zoone z daty i liczby metrw kwadratowych kostki granitowej oraz
liczby metrw kwadratowych kostki bazaltowej uoonych do dnia wskazanego dat
wcznie (stan wieczorny).
d) Utwrz wykres liniowy obrazujcy poranny zapas kostki granitowej i kostki bazaltowej
dla danych z okresu od 1.03.2013 do 1.11.2013 wcznie.
e) Sprawd, czy firmie Bruker uda si zakoczy prac w planowanym terminie. Jeeli tak,
to podaj dzie zakoczenia prac. Jeeli nie, podaj powierzchni uoonej kostki
w ostatnim dniu roboczym listopada 2013 roku.
Do oceny oddajesz plik(i) o nazwie(ach) ..........................................................., zawierajcy(e)
tu wpisz nazw(y) pliku (w)

komputerow(e) realizacj(e) Twoich oblicze, plik tekstowy wyniki.txt zawierajcy


odpowiedzi do podpunktw a), b), c) i e) oraz plik ....................................................................,
tu wpisz nazw pliku

zawierajcy reprezentacj graficzn rozwizania podpunktu d) zadania.


3

Dla uproszczenia symulacji pomi wystpowanie wit pastwowych i kocielnych.

44

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje
problemowe z rnych dziedzin,
12) projektuje rozwizanie problemu (realizacj
algorytmu) i dobiera odpowiedni struktur danych,
25) dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizania zadania.

Schemat punktowania
Podpunkt

Czynno

a
b

Za poprawn odpowied 2 punkty.


Za poprawn odpowied 2 punkty.
Za poprawn odpowied 3 punkty.
W przypadku jednego bdnego wiersza 2 punkty.
W przypadku dwch bdnych wierszy 1 punkt.
Za poprawn odpowied 2 punkty,
w tym za:
typ wykresu i zakres danych,
peny opis wykresu (tytu, z wykresu mona odczyta
stan zapasw kostki granitowej i kostki bazaltowej
w wybranym dniu).
Za poprawn odpowied 2 punkty.

Liczba
punktw
za
podpunkt
2
2

Liczba
punktw
za
zadanie

3
11
2

Zadanie 17. Bruker (011) rozwizanie


Plik zawierajcy komputerow realizacj oblicze bruker.xlsx oraz plik tekstowy
zawierajcy odpowiedzi wyniki.txt znajduj si w folderze BRUKER.
Komentarz
Zadanie Bruker naley do typowych zada symulacyjnych. Najtrudniejsz czci zadania
jest prawidowe zasymulowanie cyklicznie powtarzajcych si wydarze, ktre s ze sob
powizane. Rozwizanie rozpoczynamy od wypisania dni, w ktrych bd odbyway si
prace, czyli wszystkich dni roboczych, poczwszy od 1 marca 2013 roku do dnia 30 listopada
2013 roku oraz utworzenia kolumny z nazw (numerem) dnia tygodnia.
W cigu caego dnia zachodzi wiele wydarze, ktre s od siebie zalene. eby nie doszo do
pomyki, dobrze jest rozpisa wydarzenia dnia: stan pocztkowy (poranny) kostek obu
rodzajw, liczb uoonych metrw kwadratowych dla granitu i dla bazaltu, stan
popoudniowy (pomniejszony o liczb wykorzystanej kostki w czasie pracy), dane dotyczce
realizowanych dostaw.
Poranny stan zgromadzonej na rynku kostki w dniu 1.03.2013 roku wynosi odpowiednio dla
granitu 500 m2 i dla bazaltu 200 m2. Liczba metrw ukadanej kostki zaley od porannego
stanu kostki granitowej: wszyscy pracownicy (20 osb) ukadaj kostk granitow do dnia,

Przykadowe zadania z rozwizaniami

w ktrym rano zapas kostki granitowej jest mniejszy ni ten zuywany codziennie przez cay
zesp 20 pracownikw (90 m2). Wwczas poowa pracownikw zostaje oddelegowana
do pracy z kostk bazaltow (10*3,8 m2=38 m2), a poowa ukada nadal kostk granitow
(10*4,5m2=45 m2). Kiedy zapas kostki granitowej zostanie uzupeniony, wszyscy ponownie
ukadaj tylko kostk granitow. Powyszy opis odpowiada formule w arkuszu
kalkulacyjnym:
=JEELI(C6>=$A$1*$F$2;$A$1*$F$2;$A$1/2*$F$2),
ktra jest rwnie przedstawiona na poniszym rysunku.

Po pracy brukarzy sytuacja stanu kostki si zmienia. Od stanu porannego naley odj
liczb uoonych metrw kwadratowych. Bdzie to dla granitu formua: =C6-E6, a dla
bazaltu formua: =D6-F6.
Przeanalizujmy dostawy kostki. Uzupenianie zapasw nastpuje wieczorem, po pracy
brukarzy. Jeeli po pracy zapas kostki granitowej jest mniejszy ni 40 m2 to przyjedaj
3 samochody z dostaw, jeeli zapas wynosi od 40 m2 do 100 m2 wcznie przyjeda
1 samochd, jeeli zapas kostki jest wikszy ni 100 m2, wwczas nie ma dostawy. Dla
obliczenia wielkoci dostawy zastosujemy funkcj jeeli:
=JEELI(G6<40;3*$F$3;JEELI(G6<=100;1*$F$3;0))
Zapas kostki bazaltowej jest uzupeniany w kady poniedziaek i rod z uyciem jednego
samochodu, co moemy zapisa za pomoc funkcji jeeli i zagniedonej funkcji LUB:
=JEELI(LUB(B6=3;B6=1);28;0)
Jak bdzie wyglda stan kostki w nastpnym dniu roboczym rano? Pozostaje nam
uwzgldni wieczorne dostawy. Dla granitu bdzie to formua: =G6+I6, a dla bazaltu:
=H6+J6.
Wykonalimy w ten sposb ca symulacj dobowych dziaa firmy Bruker. Teraz wystarczy
wpisane formuy i funkcje skopiowa a do dnia 30.11.2013 roku.
Aby odpowiedzie na polecenie a), naley sprawdzi liczb dostaw bazaltu, czyli liczb
poniedziakw i rd w okresie od 1.03.2013 roku do 30.11.2013 roku, stosujc funkcj
LICZ.JEELI.
Polecenie b) sprawdza czy prawidowo zbudowalimy formu dotyczc pracy z granitem.
Do dnia 7.03.2013 stan kostki jest powyej 100 m2 i dopiero po pracy w tym dniu spada do

45

46

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

50 m2, co skutkuje pierwsz dostaw kostki granitowej (1 samochd).


Dopiero polecenie c) kontroluje prawidowe wykonanie caej symulacji. Aby obliczy liczby
metrw kwadratowych kostki granitowej oraz liczby metrw kwadratowych kostki bazaltowej
uoonych do dnia wskazanego dat wcznie (stan wieczorny), naley utworzy kolumn
suma dla granitu i suma dla bazaltu (s to odpowiednio kolumny K oraz L na poniszym
rysunku), w ktrych bdziemy dodawa kolejne metry kwadratowe uoonej kostki.

W poleceniu d) naley utworzy wykres liniowy porannych stanw kostki granitowej


i bazaltowej. Naley pamita o prawidowym zaznaczeniu zakresu danych i opisaniu
wykresu w sposb umoliwiajcy odczytanie stanu konkretnego rodzaju kostki w wybranym
dniu.
Poranny zapas kostki granitowej i kostki bazaltowej
600

500

400

300
rano granit
rano baz
200

100

0
2013-03-01 2013-04-01 2013-05-01 2013-06-01 2013-07-01 2013-08-01 2013-09-01 2013-10-01 2013-11-01

Jeeli podsumujemy liczb uoonej kostki granitowej oraz uoonej kostki bazaltowej,
otrzymamy liczb metrw kwadratowych, ktre firma uoya do tego wanie dnia wcznie.
Okazuje si, e w dniu 19.11.2013 zostanie pokryta caa powierzchnia rynku starego miasta
i firma Bruker zakoczy prac.
Na kocu musimy wspomnie, e to zadanie niemal w caoci mona rwnie rozwiza,
piszc odpowiedni program. Jedyn problematyczn rzecz jest utworzenie wykresu, ktry
mona wykona w arkuszu kalkulacyjnym, zapisujc wczeniej potrzebne dane do plikw
tekstowych.

Przykadowe zadania z rozwizaniami

47

Zadanie 18. Telefony (011)


Firma Ciasteczko wprowadzia na rynek nowy baton czekoladowy. Z tej okazji
przeprowadzia konkurs SMS-owy. Zadanie konkursowe polega na przesaniu odpowiedzi
na pytanie: Czy smakuje Ci nasz nowy baton czekoladowy? Odpowiedz: Tak lub Nie.
Wiele osb, liczc na zwikszenie szansy wygranej, wysyao SMS-y wielokrotnie. W pliku
tekstowym o nazwie telefony.txt znajduje si 2000 zarejestrowanych numerw telefonw
wraz z wysan odpowiedzi. Kady numer telefonu i udzielona odpowied umieszczona jest
w jednym wierszu, informacje rozdzielone s pojedynczym znakiem odstpu.
Korzystajc z danych umieszczonych w pliku telefony.txt, wykonaj nastpujce
polecenia.
Odpowiedzi
do
poszczeglnych
podpunktw
zapisz
w
pliku
wyniki_konkursu.txt (poza wykresem do podpunktu a), a kad z nich poprzed
liter oznaczajc ten podpunkt.
a) Podaj, ile razy wysano odpowied Tak, a ile razy odpowied Nie. Sporzd wykres
procentowy ilustrujcy otrzymane wyniki. Pamitaj o prawidowym i czytelnym opisie
wykresu.
b) Numery telefonw nale do czterech grup numeracyjnych rozpoczynajcych si cyframi:
5, 6, 7, 8. Ile numerw telefonw naley do kadej z grup? W swoim zestawieniu
uwzgldnij powtarzajce si numery telefonw.
c) Nagrod I stopnia otrzymaa osoba, w ktrej numerze telefonu suma cyfr jest najwiksza.
Podaj numer telefonu oraz sum cyfr numeru.
d) Najduszym malejcym numerem telefonu nazywamy taki numer, ktrego pocztkowe
cyfry tworz najduszy malejcy cig, tzn. kolejna jego cyfra, poczwszy od drugiej, jest
mniejsza od cyfry j poprzedzajcej, np. w numerze 654209192 pi pierwszych cyfr
tworzy malejcy cig, za w numerze 865320542 sze pierwszych cyfr tworzy malejcy
cig. Do nagrody II stopnia wybrano te numery telefonw, ktrych cyfry tworz
najduszy malejcy cig. Podaj numery telefonw, ktre otrzymay t nagrod.
e) Firma postanowia wrczy nagrod pocieszenia wacicielowi tego numeru, z ktrego
wysano najwicej SMS-w. Jak najwiksz liczb SMS-w wysano z jednego numeru?
Do oceny oddajesz plik(i) o nazwie ........................................................................................... ,
tu wpisz nazw(y) pliku(w)

zawierajcy(e) komputerow(e) realizacj(e) Twoich oblicze, plik tekstowy


wyniki_konkursu.txt z odpowiedziami do punktw ae (odpowied do kadego
podpunktu powinna by poprzedzona jego nazw) oraz plik .....................................................,
tu wpisz nazw pliku

zawierajcy wykres do podpunktu a.

48

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
4. Opracowywanie informacji za pomoc komputera,
w tym: rysunkw, tekstw, danych liczbowych,
animacji, prezentacji multimedialnych i filmw.
Zdajcy:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje
problemowe z rnych dziedzin;
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu.

Schemat punktowania
Podpunkt

c
d
e

Czynno
Za podanie poprawnej liczby odpowiedzi "Tak" oraz
poprawnej liczby odpowiedzi "Nie" 1 punkt.
Za poprawny wykres 2 punkty, w tym:
poprawny dobr danych i typ wykresu 1 punkt,
czytelny opis wykresu 1 punkt.
Za podanie poprawnej liczby numerw telefonw dla
czterech grup 2 punkty.
Za podanie poprawnej liczby numerw telefonw dla
co najmniej dwch grup 1 punkt.
Za podanie poprawnego numeru telefonu 1 punkt.
Za podanie poprawnej sumy cyfr dla poprawnego
numeru 1 punkt.
Za podanie poprawnych trzech numerw 3 punkty,
po 1 punkcie za kady poprawny numer.
Za podanie poprawnej liczby 1 punkt.

Liczba
punktw
za
podpunkt

Liczba
punktw
za
zadanie

2
3
1

11

Przykadowe zadania z rozwizaniami

49

Zadanie 18. Telefony (011) rozwizanie


Pliki zawierajce rozwizania znajduj si w folderze TELEFONY.
Komentarz
Wikszo podpunktw zadania sprowadza si do zliczania wierszy speniajcych okrelone
kryteria. Naturalnym narzdziem do rozwizania takiego zadania jest jzyk programowania
bd arkusz kalkulacyjny. Poniewa podpunkty b, c oraz d wymagaj dostpu nie tylko do
caych pl naszej tabeli (czyli numer telefonu i odpowied), ale do poszczeglnych cyfr
numeru, wygodniejszym narzdziem wydaje si jzyk programowania. Niemniej rozwizanie
zadania jest rwnie moliwe w oparciu o arkusz kalkulacyjny. Poniej omwimy dwa rne
rozwizania: w pierwszym napiszemy program w jzyku C, a w drugim korzysta bdziemy
z funkcji i innych narzdzi dostpnych w MS Excel.
Rozwizanie 1: jzyk programowania.
Korzystajc z dostpnych operacji wejcia/wyjcia z wykorzystaniem plikw (lub strumieni),
moemy zapisa tabel z pliku w tablicach. W naszym rozwizaniu numery telefonw
zapisujemy jako napisy w tablicy num, natomiast odpowiadajce im odpowiedzi
(Tak/Nie) reprezentujemy w tablicy liczb cakowitych odp, gdzie 1 odpowiada wartoci
Tak a 0 wartoci Nie:
#define n 2000 // liczba wierszy
typedef char napis9[10]; // typ dla napisow o dugoci 9
int odp[n]; // odp[i]=1/0 gdy odpowiedz Tak/Nie w i-tym
wierszu
napis9 num[n]; // num[i] to numer telefonu w i-tym wierszu
Podpunkt a
Przy powyszej reprezentacji danych punkt a) sprowadza si do policzenia sumy
odp[0]+odp[1]++odp[1999].
Podpunkt b
Aby wyznaczy liczb numerw zaczynajcych si od cyfry i dla i=5, 6, 7, 8, utworzylimy
tablic liczb cakowitych grupa, gdzie grupa[i] ma spenia rol licznika dla numerw
zaczynajcych si od i. Przegldajc w ptli wartoci num[j][0] dla j=0, 1,, 1999,
uzupenilimy odpowiednio wartoci licznikw. Aby zamieni znak reprezentowany przez
num[j][0] na odpowiadajc mu cyfr, uylimy podstawienia:
cyf=num[j][0]-'0';
Podpunkt c
Utworzylimy osobn funkcj sumaCyfr, ktra w ptli zlicza sum cyfr liczby podanej jako
cig cyfr w tablicy typu napis9. Z uyciem tej funkcji punkt c) sprowadzony zosta do
klasycznego problemu wyznaczania najwikszej wartoci w cigu.
Podpunkt d
W podpunkcie d rwnie zastosowalimy modularyzacj, wydzielajc osobno funkcj
malejacy, ktrej wynikiem jest liczba elementw najduszego cigu malejcego,

50

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

zoonego z pocztkowych cyfr cigu podanego na wejciu. Uywajc tej funkcji:


najpierw wyznaczylimy maxD, najwiksz dugo malejcego cigu zoonego
z pocztkowych cyfr numeru telefonu,
nastpnie przejrzelimy raz jeszcze wszystkie numery telefonw, wypisujc jako wynik te
numery, ktrych pocztkowe maxD cyfr tworzy cig malejcy.
Podpunkt e
Polecenie w podpunkcie e) jest o tyle trudne, e zliczanie wystpie poszczeglnych numerw
wymaga wielokrotnego przegldania listy telefonw. W naszym rozwizaniu zliczamy
wystpienia kolejnych numerw, stosujc dwie zagniedone ptle. Zastosowalimy jednak
drobn optymalizacj. Wspomoglimy si dodatkow tablic liczony, ustawiajc
liczony[i] na 1 tylko wtedy, gdy i-ty numer jest rwny numerowi wystpujcemu
wczeniej. Moglimy wwczas pomin zliczanie tych elementw, dla ktrych warto
w tablicy zliczony bya rwna 1.
Mona sobie oczywicie wyobrazi inne rozwizania tego podpunktu. Gdyby numery
telefonw byy uporzdkowane w pliku wejciowym, mielibymy pewno, e wszystkie
wystpienia danego numeru pojawiaj si obok siebie (w kolejnych wierszach). A to
z kolei uatwioby znacznie zliczanie wystpie poszczeglnych numerw. Mona zatem
zacz od sortowania cigu numerw lub np. zastosowa funkcje sortujce dostpne
z biblioteki algorithm, dostpnej w wikszoci kompilatorw jzyka C. W naszym rozwizaniu
przyjlimy jednak, e samodzielna implementacja sortowania byaby utrudnieniem sobie
zadania, natomiast wykorzystanie bibliotecznych funkcji sortujcych pozostawiamy jako
wiczenie dla czytelnika (wygodniej przy tym byoby reprezentowa numery jako tablic
liczb, nie napisw).
Rozwizanie 2: arkusz kalkulacyjny.
Omwimy teraz rozwizanie utworzone w oparciu o MS Excel. Po zaimportowaniu danych
z pliku tekstowego przyjmujemy, e numery telefonw i odpowiedzi Tak/Nie znajduj si
odpowiednio w kolumnach A i B arkusza, w wierszach 2, 3, , 2001 (dodajemy nowy wiersz
na pocztku dla opisu kolumn). Rozwizania punktw a), b) i e) moemy wwczas uzyska
z pomoc funkcji LICZ.JEELI.
Podpunkt a
Aby zliczy liczb odpowiedzi Tak, dla funkcji LICZ.JEELI wskazujemy obszar
B2:B2001 oraz jako kryterium wyszukiwania podajemy Tak:
=LICZ.JEELI(B2:B2001;Tak)
Podpunkty b d
Rozwizanie dla podpunktw b), c) i d) zadania wymaga wydzielenia cyfr kolejnych
numerw telefonw. Mona do tego wykorzysta bardziej ogln funkcj
FRAGMENT.TEKSTU, ktra pozwala wyci z podanego tekstu fragment o wskazanej
dugoci i od podanej pozycji. Na przykad wartoci formuy
= FRAGMENT.TEKSTU(A2;2;1) bdzie fragment tekstu z komrki A2, zaczynajcy si
od drugiej pozycji, o dugoci jeden (czyli drugi znak z tekstu w A2). Co wicej, jeli
w komrce A2 znajduje si liczba, funkcja automatycznie przeksztaci j na tekst przed
wydzieleniem odpowiedniego fragmentu. W naszym rozwizaniu zautomatyzowalimy
proces wydzielania wszystkich 9 cyfr z kolejnych numerw w nastpujcy sposb:

Przykadowe zadania z rozwizaniami

51

w komrkach D1L1 umieszczone zostay cyfry 1, 2,,9,


w komrce D2 wpisana zostaa formua: = FRAGMENT.TEKSTU($A2;D$1;1),
skopiowanie tej formuy do caego bloku D2:L1999 pozwolio wydzieli wszystkie cyfry
z kadego numeru.
Zwrmy uwag na sposb adresowania w formule z komrki D2:
adres $A2 gwarantuje, e po skopiowaniu formuy nie zmieni si kolumna, z ktrej
pobieramy tekst,
adres D$1 z kolei gwarantuje, e numer pozycji, od ktrej zaczyna si wycinany fragment
tekstu, zawsze pobierany bdzie z pierwszego wiersza.
W rezultacie kolejne cyfry liczb z kolumny A umiecimy w kolumnach DL. Nie moemy
jednak wykonywa na nich operacji arytmetycznych, poniewa wynikiem funkcji
FRAGMENT.TEKSTU jest napis, nie liczba. Zastosujemy zatem funkcj WARTO, ktra
zamienia tekst na liczb. Wzorcowa formua w komrce D2 bdzie wic wyglda
nastpujco:
= WARTO(FRAGMENT.TEKSTU($A2;D$1;1))

Podpunkt b
Aby zliczy liczb numerw telefonw zaczynajcych si od wskazanej cyfry, wykorzystamy
fakt, e w kolumnie D wydzielilimy pierwsze cyfry numerw telefonw. Aby uzyska liczb
numerw zaczynajcych si od 5, moemy uy formuy: =LICZ.JEELI(A2:A2001;5).
Aby unikn kilkukrotnego rcznego wpisywania formuy wg powyszego schematu,
moemy zastosowa adresowanie porednie i wskaza jako kryterium komrki, w ktrych
kolejno umiecimy liczby 5, 6, 7 i 8. Poniej zamieszczamy przykadowe rozwizanie
zapisane w komrkach A9..B12 drugiego arkusza.

Formuy w komrkach odpowiadajcych wartociom 6, 7, 8 i 9 moemy otrzyma, kopiujc


formu wpisan dla cyfry 5.

Podpunkt c
Aby rozwiza podpunkt c, wystarczy zsumowa wartoci z kolumn DL w kadym wierszu,
wyznaczy najwiksz z tych sum i wyszuka numer odpowiadajcy tej sumie.

52

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Podpunkt d
W podpunkcie d) zapiszemy przy pomocy formu nastpujcy algorytm wyznaczania dugoci
najduszego cigu malejcego, bdcego pocztkiem wskazanego cigu c1, c2,,ck:
Krok 1: Jeli c1c2 to r2 1
w przeciwnym przypadku r2 0
Krok 2: Powtarzaj dla i=3,4,,k:
Jeli (ci 1c i) oraz (ri 1=1) to ri 1
w przeciwnym przypadku ri 0
Krok 3: Zwr (1 + r2 + r3 + + rk )
W naszym przypadku warto k z powyszego algorytmu to 9, a pierwszy cig znajduje si
w komrkach D2, E2, , L2. Formuy wyznaczajce wartoci r2,,r9 w komrkach
N2,,U2 realizujce powyszy algorytm mog wyglda nastpujco:
unikalna formua w komrce N2:
=JEELI(D2>E2;1;0)
formua w komrce O2, ktr kopiujemy do P2,,U2:
=JEELI(N2=1;JEELI(E2>F2;1;0);0)
Nastpnie moemy:
skopiowa powysze formuy do kolejnych wierszy arkusza,
w kolumnie V kadego wiersza wyliczy warto jeden plus najwiksza z wartoci r2, r3,
, r9 (czyli maksimum wartoci z kolumn N, M,,U tego wiersza),
wybra najwiksz warto z kolumny V,
wyszuka numery telefonw z wierszy, w ktrych pojawia si ta najwiksza warto
w kolumnie V.
Podpunkt e
Po raz kolejny zastosujemy funkcj LICZ.JEELI, umiejtnie wykorzystujc te
adresowanie porednie. Jeli w komrce C2 arkusza z danymi wpiszemy formu
=LICZ.JEELI($A$2:$A$2001;A2), wwczas uzyskamy nie tylko liczb wystpie
pierwszego numeru (znajdujcego si w komrce A2) w bloku A2:A2001, ale po
skopiowaniu tej formuy do kolejnych komrek kolumny C wyznaczymy liczby wystpie
kolejnych numerw.
Podpunkty a) i e) zadania nie wymagaj wydzielania elementw (cyfr) numerw telefonw,
mona je wic zaliczy do klasycznych wicze z zakresu analizowania i filtrowania danych,
ktre bez wikszych trudnoci mona zrealizowa w wybranym arkuszu kalkulacyjnym.
W pozostaych punktach zadania uzyskanie wyniku zasadniczo wymaga dostpu do
poszczeglnych cyfr numerw telefonw. Co prawda wyniki punktu b) zale jedynie od
pierwszych cyfr a zatem moliwe jest rozwizanie w oparciu o porwnania caych numerw
(np. numery zaczynajce si od 5 s nie mniejsze ni 500000000 i nie wiksze ni
599999999), jednak w punktach c) i d) wyniki zale od wszystkich cyfr w numerach
telefonw. Dlatego rozwizanie z wykorzystaniem jzyka programowania wydaje si bardziej
naturalne. Zaprezentowalimy jednak rwnie rozwizanie w arkuszu kalkulacyjnym, aby
zademonstrowa, e stosujc odpowiednie formuy mona implementowa proste
algorytmy, gdzie komrki arkusza su do przechowywania wartoci zmiennych w kolejnych
etapach oblicze. Niemniej szczeglnie w podpunkcie d) (gdzie konieczne byo ustalanie
najduszego malejcego cigu pocztkowych cyfr numeru), nasze rozwizanie wymagao
niestandardowych i do nienaturalnych pomysw.

Przykadowe zadania z rozwizaniami

53

W zaprezentowanym rozwizaniu programistycznym numery telefonw reprezentowane s


jako cigi znakw, co uatwia dostp do poszczeglnych cyfr. Warto wspomnie,
e reprezentacja numerw w postaci liczb rwnie daje wygodny dostp do cyfr. Zauwamy,
e dla zmiennej n typu int warto n%10 jest rwna ostatniej jej cyfrze, natomiast n/10
to warto uzyskana po usuniciu z zapisu dziesitnego n ostatniej cyfry (pamitajmy,
e w jzyku C warto n/10 dla zmiennej n typu int jest rwna wynikowi dzielenia
cakowitego n przez 10). Taki sposb dostpu do cyfr numeru jest jednak niewygodny
w podpunkcie d) zadania, gdzie konieczne jest przegldanie kolejnych cyfr w kolejnoci
od pierwszej (najbardziej znaczcej), a nie od ostatniej (najmniej znaczcej).
Na kocu naley podkreli, e zadanie nie narzuca adnego sposobu rozwizania, wic nic
nie stoi nic na przeszkodzie, aby odpowiednio dobra takie narzdzia informatyczne do
rozwizania zada w kolejnych podpunktach, aby cz z nich rozwiza przy pomocy jzyka
programowania, a cz przy pomocy arkusza kalkulacyjnego.

54

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 19. Korek (011)


W plikach sprzedaz.txt, produkt.txt i kategoria.txt znajduj si informacje
o sprzeday produktw z korka w sklepie Koreczek. Pierwszy wiersz kadego z plikw jest
wierszem nagwkowym, a dane w wierszach rozdzielone s znakami tabulacji.
W pliku sprzedaz.txt znajduje si 2200 wierszy z informacjami o sprzedanych
produktach w cigu caego roku 2012: Id_zakupu, Id_produktu, Data_zakupu, Ilosc (liczba
sprzedanych jednostek danego produktu).
Przykad:
Id_zakupu
1
2
3
4

Id_produktu
p34
p87
p86
p20

Data_zakupu
2012-08-09
2012-08-07
2012-08-03
2012-01-05

Ilosc
9
12
26
2

W pliku produkt.txt znajduje si 99 wierszy z informacjami o produktach: Id_produktu,


Nazwa, Cena, Jednostka, Id_kategoria.
Przykad:
Id_produkt
p1
p2
p3

Nazwa
Especial_Big
Toledo_Natural
Toledo_Red

Cena
24,99
23,99
23,99

Jednostka
m2
m2
m2

Id_kategoria
k1
k1
k1

W pliku kategoria.txt znajduje si 21 wierszy z opisem kategorii sprzedawanych


produktw: Id_kategoria, Nazwa (nazwa kategorii do ktrej naley grupa produktw).
Przykad:
Id_kategoria
k1
k2
k3

Nazwa
korek_scienny
podklad_korkowy
granulat_korkowy

Wykorzystujc dane zawarte w tych plikach i dostpne narzdzia informatyczne, wykonaj


ponisze polecenia. Odpowiedzi do poszczeglnych podpunktw zapisz w pliku tekstowym
o nazwie wyniki_korek.txt. Odpowied do kadego podpunktu poprzed liter
oznaczajc ten podpunkt.
a) Podaj zestawienie zawierajce informacje o liczbie dokonanych zakupw w kadym
miesicu. Zestawienie posortuj rosnco ze wzgldu na liczb zakupw.
b) Dla kadej kategorii oblicz czn warto sprzedanych produktw. Utwrz zestawienie
o kolumnach: nazwa kategorii, czna warto sprzedanych produktw w danej kategorii.
Zestawienie uporzdkuj alfabetycznie wedug nazw.
c) Podaj nazw produktu z kategorii wyroby_korkowe, ktrego sprzedano najwicej oraz
wielko jego sprzeday.
d) Podaj zestawienie zawierajce dla kadego produktu z kategorii parkiet_korkowy
i panele_korkowe informacje o cznej liczbie m2 sprzedanego produktu.

Przykadowe zadania z rozwizaniami

55

Do oceny oddajesz plik(i) o nazwie ......................................................................., zawierajcy


tu wpisz nazw pliku(w)

komputerow realizacj Twoich oblicze oraz plik tekstowy wyniki_korek.txt,


zawierajcy odpowiedzi do wszystkich podpunktw zadania. Odpowied do kadego
podpunktu w pliku wyniki_korek.txt powinna by poprzedzona nazw podpunktu.

Wymagania oglne

Wymagania szczegowe

II. Wyszukiwanie, gromadzenie i przetwarzanie


informacji z rnych rde; opracowywanie
za pomoc komputera: rysunkw, tekstw danych
liczbowych, motyww, animacji, prezentacji
multimedialnych.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji,
korzystanie z rnych rde i sposobw zdobywania
informacji.
Zdajcy:
1) projektuje relacyjn baz danych z zapewnieniem
integralnoci danych,
2) stosuje metody wyszukiwania i przetwarzania
informacji w relacyjnej bazie danych,
3) tworzy aplikacj bazodanow, wykorzystujc
jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji.

Schemat punktowania
Podpunkt

Czynno
Za podanie poprawnego zestawienia zawierajcego
informacje o liczbie zakupw w kadym miesicu
1 punkt.
Za posortowanie otrzymanego zestawienia ze wzgldu
na liczb zakupw 1 punkt.
Za podanie poprawnego zestawienia zawierajcego
nazwy kategorii i czn warto sprzedanego towaru dla
kadej kategorii 2 punkty.
Za podanie zestawienia zawierajcego poprawne
wartoci dla co najmniej 10 kategorii 1 punkt.
Za posortowanie otrzymanego zestawienia
alfabetycznie 1 punkt.
Za podanie poprawnej nazwy produktu 1 punkt.
Za podanie poprawnej liczby sprzedanego produktu
1 punkt.
Za poprawne zestawienie zawierajce czn liczb
sprzedanych produktw w kadej z podanych kategorii
3 punkty.
Za zestawienie zawierajce bdny jeden wiersz albo
jedn kolumn 1 punkt.

Liczba
punktw
za
podpunkt

Liczba
punktw
za
zadanie

3
10

56

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Zadanie 19. Korek (011) rozwizanie


Pliki zawierajce rozwizania znajduj si w folderze KOREK.
Komentarz
Cech wyrniajc zadanie Korek spord pozostaych zada jest konieczno
powizania ze sob danych rozmieszczonych w trzech rnych plikach. Kady z tych plikw
moe odpowiada innej tabeli relacyjnej bazy danych, w ktrej mamy nastpujce powizania
typu jeden do wielu:
tabele produkt.txt i sprzedaz.txt wie pole ID_produkt w produkt.txt
i pole Id_produktu w sprzedaz.txt;
tabele kategoria.txt i produkt.txt wie pole Id_kategoria z obu tabel.
Naturalnym narzdziem do analizy takich danych jest aplikacja suca do zarzdzania baz
danych, np. MS Access. Poniej zaprezentujemy rozwizanie z uyciem tego narzdzia.
Aplikacja bazodanowa wymaga do duego wstpnego nakadu pracy zwizanego
z zakadaniem tabel, ustalaniem typw i rozmiarw pl, powiza (relacji midzy tabelami).
Dlatego warto czasem sprbowa alternatywnych rozwiza, na przykad w arkuszu
kalkulacyjnym. Zaprezentujemy tak prb na przykadzie zadania Korek, pozostawiajc
czytelnikom ocen, ktre narzdzie jest lepiej dopasowane do specyfiki zadania.
Rozwizanie 1: baza danych (MS Access)
Przed przystpieniem do rozwizania podpunktw a) d) zadania, musimy zaoy tabele
odpowiadajce trzem plikom z danymi. Wygodnym rozwizaniem jest utworzenie ich poprzez
import danych (Plik Pobierz dane zewntrzne Importuj w MS Office 2003 lub Dane
Zewntrzne Importowanie Plik tekstowy w MS Office 2007) i skorzystanie z kreatora
importu tekstu. Przyjmijmy, e po zakoczeniu tego procesu mamy tabele Sprzedaz,
Produkt i Kategoria, a pola tych tabel maj takie nazwy, jak podano w przykadach
w treci zadania.
Nastpnie ustalimy relacje midzy tabelami i w efekcie uzyskujemy nastpujcy schemat bazy
danych4:

Rysunki w niniejszym opisie pochodz z MS Office 2003 i MS Office 2007.

Przykadowe zadania z rozwizaniami

57

Teraz moemy przystpi do rozwizania podpunktw a) d) zadania, tworzc odpowiednie


kwerendy
Podpunkt a
Wszystkie dane do podpunktu a znajduj si w tabeli Sprzedaz, brakuje w niej jednak pola
identyfikujcego miesic kadej sprzeday. Dodajemy wic pole wyliczane, w ktrym
wyznaczamy miesic sprzeday w oparciu o warto pola Data_zakupu. Co prawda
skadnia wyrae definiujcych pola wyliczane jest do skomplikowana, jednak w MS Access
moemy tworzy takie pola za pomoc konstruktora wyrae, w ktrym wybieramy
poszczeglne elementy wyraenia z odpowiednich list.
Aby wyznaczy liczb transakcji w kadym miesicu, grupujemy dane wedug nowo
utworzonego pola identyfikujcego miesic sprzeday, zliczamy liczb wierszy w kadej
grupie (funkcja Policz) oraz sortujemy wynikowe zestawienie wg tych wyliczonych
wartoci. Szczegy prezentujemy na zaczonym obrazie okna projektu kwerendy:

58

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Podpunkt b
Zanim bdziemy mogli sumowa wartoci sprzeday w obrbie kategorii produktw, musimy
wyznaczy warto kadej sprzeday, co wymaga dostpu do tabel Sprzedaz i Produkt.
W tym celu tworzymy pomocnicz kwerend, w ktrej korzystamy z powizania obu tabel
i tworzymy pole wyliczane, w ktrym warto Ilosc z kadej sprzeday mnoymy przez
warto Cena z tabeli Produkt:

Przykadowe zadania z rozwizaniami

Nastpnie wystarczy zsumowa wartoci poszczeglnych sprzeday w obrbie kategorii


produktw, co moemy zrobi tworzc sprzenie midzy tabel Kategoria i nowo
zaoon kwerend poprzez pole Id_kategoria. Wynikow kwerend prezentujemy
poniej.

Podpunkt c
Aby ustali ilo jednostek sprzeday kadego produktu, wystarczyoby pogrupowa tabel
Sprzedaz wg pola Id_produktu i wyznaczy sum wartoci pola Ilosc w kadej
grupie. Moglibymy te posortowa zestawienie wg wyliczonych sum.
Takie rozwizanie nie daje jednak dostpu do nazw produktw, nie pozwala te wydzieli
produktw z kategorii wyroby_korkowe. Dlatego do rozwizania punktu c) wykorzystamy
wszystkie trzy tabele wraz z czcymi je relacjami. Aby w wyniku uzyska tylko produkty
z kategorii wyroby_korkowe, zastosujemy filtrowanie wpisujc fraz wyroby_korkowe
w wierszu kryteriw dla nazwy kategorii. Przykadowy projekt kwerendy zaczamy poniej.

59

60

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Podpunkt d
Chcielibymy uzyska zestawienie, w ktrego wierszach znajduj si nazwy kategorii,
w kolumnach nazwy produktw, a na przeciciach wierszy i kolumn wielkoci sprzeday
odpowiednich produktw. Zastosujemy w tym celu kwerend krzyow, ktrej funkcjonalno
jest podobna do tabel przestawnych w MS Excel. Poniej prezentujemy nasze rozwizanie dla
punktu d), w ktrym chcielibymy zwrci uwag na nastpujce elementy:
w wierszu o nazwie Krzyowe wskazujemy rol poszczeglnych pl w kwerendzie
krzyowej: nagwkw kolumn, nagwkw wierszy, wartoci uwzgldnianych
w obliczeniach,
w wierszach Kryteria kolumny Kategoria wpisane zostay kategorie, do ktrych
ograniczone miay by wyniki punktu d) zadania.

Przykadowe zadania z rozwizaniami

61

Rozwizanie 2: arkusz kalkulacyjny (MS Excel)


Rozwizanie zadania w arkuszu kalkulacyjnym rozpoczniemy od wczytania zawartoci plikw
sprzedaz.txt, produkt.txt i kategoria.txt do trzech rnych arkuszy
o nazwach sprzedaz, produkt i kategoria z takimi nagwkami kolumn, jak podane
w treci zadania. Moemy to zrobi, importujc odpowiednie pliki tekstowe w MS Excel
(Dane Importuj dane zewntrzne Importuj dane w MS Office 2003 lub Dane Dane
zewntrzne Z tekstu w MS Office 2007), kady do innego arkusza.
Rozwizujc kolejne podpunkty zadania, tworzy bdziemy tabele przestawne w oparciu
o dane z zaimportowanych tabel. Aby utworzy tabel przestawn, wskazujemy:
1. kolumny wzgldem ktrych grupowane bd dane,
2. kolumn, z ktrej brane bd wartoci do oblicze,
3. funkcj, ktr stosowa bdziemy na wartociach z kolumny podanej w 2.
Powysze parametry ustalamy w projekcie tabeli przestawnej, ustalajc wartoci obszarw
Etykiety wierszy, Etykiety kolumn i Wartoci (terminy takie stosowane s w MS Office 2007;
ich odpowiednikami w MS Office 2003 s obszary Wiersz, Kolumna i Dane). Obszary Etykiety
wierszy i Etykiety kolumn odpowiadaj kryteriom grupowania (jeli stosujemy tylko jedno
kryterium, obszar Etykiety wierszy lub Etykiety kolumn pozostaje pusty). W obszarze Wartoci
umieszczamy pole do oblicze, wybieramy rwnie odpowiedni funkcj (np. suma, rednia,
licznik).

62

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Podpunkt a
Aby rozwiza podpunkt a), dodamy do zestawienia kolumn Miesic, w ktrej wyznaczymy
miesic kadej sprzeday, korzystajc z funkcji wbudowanej (=MIESIC(C2)). Nastpnie
tworzymy i sortujemy tabel przestawn dla tabeli sprzedaz, grupujc dane wg miesicy
i sumujc liczb zakupw w kadym miesicu. Poniej prezentujemy projekt ukadu dla
tworzonej tabeli:

Podpunkty b d
Poniewa podpunkty b d zadania wymagaj powiza midzy poszczeglnymi tabelami,
sprbujemy zbudowa jedn tabel kumulujc wszystkie te powizania. W tym celu
tworzymy kopi tabeli sprzedaz w nowym arkuszu (B) i dodajemy do niej kolumny:
Produkt_nazwa, Id_kategorii, Cena, Kategoria_nazwa, Warto.
Poszczeglne pola uzupeniamy korzystajc z nastpujcych zalenoci:

Przykadowe zadania z rozwizaniami

63

wartoci Produkt_nazwa, Kategoria i Cena mona odczyta z tabeli produkt,


w oparciu o Id_produktu,
warto Kategoria_nazwa mona odczyta z tabeli kategoria, po wyznaczeniu
Id_kategorii,
pole Warto jest rwne iloczynowi pl Ilosc i Cena.
Docelowo chcielibymy uzyska poniszy efekt:

Aby moliwe byo utworzenia opisanej powyej tabeli, potrzebna jest nam metoda na
wyszukiwanie w tabeli wierszy z ustalon wartoci pewnego pola i wybieranie z takich
wierszy wartoci innych pl. Wykorzystalimy do tego funkcj WYSZUKAJ.PIONOWO
o czterech parametrach:
pierwszy okrela wyszukiwan warto,
drugi definiuje obszar przeszukiwania (warto szukana jest w pierwszej kolumnie
obszaru),
trzeci parametr wskazuje, z ktrej kolumny obszaru naley pobra wynikow warto,
czwarty parametr okrela czy wyszukiwanie ma by dokadne czy te przedziaowe
(w naszym przypadku wpisujemy warto FASZ oznaczajc dokadne wyszukiwanie).
Dziaanie funkcji zilustrujemy na przykadzie. Zamy, e w kolumnie B znajduj si wartoci
Id_produktu z kolejnych wierszy tabeli sprzedaz. Aby w kolumnie C uzyska nazw
produktu, wpisujemy nastpujce parametry funkcji WYSZUKAJ.PIONOWO (w wierszu 2):
B2 jako wyszukiwan warto;
obszar zajmowany przez tabel produktw (w naszym przykadzie
produkt!$A$2:$E$100); stosujemy adresowanie bezporednie, aby obszar nie
zmienia si przy kopiowaniu;
liczb 2 jako trzeci parametr, gdy nazwy produktw znajduj si w drugiej kolumnie
tabeli produkt.
Poniej zaczamy ilustracj tego przykadu:

64

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Majc dostp do tabeli, w ktrej wiersze z tabeli sprzedaz uzupenione s o powizane


z nimi informacje z tabel produkt i kategoria, punkty b), c) i d), moemy rozwiza,
stosujc tabele przestawne w powizaniu z sortowaniem i filtrowaniem danych.
Podpunkt b
Stosujemy grupowanie wg nazwy kategorii przecigajc Kategoria_nazwa jako pole
wierszy.
W obszarze wartoci umieszczamy sum pola Warto (przecigamy nazw pola do
odpowiedniego obszaru).
Podpunkt c
Sortujemy dane malejco wzgldem nazwy kategorii, co spowoduje, e wyroby_korkowe
pojawi si w pocztkowym bloku tabeli. Tabel przestawn tworzymy tylko dla tego
fragmentu tabeli. Wybieramy Produkt_nazwa jako pole wierszy, a w obszarze wartoci
umieszczamy sum pola Ilo (i wg niej sortujemy).
Podpunkt d
Aby ograniczy analiz do podanych kategorii, najpierw sortujemy dane wg nazwy kategorii
i usuwamy wiersze z innych kategorii ni parkiet_korkowy i panele_korkowe. Za pole wierszy
przyjmujemy Produkt_nazwa, pole kolumn to Kategoria_nazwa, a w obszarze
wartoci umieszczamy sum pola Ilo.
Zapalonym programistom zaleci warto lepsze poznanie jzyka SQL, w ktrym mona
samodzielnie formuowa zapytania do bazy danych lub modyfikowa zapytania utworzone za
pomoc interaktywnych narzdzi do tworzenia kwerend. Pozwoli to rozwizywa zadania
tego typu z wykorzystaniem bardzo elastycznego jzyka, unikajc ogranicze bd
niedogodnoci interaktywnego tworzenia kwerend w MS Access.
Rozwizania bazodanowe dla podpunktw a) c) uzyska mona, tworzc do standardowe
kwerendy wybierajce z zastosowaniem grupowania. Po utworzeniu relacji czcych
wszystkie trzy tabele, punkty te nie powinny nastrcza wikszych trudnoci wprawnym
uytkownikom MS Access lub innych systemw bazodanowych. W rozwizaniu podpunktu d)
zaprezentowalimy potencja kwerend krzyowych, cho punkt ten mona rwnie rozwiza
w sposb bardziej standardowy, korzystajc z faktu, e wynik naley uzyska tylko dla dwch
kategorii produktw (mona na przykad utworzy dwie kwerendy jedn dla kategorii
parkiet_korkowy, a drug dla kategorii panele_korkowe).
Odnonie zaprezentowanego rozwizania zadania w arkuszu kalkulacyjnym naley zaznaczy,
e wizanie tabel poprzez funkcj WYSZUKAJ.PIONOWO jest nieefektywne dla duych
zbiorw danych oraz niewygodne przy aktualizacji danych. Zaprezentowalimy to
rozwizanie, aby podkreli uniwersalno rnych narzdzi i zwrci uwag, e maturzysta
samodzielnie podejmuje decyzj o wyborze narzdzia do rozwizania zadania (uwzgldniajc
czas dostpny w trakcie egzaminu maturalnego).

Przykadowe zadania z rozwizaniami

65

Zadanie 20. Hotel Panorama (010)


Dane s trzy pliki tekstowe o nazwach: klienci.txt; pokoje.txt; noclegi.txt.
Zawieraj one informacje na temat zrealizowanych usug hotelowych hotelu Panorama
w okresie wakacyjnym, tzn. zameldowanie gocia nastpio od 1.07.2013 do 31.08.2013.
Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a dane w wierszach
rozdzielone s znakami tabulacji.
Plik o nazwie klienci.txt zawiera informacje o gociach hotelu. W kadym wierszu
pliku znajduj si nastpujce dane: numer dowodu osobistego gocia hotelu (nr_dowodu),
nazwisko (nazwisko), imi (imie) i miejsce zamieszkania (miejscowosc).
Przykad:
nr_dowodu
SAS253401
UNC608098
NMZ567271

nazwisko
Pastuszak
Siudut
Konopka

imie
Joanna
Anna
Kamil

miejscowosc
Szczecin
Jaworzno
Tarnowskie Gory

Plik o nazwie pokoje.txt zawiera w kadym wierszu: numer pokoju (nr_pokoju),


maksymaln liczb osb, ktre mog nocowa w pokoju (liczba_osob), standard pokoju
(standard), gdzie S oznacza pokj standardowy, W pokj o podwyszonym
standardzie oraz cen wynajcia pokoju na jedn dob (cena).
Przykad:
nr_pokoju
101
102
103

liczba_osob
2
2
2

standard
S
S
S

cena
220
220
220

Plik o nazwie noclegi.txt zawiera w kadym wierszu: identyfikator noclegu (id_noc),


dat przyjazdu gocia hotelu (data_przyjazdu), dat wyjazdu gocia (data_wyjazdu),
numer dowodu osobistego gocia korzystajcego z danego noclegu (nr_dowodu), numer
pokoju (nr_pokoju), oraz dodatkowe usugi, z ktrych skorzysta go podczas noclegu
(uslugi).
Przykad:
id_noc data_przyjazdu
198
2013-07-10
199
2013-07-10
206
2013-07-10

data_wyjazdu
2013-07-12
2013-07-11
2013-07-13

nr_dowodu
JAA932190
SIS395155
RMS452742

nr_pokoju
501
108
113

uslugi
2020
1010
0030

Korzystanie z dodatkowych usug odnotowane jest w postaci liczb jednocyfrowych.


Na pierwszej pozycji od lewej strony odnotowana jest liczba konsumowanych niada (cena
jednostkowa 20 z), na drugiej pozycji liczba wej na basen (cena jednostkowa 30 z),
na trzeciej parking (cena jednostkowa 15 z), a na ostatniej pozycji czyszczenie ubrania
(cena jednostkowa 35 z).
Na przykad zapis:
2020 oznacza, e go 2 razy jad niadanie w hotelu (2*20 z), nie korzysta z basenu,
przez 2 doby parkowa samochd na hotelowym parkingu (2*15 z) oraz nie oddawa ubrania
do czyszczenia. W zwizku z tym do kosztu noclegu dopisuje si koszt dodatkowych usug
w wysokoci 70 z.

66

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

1130 oznacza, e go zjad jeden raz niadanie w hotelu (1*20 z), jeden raz skorzysta
z basenu (1*30 z) i przez 3 doby parkowa samochd na hotelowym parkingu (3*15 z) oraz
nie oddawa ubrania do czyszczenia. Gociowi do kosztu noclegu dopisuje si koszt
dodatkowych usug w wysokoci 95 z.
Uwaga: adna z usug nie bya zamawiana wicej ni 9 razy.
Korzystajc z danych zawartych w tych plikach oraz z dostpnych narzdzi informatycznych,
wykonaj ponisze polecenia. Kad odpowied umie w pliku wyniki.txt, poprzedzajc
j oznaczeniem odpowiedniego podpunktu od a) do e).
a) Podaj imi i nazwisko gocia, ktry skorzysta z najwikszej liczby noclegw podczas
jednorazowego pobytu w hotelu Panorama. Podaj liczb tych noclegw.
b) Podaj zestawienie (imi i nazwisko) osb z Krakowa goszczcych w hotelu Panorama,
ktrzy korzystali z parkingu.
c) Utwrz list miejscowoci, z ktrych co najmniej 15 rnych osb nocowao cho raz
w hotelu Panorama. Zestawienie posortuj alfabetycznie.
d) Podaj kwot uzyskan z tytuu wynajmu pokoi oraz kwot uzyskan z opat za korzystanie
przez goci z dodatkowych usug w okresie od 1.07.2013 do 31.08.2013.
e) Podaj numery pokoi o podwyszonym standardzie, z ktrych nigdy nie korzystali gocie
z Krakowa.
Do oceny oddajesz plik(i) o nazwie(ach) ,
tu wpisz nazw(y) pliku(w)

zawierajcy(e) komputerow(e) realizacj(e) Twoich oblicze oraz plik tekstowy o nazwie


wyniki.txt z odpowiedziami do podpunktw a), b), c), d), e).

Wymagania oglne

Wymagania szczegowe

II. Wyszukiwanie, gromadzenie i przetwarzanie


informacji z rnych rde; opracowywanie
za pomoc komputera: rysunkw, tekstw danych
liczbowych, motyww, animacji, prezentacji
multimedialnych.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji,
korzystanie z rnych rde i sposobw zdobywania
informacji.
Zdajcy:
2) projektuje relacyjn baz danych z zapewnieniem
integralnoci danych,
3) stosuje metody wyszukiwania i przetwarzania
informacji w relacyjnej bazie danych; tworzy
aplikacj bazodanow, wykorzystujc jzyk zapyta,
kwerendy, raporty; zapewnia integralno danych
na poziomie pl, tabel, relacji.

Przykadowe zadania z rozwizaniami

67

Schemat punktowania
Podpunkt

Czynno
Za poprawn odpowied 2 punkty,
w tym za:
imi i nazwisko 1 punkt.
liczb noclegw 1 punkt.
Za poprawn odpowied 2 punkty.
W przypadku powtrze 1 punkt.
Za poprawn odpowied 2 punkty,
w tym za:
podanie listy 1 punkt.
za prawidowe posortowanie 1 punkt.
Za poprawn odpowied 2 punkty,
w tym za:
kwot uzyskan z tytuu wynajmu pokoi 1 punkt.
kwot uzyskan z opat za korzystania przez goci
z dodatkowych usug 1 punkt.
Za poprawn odpowied 2 punkty.
W przypadku braku jednego numeru lub wystpienia
jednego numeru nieprawidowego 1 punkt.

Liczba
Liczba
punktw punktw
za
za
podpunkt zadanie
2

2
10

Zadanie 20. Hotel Panorama (010) rozwizanie


Plik zawierajcy rozwizanie znajduj si w folderze HOTEL.
Komentarz
Zadanie Hotel Panorama naley do grupy zada, ktre mog by rozwizywane narzdziami
bazodanowymi lub z wykorzystaniem arkusza kalkulacyjnego. Baza skada si z trzech tabel:
klienci (klucz gwny nr_dowodu), pokoje (klucz gwny nr_pokoju) i noclegi (klucz
gwny Id_noclegu). Tabela klienci poczona zostanie z tabel noclegi relacj typu jeden
do wielu, podobnie tabel pokoje z tabel noclegi czy relacja typu jeden do wielu.

68

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

W Accessie import plikw z danymi jest prosty. Ambitni maturzyci mog utworzy baz
i zapytania w jzyku SQL:
-- utworzenie bazy danych hotel
create database hotel;
-- ustawienie bazy hotel jako domylnej
use hotel;
-- utworzenie tabeli noclegi
CREATE TABLE `noclegi` (
`id_noc` int NOT NULL,
`data_przyjazdu` date NOT NULL,
`data_wyjazdu` date NOT NULL,
`nr_dowodu` char(9) NOT NULL,
`nr_pokoju` int NOT NULL,
`uslugi` int(1) NOT NULL,
PRIMARY KEY (`id_noc`)
);
-- zaladowanie danych do tabeli noclegi
LOAD DATA INFILE
"C:\\Dane_hotel\\noclegi.csv" INTO TABLE `noclegi` FIELDS
TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES
TERMINATED BY '\n' (id_noc,data_przyjazdu,data_wyjazdu,nr_dowodu,nr_pokoju,uslugi);
-- utworzenie tabeli klienci
CREATE TABLE `klienci` (
`nr_dowodu` char(9) NOT NULL,
`nazwisko` char(20) NOT NULL,
`imie`
char(20) NOT NULL,
`miejscowosc` char(20) NOT NULL,
PRIMARY KEY (`nr_dowodu`)
);
-- zaladowanie danych do tabeli klienci
LOAD DATA INFILE
"C:\\Dane_hotel\\klienci.csv" INTO TABLE `klienci` FIELDS
TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES
TERMINATED BY '\n' (nr_dowodu,nazwisko,imie,miejscowosc);
-- utworzenie tabeli pokoje
CREATE TABLE `pokoje` (
`nr_pokoju` int(11) NOT NULL,
`liczba_osob` int(11) NOT NULL,
`standard` char(1) NOT NULL,
`cena`
int(11) NOT NULL,
PRIMARY KEY (`nr_pokoju`)
);

Przykadowe zadania z rozwizaniami

69

-- zaladowanie danych do tabeli pokoje


LOAD DATA INFILE
"C:\\Dane_hotel\\pokoje.csv" INTO TABLE `pokoje` FIELDS
TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES
TERMINATED BY '\n' (nr_pokoju,liczba_osob,standard,cena);
W poleceniu a) naley poda imi i nazwisko gocia, ktry skorzysta z najwikszej liczby
noclegw podczas jednorazowego pobytu w hotelu Panorama oraz liczb tych noclegw. Aby
poda odpowied na tak postawione pytanie, naley obliczy liczb nocy, odejmujc od daty
wyjazdu dat przyjazdu, znale maksimum i odpowiadajc temu maksimum osob.
Zapytanie a:
SELECT Klienci.imie, Klienci.nazwisko, (data_wyjazdu-data_przyjazdu) AS Liczba_nocy
FROM Klienci, Noclegi
WHERE ((Klienci.nr_dowodu)=(Noclegi.nr_dowodu))
ORDER BY (data_wyjazdu-data_przyjazdu) DESC;
W MySQLu do obliczenia liczby noclegw naley uy funkcji TO_DAYS:
SELECT imie, nazwisko, to_days(data_wyjazdu)-to_days(data_przyjazdu) AS liczba_nocy
FROM Klienci, Noclegi
WHERE ((Klienci.nr_dowodu)=( Noclegi.nr_dowodu))
ORDER BY liczba_nocy DESC;
Aby wykona zestawienie goci z Krakowa, ktrzy korzystali z parkingu, naley utworzy
zapytanie odnoszce si do dwch tabel: Klienci i Noclegi. Informacja o korzystaniu gocia
z parkingu zapisana zostaa w kolumnie usugi na trzeciej pozycji, liczc od strony lewej.
Cyfra oznaczajca liczb parkowa powinna by rna od zera. Jeeli kolumna usugi
przechowuje dane typu char, to wyodrbnienie informacji o parkowaniu mona uzyska za
pomoc funkcji MID(nazwa_kolumny,pierwszy_znak,liczba_znakw).
Jeeli kto preferuje prac w arkuszu kalkulacyjnym, moe zastosowa funkcj
FRAGMENT.TEKSTU(tekst,liczba_pocztkowa,liczba_znakw). Dodatkowym warunkiem
jest pochodzenie goci z Krakowa (tabela Klienci, kolumna miejscowo).
Zapytanie b:
SELECT klienci.nr_dowodu, imie, nazwisko
FROM Klienci, Noclegi
WHERE Klienci.nr_dowodu = Noclegi.nr_dowodu AND Miejscowosc='Krakow' AND
Mid(uslugi,3,1)<>'0'
GROUP BY klienci.nr_dowodu, imie, nazwisko;
W poleceniu SELECT obok imienia i nazwiska dodano pole nr_dowodu, ktre jednoznacznie
identyfikuje klienta, aby wykluczy pominicie osb o takim samym imieniu i nazwisku.
W celu utworzenia listy miejscowoci, z ktrych co najmniej 15 rnych osb nocowao cho
raz w hotelu Panorama, naley utworzy zapytanie pomocnicze w wyniku ktrego otrzymamy
zestawienie numerw dowodw osobistych (z tabeli Noclegi) oraz miejscowoci (z tabeli
Klienci). Dziki grupowaniu otrzymamy zestawienie bez powtrze (czyli noclegi rnych
osb).
Zapytanie c:
SELECT Noclegi.nr_dowodu, Klienci.miejscowosc
FROM Noclegi, Klienci
WHERE ((Noclegi.nr_dowodu)=(Klienci.nr_dowodu))
GROUP BY Noclegi.nr_dowodu, Klienci.miejscowosc;

70

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Korzystajc z wynikw pomocniczego zapytania, policzymy miejscowoci i wypiszemy tylko


te, ktre wystpoway w zestawieniu pomocniczym przynajmniej 15 razy (HAVING
count(*)>=15). Na koniec naley je uporzdkowa alfabetycznie (ORDER BY miejscowo).
Kwerenda c1:
SELECT miejscowosc,
FROM c
GROUP BY miejscowosc
HAVING count(*)>=15
ORDER BY miejscowosc;
Aby poda kwot uzyskan z tytuu wynajmu pokoi, naley w pierwszej kolejnoci dla kadego
identyfikatora noclegu obliczy iloczyn liczby nocy i ceny pojedynczego noclegu
w wynajmowanym pokoju.
Kwerenda d:
SELECT id_noc, (to_days(data_wyjazdu)-to_days(data_przyjazdu))*cena AS cena_noclegow
FROM Pokoje, Noclegi
WHERE Pokoje.nr_pokoju=Noclegi.nr_pokoju;
Po zsumowaniu wartoci wszystkich noclegw otrzymamy kwot uzyskan z tytuu wynajmu
pokoi:
Kwerenda d1:
SELECT Sum(cena_noclegow) AS Za_noclegi
FROM d;
Aby obliczy kwot uzyskan z opat za korzystanie przez goci z dodatkowych usug, naley
dla kadego identyfikatora noclegu wyodrbni liczb wykorzystanych usug i pomnoy
przez cen tej usugi. Funkcja VAL zamienia warto typu char na warto typu int.
W MySQLu bdzie to funkcja CAST.
Kwerenda d2:
SELECT Sum(20*Val(Mid(uslugi,1,1))) AS sniadanie,
Sum(30*Val(Mid(uslugi,2,1))) AS basen,
Sum(15*Val(Mid(uslugi,3,1))) AS parking,
Sum(35*Val(Mid(uslugi,4,1))) AS czyszczenie
FROM Noclegi;
Kwerenda d2:
SELECT sniadanie+basen+parking+czyszczenie AS Za_uslugi
FROM d2;
W ostatnim poleceniu naley poda numery pokoi o podwyszonym standardzie, z ktrych
nigdy nie korzystali gocie z Krakowa. W tym celu zostao utworzone podzapytanie dajce
w wyniku numery pokoi o podwyszonym standardzie w ktrych byli gocie z Krakowa,
a nastpnie pytanie zewntrzne: wybierz numery pokoi o podwyszonym standardzie z tabeli
pokoje nie wystpujce w zestawieniu bdcym wynikiem podzapytania.
Kwerenda e:
SELECT Pokoje.nr_pokoju
FROM pokoje
WHERE standard='W' AND pokoje.nr_pokoju NOT IN
(SELECT Noclegi.nr_pokoju
FROM Noclegi,Pokoje, Klienci

Przykadowe zadania z rozwizaniami

71

WHERE Klienci.nr_dowodu = Noclegi.nr_dowodu AND Noclegi.nr_pokoju =


Pokoje.nr_pokoju
AND standard='W' AND miejscowosc='krakow'
GROUP BY Noclegi.nr_pokoju);
Zadanie 21. Podzielno (010)
W trzech plikach tekstowych liczby1.txt, liczby2.txt i liczby3.txt zapisano
po 1000 dodatnich liczb binarnych. W kadym pliku liczby zapisano w kolejnych wierszach
po jednej liczbie w wierszu. W pliku liczby1.txt dugo zapisu kadej z liczb jest nie
wiksza od 12. W pliku liczby2.txt dugo zapisu kadej z liczb jest nie wiksza od 30,
za w pliku liczby3.txt dugo zapisu kadej liczby nie przekracza 200.
Dla kadego z plikw z danymi wyznacz, ile zawiera on
liczb podzielnych przez 2,
liczb podzielnych przez 3,
liczb podzielnych przez 5.
Przykad:
W pliku z 3 liczbami binarnymi:
10101
1100
1110
s 2 liczby podzielne przez 2, 1 liczba podzielna przez 3 i 1 liczba podzielna przez 5.
Do oceny oddajesz plik(i) o nazwie ..zawierajcy
tu wpisz nazw pliku/plikw

komputerow realizacj Twoich oblicze oraz plik tekstowy podzielnosc.txt


zawierajcy w dziewiciu kolejnych wierszach dziewi liczb, po jednej w wierszu. Pierwsze
trzy wiersze powinny zawiera liczby liczb z pliku liczby1.txt podzielnych odpowiednio
przez 2, 3 i 5. Kolejne trzy wiersze powinny zawiera liczby liczb z pliku liczby2.txt
podzielnych odpowiednio przez 2, 3 i 5, a ostatnie trzy wiersze liczby liczb z pliku
liczby3.txt podzielnych odpowiednio przez 2, 3 i 5.

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje
problemowe z rnych dziedzin,
11) opisuje podstawowe algorytmy i stosuje algorytmy
na liczbach cakowitych,
12) projektuje rozwizanie problemu (realizacj
algorytmu) i dobiera odpowiedni struktur danych,
15) stosuje zasady programowania strukturalnego
i modularnego do rozwizywania problemu,
23) stosuje podstawowe konstrukcje programistyczne
w wybranym jzyku programowania, instrukcje
iteracyjne i warunkowe, rekurencj i procedury,

72

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

instrukcje wejcia i wyjcia, poprawnie tworzy


struktur programu,
24) dobiera najlepszy algorytm, odpowiednie
struktury danych i oprogramowanie do rozwizania
postawionego problemu,
26) ocenia poprawno komputerowego rozwizania
na podstawie jego testowania.
Schemat punktowania
Czynno
Za poprawne wyniki dla pliku 1 2 punkty.
Za poprawne wyniki dla pliku 2 3 punkty.
Za poprawne wyniki dla pliku 3 4 punkty.

Liczba
punktw
za zadanie
9

Zadanie 21. Podzielno (010) - rozwizanie


Pliki z danymi, plik programu rdowego oraz plik podzielnosc.txt zawierajcy
odpowiedzi znajduj si w folderze PODZIELNOSC.
Komentarz
Jedna z metod rozwizania tego zadania moga by polega na przytoczeniu i wykorzystaniu
wasnoci podzielnoci liczb binarnych. O ile wasno podzielnoci przez 2 jest oczywista
i powszechnie znana najmniej znaczc cyfr takiej liczby musi by 0 to ju wasnoci
podzielnoci liczby binarnych przez inne liczby nie s tak naturalne i znane. Dla kadego
dzielnika taka wasno byaby pewnie inna i prowadziaby do algorytmu waciwego tylko
dla tej wasnoci. Przedstawimy algorytm, ktry jest jednakowy dla wszystkich dzielnikw
z dokadnoci do parametru, ktrym jest wanie dzielnik.
Jest naturalne rozwizanie, ktre pozwala stwierdzi, czy dana, dodatnia liczba binarna b,
jest podzielna cakowicie przez dodatni (dziesitn) liczb cakowit p. Wystarczy obliczy
(dziesitn) warto d liczby b i sprawdzi, czy p dzieli cakowicie d. W tym celu
wykorzystujemy dostpny w wikszoci jzykw programowania operator mod obliczania
reszty z dzielenia liczb cakowitych i sprawdzamy, czy d mod p = 0. Do zamiany liczby
binarnej b na jej odpowiednik dziesitny d mona zastosowa schemat Hornera. Prawda
jakie to proste? Jest tylko jeden may problem. W kolejnych plikach z danymi s coraz
wiksze liczby. W pliku liczby1.txt dugo zapisu kadej z liczb jest nie wiksza ni 12
i do zapisu kadej takiej liczby wystarczaj dwa bajty, do zapisu jednej liczby z pliku
liczby2.txt potrzeba ju 4 bajtw, natomiast do zapisu liczby z pliku liczby3.txt
moe by potrzebnych 25 bajtw na kad z nich. Jeli jzyk programowania uyty do
rozwizania pozwala reprezentowa tak due liczby i umoliwia wykonywanie na nich
podstawowych arytmetycznych dodawanie, mnoenie i branie modulo to powyej opisane
rozwizanie jest wystarczajce. Czsto jednak jzyki programowania nie umoliwiaj
bezporedniego operowania na bardzo duych liczbach. Wwczas pozostaje albo
zaprogramowa wasn arytmetyk duych liczb, albo, jak w tym przypadku, skorzysta
z pewnych wasnoci uywanych operacji arytmetycznych. Tutaj skorzystamy z wasnoci
operacji modulo brania reszty z dzielenia, ktre to wasnoci pozwalaj nam operowa tylko
na resztach z dzielenia przez dzielnik p, a nie na caych liczbach. Kada taka reszta jest nie
wiksza od p. Dwie podstawowe, wykorzystywane przez nas wasnoci s nastpujce:

Przykadowe zadania z rozwizaniami

73

Dla dodatnich liczb cakowitych a, b i p mamy:


(1) (a + b) mod p =( a mod p + b mod p) mod p
(2) (a*b) mod p = ((a mod p) * (b mod p)) mod p
Tak wic do policzenia reszty z dzielenia przez p dodatniej liczby cakowitej d, ktrej warto
jest taka sama jak warto liczby binarnej b, naley po prostu zastosowa schemat Hornera
obliczania wartoci d z zapisu b pamitajc, eby wszystkie obliczenia wykonywa modulo p.
Oto funkcja zapisana w jzyku programowania C++, ktra dla liczby binarnej b podanej
w postaci zero-jedynkowego napisu i dodatniego, cakowitego podzielnika p, oblicza reszt
z dzielenia wartoci dziesitnej liczby b przez p.
int Reszta(string b, int p){
const char zero = '0';
int dl = b.length(); //obliczenie dugoci zapisu liczby b
int d = 0; // po zakoczeniu oblicze wartoci d bdzie
// warto dziesitna liczby b modulo p
// schemat Hornera modulo p
for (int j = 0; j < dl; j++){
int cyfra = b[j] - zero;//odzyskanie kolejnej cyfry liczby b
// poczynajc od najbardziej znaczcej
d = (d*2 + cyfra) % p; // % jest operatorem modulo w C++
}
return d;
}
Naley zwrci jeszcze uwag na drobiazg, jakim jest odzyskiwanie wartoci liczbowych
kolejnych cyfr zapisu liczby b. Liczba b jest zadana jako napis zoony ze znakw 0 i 1.
Kady ze znakw 0 lub 1 do oblicze arytmetycznych naley zamieni odpowiednio na
liczb 0 lub 1. Do tego celu najprociej wykorzysta fakt, e cyfry 0, 1, , 9 s
kodowane kolejnymi liczbami naturalnymi poczynajc od kodu znaku 0. Tak wic, gdy od
kodu cyfry odejmiemy kod cyfry 0, to otrzymamy liczb odpowiadajc tej cyfrze.
W przedstawionym powyej rozwizaniu wykorzystujemy ten fakt warto wyraenia b[j]
- zero jest obliczana z wykorzystaniem kodw cyfr b[j] i zero.
Poniej przedstawiamy program Podzielnosc zapisany w jzyku C++, ktry oblicza
dane wyniki dla jednego pliku. Dla przykadu, eby uzyska wyniki dla pliku
liczby1.txt mona program wykonywalny Podzielnosc uruchomi w katalogu
zawierajcym plik liczby1.txt nastpujc komend z wiersza polece:
Podzielnosc < liczby1.txt > wyniki1.txt
Wyniki znajd si w pliku tekstowym wyniki1.txt w tym samym katalogu. Na koniec
trzeba pamita, eby wyniki oblicze dla wszystkich trzech plikw umieci w jednym pliku
tekstowym podzielnosc.txt zgodnie z opisem w treci zadania.
//Program Podzielnosc
#include <iostream>
using namespace std;
int Reszta(string b, int p){
const char zero = '0';

74

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

int dl = b.length(); //obliczenie dugoci zapisu liczby b


int d = 0; //po zakoczeniu oblicze wartoci d bdzie
// warto dziesitna liczby b modulo p
// schemat Hornera modulo p
for (int j = 0; j < dl; j++){
int cyfra = b[j] - zero; //odzyskanie kolejnej cyfry liczby
b
//poczynajc od najbardziej znaczcej
d = (d*2 + cyfra) % p; //% jest operatorem modulo w C++
}
return d;
}
int main(){
string liczba;
const int n = 1000; //rozmiar danych
int podz_2 = 0, podz_3 = 0, podz_5 = 0; // podz_p - liczba
liczb
// podzielnych przez p
for (int i = 0; i < n; i++){
cin >> liczba; //wczytanie kolejnej liczby;
if (Reszta(liczba,2) == 0) podz_2++;
if (Reszta(liczba,3) == 0) podz_3++;
if (Reszta(liczba,5) == 0) podz_5++;
}
cout << "podzielne przez " << 2 << " : " << podz_2 << "\n";
cout << "podzielne przez " << 3 << " : " << podz_3 << "\n";
cout << "podzielne przez " << 5 << " : " << podz_5 << "\n";
return 0;
}

Przykadowe zadania z rozwizaniami

75

Zadanie 22. Bloki trjkowe (012)


Niech n bdzie dodatni liczb cakowit i niech a1, a2, , an bdzie cigiem nieujemnych
liczb cakowitych. Dla pary liczb i, j takich, e 1 , blokiem b(i,j) nazywamy
podcig kolejnych elementw cigu a z pozycji od i do j, czyli ai, ai+1, , aj. Dugoci
bloku nazywamy liczb jego elementw. O bloku, ktrego suma elementw jest podzielna
przez 3 mwimy, e jest blokiem trjkowym.
Przykad:
W cigu 0,0,2,3,2,1,2 najduszym blokiem trjkowym jest b(4,6) = 3,2,1.
W plikach tekstowych bloki1.txt, bloki2.txt i bloki3.txt zapisano cigi
odpowiednio 1000, 30000 i 1000000 nieujemnych liczb cakowitych mniejszych od 10 000.
W kadym pliku liczby zapisano w kolejnych wierszach, po jednej liczbie w kadym wierszu.
Dla kadego pliku z danymi wyznacz dugo najduszego bloku trjkowego w cigu
zapisanym w tym pliku.
Przykad:
Dla danych z pliku z 7 liczbami:
0
0
2
3
2
1
2
dugo najduszego bloku trjkowego wynosi 3.
Do oceny oddajesz plik(i) o nazwie(ach)

tu wpisz nazw/nazwy pliku/plikw

zawierajcy(e) komputerow realizacj Twoich oblicze oraz pliki tekstowe wyniki1.txt,


wyniki2.txt, wyniki3.txt, gdzie kady z nich zawiera liczb rwn dugoci
najduszego bloku trjkowego w cigach zapisanych odpowiednio w plikach bloki1.txt,
bloki2.txt i bloki3.txt.

Wymagania oglne

Wymagania szczegowe

III. Rozwizywanie problemw i podejmowanie


decyzji z wykorzystaniem komputera, z zastosowaniem
podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji
z wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje
problemowe z rnych dziedzin,
11) opisuje podstawowe algorytmy i stosuje algorytmy
na liczbach cakowitych,
14) dobiera odpowiednie struktury danych
do realizacji algorytmu, w tym struktury dynamiczne,
15) stosuje zasady programowania strukturalnego
i modularnego do rozwizywania problemu,

76

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

23) stosuje podstawowe konstrukcje programistyczne


w wybranym jzyku programowania, instrukcje
iteracyjne i warunkowe, rekurencj i procedury,
instrukcje wejcia i wyjcia, poprawnie tworzy
struktur programu,
24) dobiera najlepszy algorytm, odpowiednie
struktury danych i oprogramowanie do rozwizania
postawionego problemu,
26) ocenia poprawno komputerowego rozwizania
na podstawie jego testowania.
Schemat punktowania
Czynno

Liczba
punktw
za zadanie

Za poprawne wyniki dla pliku 1 3 punkty.


Za poprawne wyniki dla pliku 2 4 punkty.
Za poprawne wyniki dla pliku 3 5 punktw.

12

Zadanie 22. Bloki trjkowe (012) rozwizanie


Pliki z danymi, plik programu rdowego oraz pliki wynikowe zawierajce odpowiedzi
znajduj si w folderze BLOKI TROJKOWE.
Komentarz
Uwany czytelnik szybko zauway, e proste rozwizanie jest ukryte w treci zadania.
Wystarczy przejrze wszystkie bloki, dla kadego bloku zsumowa jego elementy, sprawdzi,
czy otrzymana suma jest podzielna przez 3 i spord wszystkich blokw speniajcych ten
warunek wybra najduszy. Oto fragment algorytmu zapisany w pseudo-jzyku C++, bdcy
realizacj tego prostego pomysu:
najdluzszy = 0; // dugo najduszego z dotychczas
//przejrzanych blokw trjkowych
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++){
// obliczamy sum elementw w bloku b(i,j)
suma = 0;
for (k = i; k <= j; k++)
suma = suma + ak; // (*)
// sprawdzamy, czy suma jest podzielna przez 3, czyli
// czy reszta z dzielenia suma przez 3 daje 0
if (suma % 3 == 0){
// jeli suma jest podzielna przez 3 i blok b(i,j)
// jest duszy od dotychczas najduszego bloku
// trjkowego, to zapamitujemy jego dugo
dl = j i + 1;
if (dl >= najdluzszy)
najdluzszy = dl;
}
}
// najdluzszy jest dugoci najduszego bloku trjkowego w
// cigu a

Przykadowe zadania z rozwizaniami

77

Jedyn dobr cech powyszego rozwizania jest jego prostota i to, e w ogle mamy
jakiekolwiek rozwizanie. Poza tym przedstawione rozwizanie ma same wady.
Po pierwsze musimy pamita o tym, eby arytmetyka jzyka programowania, ktrego
uywamy, umoliwiaa operowanie na liczbach pojawiajcych si w obliczeniach.
Zauwamy, e najwiksza liczba jaka mogaby si w obliczeniach dla opisanych danych
wynosi 1 000 000 * 9 999 = 9 999 000 000. W jzyku programowania C++ najwiksza
liczba typu int ze znakiem ma warto 2 147 483 647, a bez znaku 4 294 967 295. Tak jest,
gdy typ int jest 32-bitowy. Dla 16-bitowego typu int odpowiednie wielkoci s znaczco
mniejsze. Oczywicie mona by uy typw pozwalajcych na operowanie na duo wikszych
liczbach, ale za chwil okae si, e nie jest to konieczne.
Drug wad powyszego rozwizania jest to, e musimy wielokrotnie przeglda te same
elementu cigu, a co za tym idzie najlepiej byoby cay cig wczyta do tablicy. To
w przypadku najwikszego pliku wymaga tablicy o 1 000 000 elementw. W przypadku
jzyka programowania C++ i 32-bitowego typu int wymaga to 4 000 000 bajtw, czyli okoo
4 gigabajtw pamici. Nie jest to moe duo dla wspczesnych komputerw, ale co gdyby
dane liczyy nie milion, a miliard, bilion elementw?
Trzeci wad, chyba najistotniejsz, jest powolno zaproponowanego algorytmu.
Zastanwmy si, ile cznie dodawa wykonamy w kroku (*). Nietrudno zauway, e tych
dodawa jest tyle, ile wynosi czna suma dugoci wszystkich przedziaw. T wielko
atwo oszacowa z dou. Przedziaw o dugoci co najmniej n/3 jest co najmniej (n/3)2. A
zatem czna suma wszystkich przedziaw wynosi co najmniej (n/3)3. To dla n = 1 000 000
daje wicej ni 3*1016. Komputer wykonujcy 109 dodawa na sekund spdzaby na
rozwizywaniu naszego zadania wicej ni 3*107 sekund, a to jest wicej ni 8 tysicy
godzin. To jest troch za dugo jak na czas przeznaczony na rozwizywanie zada
maturalnych!
Jeden ze sposobw poszukiwania lepszych, szybszych algorytmw polega na przyjrzeniu si
rozwizaniu, ktre ju mamy w rku i zastanowieniu si, czy nie prowadzi ono do
wykonywania wielu zbdnych operacji. Tak jest wanie w tym przypadku. Zauwamy, e dla
kadych dwch blokw b(i,j-1) i b(i,j), rnicych si tylko jednym elementem aj, liczymy
niezalenie dwie sumy ai+ ai+1 + ... + aj-1 oraz ai+ ai+1 + ... + aj, a przecie, eby dosta
drug sum wystarczy do pierwszej doda tylko aj. Jaki zysk! Zamiast j-i+1 dodawa
wykonujemy tylko jedno. Ten pomys pozwala nam natychmiast zaproponowa nastpujcy
algorytm:
najdluzszy = 0; // dugo najduszego z dotychczas
//przejrzanych blokw trjkowych
for (i = 1; i <= n; i++){
//liczymy sumy elementw w blokach o pocztkach na pozycji i
//wartoci suma bdzie suma elementw ostatniego
//przetworzonego bloku; inicjalnie suma == 0
suma = 0;
for (j = i; j <= n; j++){
// obliczamy sum elementw w bloku b(i,j)
// suma jest rwna sumie elementw w bloku b(i,j-1)
// plus aj
suma = suma + aj; // (*)

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

78

// sprawdzamy, czy suma jest podzielna przez 3, czyli


// czy reszta z dzielenia suma przez 3 daje 0
if (suma % 3 == 0){
// jeli jest podzielna przez 3 i blok b(i,j)
// jest duszy od dotychczas najduszego bloku
// trjkowego, to zapamitujemy jego dugo
dl = j i + 1;
if (dl >= najdluzszy)
najdluzszy = dl;
}
}
// najdluzszy jest dugoci najduszego bloku trjkowego w
// cigu a
Ile tym razem wykonujemy dodawa (*)? Nietrudno zauway, e tyle, ile jest blokw. eby
policzy sum elementw w bloku b(i,j), wykonujemy tylko jedno dodawanie do sumy
elementw z bloku b(i,j-1) dodajemy aj. Ile jest wszystkich blokw? Blokw o pocztku na
pozycji 1 jest n, blokw o pocztku na pozycji 2 jest n-1, blokw o pocztku na pozycji 3 jest
n-2, itd. Tak wic blokw o pocztku na pozycji i jest n-i+1. Wszystkich blokw jest
n + n-1 + ... + 1 = n(n-1)/2. Dla n = 1 000 000 ta warto wynosi 499 999 500 000. A zatem
komputer wykonujcy 109 dodawa na sekund wykonaby nasze zadanie w okoo 500
sekund, czyli w okoo 7 minut. Natomiast dla cigu o dugoci 30 000 odpowied
dostalibymy natychmiast.
W przypadku rozpatrywanego zadania mylenie algorytmiczne moe da jeszcze lepsze
efekty. Najpierw pozbdmy si problemu duych liczb. To atwe. W wierszu (*) wystarczy
sumowa modulo 3. Inaczej mwic, w zmiennej suma zamiast sumy elementw pamitamy
reszt z dzielenia tej sumy przy dzieleniu przez 3. Wicej o wykonywaniu operacji
arytmetycznych modulo napisalimy w komentarzu do zadania Podzielno. Przy tym
podejciu wiersz (*) miaby posta:
suma = (suma + aj) % 3;// (*)
Natomiast instrukcja warunkowa if (suma % 3 == 0)przybraaby posta:
if (suma == 0)
W ten sposb poradzilimy sobie z problemem duych liczb, ale czasowa zoono
obliczeniowa naszego algorytmu pozostaa bez zmian. Nastpujce spostrzeenia pozwol
przypieszy poszukiwanie najduszego bloku trjkowego. Dla kadego k = 1, 2, , n
oznaczmy przez sk sum pierwszych k elementw w cigu a. Innymi sowy sk jest sum
elementw w bloku b(1,k). Dla wygody przyjmijmy, e mamy te element a0 = 0 i w naturalny
sposb wemy s0 = 0. Zauwamy teraz, e suma elementw w bloku b(i,j),
1 i j n , jest rwna sj si-1. Dla naszych celw wartoci s wystarczy liczy modulo 3.
W takim przypadku wartoci sk moe by tylko 0, 1 lub 2. Teraz najwaniejsze:
Blok b(i,j) jest blokiem trjkowym wtedy i tylko, gdy sj oraz si-1 maj tak sam warto 0, 1,
lub 2.

Przykadowe zadania z rozwizaniami

79

Powysze spostrzeenie daje bardzo proste rozwizanie naszego zadania. Dla kadej
wartoci w = 0, 1, 2 poszukujemy pierwszej i ostatniej pozycji, dla ktrej wartoci sum s s
takie same. Najbardziej odlege pozycje wyznaczaj dugo najduszego bloku trjkowego.
Pozostaje jeszcze pytanie, czy zawsze taki blok istnieje. Osobom o zainteresowaniach
bardziej matematycznych proponujemy wykazanie, e w kadym cigu o dugoci co najmniej
3 taki blok musi istnie. Dla naszych potrzeb przyjmijmy, e blok dugoci 0 jest blokiem
trjkowym. Wwczas, jeli wynikiem dziaania naszego algorytmu jest 0, oznacza to, e
aden blok w danym cigu nie jest trjkowy.
Poniej przedstawiamy program napisany w jzyku C++, ktry konkretyzuje opisane
powyej idee.
#include <iostream>
#include <algorithm>
using namespace std;
int najdluzszy_blok(){
int poczatki = {0,-1,-1};
//poczatki[w] - pierwsza pozycja, dla ktrej suma s jest
//rwna w
// -1 oznacza, e takiej pozycjijeszcze nie
// znaleziono
int suma_mod_3 = 0;
int liczba_wczytanych = 0;
int element;
int najdluzszy;
while (cin>> element){
liczba_wczytanych++;
suma_mod_3 = (suma_mod_3 + element) % 3; //(*)
if (poczatki[suma_mod_3] == -1)
poczatki[suma_mod_3] = liczba_wczytanych;
else
najdluzszy = max(najdluzszy, liczba_wczytanych
poczatki[suma_mod_3])
}
return najdluzszy;
}
int main(){
cout << "Dl bloku: " << najdluzszy_blok() << endl;
return 0;
}
Na koniec zauwamy, e w tym algorytmie liczba dodawa (*) wynosi tylko n i na dodatek
nie musielimy najpierw wczyta caego cigu do tablicy.

80

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

Opinia KRASP o informatorach maturalnych od 2015 roku

81

Opinia Konferencji Rektorw Akademickich Szk Polskich


o informatorach maturalnych od 2015 roku

Konferencja Rektorw Akademickich Szk Polskich z wielk satysfakcj odnotowuje


konsekwentne denie systemu owiaty do poprawy jakoci wyksztacenia absolwentw
szk rednich. Konferencja z uwag obserwuje kolejne dziaania Ministerstwa Edukacji
Narodowej w tym zakresie, zdajc sobie spraw, e od skutecznoci tych dziaa w duym
stopniu zale take efekty ksztacenia osigane w systemie szkolnictwa wyszego.
W szczeglnoci dotyczy to kwestii waciwego przygotowania modziey do studiw
realizowanych z uwzgldnieniem nowych form prowadzenia procesu ksztacenia.
Podobnie jak w przeszoci, Konferencja konsekwentnie wspiera wszystkie dziaania
zmierzajce do tego, by na uczelnie trafiali coraz lepiej przygotowani kandydaci na studia.
Temu celowi suya w szczeglnoci pozytywna opinia Komisji Edukacji KRASP z 2008 roku
w sprawie nowej podstawy programowej oraz uchwaa Zgromadzenia Plenarnego KRASP
z dn. 6 maja 2011 r. w sprawie nowych zasad egzaminu maturalnego.
Z satysfakcj dostrzegamy, e wane zmiany w egzaminie maturalnym, postulowane
w cytowanej wyej uchwale zostay praktycznie wdroone przez MEN poprzez zmian
odpowiednich rozporzdze.
Przedoone do zaopiniowania informatory o egzaminach maturalnych opisuj form
poszczeglnych egzaminw maturalnych, przeprowadzanych na podstawie wymaga
okrelonych w nowej podstawie programowej, a take ilustruj te wymagania wieloma
przykadowymi zadaniami egzaminacyjnymi.
Po zapoznaniu si z przedoonymi materiaami, KRASP z satysfakcj odnotowuje:
w zakresie jzyka polskiego:
-

wzmocnienie roli umiejtnoci komunikacyjnych poprzez odejcie od prezentacji na


egzaminie ustnym i zastpienie jej egzaminem ustnym, na ktrym zdajcy bdzie musia
ad hoc przygotowa samodzieln wypowied argumentacyjn,
rezygnacj z klucza w ocenianiu wypowiedzi pisemnych,
zwikszenie roli tekstw teoretycznoliterackich i historycznoliterackich na maturze
rozszerzonej;

w zakresie historii:
-

kompleksowe sprawdzanie umiejtnoci z zakresu chronologii historycznej, analizy


i interpretacji historycznej oraz tworzenia narracji historycznej za pomoc rozbudowanej
wypowiedzi pisemnej na jeden z zaproponowanych tematw, cznie pokrywajcych
wszystkie epoki oraz obszary historii;

w zakresie wiedzy o spoeczestwie:


-

pooenie silniejszego akcentu na sprawdzanie umiejtnoci zoonych (interpretowanie


informacji, dostrzeganie zwizkw przyczynowo-skutkowych) w oparciu o poszerzony
zasb materiaw rdowych: teksty (prawne, naukowe, publicystyczne), materiay
statystyczne, mapy, rysunki itp.

82

Informator o egzaminie maturalnym z informatyki od roku szkolnego 2014/2015

w zakresie matematyki:
-

istotne zwikszenie wymaga na poziomie rozszerzonym poprzez wczenie zada


z rachunku rniczkowego i poj zaawansowanej matematyki,
istotne poszerzenie wymaga z zakresu kombinatoryki oraz teorii prawdopodobiestwa;

w zakresie biologii oraz chemii:


-

zwikszenie znaczenia umiejtnoci wyjaniania procesw i zjawisk biologicznych


i chemicznych,
mierzenie umiejtnoci analizy eksperymentu sposobu jego planowania,
przeprowadzania, stawianych hipotez i wnioskw formuowanych na podstawie
doczonych wynikw;

w zakresie fizyki:
-

zwikszenie znaczenia rozumienia istoty zjawisk oraz tworzenie formu matematycznych


czcych kilka zjawisk,
mierzenie umiejtnoci planowania i opisu wykonania prostych dowiadcze, a take
umiejtnoci analizy wynikw wraz z uwzgldnieniem niepewnoci pomiarowych;

w zakresie geografii:
-

uwzgldnienie interdyscyplinarnoci tej nauki poprzez sprawdzanie umiejtnoci


integrowania wiedzy z nauk przyrodniczych do analizy zjawisk i procesw zachodzcych
w rodowisku geograficznym,
znaczne wzbogacenie zasobu materiaw rdowych (mapy, wykresy, tabele
statystyczne, teksty rdowe, barwne zdjcia, w tym lotnicze i satelitarne), take
w postaci barwnej.

Konferencja Rektorw Akademickich Szk Polskich z zadowoleniem przyjmuje te


informacj o wprowadzeniu na wiadectwach maturalnych od 2015 roku dodatkowej formy
przedstawiania wyniku uzyskanego przez zdajcego w postaci jego pozycji na skali
centylowej, tj. okrelenie, jaki odsetek zdajcych uzyska taki sam lub sabszy wynik od
posiadacza wiadectwa. Wprowadzenie tej dodatkowej skali uwolni szkoy wysze od
dotychczasowego dylematu odnoszenia do siebie surowych wynikw kandydatw na studia
rekrutowanych na podstawie wynikw egzaminw maturalnych o istotnie rnym poziomie
trudnoci rekrutacja stanie si prostsza i bardziej obiektywna.
Reasumujc, w opinii Konferencji Rektorw Akademickich Szk Polskich zaprezentowana
w przedoonych informatorach forma matury istotnie przyczyni si do tego, e modzie
przekraczajca progi uczelni bdzie lepiej przygotowana do podjcia studiw wyszych.
5 lipca 2013 r.

Przewodniczcy KRASP
prof. zw. dr hab. Wiesaw Bany

You might also like