You are on page 1of 560

EGZAMIN MATURALNY

INFORMATYKA
Poziom rozszerzony
ZBIR ZADA
Materiay pomocnicze dla uczniw i nauczycieli

Centralna Komisja Egzaminacyjna


2015
Publikacja opracowana przez zesp koordynowany przez Renat wirko dziaajcy
w ramach projektu Budowa bankw zada realizowanego przez Centraln Komisj
Egzaminacyjn pod kierunkiem Janiny Grzegorek.

Autorzy
dr Lech Duraj
dr Ewa Koczyk
Agata Kordas-ata
Beata Laszkiewicz
Micha Malarski
dr Rafa Nowak
Rita Pluta
Dorota Roman-Jurdziska

Komentatorzy
prof. dr hab. Krzysztof Diks
prof. dr hab. Krzysztof Lory
Romualda Laskowska
Joanna migielska

Opracowanie redakcyjne
Jakub Pochrybniak

Redaktor naczelny
Julia Konkoowicz-Pniewska

Zbiory zada opracowano w ramach projektu Budowa bankw zada,


Dziaanie 3.2 Rozwj systemu egzaminw zewntrznych,
Priorytet III Wysoka jako systemu owiaty,
Program Operacyjny Kapita Ludzki
Spis treci
Wprowadzenie ............................................................................................................................ 4
1. Zadania rozwizywane bez uycia komputera.................................................................... 5
1.1. Analiza algorytmw .................................................................................................... 5
1.2. Tworzenie algorytmw .............................................................................................. 45
1.3. Praktyka w teorii ........................................................................................................ 75
1.4. Test z oglnej wiedzy informatycznej ....................................................................... 86
2. Zadania praktyczne rozwizywane z uyciem komputera ................................................ 95
2.1. Algorytmy w praktyce ............................................................................................. 111
2.2. Symulacja ................................................................................................................ 155
2.3. Przetwarzanie i tworzenie informacji ...................................................................... 172
2.4. Bazy danych ............................................................................................................ 193
3. Komentarze do zada ...................................................................................................... 227
4. Odpowiedzi ..................................................................................................................... 434
5. Wykaz umiejtnoci oglnych i szczegowych sprawdzanych zadaniami ................... 518
Wprowadzenie
Prezentowany zbir zada z informatyki z rozwizaniami adresowany jest przede wszystkim
do uczniw szk ponadgimnazjalnych przygotowujcych si do egzaminu maturalnego
z informatyki w formule obowizujcej od 2015 r.. Zbir zosta przygotowany tak, aby mona
byo z niego korzysta zarwno podczas samodzielnej pracy w domu, jak rwnie na lekcjach
informatyki pod kierunkiem nauczyciela. W zbiorze znajduje si 110 wizek zada,
ilustrujcych wszystkie rodzaje zagadnie stosowanych na egzaminie maturalnym (w tym
zadania pojedyncze oraz zadania skadajce si z kilku polece).
Zbir skada si z kilku rozdziaw. Rozdzia pierwszy i drugi to treci zada. Zostay one
przygotowane w taki sposb, jak s prezentowane zadania na egzaminie maturalnym: rozdzia
pierwszy to zadania rozwizywane bez uycia komputera (arkusz I), rozdzia drugi to zadania
praktyczne takie, ktrych rozwizanie wymaga zastosowania znanych narzdzi
informatycznych (arkusz II). Rozdzia drugi zosta poprzedzony obszernym wstpem
teoretycznym, opisujcym sposoby importowania danych do bazy danych, arkusza
kalkulacyjnego oraz wczytywania i wypisywania danych w zadaniach programistycznych.
W rozdziale trzecim umieszczono omwienie sposobw rozwizania zada, przydatne
szczeglnie tym uczniom, ktrzy potrzebuj podpowiedzi. Czwarty rozdzia zawiera
odpowiedzi do wszystkich zada, a pity najistotniejsze sprawdzane zadaniami wymagania
oglne i szczegowe z Podstawy programowej.
Zakres treci i umiejtnoci sprawdzanych zadaniami jest zgodny z zapisem w podstawie
programowej informatyki dla III etapu edukacyjnego (gimnazjum) i IV (szkoa
ponadgimnazjalna). Zadania zgrupowano w omiu dziaach tematycznych bdcych ilustracj
wymaga szczegowych podstawy programowej przedmiotu Informatyka. S to: analiza
algorytmw, tworzenie algorytmw, praktyka w teorii, test z oglnej wiedzy informatycznej,
algorytmy w praktyce, symulacja, przetwarzanie i tworzenie informacji, bazy danych.
W zbiorze znajduj si zadania wymagajce udzielenia krtkiej odpowiedzi (sowo, kilka
sw, zdanie, kilka zda), zadania reprezentujce rne typy zada zamknitych, np.: zadania
wyboru wielokrotnego, z luk, zadania typu: prawda-fasz, a take wiele zada praktycznych
do rozwizania z uyciem poznanych narzdzi informatycznych.
Aby uatwi uczniom przygotowujcym si samodzielnie do egzaminu maturalnego
korzystanie ze zbioru zada, w rozdziale trzecim umieszczono komentarze do zada i
dokadne opisy rozwiza. Komentarze zawieraj szczegowe wskazwki przydatne do
rozwizania zadania, opisy zastosowanych algorytmw, fragmenty kodw programw oraz
uwagi, ktre mog stanowi podstaw do przemyle i samodzielnej pracy nad zadaniami. Z
uwagi na rosnc liczb zdajcych, ktrzy wybieraj na egzaminie maturalnym jzyk
programowania C/C++, rozwizania zada programistycznych przedstawiono w tym wanie
jzyku.
Mamy nadziej, e proponowany zbir zada bdzie pomocny uczniom w przygotowaniu si
do egzaminu maturalnego z informatyki, a nauczycielom w monitorowaniu zgodnoci
przebiegu procesu nauczania z obowizujc Podstaw programow przedmiotu informatyka.
Autorzy
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
5

1. Zadania rozwizywane bez uycia komputera

1.1. Analiza algorytmw

Zadanie 1.
Wizka zada Cigi rekurencyjne
Dana jest nastpujca funkcja rekurencyjna:
funkcja wynik( i )
jeeli i < 3
zwr 1 i zakocz;
w przeciwnym razie
jeeli i mod 2 = 0
zwr wynik(i 3) + wynik(i 1) + 1
w przeciwnym razie
zwr wynik(i 1) mod 7
Uwaga: Operator mod oznacza reszt z dzielenia.

1.1.
Uzupenij ponisz tabel:
i wynik(i)
2 1
3
4
5
6
7
8

1.2.
Wykonaniem elementarnym nazywa bdziemy wykonanie wynik(0), wynik(1) lub wynik(2).
Natomiast zoonoci elementarn wynik(i) nazywamy liczb wykona elementarnych
bdcych efektem uruchomienia wynik(i). Zoono elementarn wynik(i) oznaczamy przez
E(i).
Na przykad zoono elementarna wynik(4) wynosi E(4) = 2, poniewa wykonujc wynik(4),
wywoamy wynik(3) i wynik(1) (wykonanie elementarne), a z kolei przy wykonaniu wynik(3)
wywoamy wynik(2) (drugie wykonanie elementarne).
Uzupenij ponisz tabel:
6 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

i E(i)
0 1
3 1
5
7
9
10
Okazuje si, e E(i) mona opisa rekurencyjnym wyraeniem, ktrego niekompletn posta
podajemy poniej. Uzupenij brakujce miejsca tak, aby E(i) dawao poprawn zoono
elementarn wynik(i) dla kadego cakowitego nieujemnego i.
E(0) = E(1) = E(2) = 1
E(i) = E( .................... ) + E( ............... ) dla parzystego i > 2
E(i) = E( .................... ) dla nieparzystego i > 2

1.3.
Naszym celem jest wyznaczenie najwikszej liczby spord wartoci funkcji wynik(0),
wynik(1),,wynik(1000) bez koniecznoci rekurencyjnego wyznaczania kolejnych wartoci.
Poniej prezentujemy niekompletny algorytm realizujcy to zadanie.
W[0] 1
W[1] 1
W[2] 1
max_wart 1
dla i = 3, 4, , 1 000 wykonuj
jeeli i mod 2 = 0
W[i] ...................................................................
w przeciwnym razie
W[i] ....................................................................
jeeli W[i] > max_wart
....................................................................
zwr max_wart
Uzupenij brakujce miejsca w algorytmie tak, aby zwraca on najwiksz liczb spord
wynik(0), wynik(1),,wynik(1000).

Komentarz do zadania

1.1.
Do rozwizania tego zadania stosujemy definicj rekurencyjn wynik(i), wynikajc wprost
z podanego pseudokodu:
wynik(0) = wynik(1) = wynik(2)=1
wynik(i) = wynik(i 3) + wynik(i 1) + 1 dla parzystych i>2
wynik(i) = wynik(i 1) mod 7 dla nieparzystych i>2
A zatem:
wynik(3) = wynik(2) mod 7 = 1 mod 7 = 1
wynik(4) = wynik(3) + wynik(1) + 1 = 1 + 1 + 1 = 3
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
7
wynik(5) = wynik(4) mod 7 = 3 mod 7 = 3
wynik(6) = wynik(5) + wynik(3) + 1 = 3 + 1 + 1 = 5
wynik(7) = wynik(6) mod 7 = 5 mod 7 = 5
wynik(8) = wynik(7) + wynik(5) + 1 = 5 + 3 + 1 = 9
Zwrmy uwag, e w powyszym rozwizaniu dla kolejnych argumentw (wikszych ni 2)
funkcja wynik jest wywoywana wielokrotnie. Nie musimy jej jednak wielokrotnie
wyznacza, np. raz obliczony wynik(3) moemy wykorzysta przy kadym odwoaniu, bez
ponownego obliczania.

1.2.
Najpierw rozwiemy drug cz zadania, czyli podamy zaleno rekurencyjn, okrelajc
zoono elementarn. Na podstawie tej zalenoci atwo rozwiemy pierwsz cz
zadania.
Poniewa wykonania wynik(0), wynik(1) oraz wynik(2) kocz si natychmiastowym
zwrceniem wyniku, kademu z nich odpowiada dokadnie jedno wykonanie elementarne. To
daje nam warunek brzegowy rekurencji:
E(0) = E(1) = E(2) = 1.
Natomiast dla kadego i>2 sytuacja jest zalena od parzystoci liczby i:
Dla parzystych i>2 wykonanie wynik(i) pociga za sob wykonanie wynik(i1) oraz
wynik(i3). Zgodnie z przyjtymi oznaczeniami wykonanie wynik(i1) wymaga E(i1)
wykona elementarnych. Analogicznie wynik(i3) wymaga E(i3) wykona
elementarnych. Zatem wynik(i) pociga za sob E(i1) + E(i3) wykona
elementarnych. Std:
E(i) = E(i1) + E(i3) dla parzystego i>2.
Z kolei wykonanie wynik(i) dla nieparzystego i > 2 powoduje tylko wykonanie
wynik(i1). Std:
E(i) = E(i1) dla nieparzystego i>2.
Ostatecznie:
1, dla i {0,1, 2},

E (i ) E (i 3) E (i 1), dla parzystego i 2,
E (i 1), dla nieparzystego i 2,

Znajc rekurencyjn formu dla wyznaczania E(i), moemy wypeni podan w zadaniu
tabelk, stosujc t formu dla kolejnych i=3,4, ,10, podobnie jak w zadaniu 1 robilimy to
dla funkcji wynik. Drobna rnica polega jedynie na tym, e w zadaniu 1 formua zapisana
bya w innej postaci, a mianowicie w postaci pseudokodu.

1.3.
Naturalnym sposobem uniknicia kolejnych wywoa rekurencyjnych jest tablicowanie
wynikw, co zostao zasugerowane w podanym niekompletnym algorytmie. Jeli wartoci
wynik(0), wynik(1),,wynik(i 1) przechowywane s w komrkach W[0], W[1],,W[i 1]
tablicy W, to warto wynik(i) moemy wyznaczy jako W[i3]+W[i1]+1 dla i parzystych
oraz W[i] mod 7 dla i nieparzystych. Aby wyznaczon warto zapamita w odpowiedniej
8 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

komrce tablicy W, uyjemy powyszych wyrae do uzupenienia instrukcji podstawienia


w podanym algorytmie.
Zmienna max_wart, jak wskazuje nazwa, moe by uyta do przechowywania najwikszej
wyznaczonej dotychczas wartoci funkcji wynik, zatem aktualizujemy j zawsze, gdy
W[i]>max_wart. Poniej prezentujemy kompletne rozwizanie:
W[0] 1
W[1] 1
W[2] 1
max_wart 1
dla i = 3, 4, , 1 000 wykonuj
jeeli i mod 2 = 0
W[i] W[i 1]+W[i 3]+1
w przeciwnym razie
W[i] W[i] W[i 1] mod 7
jeeli W[i] > max_wart
W[i]max_wart
zwr max_wart

Rozwizanie

1.1.
i wynik(i)
2 1
3 1
4 3
5 3
6 5
7 5
8 9

1.2.
Poprawne wartoci E(i) dla argumentw podanych w tabeli
i E(i)
0 1
3 1
5 2
7 3
9 5
10 8
Poprawna definicja rekurencyjna:
E(0) = E(1) = E(2) = 1
E(i) = E(i 1) + E(i 3) dla parzystego i > 2
E(i) = E(i 1) dla nieparzystego i > 2
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
9
1.3.
W[0] 1
W[1] 1
W[2] 1
max_wart 1
dla i = 3, 4, , 1000 wykonuj
jeeli i mod 2 = 0
W[i] W[i 1]+W[i 3]+1
w przeciwnym razie
W[i] W[i 1] mod 7
jeeli W[i] > max_wart
W[i]max_wart
zwr max_wart

Zadanie 2.
Wizka zada Uamki dwjkowe
W systemach pozycyjnych o podstawie innej ni 10 mona zapisywa nie tylko liczby
cakowite, ale rwnie rzeczywiste z pewn dokadnoci. Na przykad w systemie
dwjkowym cyfry po przecinku odpowiadaj kolejnym potgom 1/2 (jednej drugiej). Cyfra 1
na pierwszym miejscu po przecinku odpowiada 1/2, na drugim miejscu 1/4, na trzecim
1/8 i tak dalej.
Na przykad (0,101)2 = 1/2 + 1/8 = 5/8 = 0,62510. Podobnie jak w systemie dziesitnym nie
kada liczba daje si zapisa w ten sposb dokadnie na przykad liczba 1/3 nie ma
skoczonego rozwinicia w systemie dwjkowym (ani te w dziesitnym). Mona jednak
stosunkowo atwo wyznaczy zadan liczb pocztkowych cyfr po przecinku dla kadej
liczby rzeczywistej.
Nastpujcy algorytm przyjmuje na wejciu liczb rzeczywist x nalec do przedziau [0, 1)
oraz dodatni liczb cakowit k i wypisuje k pierwszych cyfr liczby x w zapisie dwjkowym.
Przeanalizuj algorytm i odpowiedz na podane pytania.

Dane:
x liczba rzeczywista, 0 x < 1,
k liczba cakowita dodatnia.
Wynik:
zapis dwjkowy liczby x do k-tego miejsca po przecinku.

funkcja binarny(x, k)
wypisz 0,
yx
dla i=1, 2, ..., k wykonuj
(*) jeeli y 1/2
wypisz 1
w przeciwnym razie
wypisz 0
yy*2
jeeli y 1
10 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

yy1

2.1.
Podaj liczb wypisan przez algorytm dla x = 0.6, k = 5 oraz wartoci zmiennej y przy
kadorazowym wykonaniu wiersza oznaczonego (*).
Kolejne wykonanie (*) Warto zmiennej y
1
2
3
4
5
Liczba wypisana przez algorytm: ..............

2.2.
Podaj przykad liczby x, dla ktrej po wykonaniu funkcji binarny(x,4) zmienna y ma warto
0, a po wykonaniu funkcji binarny(x, 3) zmienna y nie jest rwna 0.

2.3.
W systemie trjkowym uywa si cyfr 0, 1 i 2. Cyfra 1 na pierwszym miejscu po kropce
oznacza 1/3, za 2 oznacza 2/3. Na drugim miejscu s to odpowiednio 1/9 i 2/9, na trzecim
1/27 i 2/27 i tak dalej, z kolejnymi potgami trjki w mianownikach.
Poniej podany jest algorytm wypisujcy dla zadanej liczby rzeczywistej x z przedziau [0,1)
oraz liczby cakowitej dodatniej k pierwsze k cyfry zapisu x w systemie trjkowym. Uzupenij
luki tak, aby algorytm dziaa prawidowo.
funkcja trjkowy(x, k)
wypisz 0,
yx
dla i = 1, 2, ..., k wykonuj
jeeli y 2/3
wypisz 2
jeeli ...........
wypisz 1
jeeli ...........
wypisz 0
y=y*3
jeeli y2
...........
jeeli y1
...........
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
11
Komentarz do zadania

2.1.
Algorytm zaczyna od wypisania zera i przecinka dziesitnego. Nastpnie zaczyna si gwna
ptla: w pierwszej iteracji y = 0,6, a zatem pierwsz po przecinku cyfr jest 1. Mnoymy y
przez 2 i jeli przekroczy 1, odejmujemy 1. Poniewa 0,62 = 1,2, to po tej iteracji zmienna y
przybierze warto 0,2. W kolejnym obrocie ptli wypiszemy cyfr 0 (jako e 0,2 < 0,5), po
czym podwoimy y, otrzymujc 0,4. Kontynuujc w ten sposb dziaania, dojdziemy do
odpowiedzi takiej jak wzorcowa.
Mona przy okazji zauway, e po czwartej iteracji y znowu przybierze warto 0,6, a zatem
dalsze kroki algorytmu, gdybymy wykonali ich wicej, byyby identyczne z pierwszymi
czterema. Wida std, e (0,6)2 = 0,1001100110011...

2.2.
Warto zmiennej y rwna zero oznacza po prostu, e ju wszystkie dalsze cyfry dwjkowe
liczby x s zerami, innymi sowy, e rozwinicie dwjkowe x si skoczyo.
W zadaniu pytamy zatem o liczb, ktra po trzech iteracjach ma jeszcze dalsze niezerowe
cyfry dwjkowe do wypisania, ale po czterech ju nie ma. Musi to wic by liczba, ktra w
rozwiniciu dwjkowym ma dokadnie cztery cyfry po przecinku. Najmniejsz tak liczb
jest (0,0001)2, czyli 1/16 = 0,0625. Innymi moliwymi odpowiedziami s na przykad
(0,0011)2 = 3/16 = 0,1875 albo (0,1111)2 = 15/16 = 0,9375.

2.3.
Algorytm binarny(x, k) opiera si na nastpujcym pomyle: jeli liczba x jest nie mniejsza od
1/2, to jej pierwsz cyfr dwjkow po przecinku musi by 1. Jeli teraz pomnoymy liczb x
przez 2, to odpowiada to przesuniciu caego rozwinicia o jedno miejsce w lewo. Druga po
przecinku cyfra liczby x to pierwsza cyfra po przecinku 2x, czyli moemy j wyznaczy
podobnie jak poprzednio: sprawdzajc, czy jest wiksza lub rwna 1/2. Oczywicie musimy
najpierw pomin stojc przed przecinkiem cz cakowit odejmujemy zatem 1, jeli
liczba przekroczya 1 w czasie mnoenia.
Bardzo podobn technik stosujemy w algorytmie trojkowy(x, k). Tutaj pierwsza cyfra po
przecinku powinna by rwna 2, jeli liczba x jest nie mniejsza od 2/3, 1 jeli x naley do
przedziau [1/3, 2/3), a 0 jeli x jest mniejsze od 1/3. Nastpnie dokonujemy przesunicia
w lewo, mnoc liczb przez 3, po czym usuwamy z niej cz cakowit. Istotn rnic jest
to, e teraz cz cakowita liczby moe wynosi 0, 1 lub 2, zatem musimy odj 1 lub 2,
zalenie od potrzeby:
dla i=1, 2, ..., k wykonuj
jeeli y 2/3
wypisz 2
jeeli y 1/3 oraz y < 2/3
wypisz 1
jeeli y < 1/3
wypisz 0
yy*3
jeeli y2
yy2
jeeli y1
12 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

yy1
Zamiast ostatnich czterech wierszy odpowiadajcych pomijaniu czci cakowitej
mona byo w oryginalnym algorytmie napisa tak:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
13
jeeli y2
yy1
jeeli y1
yy1
Jeli liczba bdzie wiksza ni 2, algorytm najpierw odejmie 1, a nastpnie zauway, e liczba
wci jest wiksza ni 1, i odejmie znw jedynk. Warto jeszcze wspomnie, e gdyby luki
nie narzucay konstrukcji algorytmu, mona byoby uy krtszego zapisu:
dopki y1 wykonuj
yy1
Miaoby to ten sam efekt: odrzucenie z liczby y jej czci cakowitej.

Zadanie 3.
Wizka zada Ciekawe mnoenia
Dana jest nastpujca funkcja rekurencyjna:
Dane:
x liczba cakowita,
n dodatnia liczba cakowita.
funkcja F(x, n)
jeeli n = 1
podaj wynik x i zakocz
w przeciwnym razie
jeeli n mod 3 = 0
k F(x, n div 3)
(*) podaj wynik k*k*k i zakocz
w przeciwnym razie
(**) podaj wynik x*F(x, n-1) i zakocz
Uwaga: div jest operatorem dzielenia cakowitego.

3.1.
Podaj wszystkie wywoania rekurencyjne funkcji F oraz obliczany po kadym wywoaniu
wynik, jeli na pocztku wywoamy F(2, 10).
wywoanie wynik
F(2, 10)
F( ; )

3.2.
Uzupenij tabel o brakujce elementy:
14 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

x n wynik F(x, n)
2 2 4
2 3
3 81
5 32
2 256
10 1024

3.3.
Uzupenij tabel, podajc czn liczb mnoe wykonanych w wierszach oznaczonych (*)
i (**) po wywoaniu F dla podanych argumentw x i n:
x n Liczba operacji mnoenia
2 2 1
2 3
3 4
4 7
4 8
4 9

3.4.
Podaj, ktra z poniszych funkcji okrela liczb wszystkich operacji mnoenia
wykonywanych przez powyszy algorytm dla argumentu n bdcego potg trjki (n = 3m dla
pewnego nieujemnego m):
lmnozenn n div 2
lmnozenn = log 2 n
lmnozenn = 2 log 3 n
lmnozenn = 1+ n

Zadanie 4.
Wizka zada Silniowy system pozycyjny
Pojcie silni dla liczb naturalnych wikszych od zera definiuje si nastpujco:
! = 1 2 3 ( 1)
Silniowy system pozycyjny to pozycyjny sposb zapisu liczb naturalnych, w ktrym
mnoniki dla kolejnych pozycji s definiowane przez silnie kolejnych liczb naturalnych, tzn.
()! = ( 1 2 2 1 )! = ! + 1 ( 1)! + + 2 2! + 1 1!
W systemie silniowym wspczynnik xi, ktry odpowiada mnonikowi i!, spenia zaleno
0 .
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
15
Zapis kadej liczby w silniowym systemie pozycyjnym jest jednoznaczny, tzn. kad liczb
naturaln mona zapisa tylko w jeden sposb i kad liczb naturaln mona zapisa
dokadnie w jeden sposb.
Uwaga: W poniszych zadaniach bdziemy mie do czynienia tylko z takimi liczbami, dla
ktrych wspczynniki speniaj zaleno 0 9.

Przykad
(1220)! = 1 4! + 2 3! + 2 2! + 0 1! = 24 + 12 + 4 + 0 = 40.

4.1.
Uzupenij tabel. Zamie zapis liczby w systemie silniowym na jej zapis w systemie
dziesitnym.

liczba w systemie silniowym liczba w systemie dziesitnym


(310)!
(2011)!
(54211)!

4.2.
Podaj zapis w systemie silniowym najwikszej liczby, jak mona w tym systemie zapisa na
piciu pozycjach.

4.3.
Zamiana zapisu liczby w systemie dziesitnym na zapis w systemie silniowym moe
przebiega wedug nastpujcego schematu: Szukamy najwikszej liczby k, ktrej silnia nie
przekracza liczby x. Pierwsza jej cyfra to wynik dzielenia cakowitego x przez k!. Kolejne
cyfry zapisu silniowego (zaczynajc od cyfr najbardziej znaczcych) otrzymujemy przez
wyznaczanie wynikw dzielenia liczby x przez (k 1)!, (k 2)!, ..., 2!, 1!. Po wyznaczeniu
cyfry xi, odpowiadajcej wspczynnikowi i!, zmniejszamy warto x o liczb odpowiadajc
cyfrze xi, czyli xii!. Oznacza to, e x przyjmuje warto x mod k!.

Przykad
x k x div k! x mod k!
1548
6 2 108

108 5 0 108

108 4 4 12

12 3 2 0

0 2 0 0
16 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

0 1 0 0

Liczba dziesitna 1548 w zapisie silniowym: (204200)!


Wykonaj zamian liczby 5489 z systemu dziesitnego na silniowy zgodnie z opisanym
powyej algorytmem. Uzupenij ponisz tabelk oraz podaj zapis silniowy liczby 5489.
x k x div k! x mod k!
5489

Liczba dziesitna 5489 w zapisie silniowym: ........................................

4.4.
Poniej przedstawiono algorytm z lukami, ktry zamienia zapis liczb z systemu dziesitnego
na system silniowy. Uzupenij luki w tym algorytmie.
Specyfikacja
Dane:
x liczba cakowita dodatnia zapisana w systemie dziesitnym,
Wynik:
s napis reprezentujcy liczb x zapisan w systemie silniowym.
silnia 1
k 1
dopki (silnia < x) wykonuj
kk+1
silnia silnia* k
jeeli ..........................................
silnia silnia div k
kk1
s
dopki (k>0) wykonuj
cyfra ............................................
s s tekst (cyfra)
x ..................................................
silnia ...........................................
k k 1
Uwaga
tekst (x) oznacza funkcj zamieniajc liczb x na jej zapis tekstowy
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
17
oznacza napis pusty
u v oznacza sklejenie dwch napisw: u oraz v
18 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 5.
Wizka zada Sortowanie przez wstawianie na dwa sposoby
Sortowanie przez wstawianie polega na powtarzaniu operacji wstawiania elementu do ju
uporzdkowanego cigu. Aby znale w uporzdkowanym cigu miejsce, w ktre naley
wstawi nowy element, mona stosowa rne strategie. Poniszy algorytm znajduje to
miejsce metod wyszukiwania binarnego.
Specyfikacja
Dane:
n liczba naturalna oznaczajca dugo cigu,
A[1..n] cig liczb cakowitych zapisanych w tablicy
Wynik:
A[1..n] tablica liczb cakowitych, w ktrej liczby zostay ustawione w porzdku
niemalejcym
Algorytm
dla j = n 1, n 2, , 1 wykonuj
x A[j]
pj
kn+1
dopki k p > 1 wykonuj
i (p + k) div 2
jeeli x A[i]
ki
w przeciwnym razie
pi
dla i = j, j + 1, , p 1 wykonuj
A[i] A[i + 1]
A[p] x

5.1.
Przeanalizuj dziaanie powyszego algorytmu dla cigu 12, 4, 3, 10, 5, 11 o dugoci n = 6 i
podaj, ile razy zostan wykonane instrukcje k i i p i dla kolejnych wartoci j
zamieszczonych w tabeli.
Liczba wykona
Warto j
ki pi
5
4
3
2
1

5.2.
Uzupenij luki w poniszym algorytmie sortowania przez wstawianie tak, aby znajdowanie
miejsca na kolejny wstawiany element byo realizowane metod wyszukiwania liniowego.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
19
Specyfikacja
Dane:
n liczba naturalna oznaczajca dugo cigu, A[1..n] cig liczb cakowitych
zapisanych w tablicy.
Wynik:
A[1..n] tablica liczb cakowitych, w ktrej liczby zostay ustawione w porzdku
niemalejcym.
Algorytm:
dla j = n 1, n 2, , 1 wykonuj
x
i .
dopki (i n) i (x > A[i]) wykonuj
A[i 1] A[i]
ii+1
.. x

5.3.
Porwnaj dwa algorytmy sortowania przez wstawianie: taki, w ktrym miejsce dla
wstawianego elementu jest znajdowane metod wyszukiwania binarnego, i taki, w ktrym jest
ono znajdowane metod wyszukiwania liniowego. Zaznacz znakiem X w odpowiedniej
kolumnie, ktre zdanie jest prawdziwe (P), a ktre jest faszywe (F).
Oba algorytmy dla cigu 12, 4, 3, 10, 5, 11 wykonuj

P F

jednakow liczb porwna midzy elementami cigu liczb.

jednakow liczb przesuni elementw w tablicy.

tyle samo powtrze ptli zewntrznej w algorytmie.

jednakow liczb instrukcji podstawienia wartoci do zmiennej x.

Zadanie 6.
Wizka zada Od szczegu do ogu
Rozwamy nastpujcy algorytm:
Dane:
k liczba naturalna,
A[1...2k] tablica liczb cakowitych.
20 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Algorytm 1:
n1
dla i=1,2,,k wykonuj
n 2n
s1
dopki s<n wykonuj
j1
dopki j<n wykonuj
(*) jeeli A[j]>A[j+s]
(**) zamie(A[j],A[j+s])
j j+2s
s 2s
zwr A[1]

Uwaga: Funkcja zamie(A[j],A[j+s]) zamienia miejscami wartoci A[j] oraz A[j+s].

6.1.
Przeled dziaanie algorytmu 1 dla podanych poniej wartoci k i pocztkowych zawartoci
tablicy A. W kadym wierszu poniszej tabeli wpisz kocow zawarto tablicy A.

k Pocztkowa zawarto tablicy A[1...2k] Kocowa zawarto tablicy A[1...2k]

2 [4, 3, 1, 2] [1, 4, 3, 2]

2 [2, 3, 4, 1]

3 [1, 2, 3, 4, 5, 6, 7, 8]

3 [8, 7, 6, 5, 4, 3, 2, 1]

3 [4, 5, 6, 1, 8, 3, 2, 4]

6.2.
Wska, ktre z poniszych zda s prawdziwe (P), a ktre faszywe (F), wstawiajc znak X
w odpowiedniej kolumnie:

P F

Po zakoczeniu dziaania algorytmu 1 komrka A[2k] zawiera najwiksz z


liczb A[1],,A[2k].

Po zakoczeniu dziaania algorytmu 1 speniona jest nierwno


A[i] A[i+1] dla kadego i, takiego e 1 i 2k.

Po zakoczeniu dziaania algorytmu 1 komrka A[1] zawiera najmniejsz


z liczb A[1],,A[2k].
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
21
6.3.
Wska, ktre z poniszych zda s prawdziwe (P), a ktre faszywe (F), wstawiajc znak X
w odpowiedniej kolumnie. Przyjmij, e n=2k oraz k>1:

P F

Instrukcja jeeli w wierszu (*) jest wykonywana mniej ni 2n razy.

Instrukcja jeeli w wierszu (*) jest wykonywana mniej ni n/2 razy.

Moliwe jest dobranie takiej pocztkowej zawartoci A[1..2k], e instrukcja


zamiany z wiersza (**) nie zostanie wykonana ani razu.

Moliwe jest dobranie takiej pocztkowej zawartoci A[1..2k], e instrukcja


zamiany z wiersza (**) zostanie wykonana co najmniej 2n2 razy.

6.4.
Rozwamy poniszy algorytm podobny do algorytmu 1.
Wejcie: k liczba naturalna,
A[1...2k] tablica liczb cakowitych.
Algorytm 2:
n1
dla i=1,2,,k wykonuj
n 2n
s1
dopki s<n wykonuj
j1
dopki j<n wykonuj
(*) jeeli A[j]>A[j+1]
zamie(A[j],A[j+1])
j j+1
s s+1
zwr A[1], A[2],,A[n]
Uwaga: Funkcja zamie(A[j],A[j+1]) zamienia miejscami wartoci A[j] oraz A[j+1].
Uzupenij luki w poniszych zdaniach. Przyjmij n=2k oraz k>1.
Po zakoczeniu dziaania algorytmu 2 element A[i] jest ........................
ni element A[i+1] dla kadego i wikszego od ......................................
oraz mniejszego od ...................................................................................

Wiersz (*) algorytmu 2 wykonywany bdzie w przebiegu algorytmu


..................................... ni n razy,
..................................... ni n2 razy.
22 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 7.
Wizka zada Scalanie
Rozwamy nastpujcy algorytm, ktry jako dane przyjmuje tablic n-elementow, gdzie n
jest potg dwjki:
Dane: tablica liczb rzeczywistych T[1..n], gdzie = 2 , a m jest liczb cakowit nieujemn

funkcja uporzdkuj(T[1..n]):
jeeli n=1
zwr T[1..n] i zakocz
k n/2
A[1..k] uporzdkuj(T[1 .. k])
B[1..k] uporzdkuj(T[k+1 .. n])
zwr scal(A, B) i zakocz

Funkcja scal(A,B) dla danych dwch tablic o rozmiarze k zwraca tablic o rozmiarze 2k,
powsta przez poczenie tablic A i B w sposb uporzdkowany, tj. od elementu
najmniejszego do najwikszego. Na przykad dla tablic A = [4,6,18,22] i B = [1,3,10,15]
wywoanie scal(A,B) zwrci tablic [1,3,4,6,10,15,18,22].

7.1.
Spord danych tablic wybierz te, ktre s zgodne ze specyfikacj algorytmu, a nastpnie
podaj dla nich wynik jego dziaania.
T = [ 15, 11 ],
T = [ 1, 3, 8 ],
T = [ 8, 4, 2, 1],
T = [ 10, 15, 1 , 6, 9, 2, 5, 90 ].

7.2.
Funkcja uporzdkuj jest funkcj rekurencyjn. Uzupenij ponisze drzewo wywoa
rekurencyjnych dla danej tablicy T = [8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9].
8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9

8, 80, 90, 14, 3, 5, 20, 10 5, 6, 90, 34, 11, 13, 56, 9


Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
23
7.3.
Zamy, e wywoanie procedury scal(A,B) dla dwch tablic o dugoci k wykonuje 2k1
kosztownych operacji (porwnywania liczb). Podaj liczb kosztownych operacji, jaka
zostanie wykonana przez funkcj uporzdkuj dla tablicy
T[1..16] = [ 8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9 ].

Zadanie 8.
Wizka zada Dwa cigi
Niech A[1..n] i B[1..n] bd uporzdkowanymi rosnco tablicami liczb cakowitych i niech x
bdzie liczb cakowit. Rozwamy nastpujcy algorytm:
i1
jn
dopki (i n oraz j > 0) wykonuj

dopki (i n oraz j > 0)wykonuj


(*) jeeli A[i] + B[j] = x
podaj wynik PRAWDA i zakocz algorytm
w przeciwnym razie
jeeli A[i] + B[j] < x
i i + 1
w przeciwnym razie
j j 1
podaj wynik FASZ

8.1.
Uzupenij ponisz tabel. Podaj wynik dziaania algorytmu oraz liczb porwna
wykonanych w wierszu oznaczonym (*).
Wynik Liczba porwna
Tablica A Tablica B x dziaania w kroku (*)
algorytmu
3, 5, 12, 17 8, 10, 13, 14 21
4, 6, 8, 10 5, 7, 9, 11 13

8.2.
Przeanalizuj dziaanie zaprezentowanego algorytmu i uzupenij ponisz specyfikacj.
Dane:
n dodatnia liczba cakowita
A[1..n], B[1..n] n-elementowe tablice liczb cakowitych, posortowane rosnco
x liczba cakowita

Wynik:
PRAWDA, gdy .................................................................................................................

FASZ, gdy .......................................................................................................................


24 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

8.3.
Podaj przykad picioelementowych tablic A i B, dla ktrych przy x = 20 algorytm wykona
sze porwna w wierszu (*), a wynikiem bdzie PRAWDA.

Zadanie 9.
Wizka zada Wiee z Hanoi
W problemie wie z Hanoi mamy trzy prty oznaczone A, B i C oraz n okrgych krkw
o rednicach odpowiednio 1, 2, , n. Na pocztku wszystkie krki naoone s na prt A,
w kolejnoci od najwikszego do najmniejszego (najwikszy na dole, najmniejszy na grze).
Ukad ten (dla n=3) zosta przedstawiony na poniszym rysunku.

Zgodnie z reguami problemu krki mona przekada midzy prtami. W jednym ruchu
moliwe jest przeoenie krka znajdujcego si na szczycie jednego z prtw na szczyt
innego prta, pod warunkiem e nie kadziemy przekadanego krka na krek mniejszy od
niego. Na przykad na poniszym rysunku krek 2 moemy przeoy z prta A na prt C,
natomiast niemoliwe jest przeoenie go na prt B.

Zadanie polega na przeoeniu wszystkich krkw z prta A na prt B, przy czym mona
korzysta z pomocniczego prta C. Na poniszym rysunku przedstawiono efekt kocowy.

Problem wie z Hanoi mona rozwiza za pomoc algorytmu rekurencyjnego. W algorytmie


prty: startowy, docelowy i pomocniczy, podane s jako parametry wejciowe, odpowiednio
x, y i z. Algorytm polega na tym, e najpierw przenosimy n 1 krkw na prt pomocniczy
z, potem najwikszy krek zostaje przeniesiony na prt docelowy y, a na koniec n 1
krkw zostaje przeniesionych z prta pomocniczego z na prt docelowy y, przy czym prt
startowy x traktowany jest jako pomocniczy.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
25
Algorytm
Specyfikacja
Dane:
n liczba cakowita dodatnia,
x nazwa prta startowego,
y nazwa prta docelowego,
z nazwa prta pomocniczego.
Wynik:
cig ruchw opisujcy rozwizanie problemu wie z Hanoi z n krkami, w ktrym na
pocztku wszystkie krki znajduj si na prcie x, a na kocu maj znale si na
prcie y, za pomocniczym prtem jest z.
Uwaga: Pojedynczy ruch zapisujemy za pomoc znaku . Na przykad C B oznacza
przeniesienie krka z prta C na prt B.
funkcja wiee(n, x, y, z)
jeeli n=1
wypisz x y
w przeciwnym razie
wiee(n 1, x, z, y)
wypisz x y
wiee(n 1, z, y, x)

Przykad
Wywoanie wiee(2, A, B, C) spowoduje dwa wywoania rekurencyjne: wiee(1, A, C, B)
oraz wiee(1, C, B, A). Cig ruchw utworzony przez wiee(2, A, B, C) ma posta:
A C, A B, C B,
gdzie podkrelone ruchy s utworzone przez rekurencyjne wywoania wiee(1, A, C, B) oraz
wiee(1, C, B, A).

9.1.
Podaj wszystkie wywoania rekurencyjne funkcji wiee (wraz z ich parametrami), do ktrych
dojdzie w wyniku wywoania wiee(3, A, B, C). Odpowied podaj w poniszej tabeli,
uzupeniajc parametry wszystkich wywoa rekurencyjnych.
n x y z
3 A B C
2 A C B
1 A B C
1
2
1
1
26 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

9.2.
Przeled dziaanie wiee(3, A, B, C) i uzupenij poniej wygenerowany cig ruchw:
AB; AC;

9.3.
Niech H(n) oznacza liczb ruchw wykonanych przez podany algorytm dla n krkw.
Zauwa, e rozwizanie problemu dla n>1 krkw wymaga jednego ruchu oraz dwukrotnego
rozwizania problemu dla n 1 krkw. W oparciu o t obserwacj uzupenij ponisz
tabel.
n H(n)
1 1
2 3
3
4
5
7
10
Podaj oglny wzr okrelajcy liczb ruchw dla n krkw:
H(n)= ................................................................................................................

9.4.
Poniej prezentujemy nierekurencyjne rozwizanie problemu wie z Hanoi.
Specyfikacja
Dane:
n liczba cakowita dodatnia,
Wynik:
cig ruchw opisujcy rozwizanie problemu wie z Hanoi z n krkami, w ktrym na
pocztku wszystkie krki znajduj si na prcie A, a na kocu powinny si znale na
prcie B.
Algorytm:
(1) dopki (prt A jest niepusty lub prt C jest niepusty) wykonuj
(2) jeeli n jest parzyste:
(3) przenie krek nr 1 o jedn pozycj w lewo
(4) w przeciwnym razie
(5) przenie krek nr 1 o jedn pozycj w prawo
(6) przenie krek midzy prtami, na ktrych nie ma krka nr 1
W powyszym algorytmie przeniesienie krka nr 1 o jedn pozycj w prawo oznacza
wykonanie jednego z ruchw AB, BC lub CA, tak aby krek nr 1 zosta przeniesiony
na inny prt. Analogicznie przeniesienie krka w lewo oznacza wybranie jednego z ruchw
AC, BA lub CB, tak aby krek nr 1 zosta przeniesiony na inny prt.
Ruch w kroku (6) powyszego algorytmu jest okrelony jednoznacznie, gdy dopuszczalne
jest tylko pooenie mniejszego krka na wikszym, a nie odwrotnie.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
27
Przykad
Dla n=3 powyszy algorytm wykona nastpujcy cig ruchw:
AB; AC; BC; AB; CA; CB; AB,
gdzie ruchy podkrelone przenosz krek nr 1 o jedn pozycj w prawo.
Wypisz cig ruchw, ktry poda powyszy algorytm dla n=4.

Zadanie 10.
Wizka zada Dzielenie wielomianu
Rozwaamy wielomiany () stopnia 1, gdzie jest potg dwjki:
() = 0 + 1 + 2 2 + + 1 1 , = 2 .
Do obliczania wartoci () mona zastosowa technik dziel i zwyciaj w nastpujcy
sposb: dzielimy posta ogln wielomianu () na dwie czci:
0 + 1 + + 1 1 +
() = + +1 +1 + + 1 1 ,
cz. I cz. II

gdzie = /2. Jeli w drugiej czci wydzielimy czynnik , to otrzymamy rwno
(*) () = () + () ,
gdzie () i () s wielomianami stopnia 1:
() = 1 1 + + 2 2 + 1 + 0 ,
() = 1 1 + + +2 2 + +1 + ,
W ten sposb problem obliczenia wartoci () dzielimy na dwa podproblemy obliczenia
() i obliczenia (), przy czym kady z nich ma rozmiar o poow mniejszy. Na przykad
aby obliczy warto wielomianu ( = 8)
() = 8 + 7 + 6 2 3 + 4 4 + 5 5 2 6 + 3 7 ,
obliczamy = /2 = 4, () = 8 + 7 + 6 2 3 oraz () = 4 + 5 2 2 + 3 3 .
Nastpnie korzystamy ze wzoru () = () + () 4 .
Poniewa do penej realizacji algorytmu we wzorze (*) potrzebne jest obliczenie wartoci ,
1
wic najpierw obliczamy wszystkie potgi , 2 , 4 , , 2 i zapamitujemy je w tablicy
Z[0 .. m-1], np. za pomoc poniszej procedury.
Obliczanie tablicy [0..-1]:
Dane:
liczba cakowita postaci 2 , gdzie jest liczb cakowit nieujemn,
x liczba rzeczywista.
Wynik:

tablica [0 .. -1], dla ktrej [] = 2
28 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

[0]
1
2
dopki < wykonuj
[] [ 1] [ 1]
+1
2
Majc tablic Z, obliczamy warto () za pomoc funkcji rekurencyjnej F.
Dane:
tablica liczb rzeczywistych [0 . . 1] ze wspczynnikami 0 , 1 , , 1 , gdzie
= 2 , a m jest liczb cakowit nieujemn;

tablica [0 .. -1], dla ktrej [] = 2 .
Wynik:
warto 1 1 + + 2 2 + 1 + 0.

funkcja F([0 . . 1]):


jeeli n=1
zwr T[0] i zakocz
/2
[0 . . 1] [0 . . 1]
[0 . . 1] [ . . 1]
zwr F() + F() [ 1] i zakocz
Przeledmy na przykad obliczenie wartoci wielomianu
() = 8 + 7 + 6 2 3 + 4 4 + 5 5 2 6 + 3 7 ( = 2 , = 3)
dla x=3.
W pierwszym kroku algorytm obliczy tablic [0 . . 2]:
[0] = 3, [1] = 32 , [2] = 34 = 81.
Nastpnie algorytm obliczy F([-8,7,6,-1,4,5,-2,3]), tzn.
F([-8,7,6,-1,4,5,-2,3]) = F([-8,7,6,-1]) + F([4,5,-2,3])*Z[2]
Obliczanie F([4,5,-2,3]) i F([-8,7,6,-1]) odbywa si w analogiczny sposb, tzn.
F([-8,7,6,-1]) = F([-8,7])+ F([6,-1])*Z[1]
= F([-8])+F([7])*Z[0]+(F([6])+F([-1])*Z[0])*Z[1]
= (-8)+7*Z[0] + (6+(-1)*Z[0])*Z[1]
= (-8)+7*3+(6+(-1)*3)*9 = 40,
F([4,5,-2,3]) = F([4,5])+F([-2,3])*Z[1]
= F([4])+F([5])*Z[0]+(F([-2])+F([3])*Z[0])*Z[1]
= 4+5*Z[0]+((-2)+3*Z[0])*Z[1]
= 4+5*3+((-2)+3*3)*9=82.
Zatem
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
29
F([-8,7,6,-1,4,5,-2,3]) = F([-8,7,6,-1])+F([4,5,-2,3])*Z[2] = 40+82*81 = 6682.
Mona zauway, e podczas obliczania F([-8,7,6,-1,4,5,-2,3]) cznie zostanie wykonanych
7 mnoe:
3 mnoenia podczas obliczania F([-8,7,6,-1])=40,
3 mnoenia podczas obliczania F([4,5,-2,3])=82,
1 mnoenie przy obliczaniu F([-8,7,6,-1])+ F([4,5,-2,3])*Z[2] = 40+82*Z[2].
Liczba wszystkich wywoa rekurencyjnych jest rwna 15. Oto wszystkie wywoania
funkcji F:
F([-8,7,6,-1,4,5,-2,3])
o F([-8,7,6,-1])
F([-8,7])
F([-8])
F([7])
F([6,-1])
F([6])
F([-1])
o F([4,5,-2,3])
F([4,5])
F([4])
F([5])
F([-2,3])
F([-2])
F([3])

10.1.
Podaj, jakie wartoci zostan obliczone w tablicy Z[0 .. m-1] przy obliczaniu (2), gdzie
() = 9 + 6 3 + 2 7 314 + 515 .

10.2.
Oblicz czn liczb operacji mnoenia, jaka zostanie wykonana przez funkcj F(T) dla n-
elementowej tablicy T.
Uzupenij ponisz tabelk:
n Liczba operacji mnoenia
1 0
2
4
8
16
1024
Uzupenij poniszy wzr rekurencyjny dla f(n) liczby operacji mnoenia wykonywanych
przez funkcj F dla tablicy n-elementowej:
() = ......... (/2) + ................... dla > 1
30 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

10.3.
Wypisz wszystkie wywoania funkcji F podczas obliczania
() = 9 + 6 3 + 10 5 + 2 7 + 4 9 10 314 + 515 .
Podaj wzr oglny na g(n) liczb wszystkich wywoa funkcji F dla wielomianu ()
stopnia 1, gdzie jest potg dwjki. Uzupenij poniszy wzr:
() =.............................

10.4.
Do obliczania wartoci wielomianu ()
() = 0 + 1 + 2 2 + + 1 1 ( = 3 ),
a wic gdy jest potg trjki, mona zastosowa podzia na trzy czci
0 + + 1 1 +
() = + + 21 21 +
2 2 + + 1 1 ,
cz. I cz. II cz. III

gdzie = /3. Wwczas uzyskujemy


() = () + () + () 2 = () + (() + () ) ,
gdzie (), (), () s wielomianami, w ktrych liczba wspczynnikw jest trzykrotnie
mniejsza ni w wyjciowym wielomianie ().
Wzorujc si na funkcji F, moemy skonstruowa rekurencyjn funkcj G(T[0 .. -1]),
obliczajc warto () przez podzia tablicy T na trzy rwne czci, o ile > 1. Po
obliczeniu trzech wynikw dla kadej z czci, powiedzmy (), (), (), funkcja oblicza
swj wynik, wykonujc dodatkowo dwa mnoenia:
jedno mnoenie przy obliczaniu () .
jedno mnoenie przy obliczaniu (() + () ) .
Podobnie jak poprzednio pomijamy problem obliczania potg dla = 3 ( 0), tzn.
przyjmujemy, e potgi te s przechowywane w pewnej tablicy Z[0 .. m-1], a wic ich
obliczanie nie jest wliczane do kosztu obliczeniowego funkcji G.
W ten sposb na przykad dla n=3 funkcja G wykona dokadnie 2 mnoenia, a dla n=9
funkcja wykona cznie 8 mnoe:
po 2 mnoenia dla kadej z trzech czci (), (), (),
jedno mnoenie przy obliczaniu () .
jedno mnoenie przy obliczaniu (() + () ) .
Uzupenij ponisz tabelk, podajc liczb mnoe, jaka zostanie wykonana przez funkcj G
dla n-elementowej tablicy wspczynnikw T.
n Liczba operacji mnoenia
3 2
9 8
27
81
243
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
31
Zadanie 11.
Wizka zada Odwrotna notacja polska
Dla przetwarzania przez komputer wygodnym sposobem zapisu wyrae arytmetycznych jest
tzw. odwrotna notacja polska (ONP). Zapis w ONP wyraenia W nazywamy postaci ONP
i oznaczamy j ONP(W). W ONP operator (dodawania, odejmowania, mnoenia, dzielenia)
umieszczamy za jego argumentami, np. 2+5 zapisujemy jako 2 5 +. Dokadniej, posta ONP
dla wyraenia definiujemy rekurencyjnie w nastpujcy sposb:
1. Jeeli W jest liczb, to jego posta ONP jest rwna W.
2. Jeeli W ma posta W1 op W2, gdzie op jest operatorem, a W1 i W2 wyraeniami, to
ONP(W) jest rwne ONP(W1) ONP(W2) op.

Przykad
W = W1 op W2 W1 W2 op ONP(W)
1+2 1 2 + 12+
57 5 7 57
3 ( 5 7 ) 3 57 357
( 1 + 2 ) + ( 3 ( 5 7 ) ) 1+2 3 ( 5 7 ) + 12+357+
Zauwamy, e dla W= ( 1 + 2 ) + ( 3 ( 5 7 ) ) warto ONP(W) uzyskujemy z poczenia
ONP( 1 + 2 ) = 1 2 +, ONP(3 ( 5 7 ) ) = 3 5 7 oraz znaku dodawania +.

11.1.
Uzupenij ponisz tabel, podajc dla kadego wyraenia z pierwszej kolumny jego
podwyraenia, czcy je operator oraz posta ONP tego wyraenia.
W = W1 x W2 W1 W2 op ONP( W )
4+3 4 3 + 43+
(4 + 3) 2
5(76)
( (4 + 3) 2 ) (5 ( 7 6 ) )

11.2.
Posta ONP wyrae, cho dla ludzi mao czytelna, ma wasnoci bardzo przydatne dla
analizy komputerowej. W ONP nie s potrzebne nawiasy, a do wyznaczania wartoci
wyraenia mona zastosowa prosty algorytm podany poniej.
32 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Specyfikacja
Dane:
n liczba cakowita dodatnia,
X = X[1 n] wyraenie w ONP, gdzie X[i] dla 1in jest liczb lub znakiem
ze zbioru {+, , }.
Wynik:
warto wyraenia X.
Algorytm:
k1
dla i=1,2,,n wykonuj
jeeli X[i] jest liczb
T[k] X[i]
jeeli X[i]{+, , }
b T[k 1]
a T[k 2]
kk2
jeeli X[i] = `+`
T[k] a + b
jeeli X[i] = ``
T[k] a b
jeeli X[i] = ``
T[k] a b
kk+1
zwr T[1]
Przeled dziaanie podanego algorytmu dla wyraenia X = 9 7 + 3 5 4 2 , czyli dla
n=11 oraz nastpujcych wartoci X[1],.., X[11]:
i 1 2 3 4 5 6 7 8 9 10 11
X[i] 9 7 + 3 5 4 2
Uzupenij ponisz tabel:
Warto zmiennej k po i-tym przebiegu Zawarto tablicy T[1..k-1] po i-tym
i
ptli przebiegu ptli
1 2 9
2 3 9, 7
4 3 16, 3
5
6
10
11
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
33
11.3.
Poniszy algorytm sprawdza, czy podany na wejciu cig liczb i operatorw jest poprawnym
wyraeniem w ONP.
Specyfikacja
Dane:
n liczba cakowita dodatnia
X = X[1..n] cig elementw, z ktrych kady jest liczb lub znakiem ze zbioru
{+, , }.
Wynik:
Tak jeli X jest poprawnym wyraeniem w ONP,
Nie w przeciwnym przypadku.
Algorytm:
licznik 0
dla i=1,2,,n wykonuj
jeeli X[i] jest liczb
licznik licznik + 1
jeeli X[i]{+, , }
jeeli licznik < 2
zwr Nie i zakocz dziaanie
w przeciwnym razie
licznik licznik 1
jeeli licznik 1
zwr Nie
w przeciwnym razie
zwr Tak
Oce, ktre z podanych poniej napisw s wyraeniami zapisanymi poprawnie w ONP,
wpisujc sowa TAK lub NIE w trzeciej kolumnie poniszej tabeli. W drugiej kolumnie podaj
wartoci zmiennej licznik po zakoczeniu dziaaniu algorytmu dla poszczeglnych napisw.
Warto zmiennej licznik Czy poprawne
Napis
po zakoczeniu algorytmu wyraenie w ONP?
12+ 1 NIE
12+34578+9
12345++++
12345++++++
12345+++++
12+233445+
12+233445+
12+34578+9+++

11.4.
W poniszych wyraeniach przyjmujemy, e op1,, op10 to znaki ze zbioru {+, , }. Podaj
posta ONP poniszych wyrae.
34 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

X: (((((((((1 op1 2) op2 3) op3 4) op4 5) op5 6) op6 7) op7 8) op8 9) op9 10)
ONP(X):................................................................................................................
..............................................................................................................................
Y: (1 op1 (2 op2 (3 op3 (4 op4 (5 op5 (6 op6 (7 op7 (8 op8 (9 op9 10)))))))))
ONP(Y):................................................................................................................
..............................................................................................................................

Zadanie 12.
Wizka zada Szyfr Beauforta
Kadej z wielkich liter angielskiego alfabetu przyporzdkowany jest kod ASCII, bdcy
omiobitow liczb naturaln. Ponisza tabela przedstawia kody ASCII dla liter od A do Z:

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Dany jest nastpujcy algorytm szyfrujcy:
Dane:
n liczba naturalna, wielko tablicy Tekst[]
Tekst[] tablica zawierajca kody ASCII liter tekstu do zaszyfrowania, elementy
tablicy s numerowane od 0 do n-1
k nieujemna liczba cakowita
Wynik:
Szyfrogram[] tablica o dugoci n zawierajca kody ASCII liter zaszyfrowanego
tekstu

i 0
dopki (i<n) wykonuj
(*) Szyfrogram[i] (90-Tekst[i]+k) mod 26 + 65
i i+1
k k+i

12.1.
Uzupenij ponisz tabel wartociami zmiennych i oraz k w wierszu oznaczonym (*) w
kolejnych iteracjach algorytmu dla n rwnego 7:
Lp i k
1 0 20
2
3
4
5
6
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
35
12.2.
Ile dla przedstawionego algorytmu jest moliwych pocztkowych wartoci k, dajcych
w efekcie rne szyfrogramy? Odpowied krtko uzasadnij.

12.3.
Uzupenij ponisz tabel. W wierszu pierwszym zaszyfruj przedstawionym w treci zadania
algorytmem podany tekst jawny, w wierszu drugim odszyfruj szyfrogram zakodowany tym
algorytmem.
k Tekst[] Szyfrogram[]
1 MAPA
14 DAN

12.4.
Uywajc pseudokodu lub wybranego jzyka programowania, napisz algorytm dekodujcy
szyfrogram.
Dane:
n liczba naturalna, wielko tablicy Tekst[]
Szyfrogram[] tablica o dugoci n zawierajca kody ASCII liter zaszyfrowanego
tekstu
k nieujemna liczba cakowita
Wynik:
Tekst[] tablica zawierajca kody ASCII liter odszyfrowanego tekstu, elementy
tablicy s numerowane od 0 do n-1

Zadanie 13.
Wizka zada Zbir punktw
Na paszczynie kartezjaskiej danych jest n punktw: P1, P2,..., Pn oraz jeszcze jeden
punkt A.
Wsprzdne punktw zapisane s w tablicach PX[1..n], PY[1..n] wsprzdne punktu Pi
dane s jako para (PX[i], PY[i]) dla i = 1, 2, ..., n. Wsprzdne punktu A to (ax, ay).
Przeanalizuj poniszy algorytm i wykonaj ponisze polecenia.
Dane:
PX[1..n], PY[1..n] tablice liczb cakowitych zawierajce wsprzdne kolejnych punktw
P1, P2,..., Pn
ax, ay wsprzdne punktu A.
Wynik:
odpowied TAK lub NIE.

funkcja sprawdz(PX[1..n], PY[1..n],ax,ay)


dla i = 1, 2, ..., n wykonuj
roznicax PX[i] ax
roznicay PY[i] ay
drugix ax roznicax
36 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

drugiy ay roznicay
znalezione fasz
dla k = 1, 2, ..., n wykonuj
jeeli drugix = PX[k] oraz drugiy = PY[k]
znalezione prawda
jeeli znalezione = fasz
wypisz NIE i zakocz wykonywanie algorytmu
wypisz TAK

13.1.
Dla poniszych zbiorw punktw znajd odpowied, jak otrzymamy po wykonaniu
powyszego algorytmu:

P1 (-1,4)
P2 (-2,2)
P3 (1,2)
P4 (-1,0)
P5 (2,0)
P6 (1,-2)
A (0, 1)

Odpowied algorytmu: ..........

P1 (-2,3)
P2 (0,3)
P3 (-2,2)
P4 (0,2)
P5 (-2,-1)
P6 (0,-1)
A (-1,1)

Odpowied algorytmu: ..........


Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
37

P1 (3,1)
P2 (2,0)
P3 (1,-3)
P4 (2,-2)
P5 (2,-1)
A (2,-1)

Odpowied algorytmu: ..........

13.2.
Dane s punkty:
P1 (3,1)
P2 (0,2)
P3 (1,4)
P4 (1,3)
P5 (4,0)
oraz punkty P6 i A o nieznanych wsprzdnych. Wiadomo, e algorytm odpowiada TAK dla
n = 6 oraz punktw P1,..., P6 i A. Podaj wsprzdne punktw P6 i A.

Zadanie 14.
Wizka zada Dziaka
Pan G jest geodet. Jego zadaniem jest wyznaczenie pola powierzchni dziaki budowlanej
o ksztacie pewnego wielokta wypukego. Aby wyznaczy pole powierzchni dziaki, pan G
obchodzi j dookoa, tak aby dziak mie zawsze po swojej prawej stronie. Podczas pomiaru
zapisuje wsprzdne kolejnych wierzchokw wielokta, przy czym:
1. rozpoczyna obchd w punkcie 1 = [1 , 1 ];
2. wsprzdne kolejno odwiedzonych wierzchokw oznacza:
2 = [2 , 2 ], 3 = [3 , 3 ], , = [ , ];
3. koczy obchd w punkcie pocztkowym, tzn. przyjmuje +1 = 1 .
38 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Przykad
Poniszy obrazek przedstawia dziak ( = 5) oraz kolejne punkty pomiaru zanotowane przez
geodet:
1 = [2,2], 2 = [1,7], 3 = [9,8], 4 = [10,4], 5 = [8,2], 6 = 1 .

Nastpnie pan G wyznacza pole dziaki za pomoc wzoru



1
= (+1 1 ) ,
2
=1

gdzie 0 przyjmuje jako .


Obliczanie pola z podanego wzoru realizowane jest wedug nastpujcego algorytmu:
Dane:
n liczba cakowita, 0,
1 , 1 ; 2 , 2 ; ; , wsprzdne punktw pomiaru.
Wynik:
pole dziaki
Algorytm:
0
+1 1
+1 1
= 0
dla = 1,2, , wykonuj
+ (+1 1 )

zwr 2 i zakocz
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
39
14.1.
Przeanalizuj dziaanie powyszego algorytmu dla przykadu z rysunku i uzupenij ponisz
tabelk.
+1 1 (+1 1 )
1 2 2
2 1 7
3 9 8
4 10 4
5 8 2
Podaj obliczone pole dziaki: ...........................................................................

14.2.
Niech punkty = [1 , 1 ], = [2 , 2 ], = [3 , 3 ] bd wierzchokami pewnego trjkta,
podanymi w kolejnoci zgodnej z ruchem wskazwek zegara. Bazujc na metodzie geodety,
podaj wzr na pole trjkta .

14.3.
Wyra wzorem liczb operacji mnoenia oraz czn liczb operacji dodawania i
odejmowania wsprzdnych punktw, jaka zostanie wykonana przez podany algorytm
podczas obliczania pola powierzchni dziaki o ksztacie wielokta -wierzchokowego.
Uzupenij ponisz tabelk:
Dziaanie Liczba operacji
dodawanie i odejmowanie
mnoenie

Zadanie 15.
Wizka zada Zbir Cantora
Zbir (fraktal) Cantora rzdu 0 jest rwny odcinkowi jednostkowemu [0; 1]. Zbir Cantora
rzdu 1 uzyskujemy, dzielc odcinek jednostkowy [0; 1] na trzy rwne czci i usuwajc
odcinek rodkowy (pozostawiajc za jego koce). Skada si on zatem z dwch fragmentw
odcinka jednostkowego: [0; 1/3], [2/3; 1].
Oglnie zbir Cantora rzdu n+1 tworzymy ze zbioru Cantora rzdu n w nastpujcy sposb:
kady odcinek zbioru Cantora rzdu n dzielimy na trzy rwne czci i usuwamy odcinek
rodkowy, pozostawiajc jego koce. Zgodnie z t regu zbir Cantora rzdu 2 skada si
z odcinkw: [0; 1/9], [2/9; 3/9], [6/9; 7/9] i [8/9; 1].

0 1
Rysunek. Geometryczna ilustracja zbiorw Cantora rzdu 0, 1, 2, 3 i 4
40 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

15.1.
Uzupenij ponisz tabel, podajc liczb odcinkw w zbiorach Cantora podanych rzdw.
n Liczba odcinkw w zbiorze Cantora rzdu n
0 1
1 2
2 4
3 8
5
6
9
10
Podaj oglny wzr okrelajcy C(n), liczb odcinkw w zbiorze Cantora rzdu n:
C(n)=..

15.2.
Zauwa, e kady odcinek w zbiorze Cantora ustalonego rzdu ma t sam dugo. Uzupenij
ponisz tabel, podajc dugo jednego odcinka w zbiorach Cantora podanych rzdw.
n Dugo jednego odcinka w zbiorze Cantora rzdu n
0 1
1 1/3
2 1/9
3 1/27
4
5
6
7
Podaj oglny wzr okrelajcy dugo D(n) jednego odcinka w zbiorze Cantora rzdu n:
D(n)=..

15.3.
Uzupenij ponisz list odcinkw zbioru Cantora rzdu 3, ktrych koce zapisane s jako
uamki zwyke nieskracalne:
[0; 1/27], [2/27; 1/9], ...............................................................................................................
..................................................................................................................................................
Koce odcinkw zbiorw Cantora mona opisa w zwarty i regularny sposb w systemie
trjkowym. W szczeglnoci odcinki zbioru Cantora rzdu 1 zapisane w systemie trjkowym
to
[0; 0,1], [0,2; 1],
natomiast odcinki zbioru Cantora rzdu 2 zapisane w systemie trjkowym to
[0; 0,01], [0,02; 0,1], [0,2; 0,21] i [0,22; 1].
Podaj poniej odcinki zbiorw Cantora rzdu 3 zapisane w systemie o podstawie 3
(trjkowym):
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
41
[0; 0,001], ................................................................................................................................
..................................................................................................................................................

Zadanie 16.
Wizka zada Odlego na planszy
Dana jest prostoktna plansza o rozmiarach m na n (m wierszy, n kolumn), podzielona na mn
pl jednostkowych kwadratw. Przez pole (i, j) rozumiemy pole, ktre jest w i-tym wierszu
oraz j-tej kolumnie. Wiersze numerujemy kolejno od 1 do m, z gry do dou, a kolumny
kolejno od 1 do n,od lewej do prawej. Dwa pola uwaamy za ssiednie, jeli maj wsplny
bok.
Niektre pola tej planszy zostay wycite na rysunku oznaczone s na czarno.

Poniej podany jest algorytm, ktry tworzy tablic D[1..m, 1..n] (o m wierszach oraz n
kolumnach), odpowiadajc planszy, a nastpnie wpisuje liczby cakowite do komrek tablicy
odpowiadajcych niewycitym (biaym) polom na planszy. Kada wpisana liczba mierzy
w pewien sposb odlego odpowiedniego pola od lewego grnego rogu planszy (pola (1,1)
za, e to pole nigdy nie jest wycite). Przeanalizuj algorytm i rozwi podanej niej
zadania.
dla kadego niewycitego pola (i,j)
D[i, j] -1

D[1, 1] 0
k0
powtarzaj:
jeli nie ma takich pl (x,y), e D[x, y] = k
zakocz algorytmu
dla kadego pola (x,y) takiego, e D[x, y] = k wykonaj
dla kadego pola (a,b) ssiadujcego z (x,y) wykonaj
jeli (a,b) nie jest wycite oraz D[a, b] = -1
D[a, b] k+1
k k+1

16.1.
Dla podanej poniej planszy wyznacz wartoci, ktre znajd si w tablicy D po zakoczeniu
wykonywania algorytmu. Wpisz te wartoci w odpowiednie pola planszy:
42 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

16.2.
Zaprojektuj tak plansz o rozmiarach 45, dla ktrej w wynikowej tablicy D pojawi si liczba
10. Odpowied podaj, kolorujc na poniszym rysunku pewne pola na czarno oraz wpisujc
liczb 10 w odpowiednim polu:

16.3.
Zaprojektuj tak plansz (wybranych przez siebie rozmiarw), dla ktrej w wynikowej tablicy
D po zakoczeniu wykonywania algorytmu w pewnej komrce pozostanie liczba 1. Narysuj
tak plansz i wpisz -1 na wszystkich biaych polach, na ktrych ta warto pozostanie do
koca dziaania algorytmu.

Zadanie 17.
Wizka zada System hamowania
Nowoczesne samochody maj wbudowany komputer z systemem wspomagajcym
prowadzenie pojazdu. Jedn z jego funkcji jest aktywacja systemu hamowania w momencie,
gdy samochd znajdzie si zbyt blisko pojazdu znajdujcego si przed nim.
Automatyczne hamowanie wykorzystuje czujniki, ktre mierz prdko samochodu oraz
jego odlego od pojazdu znajdujcego si przed nim. Reakcja systemu zaley od prdkoci
samochodu, w ktrym jest on uruchomiony. W zadaniach ograniczamy si do analizy
dziaania systemu przy maych prdkociach samochodu.
Przyjmujemy, e automatyczne uruchomienie hamowania nastpuje, jeli odlego od
najbliszego pojazdu jest mniejsza ni 15 metrw oraz prdko samochodu, w ktrym dziaa
system, wynosi mniej ni 30 km/h (zobacz poniszy rysunek). Po automatycznym
uruchomieniu hamowania prdko samochodu bdzie spada, a hamulce bd wczone do
momentu osignicia przez samochd prdkoci 0 km/h, niezalenie od tego, jak bdzie si
zmienia odlego od najbliszego pojazdu.
W analizie dziaania systemu hamowania przyjmuje si, e samochd nie przekracza
prdkoci 350 km/h.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
43

Dziaanie systemu automatycznego hamowania zostao poniej bdnie opisane w


pseudokodzie.
44 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

odczytaj prdko samochodu;


odczytaj odlego od najbliszego pojazdu;
jeeli prdko samochodu < 30 lub odlego od najbliszego pojazdu < 15:
dopki prdko samochodu = 100 wykonuj
wylij polecenie hamowania do ukadu hamulcowego;
odczytaj prdko samochodu

17.1.
W powyszym pseudokodzie wystpuj dwa bdy powodujce niezgodno z podanym
wczeniej opisem. Znajd i popraw oba bdy.
Bdny zapis w pseudokodzie Poprawny zapis w pseudokodzie

17.2.
Przyjmujemy, e system hamowania odczytuje prdko samochodu i odlego od
najbliszego pojazdu na tyle czsto, e ssiednie pomiary mog si rni co najwyej
o odpowiednio 1 km/h i 1 m (pomiary prdkoci podawane s w km/h, w zaokrgleniu do
wartoci cakowitych; pomiary odlegoci podawane s w m, rwnie w zaokrgleniu do
wartoci cakowitych). Oce, czy podane w poszczeglnych wierszach poniszej tabeli dane
testowe s danymi standardowym (niezmieniajce stanu sytemu hamowania), brzegowymi
(wartoci, ktre mog powodowa wczenie lub wyczenie systemu hamowania) czy te
danymi niezgodnymi ze specyfikacj.
Dane testowe Typ danych testowych
prdko samochodu 29 km/h,
brzegowe
odlego midzy samochodami 1 m
prdko samochodu 400 km/h,
odlego od najbliszego pojazdu 0 m
prdko samochodu 13 km/h,
odlego od najbliszego pojazdu 8 m
prdko samochodu 45 km/h,
odlego od najbliszego pojazdu 17 m
prdko samochodu 0 km/h,
odlego od najbliszego pojazdu 17 m
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
45
17.3.
Wska, ktre z poniszych dokocze zda s prawdziwe (P), a ktre faszywe (F),
wstawiajc znak X w odpowiedniej kolumnie.
Celem testowania systemu dla rnych typw danych jest

P F

upewnienie si, e system poradzi sobie z odczytem parametrw z czujnikw


i tempo jego reakcji pozwoli unikn zderzenia.

zwikszenie precyzji pomiarw prdkoci i odlegoci.

zmniejszenie dugoci kodu programu.

sprawdzenie, czy system dziaa zgodnie z podan specyfikacj.

17.4.
Uzupenij ponisz tabel, wpisujc w ostatniej kolumnie sowo wczony, wyczony (gdy
automatyczne hamowanie bdzie przy danych odczytach wczone/wyczone niezalenie od
wartoci poprzedniego pomiaru) lub nieustalony (gdy aktywno automatycznego hamowania
zaley zarwno od biecego, jak i od poprzedniego pomiaru).
Odlego midzy Stan automatycznego
Prdko samochodu
samochodami hamowania
poniej 30 km/h poniej 15m wczony
poniej 30 km/h rwna15m
rwna 30 km/h poniej 15m
rwna 30 km/h rwna15m
powyej 30 km/h dowolna

1.2. Tworzenie algorytmw

Zadanie 18.
Wizka zada Najwikszy wsplny dzielnik
Opisana poniej funkcja wyznacza najwikszy wsplny dzielnik (NWD) dwch liczb
cakowitych dodatnich.

Specyfikacja
Dane:
liczby cakowite dodatnie a i b.
Wynik:
Najwikszy wsplny dzielnik liczb a i b.
46 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

funkcja NWD (a, b)


dopki b 0 wykonuj
r a mod b (*)
ab
br
zwr a i zakocz

18.1.
Przeanalizuj dziaanie funkcji NWD i dla wskazanych argumentw podaj liczb wykona
operacji modulo:

a b liczba operacji mod (*)


25 15
116 324
762 282

18.2.
Wykorzystujc funkcj NWD oraz nastpujc zaleno:
NWD(1 , 2 , , ) = NWD (NWD (1 , 2 , , 1), ),
moemy wyznaczy najwikszy wsplny dzielnik n liczb cakowitych dodatnich 1 , 2 , ,
.

Przykad
NWD(15, 24, 60) = NWD (NWD (15,24), 60) = NWD (3,60) = 3.
Uzupenij ponisz tabelk i dla wskazanych n liczb cakowitych dodatnich 1 , 2 , ,
oblicz ich najwikszy wsplny dzielnik.

1 , 2 , , NWD(1 , 2 , , )
36, 24, 72, 150
119, 187, 323, 527, 731
121, 330, 990, 1331, 110, 225

18.3.
Napisz algorytm, ktry korzystajc z funkcji NWD (a, b), wyznaczy najwikszy wsplny
dzielnik cigu liczb 1 , 2 , , .
Dane:
1 , 2 , , liczby cakowite dodatnie.
Wynik:
Najwikszy wsplny dzielnik liczb 1 , 2 , , .
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
47
Komentarz do zadania

18.1.
Dla pierwszego przykadu: a = 25, b = 15, kolejne reszty r s rwne: 10, 5, 0, zatem
wykonywane s 3 operacje a mod b. Dla a = 116, b = 324 kolejne reszty r s rwne: 116, 92,
24, 20, 4, 0, std w ptli wykonywanych jest 6 operacji a mod b. Podobnie jest dla a = 762,
b = 282: zmienna r przyjmuje kolejno nastpujce wartoci: 198, 84, 30, 24, 6, 0, std
wykonywanych jest 6 operacji a mod b.

18.2.
W tym zadaniu naley przeanalizowa obliczanie NWD dla n liczb z wykorzystaniem funkcji
napisanej w treci zadania:
NWD (36, 24, 72, 150) =
NWD (NWD (36, 24, 72), 150) =
NWD (NWD (NWD (36, 24), 72), 150) =
NWD(NWD (12, 72), 150) =
NWD(12, 150) = 6

NWD(119, 187, 323, 527, 731) =


NWD (NWD (119, 187, 323, 527), 731) =
NWD (NWD (NWD (17, 323), 527), 731) =
NWD (NWD (17, 527), 731) =
NWD (17, 731) = 17

NWD (121, 330, 990, 1331, 110, 225) =


NWD( NWD( 121, 330, 990, 1331, 110), 225) =
NWD( NWD( NWD (121, 330, 990, 1331), 110), 225) =
NWD( NWD( NWD ( NWD(121, 330, 990), 1331), 110), 225) =
NWD( NWD( NWD ( NWD( NWD(121, 330), 990), 1331), 110), 225) =
NWD( NWD (NWD (NWD (11, 990), 1331), 110), 225) =
NWD( NWD (NWD ( (11, 1331), 110), 225) =
NWD( NWD (11, 110), 225) =
NWD( 11, 225) = 1

18.3.
Algorytm utworzymy w oparciu o tosamo:
NWD (a1, a2, ..., an) = NWD (NWD (a1, a2, , an-1), an),
podan w zadaniu drugim.
Za najwikszy wsplny dzielnik obieramy liczb a1, a nastpnie iteracyjnie obliczamy
najwikszy wsplny dzielnik zapamitanego wyniku oraz liczby ai dla kolejnych i = 2, 3, 4,
...., n. Prowadzi to do nastpujcego rozwizania zadania:
w a1
dla i = 2, 3, 4, ...., n wykonuj
w NWD (w, ai)
zwr w i zakocz
Podane rozwizanie jest poprawne take wtedy, gdy n jest rwne 1.
48 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Rozwizanie

18.1.
a b liczba operacji mod
25 15 3
116 324 6
762 282 6

18.2.
1 , 2 , , NWD(1 , 2 , , )
36, 24, 72, 150, 114 6
119, 187, 323, 527, 731 17
121, 330, 990, 1331, 110, 225 1

18.3.
Przykadowa poprawna odpowied:
w a1
dla i = 2, 3, 4, ...., n wykonuj
w NWD (w, ai)
zwr w i zakocz

Zadanie 19.
Wizka zada Zakupy midzyplanetarne
Mieszkacy galaktyki Rnoliczbowo zamieszkuj 9 planet: Liczbowo2, Liczbowo3, ,
Liczbowo10. Na kadej planecie Liczbowoi jej mieszkacy posuguj si systemem
liczbowym o podstawie i. Na kadej planecie wszystkie ceny s liczbami naturalnymi.

19.1.
Mieszkacy czterech ssiadujcych planet: Liczbowo2, Liczbowo4, Liczbowo8 oraz
Liczbowo10 czsto podruj pomidzy tymi planetami i kupuj rne towary. W poniszej
tabeli znajduj si ceny wybranych towarw zakupionych przez jedn osob na rnych
planetach. Uzupenij tabel, przeliczajc podane ceny na systemy liczbowe wszystkich
czterech planet.

Cena towaru zapisana w systemie liczbowym planety


Towar
Liczbowo2 Liczbowo4 Liczbowo8 Liczbowo10
Kozaki 10111011
Paszcz 724
Skuter 1458
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
49
19.2.
Na rnych planetach ten sam towar moe mie rn cen, na przykad cena ciasta
kokosowego na planecie Liczbowo10 wynosi 3810, za na planecie Liczbowo8 jego cena
wynosi 558 (rwn 4510).
Mieszkacy planety Liczbowo10 s bardzo oszczdni i przed zakupami porwnuj ceny
towarw na wybranych planetach. Uzupenij w poniszej tabeli relacje (>, <, =) pomidzy
poszczeglnymi cenami.
Liczbowox Relacja Liczbowoy
1100001002 > 5568
31234 17478
11010 110103
2669 1101003
1101111012 6748

19.3.
Sprzedawcy sklepw planety Liczbowoi wyliczaj warto zakupw klientw, sumujc ceny
zakupionych towarw w systemie obowizujcym na ich planecie; stosuj przy tym metod
dodawania pisemnego.
Przykady
Dodawanie w systemie o podstawie 2:
1 0 1 0
1 0 0 1 1
1 1 0 1
+2 1 1 0 0 1
1 0 0 0 0 1 1
Dodawanie w systemie o podstawie 4:
2 2
1 0 3
3 1
+4 1 2 1
1 0 0 3
Podsumuj rachunki pana Dwjkowskiego (z planety Liczbowo2) oraz pana Czwrkowskiego
(z planety Liczbowo4).

Rachunek pana Dwjkowskiego:


1 0 1 1
1 0 0 1 0
1 1 0 1 1 1
1 1 0 1 0
1 1 0 0 1
+2 1 0 1 0 1 1
SUMA
50 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Rachunek pana Czwrkowskiego:


3 3
1 0 2
3 1 1
1 3 1
1 2 3
+4 3 0 1
SUMA .

Podaj rnic wartoci obu rachunkw w systemie obowizujcym na planecie Liczbowo10.


Rnica rachunkw w systemie obowizujcym na planecie Liczbowo10 wynosi: ..

19.4.
Waciciele sieci sklepw ulokowanych na wszystkich planetach galaktyki postanowili
dostarczy do sklepw kalkulatory, ktre bd dodaway ceny w opisany powyej sposb.
Aby pomc wacicielom, podaj algorytm dodawania (w postaci pseudokodu lub w jzyku
programowania), ktry dla dwch liczb a i b zapisanych w systemie o podstawie p[2,9]
wyznacza i wypisuje warto sumy a +p b zapisan w systemie o podstawie p zgodnie
z ponisz specyfikacj. Twj algorytm nie moe dokonywa zamiany liczb a i b na inny
system pozycyjny.
Specyfikacja
Dane:
p podstawa systemu, liczba naturalna z przedziau [2,9],
n liczba cyfr liczb naturalnych a, b 255 (przyjmujemy, e krtsza liczba jest
uzupeniona z lewej strony zerami, tak aby obie liczby miay tak sam
dugo),
A[n], A[n1],..., A[1] kolejne cyfry liczby a zapisanej w systemie o podstawie p,
B[n], B[n1],..., B[1] kolejne cyfry liczby b zapisanej w systemie o podstawie p,
Wyniki:
warto liczby c = a +p b zapisana w systemie o podstawie p w postaci cigu cyfr
C[n+1], C[n],,C[1].
Przykad
Dla nastpujcych danych:
p=4
n = 4,
Liczba a = 31224
Liczba b = 214
Wynikiem jest liczba c = 32034
Zawarto tablic A, B, C:
i 5 4 3 2 1
A[i] 3 1 2 2
B[i] 0 0 2 1
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
51
C[i] 0 3 2 0 3

Komentarz do zadania

19.1.
Powszechnie znane s algorytmy konwersji liczby z zapisu dziesitnego na zapis w systemie
pozycyjnym o podstawie s < 10 i odwrotnie: z zapisu w systemie o podstawie s na system
dziesitny. Aby unikn wielokrotnego wykonywania takich konwersji, skorzystamy
z zalenoci midzy reprezentacjami liczb w systemie o podstawie 2, podstawie 4 = 22 oraz
podstawie 8=222. Skoncentrujmy si najpierw na systemach o podstawach 2 i 4:
reprezentacj liczby w systemie czwrkowym mona uzyska z jej reprezentacji
w systemie binarnym (czyli o podstawie 2), wybierajc od koca pary cyfr i
zamieniajc je na ich czwrkowe reprezentacje;
reprezentacj liczby w systemie binarnym mona uzyska z jej reprezentacji w
systemie czwrkowym, zamieniajc kad cyfr czwrkow na jej dwucyfrow
reprezentacj binarn.
Poniewa 8=23, analogiczna wasno zachodzi dla konwersji midzy systemem binarnym
a systemem semkowym, z t rnic, e zamiast blokw 2 cyfr rozwaamy bloki o
dugoci 3. Korzystajc z powyszych obserwacji, uzyskujemy rozwizanie:
Cena towaru zapisana w systemie liczbowym planety
Towar
Liczbowo2 Liczbowo4 Liczbowo8 Liczbowo10
Kozaki 10111011 2323 273 187
Paszcz 111010100 13110 724 468
Skuter 10110110010 112302 2662 1458
Dokadniej, dla 10111011(2) uzyskujemy:
reprezentacj czwrkow: dzielc 10111011 na bloki 10, 11, 10, 11 i zapisujc
w systemie o podstawie 4 warto kadego bloku: 2, 3, 2 i 3;
1 0 1 1 1 0 1 1
10 11 10 11
2 3 2 3
reprezentacj semkow: dzielc 10111011 na bloki 10, 111, 011 i zapisujc
w systemie o podstawie 4 warto kadego bloku: 2, 7 i 3.
1 0 1 1 1 0 1 1
010 111 011
2 7 3
Z kolei z 724 (8) uzyskujemy:
reprezentacj binarn: zamieniajc kad cyfr semkow na jej 3-cyfrow
reprezentacj binarn, czyli 111, 010, 100; daje to reprezentacj 111010100;
reprezentacj czwrkow: dzielc binarn reprezentacj 111010100 na bloki 01, 11,
01, 01 i 00, zapisujc w systemie o podstawie 4 warto kadego bloku: 1, 3, 1, 1 i 0.
52 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Znajc zasady konwersji midzy systemami o podstawach 2, 4 i 8, reprezentacj dziesitn


moemy uzyska za pomoc standardowego algorytmu zamiany liczby z systemu o podstawie
p rnej od 10 (np. p = 2) na system dziesitny. Analogicznie, znajc reprezentacj dziesitn,
wystarczy znale jej reprezentacj w jednym z pozostaych systemw, a potem zastosowa
omwione powyej reguy konwersji midzy systemami o podstawach 2, 4 i 8.

19.2.
Uywajc standardowych algorytmw zamiany z systemu niedziesitnego na dziesitny,
moemy wszystkie liczby przeksztaci na posta dziesitn i wwczas porwna. Metoda ta
wymaga do duo oblicze, dlatego pokaemy sposb wymagajcy mniej pracy. Podobnie
jak w rozwizaniu zadania 1 polega on bdzie na wykorzystaniu faktu, e dwie cyfry w
systemie o podstawie s odpowiadaj jednej cyfrze w systemie o podstawie s2, podobnie trzy
cyfry w systemie o podstawie s odpowiadaj jednej cyfrze w systemie o podstawie s3):
5568=1011011102 < 1100001002
31234=110110112, 17478=0011111001112, czyli 31234<17478
2669=0220203, czyli 2669<1101003
6748=1101111002, czyli 6748<1101111012
Jedyny przykad wymagajcy konwersji na system dziesitny to porwnanie 11010
i 110103=8110+2710+310=11110.

19.3.
Moemy wszystkie liczby w rachunku zamieni na system dziesitny i je dodawa. Inne
rozwizanie polega na zastosowaniu metody dodawania pisemnego przeprowadzonego na
reprezentacji binarnej i czwrkowej. Pokaemy je dla par liczb z rachunku pana
Dwjkowskiego. Najpierw dodamy dwie pierwsze liczby.
przeniesienie: 0 0 1 0
1 0 1 1
+2 1 0 0 1 0
SUMA: 1 1 1 0 1
Nastpnie do wyniku dodamy trzeci liczb
przeniesienie: 1 1 1 1 1 1
1 1 1 0 1
+2 1 1 0 1 1 1
SUMA: 1 0 1 0 1 0 0
Dodajc nastpnie liczby: 110102, 110012 i 1010112, uzyskamy wynik 101100102.
Analogicznie postpujemy dla reprezentacji czwrkowych. Suma dwch pierwszych liczb to:
przeniesienie: 1 1
3 3
+4 1 0 2
SUMA: 2 0 1
Dodajc nastpnie liczby: 3114, 1314, 1234 i 3014, uzyskamy wynik 23334.
Nastpnie zamieniamy obie obliczone sumy na system dziesitny:
101100102=210+1610+3210+12810=17810 oraz 23334=310+310410+31610+26410=19110.
A zatem rnica wartoci rachunkw wynosi 1310.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
53
19.4.
Zadanie mona rozwiza, implementujc zasad dodawania pisemnego, ktrej przykady
podalimy w rozwizaniu zadania 3. Zgodnie z t zasad dodajemy odpowiadajce sobie
cyfry i przeniesienia, zaczynajc od prawej strony. Przyjmujemy przy tym, e ostatnie
przeniesienie R[1] (na skrajnie prawej pozycji 1) jest rwne zero. Ponadto wiemy, e:
i-ta cyfra wyniku jest rwna (A[i] + B[i] + R[i]) mod p, gdzie R[i] to i-te
przeniesienie,
(i + 1)-sze przeniesienie R[i + 1] jest rwne (A[i] + B[i] + R[i]) div p,
gdzie mod i div oznaczaj odpowiednio operacje reszty z dzielenia i wyniku dzielenia
cakowitego (tzn. zaokrglenia dokadnego wyniku dzielenia do liczby cakowitej w d).
Musimy jednak uwzgldni, e wynik moe by o jedn cyfr duszy od dodawanych liczb.
Dlatego przyjmiemy, e wynik ma n+1 cyfr i najbardziej znaczc cyfr wyniku zapiszemy
na pozycji n+1.
i1
R[1] 0
dopki i < n+1 wykonuj
c A[i] + B[i] + R[i]
C[i] c mod p
R[i + 1] c div p
ii+1
C[n+1] R[n+1]
W modelu odpowiedzi zamiecilimy troch inne rozwizanie:
zamiast tablicy przeniesie R przechowujemy tylko aktualne przeniesienie, w
zmiennej r;
pokazujemy tam, jak mona unikn stosowania operatorw mod i div, korzystamy
przy tym z tego, e A[i]+B[i] jest zawsze nie wiksze ni 2p 2, a reszta R[i] jest
rwna 0 lub 1.

Zadanie 20.
Wizka zada Liczba narcystyczna
Niech dana bdzie liczba naturalna , ktrej zapis dziesitny ma cyfr:
= 1 101 + (2) 102 + + 1 10 + 0 (1 0).
Powiemy, e liczba jest narcystyczna, jeli suma jej cyfr podniesionych do potgi -tej jest
rwna , tzn.

1 + 2 + + 1 + 0 = .
Na przykad liczba 1634 jest narcystyczna, poniewa
14 + 64 + 34 + 44 = 1634.
Powiemy, e liczba jest B-narcystyczna, jeli jej zapis w systemie o podstawie ma cyfr,
ktrych suma -tych potg jest rwna , tzn.

= 1 1 + (2) 2 + + 1 + 0 oraz 1 + 2 + + 1 + 0 = .
Na przykad liczba 289 jest 5-narcystyczna, poniewa
54 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

289 = (2124)5 = 2 53 + 1 52 + 2 5 + 4 oraz 289 = 24 + 14 + 24 + 44 .

20.1.
Uzupenij brakujce cyfry tak, aby powstae liczby byy liczbami narcystycznymi.
31
40
5448

20.2.
Sprawd, ktre z poniszych liczb (podanych w systemie dziesitnym) s -narcystyczne dla
podanych wartoci B. Uzupenij ponisz tabelk, wpisujc prawda lub fasz w zalenoci od
tego, czy liczba jest -narcystyczna, czy te nie.
prawda/fasz
3433 6
4890 5
8956 3
15345 2

20.3.
Napisz algorytm (w pseudokodzie lub wybranym jzyku programowania), ktry sprawdza,
czy dana liczba jest -narcystyczna.
Dane:
x liczba cakowita, 0,
B liczba cakowita, 2.
Wynik:
TAK, jeli liczba jest -narcystyczna, NIE w przeciwnym przypadku.

Zadanie 21.
Wizka zada Szybkie podnoszenie do potgi
W algorytmach szybkiego potgowania mona wykorzysta binarn reprezentacj
wykadnika dla obliczenia wartoci xk, gdzie k jest liczb naturaln, k 0, za x jest liczb
rzeczywist. Przyjmijmy, e binarnym rozwiniciem wykadnika k jest cig
( 1 2 2 1 0 )2 .
Jedna z metod wyznaczania xk polega na obliczaniu potg liczby x dla wykadnikw
o binarnych reprezentacjach:
,
1 ,
1 2 ,
,
1 2 1 ,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
55
1 2 1 0 ,
Inaczej mwic, uwzgldniamy coraz dusze fragmenty cigu ( 1 2 2 1 0 )2 .
W pierwszym kroku przyjmujemy, e wynik jest rwny x, gdy kn = 1. Znajc warto x do
potgi o binarnym zapisie ( 1 2 )2 , moemy atwo wyliczy x do potgi o
binarnym zapisie ( 1 2 1 )2: podnosimy dotychczasowy wynik do kwadratu
(do czego wystarczy jedno mnoenie). Jeli ki-1 = 1, dodatkowo mnoymy uzyskany wynik
przez x.

Przykad
Niech = 13 = (1101)2 . Kolejne wyznaczane w naszym algorytmie potgi to:
x1 , x3 x 2 x, x6 ( x3 )2 , x13 ( x6 )2 x ,
za liczba wykonanych mnoe jest rwna 5 (zauwa, e aby obliczy x3, musisz najpierw
obliczy x2, a aby obliczy x2, musisz wykona jedno mnoenie: x 2 x x ).

21.1.
Korzystajc z przedstawienia wykadnika w postaci binarnej, podaj kolejne potgi liczby x
wyznaczane powysz metod przy obliczaniu x38.

21.2.
Uzupenij tabelk. Oblicz, ile mnoe wykonywanych jest dla kolejnych wykadnikw.

k reprezentacja binarna k liczba mnoe


4 100 2
5 101 3
6
7
8
15
16
22
32

21.3.
W wybranej przez siebie notacji (lista krokw, pseudokod, jzyk programowania) napisz
algorytm, ktry dla zadanej binarnej reprezentacji liczby naturalnej k, k 0, oraz rzeczywistej
liczby x oblicza warto xk zgodnie z metod opisan na pocztku zadania.
Specyfikacja
Dane:
x liczba rzeczywista,
n liczba cakowita nieujemna,
1 2 1 0 cig tworzcy binarn reprezentacj wykadnika k,
Wynik:
liczba rzeczywista = =


56 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 22.
Wizka zada Schemat Hornera
Schemat Hornera jest bardzo efektywn metod obliczania wartoci wielomianu
() = + 1 1 + + 2 2 + 1 + 0 ,
gdzie dane liczby rzeczywiste 0 , 1 , , nazywamy wspczynnikami, a liczba cakowita
0 oznacza stopie wielomianu.
Schemat bazuje na zalenoci
() = ( 1 + 1 2 + + 2 1 + 1 ) + 0 = () + 0 ,
gdzie
() = 1 + 1 2 + + 2 1 + 1 .
Std otrzymujemy nastpujcy schemat obliczania wartoci ():
Dane:
liczba cakowita, 0,
x liczba rzeczywista,
0 , 1 , , liczby rzeczywiste.
Wynik:
warto ()
Algorytm (schemat Hornera):

dla = 1, 2, , 0 wykonuj
(*) +
zwr i zakocz

22.1.
Uzupenij ponisz tabelk, podajc wartoci danych, jakie naley przyj w powyszym
schemacie, aby wyznaczy warto (6) dla wielomianu
() = 10 5 13 4 + 3 + 2 2 8 + 7.
Dane Wartoci
liczba naturalna
liczba rzeczywista

liczby rzeczywiste 0 , 1 , ,

22.2.
Uzupenij ponisz tabelk, wyraajc wzorem liczb operacji mnoenia i dodawania, jaka
zostanie wykonana przez schemat Hornera (w wierszu oznaczonej przez (*)) dla danego
wielomianu
() = + 1 1 + + 2 2 + 1 + 0 .
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
57
Dziaanie Liczba operacji
Dodawanie
Mnoenie

22.3.
Przeanalizuj dziaanie schematu Hornera podczas obliczania wartoci (2) dla wielomianu
() = 4 6 3 5 + 2 3 5 2 + 7 + 9.
W poniszej tabeli wpisz wartoci obliczane przez algorytm w linii (*)
Warto
=5
=4
=3
=2
=1
=0
Podaj wynik, jaki zwrci algorytm: .....................................................

22.4.
Wielomianem parzystym nazywamy wielomian stopnia 2 postaci
() = 2 + 1 22 + + 2 4 + 1 2 + 0 ,
tzn. taki, w ktrym wystpuj tylko parzyste potgi zmiennej .
Bazujc na schemacie Hornera, napisz algorytm o poniszej specyfikacji (w pseudokodzie lub
wybranym jzyku programowania), ktry oblicza warto parzystego wielomianu ().
Dane:
liczba cakowita, 0,
x liczba rzeczywista,
0 , 1 , , liczby rzeczywiste.
Wynik: warto ().
Przy ocenie rozwizania bdzie brana pod uwag liczba operacji mnoenia i dodawania
wykonywanych przez algorytm.

Zadanie 23.
Wizka zada Obliczanie cakowitego pierwiastka kwadratowego
Cakowity pierwiastek kwadratowy z liczby naturalnej x jest najwiksz liczb naturaln p,
ktra spenia nierwno p2 x. Poniszy algorytm suy do obliczania tej wartoci przyblionej.
Specyfikacja
Dane:
x liczba naturalna
Wynik:
p liczba naturalna speniajca warunek p2 x i (p+1)2 > x
58 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Algorytm
i0
a0
r1
dopki a x wykonuj
ii+1
aa+r
rr+2
zwr i 1 i zakocz

23.1.
Niech x = 21. Przeanalizuj dziaanie powyszego algorytmu i uzupenij wartoci zmiennych
a i r dla kolejnych wartoci i podanych w tabeli.
Warto i Warto a Warto r
0
1
2
3
4
5

23.2.
Zdecyduj, ktre z poniszych zda s w odniesieniu do opisanego algorytmu prawdziwe (P),
a ktre faszywe (F). Zaznacz znakiem X odpowiedni rubryk w tabeli .

P F

Konstruuje cig kwadratw kolejnych liczb naturalnych.

Znajduje dokadn warto pierwiastka z liczby x.

Oblicza kolejne nieparzyste liczby naturalne.

Wykonuje dokadnie tyle iteracji ptli, ile wynosi pierwiastek


cakowity z liczby x.

23.3.
Napisz algorytm obliczania cakowitego pierwiastka z liczby naturalnej, ktry wykorzystuje
nastpujc zaleno rekurencyjn definiujc cig xn zbieny do pierwiastka kwadratowego
z liczby x:

0 =
2
{ 1
+1 = ( + )
2
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
59
Specyfikacja
Dane:
x liczba naturalna
Wynik:
p liczba naturalna speniajca warunek p2 x i (p+1)2 > x

Zadanie 24.
Wizka zada Poszukiwania
Dana jest liczba naturalna n 0 oraz uporzdkowana tablica liczb cakowitych T [1..n].
Rozwamy nastpujc funkcj F dla trzech argumentw p, k, e, ktre s liczbami
cakowitymi dodatnimi:
funkcja F (p, k, e)
jeeli (k = p)
jeeli (T [p] > e)
zwr p i zakocz
w przeciwnym razie
zwr p + 1 i zakocz
w przeciwnym razie
s (p+k) div 2
jeeli T [s] > e
zwr F (p, s, e)
w przeciwnym razie
zwr F (s+1, k, e)

24.1.
Przeanalizuj dziaanie funkcji F i uzupenij ponisz tabelk dla p = 1, k = 5, e = 10:

T F (p, k, e)
[3, 4, 6, 8, 9]
[15, 16, 18, 22, 24]
[2, 10, 16, 24, 26]
[1, 3, 10, 10, 18]

24.2.
Zdecyduj, ktre z dokocze podanego niej zdania czyni z niego zdanie prawdziwe.
Zaznacz to znakiem X w odpowiednich miejscach tabeli.

Funkcja F wykorzystuje

metod zachann.

strategi dziel i zwyciaj.

programowanie dynamiczne.
60 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

24.3.
Zdecyduj, ktre z dokocze podanego niej zdania czyni z niego zdanie prawdziwe.
Zaznacz to znakiem X w odpowiednich miejscach tabeli.

Liczba wywoa rekurencyjnych funkcji F dla pocztkowych wartoci p = 1 oraz k = n,


bdcej potg dwjki, jest w najgorszym przypadku rwna

n div 2.

log 2 .

24.4.
Napisz algorytm, ktry korzystajc z funkcji F, obliczy, ile jest liczb nalecych do przedziau
[a, b] w uporzdkowanej niemalejco tablicy T [1..n], skadajcej si z liczb cakowitych
dodatnich.
Specyfikacja
Dane:
n liczba cakowita dodatnia
T [1..n] uporzdkowana tablica n liczb cakowitych, zoona z rnych liczb
cakowitych dodatnich, taka e T[1] T [2] T [n]
a liczba cakowita dodatnia
b liczba cakowita dodatnia
Wynik:
w liczba elementw tablicy T [1..n] nalecych do przedziau [a, b].
Zadanie 25.
Wizka zada Palindromy
Palindrom to sowo lub zdanie, ktre czytane od lewej do prawej i od prawej do lewej brzmi
tak samo. W zdaniu, ktre jest palindromem, ignorujemy odstpy midzy sowami. Wane
jest tylko, e kolejno liter przy czytaniu od lewej do prawej i od prawej do lewej jest taka
sama. Dla potrzeb zadania przyjmujemy, e uywamy tylko maych liter alfabetu aciskiego.
Poniej podajemy przykady sw i zda, ktre s palindromami:
kajak
anna
elf ukladal kufle
trafili popili fart
ewo zeby tu byly buty bezowe
Poniszy algorytm sprawdza, czy podane na wejciu sowo jest palindromem.
Specyfikacja
Dane:
S[1..d] sowo zapisane w tablicy znakw, gdzie d>1 oznacza liczb znakw w sowie
Wynik:
TAK gdy sowo S jest palindromem, NIE w przeciwnym przypadku
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
61
Algorytm:
d dugo(S)
i d div 2
(*) dopki (i > 0) i (S[i] = S[d i+1]) wykonuj
ii1
jeeli i = 0
zwr TAK i zakocz,
w przeciwnym razie
zwr NIE i zakocz

Uwaga: div oznacza operator dzielenia cakowitego, a wartoci funkcji dugo jest liczba
znakw w sowie.

25.1.
Podaj przykad sowa o dugoci 9, niebdcego palindromem, dla ktrego powyszy
algorytm wykonuje najwiksz moliw liczb powtrze w ptli oznaczonej (*).

25.2.
Napisz algorytm, ktry sprawdza, czy zdanie jest palindromem.
Specyfikacja
Dane:
Zdanie[1..d] zdanie o dugoci d znakw zapisane w tablicy znakw, skadajce si
z maych liter alfabetu aciskiego i spacji, w tym co najmniej jednej litery.
Wynik:
TAK, gdy Zdanie jest palindromem, NIE w przeciwnym razie

Zadanie 26.
Wizka zada Podobiestwo sw
Sowo X nazywa bdziemy kpodrzdnym wzgldem sowa Y, jeli wszystkie litery
wystpujce w X wystpuj rwnie w Y oraz w sowie Y wystpuje dokadnie k rnych
liter, ktre nie wystpuj w sowie X.
Sowo X jest podrzdne wzgldem sowa Y, gdy X jest k-podrzdne wzgldem Y dla jakiego
k0.

Przykad
Sowo X=ABCAB jest 1-podrzdne wzgldem sowa Y=BAACD (w sowie X wystpuj litery
A, B, C; w sowie Y wystpuj litery A, B, C, D). Podobnie sowo X=ABCAB jest 0-
podrzdne wzgldem BAC oraz nie jest podrzdne wzgldem sw ABDAB i ABAB (litera C
wystpuje w sowie X, a nie wystpuje w sowach ABDAB i ABAB). Zamieniajc sowa
rolami, moemy stwierdzi, e sowo ABDAB nie jest podrzdne wzgldem sowa ABCAB, a
sowo ABAB jest 1-podrzdne wzgldem ABCAB.
62 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Uwaga
W poniszych zadaniach przyjmujemy, e w sowach mog wystpowa tylko litery A, B, C, D,
E, F, G, H, I, J. Ponadto w algorytmach dostpna jest funkcja dlugosc, ktra zwraca dugo
sowa bdcego jej argumentem, oraz funkcja kod o wartociach podanych w poniszej tabeli:
litera A B C D E F G H I J
kod(litera) 1 2 3 4 5 6 7 8 9 10

26.1.
Uzupenij ponisz tabel, wpisujc w kolumnie Podrzdno sowo NIE, jeli sowo X nie
jest podrzdne wzgldem sowa Y, a w przeciwnym wypadku liczb k tak, e X jest k-
podrzdne wzgldem Y.
Sowo X Sowo Y Podrzdno
HHGGFFEEDDCCBBAA ABCDEFGH
DCBADCBA FGHABCJD
ABCDE ABCCBAE
AAAAA AA
ABA ACA
ACEGJ ABCDEFGHJ

26.2.
Dany jest nastpujcy algorytm A:
dla i=1,2,,10 wykonuj
Czyjest[i] fasz
d dlugosc(Y)
dla i=1,2,,d wykonuj
lit Y[i]
Czyjest[kod(lit)] prawda
d dlugosc(X)
czyp prawda
dla i=1,2,,d wykonuj
lit X[i]
czyp czyp i Czyjest[kod(lit)]
jeeli czyp=prawda
zwr 1
w przeciwnym razie
zwr 0
Podaj wynik dziaania powyszego algorytmu dla wartoci X i Y z poniszej tabeli:
X Y wynik algorytmu A
HHGGFFEEDDCCBBAA ABCDEFGH
DCBADCBA FGHABCJD
ABCDE ABCCBA
AAAAA AA
AA AAAAA
ACEGJ ABCDEFGH
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
63
Uzupenij podan poniej specyfikacj algorytmu A.
Specyfikacja
Dane: X, Y sowa, w ktrych wystpuj tylko litery ze zbioru {A, B, C, D, E, F, G, H, I,
J}
Wynik: ...................................................................................................................................
...................................................................................................................................
26.3.
Uzupenij brakujce fragmenty poniszego algorytmu B, tak aby realizowa on podan
specyfikacj.
Specyfikacja
Dane:
X, Y sowa, w ktrych wystpuj tylko litery ze zbioru {A,B,C,D,E,F,G,H,I,J}
Wynik:
k liczba cakowita, taka e
X jest k-podrzdne wzgldem Y, jeli k0,
X nie jest podrzdne wzgldem Y, gdy k = 1.
Algorytm B:
dla i=1,2,,10 wykonuj
Czy_x[i] fasz
Czy_y[i] fasz
dx dlugosc(X)
dla i=1,2,,dx wykonuj
lit X[i]
Czy_x[kod(lit)] prawda
dy dlugosc(Y)
dla i=1,2,,dy wykonuj
lit Y[i]
Czy_y[kod(lit)] prawda
k0
dla i=1,2,,10 wykonuj
jeeli Czy_y[i]=prawda oraz Czy_x[i]= .......................
k ...................
jeeli Czy_y[i]=................ oraz Czy_x[i]=prawda
zwr 1 i zakocz
zwr k

26.4.
Sowa X i Y nazywa bdziemy rwnowanymi, jeli kada litera wystpuje tyle samo razy
w sowie X i w sowie Y.

Przykad
Sowa ABCA i BCAA s rwnowane, natomiast ABCA nie jest rwnowane ze sowami
ABCC, BABB i ABCAD.
Podaj algorytm, ktry sprawdza, czy dwa podane sowa s rwnowane. Twj algorytm
powinien realizowa nastpujc specyfikacj:
64 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Specyfikacja
Dane:
X, Y sowa, w ktrych wystpuj tylko litery ze zbioru {A, B, C, D, E, F, G, H, I, J}
Wynik:
1 gdy X i Y s rwnowane, 0 w przeciwnym razie.

Zadanie 27.
Wizka zada Dopasowanie z bdem
W podanym tekcie, zoonym z maych liter alfabetu aciskiego, wyszukujemy sowo
zwane wzorcem. Celem jest znalezienie takiego fragmentu tekstu, ktry jest albo dokadnie
rwny wzorcowi, albo jest mu rwny z jednym bdem, czyli rni si od niego najwyej
jedn liter.
Na przykad wzorzec para mona znale w tekcie parawan albo aparat, a z jednym bdem
w tekcie opera albo spadanie. Bdziemy zakada, e tekst jest co najmniej tak samo
dugi jak wzorzec, a wzorzec skada si z co najmniej dwch liter.

27.1.
Dla podanych wzorcw i tekstw podaj, czy wzorzec wystpuje w tekcie dokadnie, z
jednym bdem, czy te w ogle w nim nie wystpuje. Do tabeli wpisz odpowiednio
dokadnie, z bdem lub nie.
Wzorzec Tekst W jaki sposb wzorzec
wystpuje w tekcie?
para opera z bdem
para aparat dokadnie
kran karawana
sport bezspornie
ryt zakryty
sofa solanka

27.2.
Moe si zdarzy, e wzorzec wystpuje w tekcie wicej ni raz: na przykad w sowie
rabarbar wzorzec bar wystpuje dwukrotnie. Wystpienia mog si czciowo nakada:
wzorzec issi wystpuje dwukrotnie w mississippi.
Podaj przykad tekstu o dugoci 8 oraz wzorca o dugoci 4, dla ktrych wzorzec wystpuje
w tekcie (dokadnie) przynajmniej trzykrotnie.

27.3.
Podaj algorytm (w pseudokodzie lub wybranym jzyku programowania), ktry dla danego
wzorca i danego tekstu, rozstrzygnie, czy wzorzec wystpuje w tekcie (dokadnie lub z
bdem).
Algorytm powinien wypisywa TAK, jeli wzorzec wystpuje, NIE w przeciwnym
wypadku.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
65
Dane:
dodatnie liczby cakowite m i n, nm
wzorzec[1..m], tekst[1..n], napisy zoone z maych liter alfabetu aciskiego
Wynik:
sowo TAK, jeli wzorzec wystpuje w tekcie (dokadnie lub z bdem), za sowo
NIE, jeli nie wystpuje.

Zadanie 28.
Wizka zada Sabe palindromy
Niech W[i,j] oznacza cz sowa W, zaczynajc si na i-tej literze, a koczcej na j-tej
literze W. Na przykad dla sowa W = ABCDEF mamy W[3,5] = CDE. Z kolei W[i] oznacza
bdzie i-t liter sowa W, czyli W[i]=W[i,i].
Uwaga: W treci zadania nie bdziemy odrnia pojedynczych znakw od caych napisw,
cojest charakterystyczne dla niektrych jzykw programowania.
Niech W bdzie zoonym z liter A i B sowem o dugoci m. Sowo W nazywamy sabym
A-palindromem, jeli spenia ono jeden z dwch warunkw:
1. W = A, czyli W jest sowem zoonym jedynie z litery A;
2. dugo sowa m jest liczb parzyst oraz spenione s jednoczenie ponisze warunki:
a. W[1] = W[m]
b. W[1,m/2] lub W[m/2+1,m] jest sabym A-palindromem.

Przykady
1. Jedynym dwuliterowym sabym A-palindromem jest AA.
2. Sowa W1=AAAA oraz W2=AABA s sabymi A-palindromami, oba speniaj warunek
2a (gdy W1[1]=W1[4]=A oraz W2[1]=W2[4]=A). Ponadto W1[1,2]=W2[1,2]=AA jest
take sabym A-palindromem, co zapewnia spenienie warunku 2b zarwno dla
W1 jak i W2.
3. Sowo W=AAAAAA nie jest sabym A-palindromem, poniewa nie jest speniony
warunek 2b. Sowo W ma dugo m=6, co oznacza, e sowa W[1,m/2] oraz
W[m/2+1,m] maj dugo nieparzyst rwn 3. W rezultacie adne ze sw:
W[1,m/2]= AAA, W[m/2+1,m]= AAA nie jest sabym A-palindromem.
4. Sowo AAABBAAA nie jest sabym A-palindromem, natomiast AABABBBA jest
sabym A-palindromem.

28.1.
Uzupenij ponisz tabel, ustalajc, ktre sowa speniaj warunki 2a i 2b. oraz ktre s
sabymi A-palindromami. W przypadku sabych A-palindromw w kolumnie Uzasadnienie
wska t poow sowa, ktra zapewnia spenienie warunku 2b (jeli obie poowy zapewniaj
spenienie 2b, to wystarczy wskaza tylko jedn). Dla sw, ktre nie s sabymi A-
palindromami, kolumn Uzasadnienie zostaw pust.
66 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Czy jest speniony


Czy sowo jest sabym
Sowo warunek Uzasadnienie
A-palindromem?
2a? 2b?
AABAABAA tak tak tak AABA
AAABBAAA tak nie nie
AAABBAAB nie nie nie
AAAABBBB
ABBBABAA
ABAAAABA
AAAAAAAAAA

28.2.
Rozwamy majce rn dugo sabe A-palindromy, w ktrych wystpuje najmniej liter A.
Wiemy, e jest tylko jeden saby A-palindrom jednoliterowy rwny A oraz jeden saby
A-palindrom dwuliterowy rwny AA. Nietrudno sprawdzi, e wszystkie czteroliterowe sabe
A-palindromy to: AAAA, ABAA, AABA. Zatem najmniejsza liczba liter A w sabym
A-palindromie o dugoci 1 jest rwna 1, najmniejsza liczba liter A w sabym A-palindromie
o dugoci 2 jest rwna 2, a najmniejsza liczba liter A w sabym A-palindromie o dugoci
4 jest rwna 3.
Uzupenij puste pola w poniszym zestawieniu:
najmniejsza liczba liter A sabego saby A-palindrom o dugoci m
m
A-palindromu o dugoci m i najmniejszej liczbie liter A
2 2 AA
4 3
8
Uzupenij puste pola w poniszej tabeli, podajc najmniejsz liczb liter A w sabych
A-palindromach o podanych poniej dugociach, uzupeniajc puste pola w poniszej tabeli.
najmniejsza liczba liter A sabego A-
m
palindromu o dugoci m
16
32
210
220

28.3.
Podaj algorytm sprawdzajcy, czy podane na wejciu sowo W jest sabym A-palindromem.
Twj algorytm powinien dziaa zgodnie z nastpujc specyfikacj:
Specyfikacja
Dane:
sowo W
Wynik:
Tak, gdy w jest sabym A-palindromem,
Nie, gdy w nie jest sabym A-palindromem.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
67
Zadanie 29.
Wizka zada Alfabet kulkowy
W Kulkolandii do zapisu wiadomoci uywa si kulek o dwch kolorach, czarnym i biaym.
Kada litera alfabetu jest zapisywana za pomoc pewnej liczby kulek odpowiednio
uporzdkowanych tak, jak to przedstawiono w poniszej tabeli. Zauwa, e zapis kadej litery
koczy si dwiema czarnymi kulkami:
A I R
B J S
C K T
D L U
E M W
F N X
G O Y
H P Z

29.1.
Odczytaj ponisz wiadomo zapisan alfabetem kulkowym:

29.2.
Do dyspozycji masz trzy operacje:
pusty(cig), ktra inicjuje pusty cig kulek;
pobierz(cig), ktra usuwa pierwsz kulk z niepustego cigu kulek i podaje j jako
wynik;
docz(cig, kulka), ktra do podanego cigu docza na kocu wskazan kulk.
Zapisz algorytm (w pseudokodzie lub w wybranym jzyku programowania), ktry z danego
cigu kulek wiadomosc usuwa pocztkowy fragment odpowiadajcy pierwszej literze i
zapisuje go jako cig kulek w zmiennej litera.
Specyfikacja
Dane:
wiadomosc cig kulek z zakodowanym napisem
Wynik:
litera cig kulek odpowiadajcy pierwszej literze z zakodowanego napisu
wiadomosc cig kulek pozostaych po pobraniu kulek odpowiadajcych pierwszej
literze
Uwaga: poczenie wynikowych litera i wiadomosc daje w rezultacie wejciow wiadomosc

29.3.
Do dyspozycji masz operacje:
pusty(tekst), ktra inicjuje pusty tekst;
pobierz_litere(cig), ktra usuwa z niepustego cigu kulkowego z zapisan
68 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

wiadomoci kulki odpowiadajce pierwszej literze, a jako wynik podaje liter


odpowiadajc usunitym kulkom;
dopisz(tekst, litera), ktra do podanego tekstu (moe on by pusty) docza na kocu
wskazan liter;
czy_sa_kulki(cig), podajc warto PRAWDA, gdy w podanym cigu znajduje si
przynajmniej jedna kulka, a warto FASZ, gdy w podanym cigu nie ma adnej
kulki.
Zapisz algorytm (w pseudokodzie lub w wybranym jzyku programowania), ktry dekoduje
napis zapisany kulkami.
Specyfikacja
Dane:
cig cig kulek z zakodowan wiadomoci
Wynik:
wiadomosc tekst z dekodowan wiadomoci

Zadanie 30.
Wizka zada Szyfrowanie
Szyfrowanie z kluczem k (k liczba cakowita wiksza lub rwna 0) polega na zastpieniu
kadego znaku wiadomoci jawnej innym znakiem o pozycji przesunitej w alfabecie o k
znakw wzgldem znaku szyfrowanego. Przy szyfrowaniu znaku naley postpowa w
sposb cykliczny, tzn. po osigniciu kocowego znaku alfabetu naley powrci na jego
pocztek. Rozwaamy tylko wielkie litery alfabetu angielskiego, tj. litery o kodach
dziesitnych ASCII od 65 (dla znaku A) do 90 (dla znaku Z).

30.1.
Majc do dyspozycji funkcj kod(x), ktra dla danego znaku x podaje dziesitny kod ASCII
tego znaku (np. kod(A) = 65), oraz funkcj znak(y), ktra dla danego dziesitnego kodu
ASCII podaje znak odpowiadajcy temu kodowi (np. znak(77) = M), napisz funkcj
szyfruj(zn,k), szyfrujc znak zn szyfrem z kluczem k.
Przykad dziaania funkcji: szyfruj(M,327) = B.

30.2.
Aby utrudni proces deszyfrowania, postanowiono dla kadego znaku w sowie zastosowa
inny klucz. Kluczem znaku w sowie bdzie numer jego pozycji w tym sowie.
Przykad: w sowie BIT, dla znaku B mamy k=1, dla I k=2, a dla T k=3. Zaszyfrowane
sowo BIT to CKW.
Uzupenij ponisz tabel. Zaszyfruj opisanym sposobem podane sowo jawne oraz odszyfruj
sowo zaszyfrowane.
Sowo jawne Sowo zaszyfrowane
INFORMATYKA

LQPTZZLZ
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
69
30.3.
Dane jest sowo S zaszyfrowane sposobem opisanym w zadaniu 2. Podaj algorytm (w postaci
pseudokodu lub kodu wybranego jzyka programowania) deszyfrujcy sowo S.
Dane:
n liczba znakw w sowie S (n>0)
S[1..n] zaszyfrowane sowo
Wynik:
J[1..n] sowo jawne, ktre po zaszyfrowaniu daje sowo S

Zadanie 31.
Wizka zada Szyfr skokowy
Szyfrem skokowym z kluczem k>0 nazywa bdziemy kodowanie tekstu opisane przez
poniszy algorytm, w ktrym danymi na wejciu s: k liczba cakowita dodatnia oraz W
tekst.
Algorytm:
n dlugosc(W)
m n div k
jeeli n mod k0
mm+1
dla i=1,2,,m wykonuj
ji
dopki j n wykonuj
wypisz W[j]
j j+m
Uwaga: Przyjmujemy, e:
dostpna jest funkcja dlugosc, ktra zwraca dugo sowa bdcego jej argumentem;
kolejne znaki sowa W o dugoci n oznaczamy przez W[1], W[2],, W[n].

Przykad
Dla k=3 i tekstu SZYFROWANIE algorytm wypisze tekst SRNZOIYWEFA.

31.1.
Dla poniszych wartoci k i W podaj tekst wypisany przez algorytm:
k=3, W=ZADANIE1JESTATWE
Tekst wypisany przez algorytm:.........................................................................................
k=4, W=ZADANIE1JESTPROSTE
Tekst wypisany przez algorytm:.........................................................................................

31.2.
Podaj teksty W, dla ktrych powyszy algorytm wypisze na wyjciu podane wartoci:
70 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

k=3, W= ..............................................................................................................................
Tekst wypisany przez algorytm: UDOMEWIKAEOMD
k=4, W= ..............................................................................................................................
Tekst wypisany przez algorytm: DRJTOZEBES

31.3.
Podaj algorytm deszyfrowania tekstu zakodowanego szyfrem skokowym zgodny z ponisz
specyfikacj:
Specyfikacja
Dane:
k liczba cakowita dodatnia
X tekst
Wynik:
W tekst, ktrego szyfr skokowy z kluczem k jest rwny W.

Przykad
Dla k=3 i X=SRNZOIYWEFA algorytm powinien zwrci na wyjciu tekst
W=SZYFROWANIE.

31.4.
Szyfrem mieszanym z kluczem k>0 nazywa bdziemy nastpujcy sposb kodowania tekstu
W o dugoci n:
1. Dzielimy tekst W na k czci tak, e wszystkie czci poza ostatni maj t sam
dugo m rwn zaokrgleniu w gr liczby n / k. Ostatnia cz ma dugo mniejsz
lub rwn m.
2. Tak uzyskane czci wpisujemy w kolejnych wierszach prostoktnej tabeli
o k wierszach i m liczbie kolumn.
3. Wypisujemy kolejne kolumny, zaczynajc od pierwszej, zgodnie z nastpujc zasad:
kolumny o nieparzystym numerze wypisujemy z gry na d, a kolumny o parzystym
numerze z dou do gry.

Przykad
Dla k=3 i tekstu W=SZYFROWANIE uzyskamy tabel:
S Z Y F
R O W A
N I E
a zaszyfrowana tekst ma posta SRNIOZYWEAF.
Podaj algorytm szyfrowania tekstu zakodowanego szyfrem mieszanym zgodny z ponisz
specyfikacj:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
71
Specyfikacja
Dane:
k liczba cakowita dodatnia
W tekst
Wynik:
X szyfr mieszany tekstu W z kluczem k.

Zadanie 32.
Wizka zada Kompresja
Dany jest napis zoony z maych liter alfabetu angielskiego, ktry kompresujemy w
nastpujcy sposb: jeeli w napisie wystpuj kolejno po sobie dwa identyczne cigi
kolejnych znakw, na przykad piripiri, to moemy zastpi je jednokrotnym wystpieniem
tego cigu, ujtym w nawiasy okrge, np. (piri).
Na przykad xyzxyz mona zapisa jako (xyz), za rabarbar jako ra(bar).

32.1.
Niektre fragmenty napisw znajdujcych si w tabelce zostay skompresowane podan
powyej metod. Uzupenij tabelk, odtwarzajc oryginalne napisy.
Napis skompresowany Napis oryginalny
a(cd)a acdcda
(pur)owy
(z)(zz)
(ab)a(abcd)

32.2.
Podaj algorytm (w pseudokodzie lub wybranym jzyku programowania), ktry majc
zapisany w tablicy pewien napis, sprawdzi czy jest on (w caoci) dwukrotnym powtrzeniem
pewnego fragmentu, a jeli tak, wypisze skompresowany napis w postaci ( fragment ). Jeli
napis wejciowy nie jest powtrzeniem, na wyjcie nie naley nic wypisywa.
Dane:
liczba cakowita n>0 oraz tablica napis[1..n], zawierajca napis zoony z maych liter
alfabetu angielskiego
Wynik:
jeeli napis wejciowy jest dwukrotnym powtrzeniem tego samego fragmentu, wynikiem
s kolejne znaki napisu skompresowanego.
72 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

32.3.
Dany jest napis, w ktrym niektre fragmenty zostay skompresowane podan powyej
metod. Podaj algorytm (w pseudokodzie lub wybranym jzyku programowania), ktry majc
na wejciu skompresowany napis zapisany w tablicy, wypisze na wyjcie kolejne litery napisu
oryginalnego.
Dane:
dodatnia liczba cakowita n oraz tablica napis[1..n], zawierajca pewien napis
skompresowany metod opisan wczeniej.
Wynik:

kolejne znaki oryginalnego napisu, ktrego skompresowana wersja jest w tablicy napis.
Uwaga: W napisie skompresowanym nie ma zagniede nawiasw, czyli wewntrz pary
nawiasw nie wystpi inne nawiasy.

Zadanie 33.
Wizka zada Wdrwka po planszy
Wdrowiec podruje po kwadratowej planszy rozmiaru n n. Swoj wdrwk rozpoczyna
na dowolnym polu pierwszej kolumny planszy, a na koniec powinien dotrze do ostatniej
kolumny. Bdc w kolumnie j<n, wdrowiec moe w jednym ruchu przenie si do
kolumny j+1 (nie moe przenie si do adnej innej kolumny). Warto kadego pola
planszy jest liczb cakowit. Warto pola w i-tym wierszu i j-tej kolumnie na planszy A
oznacza bdziemy przez A[i, j].
Rozwaamy 3 typy wdrowca:
skaczcy, ktry z pola w kolumnie j<n moe przeskoczy na dowolne pole w
kolumnie j+1;
spadajcy, ktry z pola A[i, j] mone przenie si tylko na pola A[k, j+1] takie, e
ikn;
chodzcy, ktry z pola A[i, j] moe przeskoczy tylko na pola A[k, j+1] takie, e k=i
lub k=i 1 lub k=i+1 oraz 1kn.

Przykad
Rozwamy plansz rozmiaru 10 10. Jeeli biec pozycj wdrowca jest pole A[3,4], to
wdrowiec skaczcy moe w jednym ruchu przenie si do pl A[1,5],
A[2,5],,A[10,5],
wdrowiec spadajcy moe przenie si do pl A[3,5], A[4,5],,A[10,5],
wdrowiec chodzcy moe przenie si do pl A[2,5], A[3,5], A[4,5].
Rozwamy nastpujcy algorytm, opisujcy tras jednego z typw wdrowcw, dla
poniszych danych:
Dane: n liczba naturalna wiksza od 1;
A tablica rozmiaru n n wypeniona liczbami cakowitymi.
Uwaga: W poniszym algorytmie B[0...n+1,1..n] jest tablic, ktrej wiersze maj numery
0,1,,n,n+1, a kolumny 1,2,,n 1, n.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
73
Algorytm:
dla i=1,2,,n wykonuj
jeeli A[i,1]>0
B[i,1] 1
w przeciwnym razie
B[i,1] 0
dla j=2,3,,n wykonuj
B[0,j] 0
B[n+1,j] 0
dla i=1,2,,n wykonuj
jeeli A[i,j] 0
B[i,j] 0
w przeciwnym razie
jeeli B[i 1, j 1]=1 lub B[i, j 1]=1 lub B[i + 1, j 1]=1
B[i,j] 1
w przeciwnym razie
B[i,j] 0
d0
dla i=1,2,,n wykonuj
jeeli B[i,n]=1
d1
zwr d

33.1.
Rozwamy dziaanie algorytmu dla n=5 oraz nastpujcej zawartoci tablicy A:

1 2 3 4 5
1 2 1 4 7 8
2 3 2 3 10 2
3 1 4 1 5 5
4 2 1 2 3 9
5 1 5 1 4 1

Podaj kocow zawarto kolumn 1,2,,5 tablicy B oraz warto zwracan przez
algorytm_1 dla powyszych danych.
74 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Tablica B:
1 2 3 4 5
0
1
2
3
4
5
6

Warto zwracana przez algorytm: .....................................................................................

33.2.
Uzupenij specyfikacj podanego powyej algorytmu.
Specyfikacja
Dane:
n liczba naturalna wiksza ni 1
A plansza rozmiaru n n wypeniona liczbami cakowitymi.
Wynik:
1 jeli istnieje trasa wdrowca typu .....................,
i prowadzca tylko przez pola o wartociach ..................... .
0 w przeciwnym przypadku

33.3.
Wartoci trasy wdrowca nazywamy sum liczb zapisanych na polach planszy, ktre
wdrowiec odwiedza w trakcie trasy. Podaj algorytm zgodny z ponisz specyfikacj.
Specyfikacja
Dane:
n liczba naturalna wiksza ni 1
A plansza rozmiaru n n wypeniona liczbami cakowitymi.
Wynik:
Najwiksza warto trasy wdrowca typu skaczcego zaczynajcej si w pierwszej
kolumnie i koczcej si w ostatniej kolumnie.

Przykad
Dla n=5 oraz zawartoci planszy podanej w zadaniu 1 algorytm powinien zwrci warto 23;
trasa wdrowca o najwikszej wartoci prowadzi przez pola A[3,1], A[2,2], A[1,3], A[1,4]
i A[4,5].
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
75
33.4.
Podaj algorytm zgodny z ponisz specyfikacj.
Specyfikacja
Dane:
n liczba naturalna wiksza ni 1
A plansza rozmiaru n n wypeniona liczbami cakowitymi.
Wynik:
1 jeli istnieje trasa wdrowca spadajcego zaczynajca si w pierwszej kolumnie,
koczca si w ostatniej kolumnie i przechodzca wycznie przez pola o
wartociach nieujemnych;
0 w przeciwnym przypadku.

Przykad
Dla n=5 oraz zawartoci planszy podanej w zadaniu 1 algorytm powinien zwrci warto 0,
gdy trasa speniajca podane warunki musi zaczyna si w polu A[3,1], z ktrego mona
przej tylko do pl ujemnych w drugiej kolumnie. Dla n=5 i poniszej zawartoci planszy
algorytm powinien zwrci warto 1; trasa prowadzca tylko przez pola dodatnie moe
przechodzi np. przez pola: A[1,1], A[2,2], A[2,3], A[3,4] i A[4,5].

1 2 3 4 5
1 2 1 4 7 8
2 3 2 3 10 2
3 1 4 1 5 5
4 2 1 2 3 9
5 1 5 6 4 1

1.3. Praktyka w teorii

Zadanie 34.
Bajtek i Bitu poznali staroytny chiski sposb testowania pierwszoci liczby naturalnej n:
liczba n musi spenia rwnanie
2n mod n = 2,
gdzie mod oznacza operator dzielenia modulo, czyli reszt z dzielenia cakowitego.
Uwaga: Staroytny chiski sposb bywa zawodny, istniej liczby, ktre speniaj to
rwnanie, a nie s pierwsze; natomiast jeli rwnanie nie zachodzi, to n jest na pewno
zoona.
Chopcy postanowili przetestowa chisk metod kolejne liczby n>=2, przeprowadzajc
obliczenia tylko na takich liczbach, ktre mona reprezentowa bez znaku na 8 bitach. co
znaczy, e na kadym etapie oblicze stosowali tylko liczby cakowite z zakresu od 0 do 255.
76 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Bajtek oblicza potgi 2n dla kolejnych wartoci n i dla obliczonej wartoci wyznacza reszt
z dzielenia przez n.
Bitu skorzysta z praw arytmetyki modularnej. W kadym z kolejnych krokw obliczania
potgi, wynik iloczynu bra modulo n. Na przykad dla n=3 obliczenia wykonywa
nastpujco:
23 mod 3 = ((2*2) mod 3)*2 mod 3 = 1*2 mod 3 = 2.
Ktry z nich mg przetestowa pierwszo liczb w wikszym zakresie?
Podaj moliwie najwiksz warto n, dla ktrej moliwe byo przeprowadzenie testu
pierwszoci metod kadego z chopcw.
W obliczeniach Bajtka nmax =
W obliczeniach Bitusia nmax =

Komentarz do zadania
Najwiksz liczb, jak mona zapisa na 8 bitach, jest 255. Jest to najwiksza warto, jaka
moe wystpi w obliczeniach czstkowych i wynikowych bez ryzyka bdw oblicze.
W obliczeniach Bajtka najwiksz liczb bdzie 2n. Aby nie przekroczya ona wartoci 255,
n nie moe by wiksze od 7: 27=128 mieci si w 8 bitach, ale 28=256 ju si nie zmieci.
W obliczeniach Bitusia n nie moe by wiksze ni 128, poniewa wwczas
27 = 128 = 128 mod n, a 2*128 = 256, czego nie mona zapisa na 8 bitach.
Zauwa, e mdry wybr algorytmu stwarza, mimo ogranicze sprztowych komputera,
moliwo realizacji oblicze w znacznie wikszym zakresie wartoci ni metoda naiwnie
najprostsza.

Rozwianie
W obliczeniach Bajtka nmax = 7.
W obliczeniach Bitusia nmax = 128.

Zadanie 35.
Jeden ze sposobw zapisania niezerowej liczby rzeczywistej x w pamici komputera polega
na:
1) przedstawieniu tej liczby w postaci iloczynu trzech liczb:
(1)S przy czym S jest rwne 0 lub 1 i nazywa si znakiem,
M mantysy, ktra jest liczb z przedziau [1;2),
2C przy czym C jest liczb cakowit zwan cech,
= (1) 2 .
2) zapisaniu w pamici oddzielnie: znaku, mantysy i cechy.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
77
Przykad

Przyjmijmy, e kad liczb rzeczywist zapisujemy na 8 bitach.


Najstarszy bit (pierwszy z lewej) jest bitem znaku: 0 oznacza liczb dodatni, 1 ujemn.
Nastpne 3 bity reprezentuj cech liczb cakowit z zakresu od 4 do 3, reprezentowan
przez trzy cyfry binarne nastpujco:

Do zapisu mantysy pozostaj ostatnie 4 bity. Cz cakowita mantysy bdzie zawsze rwna
1, wic wystarczy zapisa tylko jej cz uamkow. Uamek przedstawiamy w postaci
binarnej i zapisujemy cztery pierwsze cyfry rozwinicia, o wagach: 2-1, 2-2, 2-3 i 2-4.

Przykad
Bit znaku ma warto 0, wic liczba jest dodatnia
C = 1102 - 4 = 6 - 4 = 2
M = 1.01102 = 1 + 0.25 + 0.125 = 1.375
x = M*2C = 1.375*22 = 5.5

35a.
Oce, czy podane poniej zdania dotyczce liczby
rzeczywistej zapisanej obok w postaci binarnej s
prawdziwe, czy faszywe, stawiajc znak X
w odpowiedniej kolumnie poniszej tabeli:

P F

A Liczba jest dodatnia.

B Cecha ma warto dziesitn rwn -2.

C Mantysa ma warto dziesitn rwn 0.75.

D Liczba ma warto dziesitn rwn -0.4375.

35b.
Jak najwiksz liczb rzeczywist x mona zapisa, wykorzystujc 8 bajtw w sposb
opisany wyej? Wypenij bity reprezentacji binarnej tej liczby i podaj jej warto dziesitn.
78 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

C = .
M = .
x = ...
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
79
35c.
Jak najmniejsz liczb nieujemn mona zapisa w opisanej wyej reprezentacji 8-bitowej?
Wypenij bity jej reprezentacji binarnej i podaj jej warto dziesitn.

C = .
M = .
x = ...

Komentarz do zadania
Zauwa, e w przyjtej reprezentacji:
mona zapisa jedynie wybrane liczby z przedziau od 15.5 do 15.5,
nie da si zapisa liczby dokadnie rwnej zero,
kolejne dwie liczby mog rni si od siebie nie mniej ni o 0.125.
W praktyce liczby rzeczywiste zapisywane s na wikszej liczbie bitw: 32 (w pojedynczej
precyzji) lub 64 (w podwjnej precyzji). Szerokoci cechy i mantysy s wic duo wiksze.
Nie zmienia to jednak istoty problemu: zakres wartoci liczbowych moliwych do zapisania
jest ograniczony, a wielu wartoci nalecych do tego zakresu nie da si dokadnie zapisa.

Zadanie 36.
Dane s tabele Uczniowie i Oceny
Uczniowie: Oceny
Id_u Imie Nazwisko Id_u Wynik
1 Marek Wolski 1 2
2 Hanna Wieczorek 1 3
3 Irena Iwanicka 2 5
4 Wojciech Moscicki 2 4
5 Janina Idzik 3 5
6 Arkadiusz Czarnecki 4 2
4 5
5 2
6 4
6 3

SELECT Uczniowie.Nazwisko
FROM Uczniowie
JOIN Oceny ON Uczniowie.Id_u = Oceny.Id_u
GROUP BY Uczniowie.Nazwisko
HAVING Avg(Oceny.Wynik)>=4.5;
80 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zaznacz nazwiska, ktre pojawi si w wyniku powyszego zapytania.

T N

Wolski

Wieczorek

Iwanicka

Moscicki

Idzik

Czarnecki

Zadanie 37.
Dana jest tabela Produkty:
Id Nazwa Cena
1 banany 3,20
2 jabka 2,60
3 winogrona 7,20
4 gruszki 4,10
5 orzechy 5,30
6 pomaracze 4,80
7 maliny 6,60
8 liwki 4,10

SELECT Nazwa
FROM Produkty
ORDER BY Cena DESC;

Wrd pierwszych trzech wierszy wyniku dla powyszego zapytania pojawi si:

T N

gruszki

orzechy

pomaracze

maliny

liwki
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
81
Zadanie 38.
Dana jest tabela Agenci:
ID_agenta Obszar_dzialania
A001 Katowice
A002 Katowice
A003 Warszawa
A004 Warszawa
A005 Krakw
A006 Krakw
A007 Katowice

SELECT obszar_dzialania, COUNT(*)


FROM Agenci
GROUP BY obszar_dzialania;

Wynik powyszego zapytania to:

T N

Katowice 1
Warszawa 2
Krakw 3
Katowice 3
Krakw 2
Warszawa 2
Katowice A001
Krakw A005
Warszawa A003

A00* 3

Zadanie 39.
Wizka zada Praktyka w teorii Grafika
Na stronie internetowej aquaparku postanowiono umieci zdjcia zachcajce do odwiedzin
tego miejsca. Zarzdcy aquaparku zaley, aby ze strony internetowej mogy korzysta take
osoby majce jedynie dostp do cza internetowego niskiej prdkoci (np. 1 Mbit/s). Jedno
ze zdj o nazwie aquapark1 zostao przeksztacone za pomoc programu graficznego
i zapisane jako aquapark2. W tabeli przedstawiono oba zdjcia wraz z ich parametrami.
82 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

aquapark1
typ obrazu: jpeg
data: 14.08.2014
rozmiar: 3072 x 2304
gbia w bitach: 24bits
rozmiar pliku: 1,17 MB

aquapark2
typ obrazu: jpeg
data: 14.08.2014
rozmiar: 1024 x 768
gbia w bitach: 8bits
rozmiar pliku: 195 KB

39.1.
Ktry obraz powinien zosta dodany do galerii zdj na stronie aquaparku? Uzasadnij swj
wybr.

39.2.
Dzia promocji aquaparku zamierza przygotowa do druku folder, w ktrym umieci rne
zdjcia. Wybierz z poniszej listy format pliku graficznego, ktry zapewni najlepsz jako
druku. Uzasadnij swj wybr.

TIFF JPEG GIF

39.3.
Ile pamici zajmie bitmapa 1024 x 768 pikseli, jeli zapisano j w systemie RGB,
przeznaczajc na kad skadow 8 bitw? Wynik podaj w kilobajtach.

Zadanie 40.
Wizka zada Praktyka w teorii
Dla nastpujcych zda zaznacz znakiem X, ktra odpowied jest prawdziwa (P), a ktra jest
faszywa (F).

40.
W kolumnach A, B, C, D arkusza kalkulacyjnego w wierszach od 1 do 200 s wpisane oceny
uczniw w postaci liczb cakowitych z przedziau <1,6> z nastpujcych przedmiotw: jzyk
polski, jzyk angielski, geografia i biologia.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
83
Przykad
A B C D E F G H I
1 1 4 5 6
2 3 3 1 5
3 2 5 2 2
4 5 2 5 3

200 6 2 5 3
Aby w poszczeglnych kolumnach A, B, C, D obliczy liczb ocen bardzo dobrych (o
wartoci liczbowej 5) i umieci wyniki w komrkach G1:J1, mona w komrce G1
zastosowa nastpujc formu i skopiowa j do pozostaych komrek:

P F

LICZ.JEELI(B$1:B$200;"=5").

LICZ.JEELI(A$1:A$200;"=5").

LICZ.JEELI($A$1:$A$200;"=5").

LICZ.JEELI(A1:A200;"=5").

41.
Numer PESEL ma 11 cyfr. Dla osb urodzonych w latach 2000-2009 pierwsz cyfr numeru
PESEL jest zero. Aby dane w pliku tekstowym, zawierajce kolumn z numerem PESEL,
zostay poprawnie zaimportowane do arkusza kalkulacyjnego (jako cigi jedenastu znakw),
naley podczas importu nada tej kolumnie format:

P F

tekstowy.

liczbowy.

oglny, a po zaimportowaniu zmieni go na format tekstowy.

oglny, a po zaimportowaniu zmieni go na specjalny format o nazwie


Numer PESEL.

Zadanie 42.
Wizka zada Podzia tablicy
Rozwaamy nastpujcy algorytm.
Dane:
tablica liczb naturalnych [1. . ]
84 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Algorytm:
x T[1]
i0
j n+1
wykonuj
wykonuj
j j-1
(*) dopki T[j] > x
wykonuj
i i+1
(**) dopki T[i] < x
jeeli i < j
(***) zamie(T[i] T[j])
w przeciwnym razie
zakocz
Uwaga: funkcja zamie(T[i], T[j]) zamienia miejscami wartoci T[i] oraz T[j].

42.1.
Przeanalizuj dziaanie algorytmu i podaj czn liczb operacji porwnania, jakie zostan
wykonane w wierszach oznaczonych (*) i (**) dla danych zapisanych w poniszej tabeli:
Liczba operacji Liczba operacji
porwnania porwnania
Tablica T wykonanych wykonanych
w wierszu w wierszu
oznaczonym (*) oznaczonym (**)
4, 2, 5, 8, 1, 9, 7, 6, 3
5, 4, 3, 2, 1, 6, 7, 8, 9, 10
1, 2, 3, ... , 100
100, 99, 98, ... , 1

42.2.
Przeanalizuj dziaanie algorytmu i podaj czn liczb operacji zamiany, jakie zostan
wykonane w wierszu oznaczonym (***) dla danych zapisanych w poniszej tabeli:
Liczba operacji zamiany
Tablica T wykonanych w wierszu
oznaczonym (***)
4, 2, 5, 8, 1, 9, 7, 6, 3
5, 4, 3, 2, 1, 6, 7, 8, 9, 10
1, 2, 3, ... , 100
100, 99, 98, ... , 1

Zadanie 43.
Wizka zada Smartfon
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
85
Rozwamy nastpujce aplikacje:
serwis pogodowy,
katalog ksiek biblioteki szkolnej,
elektroniczny dziennik lekcyjny,
edytor tekstu,
serwis informacji turystycznej Wrocawia,
wyszukiwanie optymalnej trasy samochodowej,
arkusz kalkulacyjny,
kompilator jzyka programowania,
system komputerowego skadu tekstu.

43.1.
Wska wrd powyszych aplikacji dwie, dla ktrych przydatna jest informacja o pooeniu
geograficznym uytkownikw korzystajcych z urzdze mobilnych (np. smartfonw). Dla
kadej z wybranych aplikacji opisz w jednym lub dwch zdaniach sposb wykorzystania
danych o lokalizacji uytkownikw.

43.2.
Wska wrd powyszych aplikacji co najmniej dwie, ktrych przydatno jest istotnie
ograniczona w sytuacji, gdy uytkownik ma jedynie dostp do urzdzenia mobilnego (np.
smartfon, tablet). Dla kadej z wybranych aplikacji uzasadnij swj wybr w co najwyej
dwch zdaniach.

43.3.
Zdjcia wykonywane na smartfonie Franka gromadzone s na jego koncie w chmurze
obliczeniowej, o ile smartfon jest podczony do Internetu. W przypadku braku dostpu do
Internetu zdjcia gromadzone s w pamici podrcznej. Przy obecnych ustawieniach
smartfonu czsto wystpuje problem braku miejsca w pamici podrcznej, uniemoliwiajcy
robienie duej liczby zdj. Franek chciaby zmieni ustawienia tak, aby moliwe byo
zachowanie w pamici wikszej liczby zdj.
Wrd podanych niej sposobw wska te, ktre mog pomc w rozwizaniu problemu
Franka (zaznacz znakiem X ktra odpowied jest prawdziwa, a ktra jest faszywa):

P F

zmiana formatu zapisu zdj na map bitow

zmniejszenie rozdzielczoci zapisywanych zdj

zastosowanie kodw korekcji CRC, opartych na bitach parzystoci

obnienie jakoci kompresji zdj (w formacie JPEG)


86 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

43.4.
Franek zaoy konto w banku i zamierza korzysta z bankowoci internetowej. Wrd
poniszych funkcjonalnoci wska te, ktre mog suy zabezpieczaniu usug bankowoci
internetowej przed nieuprawnionym dostpem (zaznacz znakiem X ktra odpowied jest
prawdziwa, a ktra jest faszywa):

P F

protok transferu plikw FTP (File Transfer Protocol).

protok SSL (Secure Socket Layer).

uwierzytelnianie uytkownika przy pomocy hasa lub PIN.

kompresja dysku twardego.

hasa jednorazowe generowane przez ukady kryptograficzne i dostarczane


kanaami informacyjnymi alternatywnymi dla Internetu.

1.4. Test z oglnej wiedzy informatycznej

Zadanie 44.
Zdecyduj, ktre z dokocze podanego niej zdania czyni z niego zdanie prawdziwe (P),
a ktre faszywe (F). Zaznacz to znakiem X w odpowiednich miejscach tabeli.
Liczba 1001100102

P F

jest dwa razy wiksza od liczby 100110012.

jest dwa razy mniejsza od liczby 10011001002.

jest wiksza ni 51210.

jest mniejsza ni 4728.

Komentarz do zadania
Zadanie mona rozwiza na 2 sposoby. Jednym z nich jest zamiana zadanej liczby z systemu
binarnego na dziesitny i sprawdzenie, ktre odpowiedzi s poprawne:
1001100102 = 1 28 + 1 25 + 1 24 + 1 21 = 256 + 32 + 16 + 2 = 306 .
Odpowied na pytanie pierwsze jest prawdziwa, poniewa
100110012 = 1 27 + 1 24 + 1 23 + 1 20 = 153.
Odpowied na pytanie drugie jest prawdziwa, poniewa
10011001002 = 1 29 + 1 26 + 1 25 + 1 22 = 612.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
87
Odpowied na pytanie trzecie jest faszywa, poniewa liczba 306 jest mniejsza ni 512.
W przypadku odpowiedzi na czwarte pytanie mona zamieni liczb zapisan w systemie
semkowym na system dziesitny: 4728 = 4 82 + 7 81 + 2 80 = 314, zatem odpowied
jest prawdziwa.
Przedstawione rozumowanie wymaga jednak powicenia na obliczenia sporej iloci czasu.
Zadanie mona rozwiza znacznie szybciej, bez zamiany zapisu zadanej liczby z systemu
binarnego na dziesitny.
Po pierwsze, wystarczy wiedzie, e mnoenie liczby binarnych przez 2i jest jednoznaczne
z dopisywaniem i zer z prawej strony reprezentacji binarnej, za dzielenie liczb binarnych
przez 2i jest jednoznaczne z usuwaniem i najmniej znaczcych bitw. W naszym przypadku
i = 1, wic wystarczy:
usun najmniej znaczcy bit liczby w celu uzyskania odpowiedzi na pytanie
pierwsze: 1001100102 100110012,
dopisa jedno zero z prawej strony liczby w celu uzyskania odpowiedzi na pytanie
drugie: 1001100102 10011001002
W pytaniu trzecim pojawia si liczba 51210 = 29 = 1000000002 > 1001100102, zatem
odpowied jest faszywa.
W przypadku pytania czwartego wystarczy liczb binarn rozdzieli na grupy 3-bitowe, idc
od strony prawej ku lewej. Jeli w ostatniej grupie jest mniej bitw, to brakujce bity
uzupeniamy zerami. Nastpnie kad z grup bitowych zastpujemy odpowiedni cyfr
semkow. W wyniku tego otrzymujemy liczb semkow o identycznej wartoci jak
wyjciowa liczba binarna: 1001100102 100 110 0102 4628 < 4728 (co daje odpowied
prawdziw).

Rozwizanie
PPFP

Zadanie 45.
Wska elementy, ktre s niezbdne do uruchomienia komputera i zaadowania systemu
operacyjnego.

P F

procesor

twardy dysk

pami operacyjna

monitor

Komentarz do zadania
Procesor jest centraln jednostk komputera, ktra wykonuje wszystkie obliczenia i steruje
wykonywaniem instrukcji. Komputer nie moe dziaa bez procesora.
88 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Pami operacyjna jest konieczna, aby przechowywa dane, w tym podstawow cz (jdro)
systemu operacyjnego komputer bez pamici nie jest w stanie dziaa.
Komputer moe dziaa bez twardego dysku: moliwe jest uruchomienie systemu
operacyjnego z pyty CD lub pamici typu flash, a nawet przez sie lokaln, przy zdalnym
uyciu dysku znajdujcego si w innym komputerze.
Komputer moe bez adnych przeszkd dziaa bez monitora. Czsto na przykad w ten
sposb pracuj dugo dziaajce serwery, ktre wygodniej obsugiwa zdalnie, logujc si na
nie z innego komputera.

Zadanie 46.
Zaznacz znakiem X w odpowiedniej kolumnie, ktre zdanie jest prawdziwe, a ktre jest
faszywe.

P F
System operacyjny przydziela zadaniom czas pracy procesora.

System operacyjny uywa zawsze tego samego systemu plikw dla


wszystkich urzdze.

W skad systemu operacyjnego wchodzi zawsze graficzny interfejs


uytkownika.

System operacyjny przydziela uruchamianym aplikacjom pami


operacyjn.

Zadanie 47.
Zaznacz znakiem X w odpowiedniej kolumnie, ktre zdanie jest prawdziwe (P), a ktre jest
faszywe (F).
System plikw NTFS

P F

nie jest obsugiwany przez system Linux.

przechowuje informacj o rozmiarze, dacie utworzenia i modyfikacji pliku


oraz o ciece dostpu do pliku.

uniemoliwia zapisanie pojedynczego pliku o rozmiarze powyej 4 GB.

umoliwia administratorowi nadawanie pojedynczym uytkownikom lub


grupom uytkownikw praw dostpu do plikw i katalogw.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
89
Zadanie 48.
Zaznacz znakiem X w odpowiedniej kolumnie, ktre zdanie jest prawdziwe, a ktre jest
faszywe.
W pewnej firmie znajduj si m.in. komputery o nastpujcych adresach IP:
komputer A: 10.20.30.40 / maska 255.255.0.0;
komputer B: 10.0.0.10 / maska 255.255.255.0;
komputer C: 1.2.3.4 / maska 255.255.255.0;
komputer D: 1.2.3.250 / maska 255.255.255.0.

P F

Komputer A moe by widoczny w sieci Internet pod innym adresem IP.

Tylko dwa z wymienionych komputerw mog mie dostp do sieci


Internet.

Komputery A i B znajduj si w jednej podsieci.

Komputery C i D musz znajdowa si w jednym budynku.

Zadanie 49.
Chmura obliczeniowa jest usug polegajc na zdalnym udostpnieniu mocy obliczeniowej
urzdze IT, oferowan przez zewntrznego dostawc. Oce prawdziwo poniszych zda,
umieszczajc znak X w odpowiedniej kolumnie tabeli.

P F

Z aplikacji i danych umieszczonych w chmurze mona


A korzysta z dowolnej lokalizacji i dowolnego sprztu IT
umoliwiajcego poczenie internetowe.

Uytkownik nie jest zobowizany do zakupu licencji na


oprogramowanie uywane w chmurze i udostpniane przez
B
dostawc, paci jedynie za jego uycie (kadorazowo lub w
formie abonamentu).

Uytkownik moe zdalnie instalowa w przydzielonych


C zasobach chmury dowolne aplikacje i korzysta z nich tak jak
na lokalnym komputerze.

Pula zasobw uytkownika (w tym: procesory, pami RAM,


D przestrze dyskowa) jest elastycznie skalowana w zalenoci
od jego potrzeb i ograniczona tylko moliwociami dostawcy.
90 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 50.
HTTP Cookie jest niewielk porcj informacji wysyan przez witryn internetow do
przegldarki klienta i zapisywan w jej ustawieniach. Oce prawdziwo poniszych zda,
umieszczajc znak X w odpowiedniej kolumnie tabeli.

P F

Cookie zawiera polecenia, ktre konfiguruj ustawienia


A
przegldarki klienta.

Cookie umoliwia serwisowi sprawdzenie, czy klient ju go


B
odwiedza w przeszoci, oraz zapamitanie upodoba klienta.

Cookie zapisane przez serwis z domeny cwaniak.org moe by


C
odczytane przez serwis z domeny spryciarz.org.

Zablokowanie obsugi cookie w przegldarce moe


D spowodowa utrudnienia dla uytkownika dokonujcego
zakupw w sklepie internetowym.

Zadanie 51.
Czterech uytkownikw zaoyo konta w pewnym serwisie internetowym. Wybrali
nastpujce dane logowania:

nazwa uytkownika: jankowalski


Uytkownik A
haso: 1234

nazwa uytkownika: merkuriusz_312


Uytkownik B
haso: merkuriusz_312

nazwa uytkownika: abc


Uytkownik C
haso: S4o9s2n5a7

nazwa uytkownika: master


Uytkownik D
haso: password

Przestpca usiuje przej konta uytkownikw, stosujc w tym celu nastpujce dwie
techniki:
atak brute force (wszystkie moliwe kombinacje znakw),
metoda psychologiczna i sownikowa (zgadnicie hasa, sprawdzenie popularnych
hase i sw).
Wska, ktre hasa s podatne na zamanie tymi metodami, stawiajc w odpowiednim polu
tabeli znak X, jeli taka podatno wystpuje:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
91

atak brute force metoda


sownikowa/psychologiczna

Uytkownik A

Uytkownik B

Uytkownik C

Uytkownik D

Zadanie 52.
Zaznacz znakiem X w odpowiedniej kolumnie, ktre zdanie jest prawdziwe (P), a ktre jest
faszywe (F).
W grafice rastrowej 24-bitowe kodowanie koloru oznacza, e

P F

liczba kolorw w palecie barw wynosi ponad 16 milionw.

informacje o kolorze jednego piksela zajmuj 3 bajty.

liczba kolorw jest niewystarczajca do zapisu zdj.

obraz o rozmiarach 300x300 pikseli zapisany bez kompresji ma wielko


okoo 2,16 MB.

Zadanie 53.
Wizka zada Zegar binarny
Pan Kowalski postanowi wyjecha na wycieczk na wysp Binarn. Mieszkacy tej wyspy
do zapisywania cyfr dziesitnych uywaj metody obrazkowej, opartej na systemie binarnym.
Podczas pobytu na wyspie Pan Kowalski wybra si na jednodniow wycieczk objazdow.
W jej trakcie zrobi 4 ponisze zdjcia zegara uywanego na wyspie. Stan zegara podawany
jest w formacie GG:MM:SS, gdzie GG to godzina, MM to minuty, a SS to sekundy (zapisane
zawsze przy pomocy dwch cyfr). Kada cyfra zapisana jest w osobnej kolumnie.

Zdjcie 1 Zdjcie 2 Zdjcie 3 Zdjcie 4

Pierwsze zdjcie zostao zrobione w momencie rozpoczcia wycieczki, ostatnie zdjcie


w chwili jej zakoczenia, zdjcia 2 i 3 zostay natomiast zrobione w trakcie wycieczki.
92 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

53.1.
Podaj w systemie dziesitnym stany zegara wywietlane na zdjciach 1 oraz 4.
Stan zegara na zdjciu nr 1:
Stan zegara na zdjciu nr 4:

53.2.
Pan Kowalski pooy si spa o godzinie 23:45:29. Zamaluj odpowiednie pola poniszej
planszy tak, aby reprezentowaa ona t godzin na zegarze uywanym przez mieszkacw
wyspy.

Zadanie 54.
Zaznacz znakiem X w odpowiedniej kolumnie, ktre zdanie jest prawdziwe (P), a ktre jest
faszywe (F).
Stos jest struktur danych, ktra umoliwia

P F

bezporedni dostp do ostatnio zapisanego elementu.

bezporedni dostp do kadego elementu stosu.

bezporedni dostp do najmniejszego i najwikszego elementu stosu.

dodanie nowego elementu oraz usunicie najpniej dodanego elementu.

Zadanie 55.
Wizka zada Zadania Zamknite Funkcja

Dana jest nastpujcy algorytm F(n) dla n N , n 0 :


F(n)
jeeli n = 1, zwr 1 i zakocz
w przeciwnym razie zwr F(n div 2) + 1
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
93
55.1.
Zoono tego algorytmu jest

P F

wykadnicza.

logarytmiczna.

liniowa.

kwadratowa.

55.2.
Dla tego algorytmu zachodzi

P F

F(8) = 3.

F(12) = 4.

F(1) = 0 lub F(9) = 4.

F(1) = 1 oraz F(9) = 3.

Zadanie 56.
Piractwo komputerowe jest przestpstwem polegajcym na:

P F

wykorzystywaniu oprogramowania w celu osignicia korzyci majtkowej,


bez licencji na jego uytkowanie.

instalowaniu wersji demo oprogramowania, ktrego licencj planujemy


kupi.

rozpowszechnianiu w Internecie programw komputerowych, ktrych


licencj zakupilimy.

oferowaniu za darmo w Internecie oprogramowania rozpowszechnianego na


licencji freeware.
94 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 57.
Zgodnie z prawem w Internecie mona opublikowa zdjcie osoby:

P F

po uzyskaniu od niej zezwolenia.

gdy jest to osoba powszechnie znana i zdjcie zostao wykonane podczas


penienia przez ni funkcji publicznych, w szczeglnoci politycznych,
spoecznych, zawodowych.

gdy osoba ta jest naszym bliskim znajomym.

gdy stanowi ona jedynie szczeg caoci takiej jak: zgromadzenie, krajobraz,
publiczna impreza.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
95

2. Zadania praktyczne rozwizywane z uyciem komputera

Wczytywanie danych
Dane do zada rozwizywanych na komputerze zapisane s w plikach tekstowych. Prosty plik
tekstowy (txt) zawiera dane w postaci alfanumerycznej bez jakiegokolwiek formatowania.
Kady system operacyjny posiada program do otwierania plikw tekstowych. W systemie
Windows jest to Notatnik.

Importowanie danych do arkusza kalkulacyjnego MS Excel


W zaoeniu kady wiersz pliku tekstowego ma by zaimportowany do osobnego wiersza
w pliku arkusza kalkulacyjnego. Skd jednak program ma wiedzie, jak rozoy dane
pomidzy kolumnami? Spjrzmy na poniszy przykad, ktry przedstawia jeden wiersz z
przykadowego pliku tekstowego:
Jan, Malinowski; 4,000; 1980-01-12
Dla nas jest to do oczywiste: powyej mamy imi i nazwisko osoby, jak liczb (np. jej
zarobki) i dat (np. dat urodzenia). Poszczeglne pola rozdziela rednik. Powysze dane
powinny by wic zaimportowane w taki sposb:

Rysunek 1- przykadowe dane po zaimportowaniu

Jednak arkusz kalkulacyjny nie potrafi analizowa znaczenia danych, moe je wic inaczej
zaimportowa. Dlatego tak wany jest separator, ktry oddziela dane w wierszu.

Rysunek 2- Przykady bdnie zaimportowanych danych

Do zaimportowania danych do arkusza suy kreator. Podpowiada on, jak ma by traktowany


plik tekstowy, na ktrym pracujemy, i jak prawidowo rozmieci dane w komrkach.
Przejdmy wic wreszcie do arkusza kalkulacyjnego i zobaczmy, jakie pytania zadaje nam
program oraz jak moemy na nie odpowiedzie.

Rozpoczynamy import
Kreator uruchamiamy przyciskiem Z tekstu, znajdujcym si na karcie Dane, w grupie Dane
zewntrzne.

Rysunek 3 Przycisk uruchamiajcy kreatora


96 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

W nowym oknie wskazujemy plik rdowy (w naszym przypadku bdzie to plik


szkoly.txt). Zamy, e jest to plik zawierajcy informacje o rnych szkoach.
Poszczeglne kolumny oddzielone s znakiem rednika.
Przechodzimy do pierwszego kroku kreatora.

Krok 1 z 3

Rysunek 4 Krok pierwszy importu pliku

Pierwsza decyzja dotyczy rodzaju pliku:


Czy jest to plik rozdzielany? W pliku rozdzielanym kolejne kolumny wyrnione s
jakim znakiem (spacja, tabulator, rednik). Arkusz, napotykajc taki znak w wierszu
pliku, wie, e kolejne dane ma wpisywa w nastpnej kolumnie.
Czy jest to plik z polami o staej szerokoci? W takim pliku kolejne kolumny zajmuj
okrelon liczb znakw. Na przykad pierwsza kolumna zajmuje dziesi znakw,
a druga osiem. Po wpisaniu do pierwszej kolumny dziesiciu znakw kreator
wpisze do kolejnej nastpne osiem i tak dalej.
Nasz plik jest rozdzielany rednikiem. Zdarza si, e dane s w pliku poprzedzone
nagwkiem. System generujcy plik tekstowy moe umieci w nim dat wygenerowania
pliku, swoj nazw lub inny komentarz do danych. Pole Rozpocznij import od
wiersza pozwala nam omin te informacje i zacz pobieranie danych od odpowiedniego
miejsca. W naszym pliku szkoly.txt w pierwszym wierszu s nagwki kolumn, znowu
wic zostawiamy domylne ustawienia.
Pole Pochodzenie pliku najczciej zostawiamy bez zmian. Jeeli w podgldzie pliku poniej
zamiast liter wida "krzaczki", niezrozumiae znaki, trzeba zmieni t opcj.
Krok drugi wyglda rnie, zalenie od tego, jaki rodzaj pliku wybralimy przed chwil.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
97
Krok 2 z 3 plik rozdzielany

Rysunek 5 Krok drugi dla pliku rozdzielanego

W tym kroku okrelamy, jaki znak rozdziela kolumny w naszym pliku to rednik. Poniej
wida podgld importowanego pliku, odpowiednie dane s ju w swoich kolumnach.

Krok 2 z 3 staa szeroko


Nie dotyczy to naszego pliku, jednak spjrzmy na chwil, jak wyglda krok drugi w tym
przypadku, oczywicie dla innego pliku.
98 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Rysunek 6 Krok drugi dla pliku o staej szerokoci pl

W powyszym oknie musimy wskaza, gdzie zaczynaj si kolejne kolumny danych,


zaznaczajc kursorem miejsce podziau.

Krok 3 z 3

Rysunek 7 Krok trzeci importu

W trzecim kroku na og akceptujemy domylne ustawienia kreatora importu. Zwrmy


jednak uwag na dostpne tu opcje. Wybierajc kolumny w podgldzie danych, moemy
zmienia sposb, w jaki s one importowane. Moemy te zdecydowa, ktre kolumny
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
99
powinny by pominite w procesie importu. Szczeglnie naley zwrci uwag na
przycisk Zaawansowane.
W tym miejscu potrzebna jest maa dygresja. W polskim systemie Windows cz cakowita
i uamkowa oddzielane s przecinkiem. Ustawienia stosowane przez system Windows mona
sprawdzi w opcji Ustawienia regionalne Panelu sterowania. Plik tekstowy moe pochodzi
z innego systemu, w ktrym na przykad do tego stosowana jest.

Rysunek 8 Ustawienia zaawansowane importu liczb

Na przykad liczba 1982,45 zostanie zinterpretowana w polskim systemie prawidowo, ale ta


liczba moe by te zapisana jako 1,982.45 (w zapisie amerykaskim). Przy poniszych
ustawieniach podpowiadamy, jak zapisa liczby w naszym pliku w taki sposb, aby w jego
komrkach ostatecznie pojawiy si waciwe liczby. Dziki temu bdziemy mogli
wykonywa rne dziaania (sumy, rednie itp.). Przy bdnych ustawieniach Excel
zaimportuje cig znakw 1,982.45, bdzie go traktowa jako tekst i nie pozwoli nam na
dziaania, jakie byyby dostpne w przypadku liczb.
W przypadku naszego pliku moemy jednak zostawi ustawienia domylne. Naciskam
wic Zakocz i nastpnie OK, aby zaobserwowa, jak mj arkusz wypenia si danymi z
pliku.

Importowanie danych do MS Access


Dane importujemy do zaoonej pustej bazy danych, przy czym dla kadego pliku tworzymy
osobn tabel. Zademonstrujmy import na przykadzie pliku szkoly.txt, ktry zawiera
zestawienie rnych szk w poszczeglnych gminach. Pierwszy wiersz jest wierszem
nagwkowym, a dane w wierszach rozdzielone s znakami tabulacji.
100 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Krok 1 to wywoanie kreatora importu:


Decydujemy, jaki jest format danych.

Wybieramy w tym wypadku format ograniczony separatorem (to moe by znak tabulacji,
przecinek, rednik, odstp lub inny znak).
W kroku 2 zaznaczamy, ktry znak jest separatorem oddzielajcym pola, oraz zaznaczamy
(lub nie), czy pierwszy wiersz zawiera nazwy pl:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
101
102 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Nastpnie okrelamy informacje dotyczce kadego pola: jego nazw, typ przechowywanych
danych, to, czy pole bdzie indeksowane i czy moe zawiera duplikaty.

Nie zawsze wybr typu danych dla pola jest oczywisty na pierwszy rzut oka. Przykad:
importujc kolumn zawierajc numery PESEL, wybieramy dla pola typ tekstowy, poniewa
wartoci liczbowe numerw PESEL s zbyt due, aby przechowywa je w polu typu liczba
cakowita (a nawet liczba cakowita duga).
Problem moe te stwarza import danych zawierajcych zera wiodce. Jeli zaimportujemy
takie dane do pola typu liczbowego, to zera wiodce zostan usunite, na przykad dana 0020
po zaimportowaniu bdzie mie warto 20. Aby utrzyma zera wiodce, tak dan
importujemy do pola typu tekstowego.
Kolejna decyzja dotyczy klucza gwnego tabeli, a cilej: czy ma on w ogle by, a jeeli
tak, to jaki. MS Access domylnie proponuje dodanie kolumny stanowicej klucz gwny,
warto jednak samodzielnie zdecydowa, ktre z ju istniejcych pl moe peni rol klucza.
Moemy take zdecydowa, e nasza tabela nie bdzie miaa klucza podstawowego.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
103

Tabela domylnie otrzymuje nazw tak jak nazwa pliku, z ktrego pochodz dane, ale
moemy t nazw zmieni.
W programie Microsoft Access mona po zaimportowaniu danych utworzy wizania
wybranych pl z rnych tabel i zapisa je jako stay element systemu bazodanowego
(relacje). Mona rwnie tworzy wizania tylko na potrzeby konkretnego zapytania
(kwerendy) jest to naturalny sposb programowania w jzyku SQL.
Jeli zdecydujemy si utworzy relacje na pocztku, w programie Microsoft Access
wybieramy zakadk Narzdzia bazy danych/Relacje. Wybieramy te spord tabel, dla
ktrych chcemy stworzy relacje, czyli na og wszystkie tabele w bazie.
104 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Wizanie tworzymy, przecigajc myszk wybrane pole z jednej tabeli i puszczajc je nad
wybranym polem drugiej tabeli. Oba pola musz by tego samego typu, cho mog mie
rne nazwy. Domylnie tworzone jest wizanie typu wewntrzne, ktre z obu wizanych
tabel udostpnia tylko rekordy pasujce. We waciwociach wizania mona zmieni jego
typ na zewntrzne lewo- lub prawostronne, ktre bdzie udostpnia wszystkie rekordy z
jednej tabeli, a z drugiej tabeli tylko rekordy pasujce do poczenia.
W oknie kreatora, obok linii czcej pola, pojawia si informacja o typie relacji: 1:1 lub 1:.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
105

Wczytywanie i wypisywanie danych w zadaniach programistycznych


W jzyku C++ do odczytu i zapisu danych su specjalne obiekty zwane strumieniami. Taki
obiekt powizany jest ze rdem danych w naszym wypadku bd to zwykle pliki na
dysku, ale mona te obsugiwa strumienie odpowiadajce np. urzdzeniom zewntrznym.
Aby uy w swoim programie strumieni powizanych z plikami, naley zadeklarowa uycie
biblioteki fstream (z angielskiego file-stream, czyli strumienie plikowe):
#include <fstream>
W samym programie deklarujemy obiekt, ktry bdzie czyta z konkretnego pliku. Obiekt taki
powinien mie jeden z nastpujcych trzech typw:
ifstream strumie wejcowy, czyli sucy do czytania danych z pliku (input file
stream)
106 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

ofstream strumie wyjciowy, do zapisywania danych do pliku (output file stream)


fstream strumie, z ktrego mona zarwno czyta dane, jak i zapisywa dane do
niego.
Deklaracja obiektu wyglda tak, jak kadej innej zmiennej w C++. Wybierzmy dla niego
nazw wejscie:
ifstream wejscie;
Teraz kojarzymy program z konkretnym plikiem na dysku niech nazywa si, na przykad,
dane.txt:
wejscie.open(dane.txt);
Od tej chwili zmienna strumieniowa wejscie pobiera kolejne dane z pliku dane.txt.
Nadmiemy jeszcze, e te dwie instrukcje mona poczy w jedn, majc ten sam skutek:
ifstream wejscie(dane.txt);
Ten obiekt jest typu ifstream, czyli suy do czytania danych. Deklaracja obiektu, ktry
odpowiada za zapis danych do pliku wyglda bardzo podobnie:
ofstream wyjscie;
wyjscie.open(wynik.txt);
albo:
ofstream wyjscie(wynik.txt);
Wreszcie, zmienna typu fstream moe suy zarwno do czytania, jak i do pisania, trzeba
jednak przy otwieraniu pliku poda, do czego w tym momencie zostanie uyta, za pomoc
nastpujcej konstrukcji:
fstream plik;
plik.open(plik.txt, ios::in);
jeli zamierzamy czyta z pliku, lub:
plik.open(plik.txt, ios::out);
jeli bdziemy do niego pisa.
Wane: deklaracja zmiennej typu ofstream, albo fstream z parametrem ios::out spowoduj, e
plik zostanie wyczyszczony, a nowe dane zastpi to, co byo w nim wczeniej. Aby dopisa
nowe dane na koniec istniejcego pliku, trzeba uy instrukcji:
ofstream plik;
plik.open(wynik.txt,ios::app);
Oczywicie mona uy wariantu z pojedyncz instrukcj:
ofstream plik(wynik.txt,ios::app);
albo uy fstream w miejsce ofstream.
Mamy zatem pliki otwarte do odczytu i zapisu w zadaniach maturalnych najczciej
bdziemy potrzebowali jednego pliku do odczytu i jednego do zapisu.
Dane czytamy ze strumieni i piszemy do strumieni za pomoc operatorw << i >>. Jeli, na
przykad, mamy zadeklarowan zmienn typu int:
int a;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
107
i chcemy odczyta jedn liczb z pliku, ktremu odpowiada zmienna strumieniowa wejscie,
piszemy:
wejscie >> a;
Jeli chcemy odczyta dwie liczby i zapisa je do zmiennych a i b, moemy napisa:
wejscie >> a >> b;
co jest skrtem dla dwch osobnych instrukcji (wejscie >> a; wejscie >> b;)
Jeli, na przykad, w pliku jest 1000 liczb, zapisanych kada w osobnym wierszu, moemy
zadeklarowa tablic odpowiedniej dugoci:
int A[1000];
a nastpnie przeczyta wszystkie liczby za pomoc ptli for:
for(int i=0; i<1000; i++)
wejscie >> A[i];
Dla przykadu, analogicznie do pliku wyjciowego zapisujemy np. pojedyncz liczb
za pomoc instrukcji:
wyjscie << a;
Rozwimy dla przykadu bardzo proste zadanie: w pliku dane.txt znajduje si 1000
wierszy, z ktrych kady zawiera po dwie liczby, oddzielone pojedynczym odstpem. Naley
dla kadej pary liczb policzy ich sum i zapisa j do pliku wynik.txt, kad sum w
osobnym wierszu. Odpowiedni program moe wyglda tak:

#include <fstream>

using namespace std;


// zaznaczamy ktrej przestrzeni nazw bdziemy uywa

int main()
{
// deklarujemy tablice A i B dugoci 4
int A[4], B[4];

// zmienna strumieniowa na plik wejsciowy


ifstream wejscie("dane.txt");

// zmienna strumieniowa na plik wejsciowy


ofstream wyjscie("wynik.txt");

for(int i=0; i<4; i++)


// wczytaj z pliku dwie liczby i zapisz je do A[i] oraz B[i]
wejscie >> A[i] >> B[i];

for(int i=0; i<4; i++)


// wypisz sum do pliku wyjciowego
wyjscie << A[i]+B[i] << endl;
108 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

wejscie.close();
wyjscie.close();
}

W tym programie uylimy dwch dodatkowych instrukcji. Instrukcja


wyjscie << endl;
wypisuje do pliku znak koca wiersza (czyli przechodzi do nastpnego wiersza). Instrukcje
wejscie.close();
wyjscie.close();
zamykaj pliki, czyli informuj system operacyjny, e nie bdziemy ju ich potrzebowa.
Brak instrukcji zamknicia pliku moe spowodowa (cho na og nie powoduje) rnego
rodzaju problemy (np. niekompletne zapisanie si danych).
Warto zauway, e w tym programie nie musielimy najpierw czyta wszystkich liczb z
pliku wejciowego, a potem wypisywa wszystkich sum. Jak najbardziej moliwe jest
wczytanie dwch liczb, wypisanie ich sumy, a potem zajcie si kolejnymi dwiema liczbami.
W takich sytuacjach nie potrzebujemy nawet tablic do przechowywania danych, co skraca
program:

#include <fstream>

using namespace std;

int main()
{
int a, b;
ifstream wejscie("dane.txt");
ofstream wyjscie("wynik.txt");
for(int i=0; i<4; i++)
{
// wczytaj z pliku dwie liczby
wejscie >> a >> b;
// wypisz sum do pliku wyjciowego
wyjscie << a+b << endl;
}
wejscie.close();
wyjscie.close();
}

Czasem zamiast liczb chcemy czyta napisy (acuchy znakw), ktre w C++ przechowuje
si w zmiennych typu string. Wczytywanie i wypisywanie takich danych wyglda prawie
identycznie:
string S; // deklaracja zmiennej typu acuchowego
wejscie >> S;
Warto wiedzie, e taka instrukcja wczytuje znaki tylko tak dugo, a napotka pierwszy
biay znak (spacj, koniec wiersza, tabulatora). Jeli w pliku w pierwszym wierszu znajduje
si napis:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
109
Dzien dobry!
to instrukcja
wejscie >> S;
zapisze do zmiennej S tylko sowo Dzien. Gdybymy mieli dwie zmienne, S i T, obie typu
string, to instrukcja:
wejscie >> S >> T;
zapisaaby do S napis Dzien, a do T napis dobry!, ignorujc spacje.
Jednak przy wyprowadzaniu tej danej do pliku wyjciowego, zapisany zostanie zawsze cay
acuch. Instrukcja:
S = Dzien dobry!
wyjscie << S;
umieci w pliku wyjciowym peny napis Dzien dobry!.
Aby wic na przykad przeczyta z pliku wejciowego 200 sw, z ktrych kade zapisane
jest w osobnym wierszu, naley wykona nastpujcy fragment programu:
string Tablica[200];
for(int i=0; i<200; i++)
wejscie >> Tablica[i];
Tego samego programu mona uy, jeli sowa nie s zapisane w osobnych wierszach, ale
oddzielone odstpami.
Wczytywanie/wypisywanie liczb i napisw mona bez problemu miesza ze sob, na
przykad instrukcja:

string a = Basnie z ;
int b = 1000;
string c = i jednej nocy;

wyjscie << a << b << c;

wypisze Basnie z 1000 i jednej nocy. Zawarto np. takiego pliku:

Zakroczym 2
Wyszogrod 34
Plock 71
Wloclawek 115

zostanie prawidowo odczytana, jeli wykonamy nastpujce instrukcje:

string A[4];
int B[4];

for(int i=0; i<4; i++)


wejscie >> A[i] >> B[i];
110 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Napisy (nazwy miast) znajd si w tablicy A, za liczby (odlegoci) w tablicy B.

Czasem zadanie wymaga pracy na liczbach, ktre nie s cakowite w C++ do


przechowywania takich liczb su zmienne typu float i double. Jeli na przykad zmiennej x
przypiszemy warto 1/7:

double x = 1.0 / 7;

i uyjemy polecenia

wyjscie << x;

do pliku wyjciowego zostanie wypisane 0.142857. W zadaniach maturalnych


potrzebujemy jednak najczciej pewnej ustalonej precyzji zapisu dziesitnego na przykad
polecenie moe brzmie: Wypisz liczb z dokadnoci do dwch miejsc po przecinku. Aby
ustali precyzj, posugujemy si instrukcj precision, uywan w nastpujcy sposb:

wyjscie.precision(3);
wyjscie << x;

Teraz otrzymujemy wynik 0.143, jednak wypisanie t sam metod 1/70 moe prowadzi do
niespodzianek fragment kodu:

double x = 1.0 / 70;


wyjscie.precision(3);
wyjscie << x;

spowoduje wypisanie 0.0143, a nie 0.014, poniewa kompilator, wypisuje trzy cyfry
znaczce, czyli nie liczy zer bezporednio po przecinku. Aby wypisywa on zawsze dokadnie
trzy cyfry po przecinku, konieczna jest jeszcze instrukcja fixed:

wyjscie.precision(3);
wyjscie << fixed;
wyjscie << x;

Aby uywa instrukcji precision i fixed, konieczne jest doczenie nagwka iomanip na
pocztku programu:

#include <iomanip>

Warto pamita, e jeli nie zmieniamy precyzji, domylnie uytym zapisem w C++ jest 6
cyfr znaczcych.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
111
2.1. Algorytmy w praktyce

Zadanie 58.
Wizka zada Systemy liczbowe
Centralny orodek meteorologiczny planety Cyfrak codziennie w poudnie rejestruje
wskazania zegarw oraz temperatur w trzech stacjach pogodowych: S1, S2, S3. Zegary w
stacjach pogodowych odliczaj liczb godzin, ktre upyny od uruchomienia stacji. W stacji
S1 wszystkie wartoci (wskazania zegara i temperatury) zapisywane s w systemie binarnym,
w stacji S2 w systemie czwrkowym (czyli systemie pozycyjnym o podstawie 4), a w
stacji S3 w systemie semkowym (czyli systemie pozycyjnym o podstawie 8).
Temperatury ujemne poprzedzone s znakiem , np. 1101 w systemie dwjkowym
oznacza liczb o zapisie dziesitnym 13.
Pliki dane_systemy1.txt, dane_systemy2.txt, dane_systemy3.txt
zawieraj wyniki 1095 kolejnych pomiarw przeprowadzonych w stacjach S1, S2, S3 od
czasu ich uruchomienia. Kady wiersz pliku zawiera wyniki jednego pomiaru: stan zegara
i temperatur. Wartoci w wierszach rozdzielone s spacjami.

Przykad
Wiersz opisujcy pomiar, w ktrym zegar wskazuje liczb 36, a termometr temperatur 7,
wygldaby nastpujco:
Plik dane_systemy1.txt
100100 -111
Plik dane_systemy2.txt
210 -13
Plik dane_systemy3.txt
44 -7
Napisz program(-y), ktry pozwoli rozwiza ponisze zadania. Odpowiedzi zapisz w pliku
wyniki_systemy.txt. Odpowied do kadego zadania podaj w osobnym wierszu,
poprzedzajc j numerem zadania.

58.1.
Dla kadej stacji pogodowej podaj najnisz zarejestrowan temperatur, a wszystkie wyniki
zapisz w systemie binarnym (dwjkowym).

58.2.
Zgodnie z harmonogramem pomiary wykonywane s co 24 godziny, poczwszy od
pierwszego pomiaru. Oznacza to, e wyraone dziesitnie stany zegarw w kolejnych
pomiarach powinny wynosi 12, 12+24=36, 12+224=60 itd.
Podaj liczb pomiarw, w ktrych zarejestrowany stan zegara by niepoprawny jednoczenie
we wszystkich stacjach pogodowych.

Przykad
Rozwamy dane, w ktrych pierwsze 3 wiersze pliku dane_systemy1.txt s nastpujce:
1100 -11
112 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

100100 -111
111101 1
Poniewa zapisane binarnie stany zegara: 1100, 100100 i 111101 to odpowiednio
wartoci: 12, 36 i 61, to tylko stany podane w dwch pierwszych wierszach s poprawne, za
w trzecim wierszu stan jest nieprawidowy.

58.3.
Rekordem temperatury dla danej stacji pogodowej nazywa bdziemy pomiar temperatury,
ktry jest wikszy od wszystkich wczeniejszych pomiarw dokonanych w tej stacji.

Przykad
Dla nastpujcych wynikw kolejnych pomiarw temperatur dokonanych od pierwszego
pomiaru w danej stacji (podanych w zapisie dziesitnym):
1, -1, 0, 2, 1, 1, 3, 4, 4, 3, 1, 7, 2, 1
rekordami temperatury s wszystkie podkrelone wyniki.
Dniem rekordowym jest dzie, w ktrym w co najmniej jednej stacji pogodowej
zarejestrowano rekord temperatury. Podaj liczb dni rekordowych.
Przykad: przyjmijmy, e podane w zapisie dziesitnym wyniki pomiarw
dokonywanych w kolejnych dniach byy w trzech stacjach nastpujce:
Dzie S1 S2 S3
1 1 0 -1
2 2 1 -1
3 1 -1 -1
4 0 -2 0
5 1 2 1
Dla powyszych danych liczba dni rekordowych wynosi: 3.

58.4.
Oznaczmy kolejne zarejestrowane temperatury w stacji pogodowej S1 przez t1, t2, t3, Niech
rij oznacza kwadrat rnicy midzy temperaturami w i-tym i j-tym pomiarze pierwszej stacji
pogodowej, rij=(ti tj)2. Skokiem temperatury midzy i-tym a j-tym pomiarem nazywa
bdziemy zaokrglenie w gr do liczby cakowitej uamka rij / |i j|.

Przykad
Dla nastpujcych kolejnych pomiarw temperatur (zapisanych dziesitnie):
3, 5, 4, 7,
skoki temperatur opisuje ponisza tabela
i, j ti , tj rij |i j| Skok temperatury midzy i-tym a
j-tym pomiarem
1, 2 3, 5 22=4 1 4
1, 3 3, 4 12=1 2 1
1, 4 3, 7 42=16 3 6
2, 3 5, 4 12=1 1 1
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
113
2, 4 5, 7 22=4 2 2
3, 4 4, 7 32=9 1 9
Podaj najwikszy skok temperatury w stacji pogodowej S1. Wynik podaj w systemie
dziesitnym.

Komentarz
W naszym rozwizaniu bdziemy zamienia napisy reprezentujce liczby w systemach
niedziesitnych na odpowiednie liczby cakowite (pamitane w zmiennych typu int). Dziki
temu niezbdne obliczenia i porwnania wykonywane bd z wykorzystaniem zmiennych
liczbowych (a nie napisw). Na koniec, jeli wymaga tego polecenie w zadaniu, zamienimy
liczby uzyskane w wyniku na napisy bdce ich reprezentacjami w niedziesitnym systemie
pozycyjnym. Zwrmy jednak uwag, e zadania 1, 2 i 3 mona rozwiza bez koniecznoci
zamiany napisw na liczby o ile wykorzystamy (do proste) zalenoci midzy binarn,
czwrkow i semkow reprezentacj liczb (na kocu omwimy krtko moliwo takiego
rozwizania).
Kluczowe dla naszego rozwizania bdzie obliczanie wartoci liczby zapisanej w systemie
niedziesitnym (i zapamitywanie jej w zmiennej typu int) oraz odwrotnie: przeksztacanie
liczby przechowywanej w zmiennej typu int na napis reprezentujcy t liczb w systemie o
ustalonej podstawie.
Zacznijmy od konwersji liczby zapisanej jako string w systemie o podstawie b na jej warto
zapisan w zmiennej typu int:
int zsystemu(string s, int b)
{ int wynik=0, i=0, znak=1;
if (s[0]=='-'){
znak=-1;
i=1;
}
int d=s.length();
for(;i<d;i++){
wynik=wynik*b+(s[i]-0);
}
return znak*wynik;
}
Powysze rozwizanie opiera si na nastpujcej obserwacji: jeli warto odpowiadajca
pierwszym i znakom napisu s jest rwna w, to dopisujc na do niej (i+1)-szy znak s[i],
uzyskamy liczb wb+s[i]. Na przykad
121(4)=25(10)
oraz
1213(4)=25(10)4(10)+3(10)=103(10).
Ponadto wykorzystujemy fakt, e warto liczbowa cyfry zapamitanej w s[i] jest rwna
rnicy s[i]-0. Musimy te uwzgldni to, e liczba moe by poprzedzona znakiem ,
oznaczajcym ujemn warto. Czytelnikowi pozostawiamy przeledzenie, jak ten aspekt
zosta uwzgldniony w powyszej funkcji.
114 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zajmijmy si teraz konwersj reprezentowanej w zmiennej l typu int liczby na napis


reprezentujcy jej zapis w systemie o podstawie b. W naszym rozwizaniu bierzemy pod
uwag, e
ostatni znak w zapisie l w systemie o podstawie b jest rwny l%b;
pozostae znaki (znajdujce si na lewo od l%b) uzyskamy, znajdujc reprezentacj b
liczby l/b w systemie o podstawie ( x oznacza tutaj zaokrglenie liczby x
w d do najbliszej liczby cakowitej).
Na przykad dla l=57, b=4 ostatni znak reprezentacji l w systemie o podstawie b jest rwny
57%4=1, natomiast pozostae znaki uzyskujemy jako reprezentacj liczby 57/4 =14.
Poniej podajemy funkcj wykorzystujc powysze wasnoci:
string nasystem(int l, int b){
string s="";
char z;
int znak=1;
if (l<0) {
znak=-1; l=-l;
}
if (!l) return "0";
while (l>0){
z=0+l%b;
s=z+s;
l=l/b;
}
if (znak<0) s='-'+s;
return s;
}
Funkcja nasystem zwraca napis bdcy reprezentacj liczby l w systemie o podstawie b.
Zwrmy uwag, e operator + zastosowany do zmiennej typu string oznacza zczanie
(konkatenacj napisw), zatem przypisanie s=z+s w funkcji nasystem dopisuje znak z na
poczteku napisu s. Uzasadnieniem takiego podstawienia jest to, e kolejne znaki
reprezentacji l w systemie o podstawie b poznajemy od koca: najpierw skrajnie prawy,
potem drugi od koca itd.
Korzystajc z funkcji zsystemu (z odpowiednimi parametrami) oraz standardowych metod
odczytywania plikw tekstowych, wartoci odczytw zegara ze stacji pogodowych S1, S2, S3
umiecimy w tablicach g1, g2, g3, a odczyty temperatury w tablicach t1, t2, t3. Na
przykad pomiar temperatury w stacji S2 w dniu 350 umieszczony bdzie w t2[349] (tablice w
C indeksujemy od zera).

58.1.
Jeeli dysponujemy wartociami pomiarw przekonwertowanymi do zmiennych typu int,
zadanie 1 sprowadza si do wyznaczenia najmniejszej liczby wrd t1[0],,t1[1094],
analogicznie dla tablic t2 i t3. Na koniec wyznaczone minima konwertujemy na
reprezentacje binarne za pomoc funkcji nasystem: napis bdcy reprezentacj liczby x
uzyskujemy, wywoujc nasystem(x,2).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
115
58.2.
Zgodnie z treci zadania musimy wyznaczy liczb takich i[0,1094], dla ktrych
g1[i]stan, g2[i]stan oraz g3[i]stan, gdzie stan=12+i24. W poniszym
kodzie warto wynikowa znajdzie si po wykonaniu ptli for w zmiennej licz:
int licz=0, stan=12;
int ile=ROZM;
for(int i=0;i<1095;i++){
if (g1[i]!=stan && g2[i]!=stan && g3[i]!=stan)
licz++;
stan+=24;
}

58.3.
Rozwamy standardowy algorytm wyznaczania najwikszej liczby w cigu: przegldamy
kolejne liczby z cigu, pamitajc w zmiennej max najwiksz liczb spord dotychczas
przejrzanych. Liczba rekordw odpowiada wwczas liczbie zmian wartoci zmiennej max.
Naley przy tym pamita, e zgodnie z treci zadania rekordem jest te pierwsza
warto w caym cigu.
Aby rozwiza zadanie, stosujemy powysz ide do cigw zapamitanych w tablicach t1,
t2 i t3, w jednej wsplnej ptli. Aby wyznaczy liczb dni, w ktrych w co najmniej jednej
stacji wystpi rekord, tworzymy dodatkowy licznik (zmienna licz), ktry zwikszamy dla
kadego i takiego, e t1[i] jest rekordem w cigu t1 lub t2[i] jest rekordem w cigu
t2, lub t3[i] jest rekordem w cigu t3. Poniej prezentujemy fragment kodu
realizujcy opisany powyej algorytm:
int max1=t1[0], max2=t2[0], max3=t3[0];
int licz=1;
int ile=ROZM;
bool czyRekord;
for(int i=1; i<1095; i++){
czyRekord=false;
if (t1[i]>max1) { max1=t1[i]; czyRekord=true; }
if (t2[i]>max2) { max2=t2[i]; czyRekord=true; }
if (t3[i]>max3) { max3=t3[i]; czyRekord=true; }
if (czyRekord) licz++;
}

58.4.
Jeli pominiemy kwesti zaokrgle wartoci do liczby cakowitej, zadanie sprowadza si do
wyznaczenia najwikszej wartoci (t1[i]t1[j])2/(ji) dla i=0,1,,1093 oraz j
takiego, e i<j1094. Zadanie takie nietrudno zrealizowa przy pomocy dwch
zagniedonych ptli: zewntrznej dla i=0,1,,1093 i wewntrznej dla
j=i+1,i+2,,1094.
Skoncentrujmy si teraz na zaokrgleniach wyniku. Gdyby wynik mia by zaokrglany w d
do liczby cakowitej, byby on w jzyku C reprezentowany przez wyraenie
(t1[i]t1[j])(t1[i]t1[j]) / (ji)
116 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

o ile tablica t1 zawiera elementy typu int (wynika to z faktu, e operator dzielenia / dla
argumentw cakowitych zwraca wynik dzielenia cakowitego, czyli zaokrglenia w d do
liczby cakowitej). Aby wyznaczy zaokrglenie wyniku w gr do liczby cakowitej,
skorzystamy z nastpujcej wasnoci:
Niech r oznacza zaokrglenie w d do liczby cakowitej wyniku dzielenia x/y.
Jeli ry=x, to r jest dokadnym wynikiem dzielenia x/y, a zatem r to rwnie
zaokrglenie x/y w gr do liczby cakowitej.
Jeli ry<x, to r jest mniejsze od x/y, a zatem zaokrglenie x/y w gr do liczby
cakowitej jest rwne r+1.
Poniej prezentujemy kod znajdujcy najwikszy skok temperatury oparty na powyszych
obserwacjach:
int skok;
int maxS=0;
int ileR, ile=1095, kwadrat;
for(int i=0; i<ile; i++)
for(int j=i+1; j<ile; j++){
kwadrat=(t1[i]-t1[j])*(t1[i]-t1[j]);
skok=kwadrat/(j-i);
if (skok*(j-i)<kwadrat) skok++;
if (skok>maxS)
maxS=skok;
}
Najwikszy dotychczas znaleziony skok temperatury w powyszym fragmencie programu
przechowujemy w zmiennej maxS; natomiast w zmiennej skok zapisujemy skok
temperatury midzy dniami i oraz j.
Na koniec, zgodnie z zapowiedzi, omwimy krtko zaleno midzy reprezentacjami liczb
w systemach o podstawie 2, 4 i 8, dziki ktrym zadania 1, 2 i 3 mona by rozwiza bez
konwersji napisw na liczby i bez zamiany liczb na napisy oznaczajce ich reprezentacje
pozycyjne o odpowiedniej podstawie. Poniewa 4=22, zachodz zalenoci:
reprezentacj liczby w systemie czwrkowym mona uzyska z jej reprezentacji
w systemie binarnym (czyli o podstawie 2), zamieniajc (od koca) pary cyfr na ich
czwrkowe reprezentacje;
reprezentacj liczby w systemie binarnym mona uzyska z jej reprezentacji w
systemie czwrkowym, zamieniajc kad cyfr na jej dwucyfrow reprezentacj
binarn.
Na przykad liczba 1011011(2) jest rwna 1123(4). Wynik uzyskujemy, dzielc 1011011 na
bloki 1, 01, 10, 11, a nastpnie zapisujc czwrkowe reprezentacje tych blokw: 1, 1, 2, 3.
Z kolei 1321(4)=1111001(2), co uzyskujemy, zamieniajc 1, 3, 2, 1 odpowiednio na 01, 11, 10
i 01.
Poniewa 8=23, analogiczna wasno zachodzi dla konwersji midzy systemem binarnym a
systemem semkowym, z t rnic, e zamiast blokw 2 cyfr rozwaamy bloki o dugoci 3.
Gdyby w zadaniach wystarczyo posugiwa si reprezentacjami liczb w systemie
dziesitnym i systemie o podstawie 8, osoby rozwizujce zadanie w jzyku C mogyby
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
117
uproci sobie rozwizanie, korzystajc z formatowania %x w instrukcjach scanf i
printf.

Rozwizanie

58.1.
Min temp w stacji S1: 1011
Min temp w stacji S2: 1001100
Min temp w stacji S3: 1001011

Wartoci minimw podane w systemie dziesitnym:


Min temp w stacji S1: 11
Min temp w stacji S2: 76
Min temp w stacji S3: 75
Wartoci minimw podane w systemach, w ktrych zapisane zostay w plikach wejciowych:
Min temp w stacji S1: 1011
Min temp w stacji S2: 1030
Min temp w stacji S3: 113

58.2.
Liczba dni, w ktrych stan zegarw by niepoprawny: 182
Rozwizanie, w ktrym zliczane s dni, w ktrych co najmniej jeden zegar podaje bdn
warto (1018)

58.3.
Liczba dni rekordw: 42
Odpowied 2, wynikajca ze zliczania dni, w ktrych jednoczenie wystpi rekord w kadej
stacji.

58.4.
Najwikszy skok temperatury: 25
Odpowied 24, w ktrej wynik zosta zaokrglony w d a nie w gr.

Zadanie 59.
Wizka zada Ciekawe liczby
W pliku liczby.txt w oddzielnych wierszach znajduje si 1000 rnych liczb, kada
o dugoci od 2 do 9 cyfr. Napisz program(-y), ktry da odpowiedzi do poniszych zada.
Odpowiedzi zapisz do pliku wyniki_liczby.txt, a kad odpowied poprzed
numerem zadania.
118 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

59.1.
Czynnikiem pierwszym danej liczby naturalnej zoonej jest dowolna liczba pierwsza, ktra
dzieli t liczb cakowicie. Podaj, ile jest w pliku liczby.txt liczb, w ktrych rozkadzie
na czynniki pierwsze wystpuj dokadnie trzy rne czynniki (mog si one powtarza,
z ktrych kady jest nieparzysty.

Przykad
Czy w rozkadzie
wystpuj
Liczba Czynniki pierwsze dokadnie trzy
rne nieparzyste
czynniki pierwsze?
32 2, 2, 2, 2, 2 NIE
210 2, 3, 5, 7 NIE
1331 11, 11, 11 NIE
1157625 3, 3, 3, 5, 5, 5, 7, 7, 7 TAK
105 3, 5, 7 TAK
429 3, 11, 13 TAK
1287 3, 3, 11, 13 TAK
3465 3, 3, 5, 7, 11 NIE
255255 3, 5, 7, 11, 13, 17 NIE

59.2.
Podaj, ile jest w pliku liczby.txt liczb, dla ktrych suma danej liczby i liczby
odwrconej jest liczb palindromiczn, tzn. jej zapis dziesitny jest palindromem.

Przykad
Liczba Liczba Suma Czy suma jest
odwrcona palindromem?
45 54 99 TAK
471046105 501640174 972686279 TAK
11264 46211 57475 TAK
19 91 110 NIE
8542 2458 11000 NIE

59.3.
Niech w(n ) oznacza iloczyn cyfr liczby n. Dla danej liczby n tworzymy cig, w ktrym
kolejny element jest iloczynem cyfr wystpujcych w poprzednim elemencie:
1 = ()
2 = (1 )
3 = (2 )
...
Cig koczy si, gdy liczba nk jest liczb jednocyfrow. Wwczas moc liczby n jest
liczba k.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
119
Podaj, ile jest w pliku liczby.txt liczb o mocy 1, 2, 3, ..., 8. Dodatkowo podaj minimaln
i maksymaln liczb o mocy rwnej 1.

Przykad
Liczba 678 ma moc 4, poniewa:
6 * 7 * 8 = 336
3 * 3 * 6 = 54
5 * 4 = 20
2*0=0
Liczba 1991 ma moc 2, poniewa
1 * 9 * 9 * 1 = 81
8*1=8

Komentarz
Przed przystpieniem do rozwizania zadania zadeklarujemy odpowiednie zmienne i obiekty,
m.in. takie, ktre bd odpowiaday za zawarto pliku z danymi. Mona to zrobi w
nastpujcy sposb:
#include<fstream>

ifstream fin;
fin.open("liczby.txt");
Poniewa wiemy, ile liczb znajduje si w pliku, do przetwarzania danych (czytania z pliku
kolejnych elementw) wystarczy uy ptli for, na przykad:
for(i=0; i<1000; i++)
{
fin>>liczba[i];
....
}
Warto rwnie utworzy plik, ktry bdzie przechowywa rozwizania zadania, np.:
ofstream fout;
fout.open("wyniki.txt");
Po zakoczeniu zadania naley pamita o instrukcjach:
fin.close();
fout.close();

59.1.
W rozwizaniu zadania 1. wykorzystamy algorytm rozkadu liczby na czynniki pierwsze
i zmodyfikujemy go na potrzeby zadania szukamy tych liczb, ktre maj tylko nieparzyste
czynniki pierwsze oraz maj dokadnie trzy rne czynniki pierwsze.
Jeeli liczba jest parzysta, moemy j wykluczy z naszych rozwaa. W pozostaych
przypadkach stosujemy znany algorytm rozkadu na czynniki pierwsze z drobn modyfikacj.
Zaczynamy od czynnika rwnego 3 i liczymy, ile rnych czynnikw pierwszych wystpio w
120 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

liczbie. Za to odpowiedzialna jest zmienna ile. Jeeli warto tej zmiennej przekroczy 3,
wiemy, e liczba ma wicej ni 3 rne czynniki pierwsze nieparzyste i nie wymaga dalszego
sprawdzania. Funkcja zwraca warto true jedynie wtedy, gdy liczba rnych nieparzystych
czynnikw pierwszych jest rwna dokadnie 3.
Poniej przedstawiono przykadow funkcj, ktra realizuje to zadanie.

bool czynniki(int liczba)


{
int ile=0;
int czynnik=3;
if(liczba %2 == 0) return false;
while (liczba>1)
{
if (liczba % czynnik == 0) ile++;
while (liczba%czynnik==0){
liczba = liczba/czynnik;
}
czynnik=czynnik+2;
if (ile>3) return false;
}
if (ile == 3) return true;
if (ile <3) return false;
}

59.2.
Zadanie mona podzieli na dwa etapy: znajdowanie odwrotnoci danej liczby oraz
sprawdzanie, czy liczba jest palindromem. Do rozwizywania tego zadania mona podej na
dwa sposoby. Jeli wczytywan liczb potraktujemy jako napis, to jego odwrcenie bdzie
bardzo proste, podobnie jak sprawdzenie, czy napis jest palindromem. Problemem dla
uczniw moe okaza si sumowanie dwch liczb, ktre s pamitane jako napisy.
Drugi sposb polega na przetwarzaniu liczby przechowywanej w zmiennej typu int. Aby
otrzyma liczb odwrcon, naley uzyska z niej kolejne cyfry, ktre bd tworzy now,
odwrcon liczb. Dodatkowo chcemy zapewni dostp do kolejnych cyfr liczby poprzez
odcicie cyfr liczby, poczwszy od cyfry najmniej znaczcej. Mona otrzyma taki rezultat
dziki dwm operacjom: obliczaniu reszty z dzielenia przez 10 (operacja modulo 10) oraz
obliczaniu dzielenia cakowitego liczby przez 10. Prosty algorytm odwracania moe wyglda
nastpujco: dopki nie odcilimy wszystkich cyfr liczby (liczba nie jest zerem), pobierz
ostatni cyfr z liczby, zmodyfikuj liczb odwrcon, wykorzystujc pobran cyfr, odetnij
ostatni cyfr z liczby. Realizuje to ponisza funkcja:
int odwroc (int liczba)
{
int nowa=0;
while(liczba>0)
{
nowa=10*nowa+liczba%10;
liczba=liczba/10;
}
return nowa;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
121
}
Teraz wystarczy sprawdzi, czy suma liczby i jej odwrconej postaci tworz palindrom.
Mona napisa funkcj, ktra bdzie sprawdzaa, czy uzyskana suma jest palindromem, ale
moemy te wykorzysta funkcj odwroc palindrom to takie sowo (w naszym
przypadku liczba), ktra czytana od lewej do prawej da ten sam wynik co czytana od prawej
do lewej. Wystarczy zatem sprawdzi, czy obliczona suma jest rwna sumie odwrconej.
Powysze rozwaania obrazuje nastpujcy fragment kodu:
odwrocona = odwroc(liczba);
suma=odwrocona+liczba;
if (odwroc(suma)==suma)
ile++;

59.3.
Zadanie wprowadza pojcie mocy liczby. Dla danych liczb z pliku naley policzy, ile jest
liczb mocy od 1 do 8, oraz poda minimaln i maksymaln liczb o mocy 1. To zadanie
rwnie mona podzieli na etapy.
Aby obliczy moc liczby, trzeba obliczy iloczyn kolejnych cyfr danej liczby. Naley
zauway, e obliczony iloczyn staje si now liczb, dla ktrej, o ile nie jest to liczba
jednocyfrowa, obliczamy ponownie iloczyn cyfr. Wbrew definicji, ktra mogaby sugerowa
wykorzystanie tablicy do pamitania kolejnych iloczynw, mona obliczy moc liczby na
bieco. Na pewno przyda si nastpujca funkcja iloczyn_cyfr:
int iloczyn_cyfr(int x)
{
int wynik=1;
while (x>0)
{
wynik=wynik*(x%10);
x=x/10;
}
return wynik;
}
Funkcji iloczyn_cyfr bdziemy uywa do obliczania mocy liczby. Obliczamy iloczyn
pocztkowy, ktry staje si now liczb. Tak dugo, jak liczba nie jest jednocyfrowa (jest
wiksza ni 9), wyliczamy iloczyn cyfr liczby, ktry to iloczyn za kadym razem ponownie
staje si liczb, ktrej iloczyn dalej obliczamy. Kade obliczenie iloczynu cyfr powoduje
zwikszenie licznika obliczajcego moc liczby o 1. Poniej przedstawiono funkcj realizujc
obliczanie mocy liczby.
int moc(int liczba)
{

int ile=1;

liczba=iloczyn_cyfr(liczba); //iloczyn poczatkowy


while (liczba>9)
{
liczba=iloczyn_cyfr(liczba);
ile++;
122 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

}
return ile;
}
Teraz wystarczy dla danych liczb zlicza, ile jest liczb o mocy od 1 do 8. Do zliczania mona
uy tablicy w taki sposb, by indeksy jej komrek odpowiaday liczbom od 1 do 8, za
wartoci tablicy odpowiaday za liczb wystpie liczb o danej mocy.
Dodatkowo w przypadku liczby o mocy 1 naley wyznaczy minimaln i maksymaln liczb.
Poniewa wiemy, jaki jest zakres danych, moemy sobie uproci wyszukiwanie, przyjmujc
jako pocztkowe minimum maksymaln liczb, jaka moe si pojawi w pliku, za jako
maksimum minimaln liczb, jaka moe wystpi w pliku. Dalej wystarczy zastosowa
klasyczny algorytm znajdowania minimum (lub maksimum) w nieuporzdkowanym cigu
liczb w sytuacji, gdy liczba bdzie miaa moc rwn 1 sprawdzamy, czy jest ona wiksza
od aktualnego maksimum/ mniejsza od aktualnego minimum, i w razie potrzeby ustalamy
nowego kandydata na minimum/maksimum. Oto fragment kodu:

int i, liczba, tmp;


int min=999999999, max=10;

int ile=0;
int t[9]={0};

for(i=1; i<=1000; i++)


{
fin>>liczba;
tmp=moc(liczba);
t[tmp]++;
if (tmp==1)
{
if (liczba<min) min=liczba;
if (liczba>max) max=liczba;
}

Zadanie 60.
Wizka zada Dzielniki
W pliku liczby.txt danych jest 200 rnych liczb cakowitych z przedziau [2, 1 000
000], kada w osobnym wierszu pliku. Napisz program (lub kilka programw), ktry poda
odpowiedzi do poniszych zada. Odpowiedzi zapisz do pliku wyniki.txt.

60.1.
Policz, ile jest w pliku wejciowym liczb mniejszych ni 1000, oraz podaj dwie takie liczby,
ktre pojawiaj si w pliku jako ostatnie (moesz zaoy, e bd co najmniej dwie).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
123
60.2.
Wrd liczb wystpujcych w pliku wejciowym znajd te, ktre maj dokadnie 18
dzielnikw naturalnych (wliczajc w nie 1 i sam liczb). Dla kadej znalezionej liczby
wypisz, oprcz jej wartoci, list wszystkich jej dzielnikw, posortowan rosnco.

60.3.
Znajd najwiksz liczb w pliku, ktra jest wzgldnie pierwsza ze wszystkimi pozostaymi,
czyli tak, ktra z adn z pozostaych liczb nie ma wsplnego dzielnika innego ni 1.

Zadanie 61.
Wizka zada Cigi arytmetyczne
Cig liczb cakowitych nazywamy cigiem arytmetycznym, jeli rnica midzy kadymi
dwoma kolejnymi jego wyrazami jest identyczna. Cigiem arytmetycznym jest na przykad
cig (1, 3, 5, 7, 9). Jest to cig o rnicy 2, poniewa kady wyraz tego cigu, poza
pierwszym, rni si od poprzedniego wyrazu o 2. Cig (17, 22, 27, 32, 37) jest cigiem
arytmetycznym o rnicy 5. W tym zadaniu rozpatrujemy tylko takie cigi arytmetyczne,
ktre maj dodatni rnic oraz co najmniej pi wyrazw.
W pliku ciagi.txt danych jest 100 cigw skadajcych si z liczb cakowitych dodatnich,
nieprzekraczajcych 1 000 000. Kady cig opisany jest w dwch wierszach: pierwszy
zawiera liczb wyrazw cigu (co najmniej 5 i co najwyej 1000), za drugi kolejne
wyrazy cigu, oddzielone pojedynczymi odstpami. Dla przykadu pierwsze cztery wiersze
pliku maj nastpujc posta:

5
1 3 6 7 9
5
17 22 27 32 37

Napisz program (lub kilka programw), ktry wykona podane poniej polecenia.

61.1.
Podaj, ile spord podanych w pliku ciagi.txt cigw jest cigami arytmetycznymi.
Znajd wrd nich cig o najwikszej rnicy i oblicz jego rnic. Liczb cigw
arytmetycznych oraz najwiksz rnic zapisz w pliku wynik1.txt.

61.2.
Dla kadego podanego cigu znajd jeli istnieje najwiksz wystpujc w nim liczb,
ktra jest penym szecianem jakiej liczby naturalnej (w pierwszym z przykadowych cigw
jest to 1 = 13, w drugim 27 = 33).
Znalezione liczby (po jednej dla kadego cigu, w ktrym taka liczba wystpuje) zapisz
w pliku wynik2.txt, w kolejnoci zgodnej z kolejnoci cigw, z ktrych pochodz.

61.3.
Plik bledne.txt ma identyczn struktur jak ciagi.txt, ale zawiera tylko 20 cigw.
Wiadomo jednak, e wszystkie wystpujce w nim cigi s cigami arytmetycznymi z jednym
124 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

bdem: jeden z wyrazw w kadym cigu zosta zastpiony przez liczb naturaln
nienalec do cigu.
Dla kadego cigu znajd i wypisz bdny wyraz. Odpowiedzi zapisz w pliku wynik3.txt,
podajc dla kadego cigu bdn liczb w osobnym wierszu, w kolejnoci zgodnej z
kolejnoci cigw w pliku wejciowym.

Zadanie 62.
Wizka zada Liczby semkowe
W pliku liczby1.txt znajduje si 1000 liczb cakowitych dodatnich, zapisanych
semkowo, maksymalnie szeciocyfrowych. Kada liczba umieszczona jest w osobnym
wierszu.
W pliku liczby2.txt znajduje si 1000 liczb cakowitych dodatnich, zapisanych
dziesitnie, maksymalnie szeciocyfrowych. Kada liczba umieszczona jest w osobnym
wierszu.
Napisz program(-y), za pomoc ktrego(-ych) rozwiesz ponisze zadania. Do oceny oddaj
dokument wyniki.txt z rozwizaniami poszczeglnych zada oraz pliki rdowe
programw wykorzystanych do uzyskania rozwizania.

62.1.
Wyszukaj w pliku liczby1.txt dwie liczby, najmniejsz i najwiksz. Podaj wartoci
tych liczb w zapisie semkowym.

62.2.
Znajd najduszy niemalejcy cig liczb wystpujcych w kolejnych wierszach pliku
liczby2.txt. Podaj pierwszy element tego cigu oraz liczb jego elementw. Moesz
zaoy, e jest jeden taki cig.

Dla przykadowych danych:


23156
1231
1345
1456
1456
897
najduszy niemalejcy cig liczb rozpoczyna si liczb 1231 i skada si z 4 elementw.

62.3.
Porwnaj wartoci liczb zapisanych w wierszach o tych samych numerach w plikach
liczby1.txt i liczby2.txt. Podaj liczb wierszy, w ktrych:
a) liczby maj w obu plikach tak sam warto;
b) warto liczby z pliku liczby1.txt jest wiksza od wartoci liczby z pliku
liczby2.txt.
Dla przykadowych danych:
liczby1.txt liczby2.txt
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
125
11456 1302
22666 9654
546 499
odp. a) 1 wiersz, bo tylko w drugim wierszu liczby maj tak sam warto: 226668 = 965410
odp. b) 1 wiersz, bo tylko w pierwszym wierszu warto liczby w pierwszym pliku jest
wiksza ni odpowiadajca jej warto w drugim pliku: 114568>130210.

62.4.
Podaj, ile razy w zapisie dziesitnym wszystkich liczb z pliku liczby2.txt wystpuje
cyfra 6 oraz ile razy wystpiaby ta cyfra, gdyby te same liczby byy zapisane w systemie
semkowym.

Zadanie 63.
Wizka zada Cigi zerojedynkowe
W pliku ciagi.txt w oddzielnych wierszach znajduje si 1000 rnych cigw
zerojedynkowych, kady o dugoci od 2 do 18. Napisz program(-y), ktry pozwoli
rozwiza ponisze zadania. Nastpnie je rozwi, a odpowiedzi do poszczeglnych zada
zapisz w pliku tekstowym wyniki_ciagi.txt. Wyniki do kadego zadania poprzed
numerem oznaczajcym to zadanie.

63.1.
Cigiem dwucyklicznym bdziemy nazywa taki cig zerojedynkowy o dugoci
parzystej, ktry skada si z dwch fragmentw 1 oraz 2 , = 1 2, takich e 1 = 2.
Podaj wszystkie cigi dwucykliczne zapisane w pliku ciagi.txt.

Przykad
Dla zestawu cigw:
10010101010011001010101001
11001101001
1001000
11001100
101010011100
110011110011
3 podkrelone cigi s dwucykliczne.

63.2.
Podaj liczb cigw z pliku ciagi.txt, w ktrych nie wystpuj obok siebie dwie jedynki.

Przykad
Dla zestawu cigw:
10101010100101001010010101
11001101001
10001000
101010011100
000011
126 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

wynikiem jest liczba 2 (w dwch podkrelonych cigach dwie jedynki nie wystpuj obok
siebie).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
127
63.3.
Liczb ppierwsz nazywamy tak liczb, ktra jest iloczynem dwch liczb pierwszych.
Podaj, ile cigw z pliku ciagi.txt jest reprezentacj binarn liczb ppierwszych.
Dodatkowo podaj najwiksz i najmniejsz liczb ppierwsz w zapisie dziesitnym.

Przykad
Dla zestawu cigw:
100010
1101001001
1100101
1111111111
10010110000010010010
podkrelone cigi s zapisem binarnym liczb ppierwszych, poniewa:
(100010)2 = 34 = 2 * 17, wic jest liczb ppierwsz;
(1101001001)2 = 841 = 29 * 29, wic jest liczb ppierwsz;
(1100101)2 = 101 = 101 * 1;
(1111111111)2 = 1023 = 3 * 11 * 31;
(10010110000010010010)2 = 614546 = 2 * 307273, wic jest liczb ppierwsz.

Zadanie 64.
Wizka zada Obrazki
Bit parzystoci cigu zoonego z zer i jedynek jest rwny 0, gdy w cigu tym wystpuje
parzysta liczba jedynek, w przeciwnym razie bit parzystoci jest rwny 1.
Czarno-biay obrazek rozmiaru n n skada si z n wierszy po n pikseli. Kady wiersz pikseli
reprezentujemy jako cig zer i jedynek, kady biay piksel reprezentujemy przez 0, czarny
przez 1. Na kocu kadego wiersza dodany jest bit parzystoci, podobnie pod ostatnim
wierszem obrazka doczony jest wiersz bitw parzystoci kadej z n kolumn. Bitw
parzystoci nie traktujemy jako czci obrazka.
Przykad: Poniej podajemy obrazek rozmiaru 5 5 oraz jego reprezentacj, wraz z
odpowiednimi bitami parzystoci (bity parzystoci zostay podkrelone):
0 1 1 0 1 1
1 1 1 0 1 0
1 1 1 1 1 1
0 1 1 0 0 0
1 1 0 1 1 0
1 1 0 0 0
Obrazek Reprezentacja
Plik dane_obrazki.txt skada si z opisu 200 czarno-biaych obrazkw o rozmiarze
20 20 pikseli. Ssiednie obrazki oddzielone s w pliku pustym wierszem.
Napisz program(-y), ktry poda odpowiedzi na pytania postawione w poniszych zadaniach.
Odpowiedzi zapisz w pliku wyniki_obrazki.txt. Odpowied do kadego zadania
rozpocznij w nowym wierszu, poprzedzajc j numerem zadania.
128 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

64.1.
Obrazek nazywamy rewersem, jeli liczba wystpujcych w nim pikseli czarnych jest wiksza
od liczby pikseli biaych.
Przykad: W obrazku z powyszego przykadu wystpuje 18 pikseli czarnych i 7 pikseli
biaych. Zatem jest on rewersem.
Podaj, ile jest w pliku obrazkw, ktre s rewersami. Podaj te najwiksz liczb pikseli
czarnych wystpujcych w jednym obrazku.

64.2.
Obrazek rozmiaru n n bdziemy nazywa rekurencyjnym, jeli n jest parzyste oraz obrazek
n n
skada si z 4 kopii tego samego obrazka rozmiaru .
2 2

Przykad
Poniej podajemy 3 obrazki rozmiaru 6 6, ktre s rekurencyjne.

Natomiast ponisze obrazki nie s rekurencyjne:

Podaj liczb obrazkw rekurencyjnych w pliku wejciowym. Ponadto podaj opis pierwszego
obrazka rekurencyjnego wystpujcego w pliku. W opisie obrazka pomi bity parzystoci
(pamitaj, e obrazek skada si z 20 wierszy po 20 pikseli, ktre reprezentujemy jako cig
zer i jedynek).

64.3.
Obrazek nazywamy poprawnym, jeli wszystkie bity parzystoci s w nim poprawne
(zarwno w wierszach, jak i kolumnach). Obrazek nazywamy naprawialnym, jeli nie jest
poprawny, a jednoczenie co najwyej jeden bit parzystoci wiersza i co najwyej jeden bit
parzystoci kolumny jest w nim niepoprawny.
Natomiast nienaprawialnym nazywamy obrazek, ktry nie jest poprawny i nie jest naprawialny.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
129
Przykad
Poniej podajemy przykady obrazkw poprawnych, naprawialnych i nienaprawialnych
rozmiaru 5 5. Niepoprawne bity parzystoci w obrazkach zostay wyrnione
podkreleniem.
011000 011011 011011 011011 011011
111010 111011 111011 111011 111011
111111 111111 111111 111111 111111
011000 011000 011000 011001 011001
110011 110110 110110 110110 110110
11011 11100 11000 11000 01000
poprawny naprawialny naprawialny nienaprawialny nienaprawialny
Podaj liczb obrazkw poprawnych, liczb obrazkw naprawialnych oraz liczb obrazkw
nienaprawialnych. Ponadto podaj najwiksz liczb bdnych bitw parzystoci
wystpujcych w jednym obrazku.

64.4.
W obrazku naprawialnym wystarczy zmieni jedn warto, aby uzyska obrazek poprawny.
Dokadniej, jeli niepoprawne s bity parzystoci i-tego wiersza i j-tej kolumny, wystarczy
zmieni j-ty piksel w i-tym wierszu. Jeli niepoprawny jest dokadnie jeden bit parzystoci
(wiersza albo kolumny), wystarczy zmieni ten bit parzystoci.

Przykad
Rozwamy nastpujce dwa obrazki naprawialne rozmiaru 5 5 (niepoprawne bity
parzystoci w obrazkach zostay podkrelone).
Obraz 1: Obraz 2:
011011 011011
111011 111011
111111 111111
011000 011000
110110 110110
11100 11000
Zmieniajc trzeci jedynk w drugim wierszu pierwszego obrazka, uzyskamy obrazek
poprawny (niepoprawne byy bity parzystoci trzeciej kolumny i drugiego wiersza).
Zmieniajc niepoprawny bit parzystoci w drugim wierszu drugiego obrazka z 1 na 0,
rwnie uzyskamy obrazek poprawny.
Podaj numery obrazkw naprawialnych, przyjmujc, e numery kolejnych obrazkw w pliku
to 1, 2, 3 itd. Przy numerze kadego obrazka naprawialnego podaj numer wiersza i kolumny
wartoci, ktr wystarczy zmieni, aby uzyska obrazek poprawny.

Zadanie 65.
Wizka zada Uamki
W pliku dane_ulamki.txt znajduje si 1000 par liczb naturalnych dodatnich, mniejszych
ni 12 000. Kada para liczb jest zapisana w osobnym wierszu, liczby w wierszu rozdzielone
s pojedynczym znakiem odstpu. Par liczb zapisanych w tym samym wierszu
130 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

interpretujemy jako uamek, ktrego licznikiem jest pierwsza liczba, a mianownikiem


druga liczba.

Przykad
Plik o zawartoci
3 6
2 3
5 3
2 4
15 5
3 2 5 2 15
odpowiada uamkom , , , , .
6 3 3 4 5
a x a x
Postaci nieskracaln uamka nazywamy taki uamek , e = oraz x i y s
b y b y
wzgldnie pierwsze (czyli x i y nie maj wsplnego dzielnika wikszego od 1).
Napisz program(-y), ktry poda odpowiedzi na pytania postawione w poniszych zadaniach.
Odpowiedzi zapisz w pliku wyniki_ulamki.txt. Odpowied do kadego zadania podaj
w osobnym wierszu, poprzedzajc j numerem zadania.

65.1.
Podaj uamek o minimalnej wartoci. Jeli w pliku wystpuje wicej ni jeden taki uamek, to
podaj ten spord nich, ktry ma najmniejszy mianownik. Twoja odpowied powinna
zawiera par liczb oznaczajc licznik i mianownik uamka.

Przykad
3 2 5 2 15
Dla podanego powyej pliku, opisujcego uamki, , , , , minimaln warto maj
6 3 3 4 5
3 2 2 3
uamki , . Poniewa ma mniejszy mianownik ni , wic odpowiedzi jest para liczb:
6 4 4 6
2 i 4.

65.2.
Podaj liczb zapisanych w pliku uamkw, ktre zostay podane w postaci nieskracalnej.

Przykad
3 2 5 2 15
Dla podanego powyej pliku, opisujcego uamki , , , , , w postaci nieskracalnej
6 3 3 4 5
2 5 3 2
zapisane zostay , . Natomiast i nie s uamkami w postaci nieskracalnej (ich liczniki
3 3 6 4
15
i mianowniki dziel si odpowiednio przez 3 i 2), podobnie (jego licznik i mianownik
5
dziel si przez 5). Zatem odpowiedzi jest liczba 2.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
131
65.3.
Zapis danych w postaci nieskracalnej uzyskamy, zamieniajc kady uamek na jego posta
nieskracaln. Podaj sum licznikw wszystkich podanych w pliku uamkw, jak
otrzymalibymy po sprowadzeniu uamkw do nieskracalnej postaci.

Przykad
3 2 5 2 15
Dla podanego powyej pliku, opisujcego uamki , , , , , nieskracalne postacie
6 3 3 4 5
1 2 5 1 3
kolejnych uamkw to: , , , , . Suma licznikw tych uamkw to 1+2+5+1+3=12.
2 3 3 2 1
Zatem odpowiedzi jest 12.

65.4.
Uamki w pliku zostay tak dobrane, e kady mianownik jest dzielnikiem liczby
b=2232527213, a warto kadego uamka jest nie wiksza ni 3. Oznacza to, e sum
a
wszystkich uamkw mona przedstawi jako uamek , ktrego mianownikiem jest
b
b=2232527213. Wyznacz sum uamkw ze wszystkich wierszy i podaj licznik takiego
a
uamka, e suma uamkw jest rwna .
b

Przykad
Dla podanego powyej pliku, opisujcego uamki 1/2, 2/3, 5/3, 2/4, 15/5, suma uamkw to:
b 2b 5b 2b 15b

1 2 5 2 15 2 3 3 4 5 3630900
,
2 3 3 4 5 2 3 5 7 13
2 2 2 2
2 32 52 7 2 13
2

gdzie b=2232527213. Poprawna odpowied wynosi wic 3630900 .

Zadanie 66.
Wizka zada Trjki liczb
W pliku trojki.txt w oddzielnych wierszach znajduje si 1000 trjek liczb naturalnych
z przedziau od 1 do 550000000. W kadym wierszu s umieszczone trzy liczby rozdzielone
pojedynczymi odstpami.

Przykad
345
12 5 13
12 491 17
11 13 143
15 28 91
132 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Napisz program(-y), ktry da odpowiedzi do poniszych zada. Odpowiedzi do


poszczeglnych zada zapisz w pliku tekstowym wyniki_trojki.txt. Wyniki do
kadego zadania poprzed numerem oznaczajcym to zadanie.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
133
66.1.
Wypisz wszystkie trjki liczb z pliku trojki.txt, w ktrych suma cyfr dwch pierwszych
liczb jest rwna ostatniej (trzeciej) liczbie.

Przykad
12 491 17
1+2+4+9+1=17

66.2.
Wypisz wszystkie wiersze z pliku trojki.txt zawierajce takie trzy liczby a, b, c, w
ktrych a i b s liczbami pierwszymi oraz c = a b.

Przykad
11 13 143
11 i 13 s liczbami pierwszymi i 11 13 = 143

66.3.
Wypisz z pliku trojki.txt wszystkie pary ssiadujcych ze sob wierszy, takie e liczby
w tych wierszach s dugociami bokw trjktw prostoktnych.
Przykad
345 32+42=52
12 5 13 52+122=132

66.4.
Podaj, ile jest w pliku trojki.txt wierszy, w ktrych znajduj si liczby reprezentujce
dugoci bokw trjkta. Cig wierszy nazywamy trjktnym, jeli liczby w kadym wierszu
reprezentuj dugoci bokw trjkta. Podaj dugo najduszego cigu trjktnego w pliku.

Zadanie 67.
Wizka zada Binarny fraktal Fibonacciego
Cig Fibonacciego to cig liczb naturalnych okrelony rekurencyjnie w sposb nastpujcy:
1 = 1, 2 = 1, a kady nastpny element cigu jest sum dwch poprzednich, czyli:
1 = 1
= { 1 = 2
1 + 2 > 2
Binarny fraktal Fibonacciego to dwuwymiarowa tablica zawierajca w kolejnych wierszach
binarne zapisy kolejnych liczb Fibonacciego, gdzie kade zero w zapisie zastpiono biaym
kwadratem, a kad jedynk czarnym kwadratem (p. rysunek). Wszystkie binarne zapisy
powinny skada si z jednakowej liczby cyfr, czyli do zapisw krtszych ni najduszy
naley doda zera wiodce.
134 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Przykad binarnego fraktala dla pierwszych 10 liczb Fibonacciego:

n Fn zapis binarny Fn Binarny fraktal Fibonacciego


1 1 000001 0 0 0 0 0 0 1
2 1 000001 0 0 0 0 0 0 1
3 2 000010 0 0 0 0 0 1 0
4 3 000011 0 0 0 0 0 1 1
5 5 000101 0 0 0 0 1 0 1
6 8 001000 0 0 0 1 0 0 0
7 13 001101 0 0 0 1 1 0 1
8 21 010101 0 0 1 0 1 0 1
9 34 100010 0 1 0 0 0 1 0
10 55 110111 0 1 1 0 1 1 1

Napisz program komputerowy, za pomoc ktrego uzyskasz odpowiedzi do poniszych


zada. Rysunek fraktala (zadanie nr 3) wykonaj, wykorzystujc dostpne narzdzia
informatyczne. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki.txt, natomiast rysunek fraktala w pliku fraktal.xxx, gdzie xxx oznacza
rozszerzenie pliku, w ktrym zapisany jest obraz fraktala.

67.1.
Podaj wartoci F10, F20, F30, F40. Zapisz kad z liczb w osobnym wierszu.

67.2.
Znajd wszystkie liczby pierwsze wrd liczb F1, F2, , F40. Zapisz kad z liczb w
osobnym wierszu.

67.3.
Dla pierwszych 40 liczb Fibonacciego utwrz binarny fraktal Fibonacciego:
Wypisz reprezentacj binarn wszystkich liczb Fibonacciego od F1 do F40.
Wyrwnaj dugoci reprezentacji binarnych wszystkich liczb Fibonacciego od F1 do
F40 i na ich podstawie sporzd obraz binarnego fraktala Fibonacciego.

67.4.
Podaj w zapisie binarnym wyrazy cigu Fibonacciego z zakresu od F1 do F40, ktre w tym
zapisie maj dokadnie 6 jedynek.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
135
Zadanie 68.
Wizka zada Napisy anagramy
Dwa napisy a i b s swoimi anagramami, jeeli napis a (napis b) mona zapisa za pomoc
liter wystpujcych w napisie b (napisie a), wykorzystujc wszystkie jego litery.
W pliku dane_napisy.txt znajduje si 1000 par napisw, z ktrych kady jest dugoci
od 2 do 20 znakw, skadajcych si z wielkich liter: A, B, C, D, E, F, G, H, I, J. Kada para
napisw jest zapisana w osobnym wierszu, a napisy oddzielone s pojedynczym znakiem
odstpu.

Przykad
AIHAHGHBEAFJAJDI HGIHFEHHJGBCBGD
FBJHCFFGADD EHADJAJBJBEGD
JHGHADJ AGFEHHEHIAEJFC
EJJHFHIGCEBDAIB DCAFFDICGBEAHAEJ
FBAEEGICHFFACICIGB EEHAHHCABHDHGDFFEGD
Napisz program(-y), ktry poda odpowiedzi dla nastpujcych zada. Odpowiedzi zapisz
w pliku wyniki_anagramy.txt. Odpowied do kadego zadania podaj w osobnym
wierszu, poprzedzajc j identyfikatorem zadania.

68.1.
Napis nazywamy jednolitym, jeeli wszystkie jego litery s takie same. Przykadem takiego
napisu jest AAAA. Podaj liczb wierszy zawierajcych par napisw jednolitych, ktre s
wzajemnie swoimi anagramami.

Przykad
Dla pliku zawierajcego nastpujce dane:
AAAA AAAA
AHHAH AHHAH
AAAA AAAAAAA
BBBBBBB BABBAB
CCCCC CCCCC
wynikiem jest liczba 2 (pierwszy i ostatni wiersz). Zwr uwag, e napisy w trzecim wierszu
s napisami jednolitymi, ale nie s wzajemnie swoimi anagramami.

68.2.
Podaj liczb wierszy, ktre zawieraj napisy bdce wzajemnie swoimi anagramami.

Przykad
Dla pliku zawierajcego nastpujce dane:
BBBAAB BBBABA
AAAA AAAAA
AHHAH AHHAH
BBABBABB BBBABB
BABABB CACACC
136 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

wnikiem jest liczba 2 (pierwszy i trzeci wiersz).

68.3.
Podaj najwiksz liczb k tak, e w pliku znajduje si k napisw, z ktrych kade dwa s
wzajemnie swoimi anagramami.

Przykad
Dla pliku zawierajcego nastpujce dane:
BABABB BBBABA
AAAA AAAA
AHHAH AHHAH
BBABBABB BABBAB
BBAABB CCCCC
wnikiem jest liczba 4 (BABABB BBBABA BABBAB BBAABB).

Zadanie 69.
Wizka zada Geny
Informacj genetyczn (genotyp) kadego osobnika z galaktyki Madgen opisuje sowo
(napis), w ktrym wystpuj litery ze zbioru {A, B, C, D, E}. Obowizuj przy tym
nastpujce zasady:
1. Organizmy yjce na Madgen tworz gatunki g1, g2, g3, , gdzie gi to zbir
osobnikw o dugoci genotypu rwnej i.
2. W skad genotypu mog wchodzi geny. Pierwszy gen rozpoczyna si pierwsz
wystpujc w genotypie sekwencj AA, a koczy si najblisz napotkan po niej
sekwencj BB. Kady kolejny gen rozpoczyna si pierwsz sekwencj AA,
wystpujc za kocem poprzedniego genu, i analogicznie koczy si najblisz
napotkan sekwencj BB.
3. Geny nazywamy czci kodujc genotypu, pozostae fragmenty tworz cz
niekodujc.

Przykad 1.
Genotyp AACDBABBBCDAABCBBAAE
zawiera geny AACDBABB oraz AABCBB. Zwrmy uwag, e:
cig AA wystpujcy za genem AABCBB nie jest pocztkiem genu, poniewa nie
wystpuje za nim cig BB koczcy gen;
cz kodujca genotypu AACDBABBBCDAABCBBAAE jest rwna
AACDBABBAABCBB.

Przykad 2.
Genotyp AADBAADDDDEEEBBEE
zawiera gen AADBAADDDDEEEBB. Zwrmy uwag, e:
pierwsze pojawienie si cigu AA determinuje pocztek genu, dlatego w powyszym
genotypie wystpuje gen AADBAADDDDEEEBB, a nie gen AADDDDEEEBB.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
137
Plik dane_gen.txt zawiera genotypy 1000 osobnikw z galaktyki Madgen. Kady wiersz
pliku zawiera genotyp jednego osobnika o dugoci nie wikszej ni 500 znakw.

Przykad
ABAEACBAADAACAABBABCDA
ABAEACBADEADACACABBABCDA
Napisz program(-y), ktry poda odpowiedzi na pytania postawione w poniszych zadaniach.
Odpowiedzi zapisz w pliku wyniki_gen.txt. Odpowied do kadego zadania rozpocznij
w nowym wierszu, poprzedzajc j numerem zadania.

69.1.
Podaj liczb wszystkich gatunkw, ktrych genotypy zapisane s w pliku dane_gen.txt.
Podaj najwiksz liczb osobnikw reprezentujcych ten sam gatunek.

69.2.
Wystpowanie w jakimkolwiek genie cigu BCDDC oznacza mutacj powodujc ma
odporno osobnika na zmczenie. Podaj, ile osobnikw spord tych, ktrych genotypy
zapisane s w pliku, ma t mutacje.

Przykad
Osobnik o genie AACBCDDCBBACDE ma mutacj BCDDC (cig BCDDC wystpuje w obrbie
podkrelonego genu), natomiast osobnik o genie CBCDDCBBAACDEBB nie ma tej mutacji,
gdy wystpujcy cig BCDDC nie jest ulokowany w adnym genie.

69.3.
Wyznacz i podaj najwiksz liczb genw wystpujcych u jednego osobnika. Podaj te
najwiksz dugo genu zapisanego w caym pliku.

Przykad
Rozwamy plik skadajcy si z genotypw:
EAABCDBBDCBAAE
EAABCDBBDCBAAEBCDBBEE
EAABCDBBECAAB
Pierwszy osobnik ma jeden gen (AABCDBB), drugi ma dwa geny (AABCDBB i AAEBCDBB), a
trzeci osobnik ma jeden gen (AABCDBB). Zatem najwiksza liczba genw u jednego
osobnika wynosi 2, a najwiksza dugo genu to 8 (gen AAEBCDBB ma t dugo).
138 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

69.4.
Genotyp odczytywany z materiau biologicznego moe by odkodowany w kierunku od
strony lewej do prawej lub odwrotnie: od strony prawej do lewej. Genotyp nazywa bdziemy
odpornym, jeli czytany od strony lewej do prawej oraz od strony prawej do lewej ma
dokadnie tak sam cz kodujc. Natomiast genotyp silnie odporny to taki, ktry czytany
od strony lewej do prawej oraz od strony prawej do lewej daje dokadnie ten sam napis.
(Inaczej mwic, genotyp jest silnie odporny, gdy jest palindromem).

Przykad
Rozwamy genotypy:
EAABCDBBDCBAAE
EAABCDBBDCBAAEBCDEE
EAABCDBBECAAB
Genotyp EAABCDBBDCBAAE jest silnie odporny (jest palindromem). Genotyp
EAABCDBBDCBAAEBCDEE nie jest silnie odporny (nie jest palindromem), ale jest odporny,
gdy czytany od strony lewej do prawej, jak i od strony prawej do lewej ma tak sam cz
kodujc: AABCDBB. Natomiast genotyp EAABCDBBECAAB nie jest silnie odporny (nie jest
palindromem), nie jest te odporny, gdy czytany od strony lewej do prawej daje cz
kodujc AABCDBB, a czytany od strony prawej do lewej ma cz kodujc rwn
AACEBB.
Wyznacz liczb genotypw odpornych oraz liczb genotypw silnie odpornych.

Zadanie 70.
Wizka zada Zasona
Pani Binarna dostaa zlecenie na uszycie zasony. Na rysunku poniej przedstawiono zason,
ktra jest ograniczona:
61
od gry prost y 19 ,
125
2
od dou prost y 32 ,
3
z lewej strony prost x 2 ,
x4 x2 3
z prawej strony dwoma krzywymi: f ( x) oraz
500 200 250
x3 x 1
g ( x) .
30 20 6
61 2
Uwaga: Zauwa, e f (10) 19 , za g (10) 32 .
125 3
Rysunek pomocniczy:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
139

Korzystajc z dostpnych narzdzi informatycznych, wykonaj ponisze zadania. Odpowiedzi


do nich umie w pliku zadanie_zaslona.txt. Kada odpowied powinna by
poprzedzona numerem je oznaczajcym.

70.1.
Pani Binarna zakupia tyle materiau, ile wynosi pole prostokta ABCD, w ktrym mieci si
zasona. Oblicz, jaka bdzie powierzchnia materiau pozostaego po wykrojeniu zasony.
Wynik podaj z dokadnoci do 1/1000.

70.2.
Pani Binarna zamierza obszy tam zason ze wszystkich czterech stron, w tym celu chce
wyznaczy obwd zasony. Cz obwodu ograniczon wykresem funkcji f(x) szacujemy
w nastpujcy sposb: Odcinek [2,10] dzielimy na 1000 rwnych czci, ktrych prawe
koce oznaczamy przez x1,,x1000. Dugo krzywej odpowiadajcej wykresowi f(x) na
przedziale [2,10] przybliamy dugoci amanej czcej punkty (2, f(2)), (x1, f(x1)), (x2, f(x2))
itd. a do (x1000, f(x1000)). Analogicznie wyznaczamy cz obwodu ograniczon przez g(x).
Stosujc powysz metod wyznaczania obwodu, oblicz dugo tamy, jak musi zakupi
pani Binarna, zakadajc, e w sprzeday jest tylko tama o dugociach bdcych
wielokrotnoci jednego metra.

70.3.
Pani Binarna postanowia wykorzysta pozostay fragment materiau i wyci z niego pasy
o szerokoci 0,25 m i o bokach rwnolegych do osi ukadu wsprzdnych. Podaj sum
dugoci pasw, ktre mona wyci z pozostaego fragmentu materiau. Za, e dugo
140 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

kadego wycitego pasa jest liczb cakowit oraz e pani Binarna zaczyna wycina pasy od
prawej strony materiau.
Rysunek pomocniczy:

Zadanie 71.
Wizka zada Funkcja
Wykres funkcji f zoony jest z piciu fragmentw:
1 (), [0,1),
2 (), [1,2),
() = 3 (), [2,3),
4 (), [3,4),
{5 (), [4,5),
gdzie kada z funkcji () jest wielomianem stopnia trzeciego. W pliku funkcja.txt
zapisane s wspczynniki postaci oglnej wielomianw ()( = 1,2, ,5); w i-tym
wierszu pliku zapisane s cztery liczby rzeczywiste: 0 , 1 , 2 , 3 (oddzielone pojedynczym
odstpem), dla ktrych () = 0 + 1 + 2 2 + 3 3 .
Poniszy rysunek przedstawia wykres funkcji .
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
141

Napisz program, ktry da odpowiedzi do poniszych zada. Zapisz je w pliku tekstowym


wyniki_funkcja.txt. Wyniki do kadego zadania poprzed numerem je oznaczajcym.
Wszystkie wyniki naley wypisa, stosujc zaokrglenie do podanej liczby cyfr po przecinku.

71.1.
Podaj warto (1.5) z dokadnoci do 5 cyfr po przecinku.

71.2.
Znajd warto [0,5), dla ktrej warto () jest najwiksza.
Jako wynik podaj warto z dokadnoci do trzech, a warto () z dokadnoci do 5
cyfr po przecinku.

71.3.
Znajd wszystkie miejsca zerowe funkcji w przedziale [0,5). Odpowiedzi podaj z
dokadnoci do 5 cyfr po przecinku.

Zadanie 72.
Wizka zada Podobne napisy
W pliku napisy.txt znajduje si 200 wierszy, z ktrych kady zawiera dwa napisy
o dugoci od 1 do 50 znakw, oddzielone pojedynczym odstpem. Napisy skadaj si
wycznie z maych liter alfabetu angielskiego.
Napisz program (lub kilka programw), ktry pozwoli rozwiza ponisze zadania.
Odpowiedzi zapisz w pliku wyniki.txt.

72.1.
Oblicz, w ilu wierszach jeden (ktrykolwiek) z napisw jest przynajmniej trzy razy duszy
od drugiego. Jako odpowied wypisz liczb takich wierszy oraz par napisw z pierwszego
z nich.
142 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

72.2.
Znajd (i wypisz) wszystkie takie wiersze pliku, w ktrych drugi napis da si otrzyma
z pierwszego przez dopisanie na jego kocu pewnej dodatniej liczby liter (na przykad kot
i kotara). Dla kadego wiersza podaj oba znajdujce si w nim napisy, a osobno wypisz litery,
ktre naley dopisa.

72.3.
Niektre z podanych par napisw maj identyczne zakoczenia (na przykad komputer i
krater). Znajd i wypisz najwiksz moliw dugo takiego zakoczenia, a take wszystkie
pary napisw w wierszach, ktre osigaj t maksymaln dugo.

Zadanie 73.
Wizka zada Statystyki tekstu
W pliku tekst.txt dany jest tekst zoony ze sw pisanych wielkimi literami alfabetu
angielskiego. Sw jest 1876, oddzielone s one pojedynczymi odstpami, a inne znaki poza
literami i spacjami w tekcie nie wystpuj. Napisz program(-y), ktry poda odpowiedzi do
poniszych zada. Odpowiedzi zapisz w pliku wyniki.txt.

73.1.
Oblicz, ile jest w tekcie sw, w ktrych wystpuj dwie kolejne takie same litery.

73.2.
Sporzd statystyk czstotliwoci wystpowania liter w tekcie: dla kadej litery podaj liczb
jej wystpie we wszystkich sowach tekstu oraz jej procentowy udzia wrd wystpie
wszystkich liter w tekcie(do statystyki nie wliczaj spacji). Odpowied zapisz w nastpujcej
postaci:
A: 632 (7.56%)
B: 196 (2.34%)
...
Wartoci procentowe podaj w zaokrgleniu do dwch miejsc po przecinku.

73.3.
Wrd sw w tekcie policz dugo najduszego podsowa (fragmentu zoonego z
kolejnych liter) zoonego z samych spgosek. Pamitaj, e samogoski to: A, E, I, O, U
oraz Y, za pozostae litery s spgoskami.
Podaj dugo najduszego takiego podsowa, liczb sw, ktre zawieraj podsowo o takiej
dugoci, oraz pierwsze z nich, ktre wystpuje w pliku tekst.txt.

Zadanie 74.
Wizka zada Hasa
W pliku hasla.txt danych jest 200 hase uytkownikw pewnego systemu. Kady
uytkownik posiada jedno haso (kade zapisane jest w osobnym wierszu), ktre zawiera od 1
do 20 znakw alfanumerycznych, tzn. cyfr od 0 do 9 lub liter alfabetu aciskiego (maych lub
duych). Polityka bezpieczestwa systemu wymaga, aby hasa byy odpowiednio
skomplikowane i nie powtarzay si.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
143
Poniej podano pierwsze pi hase zapisanych w pliku hasla.txt:
144 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

ZXUhkPLcjKo
ikfLDegQXj
8Y7JGYXXR5
603624722555
50q4252ax5
Napisz program, ktry da odpowiedzi do poniszych zada. Odpowiedzi do poszczeglnych
zada zapisz w pliku tekstowym wyniki_hasla.txt. Wyniki do kadego zadania
poprzed numerem oznaczajcym to zadanie.

74.1.
Podaj liczb hase zoonych jedynie ze znakw numerycznych, tzn. cyfr od 0 do 9.

74.2.
Wypisz hasa, ktre zostay uyte przez co najmniej dwch rnych uytkownikw, tzn.
wystpujce w dwch rnych wierszach. Hasa wypisz (bez powtrze) w kolejnoci
leksykograficznej.

74.3.
Podaj liczb uytkownikw posiadajcych hasa, w ktrych wystpuje fragment zoony
z czterech kolejnych znakw ASCII (w dowolnej kolejnoci).
Przykady hase zawierajcych taki fragment to:
A5mnpoR89cd
A5876RRcg
As45FGHFEk90nba

75.4.
Podaj liczb hase, ktre speniaj jednoczenie ponisze warunki:
haso zawiera co najmniej jeden znak numeryczny, tzn. cyfr od 0 do 9,
haso zawiera co najmniej jedn ma liter,
haso zawiera co najmniej jedn du liter.

Zadanie 75.
Wizka zada Szyfr afiniczny
Dany jest tekst zoony ze sw zbudowanych z maych liter alfabetu angielskiego. Metoda
szyfrowania afinicznego dla ktrej kluczem szyfrujcym s dwie liczby cakowite A i B
polega na wykonaniu kolejno nastpujcych operacji:
zastpienia kolejnych liter alfabetu liczbami od 0 do 25: 'a' przez 0, 'b' przez 1, 'c'
przez 2 itd. wedug przyporzdkowania przedstawionego w poniszej tabeli:
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
pomnoenia liczby odpowiadajcej kadej literze przez A i dodania otrzymanego
wyniku do B,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
145
zamiany otrzymanych liczb z powrotem na litery; jeli liczba jest wiksza ni 25,
bierze si jej reszt z dzielenia przez 26.
Parametry klucza, czyli liczby A i B, powinny by liczbami cakowitymi z przedziau [0, 25].
Dla przykadu, jeli kluczem szyfrujcym jest (3, 7), czyli A = 3, za B = 7, to litera 'n' jest
najpierw zastpowana liczb 13. Po pomnoeniu jej przez A i dodaniu B otrzymujemy wynik
rwny 46. W nastpnym kroku otrzymujemy liter o numerze 46 26 = 20, czyli 'u'.
Okazuje si, e do odszyfrowania szyfru afinicznego mona zastosowa t sam metod, by
moe z innym kluczem. Na przykad, jeli napis zaszyfrujemy kluczem (3, 7), to aby go
odszyfrowa, stosujemy ten sam algorytm z kluczem (9, 15). Dla przykadu, deszyfrujc liter
'u' z kluczem (9, 15), otrzymamy liczb 20 * 9 + 15 = 195, czyli liter 'n', jako e 195 mod 26
= 13. Klucz (9,15) jest wwczas kluczem deszyfrujcym dla klucza (3,7).
Napisz program(y), ktry poda odpowiedzi do poniszych zada. Odpowiedzi zapisz do pliku
wyniki.txt.

75.1.
W pliku tekst.txt dany jest, w pojedynczym wierszu, tekst zoony z dokadnie 805 sw
zapisanych maymi literami alfabetu angielskiego, oddzielonych znakami odstpu. adne
sowo nie jest dusze ni 15 znakw.
Znajd i wypisz te sowa, ktrych zarwno pierwsz, jak i ostatnia liter jest 'd'.

75.2.
Zaszyfruj szyfrem afinicznym o kluczu (5, 2) te sowa z pliku tekst.txt, ktre skadaj si
z co najmniej 10 liter. Wypisz je w postaci zaszyfrowanej, po jednym w wierszu.

75.3.
Plik probka.txt skada si z 5 wierszy, kadego zawierajcego dwa napisy. Pierwszy
z nich to pewne sowo zapisane tekstem jawnym, drugi za to to samo sowo zaszyfrowane za
pomoc szyfru afinicznego (kade sowo innym kluczem).
Dla kadego z tych sw znajd i wypisz klucz szyfrujcy oraz klucz deszyfrujcy.

Zadanie 76.
Wizka zada Szyfr
Rozwaamy szyfrowanie przestawieniowe, w ktrym kluczem jest n-elementowa tablica
zawierajca rne liczby cakowite z przedziau [1, n]. Na przykad kluczem 5-elementowym
moe by tablica [3, 2, 5, 4, 1].
Szyfrowanie napisu A (o dugoci co najmniej n) kluczem n-elementowym P[1..n] odbywa si
w nastpujcy sposb:
pierwsza litera sowa A zamieniana jest miejscami z liter na pozycji P[1],
nastpnie druga litera sowa A zamieniana jest z liter na pozycji P[2]
itd.
Uzyskane na kocu sowo jest szyfrem napisu A z kluczem P.
146 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Jeli napis A ma wicej ni n liter, to po n-tym kroku powyszego algorytmu kolejn liter
zamieniamy znw z liter na pozycji P[1] itd. Oznacza to, e w i-tym kroku zamieniamy
litery na pozycjach i oraz P[1+(i-1) mod n].

Przykad
Ponisza tabelka ilustruje szyfrowanie sowa INFORMATYKA kluczem P rwnym [3, 2,
5, 4, 1]:
i 1 2 3 4 5 6 7 8 9 10 11
P[1+(i-1) mod n] 3 2 5 4 1 3 2 5 4 1 3
Sowo I N F O R M A T Y K A
Krok 1 F N I O R M A T Y K A
Krok 2 F N I O R M A T Y K A
Krok 3 F N R O I M A T Y K A
Krok 4 F N R O I M A T Y K A
Krok 5 I N R O F M A T Y K A
Krok 6 I N M O F R A T Y K A
Krok 7 I A M O F R N T Y K A
Krok 8 I A M O T R N F Y K A
Krok 9 I A M Y T R N F O K A
Krok 10 K A M Y T R N F O I A
Krok 11 K A A Y T R N F O I M
Napis KAAYTRNFOIM jest zatem szyfrem napisu informatyka z kluczem [3, 2, 5, 4, 1].
Napisz program(-y), ktry da odpowiedzi do poniszych zada.

76.1.
W pliku szyfr1.txt dane s:
w wierszach o numerach od 1 do 6 napisy zoone z 50 liter alfabetu aciskiego;
w wierszu nr 7 klucz 50-elementowy; liczby oddzielone s pojedynczym
odstpem.
Zaszyfruj wszystkie sze napisw zgodnie z opisan metod. Wynik, czyli zaszyfrowane
napisy, zapisz w osobnych wierszach w pliku wyniki_szyfr1.txt.

76.2.
W pliku szyfr2.txt dane s:
w pierwszym wierszu napis zoony z 50 liter alfabetu aciskiego;
w drugim wierszu klucz 15-elementowy; liczby oddzielone s pojedynczym
odstpem.
Zaszyfruj dany napis zgodnie z opisan metod. Wynik, czyli zaszyfrowany napis, zapisz
w pliku wyniki_szyfr2.txt.

76.3.
W pliku szyfr3.txt dany jest napis zoony z 50 liter alfabetu aciskiego. Napis ten
powsta po zaszyfrowaniu pewnego napisu A kluczem [6, 2, 4, 1, 5, 3].
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
147
Podaj napis A. Wynik zapisz w pliku wyniki_szyfr3.txt.

Zadanie 77.
Wizka zada Szyfr Vigenrea
W zadaniu rozwaamy teksty zbudowane tylko z wielkich liter alfabetu angielskiego, znakw
odstpu i znakw przestankowych (przecinek, kropka). Oto litery alfabetu i numery ich
pozycji w alfabecie:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Szyfrowanie Vigenrea polega na zastpieniu kadej litery tekstu rdowego liter odleg
od niej cyklicznie w alfabecie o k pozycji.
Warto k nie jest z gry ustalona dla caego tekstu rdowego, lecz dla kadej litery
w tekcie jest okrelana osobno, w oparciu o sowo przyjte jako klucz szyfrowania.
Przystpujc do szyfrowania, naley przyporzdkowa kolejnym literom tekstu rdowego
kolejne litery klucza, chodzc po nim cyklicznie, jeli jest krtszy od szyfrowanego tekstu.
Znaki inne ni litery nie s szyfrowane, pomijamy je podczas przypisywania liter klucza.
Pozycja litery klucza w alfabecie jest t wartoci k, o jak naley wykona przesunicie
wzgldem litery tekstu rdowego w celu znalezienia odpowiadajcej jej litery szyfru.

Przykad
tekst rdowy: JEST OK, klucz: EWA
tekst rdowy J E S T spacja O K
Klucz E W A E W A
pozycja litery 4 22 0 4 22 0
klucza
Szyfr J4 = N E22=A S0 = S T4 = X spacja O22=K K0 = K

wynik szyfrowania: NASX KK.


Napisz w wybranym jzyku programowania program, ktry wyznaczy rozwizania zada
podanych niej. Wszystkie wyniki zapisz w pliku tekstowym Vigenere_wyniki.txt,
wyranie oddzielajc odpowiedzi do poszczeglnych zada. Do oceny oddaj ten plik oraz plik
(pliki) zawierajcy reprezentacj komputerow rozwizania.

77.1.
W pliku dokad.txt znajduje si jeden wiersz z tekstem. Dugo tekstu nie przekracza
1024 znakw. Naley zaszyfrowa ten tekst metod Vigenrea, uywajc jako klucza sowa:
LUBIMYCZYTAC.
a) Podaj liczb powtrze klucza niezbdn do zaszyfrowania caego tekstu rdowego
(uwzgldniajc w nich ostatnie rozpoczte powtrzenie).
b) Podaj zaszyfrowany tekst i zapisz go w pliku z odpowiedziami.
148 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

77.2.
W pliku szyfr.txt zapisano dwa wiersze. W pierwszym wierszu znajduje si tekst
zaszyfrowany metod Vigenrea. W drugim wierszu znajduje si klucz uyty do tego
szyfrowania.
Szyfr zawiera wiele sw. Jego czna dugo nie przekracza 1024 znakw. Szyfrowaniu
podlegay tylko wielkie litery tekstu, za odstpy i znaki przestankowe pozostay bez zmiany.
Odszyfruj tekst i umie jego posta rdow w pliku z odpowiedziami.

77.3.
a) Podaj liczby wystpie poszczeglnych liter A, B, ..., Z w treci szyfru zawartego
w pierwszym wierszu pliku szyfr.txt.
b) Chcc zama szyfr Vigenre, nie znajc klucza, w pierwszym kroku naley oszacowa
dugo klucza (rozumian jako liczba znakw). Istnieje przybliony wzr na szacunkow
dugo klucza d danego szyfru Vigenrea dla tekstu nad alfabetem 26-literowym.
Oszacowanie jest tym lepsze, im duszy jest szyfr.
0,0285
=
0,0385
gdzie o to indeks koincydencji znakw obliczany nastpujco:
( 1) + ( 1) + + ( 1)
o =
( 1)
n czna liczba wystpie wszystkich liter w tekcie szyfru (nie liczymy odstpw
i znakw przestankowych),
, , , liczby wystpie poszczeglnych liter A, B, , Z w tekcie szyfru.
Wykorzystujc powysze wzory, wyznacz szacunkow dugo klucza dla szyfru danego
w pierwszym wierszu pliku szyfr.txt i porwnaj z dokadn dugoci klucza
umieszczonego w drugim wierszu tego pliku. Wypisz obie wartoci, warto szacunkow
zaokrglij do 2 cyfr po przecinku.

Zadanie 78.
Wizka zada Podpis elektroniczny
Bajtek otrzyma od przyjaciela 11 jawnych wiadomoci. Do kadej wiadomoci przyjaciel
doczy podpis elektroniczny.
Podpis elektroniczny jest zaszyfrowanym skrtem wiadomoci. Przyjaciel Bajtka utworzy
skrt za pomoc funkcji skrot(), ktra przeksztaca dowoln wiadomo w 8-znakowy napis,
a nastpnie zaszyfrowa ten skrt algorytmem A o sobie tylko znanym kluczu prywatnym
(e,n). Opis obu algorytmw podano poniej.
Bajtek chciaby by pewien, e zachowano:
integralno danych (tre nie zostaa zmieniona w trakcie przesyania),
uwierzytelnienie nadawcy (nikt si pod nadawc nie podszy).
W tym celu powinien sprawdzi kad wiadomo nastpujco:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
149
zaprogramowa funkcj skrot(wiadomosc) i za jej pomoc utworzy skrt
wiadomoci,
odszyfrowa skrt z podpisu elektronicznego algorytmem A przy pomocy oglnie
znanego klucza publicznego (d,n) o wartociach (3,200),
porwna oba skrty: jeli s identyczne, znaczy to, e wiadomo jest wiarygodna.
Pom Bajtkowi sprawdzi, czy otrzymane wiadomoci s wiarygodne.
W pliku wiadomosci.txt znajduje si 11 wiadomoci, kada w osobnym wierszu. Liczba
znakw kadej wiadomoci nie przekracza 255. Wiadomoci zawieraj znaki pojedynczego
odstpu, ktre s integraln czci informacji.
W pliku podpisy.txt znajduje si 11 wierszy, kady z nich zawiera 8 liczb cakowitych,
stanowicych elementy podpisu elektronicznego jednej wiadomoci. Liczby w wierszu
oddzielone s pojedynczymi znakami odstpu. Kolejno wierszy podpisw jest zgodna z
kolejnoci wierszy wiadomoci (pierwszy wiersz podpisw odpowiada pierwszej
wiadomoci, drugi drugiej itd.)
Funkcja skrtu skrot(wiadomo)
Skrt wiadomoci jest 8-znakowym napisem, zoonym z wielkich liter alfabetu angielskiego.
Aby go wyznaczy, wykonaj nastpujce kroki:
a) Wpisz do 8-elementowej tablicy S kody ASCII znakw sowa ALGORYTM.
b) Tre wiadomoci uzupenij na kocu znakami kropki . do wielokrotnoci 8 znakw.
c) Rozpatrz po kolei 8-znakowe porcje treci wiadomoci. W zalenoci od kodw ich
znakw aktualizuj wartoci elementw w tablicy S. Dla kadej porcji treci wiadomoci
powtarzaj:
dla j =1,2 .. 8 wykonuj
S[j] (S[j]) + kod znaku na j-tej pozycji w biecej porcji wiadomoci) mod 128

d) Zbuduj wynik, wyznaczajc jego kolejne znaki na podstawie elementw tablicy S:


wynik =
dla j =1,2 .. 8 wykonuj
wynik wynik + char( 65 + S[j] mod 26 )

gdzie: mod jest operatorem dzielenia modulo,


funkcja char(kod) zwraca reprezentacj graficzn znaku o podanym kodzie
Otrzymany w ten sposb wynik jest skrtem wiadomoci.
Algorytm A szyfrowania z kluczem prywatnym (e,n) i deszyfrowania kluczem
publicznym (d,n)
Deszyfrowanie polega na wykonaniu operacji x=(y*d mod n), gdzie za y naley przyj
kolejne liczby tworzce podpis elektroniczny. Tekst wynikowy mona otrzyma, skadajc
w jeden napis reprezentacje graficzne kolejnych liczb x zgodnie ze standardem ASCII.

Uwaga dla dociekliwych


Zaszyfrowanie algorytmem A polegao na wykonywaniu operacji y=(x*e mod n), gdzie za x
naleao podstawi kody ASCII kolejnych znakw tekstu rdowego. Uzyskany w ten
sposb cig liczb jest podpisem elektronicznym wiadomoci. Gdyby kto chcia zama szyfr
150 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

A, czyli wyznaczy nieznany element e klucza prywatnego, musiaby znale tak warto e,
wzgldnie pierwsz z d, e e*d mod n = 1. Uzasadnienia szukaj w prawach arytmetyki
modularnej.
Napisz program rozwizujcy ponisze zadania. Do oceny oddaj plik tekstowy
epodpis_wynik.txt, zawierajcy odpowiedzi, oraz plik (pliki) zawierajcy reprezentacj
komputerow Twojego rozwizania.

78.1.
Wyznacz skrt pierwszej wiadomoci z pliku wiadomosci.txt i udokumentuj wyniki
kolejnych etapw obliczania tego skrtu. Zapisz w kolejnych wierszach pliku wynikowego:
a) liczb znakw wiadomoci po jej uzupenieniu do najmniejszej dugoci
o wielokrotnoci 8 znakw,
b) wartoci liczbowe 8 kolejnych bajtw skrtu (elementy tablicy S) po przetworzeniu
caej wiadomoci wszystkie wartoci w jednym wierszu, oddzielone pojedynczymi
znakami odstpu,
c) skrt wiadomoci w postaci napisu o dugoci 8, zoonego z wielkich liter alfabetu
angielskiego.

78.2.
Odszyfruj skrty wiadomoci ze wszystkich podpisw elektronicznych umieszczonych
w pliku podpisy.txt, stosujc algorytm A z kluczem publicznym (d,n) = (3,200). Zapisz
uzyskane skrty w kolejnych, osobnych wierszach pliku z odpowiedziami.

78.3.
Zweryfikuj wiarygodno wszystkich wiadomoci i podaj numery wiadomoci wiarygodnych.
Zapisz w jednym wierszu pliku z odpowiedziami, jako liczby z zakresu 1..11, zgodnie z
kolejnoci umieszczenia ich w pliku danych, oddzielone pojedynczym znakiem odstpu.

Zadanie 79.
Wizka zada Okrgi
Okrg na paszczynie reprezentujemy za pomoc trzech liczb , , , gdzie (, ) oznaczaj
wsprzdne rodka okrgu, a jego promie.
W pliku okregi.txt danych jest 2000 okrgw; kady zapisany jest w osobnym wierszu,
zawierajcym trzy liczby rzeczywiste , , (109 , 109 , 0 < < 109 ).
Pierwsze dziewi wierszy tego pliku zawiera liczby:
8.000 5.000 40.815
22.623 21.558 50.000
53.551 38.508 25.663
63.429 42.655 18.844
77.352 48.799 20.286
80.274 52.627 16.127
178.318 128.106 23.993
191.501 140.711 8.379
197.073 143.275 13.129
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
151
Mona zauway, e ostatnie siedem okrgw w caoci zawiera si w pierwszej wiartce
ukadu wsprzdnych. Natomiast pierwsze dwa okrgi nie le w caoci w adnej wiartce.
Napisz program, ktry umoliwi wykonanie poniszych polece. Odpowiedzi do
poszczeglnych zada zapisz w pliku tekstowym wyniki_okregi.txt. Wyniki do
kadego zadania poprzed numerem je oznaczajcym.

79.1.
Podaj liczb okrgw, ktre cakowicie zawieraj si w I, II, III i IV wiartce ukadu
wsprzdnych. Podaj rwnie liczb okrgw, ktre nie zawieraj si w caoci w adnej
wiartce, tzn. maj co najmniej jeden punkt wsplny z jedn z osi Ox lub Oy. Jako odpowied
wypisz pi liczb: liczba okrgw I wiartki, liczba okrgw II wiartki, liczba okrgw III
wiartki, liczba okrgw IV wiartki oraz liczba okrgw, ktre nie zawieraj si w caoci w
adnej wiartce.

79.2.
Powiemy, e dwa okrgi tworz lustrzan par, jeli jeden z nich powstaje przez odbicie
drugiego wzgldem jednej z osi Ox lub Oy. Podaj liczb lustrzanych par spord wszystkich
okrgw zapisanych w pliku okregi.txt.

Uwagi
1. Ukad trzech okrgw powstaych przez odbicia wzgldem osi Ox lub Oy zawiera
dwie lustrzane pary; np. wrd okrgw o rodkach w punktach (-5,6), (5,6), (5,-6)
(i o tych samych promieniach) s dokadnie dwie lustrzane pary; zob. poniszy
rysunek.

2. Analogicznie do poprzedniego punktu ukad czterech okrgw zawiera cztery


lustrzane pary.

79.3.
Powiemy, e dwa okrgi tworz prostopad par, jeli jeden z nich powstaje przez obrt
drugiego o 90 stopni wzgldem rodka ukadu wsprzdnych.
Przykad: okrgi o rodkach w punktach (3,-5), (5,3) (i o tych samych promieniach) tworz
par prostopad; zob. rysunek.
152 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Podaj liczb prostopadych par okrgw spord wszystkich okrgw zapisanych w pliku
okregi.txt.

Uwagi
1. ukad trzech okrgw powstaych przez obrt o 90 stopni wzgldem rodka ukadu
wsprzdnych zawiera dwie pary prostopade;
np. wrd okrgw o rodkach (5,3), (3,-5), (-5,-3) (i o tych samych promieniach) s
dokadnie dwie pary prostopade.

2. Analogicznie do poprzedniego punktu ukad czterech okrgw zawiera cztery pary


prostopade.

79.4.
Powiemy, e cig okrgw tworzy acuch, jeli kolejne okrgi tego cigu maj ze sob co
najmniej jeden punkt wsplny; przyjmujemy, e cig zawierajcy tylko jeden okrg rwnie
tworzy acuch. Mona zauway, e wrd podanych okrgw mamy dwa acuchy:
pierwszy o dugoci 6, a drugi o dugoci 3.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
153
Znajd dugoci wszystkich acuchw tworzonych przez okrgi zapisane w wierszach
o numerach od 1 do 1000. Podaj dugo najduszego acucha.

Zadanie 80.
Wizka zada Trjkty
W pliku dane_trojkaty.txt znajduje si 500 liczb cakowitych dodatnich. Kada liczba
jest zapisana w osobnym wierszu, adna liczba nie wystpuje w pliku wicej ni jeden raz.
Liczby podane w pliku dane_trojkaty.txt to dugoci odcinkw, z ktrych bdziemy
prbowa budowa trjkty.
Napisz program(-y), ktry pozwoli rozwiza ponisze zadania. Odpowiedzi zapisz w pliku
wyniki_trojkaty.txt. Odpowied do kadego zadania podaj w osobnym wierszu,
poprzedzajc j numerem zadania.

80.1.
Wypisz wszystkie trjki kolejnych liczb z pliku dane_trojkaty.txt, ktre s
dugociami bokw trjkta prostoktnego.

Przykad
Rozwamy plik skadajcy si z dziesiciu liczb: 8, 7, 4, 3, 5, 9, 12, 13, 85, 84. Wynikiem s
dwie trjki liczb: 4, 3, 5 oraz 13, 85, 84. Trjkt prostoktny tworz te odcinki o bokach 5,
12 i 13, ale liczby te nie s kolejnymi liczbami w podanym pliku.

80.2.
Podaj najwikszy obwd trjkta, ktrego boki maj dugoci rwne liczbom wystpujcym
w rnych wierszach pliku dane_trojkaty.txt.

Przykad
Dla pliku skadajcego si z dziesiciu liczb: 10, 18, 70, 100, 15, 13, 21, 12, 1, 2 wynikiem
jest 54, poniewa trjkt o najwikszym obwodzie ma boki 18, 15 i 21.

80.3.
Podaj, ile nieprzystajcych trjktw mona utworzy z odcinkw o dugociach podanych
w pliku dane_trojkaty.txt.
Uwaga: Dwa trjkty s przystajce wtedy i tylko wtedy, gdy trzy boki jednego trjkta s
odpowiednio rwne trzem bokom drugiego trjkta, np. trjkt o bokach (10, 18, 15) jest
przystajcy z trjktem o bokach (18, 15, 10).

Przykad
Dla pliku skadajcego si z dziesiciu liczb: 10, 18, 70, 100, 15, 13, 21, 12, 1, 2 wynikiem
jest 21, gdy z podanych dugoci odcinkw mona utworzy 21 trjktw o nastpujcych
bokach:
(10, 18, 15); (10, 18, 13); (10, 18, 21); (10, 18, 12); (10, 15, 13); (10, 15, 21); (10, 15, 12);
(10, 13, 21); (10, 13, 12); (10, 21, 12); (18, 15, 13); (18, 15, 21); (18, 15, 12); (18, 13, 21);
(18, 13, 12); (15, 13, 21); (15, 13, 12); (15, 21, 12); (13, 21, 12); (13, 12, 2); (18, 21, 12).
154 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 81.
Wizka zada Czworokty
Plik wierzcholki.txt zawiera 100 wierszy. W kadym wierszu zapisano 6 liczb
cakowitych z przedziau <100; 100>, bdcych wsprzdnymi trzech rnych punktw: A,
B i C w kartezjaskim ukadzie wsprzdnych (odpowiednio xa, ya, xb, yb, xc, yc). Liczby w
wierszu s oddzielone pojedynczymi znakami tabulacji.
Podobny plik wierzcholkiTR.txt zawiera rwnie 100 wierszy. W kadym wierszu
zapisano 6 liczb cakowitych nalecych do przedziau <100; 100>, bdcych
wsprzdnymi trzech wierzchokw trjkta ABC (odpowiednio xa, ya, xb, yb, xc, yc). Liczby
w wierszu s oddzielone pojedynczymi znakami tabulacji.
Wykorzystujc dane zawarte w plikach oraz dostpne narzdzia informatyczne, rozwi
ponisze zadania.
Napisz program(-y), za pomoc ktrego(-ych) uzyskasz odpowiedzi do poniszych zada. Do
oceny oddaj dokument wyniki.txt z zapisanymi odpowiedziami na poszczeglne zadania oraz
pliki rdowe programw wykorzystanych do uzyskania rozwizania.

81.1.
Podaj liczb wierszy z pliku wierzcholki.txt, w ktrych wszystkie zapisane punkty
le w I wiartce ukadu wsprzdnych i nie nale do osi OX i OY.

81.2.
Podaj liczb wierszy z pliku wierzcholki.txt, w ktrych zapisane s wsprzdne
punktw lecych na jednej prostej.

81.3.
Podaj (z pliku wierzcholkiTR.txt) wsprzdne wierzchokw trjkta o najwikszym
obwodzie oraz obwd tego trjkta. Obwd zaokrglij do dwch miejsc po przecinku.
Uwaga: moesz zaoy, e jest tylko jeden taki trjkt.

79.4.
Dla kadego wiersza z pliku wierzcholkiTR.txt sprawd, czy punkty zapisane w tym
wierszu s wierzchokami pewnego trjkta prostoktnego. Podaj liczb trjktw
prostoktnych zapisanych w tym pliku
Uwaga: Takich trjktw jest wicej ni cztery.

81.5.
Dla kadego wiersza z pliku wierzcholkiTR.txt, w
ktrych zapisane s kolejno wsprzdne punktw A, B i C,
wyznacz wsprzdne punktu D, tak aby czworokt ABCD
by rwnolegobokiem. Podaj wsprzdne wszystkich
wierzchokw czworoktw ABCD, ktrych punkt D ley na
prostej y=x.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
155

2.2. Symulacja

Zadanie 82.
Wizka zada Piraci
Na karaibskiej wyspie Santo Domingo piraci poszukuj skarbu, ktry niegdy ukry tam
zbuntowany hiszpaski wicekrl. Przeszukiwany teren podzielili na jednostkowe kwadratowe
obszary o boku jednej mili. Kademu obszarowi przypisali wsprzdne: odcit i rzdn,
przy czym odcita ronie w kierunku wschodnim, a rzdna w kierunku pnocnym, tak jak
przedstawiono na poniszym rysunku:

W niedziel 1 padziernika 1902 roku piraci lduj na wyspie, na obszarze (0,0), i postpuj
wedug nastpujcej, znalezionej w tajemniczych okolicznociach, instrukcji:
Kadego dnia przejd 8 mil prosto na pnoc, a potem skr w prawo i przejd 11 mil
na wschd. Policz, ile w sumie mil na pnoc przeszede od zejcia ze statku kopic
w tym miejscu, znajdziesz tyle zotych dublonw, ile cyfr ma ta czna odlego.
Ponadto kadego trzeciego dnia miesica znajdziesz dodatkowo dwa dublony.
Po zebraniu zota zawr i przejd na zachd tyle mil, ile dublonw wanie zebrae.
Tam rozbij obz na noc, a nastpnego dnia moesz kontynuowa swoj wdrwk.
Nie bd zbyt chciwy, aby nie spada na ciebie kltwa!
Wiedzc, e piraci spdzili na wyspie 150 dni, kadego dnia (cznie z dniem ldowania)
wypeniajc dokadnie te polecenia. Jeeli piraci znajduj si w kwadracie o wsprzdnych
(i,j), to po przejciu 1 mili na pnoc znajd si w obszarze o wsprzdnych (i,j+1). Z kolei w
obszarze o wsprzdnych (i+1,j) znajd si, gdy pjd na wschd, (i,j-1) gdy pjd na
poudnie, (i-1,j) gdy pjd na zachd.
Uywajc dostpnych narzdzi informatycznych, znajd odpowiedzi na ponisze pytania.
Odpowiedzi zapisz w pliku o nazwie wyniki.txt, kad z nich umieszczajc w osobnym
wierszu i poprzedzajc numerem odpowiedniego zadania.
156 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

82.1.
Codziennie wieczorem piraci obozuj w miejscu, gdzie znaleli si po wykopaniu dublonw
i przejciu odpowiedniej liczby mil na zachd. Podaj wsprzdne obozu piratw, w ktrym
spdzaj noc wigilijn 24/25 grudnia 1902.

82.2.
Oblicz, ile mil cznie przejd piraci przez cay okres poszukiwa. Uwzgldnij mile przebyte
na pnoc, wschd, a take na zachd, w czasie cofania si.

82.3.
W kad sobot cz piratw wymyka si z obozu, aby popyn dk na ssiedni wysp
Tortuga, gdzie na rne rozrywki trac 10% (zaokrglone w d do liczby cakowitej) majtku
posiadanego przez ca band.
Oblicz, ile cznie dublonw piraci zostawi na Tortudze przez cay okres swojej wyprawy.
Za, e na wysp przybyli, nie majc ani jednego dublona.

82.4.
Kltwa uaktywnia si (o czym piraci nie wiedz) kadego dnia, w ktrym piraci znajduj 4
lub wicej dublonw. Kltwa ta skutkuje nieprzyjemn niespodziank: po powrocie na statek
piraci bd musieli zmierzy si z oddziaem wojska miejscowego gubernatora, skadajcym
si z tylu onierzy, ile piraci zebrali cznie dublonw w feralne dni. Oblicz, ilu
przeciwnikw spotkaj piraci.

82.5.
Przez Santo Domingo pynie rzeka, pod ktem 45 stopni do brzegw wyspy, wpadajca do
morza w pobliu punktu ldowania piratw. Odlego obozu piratw (bdcego w danym
dniu na polu (x,y) od rzeki mona opisa wzorem odlego = |x - y|, czyli jako warto
bezwzgldn z rnicy wsprzdnych obozu1.

1
W rzeczywistoci odlego ta wynosi (liczc od rodka obszaru do rzeki), uyjemy jednak uproszczonej
formuy.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
157
Znajd redni odlego wieczornego obozu piratw od rzeki przez cay okres poszukiwa
(150 dni) w zaokrgleniu do dwch miejsc po przecinku, a nastpnie sporzd wykres
kolumnowy przedstawiajcy t odlego w kolejnych dniach.

Komentarz do zadania
Utwrzmy arkusz, ktrego kady wiersz bdzie przechowywa nastpujce informacje:
1. nr dnia i data kolejny dzie symulacji (1,2,3,) oraz aktualna data (poczwszy od
1 padziernika 1902),
2. odcita i rzdna wsprzdne pola, z ktrego piraci rano rozpoczynaj wdrwk
(na pocztku (0,0)),
3. ile na wschd, ile na pnoc ile mil przeszli tego dnia na wschd oraz na pnoc,
4. cznie na pnoc cakowita liczba mil, jakie piraci pokonali w kierunku
pnocnym
5. znalezione ile dublonw znaleli kopic (zarazem: ile mil cofnli si potem na
zachd).

Wartoci w wierszu k obliczamy na podstawie wartoci z poprzedniego wiersza w


nastpujcy sposb:
kolejny nr dnia i data oblicz si automatycznie po rozszerzeniu pierwszych komrek
na ca kolumn,
ile na wschd oraz ile na pnoc to zawsze odpowiednio 11 i 8,
cznie na pnoc obliczamy z analogicznej wartoci poprzedniego wiersza, dodajc
do niej ile na pnoc,
znalezione obliczamy zgodnie z pirack instrukcj, stosujc do wartoci cznie na
pnoc funkcj D w MS Excel, ktra podaje dugo napisu w komrce. Musimy
doda jeszcze 2 dublony, jeli jest to trzeci dzie miesica odzyskujemy go z daty
funkcj DZIE.

odcit oraz rzdn obliczamy z ich wartoci z poprzedniego wiersza wartoci,


dodajc do rzdnej mile przebyte na pnoc (ile na pnoc), a do odcitej mile
przebyte na wschd (ile na wschd), pomniejszone o mile przebyte na zachd
(znalezione).
158 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Majc ju kluczow cz symulacji, moemy zrealizowa polecenia podane w kolejnych


zadaniach.

82.1.
Odpowiedzi s wartoci odcitej i rzdnej w wierszu odpowiadajcym 25 grudnia 1902.

82.2.
Sumujemy wartoci ile na pnoc, ile na wschd oraz znalezione w caym zakresie.

82.3.
Konieczne jest dopisanie dwch kolumn: cznego majtku piratw oraz dublonw
zostawionych na Tortudze. czny majtek w dniu k to majtek w dniu k-1 powikszony o
dublony znalezione w dniu k, a pomniejszony o zoto stracone na rozrywki. Dublony stracone
w dniu k obliczamy za pomoc instrukcji warunkowej:
jeli dniem tygodnia (funkcja DZIEN.TYG) jest sobota, liczb straconych dublonw
jest aktualny majtek piratw podzielony przez 10 i zaokrglony w d.
jeli dzie tygodnia jest inny ni sobota, straconych dublonw jest 0.
Pozostao jeszcze zsumowa stracone dublony za pomoc instrukcji SUMA.

82.4.
Zadanie mona rozwiza bardzo szybko instrukcj warunkowej sumy, czyli SUMA.JEELI.
Chcemy zsumowa w pewnym zakresie tylko te komrki, ktre maj odpowiednio due
wartoci (wiksze ni 3). Uywamy wic nastpujcej formuy:
SUMA.JEELI(zakres;">3"; zakres)
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
159

82.5.
Odlego liczymy, uywajc funkcji REDNIA. Wane jest, aby do redniej nie wliczy
punktu pooenia obozu rankiem pierwszego dnia (czyli punktu ldowania (0,0)), za to
uwzgldni pooenie obozu wieczorem ostatniego dnia.

Rozwizanie
Realizacja komputerowa rozwizania (caej wizki) znajduje si w pliku piraci_rozw.xlsx.
Prawidowe odpowiedzi:

82.1.
(687, 680)

82.2.
3323 kroki

82.3.
260 dublonw

82.4.
125 onierzy

82.5.

Odlego piratw od rzeki


25

20
Odlego

15

10

0
106
113
120
127
134
141
148
1
8

50

99
15
22
29
36
43

57
64
71
78
85
92

Numer dnia

rednia odlego: 8,13.


160 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 83.
Wizka zada Wilki i zajce
Klasyczny model Lotki-Volterry opisuje interakcje midzy populacjami dwch gatunkw.
Niech i oznaczaj liczebno populacji odpowiednio wilkw i zajcy, gdzie jest
numerem kolejnego miesica. Model definiuj nastpujce dwa wzory:
+1 = + ,
+1 = + ,
gdzie , , s parametrami modelu i maj nastpujce znaczenie:
wspczynnik przyrostu liczby zajcy,
wspczynnik umierania zajcy na skutek polowa wilkw,
wspczynnik umierania wilkw.
Przyjmujemy nastpujce pocztkowe wartoci populacji:
0 = 100, 0 = 30.
Rozwaamy model Lotki-Volterry z parametrami:
= 0,02, = 0,0005, = 0,05.
Dla potrzeb matematycznych modeli symulacyjnych przyjmujemy, e wartoci i mog
by liczbami niecakowitymi. Poniej podano wartoci populacji wilkw i zajcy
w pierwszych 5 miesicach symulacji (wartoci zaokrglono do 2 miejsc po przecinku):
Zajce Wilki
( ) ( )
0 100,00 30,00
1 100,50 30,00
2 101,00 30,01
3 101,51 30,02
4 102,01 30,05
5 102,52 30,08
Wykorzystujc dostpne narzdzia informatyczne, wykonaj ponisze zadania. Odpowiedzi
(z wyjtkiem wykresu do zadania 3) zapisz w pliku o nazwie wyniki_wilki.txt.
Wyniki do kadego zadania poprzed numerem oznaczajcym to zadanie. Wykres do zadania
3 umie w pliku wykres_wilki.xxx, gdzie xxx oznacza rozszerzenie odpowiednie dla
formatu pliku.

83.1.
Podaj liczebno populacji wilkw i zajcy po upywie 5 lat (60 miesicy). Wynik podaj
z dokadnoci do 2 miejsc po przecinku.

83.2.
Dla podanych powyej wartoci a, b, c i wartoci pocztkowych 0 , 0 przebieg symulacji
jest nastpujcy:
na pocztku nastpuje przyrost obu populacji;
gdy wilkw przybdzie odpowiednio duo, to populacja zajcy zaczyna male;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
161
gdy liczebno populacji zajcy zaczyna spada, to zaczyna te spada liczebno
populacji wilkw.
Podaj, kiedy zacznie male populacja zajcy, tzn. podaj najmniejsz warto , dla ktrej
< 1. Podaj te, kiedy nastpi spadek populacji wilkw, tzn. podaj najmniejsz warto
, dla ktrej < 1.

83.3.
Utwrz wykres liniowy przedstawiajcy liczebno populacji wilkw i zajcy w kolejnych
miesicach w cigu pierwszych 20 lat symulacji. Pamitaj o czytelnym opisie wykresu.

83.4.
Rozwa symulacj liczebnoci populacji wilkw i zajcy w okresie 40 lat. Podaj najmniejsz
i najwiksz liczebno wilkw i zajcy, jaka moe by wskazana w rozwaanym modelu.
Odpowiedzi podaj z dokadnoci do 2 miejsc po przecinku.

Zajce Wilki

Najmniejsza liczebno populacji

Najwiksza liczebno populacji

Komentarz do zadania
W zadaniu rozwaany jest pewien model symulacji liczebnoci populacji wilkw i zajcy
w pewnym rodowisku. Do realizacji tej symulacji mona wykorzysta arkusz kalkulacyjny
lub napisa odpowiedni program. Na potrzeby rozwizania zada 1, 2 i 4 napiszemy
programy w jzyku C++. Zadanie 3 zostanie rozwizane z wykorzystaniem zarwno
programu, jak i arkusza kalkulacyjnego. Ten ostatni wykorzystamy jedynie do sporzdzenia
wykresu. Podkrelmy, e w jzyku C++ wszelkie obliczenia numeryczne warto wykonywa
na zmiennych typu double. Wwczas wypisywanie wyniku, np. z dokadnoci do dwch
miejsc po przecinku, mona zrealizowa za pomoc funkcji printf w nastpujcy sposb:
printf("%.2f", x); // wypisywanie liczby x
// z dok. do 2 miejsc
We wszystkich poniszych programach wykorzystujemy stae globalne:
const double a = 0.02, b = 0.0005, c = 0.05;

83.1.
Rozwaan w zadaniu symulacj mona do atwo zaprogramowa w jzyku C++.
Wystarczy bowiem napisa ptl, ktra realizuje obliczanie licznoci populacji wilkw i
zajcy wprost z podanych w treci wzorw:
double Z = 100.0, W = 30.0;
for (int n=1; n<=5*12; n++)
{
double nZ = Z + a*Z - b*Z*W;
double nW = W + b*Z*W - c*W;
Z = nZ;
W = nW;
162 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

}
Istotne jest, aby w kadej iteracji ptli nie zastpi liczebnoci populacji wilkw i zajcy przy
obliczaniu nowych wartoci, gdy w obu wzorach potrzebujemy starych wartoci Z i W.
Dlatego w powyszym programie dodano dwie nowe zmienne nZ i nW. Poniewa liczba n
zmienia si od 1 do 5*12, wic po wykonaniu powyszej ptli w zmiennych Z i W znajd si
wyniki do zadania.

83.2.
Aby rozwiza zadanie ponownie utworzymy ptl, w ktrej oblicza bdziemy liczby
wilkw i zajcy w kolejnych iteracjach symulacji.
W kadej iteracji bdziemy po obliczeniu nowej liczby wilkw i zajcy sprawdza, czy jest
ona mniejsza od liczby z poprzedniej iteracji. Musimy zapamita pierwszy taki moment
zarwno dla populacji wilkw, jak i zajcy. Ptl przerwiemy dopiero wtedy, gdy zostanie
stwierdzony co najmniej raz spadek populacji wilkw i co najmniej raz spadek populacji
zajcy. Wykrycie numerw iteracji, w ktrych wystpuj te zdarzenia, oraz kocowa
organizacja caej symulacji bd wwczas wyglda nastpujco:
double Z = 100.0, W = 30.0;
int k=1, odpZ=0, odpW=0;
while (odpZ==0 || odpW==0)
{
double nZ = Z + a*Z - b*Z*W;
double nW = W + b*Z*W - c*W;
if ( nZ < Z && odpZ == 0 ) odpZ = k;
if ( nW < W && odpW == 0 ) odpW = k;
Z = nZ;
W = nW;
k++;
}
W powyszym fragmencie programu zapamitujemy numer iteracji, dla ktrej nastpi
pierwszy spadek liczby zajcy, w zmiennej odpZ, a w wypadku wilkw w zmiennej
odpW. Zmienne te inicjujemy wartoci 0, ktra wskazuje, e moment spadku liczebnoci nie
zosta jeszcze zaobserwowany. Jeli w zmiennych Z i nZ pamitamy liczb zajcy w biecej
i w poprzedniej iteracji, pierwszy spadek liczby zajcy wystpi wwczas, gdy speniony
zostanie warunek ( nZ < Z && odpZ == 0 ). Gdy warunek ten jest speniony,
zapamitujemy numer biecej iteracji w zmiennej odpZ. Zagwarantujemy w ten sposb, e
w dalszym przebiegu symulacji zajdzie warunek odpZ>0, co wskae, e wystpi ju spadek
liczby zajcy, i przy kolejnych spadkach (jeli wystpi) warto odpZ nie bdzie zmieniana.
Analogicznie postpujemy w przypadku populacji wilkw, aktualizujc odpowiednio warto
zmiennej odpW.
Ptl przebiegajc kolejne kroki symulacji przerywamy po zaobserwowaniu zarwno spadku
liczby zajcy, jak i spadku liczby wilkw. Sytuacja taka ma miejsce, gdy odpZ!=0 i
odpW!=0. A zatem ptl bdziemy kontynuowa, dopki cho jedna ze zmiennych odpZ,
odpW bdzie rwna zeru. Do rozwizania zadania pozostaje (po zakoczeniu ptli) tylko
wypisanie wartoci zmiennych odpZ i odpW.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
163
83.3.
Aby rozwiza zadanie za pomoc arkusza kalkulacyjnego, naley najpierw przygotowa
odpowiednie dane do wykresu. Mona to zrobi wykorzystujc poprzednie rozwizania, tj.
program do symulacji liczby wilkw i zajcy, lub zrealizowa ca symulacj w arkuszu
kalkulacyjnym. Skupimy si na pierwszym sposobie. Przygotowanie danych realizujemy
zatem za pomoc nastpujcego programu:
double Z = 100.0, W = 30.0;
printf("0 %f %f\n", Z, W);
for (int n=1; n<=20*12; n++)
{
double nZ = Z + a*Z - b*Z*W;
double nW = W + b*Z*W - c*W;
Z = nZ;
W = nW;
printf("%d %f %f\n", n, Z, W);
}
ktrego wynik moemy zapisa w pliku tekstowym, powiedzmy dane.txt. Jego
pocztkowe wiersze bd wwczas wyglday nastpujco:
0 100.000000 30.000000
1 100.500000 30.000000
2 101.002500 30.007500
3 101.507134 30.022541
4 102.013525 30.045165
5 102.521289 30.075414
W kadym wierszu znajduj si trzy liczby: numer iteracji, liczba zajcy, liczba wilkw.
Warto podkreli, e dwie ostatnie liczby podane s w formacie zmiennoprzecinkowym, z
wykorzystaniem symbolu kropki do oddzielenia czci cakowitej od uamkowej. Jest to
istotne przy importowaniu danych do arkusza kalkulacyjnego. Mona to bowiem zaznaczy w
zaawansowanych opcjach podczas dokonywania importu. Podobnie naley pamita, aby
przy imporcie zaznaczy, e dane liczby s oddzielone pojedynczym odstpem (w tym celu
naley wybra separator spacja). Dalej zakadamy, e dysponujemy arkuszem, w ktrym:
w komrkach o adresach A1:A241 znajduj si kolejne numery iteracji, a wic liczby
cakowite od 0 do 240,
w komrkach o adresach B1:B241 znajduj si liczby rzeczywiste okrelajce
populacj wilkw w kolejnych iteracjach,
w komrkach o adresach C1:C241 znajduj si liczby rzeczywiste okrelajce
populacj zajcy w kolejnych iteracjach.
Sporzdzenie wykresu mona zrealizowa za pomoc arkusza kalkulacyjnego Excel w
nastpujcy sposb:
1. Wybieramy Wstaw Wykres liniowy.
2. Dodajemy dwie serie danych: B1:B241 oraz C1:C241, nadajc im odpowiednie
nazwy.
3. Dla czytelnoci wykresu zmieniamy rwnie etykiety na osi Ox, wybierajc dane
A1:A241.
164 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

4. Nadajemy wykresowi odpowiedni tytu.

83.4.
Aby rozwiza zadanie, wystarczy zmodyfikowa program napisany do poprzednich zada.
Mianowicie dugo symulacji naley ustawi na 40 lat. Aby wyznaczy minimaln
i maksymaln liczb wilkw i zajcy, wprowadzamy pomocniczo cztery zmienne: minW,
maxW, minZ i maxZ. W kadej iteracji symulacji prbujemy poprawi te wartoci
w nastpujcy sposb (skorzystano w nim z funkcji min i max):
double Z = 100.0, W = 30.0;
double minZ, maxZ, minW, maxW;
minZ = maxZ = Z; minW = maxW = W;
for (int n=1; n<=40*12; n++)
{
double nZ = Z + a*Z - b*Z*W;
double nW = W + b*Z*W - c*W;
Z = nZ;
W = nW;
minZ = min( minZ, Z ); maxZ = max( maxZ, Z );
minW = min( minW, W ); maxW = max( maxW, W );
}
Po zakoczeniu powyszej ptli wypisujemy wyniki z dokadnoci do dwch miejsc po
przecinku za pomoc instrukcji:
printf("MIN : %.2f | %.2f\n", minZ, minW);
printf("MAX : %.2f | %.2f\n", maxZ, maxW);

Zadanie 84.
Wizka zada LPG
Pan Binarny zaoy instalacj gazow w swoim samochodzie, dziki czemu mg
wykorzystywa do jazdy 2 rodzaje paliwa. Parametry pojazdu s przedstawione w poniszej
tabeli:
zuycie paliwa
paliwo pojemno zbiornika
(spalanie)
Pb95 45 litrw 6 litrw na 100 km
LPG 30 litrw 9 litrw na 100 km
Pan Binarny postanowi prowadzi rejestr dugoci pokonywanych tras w kolejnych dniach
2014 roku. Dane te zostay zebrane w pliku lpg.txt. S to data wyjazdu (data) oraz
liczba kilometrw przejechanych tego dnia (km). Pierwszy wiersz jest wierszem
nagwkowym, a dane w wierszach rozdzielone s znakami tabulacji.

Przykad
data km
2014-01-01 159
2014-01-02 82
2014-01-03 108
1 stycznia 2014 r. zbiorniki z paliwem (Pb95 i LPG) byy zatankowane do pena. Codziennie
rano pan Binarny decydowa, w jaki sposb bdzie zuywa paliwo. Jeeli w zbiorniku LPG
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
165
byo wicej ni 15 litrw, to do jazdy wykorzystywa tylko paliwo LPG, w przeciwnym razie
poow trasy pokonywa, korzystajc z paliwa Pb95, a poow z paliwa LPG.
Liczb zuytych litrw paliwa na trasie oblicza ze wzoru

= ,
100
gdzie spalanie oznacza zuycie paliwa w litrach na 100 km (zgodnie z parametrami zuycia
paliwa w tabeli powyej), a km oznacza liczb przejechanych kilometrw, przy czym wyniki
zaokrgla do dwch miejsc po przecinku.
Bez wzgldu na rodzaj paliwa tankowanie wykonywane byo po przejechaniu trasy,
wieczorem. W kady czwartek, o ile w zbiorniku z Pb95 znajdowao si poniej 40 litrw,
pan Binarny tankowa do pena Pb95. Paliwo LPG byo tankowane do pena wtedy, gdy w
zbiorniku LPG znajdowao si mniej ni 5 litrw tego paliwa i odbywao si niezalenie od
dnia tygodnia.
Wykorzystujc dane zawarte w pliku lpg.txt i dostpne narzdzia informatyczne, wykonaj
ponisze zadania. Odpowiedzi (za wyjtkiem wykresu do zadania 3) zapisz w pliku o nazwie
wyniki_lpg.txt. Wyniki do kadego zadania poprzed numerem je oznaczajcym.
Wykres do zadania 3 umie w pliku wykres_lpg.xxx, gdzie xxx oznacza rozszerzenie
odpowiednie dla formatu pliku.
Uwaga: Dane podane w pliku lpg.txt wykluczaj sytuacj, e panu Binarnemu
kiedykolwiek zabrako paliwa na trasie i w zwizku z tym musia on zmienia decyzj co do
rodzaju uywanego paliwa.

84.1.
Podaj, ile razy pan Binarny tankowa paliwo Pb95, a ile razy LPG.
Podaj liczb dni, w ktrych pan Binarny korzysta podczas jazdy wycznie z paliwa LPG.

84.2.
Podaj dzie, w ktrym w zbiorniku LPG po raz pierwszy byo rano mniej ni 5,25 litra
paliwa.

84.3.
Utwrz wykres, w ktrym porwnasz stan zbiornika LPG przed podr ze stanem zbiornika
LPG po podry dla pierwszych 31 dni. Pamitaj o czytelnym opisie wykresu.

84.4.
Przyjmijmy, e w caym rozwaanym okresie koszt 1 litra LPG jest rwny 2,29 z, a koszt
1 litra Pb95 wynosi 4,99 z. Koszt instalacji gazowej wynosi 1600 z.
Oblicz dla rozwaanego okresu koszt eksploatacji samochodu z wykorzystaniem instalacji
gazowej (uwzgldnij koszt instalacji oraz zuyte LPG) oraz koszt eksploatacji samochodu
wykorzystujcego tylko paliwo Pb95 (w oparciu o zuyt ilo Pb95).
W swoich obliczeniach dotyczcych eksploatacji z wykorzystaniem instalacji gazowej
przyjmij wszystkie opisane zaoenia dotyczce tankowania i sposobu przejazdw pana
Binarnego. Zauwa, e w obliczeniach zwizanych z wykorzystaniem wycznie paliwa Pb95
nie ma znaczenia dzie tankowania, istotny jest jedynie roczny koszt eksploatacji.
166 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Podaj oba koszty eksploatacji. Podczas oblicze wszystkie koszty oraz wyniki kocowe
zaokrglaj do dwch miejsc po przecinku.

Zadanie 85.
Wizka zada Oscypki
Oscypek to ser sezonowy. Robi si go z mleka owiec wypasanych na halach. Sezon wypasu
trwa od 23 kwietnia (w.Wojciecha) do 29 wrzenia (w. Michaa).
Baca ma stado owiec skadajce si z 600 sztuk. Kada owca przez pierwsze 7 dni sezonu
daje 0,5 l mleka dziennie. Poczwszy od smego dnia (czyli 30.04) ta ilo mleka wzrasta
skokowo o 4% co 7 dni. Tak dzieje si do 24 czerwca (w.Jana) wcznie. Od 25 czerwca
co 7 dni ilo mleka od jednej owcy zmniejsza si skokowo o 10% w stosunku do iloci
mleka z poprzedniego 7-dniowego okresu. Proces ten trwa do koca wypasu owiec. Liczb
odnoszc si do rzeczywistej iloci mleka oddawanego przez jedn owc w kadym dniu,
wyliczon zgodnie z powyszymi reguami, naley zaokrgli do dwch miejsc po przecinku.
Ser jest wyrabiany z mleka zebranego od owiec poprzedniego dnia. Jego wyrb trwa jedn
dob, a nastpnie jest on wdzony przez 4 doby i kolejnego dnia jest gotowy do sprzeday.
Na wytworzenie jednego sera potrzeba 6 litrw mleka. Z mleka, jakie jest do dyspozycji, baca
produkuje tylko cae sery i maksymaln moliw ich liczb. Reszta mleka, niezuyta
w danym dniu do produkcji serw, jest wykorzystywana do innych celw.
Kadego dnia w okresie od 29.04 do 29.09 wcznie do bacwki przychodz po sery turyci.
W dni powszednie kupuj 36 serw dziennie (o ile baca ma tyle na sprzeda), a w dni
weekendu (sobot, niedziel) 100 serw dziennie. Jeli danego dnia baca ma na sprzeda
mniej serw ni chc kupi turyci, to wykupuj je wszystkie, jeli wicej, to baca
przechowuje sery i ma je do sprzedania w kolejnych dniach. Rozwamy, jak wygldao
wyrabianie i sprzeda serw w bacwce w 2014 roku.

Przykad
23.04 pierwsze dojenie owiec,
24.04 wyrb serw z mleka z dnia 23.04,
25.04 28.04 wdzenie serw zrobionych 24.04,
29.04 pierwsze sery gotowe do sprzeday.
We wtorek 29.04.2014 do bacwki od rana przychodzili turyci i kupowali gotowe sery. Baca
mia 50 gotowych serw, z ktrych turyci kupili 36 sztuk.
Wykorzystujc dostpne narzdzia informatyczne, wykonaj ponisze polecenia. Odpowiedzi
do poszczeglnych zada zapisz w pliku tekstowym o nazwie wyniki.txt (z wyjtkiem
wykresu do zadania 4). Odpowied do kadego zadania poprzed numerem oznaczajcym to
zadanie. Wykres do zadania 4 umie w pliku wykres.xxx, gdzie xxx oznacza
rozszerzenie odpowiednie dla formatu pliku z Twoimi rozwizaniami.

85.1.
Podaj liczb litrw mleka, jak uzyska baca ze swojego stada owiec w okresie od 23.04.2014
do 29.09.2014 wcznie.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
167
85.2.
Podaj czn liczb serw, ktre turyci byli gotowi zakupi u bacy poczwszy od dnia, kiedy
sery byy gotowe do sprzeday, czyli od 29.04.2014, do ostatniego dnia wypasu, czyli do
29.09.2014.

85.3.
Podaj dzie, w ktrym po raz pierwszy w sezonie (od 29.04.2014 do 29.09.2014) baca mia
mniej gotowych serw, ni chcieli kupi turyci. Ile byo takich dni w caym sezonie?

85.4.
Wykonaj zestawienie, w ktrym dla kadego miesica, od kwietnia do wrzenia wcznie,
podasz liczb sprzedanych w tym miesicu oscypkw. Do wykonanego zestawienia utwrz
wykres kolumnowy. Pamitaj o czytelnym opisie wykresu.

85.5.
Podaj najmniejsz liczb owiec, jak musiaby posiada baca, aby kadego dnia od
29 kwietnia do 29 wrzenia zaspokoi popyt turystw na oscypki.

85.6.
W przepisie na produkcj oscypka dopuszcza si dodawanie mleka krowiego do mleka
owczego (maksymalniy udzia mleka krowiego moe wynie 40%). Podaj liczb serw
(gotowych do sprzeday), ktre mona byoby wyprodukowa w caym okresie wypasu przy
opisanych wyej warunkach uzyskiwania mleka owczego, jeeli ser tworzony byby:
tylko z mleka owczego,
z mieszanki skadajcej si z 80% mleka owczego i 20% mleka krowiego,
z mieszanki skadajcej si z 60% mleka owczego i 40% mleka krowiego.

Zadanie 86.
Wizka zada Wybory
Jedn z metod obsadzania mandatw w systemach wyborczych opartych na proporcjonalnej
reprezentacji partii politycznych jest metoda Sainte-Lagu. W metodzie tej kolejne mandaty
w danym okrgu wyborczym przydzielane s po kolei. Przed przydzieleniem kadego
mandatu wyznacza si wspczynnik wK dla kadego komitetu wyborczego K rwny

= ,
2 +1

gdzie:
liczba gosw zdobytych przez komitet K w rozwaanym okrgu,
liczba mandatw przydzielonych komitetowi K do tej pory.
Kolejny mandat otrzymuje ten komitet wyborczy K, ktry ma najwiksz warto
wspczynnika .
Uwaga. Jeli kilka komitetw ma tak sam warto wspczynnika . Sposb
rozstrzygnicia takich remisw nie ma wpywu na rozwizania poniszych zada, dlatego
takiego przypadku nie opisujemy.
168 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Przykad
Przyjmijmy, e do wyborw zgosiy si dwa komitety wyborcze K1 i K2, ktre otrzymay
odpowiednio 1 = 810 oraz 2 = 300 gosw w okrgu, w ktrym do obsadzenia s
4 mandaty.
Mandat pierwszy otrzymuje K1, gdy 1 = 0, 2 = 0 oraz:
810 300
1 = = 810, 2 = = 300.
1 1

Mandat drugi otrzymuje K2, gdy 1 = 1, 2 = 0 oraz:


810 300
1 = = 270, 2 = = 300.
3 1

Mandat trzeci otrzymuje K1, gdy 1 = 1, 2 = 1 oraz:


810 300
1 = = 270, 2 = = 100.
3 3

Mandat czwarty rwnie otrzymuje K1, gdy 1 = 2, 2 = 1 oraz:


810 300
1 = = 162, 2 = = 100.
5 3

W rezultacie komitet K1 otrzyma 3 mandaty, a komitet K2 otrzyma 1 mandat.


Wybory odbyy si w 20 okrgach wyborczych, zgosio si do nich pi komitetw
wyborczych o nazwach K1, K2, K3, K4 i K5. Do obsadzenia jest 400 mandatw poselskich.
Plik dane_wybory.txt zawiera wyniki przeprowadzonych wyborw. Kady wiersz pliku
zawiera dane dotyczce jednego okrgu wyborczego: nazw okrgu i 5 liczb oznaczajcych
liczb gosw oddanych na kolejne komitety wyborcze (K1, K2, K3, K4 i K5) w tym okrgu
(zakadamy, e kady gos wskazuje na jeden komitet, nie ma gosw niewanych). Wartoci
w wierszu oddzielone s spacjami.

Przykad
A1 16573 13009 19177 21253 9656
B2 24574 10394 9756 13299 3464
Wykorzystujc dane zawarte w tym pliku i dostpne narzdzia informatyczne, wykonaj
ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki_wybory.txt (z wyjtkiem wykresu do zadania 1). Odpowied do kadego
zadania poprzed numerem oznaczajcym to zadanie. Wykres do zadania 1 umie w pliku
wyniki_wybory.xxx, gdzie xxx oznacza rozszerzenie odpowiednie dla formatu pliku.

86.1.
Podaj, ile ogem gosw oddano (na wszystkie komitety razem) w kadym z okrgw
wyborczych. Na tej podstawie sporzd wykres kolumnowy porwnujcy liczby gosw
oddanych w poszczeglnych okrgach. Pamitaj o prawidowym i czytelnym opisie wykresu.

86.2.
Poparcie komitetu wyborczego w danym okrgu to procent gosw zdobytych w tym okrgu,
w zaokrgleniu do dwch miejsc po przecinku. Matecznikiem komitetu wyborczego
nazywamy okrg, w ktrym komitet ten zdoby najwiksze procentowe poparcie
w porwnaniu z jego poparciem w innych okrgach. Dla kadego komitetu wyborczego
podaj nazw okrgu bdcego jego matecznikiem.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
169
Przykad
Przyjmijmy, e wybory odbyy si tylko w dwch okrgach wyborczych A1 i B2,
z nastpujcymi wynikami:
K1 K2 K3 K4 K5
A1 100 300 400 50 150
B2 150 500 750 400 200
Wwczas matecznikiem komitetu K1 jest okrg A1 (100 gosw, poparcie 10%), mimo e
uzyska on wiksz liczb gosw w okrgu B2 (150 gosw, poparcie 7,5%).

86.3.
Przyjmijmy, e w kadym okrgu wyborczym jest do obsadzenia 20 mandatw, przy czym
przyznawane s one w oparciu o rozkad gosw w tym okrgu zgodnie z metod Sainte-
Lagu. Dla kadego z komitetw wyborczych (K1, K2, K3, K4, K5 ) wska maksymaln
liczb mandatw zdobytych przez ten komitet w jednym okrgu.

86.4.
Pierwsza litera nazwy kadego okrgu oznacza region, w ktrym ten okrg si znajduje: A, B,
C lub D. Komisja wyborcza rozwaa rne warianty podziau mandatw:
a) standardowy: w kadym okrgu mandaty obsadzane s osobno, przyznaje si po 20
mandatw na okrg metod Sainte-Lagu.
b) regionalny: wszystkie okrgi z tego samego regionu czone s w duy okrg i w tak
utworzonych wikszych okrgach (A, B, C i D) obsadza si po 100 mandatw metod
Sainte-Lagu.
Podaj liczb mandatw zdobytych w obu wariantach przez kady komitet w caym kraju.

86.5.
Rozwamy sytuacj, w ktrej o mandaty rywalizuj dwa komitety wyborcze, Q i R, w jednym
okrgu wyborczym, w ktrym kady spord 100 000 wyborcw oddaje gos na komitet Q
albo komitet R. Do obsadzenia jest 2m mandatw. Ustal najmniejsz liczb gosw, jakie
musi zdoby komitet Q, aby zdoby dokadnie poow, czyli m mandatw, dla m=10, m=20
i m=50.

Zadanie 87.
Wizka zada U-977
Okrt podwodny U-977 wypyn w swj pierwszy
patrol bojowy z Kristiansand w czwartek 3 maja 1945
o godzinie 00:00 z zadaniem dotarcia do
Southampton, a celem wyprawy byo zatopienie jak
najwikszej liczby jednostek alianckich. W czasie
rejsu na okrt dotara wiadomo o kapitulacji
Niemiec. W tej sytuacji dowdca wraz z wikszoci
zaogi zdecydowali si pyn do Argentyny
i rozpoczli dugi rejs na poudniow pkul.
170 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Ze wzgldu na trudnoci w podry 14 lipca 1945, tj. 73. dnia podry, zaoga postanowia
si zatrzyma na 24-godzinny odpoczynek w pobliu archipelagu Wysp Zielonego Przyldka
(14 lipca 1945, od godziny 0:00 do godziny 24:00). Mimo e w tym czasie okrt sta w
miejscu, to wszystkie jego podzespoy pracoway, co powodowao ich naturalny proces
zuywania si.
18 sierpnia 1945 o godzinie 00:00, po 107 dniach podry, U-977 zawin do Mar del Plata,
gdzie zaoga poddaa si argentyskiej marynarce.
Okrt by wyposaony w silniki elektryczne i akumulatory umoliwiajce rejs w zanurzeniu,
pocztkowo z prdkoci redni 4 wzw (4 mile morskie na godzin) oraz silniki
spalinowe, umoliwiajce rejs na powierzchni pocztkowo z prdkoci redni 10 wzw.
Pojemno akumulatorw wystarczaa na maksymalnie 20 godzin pracy silnikw
elektrycznych. Podczas rejsu na silnikach spalinowych jednoczenie adowane byy
akumulatory silnikw elektrycznych. Pene naadowanie akumulatorw nastpowao po
czterech godzinach uywania silnikw spalinowych, niezalenie od prdkoci.
Aby zmniejszy prawdopodobiestwo wykrycia okrtu przez siy alianckie o ile byo to
moliwe okrt pyn w zanurzeniu korzystajc z silnikw elektrycznych.
W zwizku z rnego rodzaju awariami i oglnym zuyciem mechanizmw prdko rednia
na kadym z napdw zmniejszaa si codziennie o 1%, niezalenie od czasu ich
wykorzystywania. Poczwszy od 15 lipca, w zwizku z uszkodzeniem akumulatorw, okrt
pyn codziennie po 11 godzin w wynurzeniu. Pozosta cz doby przebywa w zanurzeniu,
nie zmieniajc pozycji nad dnem. Ostatniej doby rejsu, w zwizku z trudnociami
nawigacyjnymi okrt pyn tylko 9 godzin.
Wszystkie okrelenia godzin w zadaniu wyraone niezalenie od miejsca zdarzenia podane s
wedug czasu uniwersalnego (GMT).
Wykorzystujc dostpne narzdzia informatyczne, rozwi podane poniej zadania.
Obliczenia wykonuj na liczbach rzeczywistych i nie zaokrglaj wynikw czciowych. Do
oceny oddaj dokument wyniki.txt z zapisanymi odpowiedziami do poszczeglnych zada
oraz plik zawierajcy obliczenia.

87.1.
Ktrego dnia podry rednia prdko rejsu w zanurzeniu po raz pierwszy wyniosa poniej
3 wzw?

87.2.
Jak drog (w milach morskich) przeby okrt na trasie z Kristiansand do Mar del Plata?
Odpowied podaj w zaokrgleniu do jednego miejsca po przecinku.

87.3.
Oblicz drog (w milach morskich) przebyt przez okrt kadego dnia i sporzd wykres
ilustrujcy odlego przebyt w kolejnych dniach rejsu. Zadbaj o czytelny opis wykresu.

87.4.
Ktrego dnia zakoczyby si rejs okrtu, gdyby po 14 lipca okrt pyn ju cigle dokadnie
tym samym kursem i bdc w zanurzeniu utrzymywa prdko wedug wczeniejszego
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
171
harmonogramu (20 godzin w zanurzeniu na silnikach elektrycznych i 4 godziny na
powierzchni na silnikach spalinowych)?

87.5.
Dokadnie w tym samym czasie co U-977 (tj. 3 maja 1945 o godzinie 00:00) z Kristiansand
wypyn te okrt U-997 o tych samych parametrach technicznych. Jego dowdca, podobnie
jak dowdca U-977, postanowi pyn do Ameryki Poudniowej. Majc wiadomo
przeszkd/problemw, jakie mog nastpi w podry dowdca postanowi pyn z
prdkoci rwn 90% maksymalnej oraz w kad niedziel, poza pierwsz, bdc w
zanurzeniu, wyczy na dwie godziny wszystkie silniki i dokona dokadnego ich przegldu
oraz konserwacji. Dziki temu ubytek uzyskiwanej prdkoci wynosi tylko 0,3% na dob na
kadym z napdw i nie trzeba byo robi 24-godzinnej przerwy w podry. Mona byo,
bowiem przez cay czas poza dniami konserwacji pyn po 20 godzin na dob w zanurzeniu,
a przez 4 godziny pyn na powierzchni i adowa akumulatory. Okrt pyn inn drog, ale
rwnie zakoczy swj rejs 17 sierpnia 1945 o pnocy. Podaj, w zaokrgleniu do jednego
miejsca po przecinku, jak odlego przeby okrt do 17 sierpnia 1945, do godziny 24:00.

Zadanie 88.
Wizka zada Sprzeda choinek
Firma produkcyjno-handlowa wierk sprzedaje choinki przed Boym Narodzeniem. Co
roku rozpoczyna ich sprzeda pierwszego i koczy dwudziestego czwartego grudnia. Firma
dysponuje jednym samochodem przeznaczonym do transportu choinek. Samochd wieczorem
wyjeda z plantacji i dojeda na plac sprzeday rano przed jej rozpoczciem. W cigu dnia
wraca na plantacj.
Zaobserwowano, e ze wzgldu na zainteresowanie klientw firma moe sprzeda danego
dnia liczb choinek wyznaczon wg wzoru:
= ( 2 + 40 + 50)/10,
gdzie d oznacza numer dnia sprzeday (1 grudnia jest 1. dniem sprzeday, a 24 grudnia jest
24. dniem sprzeday). Jeli na placu jest co najmniej L choinek, to L choinek zostaje
sprzedanych. Gdy na placu znajduje si mniej drzewek, ni klienci gotowi byliby kupi
(mniej ni L), to cz klientw wybieraa inne punkty sprzeday, gdzie wybr drzewek by
wikszy. W takim dniu firmie udaje si maksymalnie sprzeda zaokrglone w d do liczby
cakowitej 90% choinek, ktre znalazy si na placu rano po przyjciu dostawy. Firma
zaplanowaa dostawy po 50 drzewek w nastpujcych dniach: pierwszego grudnia, czwartego
grudnia oraz nastpnie w kady dzie o numerze parzystym a do 24 grudnia wcznie.
Wykorzystujc dostpne narzdzia informatyczne, rozwi nastpujce zadania. Do oceny
oddaj dokument wyniki.txt z odpowiedziami do poszczeglnych zada oraz plik
z przeprowadzonymi obliczeniami.

88.1.
Ile choinek zostanie w sumie sprzedanych w caym okresie sprzeday i ile choinek pozostanie
na placu wieczorem 24 grudnia?
172 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

88.2.
Wykonaj wykres kolumnowy przedstawiajcy dla kadego dnia sprzeday liczb choinek
ktre znajdoway si tego dnia rano na placu (ju po dostawie), z podziaem na sprzedane
pniej tego dnia i pozostae na placu wieczorem (do sprzeday w kolejnych dniach).

88.3.
Ktrego dnia firma po raz pierwszy sprzeda mniej choinek, ni wynikaoby to
z zainteresowania klientw (mniej ni L)?

88.4.
Zaproponuj przykadowy harmonogram dostaw po 50 drzewek jednego dnia, zgodnie
z ktrym firma sprzeda moliwie najwicej choinek i jednoczenie ostatniego dnia na placu
pozostanie mniej ni 50 choinek. Podaj liczb dostaw, dni tych dostaw oraz liczb choinek
sprzedanych w caym okresie sprzeday.

88.5.
Podaj maksymaln liczb choinek, jaka powinna by przy opisanym popycie codziennie
(czyli 24 razy) dostarczana, aby 24 grudnia wieczorem na placu zostao mniej choinek ni
byo ich przywiezionych. Podaj liczb choinek, ktre pozostan na placu 24 grudnia
wieczorem.

2.3. Przetwarzanie i tworzenie informacji

Zadanie 89.
Wizka zada Punkty rekrutacyjne
W postpowaniu rekrutacyjnym przy przyjmowaniu do pierwszej klasy szkoy
ponadgimnazjalnej bierze si pod uwag wyniki egzaminu gimnazjalnego, oceny ze
wiadectwa ukoczenia gimnazjum oraz dodatkowe osignicia ucznia. Maksymalnie mona
uzyska 100 punktw, w tym:
1) 50 punktw za wyniki egzaminu gimnazjalnego, ktre oblicza si zgodnie
z poniszymi zasadami:
a) liczba punktw rekrutacyjnych za kady wynik procentowy z zakresu: jzyka
polskiego, historii i wiedzy o spoeczestwie, matematyki, przedmiotw
przyrodniczych, jzyka obcego jest rwna liczbie okrelajcej wynik procentowy,
uzyskany z danego zakresu, podzielonej przez dziesi.
b) liczba punktw rekrutacyjnych za wyniki egzaminu gimnazjalnego jest rwna
sumie punktw rekrutacyjnych uzyskanych z wymienionych wyej zakresw
egzaminu.
Przykad:
Ucze uzyska nastpujce wyniki z egzaminu gimnazjalnego
z poszczeglnych zakresw:
jzyk polski 74%
historia i wiedza o spoeczestwie 88%
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
173
matematyka 60%
przedmioty przyrodnicze 71%
jzyk obcy 79%
Liczba punktw rekrutacyjnych wynosi: 74 : 10 + 88 : 10 + 60 : 10 + 71 : 10 +
79 : 10 = 7,4 + 8,8 + 6 +7,1 + 7,9 = 37,2
2) 40 punktw za oceny z jzyka polskiego, matematyki, biologii i geografii otrzymane
na wiadectwie ukoczenia gimnazjum, przyznawanych zgodnie z przeliczeniem
przedstawionym w tabeli:

liczba punktw ocena

0 dopuszczajca

4 dostateczna

6 dobra

8 bardzo dobra

10 celujca

3) 10 punktw za dodatkowe osignicia, w tym:


a) 2 punkty za ukoczenie gimnazjum ze wzorow (6) ocen z zachowania,
b) maksymalnie 8 punktw za szczeglne osignicia ucznia wymienione na
wiadectwie ukoczenia gimnazjum.
W pliku punkty_rekrutacyjne.txt znajduje si 514 wierszy z danymi uczniw,
potrzebnymi do przeprowadzenia rekrutacji. Pierwszy wiersz pliku jest wierszem
nagwkowym. Kolejne wiersze skadaj si z nastpujcych informacji: nazwisko ucznia
(Nazwisko), imi ucznia (Imie), liczba punktw za osignicia (Osiagniecia), ocena z
zachowania (Zachowanie), oceny na wiadectwie ucznia z czterech przedmiotw branych
pod uwag przy rekrutacji: jzyka polskiego (JP), matematyki (Mat), biologii (Biol) i
geografii (Geog), oraz wyniki egzaminw gimnazjalnych z zakresw: jzyka polskiego
(GHP), historii i wiedzy o spoeczestwie (GHH), matematyki (GMM), przedmiotw
przyrodniczych (GMP), jzyka obcego (GJP). Wszystkie dane liczbowe s prezentowane w
postaci liczb cakowitych nieujemnych, przy czym oceny z zachowania i z przedmiotw
mieszcz si w przedziale
<2, 6>, wyniki za osignicia w przedziale <0, 10>, za wyniki procentowe egzaminw
gimnazjalnych w przedziale <0, 100>. Dane w wierszach pliku rozdzielone s rednikami.

Przykad fragmentu danych


Nazwisko;Imie;Osiagniecia;Zachowanie;JP;Mat;Biol;Geog;GHP;GHH;GMM;GMP;GJP
Swistek;Damian;0;4;4;5;6;6;62;13;26;67;62
Kowalik;Mateusz;7;4;4;2;5;6;90;8;21;52;33

Przykad obliczenia liczby punktw rekrutacyjnych


Swistek Damian liczba punktw rekrutacyjnych = 0+0+(6+8+10+10)+(62+13+26+67+62)/10=57
Kowalik Mateusz liczba punktw rekrutacyjnych = 7+0+(6+0+8+10)+ (90+8+21+52+33)/10=51,4
174 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Korzystajc z dostpnych narzdzi informatycznych, rozwi ponisze zadania. Odpowiedzi


zapisz do pliku wyniki_punkty.txt (z wyjtkiem wykresu do zadania 4), a kad
odpowied poprzed cyfr oznaczajc to zadanie.

89.1.
Utwrz zestawienie uczniw, ktrzy speniaj jednoczenie nastpujce warunki: maj 0
punktw za osignicia, co najmniej bardzo dobr ocen (5) z zachowania oraz redni
z przedmiotw punktowanych w rekrutacji wiksz od 4. Zestawienie uporzdkuj
alfabetycznie wedug nazwisk. Podaj imiona i nazwiska pierwszych 5 osb.

89.2.
Oblicz zgodnie z zasadami opisanymi w treci zadania, ile punktw rekrutacyjnych uzyska
kady z uczniw. Podaj liczb punktw rekrutacyjnych wystpujc najczciej oraz list
nazwisk i imion uczniw, ktrzy uzyskali t liczb punktw.

89.3.
Utwrz zestawienie zawierajce imiona i nazwiska uczniw, ktrzy uzyskali 100% punktw
z co najmniej 3 zakresw egzaminu gimnazjalnego.

89.4.
Utwrz zestawienie zawierajce rozkad ocen dla kadego punktowanego w rekrutacji
przedmiotu (przykad schematu zestawienia poniej). Dla otrzymanego zestawienia wykonaj
wykres procentowy skumulowany. Zadbaj o czytelny opis wykresu.
Liczba ocen Jzyk polski Matematyka Biologia Geografia
dopuszczajcych
dostatecznych
dobrych
bardzo dobrych
celujcych

89.5.
Podaj liczb uczniw, ktrzy uzyskali cznie wicej punktw rekrutacyjnych za oceny
z przedmiotw punktowanych i dodatkowe osignicia (w tym ocen z zachowania) ni za
wyniki egzaminu gimnazjalnego.

Komentarz do zadania
Po wczytaniu danych z pliku do arkusza kalkulacyjnego s one umieszczone w nastpujcych
kolumnach:

89.1.
W zadaniu naley wyszuka uczniw, ktrzy speniaj wszystkie trzy warunki:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
175
0 punktw za osignicia,
co najmniej bardzo dobra ocena (5) z zachowania,
rednia z przedmiotw punktowanych w rekrutacji wiksza od 4.
W tym celu konstruujemy formu warunkow, ktrej wartoci jest 1, gdy jest speniona
koniunkcja podanych warunkw:
=JEELI(ORAZ(C2=0;ORAZ(D2>=5;REDNIA(E2:H2)>4));1;0)
Nastpnie stosujemy filtr, aby wybra wiersze, w ktrych powysza formua przyjmuje
warto 1, i otrzyman list sortujemy alfabetycznie wedug nazwisk.

Jako odpowied kopiujemy imiona i nazwiska piciu pierwszych uczniw.

89.2.
Aby obliczy sum punktw rekrutacyjnych, obliczamy kolejno punkty za:
wyniki egzaminw gimnazjalnych,
przedmioty punktowane,
dodatkowe osignicia.
Do obliczenia punktw za wyniki egzaminw gimnazjalnych posuy formua:
=SUMA(I2:M2)/10
Punkty za przedmioty punktowane obliczamy, stosujc pomocnicz tabel z liczb punktw
za poszczeglne oceny, umieszczon w arkuszu o nazwie 'punkty za oceny':
176 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Dla kadego przedmiotu utworzymy formu, ktra wyszuka liczb punktw odpowiadajc
uzyskanej ocenie. Dla jzyka polskiego jest to formua:
=WYSZUKAJ.PIONOWO(E2; 'punkty za oceny'! $A$2:$B$6;2;FASZ)
Nastpnie sumujemy wartoci tych formu dla wszystkich czterech punktowanych
przedmiotw.
Punkty za dodatkowe osignicia s obliczane za pomoc formuy, w ktrej do liczby
punktw za osignicia, podanych w pliku z danymi, dodajemy 2 punkty, gdy ocena z
zachowania jest wzorowa (rwna 6):
=C2+JEELI(D2=6;2;0)
Po obliczeniu sumy punktw rekrutacyjnych znajdujemy najczciej wystpujc warto za
pomoc funkcji WYST.NAJCZCIEJ.WART. Nastpnie stosujemy filtr do wybrania
uczniw, ktrzy tak liczb punktw rekrutacyjnych (wyznaczon w sposb opisany w
poprzednim zdaniu) uzyskali.

89.3.
Dla kadego ucznia zliczamy, z ilu egzaminw uzyska on wynik 100. Suy do tego formua:
=LICZ.JEELI(I2:M2;"=100")
Nastpnie stosujemy filtr do wybrania uczniw, ktrzy z co najmniej trzech egzaminw
uzyskali wynik 100.

89.4.
Rozwizaniem zadania jest zestawienie o poniszej zawartoci:
Liczba ocen Jzyk polski Matematyka Biologia Geografia
dopuszczajcych 95 110 101 112
dostatecznych 96 106 105 97
dobrych 101 100 94 96
bardzo dobrych 108 97 110 97
celujcych 114 101 104 112
Aby uzyska powysze zestawienie, stosujemy funkcj LICZ.JEELI. Formu
=LICZ.JEELI(E$2:E$515;"=2") wpisan dla jzyka polskiego (JP) i oceny
dopuszczajcej wystarczy skopiowa do kolejnych kolumn dotyczcych matematyki, biologii
i geografii. Naley zwrci uwag na stosowanie adresowania mieszanego. W podanej
formule:
nie blokujemy adresu kolumny, aby przy kopiowaniu zmieni si adres kolumny,
w ktrej wyszukujemy oceny (zmiana przedmiotu);
blokujemy tylko adres wiersza, aby po skopiowaniu formuy do nastpnych wierszy
zestawienia nie uleg zmianie zakres wierszy, do ktrych si odwoujemy przy
wyszukiwaniu ocen.
W kolejnych wierszach zestawienia zmieniamy w formule tylko wyszukiwan warto oceny.
Dla tak przygotowanego zestawienia tworzymy procentowy wykres skumulowany.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
177

Liczba ocen z przedmiotw


punktowanych
celujcych 114 101 104 112

bardzo dobrych 108 97 110 97 Polski

dobrych 101 100 94 96 Matematyka


Biologia
dostatecznych 96 106 105 97
Geografia
dopuszczajcych 95 110 101 112

0% 20% 40% 60% 80% 100%

Wykres ten dla kadego typu oceny zawiera supek tej samej wielkoci, reprezentujcy liczb
takich ocen z kadego przedmiotu. Z wykresu tego moemy na przykad odczyta, e ocen
bardzo dobrych z jzyka polskiego jest 108 i stanowi to ponad 20% ocen bardzo dobrych
z wszystkich przedmiotw punktowanych.

89.5.
W zadaniu naley wyszuka uczniw, ktrzy uzyskali wicej punktw rekrutacyjnych za
oceny z przedmiotw punktowanych i dodatkowe osignicia (w tym ocen z zachowania)
ni za wyniki egzaminw gimnazjalnych. Jeli w zadaniu 2 rozbilimy obliczanie liczby
punktw rekrutacyjnych, sumujc trzy skadniki:
wyniki egzaminw gimnazjalnych,
przedmioty punktowane,
dodatkowe osignicia,
to teraz wystarczy porwna sum dwch ostatnich skadnikw z pierwszym. Posuy do tego
formua warunkowa =JEELI(zad.2!C2+zad.2!D2>zad.2!E2;1;0), gdzie w
arkuszu o nazwie zad.2, w kolumnach C, D, E, s wyliczone wartoci opisanych wyej
skadnikw. Warto tej formuy jest rwna 1, gdy warunek podany w zadaniu jest speniony.
Dlatego wystarczy zsumowa wartoci tej formuy dla wszystkich uczniw, aby uzyska
liczb uczniw, ktrzy speniaj warunek podany w zadaniu.

Rozwizanie

89.1.
Bialaszewski Wiktor
Cicherski Szymon
Florek Sandra
Kaminski Mikolaj
Krol Malgorzata
178 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

89.2.
Najczciej wystpujca liczba punktw 55,6
Majtas Lucja
Broszkow Zofia
Sokolnicka Inga
Sochacka Inka
Murczynska Laura
Odya Kacper

89.3.
Grzelecki Oliwier
Wojcicki Aleks
Rembiewski Jakub
Przytula Jakub

89.4.
Liczba ocen Jzyk Polski Matematyka Biologia Geografia
dopuszczajcych 95 110 101 112
dostatecznych 96 106 105 97
dobrych 101 100 94 96
bardzo dobrych 108 97 110 97
celujcych 114 101 104 112

Liczba ocen z przedmiotw


punktowanych
celujcych 114 101 104 112

bardzo dobrych 108 97 110 97 Jzyk polski

dobrych 101 100 94 96 Matematyka


Biologia
dostatecznych 96 106 105 97
Geografia
dopuszczajcych 95 110 101 112

0% 20% 40% 60% 80% 100%

89.5.
300 uczniw.

Zadanie 90.
Wizka zada Akademiki
W pliku studenci.txt zamieszczono list 1616 studentw z 10 rnych uczelni, ktrzy
staraj si o miejsce w akademikach miasteczka studenckiego Mordor. W osobnych
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
179
wierszach zostay zapisane informacje o kadym studencie: identyfikator studenta
(Id_studenta), imi (Imie), nazwisko (Nazwisko), nazwa uczelni, na ktrej on studiuje
(Uczelnia), miejsce zamieszkania (Miejsce_zam), rok studiw (Rok_studiow) oraz
dochd przypadajcy na jedn osob w rodzinie wyraony w denarach
(Dochod_na_osobe). Pierwszy wiersz pliku jest wierszem nagwkowym, a dane w
wierszu s rozdzielone znakiem rednika.

Przykad
Id_studenta;Imie;Nazwisko;Uczelnia;Miejsce_zam;Rok_studiow;Dochod_na_osobe
1;Jadwiga;Baranowska;Uniwersytet Krolewski;Krosno;I;2382
2;Zofia;Chorzowska;Akademia Sztuk Pieknych;Pulawy;II;1549
3;Katarzyna;Bilska;Uniwersytet Krolewski;Lubliniec;I;3037

Korzystajc z danych umieszczonych w pliku studenci.txt, wykonaj podane niej


zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku wyniki.txt (poza
wykresem do zadania 88.4), a kad z nich poprzed numerem zadania.

90.1.
Podaj nazw miejscowoci (miejsce zamieszkania), z ktrej pochodzi najwicej studentw
starajcych si o akademiki, oraz liczb studentw z tej miejscowoci. Ponadto podaj nazw
uczelni, na ktrej studiuje najwicej studentw z tej miejscowoci.

90.2.
W akademikach jest w sumie 1000 miejsc. Pocztkowo Rada Mordoru ustalia, e miejsce
w akademiku otrzymaj studenci, u ktrych w rodzinach dochd na jedn osob nie
przekracza 2000 denarw. Podaj, ile miejsc pozostaoby wolnych, gdyby obowizywao takie
kryterium przydziau miejsc w akademikach.
Rada Mordoru postanowia obsadzi wszystkie miejsca w akademikach. Podaj, jak naley
zmieni prg kryterium dochodowego, aby dokadnie 1000 miejsc zostao wykorzystanych
przez studentw. Prg musi by liczb cakowit. Taki prg istnieje dla podanych danych.

90.3.
Wykonaj zestawienie zawierajce nazw uczelni oraz redni dochd na osob w rodzinie
studentw tej uczelni, ktrzy staraj si o pokj w Mordorze. redni dochd podaj z
dokadnoci do dwch miejsc po przecinku.
Do wykonanego zestawienia utwrz wykres kolumnowy. Aby uwypukli rnic w rednim
dochodzie na osob, przeskaluj o OY tak, aby w pocztku ukadu wsprzdnych znajdowaa
si warto 1800 denarw.

90.4.
Dla kadej uczelni podaj liczb, starajcych si o miejsce w Mordorze, studentw
studiujcych na I, II, III, IV i V roku studiw.

90.5.
Wrd studentw s rodzestwa. Rozpozna je mona po wsplnym nazwisku (z
dokadnoci do ostatniej litery, np. Nowicka i Nowicki mog by rodzestwem), takim
samym miejscu zamieszkania i takim samym dochodzie na osob. Wypisz wszystkie
180 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

rodzestwa wrd podanych studentw. W zestawieniu podaj: imi, nazwisko, miejsce


zamieszkania i dochd na osob kadego rodzestwa.

Komentarz do zadania

90.1.
Aby wyszuka nazw miejscowoci, z ktrej pochodzi najwicej studentw starajcych si
o akademiki, mona skorzysta z sum czciowych lub dla kadej miejscowoci policzy
liczb jej wystpie funkcj LICZ.JEELI. Poniej przedstawiamy rozwizanie drugim
proponowanym sposobem: wszystkie miejscowoci kopiujemy do kolumny K, a nastpnie
usuwamy z nich duplikaty, dalej funkcj LICZ.JEELI liczymy studentw z danych
miejscowoci i zestawienie porzdkujemy malejco wedug liczby studentw.

Aby poda nazw uczelni najpopularniejszej wrd studentw z Katowic, odfiltrowujemy


rekordy ze studentami z Katowic i dla kadej uczelni obliczamy liczb studentw, a nastpnie
sprawdzamy, dla jakiej uczelni ta liczba jest najwiksza.

90.2.
W pierwszej czci zadania sprawdzamy, ile osb ma dochd niszy ni 2000 denarw,
korzystajc z funkcji LICZ.JEELI, i otrzyman liczb odejmujemy od liczby miejsc w
akademikach.
Aby zasiedli wszystkie miejsca w akademikach, naley zmieni kryterium dochodowe
(zwikszy minimalny dochd). Ustalamy zaleno pomidzy komrkami, w jednej z nich
(w przykadowym rozwizaniu to J5) zapisujemy minimalny dochd, a w drugiej funkcj
LICZ.JEELI, gdzie jako kryterium zostanie uwzgldniona warto dochodu z J5.
Modyfikujc komrk J5, dymy do uzyskania wartoci 1000 w komrce docelowej (w
przykadowym rozwizaniu to J6). Mona skorzysta z narzdzia Analiza warunkowa | Szukaj
wyniku.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
181

90.3.
Aby wykona zestawienie zawierajce nazw uczelni oraz redni dochd na osob studentw
tej uczelni, skorzystamy z narzdzia sumy czciowe. Naley pamita o wczeniejszym
posortowaniu danych wedug uczelni.

Po otrzymaniu wynikw warto jeszcze sprawdzi, czy redni dochd podany zosta z
dokadnoci do dwch miejsc po przecinku.
Po utworzeniu wykresu kolumnowego, aby uwypukli rnic w rednim dochodzie na
osob, przeskalowujemy o OY tak, aby w pocztku ukadu wsprzdnych znajdowaa si
warto 1800 denarw.
182 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

90.4.
W zadaniu 4 naley dla kadej uczelni poda liczb studentw studiujcych na I, II, III, IV
i V roku studiw. Utworzymy tabel dwuwymiarow, korzystajc z narzdzia tabela
przestawna.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
183

90.5.
Aby wyszuka rodzestwa, ktre rozpoznajemy po takim samym nazwisku, takim samym
miejscu zamieszkania i takim samym dochodzie na osob, zbudujemy kolumn klucz,
zawierajc zczenie kolumn: nazwiska bez ostatniej litery, miejsca zamieszkania i dochd:
=ZCZ.TEKSTY(FRAGMENT.TEKSTU(C106;1;D(C106)-1);E106;G106)
Nastpnie wyznaczymy rodzestwa przez warunek LICZ.JEELI()>1 na tej kolumnie.

Z uzyskanego zestawienia usuwamy niepotrzebne informacje, a dla zaspokojenia wasnego


poczucia estetyki moemy zestawienie posortowa alfabetycznie wedug nazwisk.
184 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 91.
Wizka zada Numery PESEL
Numer PESEL to 11-cyfrowy kod jednoznacznie identyfikujcy okrelon osob fizyczn.
Dla wszystkich urodzonych w latach 1900-1999 skonstruowany zosta w nastpujcy sposb:
cyfry na pozycjach od 1 do 6 to data urodzenia (w kolejnoci: ostatnie dwie cyfry
roku, numer miesica w postaci dwch cyfr oraz numer dnia w postaci dwch cyfr),
cyfry na pozycjach od 7 do 9 to liczba porzdkowa,
cyfra na pozycji 10 oznacza pe (cyfra parzysta dla kobiet, nieparzysta dla
mczyzn),
cyfra z pozycji 11 to cyfra kontrolna.
Dla osb urodzonych w roku 2000 oraz w pniejszych latach do numeru miesica dodana
jest liczba 20. W ten sposb w numerze PESEL odrniane s od siebie dwa stulecia.
W pliku pesele.txt znajduj si 494 wiersze z danymi osb zarejestrowanymi w systemie
ewidencji ludnoci. Pierwszy wiersz pliku jest wierszem nagwkowym. Kolejne wiersze
skadaj si z nastpujcych informacji: numer PESEL (PESEL), nazwisko (Nazwisko)
oraz imi (Imie).2 Dane w wierszach pliku rozdzielone s rednikami.

Przykad
PESEL;Nazwisko;Imie
08242501475;Micun;Krzysztof
Korzystajc z dostpnych narzdzi informatycznych, podaj odpowiedzi do poniszych zada.
Odpowiedzi zapisz do pliku pesele_wyniki.txt (z wyjtkiem wykresu do zadania 4),
a kad odpowied poprzed cyfr oznaczajc to zadanie.

91.1.
Wypisz imiona kobiet wystpujce w pliku, ktre nie kocz si na liter a. Aby ustali,
ktre wiersze w pliku zawieraj dane kobiet, skorzystaj z cyfry numeru PESEL oznaczajcej
pe osoby.

91.2.
Wrd osb, ktrych dane zostay zapisane w pliku, s takie, ktre maj to samo imi i
nazwisko. Wska te osoby, podajc ich numery PESEL, imiona i nazwiska.

91.3.
Wypisz imiona i nazwiska osb, ktrych liczba porzdkowa w numerze PESEL (zapisana na
pozycjach 7-9) jest odpowiednio najwiksza i najmniejsza.

91.4.
Utwrz zestawienie zawierajce nazwy wszystkich miesicy roku oraz liczb osb
urodzonych w poszczeglnych miesicach. Dla otrzymanego zestawienia wykonaj wykres
kolumnowy. Zadbaj o czytelny opis wykresu.

2
Z uwagi na prawn ochron danych osobowych, imiona i nazwiska w podanym pliku s fikcyjne.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
185
91.5.
Dla kadej osoby utwrz jej identyfikator zoony z pierwszej litery imienia, trzech
pierwszych liter nazwiska oraz ostatniej cyfry numeru PESEL. Podaj w porzdku
alfabetycznym identyfikatory, ktre wystpi wicej ni jeden raz.

Zadanie 92.
Wizka zada Olimpiady
W pliku o nazwie dane_medale.txt znajduj si informacje o liczbie medali zdobytych
przez poszczeglne pastwa uczestniczce w letnich i zimowych igrzyskach olimpijskich
w latach 1896 2014. W kadym wierszu znajduj si nastpujce informacje, oddzielone
pojedynczymi znakami tabulacji: nazwa pastwa (Panstwo), kontynent (Kontynent),
liczba olimpiad letnich, w ktrych dane pastwo brao udzia (OL_letnie), liczba
poszczeglnych medali zdobytych w olimpiadach letnich (Zloty; Srebrny; Brazowy),
liczba olimpiad zimowych, w ktrych brao udzia pastwo (OL_zimowe), liczba
poszczeglnych medali zdobytych w olimpiadach zimowych (Zloty; Srebrny;
Brazowy). Pierwszy wiersz jest wierszem nagwkowym.

Przykad
Panstwo Kontynent OL_letnie Zloty Srebrny Brazowy OL_zimowe Zloty Srebrny Brazowy
Afganistan Azja 13 0 0 2 0 0 0 0
Algieria Afryka 12 5 2 8 3 0 0 0

Dane opracowane na podstawie:


http://pl.wikipedia.org/wiki/Klasyfikacja_medalowa_wszech_czas%C3%B3w_igrzysk_olimpijskich#cite_note-1

Wykorzystujc dane zawarte w tym pliku i dostpne narzdzia informatyczne, wykonaj


ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki_olimpiady.txt (z wyjtkiem wykresu do zadania 2). Odpowied do kadego
zadania poprzed numerem oznaczajcym to zadanie. Wykres do zadania 2 umie w pliku
wykres_olimpiady.xxx, gdzie xxx oznacza rozszerzenie odpowiednie dla formatu
pliku.

92.1.
Podaj liczb pastw, z ktrych kade spenia ponisze warunki:
brao udzia w co najmniej jednej olimpiadzie letniej,
brao udzia w co najmniej jednej olimpiadzie zimowej,
zdobyo co najmniej 1 medal na olimpiadadch letnich, a nie zdobyo adnego medalu
na olimpiadach zimowych.
Podaj czn liczb medali zdobytych na olimpiadach letnich przez pastwa speniajce
podane warunki.

92.2.
Przyjmijmy, e kademu kontynentowi przydzielamy za dan olimpiad tyle punktw, ile
pastw z tego kontynentu w niej wystpio. Utwrz zestawienie zawierajce dla kadego
kontynentu czn liczb punktw zz olimpiady letnie oraz czn liczb punktw za
olimpiady zimowe. Dla otrzymanego zestawienia sporzd wykres procentowy,
skumulowany supkowy. Pamitaj o prawidowym i czytelnym opisie wykresu.
186 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

92.3.
Podaj nazwy pastw, ktry zdobyy na wszystkich olimpiadach (letnich i zimowych) wicej
medali zotych ni (cznie) medali srebrnych i brzowych.

92.4.
Dla kadego kontynentu podaj nazw pastwa z tego kontynentu, ktre zdobyo cznie
najwiksz liczb medali na wszystkich olimpiadach, oraz liczb tych medali.

92.5.
Kraj nazywamy letnim, jeeli dla kadego typu medali (zoty, srebrny, brzowy) kraj ten
zdoby wicej medali tego typu w olimpiadach letnich ni w olimpiadach zimowych.
Podobnie kraj nazywamy zimowym, jeeli dla kadego typu medali zdoby on wicej medali
tego typu w olimpiadach zimowych ni w olimpiadach letnich. Podaj, ile jest w Europie
krajw letnich i ile jest krajw zimowych.

Zadanie 93.
Wizka zada Podre
Warszawska firma komputerowa Sofcik ma swoich klientw w 13 miastach i wysya do nich
swoich 101 pracownikw. W pliku podre.txt zapisane zostay wszystkie wyjazdy
pracownikw firmy do klientw w 2014 roku.
Pierwszy wiersz pliku jest wierszem nagwkowym. W kadym wierszu zapisano: imi
(Imie) i nazwisko pracownika (Nazwisko), miasto, do ktrego pracownik by delegowany
(Miasto), dat wyjazdu (D_wyj) i dat powrotu z delegacji (D_powr) oraz koszt wyjazdu
(Koszt_wyj). Daty w pliku s podawane w formacie: RRRR-MM-DD.
Dane w wierszach pliku rozdzielone s pojedynczymi znakami tabulacji.

Przykad
Imie Nazwisko Miasto D_wyj D_powr Koszt_wyj
Karolina Arska Malbork 2014-01-02 2014-01-03 891,00
Justyna Kolska Siedlce 2014-01-02 2014-01-03 295,40
Dorota Morska Radom 2014-01-02 2014-01-03 302,50
Wykorzystujc dane zawarte w tym pliku i dostpne narzdzia informatyczne, rozwi
ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki_podroze.txt (z wyjtkiem wykresu do zadania 4). Odpowied do kadego
zadania poprzed numerem oznaczajcym to zadanie. Wykres do zadania 4 umie w pliku
wykres_podroze.xxx, gdzie xxx oznacza rozszerzenie odpowiednie dla formatu pliku.

93.1.
Podaj imi i nazwisko osoby, ktra w cigu caego roku bya tylko raz w delegacji.

93.2.
Utwrz zestawienie zawierajce nazwiska osb, ktre w sumie byy w delegacji wicej ni
40 dni. Dla kadej osoby podaj liczb dni, jak spdzia ona w delegacji.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
187
93.3.
Na koszt delegacji skada si koszt wyjazdu oraz koszt diety za kady dzie podry.
Dieta obliczana jest zgodnie z nastpujc zasad: jeeli pracownikowi nie zapewniono
posiku, to dieta wynosi 30 z za kady dzie, jeeli za pracownik jad w hotelu niadanie (co
zdarza si zawsze po noclegu w hotelu), to dieta wynosi 24 z.

Przykad
Pracownik by w delegacji 4 dni, koszt jego diety wynosi 30 z (za pierwszy dzie)+ 3 24 z
(za 3 dni ze niadaniem w hotelu), razem 102 z.
Utwrz zestawienie zawierajce informacje o sumie kosztw (koszt wyjazdw), jakie firma
poniosa na delegacje pracownikw do kadego z 13 miast. Zestawienie posortuj rosnco ze
wzgldu na kwot kosztw.

93.4.
Utwrz zestawienie zawierajce czn liczb wyjazdw pracownikw w delegacje
w poszczeglnych miesicach. Sporzd wykres kolumnowy przedstawiajcy otrzymane
zestawienie. Pamitaj o prawidowym i czytelnym opisie wykresu.
Uwaga: dla kadego miesica we pod uwag tylko te wyjazdy w delegacje, ktrych data
wyjazdu (D_wyj) znajduje si w tym miesicu.

93.5.
Podaj redni liczb noclegw pracownikw we wszystkich delegacjach oraz redni liczb
noclegw pracownikw przebywajcych w delegacjach, ktre byy co najmniej 2-dniowe.
Wyniki podaj w zaokrgleniu do dwch miejsc po przecinku.

Zadanie 94.
Wizka zada Centyle
W celu uaktualnienia siatek centylowych wzrostu dzieci wykonywano regularne pomiary
wzrostu 2 262 wylosowanych dzieci. W pliku wzrost.txt zapisano w kolejnych
kolumnach, rozdzielonych rednikiem, identyfikator dziecka, jego pe, dugo ciaa dziecka
w dniu narodzin, a nastpnie wzrost po ukoczeniu kadego kolejnego roku ycia. Dugo
i wzrost mierzymy w centymetrach. Pierwszy wiersz jest wierszem nagwkowym.

Przykad
ID_dz;plec;dl_ur;1rok;2lata;3lata;4lata;5lat;6lat;7lat;8lat;9lat;10lat;11lat;12lat;
13lat;14lat;15lat;16lat;17lat;18lat;19lat
1;d;54;72;88;97;105;112;118;124;130;136;142;149;155;161;164;166;167;167;168;168
2;d;46;64;82;91;99;106;111;117;123;128;134;141;146;151;154;156;156;156;157;157
3;ch;54;75;88;97;104;111;117;123;129;134;139;145;151;158;165;171;175;177;178;179

Wykorzystujc dane zawarte w pliku wzrost.txt i dostpne narzdzia informatyczne,


rozwi ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w jednym pliku
o nazwie wyniki (z wyjtkiem wykresu do zadania 6). Odpowied do kadego zadania
poprzed numerem oznaczajcym to zadanie. Wykres do zadania 6 umie w pliku
wykres.xxx, gdzie xxx oznacza rozszerzenie odpowiednie dla formatu pliku z Twoim
rozwizaniem.
188 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

94.1.
Znajd dziecko, ktre od urodzenia do ukoczenia 19 roku ycia osigno najwikszy
przyrost wysokoci ciaa, wyraony procentowo w stosunku do dugoci ciaa w dniu urodzin.
Podaj ten przyrost oraz identyfikator dziecka, ktre uzyskao ten przyrost.
94.2.
Podaj , w ktrym roku ycia (od 0 do 19 lat) rednia arytmetyczna wzrostu chopcw jest
mniejsza o co najmniej 1 cm od redniej arytmetycznej wzrostu dziewczt. Dzieci w dniu
urodzin s w wieku 0.
94.3.
Podaj liczb dzieci, ktre przestay rosn po ukoczeniu 15 lat.
94.4.
Przyrost w n-tym roku ycia to rnica midzy wzrostem po ukoczeniu n lat a wzrostem po
ukoczeniu n 1 lat.
Przyrost wysokoci ciaa z kadym kolejnym rokiem ycia dziecka maleje, jednak tu przed
okresem dojrzewania zmienia trend i zaczyna si zwiksza. Oblicz redni przyrost
wysokoci ciaa w kolejnych latach, dla kadej pci osobno. Na tej podstawie podaj, od
ktrego roku ycia dziewczt i od ktrego roku ycia chopcw przyrost wysokoci ciaa
zaczyna si zwiksza.
94.5.
Centylem rzdu p (p-tym centylem) wzrostu dzieci nazywamy taki najmniejszy wzrost, e co
najmniej p% dzieci ma wzrost mniejszy lub rwny tej liczbie oraz co najmniej 100% p%
dzieci ma wzrost wikszy lub rwny tej liczbie, przy czym liczba p jest liczb cakowit
i p(0; 100%).
Na przykad 95. centyl wzrostu chopcw to taki wzrost, e co najmniej 95% chopcw ma
wzrost mniejszy lub rwny ni podana warto, a co najmniej 5% ma wzrost wikszy lub
rwny podanej wartoci.
Jeeli liczba dzieci jest parzysta i granica tych dwch grup wypada pomidzy dwiema
osobami o rnym wzrocie naley poda redni tych dwch wartoci.
Dla chopcw w wieku 1 roku, 10 lat i 19 lat oblicz 5. centyl oraz 95. centyl.
94.6.
Dla kadego badanego wieku chopcw (od 0 do 19) podaj median wzrostu.
Dla wykonanego zestawienia wykonaj wykres, ktrego pionowa o bdzie oznacza wzrost,
a pozioma wiek. Pamitaj o czytelnym opisie wykresu.

Zadanie 95.
Wizka zada Gieda Papierw Wartociowych
W pliku gpw.txt znajduj si dane dotyczce notowa akcji na Giedzie Papierw
Wartociowych w Warszawie w dniach: 21, 22 i 23 stycznia 2015.
W pierwszym wierszu pliku umieszczono nagwki kolumn. Kady nastpny wiersz pliku
zawiera 7 danych dotyczcych jednej spki notowanych w jednej sesji: dat notowa
(data), nazw spki (nazwa), jej identyfikator (ISIN), kurs jednej akcji na koniec dnia
wyraony w z (kurs_zamkniecia), liczb akcji spki, ktre zmieniy waciciela w
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
189
danym dniu (wolumen), czn warto transakcji wszystkich akcji w danym dniu wyraon
w z (obrot) oraz liczb akcji przyjt do obliczenia indeksu WIG (pakiet_wig). Jeli
spka nie wchodzi w skad portfela WIG, jej pole pakiet_wig ma warto 0. Dane w
wierszach oddzielone s znakami tabulacji.

Przykad
data nazwa ISIN kurs_zamkniecia wolumen obrot pakiet_wig
2015-01-21 ALTA PLTRNSU00013 2,1 4664 9710 7353000
2015-01-22 ELZAB PLELZAB00010 15,3 16599 249530 2716000
2015-01-23 PLAZA NL0000686772 0,19 101576 19300 0

Dane pochodz ze strony http://www.gpw.pl

Rozwi ponisze zadania, wykorzystujc dostpne narzdzia informatyczne. Wyniki umie


w pliku tekstowym o nazwie gpw_wyniki.txt. Do oceny oddaj plik tekstowy
zawierajcy wyniki oraz plik zawierajcy realizacj komputerow rozwizania.

95.1
redni kurs akcji spki w danym dniu obliczany jest jako iloraz obrot/wolumen.
W przypadku gdy obrt i wolumen s rwne 0 (czyli adna akcja tej spki nie zmienia
waciciela w cigu dnia), redni kurs akcji spki jest rwny kursowi zamknicia sesji.
Podaj nazwy trzech spek, ktre w dniu 2015-01-21 osigny najwysze rednie kursy
akcji, podaj rwnie wartoci tych kursw. Zapisz wyniki z dokadnoci do 2 cyfr po
przecinku.

95.2.
Dzienna zmiana procentowa kursu spki jest obliczana na podstawie kursw zamknicia
z dwch kolejnych dni:

=( 1) 100%.

Podaj nazw spki, ktra w dniu 2015-01-23 uzyskaa najwiksz dzienn zmian kursu.
Podaj wielko tej zmiany w procentach, w zaokrgleniu do dwch cyfr po przecinku.

95.3.
ISIN (International Securities Identification Number) jest midzynarodowym identyfikatorem
spki na rynku finansowym. Pierwsze dwa znaki stanowi kod kraju. Dla Polski przyjto
PL. Wykorzystujc t informacj:
a) podaj liczb spek krajowych i liczb spek zagranicznych notowanych na giedzie
w podanym okresie;
b) podaj czn warto obrotw spek krajowych i czn warto obrotw spek
zagranicznych w cigu trzech danych dni oraz procentowy udzia spek krajowych
w cznych obrotach wszystkich spek. Wyniki podaj w zaokrgleniu do dwch cyfr
po przecinku.
190 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

95.4.
Warszawski Indeks Giedowy WIG jest miar koniunktury na giedzie i wyraa czn warto
spek obecnych na Giedzie Papierw Wartociowych (GPW) w stosunku do ich wartoci
w pierwszym dniu notowania (16 kwietnia 1991).
WIG obejmuje tylko wybrane spki, speniajce kryteria co do procentu i wartoci akcji
w wolnym obrocie. Portfel spek uczestniczcych w WIG jest aktualizowany co kwarta.
Obecnie (stycze 2015) w portfelu jest 377 spek. Dla kadej z nich okrelono pakiet, czyli
liczb akcji branych pod uwag przy obliczaniu WIG. Warto WIG oblicza si wedug
wzoru:

=

gdzie: M aktualna czna warto rynkowa pakietw wszystkich spek w portfelu WIG,
rwna sumie iloczynw pakiet*kurs wszystkich spek
Mb = 57 140 000 z warto bazowa spek na pocztku notowania;
Wb = 1000 warto bazowa indeksu WIG na pocztku notowania;
K = 96,482 137 39 korektor wynikajcy ze zmian skadu spek zaliczanych do
WIG.
WIG zmienia si wraz ze zmian kursu akcji. Opierajc si na wartociach kursw
zamknicia sesji, podaj dla kadego z trzech danych dni:
czn warto rynkow pakietw wszystkich spek przy kursie zamknicia,
warto indeksu WIG zaokrglon do dwch cyfr po przecinku.

95.5.
Inwestor giedowy ledzi notowania kursu zamknicia sesji. Na podstawie wynikw z trzech
kolejnych dni nastpujco ocenia, co warto zrobi:
jeeli kurs spki ronie, i to ronie coraz szybciej (drugi wzrost jest wikszy od
pierwszego), warto kupi akcje,
jeeli kurs spki spada, i to spada coraz szybciej (drugi spadek jest wikszy od
pierwszego), warto sprzeda akcje,
w pozostaych sytuacjach warto poczeka i obserwowa rozwj sytuacji.
Wykorzystujc notowania z trzech danych dni, podaj liczb spek, ktrych akcje warto
zdaniem inwestora kupi, liczb spek, ktrych akcje jego zdaniem warto sprzeda, i liczb
spek, ktre wedug niego warto dalej obserwowa.

Zadanie 96.
Wizka zada Prognoza liczby ludnoci w Polsce do roku 2050
W pliku ludnosc.txt znajduj si dane: prognostyczne dotyczce liczby ludnoci Polski
w latach 20132050 z podziaem na wiek (od 0 do 100 lat), pe oraz miejsce zamieszkania:
miasto lub wie.
Pierwszy wiersz pliku jest wierszem nagwkowym, a kady nastpny wiersz pliku zawiera 6
liczb: rok kalendarzowy (rok), wiek osb w latach (wiek), liczb mczyzn (m_miasto)
i liczb kobiet w tym wieku (k_miasto) zamieszkaych w miastach oraz liczb mczyzn
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
191
(m_wies) i liczb kobiet w tym wieku (k_wies) zamieszkaych na wsi. Osoby w wieku
ponad 100 lat zaliczono dla uproszczenia do grupy 100-latkw. Dane w wierszu oddzielone s
znakiem tabulacji.

Przykad
rok wiek m_miasto k_miasto m_wies k_wies
2013 0 107301 101414 77659 73821
2013 1 116232 109575 83756 79140
2013 2 118851 111765 85217 80842

Dane pochodz ze strony http://stat.gov.pl


Rozwi ponisze zadania, wykorzystujc dostpne narzdzia informatyczne. Wyniki umie
w pliku tekstowym o nazwie ludnosc_wyniki.txt. Do oceny oddaj plik tekstowy
zawierajcy wyniki oraz plik zawierajcy realizacj komputerow rozwizania.

96.1.
Porwnaj na wsplnym wykresie struktur wiekow ludnoci Polski w roku 2013 i 2050.
Sporzd wykres typu Punktowy, zawierajcy dwie serie danych: dla roku 2013 i roku 2050,
ktry bdzie przedstawia dla kadego wieku od 0 do 100 czn liczb ludnoci w tym
wieku.

96.2.
Podaj stosunek liczby ludnoci miast do liczby ludnoci wsi obliczony dla roku 2013 i dla
roku 2050. Wyniki zapisz w postaci zaokrglonej do dwch cyfr po przecinku.

96.3.
Podaj redni wiek mczyzny zamieszkaego w miecie w roku 2013 oraz redni wiek
mczyzny zamieszkaego w miecie w roku 2050.
Wyniki zapisz w postaci zaokrglonej do liczby cakowitej.

Uwaga: Dla danego roku naley obliczy redni waon po wszystkich grupach
wiekowych od 0 do 100:
0 0 + 1 1 + 2 2 + + 99 99 + 100 100
=
0 + 1 + + 99 + 100
gdzie mi liczba mczyzn w miecie w grupie wiekowej i lat.

96.4.
Struktur ludnoci charakteryzuje taka prawidowo, e w kadym roku kalendarzowym
w modszych rocznikach mczyni stanowi wikszo, jednak wraz z wiekiem ta przewaga
si zmniejsza. W pewnym wieku zaczynaj przewaa liczebnie kobiety.
Sporzd zestawienie, w ktrym dla kadego roku kalendarzowego z zakresu 2013-2050
podasz najniszy wiek, w jakim kobiety przewaaj liczebnie mczyzn.
192 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

96.5.
Rozwa trzy grupy wiekowe:
modzie do 18 roku ycia wcznie;
osoby w wieku produkcyjnym od 19 do 67 roku ycia wcznie;
emeryci powyej 67 roku ycia.
Dla kadego roku kalendarzowego oblicz liczb ludnoci w kadej z tych grup.
Sporzd wykres kolumnowy skumulowany procentowy, ilustrujcy liczebno tych trzech
grup w kolejnych latach okresu 20132050.
Sporzd zestawienie, w ktrym dla kadego roku podasz, jaki procent ludnoci stanowi
osoby w wieku produkcyjnym. Wynik zapisz w postaci zaokrglonej do cakowitej liczby
procentw.

Zadanie 97.
Wizka zada Stopa bezrobocia
W pliku o nazwie stopa_bezrobocia.txt znajduj si miesiczne stopy bezrobocia
w pastwie Klingonw w latach 19452014. W kadym wierszu znajduje si 13 liczb,
oddzielonych pojedynczymi znakami tabulacji: rok oraz stopy bezrobocia w kolejnych
dwunastu miesicach. Pierwszy wiersz jest wierszem nagwkowym.

Przykad
ROK I II III IV V VI VII VIII IX X XI XII
1945 3,2 4,2 4,1 3,9 3,9 4,0 4,0 4,2 4,4 4,1 4,0 3,8
1946 4,5 3,9 3,6 3,6 3,7 3,5 3,5 3,6 3,7 3,9 4,1 4,5
1947 5,0 5,9 6,2 6,7 6,9 6,9 6,6 6,8 7,0 7,1 6,7 6,3

Wykorzystujc dane zawarte w tym pliku i dostpne narzdzia informatyczne, rozwi


ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki_bezrobocie.txt (z wyjtkiem wykresu do zadania 3). Odpowied do kadego
zadania poprzed numerem oznaczajcym to zadanie. Wykres do zadania 3 umie w pliku
wyniki_bezrobocie.xxx, gdzie xxx oznacza rozszerzenie odpowiednie dla formatu
pliku.

97.1.
Miesicem wysokiego zagroenia dla gospodarki w pastwie Klingonw nazywamy taki
miesic, w ktrym stopa bezrobocia jest wiksza ni 10. Podaj liczb miesicy wysokiego
zagroenia, jakie wystpiy latach 19452014.

97.2.
Podaj najnisz i najwysz redni roczn stop bezrobocia (wyniki podaj w zaokrgleniu do
dwch miejsc po przecinku) oraz rok, w ktrym one wystpiy.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
193
97.3.
Utwrz zestawienie zawierajce dla kadego roku w latach 19452014 minimaln
i maksymaln miesiczn stop bezrobocia odnotowan w tych latach.
Dla otrzymanego zestawienia sporzd wykres liniowy. Pamitaj o prawidowym i czytelnym
opisie wykresu.

97.4.
Znajd najduszy nierosncy cig miesicznych stp bezrobocia w kolejnych miesicach
w latach 19452014. Podaj miesic i rok pocztkowy oraz miesic i rok kocowy
znalezionego cigu oraz jego dugo.

Przykad
Dla pliku zawierajcego nastpujce dane:
I II III IV V VI VII VIII IX X XI XII
2002 12,90 12,90 12,50 13,00 12,50 12,20 11,00 11,70 11,50 11,30 11,40 11,60
2003 14,20 14,40 14,30 14,40 13,60 13,20 13,10 13,00 13,00 13,00 12,90 12,80
2004 12,50 12,60 13,30 12,90 12,60 12,30 12,30 12,40 12,40 12,50 12,90 13,40

dugo najduszego nierosncego cigu stp bezrobocia wynosi 10 (cig liczb: 14,40; 13,60;
13,20; 13,10; 13,00; 13,00; 13,00; 12,90; 12,80; 12,50). Miesic i rok pocztku cigu to IV
2003. Miesic i rok koca cigu to I 2004.

97.5.
Podaj liczb lat, w ktrych stopa bezrobocia w kadym miesicu bya wiksza od stopy
bezrobocia w tym samym miesicu roku poprzedniego.

2.4. Bazy danych

Zadanie 98.
Wizka zada Dziennik ocen
Dane s trzy pliki tekstowe: uczniowie.txt, przedmioty.txt i oceny.txt, w
ktrych zapisano oceny wystawiane uczniom w pewnym technikum informatycznym w
okresie od 1.09.2014 r. do 18.12.2014 r.
Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a kolumny w wierszach
rozdzielone s znakami tabulacji.
Plik o nazwie uczniowie.txt zawiera informacje dotyczce uczniw szkoy. W kadym
wierszu znajduje si: identyfikator ucznia (ID_ucznia), jego imi (Imie), nazwisko
(Nazwisko) oraz oznaczenie klasy za pomoc rzymskiej liczby i litery (Klasa).

Przykad
Id_ucznia Imie Nazwisko Klasa
123/2011 Wojciech Banasik IV E
124/2011 Monika Baranowska IV E
125/2011 Janusz Czerwinski IV E
194 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Plik przedmioty.txt zawiera identyfikator przedmiotu (Id_przedmiotu) oraz nazw


przedmiotu (Nazwa_przedmiotu).

Przykad
Id_przedmiotu Nazwa_przedmiotu
1 j.polski
2 j.angielski
3 j.niemiecki
W pliku oceny.txt zapisane s w kadym wierszu: identyfikator oceny (Id_oceny),
data wystawienia oceny (Data), identyfikator ucznia (Id_ucznia), identyfikator
przedmiotu (Id_przedmiotu) oraz ocena (Ocena).

Przykad
Id_oceny Data Id_ucznia Id_przedmiotu Ocena
1 2014-09-08 704/2014 1 2
2 2014-09-08 312/2012 1 4
3 2014-09-08 649/2013 3 5
Korzystajc z danych zawartych w tych plikach oraz z dostpnych narzdzi informatycznych,
wykonaj ponisze polecenia. Kad odpowied umie w pliku wyniki.txt, poprzedzajc
j numerem odpowiedniego zadania.

98.1.
Imiona dziewczt w zestawieniu kocz si na liter a. Podaj klasy, w ktrych ponad 50%
wszystkich uczniw to dziewczta.

98.2.
Podaj daty, kiedy w szkole wystawiono wicej ni 10 jedynek jednego dnia.

98.3.
Podaj, z dokadnoci do dwch miejsc po przecinku, rednie ocen z jzyka polskiego dla
kadej klasy czwartej.

98.4.
Podaj zestawienie zawierajce dla kadego przedmiotu liczb pitek wystawionych w
kolejnych miesicach od wrzenia do grudnia cznie we wszystkich klasach.

98.5.
Podaj zestawienie imion i nazwisk uczniw klasy II A, ktrzy nie otrzymali adnej oceny
z przedmiotu sieci komputerowe.

Komentarz do zadania
Przedstawiamy rozwizanie zadania za pomoc programu Access z pakietu MS Officce 2010
oraz w jzyku SQL.
Kluczami gwnymi (PRIMARY KEY) w tabelach Uczniowie, Oceny, Przedmioty
bd odpowiednio kolumny Id_ucznia, Id_przedmiotu oraz Id_oceny, to one
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
195
jednoznacznie identyfikuj rekordy w tabelach. Tabele poczone s relacjami typu jeden do
wielu:

98.1.
Aby wyszuka klasy, w ktrych ponad 50% wszystkich uczniw to dziewczta, skorzystamy
z informacji zawartych w tabeli Uczniowie. Utworzymy kwerendy pomocnicze, za pomoc
ktrych wyznaczymy liczb dziewczt (kryterium w kolumnie Imie: Like *a) w klasach
(liczymy liczb identyfikatorw uczniw) oraz liczb wszystkich uczniw w klasach.


W kolejnej kwerendzie dla kadej klasy obliczymy wyraenie , przy

czym wyraenie to powinno by wiksze od 0,5.

Zapytanie w jzyku SQL:


SELECT Klasa
FROM Uczniowie
GROUP BY Klasa
HAVING SUM(CASE WHEN Imie LIKE %a THEN 1 ELSE 0 END) >COUNT(*) / 2
196 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

98.2.
Chcc wyszuka daty, kiedy w szkole wystawiono wicej ni 10 jedynek jednego dnia,
odfiltrujemy spord wszystkich ocen jedynki, a nastpnie posuymy si funkcjami
agregujcymi (policzymy dla kadej daty liczby jedynek i odfiltrujemy te dni, w ktrych
liczba jedynek przekroczya 10).
Warunek na ocen zosta zaoony za pomoc klauzuli WHERE. Klauzula GROUP BY
umoliwia podzia wierszy na kategorie na podstawie wartoci w kolumnie Data i
skorzystanie z funkcji grupujcej (POLICZ) dla rnych ocen. Dalej klauzul HAVING
ograniczamy zestawienie do takiego, w ktrym liczba jedynek jest wiksza od 10.

Zapytanie w jzyku SQL:


SELECT Oceny.Data, Count(*)
FROM Oceny
WHERE Oceny.ocena=1
GROUP BY Oceny.Data
HAVING Count(*)>10

98.3.
Aby ustali z dokadnoci do dwch miejsc po przecinku rednie ocen z jzyka polskiego
kadej klasy czwartej, odfiltrujemy oceny z jzyka polskiego uczniw klas IV, a nastpnie
skorzystamy z funkcji agregujcej rednia (AVG).

Zapytanie w jzyku SQL:


SELECT Uczniowie.klasa, AVG(oceny.ocena)
FROM Oceny
JOIN Przedmioty ON Przedmioty.id_przedmiotu = Oceny.id_przedmiotu
JOIN Uczniowie ON Uczniowie.id_ucznia = Oceny.id_ucznia
WHERE Przedmioty.nazwa_przedmiotu = j.polski AND Uczniowie.klasa LIKE IV%
GROUP BY Uczniowie.klasa
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
197
98.4.
W rozwizaniu utworzymy kwerend krzyow, w ktrej nagwkiem kolumny bdzie
wyodrbniamy z daty numer miesica (funkcja MONTH), za nagwkiem wiersza nazwa
przedmiotu. Jako warto wstawiamy ocen lub identyfikator oceny i stosujemy funkcj
Policz. Dodatkowo naley pamita o klauzuli WHERE, za pomoc ktrej odfiltrujemy
same pitki.
Widok projektu:

Zapytanie w jzyku SQL:


SELECT Przedmioty.Nazwa_przedmiotu, Month(Oceny.Data), Count(*)
FROM Oceny
JOIN Przedmioty ON Przedmioty.id_przedmiotu = Oceny.id_przedmiotu
WHERE Oceny.ocena=5
GROUP BY Przedmioty.Nazwa_przedmiotu, Month(Oceny.Data)

98.5.
Rozwizywanie poprzedzimy utworzeniem kwerendy pomocniczej, w wyniku ktrej
otrzymamy oceny uczniw uczszczajcych na zajcia z przedmiotu sieci komputerowe.
Widok projektu:

Dalej, korzystajc z wynikw powyszego zapytania pomocniczego oraz tabeli Uczniowie


(zcze pomidzy tabelami typu RIGHT JOIN), uzyskamy zestawienie uwzgldniajce
wszystkie rekordy z tabeli Uczniowie, niezalenie od tego czy uczniowie maj ocen, czy nie
(pole wypenione wartociami NULL). Kolejnym krokiem jest wybranie rekordw z
wartoci NULL. Dodatkowo w kryterium dla pola Klasa podajemy II A.
Widok projektu:
198 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zapytanie w jzyku SQL:


SELECT Uczen.Imie, Uczen.Nazwisko
FROM Uczen
WHERE Uczen.Klasa = II A AND (SELECT COUNT(*) FROM Oceny JOIN
Przedmioty ON Przedmioty.id_przedmiotu = Oceny.id_przedmiotu WHERE
Oceny.id_ucznia = Uczen.id_ucznia AND Przedmiotu.nazwa LIKE sieci komp%) = 0

Rozwizanie

98.1.
I A, I C

98.2.
2014-11-11
2014-10-14

98.3.
Klasa rednia
IV A 3,53
IV B 3,45
IV C 3,40
IV D 3,90
IV E 3,51

98.4.
Przykadowa poprawna odpowied:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
199
Nazwa_przedmiotu 9 10 11 12
administracja bazami danych 3 13 7 1
administracja sieciowymi systemami operacyjnymi 2
biologia 8 20 9 5
chemia 18 31 31 13
diagnostyka i naprawa urzadzen techniki komputerowej 8 13 9 13
edukacja dla bezpieczenstwa 9 15 14 8
fizyka 14 21 31 9
geografia 1 1
historia 2 2
historia i spoleczenstwo - przedmiot uzupelniajacy 8 4 6 3
informatyka 33 31 34 25
j.angielski 50 85 72 50
j.niemiecki 66 106 84 53
j.polski 37 81 62 41
jezyk angielski zawodowy w branzy informatycznej 1 1 1
matematyka 32 39 48 35
podstawy przedsiebiorczosci 6 16 16 12
projektowanie i montaz lokalnych sieci komputerowych 10 11 11 6
sieci komputerowe 2
systemy baz danych 6 5 8 5
systemy operacyjne 4 19 12 9
urzadzenia techniki komputerowej 8 18 19 15
wiedza o kulturze 7 16 13 10
wiedza o spoleczenstwie 7 15 9 7
witryny i aplikacje internetowe 5 6 9 3
wychowanie fizyczne 23 39 34 15

98.5.
Imie Nazwisko
Aneta Duda
Miroslaw Gorski
Lukasz Kostoczko
Donald Krychowski
Adrian Lubaczewski
Piotr Nawrocki
Michal Nowakowski
Piotr Prusinski
Grzegorz Tomkow
Radoslaw Wojciechowski
Mariusz Wojtyra
200 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 99.
Wizka zada Bezpieczestwo w szkole
Wydzia Edukacji powiatu Bajtolandia przeprowadzi wrd uczniw szk badanie na temat
bezpieczestwa w szkole. W ankiecie udzia wzili uczniowie ze 130 wybranych szk
rnego typu.
W plikach ankiety.txt, szkoly.txt i gminy.txt znajduj si dane dotyczce
ankietowanych szk w powiecie Bajtolandia oraz wyniki ankiet wypenionych przez uczniw
tych szk. Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a dane
w wierszach rozdzielone s znakami tabulacji.
W kolejnych wierszach pliku ankiety.txt znajduj si wyniki 5600 ankiet: numer ankiety
(Nr_ankiety), oceny podane w odpowiedzi na poszczeglne pytania (pyt1, pyt2, ...,
pyt6), Plec (k dziewczyna, m chopak), identyfikator szkoy (Id_szkoy).

Przykad
Nr_ankiety pyt1 pyt2 pyt3 pyt4 pyt5 pyt6 Id_szkoly Plec
a0001 1 2 2 3 3 4 S001 k
a0002 5 3 3 2 2 3 S001 k
a0003 5 3 5 5 1 4 S001 m
a0004 3 2 2 1 2 3 S001 k
Tre pyta ankiety:
pyt1: Czy w swojej szkole czujesz si bezpiecznie?
pyt2: Czy bye na terenie szkoy ofiar niebezpiecznych zachowa, agresji?
pyt3: Czy bye wiadkiem niebezpiecznych sytuacji, agresji w szkole?
pyt4: Czy zdarzyo Ci si zrobi komukolwiek jak przykro?
pyt5: Czy nauczyciele rozmawiaj z uczniami o przemocy?
pyt6: Czy w szkole odbywaj si zajcia (spotkania/lekcje/wystawy/inne formy) na
temat bezpieczestwa w szkole?
Odpowiedzi na pytania to oceny w skali od 1 do 5, oznaczajce odpowiednio:
1. nigdy
2. bardzo rzadko
3. rzadko
4. czsto
5. bardzo czsto
W pliku szkoly.txt znajduje si 130 wierszy z informacjami o szkoach: identyfikator
szkoy (Id_szkoly), Rodzaj_szkoly (SP, G, LO, T, ZS), Kod_gminy.

Przykad
Id_szkoly Rodzaj_szkoly Kod_gminy
S001 LO GM19
S002 SP GM17
S003 LO GM07
S004 T GM19
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
201
W pliku gminy.txt kady wiersz zawiera informacje o jednej z 20 gmin w Bajtolandii:
Kod_gminy, Nazwa_gminy.

Przykad
Kod_gminy Nazwa_gminy
GM01 Piatki Gorne
GM02 Piatki Dolne
GM03 Sobotka
Wykorzystujc dane zawarte w tych plikach i dostpne narzdzia informatyczne, rozwi
ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki_ankiety.txt. Odpowied do kadego zadania rozpocznij od nowego wiersza i poprzed
numerem oznaczajcym to zadanie.

99.1.
Podaj liczb wszystkich ankietowanych dziewczt i wszystkich ankietowanych chopcw.

99.2.
Dla kadego rodzaju szkoy podaj redni ocen odpowiedzi na kade pytanie. Wyniki podaj
w zaokrgleniu do dwch miejsc po przecinku.

99.3.
Dla kadej gminy wyznacz redni ocen uczniw, z jej terenu podan w odpowiedzi na
ostatnie (szste) pytanie. Wyniki umie w zestawieniu zawierajcym dwie kolumny: kod
gminy, redni ocen uczniw. Zestawienie uporzdkuj malejco ze wzgldu na redni
ocen. rednie podaj w zaokrgleniu do dwch miejsc po przecinku.

99.4.
Utwrz zestawienie zawierajce dla kadego rodzaju szkoy informacje o liczbie uczniw,
ktrzy podali ocen 5 na pytanie trzecie. Zestawienie posortuj alfabetycznie wedug rodzaju
szkoy.

99.5.
Podaj nazw gminy z najwiksz liczb uczniw biorcych udzia w badaniu oraz liczb tych
uczniw.

99.6.
Utwrz zestawienie zawierajce informacje o liczbie dziewczt i chopcw (osobno)
z poszczeglnych rodzajw szk, ktrzy podali najwysz ocen 5 na pytanie 1.

Komentarz do zadania
Po wczytaniu danych do tabel oraz ustaleniu zwizkw midzy tabelami (Relacje)
przystpujemy do rozwizania zadania.
202 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

99.1.
W tym zadaniu konstruujemy kwerend podsumowujc na podstawie tabeli Ankiety.
Rozpoczynamy od projektu prostej kwerendy wybierajcej i umieszczamy w siatce
projektowej pola Plec oraz Nr_ankiety. Nastpnie ustalamy typ kwerendy na
podsumowujc i dla wybranych pl stosujemy odpowiednio Grupuj wedug (dla pola
Plec) oraz Policz (dla pola Nr_ankiety). W efekcie kwerenda wyznaczy, ilu chopcw
i ile dziewczt wypenio ankiet.

99.2.
W celu rozwizania zadania utworzymy zapytanie w oparciu o tabele: Szkoly oraz
Ankiety. Podobnie jak przy rozwizaniu poprzedniego zadania utworzymy kwerend
podsumowujc. Poniewa mamy poda redni ocen odpowiedzi na kade pytanie dla
kadego rodzaju szkoy, w kwerendzie potrzebne bd pola: Rodzaj_szkoly z tabeli
Szkoly (wybierzemy w kwerendzie grupowanie wedug tego pola) oraz pola pyt1,
pyt2, pyt3, pyt4, pyt5 i pyt6 z tabeli Ankiety. Dla pl z odpowiedziami na
poszczeglne pytania w kwerendzie wybieramy funkcj rednia.

Zauwamy te, e rednie wartoci maj by podane z dokadnoci do dwch miejsc po


przecinku. Mona to zrobi, np. ustawiajc waciwoci pl pyt1, pyt2, pyt3,
pyt4, pyt5 i pyt6 w arkuszu waciwoci: wybieramy format staoprzecinkowy z 2
miejscami po przecinku.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
203

99.3.
W tym zadaniu take warto stworzy kwerend podsumowujc. W kwerendzie stosujemy
grupowanie wedug pola Kod_gminy z tabeli Gminy oraz wyznaczamy redni ocen
uczniw z odpowiedzi na szste pytanie (dla pola pyt6 z tabeli Ankiety stosujemy funkcj
rednia).
Zwrmy te uwag na dalsz cz polecenia: Zestawienie uporzdkuj malejco ze wzgldu
na redni ocen. Musimy zatem wybra w siatce projektowej sortowanie malejce dla pola
pyt6.

Take i tym razem rednie wartoci odpowiedzi na pytanie szste maj by podane
z dokadnoci do dwch miejsc po przecinku, wic i tu w arkuszu waciwoci pola pyt6
wybieramy format staoprzecinkowy z 2 miejscami po przecinku.
204 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

99.4.
W tym zadaniu naley utworzy zestawienie zawierajce dla kadego rodzaju szkoy
informacje o liczbie uczniw, ktrzy podali najwysz ocen (5) dla pytania 3. W tym celu
przygotujemy kwerend, w ktrej posuymy si polami:
Rodzaj_szkoly z tabeli Szkoly (grupujemy wedug tego pola Grupuj
wedug);
Nr_ankiety z tabeli Ankiety (policzymy wszystkie ankiety speniajce zadane
kryterium, wybieramy wic funkcj Policz);
pyt3 z tabeli Ankiety (pole to jest potrzebne do okrelenia warunku, zatem w
wierszu Kryteria tego pola wpiszemy najwysz ocen (5), jak mogli poda
uczniowie, pole to nie jest wywietlane w wyniku dziaania kwerendy, lecz jest
niezbdne do spenienia zadanego warunku).

Naley rwnie pamita o wyborze sortowania rosnco wedug pola Rodzaj_szkoly.

99.5.
Zadanie to mona podzieli na dwa mniejsze zadania:
a) Dla kadej gminy wyznacz liczb uczniw z jej terenu biorcych udzia w badaniu.
b) Podaj nazw gminy z najwiksz liczb uczniw biorcych udzia w badaniu i liczb
tych uczniw.
Aby uzyska odpowied na pierwsze z nich, przygotujemy kwerend podsumowujc,
wybierajc pola: Kod_gminy z tabeli Szkoly, Nazwa_gminy z tabeli Gminy (grupujemy
wedug tych pl) oraz pole Nr_ankiety z tabeli Ankiety (dla niego stosujemy funkcj
Policz, aby zliczy wszystkie wypenione ankiety). Jeli dla pola Nr_ankiety
wybierzemy sortowanie malejce, to na grze tabeli wywietlajcej wynik dziaania tej
kwerendy znajdziemy odpowied do drugiej czci zadania.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
205

Tak przygotowana kwerenda pozwala ustali rozwizanie odczytamy je z pierwszego


wiersza wywietlanych wartoci. Moemy jednak tak zmodyfikowa kwerend, aby zwracaa
tylko jeden (najwyszy) wynik.

Efekt dziaania byby nastpujcy:

99.6.
W zadaniu tym utworzymy kwerend krzyow, mamy bowiem utworzy zestawienie
zawierajce osobno informacje o liczbie dziewczt i osobno o liczbie chopcw
w poszczeglnych rodzajach szk, ktrzy podali najwysz ocen 5 jako odpowied na
pytanie 1.
206 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Potrzebne zatem bd nam pole Rodzaj_szkoly z tabeli Szkoly jako nagwek


wiersza oraz pole Plec z tabeli Ankiety jako nagwek kolumny. Na przeciciu
wiersza i kolumny powinna pojawi si Warto, uzyskana z policzenia pl Nr_ankiety
z tabeli Ankiety. Zestawienie dopeni ustalenie dodatkowego kryterium zadanego w
poleceniu, czyli niezbdne jest grupowanie wedug pola pyt1 z tabeli Ankiety oraz
zadanie warunku dla tego pola (najwysza ocena 5 w odpowiedzi na pytanie 1). Musimy
wic dodatkowo dopisa warunek dla pola (w siatce projektowej powtrnie umieszczamy
pole pyt1 z tabeli Ankiety i zaznaczamy funkcj Gdzie z ustalonym Kryterium
(5).

Efekt dziaania bdzie nastpujcy:

Zadanie 100.
Wizka zada E-learning
Szkoa postanowia wprowadzi dla uczniw dodatkowe zajcia z informatyki z
wykorzystaniem systemu e-learning. W plikach: osoby.txt, listy.txt,
punktacja.txt znajduj si informacje na temat: uczniw szkoy, ktrzy uczyli si w
systemie e-learning w okresie od 1.09.2014 do 15.02.2015, list zada oraz uzyskanych przez
uczniw wynikw. Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a dane
w wierszach rozdzielone s znakami tabulacji.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
207
Plik o nazwie osoby.txt zawiera 60 wierszy z informacjami na temat osb, ktre wysyay
rozwizania zada poprzez system. S to: identyfikator osoby (id_osoby), jej nazwisko
(nazwisko), imi (imie) oraz nazwa grupy, do ktrej osoba zostaa przydzielona (grupa).

Przykad
id_osoby imie nazwisko grupa
35 Joanna Matura G3
36 Anna Piasecka G3
37 Katarzyna Zienowicz G3
W pliku listy.txt znajduje si 11 wierszy z informacjami na temat list zada
zamieszczonych w systemie: numerem listy (id_listy), nazw listy zada (nazwa) oraz
terminem oddania (termin_oddania).

Przykad
id_listy nazwa termin_oddania
7 C7 2015-01-26
8 P1 2014-11-10
Plik o nazwie punktacja.txt zawiera 653 wiersze z informacjami o wynikach uczniw.
S to: liczba porzdkowa (lp), identyfikator danej osoby (id_osoby), identyfikator listy
zada (id_listy), liczba punktw zdobytych przez dan osob (punkty) oraz data
przesania rozwizania listy zada (data).

Przykad
lp id_osoby id_listy punkty data
1 1 1 12 2014-10-20
2 1 2 12 2014-11-03
3 1 8 22 2014-11-10
Wykorzystujc dane zawarte w tych plikach i dostpne narzdzia informatyczne, wykonaj
ponisze zadania, a wyniki zapisz w pliku o nazwie wyniki_elearning.txt. Wyniki do
kadego zadania poprzed numerem oznaczajcym to zadanie.

100.1.
Utwrz zestawienie, w ktrym dla kadej listy zada podasz redni liczb punktw
otrzymanych za te zadania przez uczniw. W zestawieniu podaj nazw listy oraz redni
liczb punktw zaokrglon do dwch miejsc po przecinku.

100.2.
Utwrz zestawienie, w ktrym podasz imiona i nazwiska osb, ktre spniy si o 14 lub
wicej dni z oddaniem dowolnej listy o nazwie zaczynajcej si od litery P.
208 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

100.3.
Na podstawie liczby wszystkich zdobytych przez uczniw punktw wystawione zostay
oceny wedug zasad przedstawionych w tabeli:
przedzia punktw ocena
(0, 72) 1
[72, 90) 2
[90, 126) 3
[126, 153) 4
[153, 180) 5
Podaj, ile osb otrzymao ocen 1, 2, 3, 4, 5.

100.4.
Utwrz czytelne zestawienie tabelaryczne, w ktrym dla kadej grupy podasz, ile osb
otrzymao liczb punktw rwn 10, 11, 12. W swoich obliczeniach we pod uwag
wszystkie listy zada.

100.5.
Podaj imiona i nazwiska osb, ktre nie wysay przynajmniej jednej listy zada. Zestawienie
posortuj rosnco ze wzgldu na nazwiska osb.

Zadanie 101.
Wizka zada Karta MaturaSport
Wadze miasta wprowadziy program MaturaSport, w ramach ktrego opacaj zajcia
sportowe dla uczniw ostatnich klas szk ponadgimnazjalnych. Uczniowie korzystaj z kart
MaturaSport, ktre umoliwiaj wstp do rnych obiektw sportowych i uczestnictwo
w prowadzonych tam zajciach. W nastpujcych plikach zgromadzono dane dotyczce
wykorzystania kart programu MaturaSport w kwietniu 2014 roku. Dane w plikach s
oddzielone rednikami, a pierwszy wiersz zawiera nagwki kolumn.
Kady wiersz w pliku osoby.txt zawiera informacje o jednym uytkowniku karty: jego
identyfikator (Id_uzytkownika), nazwisko (Nazwisko), imi (Imie) i pe (Plec).
Pe jest oznaczona liter K lub M.

Przykad
Id_uzytkownika;Nazwisko;Imie;Plec
1;Olszowka;Klara;K
2;Wieruszewski;Antoni;M
W pliku zajecia.txt zawarte s informacje o zajciach prowadzonych w obiektach
sportowych, biorcych udzia w programie. Kady wiersz zawiera: identyfikator zaj
(Id_zajec), nazw obiektu (Obiekt), rodzaj zaj (Zajecia) i koszt (Koszt) jednego
wejcia na zajcia opacany z programu MaturaSport.

Przykad
Id_zajec;Obiekt;Zajecia;Koszt
1;Redeco;Basen;9
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
209
Kady wiersz pliku wejscia.txt zawiera informacje o pojedynczym wejciu uytkownika
karty na wybrane zajcia: numer porzdkowy (Lp), identyfikator uytkownika
(Id_uzytkownika), dat (Data) i identyfikator zaj (Id_zajec).

Przykad
Lp ;Id_uzytkownika;Data;Id_zajec
1;1;2014-04-05;16
Wykorzystujc dane zawarte w plikach osoby.txt, zajecia.txt, wejscia.txt,
rozwi ponisze zadania. Odpowiedzi zapisz do pliku wyniki_sport.txt, a kad z
nich poprzed cyfr oznaczajc waciwe zadanie.

101.1.
Podaj, ile kobiet i ilu mczyzn uczszczao na zajcia Fitness TBC. Zwr uwag, e
niektre osoby mogy by na tych zajciach kilkakrotnie, a w zestawieniu powinny by
uwzgldnione tylko raz.

101.2.
Utwrz zestawienie, w ktrym dla kadego obiektu podasz, jak czn kwot zapacono za
prowadzone w nim zajcia.

101.3.
Podaj nazwiska i imiona osb, ktre w dniu 16 kwietnia 2014 r. uczestniczyy w wicej ni
jednych zajciach.

101.4.
Podaj rodzaj zaj, w ktrych uczestniczyo najwicej osb. Podaj podaj liczb tych osb
i nazw obiektu, w ktrym te zajcia byy prowadzone.

101.5.
Utwrz zestawienie, w ktrym dla kadego obiektu podasz, ile odnotowano w nim wej na
zajcia. Zestawienie uporzdkuj alfabetycznie wedug nazw obiektw.

Zadanie 102.
Wizka zada Portal spoecznociowy
Uytkownicy pewnego niszowego portalu spoecznociowego mog zawiera ze sob
znajomoci, a take dzieli si zdjciami. W plikach tekstowych podane s dane pewnej grupy
uytkownikw portalu, lista par uytkownikw bdcych znajomymi, a take lista zdj,
ktre opublikowali uytkownicy. Dane w wierszach rozdzielone s znakiem tabulacji, a
pierwszy wiersz kadego pliku jest wierszem nagwkowym.
Plik uzytkownicy.txt opisuje uytkownikw portalu: dla kadego podany jest kolejno:
jego identyfikator w bazie (ID_uzytkownika), imi (Imie), nazwisko (Nazwisko), kraj,
z ktrego on pochodzi (Kraj) oraz pe (Plec, M mczyzna, K kobieta):
210 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

ID_uzytkownika Imie Nazwisko Kraj


Plec
1 Joshua King Stany Zjednoczone M
2 Leonardo De Luca Wlochy M
3 Aleksandra Krawczyk Polska K
Plik znajomosci.txt zawiera list par znajomych. Kady wiersz zawiera dwa rne
identyfikatory uytkownikw, ktrzy s znajomymi (Znajomy_1 oraz Znajomy_2), oraz
dat zawarcia znajomoci (Data).
Znajomy_1 Znajomy_2 Data
64 12 2014-11-23
81 46 2013-01-27
82 13 2013-11-01
W pliku zdjecia.txt opisane s zdjcia opublikowane przez uytkownikw. Kady
wiersz zawiera: identyfikator zdjcia (ID_zdjecia), dat publikacji zdjcia
(Data_dodania), identyfikator uytkownika, ktry je doda (ID_uzytkownika), oraz
podan w pikselach szeroko i wysoko zdjcia (Szerokosc i Wysokosc).
ID_zdjecia Data_dodania ID_uzytkownika Szerokosc Wysokosc
1 2013-06-29 11 720 480
2 2014-09-08 56 720 480
3 2013-08-30 74 1440 576
Wykorzystujc dane zawarte w podanych plikach oraz dostpne narzdzia informatyczne,
wykonaj ponisze polecenia. Kad odpowied umie w pliku wyniki.txt, poprzedzajc
j numerem odpowiedniego zadania.

102.1.
Podaj, ile zdj zostao opublikowanych w 2014 roku.

102.2.
Podaj wszystkie pary uytkownikw, ktrzy s znajomymi i maj takie samo imi. Dla kadej
takiej pary podaj imi, nazwisko i kraj pochodzenia kadego uytkownika.

102.3.
Podaj zestawienie 10 krajw, z ktrych pochodzi najwicej zdj. Dla kadego kraju podaj
jego nazw i liczb zdj z niego przesanych. Posortuj list malejco wedug liczby
opublikowanych zdj.

102.4.
Podaj wysoko i szeroko zdjcia, ktre ma najwicej pikseli, oraz imi i nazwisko
uytkownika, ktre je opublikowa. Moesz zaoy, e jest tylko jedno takie zdjcie.

102.5.
Znajd wrd uytkownikw mczyzn, ktrzy opublikowali w portalu zdjcie, nie majc
w momencie jego publikacji adnych znajomych. Dla kadego takiego uytkownika podaj
jego imi, nazwisko i kraj pochodzenia. List posortuj rosnco wedug alfabetycznej
kolejnoci nazwisk uytkownikw.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
211
Zadanie 103.
Wizka zada Rentgenodiagnostyka
W okresie sezonu narciarskiego w pracowni rentgenodiagnostyki szpitalnego oddziau
ratunkowego (SOR) wykonano 2361 zdj RTG.
W plikach pacjenci.txt, badania.txt i rtg.txt znajduj si informacje na temat
pacjentw, wykonanych im zdj RTG oraz rodzajach bada RTG wykonywanych przez
pracowni. Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a dane
w wierszach rozdzielone s rednikami.
W pliku pacjenci.txt znajduj si wiersze z informacjami o 816 pacjentach urodzonych
przed rokiem 2000: PESEL, Nazwisko, Imie, Plec (k kobieta, m mczyzna), NFZ
(oddzia Narodowego Funduszu Zdrowotnego, do ktrego naley pacjent).

Przykad
PESEL;Nazwisko;Imie;Plec;NFZ
37112515913;Latacki;Stanislaw;m;Opolski
38012109293;Stachniuk;Przemyslaw;m;Dolnoslaski
47101603441;Dubiel;Zdzislawa;k;Slaski
W pliku badania.txt znajduj si wiersze z informacjami o zdjciach RTG wykonanych
pacjentom: PESEL, Id_badania.

Przykad
PESEL;Id_badanie;
37112515913;Id_13;
38012109293;Id_16;
45032403378;Id_23;
Kady wiersz pliku rtg.txt zawiera nastpujce informacje o wykonywanych w pracowni
zdjciach RTG: Id_badania, Nazwa_badania, Cena_badania.

Przykad
Id_badanie;Nazwa_badania;Cena_Badania
Id_1;RTG kosci pietowej;30
Id_10;RTG zeber;60
Id_11;RTG obojczyka;50
Wykorzystujc dane zawarte w tych plikach i dostpne narzdzia informatyczne, wykonaj
ponisze polecenia. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym
o nazwie wyniki_RTG.txt. Odpowied do kadego zadania poprzed numerem je
oznaczajcym.

103.1.
Podaj nazwisko, imi oraz rok urodzenia pacjenta, ktremu wykonano najwicej zdj RTG,
oraz liczb tych zdj. Skorzystaj z informacji, e dwie pierwsze cyfry numeru PESEL to rok
urodzenia.
212 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

103.2.
Pacjentami SOR byli mieszkacy 16 oddziaw NFZ. Oddziay te pokrywaj koszty
wykonanych zdj RTG osb, ktre do nich nale. Utwrz zestawienie zawierajce
informacje o sumie kosztw zdj RTG poniesionych przez poszczeglne oddziay NFZ.
Zestawienie posortuj malejco ze wzgldu na sum kosztw.

103.3.
Podaj rodzaj zdj RTG, ktre wykonano:
a) najwicej razy,
b) u najwikszej liczby pacjentw.
W odpowiedzi do punktu a) podaj te, ile razy wykonano dane badanie. W odpowiedzi do
punktu b) podaj te liczb pacjentw, u ktrych wykonano dane badanie.

103.4.
Podaj liczb kobiet oraz liczb mczyzn, ktrym wykonano zdjcia RTG.

103.5.
Dla okresu od roku 1900 do 1999 utwrz zestawienie zawierajce numery kolejnych
dziesicioleci oraz liczb pacjentw urodzonych w tych dziesicioleciach. Przyjmujemy, e
pierwsze dziesiciolecie to okres 1900-1909, drugie dziesiciolecie to okres 19101919 itd.

Zadanie 104.
Wizka zada Leki refundowane
Pracownik NFZ ma za zadanie skontrolowa recepty na leki refundowane wypisane w jednej
z przychodni w cigu pierwszego kwartau 2015 roku. Ma do dyspozycji trzy pliki tekstowe:
recepty.txt, leki_refundowane.txt i grupy_lekow.txt3.
Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a dane w wierszach
rozdzielone s rednikami.
Plik o nazwie recepty.txt zawiera informacje dotyczce wypisywanych recept; w
kadym wierszu znajduje si: identyfikator recepty (ID_recepty), data wypisania recepty
(Data) oraz 13-cyfrowy kod wypisanego leku (Kod_leku). Jedna recepta moe zawiera
maksymalnie pi lekw.

Przykad
ID_recepty;Data;Kod_leku
11/2015;2015-01-02;5909990752720
12/2015;2015-01-02;5909990969753
12/2015;2015-01-02;5909990967247
W pliku leki_refundowane.txt zapisane s w kadym wierszu: 13-cyfrowy kod leku
(Kod_leku), maksymalnie 90-znakowa nazwa substancji czynnej (Subst_czynna),
maksymalnie 160-znakowa nazwa leku, zawierajca posta i dawk leku, (Nazwa),

3
rdo: http://www.mz.gov.pl/leki/refundacja/lista-lekow-refundowanych-obwieszczenia-ministra-zdrowia
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
213
identyfikator grupy, do ktrej dany lek naley (Id_grupy), jego cena
(Cena_detaliczna) oraz cena refundowana (Cena_refundowana).

Przykad
Kod_leku;Subst_czynna;Nazwa;Id_grupy;Cena_detaliczna;Cena_refundowana
4013054024331;Metforminum;Siofor 500, tabl. powl., 500 mg;15.0;12,21;3,2
4013054024348;Metforminum;Siofor 850, tabl. powl., 850 mg;15.0;19,87;4,08
5901720140012;Doxazosinum;Dozox, tabl., 4 mg;76.0;70,74;9,6

Plik o nazwie grupy_lekow.txt zawiera identyfikator grupy (Id_grupy) oraz


maksymalnie 200-znakow nazw grupy (Nazwa_grupy).

Przykad
Id_grupy;Nazwa_grupy
1.0;Leki blokujace receptory histaminowe H2 - stosowane doustnie
10.0;Leki przeciwbiegunkowe - loperamid
100.1;Sulfametoksazol w polaczeniu z trimetoprymem do stosowania doustnego
- postacie stale
Korzystajc z danych zawartych w tych plikach oraz z dostpnych narzdzi informatycznych,
wykonaj ponisze polecenia. Kad odpowied zamie w pliku wyniki.txt, poprzedzajc
j numerem odpowiedniego zadania.

104.1.
Podaj, w ktrym dniu kontrolowanego okresu wypisano w przychodni najwicej recept, podaj
odpowiedni dat i liczb recept z tego dnia. Pamitaj, e na jednej recepcie moe by
wypisanych kilka lekw.

104.2.
Podaj nazw grupy lekw, w ktrej znajduje si najwicej lekw refundowanych w 100%,
czyli takich, ktrych cena refundowana wynosi 0 z.

104.3.
Sporzd zestawienie, w ktrym dla kadego miesica podana bdzie liczba wszystkich
wypisanych recept oraz sumaryczna warto wszystkich lekw z recept wypisanych w tym
miesicu (w obliczeniach we pod uwag cen detaliczn).

104.4.
Leki maj rne ceny detaliczne. Podaj cen detaliczn najdroszego leku, na ktry wypisano
recept w badanej przychodni, oraz nazw grupy, do ktrej ten lek naley.

104.5.
Dopata funduszu do leku to rnica pomidzy cen detaliczn a cen refundowan.
Utwrz zestawienie zawierajce daty wystawienia i identyfikatory recept, dla ktrych suma
dopat do wszystkich lekw z danej recepty jest wiksza ni 2000 z. Zestawienie posortuj
rosnco wedug dat.
214 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 105.
Wizka zada Roliny ogrodowe
W poniej opisanych plikach zgromadzono dane dotyczce zamwie zoonych w
internetowym sklepie ogrodniczym4. Zakupw mog dokonywa klienci, ktrzy dokonali
wczeniejszej rejestracji w sklepie. Pierwszy wiersz kadego z plikw jest wierszem
nagwkowym, a dane w wierszach rozdzielone s rednikami.
W pliku osoby.txt kady wiersz zawiera informacje o zamawiajcym: identyfikator
klienta (Id_klienta), jego nazwisko (Nazwisko), imi (Imie) i miasto, z ktrego on
pochodzi (Miasto).

Przykad
Id_klienta;Nazwisko;Imie;Miasto
200;Koprowski;Maurycy;Wroclaw
W pliku rosliny.txt zawarte s informacje o rolinach ogrodowych dostpnych
w sklepie internetowym. Kady wiersz zawiera nastpujce informacje: identyfikator roliny
(Id_rosliny), nazw roliny (Nazwa), cen jej sadzonki (Cena), kolor kwiatw
(Kolor_kwiatow), okres kwitnienia (Okres_kwitnienia), rozmiary doniczki
(Rozmiary_doniczki).

Przykad
Id_rosliny;Nazwa;Cena;Kolor_kwiatow;Okres_kwitnienia;Rozmiary_doniczki
54;Aconitum napellus;5;ciemno-niebieskie;IX-X;13x13x13

W pliku zamowienia.txt kady wiersz zawiera informacje o pojedynczej pozycji


zamwienia: numer porzdkowy (Lp), identyfikator klienta (Id_klienta), dat (Data),
liczb sadzonek (Liczba_sadzonek) i identyfikator roliny (Id_rosliny).

Przykad
Lp;Id_klienta;Data;Liczba_sadzonek;Id_rosliny
1;546;2014-03-01;6;554
Wykorzystujc dane zawarte w plikach osoby.txt, rosliny.txt,
zamowienia.txt, wykonaj ponisze polecenia. Odpowiedzi zapisz do pliku
wyniki_rosliny.txt, a kad z nich poprzed cyfr oznaczajc odpowiednie zadanie.

105.1.
Na zakoczenie dnia sklep przygotowywa dla kadego klienta specyfikacj zamwionego
w cigu caego dnia towaru i na tej podstawie sporzdza faktur, ktra bya doczana do
wysyki (kumulowanie zakupw od jednego klienta zmniejsza liczb przesyek kurierskich).
To oznacza, e na jednej fakturze byy umieszczane pozycje z zamwie zoonych tego
samego dnia. Warto faktury to suma wartoci zakupionych towarw.

Przykad
Klient zakupi w danym dniu 6 sadzonek w cenie 9 z oraz 15 sadzonek w cenie 10 z.
Warto jego faktury wynosi 6 9 + 15 10 = 204 z.

4
Dane o rolinach zostay przygotowane na podstawie http://ogrodkomercyjny.pl/
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
215
Oblicz, ile faktur wystawi sklep ogrodniczy, oraz podaj najwysz warto wystawionej
faktury. Podaj te, ilu klientom wystawiono wicej ni jedn faktur.

105.2.
Utwrz zestawienie, w ktrym podasz liczb pozycji zoonych przez osoby z
poszczeglnych miast zamwie na roliny kwitnce dokadnie w okresie VIIVIII.

105.3.
Wyszukaj pozycje zamwie, ktre dotycz wicej ni 10 sadzonek rolin o kwiatach w
kolorze bialo-liliowe. Dla znalezionych zamwie podaj nazwiska i imiona osb, ktre
je zoyy, liczb sadzonek oraz nazwy rolin.

105.4.
Podaj nazwy rolin, ktre nie zostay uwzgldnione w adnym zamwieniu.

105.5.
Utwrz zestawienie zawierajce liczb pozycji zamwie rolin w poszczeglnych
rozmiarach doniczek.

Zadanie 106.
Wizka zada Obserwacje ptakw
Wolontariusze zarejestrowani w serwisie internetowym www.awibaza.pl wprowadzaj do
bazy informacje o swoich obserwacjach ptakw. W trzech plikach tekstowych przedstawiono
dane zaczerpnite z tej bazy. Dane w wierszach oddzielone s pojedynczymi znakami
tabulacji. W kadym pliku pierwszy wiersz jest wierszem nagwkowym
Plik gatunki.txt zawiera informacje o gatunkach ptakw: identyfikatory ID_gatunku,
nazwy zwyczajowe (nazwa_zwyczajowa) i aciskie (nazwa_lacinska). Kady gatunek
opisany jest w osobnym wierszu.

Przykad
ID_gatunku nazwa_zwyczajowa nazwa_lacinska
5 bazant zlocisty Chrysolophus pictus
17 bielik Haliaeetus albicilla
54 gawron Corvus frugilegus
W pliku lokalizacje.txt jest lista miejsc, w ktrych dokonywano obserwacji. W
kadym miejscu mona byo dokonywa wielu obserwacji w rnych terminach. W pliku
podano dla poszczeglnych miejsc: identyfikator miejsca (ID_lokalizacji), jego nazw
(lokalizacja), nazw powiatu, na terenie ktrego si ono znajduje (powiat), oraz jego
krtki opis (opis).
ID_lokalizacji lokalizacja powiat opis
1 Cieplewo gdanski laka podmokla, jezioro
6 Hel pucki plaza, brzeg zatoki
9 Koscierzyna koscierski transekt przez miasto
W pliku obserwacje.txt w kadym wierszu znajduje si zapis danych z jednej
obserwacji. Kada obserwacja dotyczya jednego gatunku ptakw, ale moga obejmowa
216 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

wiele osobnikw tego gatunku. Dla kadej obserwacji podano: identyfikator obserwowanego
gatunku (ID_gatunku), identyfikator lokalizacji obserwacji (ID_lokalizacji), dat i czas
jej pocztku (poczatek), dat i czas jej zakoczenia (koniec), liczebno ptakw
(liczebnosc) oraz ich zachowanie w czasie obserwacji (zachowanie). Obserwacja
zaczynaa si i koczya zawsze w tym samym dniu.
ID_gatunku ID_lokalizacji poczatek koniec liczebnosc zachowanie
92 24 1984-12-16 12:55 1984-12-16 13:55 107 plywa
124 13 2008-01-14 08:15 2008-01-14 11:45 1 odpoczywa
23 3 2014-10-25 07:00 2014-10-25 07:15 4 zeruje
Rozwi ponisze zadania, wykorzystujc dostpne narzdzia informatyczne. Wyniki zamie
w pliku tekstowym o nazwie ptaki_wyniki.txt. Do oceny oddaj plik tekstowy
zawierajcy wynik zada oraz plik zawierajcy komputerow realizacj twojego rozwizania.

106.1.
Poda nazwy zwyczajowe trzech gatunkw ptakw, ktre byy obiektem najwikszej liczby
obserwacji.

106.2.
W ktrych miesicach mona byo zaobserwowa remiza? Podaj numery miesicy (liczby
z zakresu 1..12), w ktrych obserwowano gatunek o nazwie zwyczajowej remiz. Dla
kadego z tych miesicy podaj czn liczb wszystkich zaobserwowanych osobnikw
remiza. We pod uwag wszystkie obserwacje, z rnych lat.

106.3.
Ktre z europejskich gatunkw krukowatych ptakw z rodzaju Corvus mona
zaobserwowa w miastach? Ile ich zaobserwowano?
Podaj nazwy zwyczajowe wszystkich gatunkw ptakw z rodzaju Corvus (sowo Corvus
stanowi fragment aciskiej nazwy gatunku) zaobserwowanych w lokalizacjach pooonych
na terenach miejskich (zawierajcych sowo miasto w opisie lokalizacji obserwacji).

106.4.
Obserwacje dokonane w tej samej lokalizacji i tym samym czasie (majce jednakowe
wartoci w polu poczatek i w polu koniec) stanowi grup.
a) Wyznacz grup obserwacji trwajc najduej. Podaj jej lokalizacj, dat, czas
trwania w minutach i czn liczb osobnikw zaobserwowanych w tej grupie.
Sprawnoci grupy obserwacji nazywamy redni liczb osobnikw wszystkich gatunkw
obserwowanych w cigu 1 minuty przez grup.
czna liczba osobnikw obserwowanych w grupie
sprawno =
czas trwania obserwacji grupy w minutach
b) Podaj najwiksz osignit sprawno grupy obserwacji, w zaokrgleniu do 3 cyfr
po przecinku, oraz dat i lokalizacj grupy, ktra j osigna.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
217
106.5.
Wyszukaj wszystkie obserwacje osobnikw urawia (o nazwie zwyczajowej: zuraw).
a) Podaj liczb wszystkich zaobserwowanych osobnikw urawia.
b) Utwrz w postaci tabeli 2-wymiarowej zestawienie, w ktrym dla poszczeglnych
powiatw podasz liczby osobnikw urawia zaobserwowanych na ich terenach, z
podziaem na rne zachowania obserwowanego ptaka (gniazduje, leci itp.).

Zadanie 107.
Wizka zada Loty pasaerskie
W plikach: loty.txt, pasazerowie.txt, bilety.txt znajduj si informacje
na temat lotw, pasaerw i biletw lotniczych zakupionych przez nich w biurze podry
w drugim kwartale 2014 roku. Pierwszy wiersz kadego z plikw jest wierszem
nagwkowym, a dane w wierszach rozdzielone s znakami tabulacji.
W pliku loty.txt znajduje si 1027 wierszy z informacjami o lotach pasaerskich:
numerem identyfikacyjnym (id_lotu), miejscem docelowym (miejsce_docelowe),
dat wylotu (data) oraz godzin wylotu (godzina).

Przykad
id_lotu miejsce_docelowe data godzina
37 Warszawa 2014-04-04 12:05
38 Zurych 2014-04-04 13:50
39 Londyn Stansed 2014-04-04 18:10
Plik o nazwie pasazerowie.txt zawiera 302 wiersze z informacjami na temat
pasaerw, ktrzy kupili bilety. S to: identyfikator pasaera (id_pasazera), jego
nazwisko (nazwisko), imi (imie), ulica, przy ktrej mieszka, wraz z numerem domu
(adres), miejscowo (miejscowosc) oraz telefon (tel).

Przykad
id_pasazera nazwisko imie adres miejscowosc tel
202 Antczak Edyta Czerwcowa 40/6 Walbrzych 735223964
203 Karpik Hanna Drewniana 8/6 Dzierzoniow 312271637
W pliku bilety.txt znajduje si 2251 wierszy z informacjami na temat zakupionych
przez pasaerw biletw: numerem identyfikacyjnym lotu (id_lotu) oraz identyfikatorem
pasaera (id_pasazera).

Przykad
id_lotu id_pasazera
142 100
161 420
170 161
171 155
Wykorzystujc dane zawarte w tych plikach i dostpne narzdzia informatyczne, rozwi
ponisze zadania. Odpowiedzi do poszczeglnych zada zapisz w pliku tekstowym o nazwie
wyniki_loty_pasazerskie.txt. Wyniki do kadego zadania poprzed numerem
oznaczajcym to zadanie.
218 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

107.1.
Podaj 3 miejsca docelowe, do ktrych wyloty odbyy si w najwiksz liczb dni.
W zestawieniu podaj miejsce docelowe oraz liczb dni.

107.2.
Utwrz zestawienie, w ktrym podasz nazwiska i imiona pasaerw, ktrzy zakupili wicej
ni 15 biletw, oraz liczb biletw kupionych przez kadego z tych pasaerw.

107.3.
Utwrz zestawienie, w ktrym dla kadego numeru miesica z badanego okresu podasz liczb
biletw kupionych przez osoby z Wrocawia (Wroclaw).

107.4.
Utwrz zestawienie, w ktrym podasz imiona i nazwiska pasaerw, ktrzy kupili bilety do
dowolnego lotniska w Londynie na samoloty, ktrych wyloty odbyy si midzy 8:00 a 10:00.
Zestawienie posortuj rosnco wedug kolejnoci alfabetycznej nazwisk.

107.5.
Utwrz zestawienie lotw, na ktre nie kupiono w biurze biletw. Podaj w nim numery lotw
i ich miejsca docelowe.

Zadanie 108.
Wizka zada Stacje benzynowe
Informacje o wybranych drogach w Polsce i pooonych przy nich stacjach benzynowych
zamieszczone s w plikach: drogi.txt, kategorie.txt, sieci.txt oraz
stacje.txt. Dane w plikach rozdzielone s znakiem tabulatora, pierwszy wiersz kadego
pliku jest wierszem nagwkowym.
Plik drogi.txt zawiera informacje dotyczce drg. S to: unikalny numer drogi
(id_drogi), nazwa drogi (nazwa), jej dugo (dlugosc) oraz identyfikator jej kategorii (id
kategorii). Dugo drogi jest podana w kilometrach i zaokrglona w d do penych
kilometrw.

Przykad
id_drogi nazwa dlugosc id_kategorii
1 Autostrada Bursztynowa 582 A
2 Autostrada Wolnosci 623 A
3 Zachodnia Droga Ekspresowa 480 S

Plik kategorie.txt zawiera informacje dotyczce kategorii drg: unikalny identyfikator


kategorii (id_kategori) oraz nazw kategorii (kategoria).

Przykad
id_kategorii kategoria
A autostrada
S droga ekspresowa

Plik sieci.txt zawiera informacje dotyczce sieci stacji benzynowych: unikalny


identyfikator sieci (id_sieci) oraz nazw sieci, do ktrej naley stacja (nazwa_sieci).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
219
Przykad
id_sieci nazwa_sieci
1 Dobre Paliwo
2 Standard Oil

Plik stacje.txt zawiera informacje dotyczce stacji benzynowych: unikalny


identyfikator stacji (id_stacji), numer drogi, przy ktrej jest pooona stacja (id_drogi), oraz
identyfikator sieci, do ktrej ona naley stacja (id_sieci).

Przykad
id_stacji id_drogi id_sieci
1 8 8
2 8 5
Korzystajc z danych zawartych w tych plikach oraz dostpnych narzdzi informatycznych,
wykonaj ponisze polecenia. Odpowiedzi zapisz w pliku wyniki.txt, a odpowied do
kadego zadania poprzed numerem oznaczajcym to zadanie.

108.1.
Podaj sumaryczn dugo drg wszystkich kategorii.

108.2.
Podaj nazw i dugo najduszej drogi, przy ktrej nie ley adna stacja benzynowa.

108.3.
rednia odlego pomidzy stacjami benzynowymi to stosunek cakowitej dugoci drogi do
liczby pooonych przy niej stacji. Jeeli przy drodze nie ma stacji benzynowych, odlego ta
jest niezdefiniowana i danej drogi nie bierzemy pod uwag podczas porwnywania rednich
odlegoci pomidzy stacjami.
Znajd drog, dla ktrej rednia odlego midzy stacjami benzynowymi jest najmniejsza.
Podaj numer drogi, jej nazw oraz redni odlego pomidzy stacjami na tej drodze, z
dokadnoci do 0,1 km.

108.4.
Podaj nazwy drg majcych w nazwie sowo autostrada, ale bdcych drogami innych
kategorii.

108.5.
Wykonaj zestawienie liczby stacji benzynowych nalecych do poszczeglnych sieci z
podziaem na kategorie drg, przy ktrych s pooone te stacje.

Zadanie 109.
Wizka zada Urzdzenia budowlane
Constall jest liderem wrd firm wynajmujcych urzdzenia i rusztowania dla budownictwa.
W trzech plikach tekstowych sprzet_budowlany.txt, klienci.txt i
wynajem.txt zostay zapisane dane dotyczce dziaalnoci firmy w 2014 roku.
220 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Pierwszy wiersz kadego z plikw jest wierszem nagwkowym, a dane w wierszach


rozdzielone s znakami tabulacji.
Plik o nazwie sprzet_budowlany.txt zawiera informacje dotyczce oferowanego
sprztu budowlanego. W kadym wierszu znajduje si: identyfikator sprztu (ID_sprzetu),
nazwa sprztu (Nazwa_sprzetu), koszt jego wynajcia na dob podany w z
(Koszt_wynajecia), kaucja za sprzt w z (Kaucja).

Przykad
ID_sprzetu Nazwa_sprzetu Koszt_wynajecia Kaucja
1 Agregat hydrauliczny ATLAS 100 1200
2 Agregat jednofazowy-moc: 2,8-3,2kW 65 1000

W pliku klienci.txt zapisane s w kadym wierszu: numer dowodu osobistego osoby


wynajmujcej sprzt (Nr_dowodu_osoby), imi tej osoby (Imie) oraz jej nazwisko
(Nazwisko).

Przykad
Nr_dowodu_osoby Imie Nazwisko
XGF208075 Radoslaw Warszawski
GUZ058053 Kacper Szwaja
Plik o nazwie wynajem.txt zawiera: dat wypoyczenia sprztu (Data_wypozycz),
dat jego zwrotu (Data_zwrotu), identyfikator wypoyczanego sprztu (ID_sprzetu),
odlego od magazynu firmy do miejsca, w ktrym sprzt ma by odebrany przez klienta,
podan w km (Transport_km), numer dowodu osobistego klienta (Nr_dowodu_osoby).

Przykad
Data_wypozycz Data_zwrotu ID_sprzetu Transport_km Nr_dowodu_osoby
2014-01-02 2014-01-07 106 0 MZM066623
2014-01-02 2014-01-07 14 0 FXN638961

Firma Constall pobiera opaty za usug transportu urzdzenia do klienta wedug poniszego
taryfikatora:
transport do 10 km wcznie 50 z,
transport powyej 10 km 100 z.
Korzystajc z danych zawartych w tych plikach oraz z dostpnych narzdzi informatycznych,
wykonaj ponisze polecenia. Kad odpowied umie w pliku wyniki.txt, poprzedzajc
j numerem odpowiedniego zadania.

109.1.
Podaj nazw urzdzenia wypoyczanego najczciej oraz liczb wypoycze tego urzdzenia.

109.2.
Jak czn kwot kaucji za wszystkie wypoyczone przez siebie urzdzenia wpaci Andrzej
Rydawski identyfikujcy si dowodem osobistym o numerze JCK343973?
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
221
109.3.
Podaj imiona i nazwiska osb, ktre wynajmoway od firmy Constall w 2014 roku wicej ni
trzy rne urzdzenia.

109.4.
Podaj liczb zarejestrowanych w bazie firmy klientw, ktrzy w 2014 roku nie wypoyczyli
adnego urzdzenia.

109.5.
Dla kadego miesica (od stycznia do grudnia) podaj:
a) przychd firmy z tytuu wypoycze urzdze budowlanych w tym miesicu,
b) przychd z tytuu opat za transport w tym miesicu.

Przykad do punktu a)
Jeeli drabina aluminiowa 3-czciowa zostaa wypoyczona 10.12.2014, a zwrcona
13.12.2014, to koszt wynajcia jest obliczany nastpujco:
liczba dni * cena za dob (3*300z=900 z).
Nie ma moliwoci wypoyczenia i oddania sprztu w tym samym dniu.
Uwaga: Opata jest pobierana w dniu wynajcia urzdzenia i naley j uwzgldni jako
przychd w miesicu, w ktrym urzdzenie zostao wypoyczone.

Zadanie 110.
Wizka zada Miejscowoci w Polsce
Informacje o podziale administracyjnym Polski oraz o wszystkich miejscowociach w jej
obrbie zapisane s w plikach: wojewodztwa.txt, powiaty.txt, gminy.txt oraz
miejscowosci.txt. Dane w plikach rozdzielone s znakiem tabulatora, pierwszy wiersz
kadego pliku jest wierszem nagwkowym.
Plik wojewodztwa.txt zawiera informacje dotyczce wojewdztw: unikalny numer
wojewdztwa (id_wojewodztwa) oraz nazw wojewdztwa (nazwa_wojewodztwa).

Przykad
id_wojewodztwa nazwa_wojewodztwa
02 dolnoslaskie
04 kujawsko-pomorskie

Plik powiaty.txt zawiera informacje dotyczce powiatw: unikalny numer powiatu


(id_powiatu), numer wojewdztwa, do ktrego on naley (id_wojewodztwa), oraz nazw
powiatu (nazwa_powiatu).

Przykad
id_powiatu id_wojewodztwa nazwa_powiatu
0201 02 boleslawiecki
0202 02 dzierzoniowski
222 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Plik gminy.txt zawiera informacje dotyczce gmin: unikalny numer gminy (id_gminy),
numer powiatu, do ktrego ona naley (id_powiatu), oraz nazw gminy (nazwa_gminy).

Przykad
id_gminy id_powiatu nazwa_gminy
0201022 0201 Boleslawiec
0206011 0206 Karpacz

Plik miejscowosci.txt zawiera informacje dotyczce miejscowoci: unikalny numer


miejscowoci (id_miejscowosci), numer gminy, w ktrej jest ona pooona(id_gminy), nazw
miejscowoci (nazwa_miejscowosci) oraz sowne okrelenie typu miejscowoci
(typ_miejscowosci).

Przykad
id_miejscowosci id_gminy nazwa_miejscowosci typ_miejscowosci
0162398 2206032 Abisynia osada
0954722 0609052 Abramowice Koscielne wies
Wykorzystujc dane zawarte w tych plikach oraz dostpne narzdzia informatyczne, rozwi
ponisze zadania. Odpowiedzi zapisz w pliku wyniki.txt, a odpowied do kadego
podpunktu poprzed numerem oznaczajcym dane zadanie.
Jeeli w treci pyta uyte s pojcia:
gmina miejska naley przez to rozumie gmin, na terenie ktrej jest dokadnie
jedna miejscowo i jest to miasto,
gmina miejsko-wiejska naley przez to rozumie gmin, na terenie ktrej znajduje
si kilka miejscowoci, z ktrych przynajmniej jedna jest miastem;
gmina wiejska naley przez to rozumie gmin, na terenie ktrej nie ma adnego
miasta;
miasto na prawach powiatu naley przez to rozumie miasto, ktrego nazwa jest
taka sama jak nazwa powiatu, na terenie ktrego si znajduje.

110.1.
Podaj liczb miast na terenie Polski.

110.2.
Oblicz, ile jest miejscowoci kadego typu w powiecie brodnickim (wie, miasto, osada itd.).

110.3.
Znajd powtarzajce si w kraju nazwy powiatw. Podaj nazwy tych powiatw oraz nazwy
wojewdztw, w ktrych te powiaty si znajduj. Zestawienie posortuj alfabetycznie wedug
nazwy powiatw. Powiaty o tych samych nazwach uporzdkuj alfabetycznie wedug nazw
wojewdztw.

110.4.
Ile jest gmin wiejskich w wojewdztwie kujawsko-pomorskim?
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
223
110.5.
Wykonaj zestawienie gmin miejskich o nazwach zaczynajcych si na J, podajc nazwy
powiatw i wojewdztw, w ktrych s one pooone.

Zadanie 111.
Wizka zada Malware
Malware Domain List to niekomercyjny projekt spoecznociowy, w ktrym tworzona jest
lista adresw stron internetowych i dokumentw stwarzajcych zagroenie: trojanw,
exploitw itp. List na bieco uzupeniaj profesjonalni entuzjaci bezpieczestwa w sieci.
W trzech plikach tekstowych przedstawiono dane zaczerpnite z tej listy. Dane w wierszach
oddzielone s pojedynczymi znakami tabulacji. W kadym pliku pierwszy wiersz jest
wierszem nagwkowym.
W pliku malware.txt znajduj si pozycje z tej listy, wybrane z okresu od stycznia 2014
do stycznia 2015 roku wcznie. Podano: dat rejestracji zagroenia (data), adres IP
komputera udostpniajcego zagroenie (IP), opis zagroenia (opis), numer ASN sieci, do
ktrej ten komputer naley (ASN), ciek dostpu do szkodliwej strony lub do zasobu (URL).
Przykad
data IP opis ASN URL
2014-12-17 62.76.74.228 Trojan.Downloader 51408 my-screenshot.net/
2014-12-04 31.41.218.232 CryptoLocker 42655 mysda24.com/f/pacchetto_38.zip
2014-11-25 89.218.31.11 Script.exploit 9198 zakonodatelstvo.kz/russ.html
W pliku asn.txt znajduj si informacje o sieciach komputerowych, zawierajce m.in.
informacje o numerze ASN (Autonomic System Number) identyfikatorze sieci,
wykorzystywanym w konfiguracji routerw. W pliku podano dla kadej sieci: numer ASN
(ASN), internetowy identyfikator kraju (ID_kraju), nazw organizacji regionalnej
przydzielajcej adres ASN (region) oraz nazw firmy zarzdzajcej sieci (siec).
Przykad
ASN ID_kraju region siec
1267 it ripencc ASN-INFOSTRADA WIND Telecomunicazioni S.p.A.
2514 jp apnic INFOSPHERE NTT PC Communications, Inc
2914 us arin NTT-COMMUNICATIONS-2914 - NTT America, Inc
Regionalne organizacje przydzielajce adresy ASN obejmuj:
apnic (Asia Pacific Network Information Centre) rejon Azji i Pacyfiku,
arin (American Registry for Internet Numbers) rejon Ameryki Pnocnej,
lacnic (Latin-American and Caribbean) rejon Ameryki aciskiej i Wysp
Karaibskich,
ripencc (Rseaux IP Europens) rejon Europy, Bliskiego Wschodu i centralnej
Azji,
afrinic rejon Afryki.
W pliku kraje.txt podano nazwy krajw (kraj) oraz ich 2-literowe identyfikatory
internetowe (ID_kraju).
224 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Przykad
kraj ID_kraju
Australia au
France fr
Hungary hu
Rozwi ponisze zadania, wykorzystujc dostpne narzdzia informatyczne. Wyniki zamie
w pliku tekstowym o nazwie malware_wynik.txt. Do oceny oddaj plik tekstowy
zawierajcy wyniki oraz plik zawierajcy realizacj komputerow Twojego rozwizania.

111.1.
Znajd te pozycje zoliwego oprogramowania, ktrych celem jest phishing, czyli wyudzanie
informacji od uytkownika (w polu: opis zawieraj acuch znakw: phish lub Phish). Podaj
list zawierajc dla kadej pozycji:
nazw kraju, z ktrego pochodzi komputer udostpniajcy zagroenie,
opis zagroenia (opis),
pen ciek dostpu do szkodliwego pliku (URL).

111.2.
Znajd pi sieci, z ktrych komputery udostpniy najwicej pozycji zoliwego
oprogramowania. Podaj zestawienie zawierajce dla kadej takiej sieci: nazw sieci, nazw
kraju, w ktrym znajduje si ta sie, liczb stron lub dokumentw zawierajcych zoliwe
oprogramowanie oraz liczb rnych adresw IP, z ktrych to oprogramowanie udostpniono.

111.3.
Dla kadego wpisu na list malware okrel domen, z ktrej udostpniono szkodliwe
oprogramowanie. Nazw domeny stanowi znaki pola URL liczone kolejno od lewej a do
pierwszego wystpienia znaku /, bez tego znaku. W kadym polu URL danych znak /
wystpuje przynajmniej jeden raz.
a) Podaj liczb domen, z ktrych pochodzi szkodliwe oprogramowanie.
b) Serwer DNS mona skonfigurowa tak, aby odpowiada kilkoma adresami IP dla
jednej domeny. Wyszukaj wrd domen te pozycje, ktrym odpowiada wicej ni
jeden adres IP. Podaj nazwy tych domen i odpowiadajce im liczby rnych adresw
IP.

111.4.
Sporzd w postaci tabeli zestawienie, w ktrym podasz liczb zarejestrowanych pozycji
zoliwego oprogramowania w kadym miesicu roku 2014, w podziale na poszczeglne
regiony: apnic, arin, lacnic, ripencc, afrinic. W zestawieniu nie uwzgldniaj danych ze
stycznia 2015 r.

111.5.
Zoliwe oprogramowanie moe by ukryte w plikach graficznych i uaktywnia si podczas
wywietlania obrazu, wykorzystujc luki w programach odtwarzajcych obraz.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
225
Znajd wszystkie wpisane na list malware pozycje informujce o zoliwym kodzie ukrytym
w obrazach zapisanych w formatach: jpg i png (pole URL koczy si: .jpg lub .png).
Sporzd w postaci tabeli zestawienie, w ktrym dla kadego, w ktrym znajdowa si
komputer udostpniajcy szkodliwy kod w plikach graficznych, podasz liczby tych plikw, z
podziaem na format jpg i png.

Zadanie 112.
Wizka zada Kod EAN
Kod EAN (European Article Number) jest kodem kreskowym powszechnie stosowanym na
opakowaniach towarw bdcych przedmiotem handlu. Czytnik kodu przetwarza go na cig
cyfr z zakresu 0..9.
Dla uproszczenia zadania (cho rzeczywisto wykracza poza te reguy) przyjto, e:
kody wszystkich towarw s 13-cyfrowe,
pierwsze 3 cyfry kodu s oznaczeniem kraju, w ktrym zarejestrowany jest producent,
nastpne 4 cyfry identyfikuj oddzia firmy producenta,
kolejne 5 cyfr jest identyfikatorem towaru,
ostatnia cyfra jest cyfr kontroln.
W pliku towary.txt zebrano dane o wybranych sodyczach, napojach, deserach i
uywkach dostpnych na polskim rynku (nieco zmodyfikowane na potrzeby zadania). Kody
EAN towarw s unikatowe. Towary o tej samej nazwie, lecz w opakowaniach o rnych
masach, posiadaj rne kody EAN. Dla kadego towaru podano: nazw (nazwa), jego
rodzaj (rodzaj), mas towaru w gramach (masa), podatek VAT (VAT) oraz kod EAN
(EAN). Kady towar opisany jest w osobnym wierszu. Przykad:
nazwa rodzaj masa VAT EAN
TIKI TAKI czekolada 100 0,23 5909102008735
KOPIEC KRETA ciasto 410 0,05 5909437089003
NIC NAC'S przekaska 40 0,08 4018077798818

W pliku kraje.txt znajduj si nazwy krajw (kraj), w ktrych zarejestrowani s


producenci towarw, oraz przydzielone tym krajom 3-cyfrowe kody (kod_kraju), bdce
pierwszymi trzema cyframi kodw EAN. Wikszo krajw posiada jeden kod, ale s kraje,
ktrym przydzielono wicej kodw. Przykad:
kod_kraju kraj
304 Francja
338 Francja
380 Bulgaria

W pliku producenci.txt znajduj si informacje o oddziaach firm producentw


towarw. Dla kadego oddziau podano: jego 4-cyfrowy kod stosowany w kodzie EAN
(kod_oddzialu), 3-cyfrowy kod kraju, w ktrym oddzia zosta zarejestrowany
(kod_kraju), nazw firmy (nazwa_firmy) oraz lokalizacj jej oddziau nazw miasta,
ewentualnie z nazw dzielnicy (lokalizacja). Niektre firmy maj wiele oddziaw,
ktre mog by zarejestrowane w rnych krajach. Przykad:
226 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

kod_kraju kod_oddziau lokalizacja nazwa_firmy


590 9020 Torun Pacific
590 1480 Jankowice Kraft-Foods
304 5140 Velizy-Villacoublay Kraft-Foods
W kadym pliku pierwszy wiersz jest wierszem nagwkowym. Dane w wierszach oddzielone
s znakiem tabulacji.
Rozwi ponisze zadania, wykorzystujc dostpne narzdzia informatyczne. Wyniki zamie
w pliku tekstowym o nazwie ean_wyniki.txt. Do oceny oddaj ten plik oraz
komputerow realizacj rozwizania.

112.1.
Dla kadego rodzaju towarw podaj liczb rnych krajw, z ktrych te towary pochodz.

112.2.
Dla wszystkich producentw obecnych na naszym rynku, a zarejestrowanych w Czechach,
podaj nazwy ich firm oraz lokalizacje ich oddziaw.

112.3.
Utwrz zestawienie, w ktrym dla kadego rodzaju towaru podasz najmniejsz mas towaru
tego rodzaju oraz nazw towaru tego rodzaju o najmniejszej masie.

112.4.
Wyszukaj towary z rodzaju baton w opakowaniach o masie przekraczajcej 300g. Dla
kadego z nich podaj: nazw towaru, jego mas oraz nazw firmy i nazw kraju, w ktrym
zarejestrowano oddzia producenta tego towaru.

112.5.
Kady towar ma okrelon stawk podatku VAT. Sporzd zestawienie, w ktrym dla
kadego kraju podasz liczb towarw pochodzcych z tego kraju, z podziaem na
poszczeglne stawki podatku VAT.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
227

3. Komentarze do zada
Zadanie 3.
Zastanwmy si, co dostaniemy w wyniku wywoania funkcji F(x, n). Niech n = 3a+b, gdzie
a i b s nieujemnymi liczbami cakowitymi oraz b < 3. Wwczas xn = x3a+b = xaxaxaxb.
Rozwamy teraz funkcj F. Nietrudno spostrzec, e gdy n < 3, to wartoci F(x,n) jest xn,
natomiast dla n = 3a+b > 2 mamy
F(x,n) = xbF(x, 3a) = xbF(x,a) F(x,a) F(x,a) = xbxaxaxa = xn.

3.1.
Aby obliczy wynik wywoania F(2, 10), wywoujemy rekurencyjnie F(2, 9), poniewa 2 10 =
233+1.
Aby obliczy wynik wywoania F(2, 9), wywoujemy rekurencyjnie F(2, 3) 29 = 233 =
232323.
Aby obliczy wynik wywoania F(2, 3), wywoujemy rekurencyjnie F(2, 1) 23 = 231 =
212121.
W wyniku wywoania F(2, 1) dostajemy 2.
Do obliczenia wyniku wywoania F(2, 3) podnosimy do potgi trzeciej otrzymany wynik
wywoania F(2,1) i dostajemy 8.
Do obliczenia wyniku wywoania F(2, 9) podnosimy do potgi trzeciej otrzymany wynik
wywoania F(2,3) i dostajemy 512.
Do obliczenia wyniku wywoania F(2, 10) mnoymy przez 2 otrzymany wynik wywoania
rekurencyjnego (2,9), otrzymujc na koniec 1024.

3.2.
Wiedzc, e funkcja oblicza warto xn, atwo ju wypeni brakujce pola w tabeli.

3.3.
Wywoanie F(2, 2):
wykonujemy 2*F(2, 1), czyli mamy jedno mnoenie.
Wywoanie F(2, 3):
wywoujemy F(2, 1) (bez mnoe), a nastpnie podnosimy uzyskany wynik do potgi trzeciej,
czyli w sumie wykonujemy dwa mnoenia.
Wywoanie F(3, 4):
wykonujemy 3*F(3, 3), czyli jedno mnoenie.
Dla uzyskania F(3, 3) obliczamy najpierw F(3, 1) (bez mnoenia), a nastpnie uzyskany
wynik podnosimy do potgi trzeciej, co oznacza kolejne dwa mnoenia.
W sumie wykonywane s trzy mnoenia.
Podobnie analizujemy pozostae przypadki.
228 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

3.4.
Po wywoaniu F z argumentem n bdcym potg trjki w kolejnych wywoaniach
rekurencyjnych za kadym razem zmniejszana jest trzykrotnie warto argumentu n, inaczej
mwic, zmniejszany jest wykadnik potgi trjki o jeden. Do momentu zmniejszenia
argumentu do 1 takich zmniejsze bdzie log 3 n . Po kadym z tych wywoa zostan
wykonane dwa mnoenia, zatem czna liczba mnoe wyniesie 2 log 3 n .

Zadanie 4.

4.1.
Zamieniamy liczb z systemu silniowego na system dziesitny:
(310)! = 3 3! + 1 2! + 0 1! = 3 6 + 2 + 0 = 20
(2011)! = 2 4! + 0 3! + 1 2! + 1 1! = 2 24 + 0 + 2 + 1 = 51
(54211)! = 5 5! + 4 4! + 2 3! + 1 2! + 1 1! = 5 120 + 4 24 + 2 6 + 2 + 1 = 711

4.2.
Korzystamy ze wskazwki umieszczonej w treci zadania. W systemie silniowym
wspczynnik xi, odpowiadajcy mnonikowi i!, spenia zaleno 0 . Oznacza to, e
maksymaln cyfr odpowiadajc mnonikowi 5! jest cyfra 5, maksymaln cyfr
odpowiadajc mnonikowi 4! jest 4 itd. Zatem maksymaln liczb 5-cyfrow zapisan w
silniowym systemie pozycyjnym jest (54321)! .

4.3.
Aby wykona zamian liczby 5489 z systemu dziesitnego na silniowy, posugujemy si
schematem opisanym w zadaniu.
Szukamy najwikszej liczby k, takiej e k! 5489. Poniewa 7!=5040, to k = 7. Obliczamy
wynik dziaania: x div k! = 5489 div 5040 = 1. W ten sposb otrzymujemy pierwsz cyfr
zapisu silniowego. Nastpnie obliczamy: x mod k! = 5489 mod 5040 = 449. Liczba 449 jest
now wartoci x. eby wyznaczy kolejn cyfr zapisu silniowego, zmniejszamy k o 1.
Analogicznie wypeniamy kolejne wiersze tabeli:
x k x div k! x mod k!
5489 7 1 449
449 6 0 449
449 5 3 89
89 4 3 17
17 3 2 5
5 2 2 1
1 1 1 0
Liczba dziesitna 5489 w zapisie silniowym: (1033221)!

4.4.
Analizujemy przedstawiony algorytm. W pierwszym etapie szukamy najwikszej liczby k,
takiej e k! x. Zauwamy, e ptla koczy si, gdy k! x. Jeeli k! = x, to znalelimy
odpowiednie k. Jeeli k! > x, to musimy zmieni warto zmiennej silnia (zmniejszamy
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
229
warto silnia k razy) oraz k (zmniejszamy k o 1). Std wynika, e pierwsz luk w
algorytmie wypeniamy zapisem: jeeli silnia x.
W drugiej czci algorytmu obliczamy kolejne cyfry zapisu silniowego. Aby uzyska kolejn
cyfr, musimy obliczy wynik dzielenia cakowitego liczby x przez k!, co odpowiada
instrukcji cyfra x div silnia. Po aktualizacji tworzonego zapisu silniowego (instrukcja
s s tekst (cyfra)) aktualizujemy warto x, co odpowiada instrukcji x x mod silnia lub
x x cyfra *silnia. Ostatnim etapem jest przygotowanie nowej wartoci silni
odpowiadajcej kolejnej cyfrze w zapisie silniowym. Bdzie to silnia silnia div k.

Zadanie 5.

5.1.
W analizie posuymy si tabel, w ktrej przeledzimy wartoci istotnych zmiennych w
trakcie dziaania algorytmu. Wiersze tabeli opisujce fragmenty dziaania algorytmu, w
ktrych nie zmienia si warto zmiennej j, zostay pogrupowane przez zastosowanie rnych
odcieni ta.
Warto Ktra instrukcja wykonana
j p k i x A[i] ki pi
5 5 7 6 5 11 +
4 4 7 5 10 5 +
4 5 7 6 10 11 +
3 3 7 5 3 5 +
3 3 5 4 3 10 +
2 2 7 4 4 10 +
2 2 4 3 4 3 +
1 1 7 4 12 10 +
1 4 7 5 12 5 +
1 5 7 6 12 11 +

5.2.
Brakujce fragmenty algorytmu dotycz zapamitania, a nastpnie wstawienia w poprawne
miejsce w tablicy aktualnie przetwarzanego elementu cigu, czyli A[j]. W ptli zewntrznej
elementy cigu s przetwarzane od przedostatniego do pierwszego, a w ptli wewntrznej
zmienna sterujca i ronie. Dlatego wyszukiwanie liniowe sprowadza si tutaj do
przegldania ju uporzdkowanych elementw tablicy A[j+1], A[j+2],, A[n] w celu
znalezienia waciwego miejsca dla elementu A[j]. Poniewa w ptli wewntrznej
porwnujemy kolejne elementy z x, pierwsza brakujca instrukcja suy zapamitaniu j-tego
elementu w zmiennej x. W ptli wewntrznej poszukiwanie miejsca do wstawienia j-tego
elementu rozpoczynamy od pozycji j+1, dlatego druga brakujca instrukcja to i j + 1.
Ostatnia brakujca instrukcja suy wstawieniu zapamitanego w zmiennej x elementu we
waciwe miejsce. Indeks i zatrzymuje si w wewntrznej ptli na elemencie wikszym od
wstawianego elementu x, dlatego x umieszczamy na pozycji i 1. (Zauwamy, e elementy
230 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

A[j+1],,A[i 1] zostaj wskutek wykonania ptli wewntrznej przesunite o jedn pozycj


w lewo.)

5.3.
W obu analizowanych algorytmach porwnania elementw cigu s wykonywane w ptli
wewntrznej. Liczba powtrze tej ptli zaley od wartoci danych. Dla cigu liczb podanych
w zadaniu liczba porwna jest rna w obu algorytmach.
Natomiast liczba przesuni elementw tablicy zaley tylko od wartoci danych i jest dla
ustalonych danych wejciowych taka sama w obu algorytmach.
W porwnywanych algorytmach liczba powtrze zewntrznej ptli zawsze jest taka sama,
bez wzgldu na wartoci danych wejciowych. W obu przypadkach ptla wykonywana jest
dla j = n - 1, n - 2, , 1. Instrukcja podstawienia dla zmiennej x jest wykonywana tylko
w ptli zewntrznej, wic liczba jej wykona jest (dla ustalonych danych) zawsze taka sama
w obu algorytmach.

Zadanie 6.

6.1.
Niewielki rozmiar analizowanych danych pozwala na przeledzenie dziaania algorytmu
i ustalenie kocowej zawartoci tablicy A bez penego zrozumienia istoty dziaania algorytmu.
Istotne jest tutaj, e w kolejnych obrotach ptli dopki s<n wykonuj porwnujemy ze sob
(i ewentualnie zamieniamy) elementy tablicy A w odlegociach 1, 2, 4 itd. ledzc dziaanie
programu, uzyskamy nastpujce rozwizanie:
k Pocztkowa zawarto tablicy A[1...2k] Kocowa zawarto tablicy A[1...2k]
2 [4, 3, 1, 2] [1, 4, 3, 2]
2 [2, 3, 4, 1] [1, 3, 2, 4]
3 [1, 2, 3, 4, 5, 6, 7, 8] [1, 2, 3, 4, 5, 6, 7, 8]
3 [8, 7, 6, 5, 4, 3, 2, 1] [1, 8, 7, 6, 5, 4, 3, 2]
3 [4, 5, 6, 1, 8, 3, 2, 4] [1, 5, 4, 6, 2, 8, 3, 4]
Postarajmy si jednak zrobi troch wicej: ustali ide podanego algorytmu; wiedz t
wykorzystamy rwnie przy rozwizywaniu zada 2 i 3.
Najpierw zauwamy, e po zakoczeniu ptli dla i=1,2,,k wykonuj zmienna n ma
warto 2k.
W pierwszym obrocie ptli dopki s<n wykonuj porwnujemy A[1] z A[2], A[3] z A[4] itd.
Przy porwnaniu A[i] z A[i+1] wykonujemy zamian, gdy A[i]>A[i+1]. A zatem po
pierwszym obrocie ptli w A[1] znajduje si minimum z A[1] i A[2], w A[3] znajduje si
minimum z A[3] i A[4], w A[5] znajduje si minimum z A[5] i A[6] itd.
Po kadym obrocie ptli dopki s<n wykonuj warto s zwiksza si dwukrotnie. Tak
wic przy drugim obrocie tej ptli warto s bdzie rwna 2. Wwczas porwnamy A[1]
z A[3] i, w przypadku gdy A[1] >A[3], dokonana zostanie zamiana tych elementw. W efekcie
w A[1] znajdzie si minimum z czterech pierwszych elementw tablicy A. Nastpnie
porwnamy A[5] z A[7], skutkiem czego w A[5] znajdzie si minimum z A[5], A[6], A[7],
A[8], a wic minimum z kolejnych czterech elementw tablicy A. Przeprowadzajc analiz
tak dalej, dochodzimy do wniosku, e takie lokalne minima z grup kolejnych czwrek
elementw tablicy A znajd si w pierwszych elementach tych czwrek.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
231
Co si stanie w kolejnych obrotach ptli dopki s<n wykonuj? atwo sprawdzi, e
wielko grup bdzie podwajana. Tak wic bdziemy mie do czynienia z grupami kolejnych
8 elementw, nastpnie grupami kolejnych 16 elementw itd. Minima z tych grup bd
zapamitywane w pierwszych elementach grup. Zatem po kolejnych obrotach ptli w A[1]
bd zapamitane kolejno minima z pierwszych 2i elementw tablicy A. W szczeglnoci po
k-tym obrocie, a wic na zakoczenie algorytmu, w A[1] znajdzie si minimum ze wszystkich
elementw tablicy A.

6.2.
Dwa pierwsze zdania s faszywe, co mona zauway na przykadach z zadania pierwszego.
Stwierdzenie Po zakoczeniu dziaania algorytmu 1 komrka A[1] zawiera najmniejsz
z liczb A[1],,A[2k] zachodzi dla przykadw z zadania 1, a jego prawdziwo dla kadych
danych wejciowych uzasadnilimy, omawiajc powyej dziaanie algorytmu 1.

6.3.
Przypomnijmy, e po wykonaniu pierwszej ptli n jest rwne 2k. Zauwamy te, e
w pierwszym obrocie ptli dopki s<n wykonuj instrukcja w wierszu (*) wykona si n/2
razy, w drugim obrocie ptli wykona si n/4 razy itd., w ostatnim obrocie wykona si jeden
raz (dla s=2k 1=n/2). Zatem instrukcja w wierszu (*) wykona si
1 + 2 + 4 + + n/4 + n/2 = n 1
razy (zauwa, e liczby 1, 2, 4, tworz cig geometryczny). Oznacza to, e pierwsze
z podanych czterech stwierdze jest prawdziwe, a drugie faszywe (2n>n 1 > n/2 dla n>2).
Poniewa warto s jest w trakcie dziaania algorytmu wiksza od zera, a instrukcja zamiany
z wiersza (**) wykonuje si tylko, gdy A[j]>A[j+s], instrukcja (**) nie zostanie wykonana ani
razu dla cigw uporzdkowanych, czyli speniajcych A[1]<A[2]<<A[n]. Prawdziwe jest
zatem stwierdzenie: Moliwe jest dobranie takiej pocztkowej zawartoci A[1..2k], e
instrukcja zamiany z wiersza (**) nie wykona si ani razu.
W celu ustalenia prawdziwoci ostatniego z podanych zda zauwamy, e liczba wykona
instrukcji z wiersza (**) jest nie wiksza od liczby wykona instrukcji z wiersza (*).
Ustalilimy wczeniej, e liczba wykona (*) jest rwna n 1, zatem ostatnie z podanych
w zadaniu zda jest faszywe: liczba wykona (**) jest nie wiksza n 1 < 2n2 dla n>0.

6.4.
Zwrmy uwag na kluczowe rnice midzy ptl wewntrzn dopki j<n wykonuj
algorytmu 1 i analogiczn ptl algorytmu 2:
w wierszu (*) algorytmu 1 porwnujemy elementy, ktrych indeksy rni si o s,
natomiast w analogicznym wierszu algorytmu 2 porwnujemy zawsze elementy
ssiednie;
warto j jest zwikszana o s po kadym obrocie ptli dopki s<n wykonuj
w algorytmie 1, natomiast w algorytmie 2 jest zwikszana o 1.
Kolejna kluczowa zmiana (w porwnaniu z algorytmem 1) dotyczy modyfikacji zmiennej s
na kocu kadego obrotu zewntrznej ptli dopki s<n wykonuj: s 2s w algorytmie 1
zostaa zmieniona na s s+1 w algorytmie 2.
Okazuje si, e po opisanych powyej zmianach algorytmu 1 (ktrych efektem jest algorytm
2) uzyskujemy metod sortowania bbelkowego:
232 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

w pierwszym obrocie ptli dopki s<n wykonuj najwikszy element spord


A[1],,A[n] zostanie przeniesiony na pozycj A[n] (po napotkaniu najwikszego
elementu bdziemy go zamienia z kolejnymi elementami a do umieszczenia go na
pozycji A[n]);
w drugim obrocie ptli dopki s<n wykonuj najwikszy element spord
A[1],,A[n 1] zostanie przeniesiony na pozycj A[n 1] (po napotkaniu tego
elementu bdziemy go zamienia z kolejnymi elementami a do umieszczenia go na
pozycji A[n 1]);
oglnie po i obrotach ptli dopki s<n wykonuj dla i[1,n 1] speniony jest
warunek: i najwikszych elementw spord A[1],,A[n] jest umieszczonych
w kolejnoci niemalejcej w komrkach A[n i +1], A[n i +2],, A[n].
Zauwamy, e ptla zewntrzna dopki s<n wykonuj wykona n 1 obrotw. Z
powyszych wasnoci wynika zatem, e po zakoczeniu dziaania algorytmu n 1
najwikszych elementw z A[1],,A[n] znajdzie si w komrkach A[2], A[3],, A[n] w
kolejnoci
A[2] A[3] A[n].
Z powyszych obserwacji rwnie wynika, e najmniejszy element z A[1],,A[n] znajdzie
si po zakoczeniu dziaania algorytmu w A[1], a zatem efektem dziaania algorytmu 2 jest
uporzdkowanie niemalejce A[1],..,A[n]. Powysze obserwacje prowadz do nastpujcego
opisu wyniku dziaania algorytmu 2:
Po zakoczeniu dziaania algorytmu 2 element A[i] jest nie wikszy (mniejszy bd
rwny)
ni element A[i+1] dla kadego i wikszego od 0
oraz mniejszego od n
Ptla dopki s<n wykonuj wykonuje n 1 obrotw, w kadym z nich ptla wewntrzna
(oraz instrukcja w wierszu (*)) wykona si n 1 razy. Zatem liczba wykona wiersza (*)
wynosi (n 1)2, co pozwala nastpujco uzupeni luki w ostatnim zdaniu:
Wiersz (*) algorytmu 2 wykonywany bdzie w przebiegu algorytmu
wicej ni n razy
mniej ni n2 razy

Zadanie 7.

7.1.
W zadaniu naley wybra te dane spord wymienionych w treci, ktre s zgodne z podan
specyfikacj rozwaanego algorytmu. W specyfikacji tej zakada si, e dana tablica T
zawiera n liczb rzeczywistych, gdzie = 2 , a wic jest liczb bdc potg dwjki.
Tego zaoenia nie spenia jedynie trzecia tablica podana w poleceniu.
Aby rozwiza drug cz zadania, naley przeanalizowa dziaanie algorytmu z treci
zadania. Mona zauway, e algorytm ten wykorzystuje technik dziel i zwyciaj w celu
uporzdkowania tablicy T od elementu najmniejszego do najwikszego. Mianowicie algorytm
dzieli tablic T na dwie czci. Nastpnie rekurencyjnie wywouje algorytm uporzdkuj, aby
je posortowa (w kolejnoci od najmniejszego elementu). Otrzymane dwie uporzdkowane
czci s nastpnie scalane, za pomoc procedury scal, w jedn cao, ktra jest ostatecznym
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
233
wynikiem algorytmu. Algorytm ten to nic innego ni algorytm sortowania przez scalanie
(ang. merge-sort). W celu rozwizania zadania wystarczy zatem uporzdkowa wybrane
tablice, ktre speniaj specyfikacj.

7.2.
W zadaniu naley uzupeni zasugerowane drzewo wywoa rekurencyjnych wykonywanych
przez algorytm uporzdkuj. Zgodnie z analiz algorytmu, jak przedstawiono w opisie
poprzedniego zadania, algorytm ten zawsze dzieli dan tablic [1 . . ] na dwie czci:
[1 . . ], [ + 1 . . ],
gdzie jest rwne n/2. Poniewa w specyfikacji algorytmu powiedziane jest, e = 2 ,
wic otrzymane czci s rwnoliczne i zawieraj dokadnie po = 21 elementw. To
pozwala na rekurencyjne wywoanie algorytmu uporzdkuj dla obu czci, a w konsekwencji
uzasadnia poprawno algorytmu. Aby rozwiza zadanie, wystarczy zatem dzieli dan
tablic na poowy. Z algorytmu mona atwo odczyta, e dla tablic jednoelementowych ( =
1) podzia na czci ju nie wystpuje. Std w rozwizaniu naley drzewo zakoczy na
poziomie, w ktrym we wszystkich wierzchokach znajduj si tylko pojedyncze liczby.

7.3.
W zadaniu naley poda czn liczb kosztownych operacji, jaka zostanie wykonana przez
funkcj uporzdkuj dla tablicy 16-elementowej. Zakadamy, e kosztowne operacje ukryte s
w funkcji scal, ktra wykonuje 2k-1 operacji dla dwch tablic o dugoci . W rozwizaniu
zadania bardzo pomocne jest narysowanie drzewa wywoa rekurencyjnych, ktre pozwala
zauway, gdzie s wykonywane kosztowne operacje i ile ich jest. W tym celu skorzystamy
z drzewa z poprzedniego zadania.
8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9

8, 80, 90, 14, 3, 5, 20, 10 5, 6, 90, 34, 11, 13, 56, 9

Pierwsza obserwacja jest taka, e szukana liczba operacji wykonanych przez algorytm
uporzdkuj jest sum liczby kosztownych operacji wykonywanych przez funkcje scal,
realizowanych na rnych poziomach tego drzewa.
Aby uzyska wynik tablica 16-elementowa na szczycie drzewa(pierwszy poziom), naley
scali dwa wyniki, tj. dwie tablice (na drugim poziomie) o dugoci 8. Oznacza to, e
realizowane jest scalanie, ktre wykona 2 8 1 = 15 kosztownych operacji. Dalej na
kolejnym poziomie realizowane s dwie operacje scalania tablic o dugoci 4, co cznie daje
2 (2 4 1) = 14 kosztownych operacji. Rozumujc dalej w ten sam sposb, dochodzimy
do wniosku, e na kolejnym poziomie wykonywanych jest cznie 4 (2 2 1) = 12
kosztownych operacji, a na kocu 8 (2 1 1) = 8 kosztownych operacji. Ostatecznie
uzyskujemy cznie 15 + 14 + 12 + 8 = 49 wszystkich kosztownych operacji
wykonywanych przez algorytm uporzdkuj(T) dla tablicy 16-elementowej.
234 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 8.

8.1.
Dla pierwszego wiersza w tabeli dane wejciowe to A=[3, 5, 12, 17] i B=[8, 10, 13, 14] oraz
x=21.
Przeanalizujmy kolejne kroki algorytmu. Na pocztku zmienne i oraz j przyjmuj wartoci:
i=1, j=4, liczba elementw w kadej tablicy wynosi n=4. Policzmy, ile razy sprawdzony
zostanie warunek w wierszu (*).
Lp. i j Czy i n oraz j > A[i]+B[j] (*) Czy Czy A[i]+B[j])<x
0 A[i] + B[j] = x
1 1 4 tak 17 nie tak
2 2 4 tak 19 nie tak
3 3 4 tak 26 nie nie
4 3 3 tak 25 nie nie
5 3 2 tak 22 nie nie
6 3 1 tak 20 nie tak
7 4 1 tak 25 nie nie
4 0 nie koniec dziaania algorytmu, wynik: FASZ
Dla danych wejciowych: A=[4, 6, 8, 10] i B=[5, 7, 9, 11] oraz x=13:
Lp. i j Czy i n oraz j > A[i]+B[j] (*) Czy Czy A[i]+B[j])<x
0 A[i] + B[j] = x
1 1 4 tak 15 nie nie
2 1 3 tak 13 koniec dziaania algorytmu, wynik:
PRAWDA

8.2.
Analiza dziaania algorytmu dla danych wejciowych z zadania 8.1 naprowadza na oglny
wynik obliczany przez algorytm. Teraz naley tylko sformuowa prawidowo i precyzyjnie
specyfikacj. Dla dwch tablic A i B posortowanych rosnco oraz liczby x algorytm sprawdza,
czy istnieje suma zoona z dowolnej liczby z tablicy A i dowolnej liczby z tablicy B, ktra
jest rwna liczbie x. Algorytm pobiera elementy z tablicy A, poczwszy od pierwszego,
a z tablicy B, zaczynajc od elementu ostatniego. Najpierw sprawdza, czy suma obu
elementw jest rwna x, jeli tak, to koczy dziaanie z wynikiem PRAWDA, w przeciwnym
razie sprawdza, czy suma jest mniejsza od x. Jeeli tak, to bierze do sumy kolejny (wikszy
od poprzedniego) element z tablicy A (indeks i zwiksza si o 1). Jeeli za suma jest wiksza
od x, bierze mniejszy element z tablicy B (indeks j zmniejsza si o 1). Dziki takim
przesuniciom i oraz j nie gubi dobrej sumy.
Przyspieszenie takiego sprawdzania jest moliwe dziki odpowiedniej kolejnoci
przegldania tablic (zmienne i, j) oraz pominiciu zbdnych sum, o ktrych wiadomo, e s
albo za due, albo za mae w stosunku do x.

8.3.
Skoro algorytm ma zwrci warto PRAWDA, wybierzmy dwa elementy takie, ktre nale
do dwch rnych tablic, a ich suma wyniesie 20, np. 10 i 10. Najlepiej jeli sumy kadych
dwch pozostaych elementw bd rne od 20. Tablice powinny by uporzdkowane
rosnco. Chcemy, aby algorytm wykona dokadnie sze porwna. Jedna z moliwych
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
235
strategii polega na zmuszeniu algorytmu do przejcia po wszystkich elementach tablicy A (5
porwna), a nastpnie porwnania pitego elementu z tablicy A z czwartym elementem z
tablicy B, po ktrym algorytm zwrci wynik PRAWDA i zakoczy dziaanie. Niech para (i, j)
oznacza indeks i-tego elementu tablicy A i j-tego elementu tablicy B. Mona dobra elementy
tablic tak, aby sumy w parach (1,5), (2,5), (3,5), (4,5) byy mniejsze od 20, suma pary (5,5)
bya wiksza od 20 i dopiero para (5,4) daa sum rwn 20, co spowoduje podanie PRAWDA
i zakoczenie wykonywania algorytmu.
Moe to by na przykad A=[2, 4, 6, 8, 10] i B=[5, 7, 9, 10,11] oraz x=20.

Zadanie 9.

9.1.
Dziaanie wiee(3, A, B, C) opiszemy przy pomocy tak zwanego drzewa wywoa
rekurencyjnych. W drzewie tym zapisywa bdziemy wszystkie wywoania funkcji wiee
bdce wynikiem uruchomienia wiee(3, A, B, C). Wywoania wiee(i, x, y, z) i wiee(i, x,
y, z) poczymy skierowan krawdzi, jeli w treci wiee(i, x, y, z) nastpuje wywoanie
wiee(i, x, y, z). Na przykad prowadzimy krawd od wiee(3, A, B, C) do wiee(2, C, B,
A), gdy wykonanie wiee(3, A, B, C) powoduje wywoanie wiee(2, C, B, A) (jest to
wywoanie z ostatniego wiersza: wiee(n 1, z, y, x)). Poniej prezentujemy pene drzewo
wywoa rekurencyjnych dla wiee(3, A, B, C).

W efekcie uzyskujemy nastpujce rozwizanie zadania:


n x y z
3 A B C
2 A C B
1 A B C
1 B C A
2 C B A
1 C A B
1 A B C

9.2.
Zadanie moemy rozwiza, ledzc dziaanie funkcji krok po kroku, pamitajc przy tym
o caej hierarchii wywoa rekurencyjnych. Przedstawimy nieco inne rozwizanie,
korzystajce z drzewa wywoa rekurencyjnych, ktre utworzylimy, rozwizujc zadanie 1.
Tworzc drzewo, stosowalimy zasad, e wywoania funkcji wiee wykonywane w trakcie
dziaania wiee(i, x, y, z) s wypisywane pod wywoaniem wiee(i, x, y, z), w kolejnoci od
lewej do prawej, zgodnie kolejnoci ich wykona w trakcie dziaania wiee(i, x, y, z). Na
przykad wywoanie wiee(2, A, C, B) jest wykonywane przed wiee(2, C, B, A) w trakcie
wiee(3, A, B, C), co odpowiada ich kolejnoci od lewej do prawej w naszym drzewie.
236 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Z powyszej obserwacji i treci funkcji wynika, e dla kadego wza naszego drzewa
najpierw wypisywane bd ruchy z jego lewego poddrzewa, potem ruch wypisz x y,
a nastpnie ruchy z jego prawego poddrzewa. Na przykad dla wiee(2, C, B, A) mamy cig
ruchw:
CA; CB; AB,
gdzie podkrelony ruch CB jest wynikiem instrukcji wypisz x y wykonanej
w wiee(2, C, B, A), a pozostae ruchy s wynikiem wywoa rekurencyjnych.
Stosujc powysz obserwacj, widzimy, e cig ruchw wygenerowany przez wiee(3, A, B,
C) to:
AB; AC; BC; AB; CA; CB; AB,
gdzie podkrelony ruch AB jest wynikiem instrukcji wypisz x y wykonanej
w wiee(3, A, B, C), ruchy na lewo od podkrelonego AB to efekt dziaania wiee(2, A, C,
B), a ruchy na prawo od podkrelonego AB to efekt dziaania wiee(2, C, B, A).

9.3.
Obserwacj podan w treci zadania moemy wyrazi zalenoci H(n)=2H(n 1)+1 dla
n>1. Z treci funkcji wynika te, e H(1)=1 (przy jednym krku wykonujemy jeden ruch).
Stosujc te zalenoci, uzyskujemy ponisze wartoci:
n H(n)
1 1
2 3
3 7
4 15
5 31
6 63
7 127
8 255
9 511
10 1023
Powysza tabela pozwala nam odkry zaleno H(n) = 2n 1. Formalnie zaleno t
moemy wykaza na przykad za pomoc zasady indukcji matematycznej, z ktr czytelnik
by moe zetkn si na lekcjach matematyki lub ktr bdzie mia sposobno pozna na
studiach wyszych.

9.4.
Algorytm przedstawiony w treci zadania wygeneruje dokadnie ten sam cig ruchw, jaki
uzyskalibymy, stosujc algorytm rekurencyjny podany wczeniej (dla odpowiednio
wybranego prta startowego i prta docelowego). Wiedzc o tym, moglibymy posikowa si
rozwizaniem zadania 2. Rwno cigw ruchw generowanych przez oba algorytmy nie
jest jednak oczywista, szczeglnie przy pierwszym zetkniciu z problemem wie z Hanoi
i podanymi algorytmami. Dlatego poniej prezentujemy rozwizanie, w ktrym nie
korzystamy z tych wasnoci.
Mamy przeledzi dziaanie algorytmu dla parzystego n (n=4), przy ktrym nieparzyste ruchy
(pierwszy, trzeci, pity,) bd polegay na przenoszeniu krka nr 1 o jedn pozycj na
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
237
lewo (ruchy AC, BA lub CB), natomiast pozostae ruchy nie zmieni pozycji krka
numer 1. Z obserwacji tych wynika, e uzyskany cig ruchw mona opisa jako:
AC, ??, CB, ??, BA, ??, AC, ??, CB, ??, BA, ??, ,
gdzie ?? odpowiada jednemu ruchowi, w ktrym nie zmieniamy pozycji krka numer 1. Po
przeniesieniu krka numer 1 ruchem AC krek numer 1 znajdzie si na prcie C, wic
w nastpnym ruchu nie uczestniczy prt C. Analogicznie po przeniesieniu krka numer 1
ruchem CB krek numer 1 znajdzie si na prcie B, wic w nastpnym ruchu nie
uczestniczy prt B. Podobna obserwacja zachodzi dla przeniesienia krka 1 ruchem BA.
Pozwala to nieco uszczegowi cig ruchw:
AC, A ? B, CB, A ? C, BA, B ? C, AC, A ? B, CB, A ? C, BA, B ? C, ,
gdzie x ? y oznacza ruch xy lub yx, w zalenoci od tego, ktry ruch w danym momencie
jest dozwolony (pamitajmy, e nie moemy ka krka wikszego na mniejszy).
Stosujc schemat oparty na powyszej regule, stwierdzimy, e wszystkie krki zostan
przeniesione z prta A na prt B po nastpujcych pitnastu ruchach:
AC, AB, CB, AC, BA, BC, AC, AB, CB, CA, BA, CB, AC,
AB, CB.

Zadanie 10.

10. 1.
Z treci zadania natychmiast otrzymujemy, e = 16, a wic = 4. Do rozwizania
zadania wystarczy zauway, e tablica Z[0 .. m-1] ma przechowywa potgi , 2 , 4 , 8 ,
gdzie = 2.

10.2.
Rozwizanie zadania wymaga przeprowadzenia krtkiej analizy algorytmu zapisanego
w funkcji F. Mona zauway, e funkcja F dokonuje podziau danej tablicy na poowy, o ile
> 1, a nastpnie wywouje si rekurencyjnie dla obu czci. Dodatkowo na kocu
wykonywane jest jeszcze jedno mnoenie. Std natychmiast otrzymujemy wzr rekurencyjny
na liczb () operacji mnoenia wykonywanych przez funkcj F dla tablicy n-elementowej:
() = 2 (/2) + 1.
Dysponujc powyszym wzorem, moemy atwo znale wyniki, ktre naley wpisa do
tabelki. Ponadto warto zauway, e rozwizaniem powyszej rekurencji jest funkcja
() = 1 ( = 2 ).

10.3.
Najpierw wyznaczymy () liczb wywoa rekurencyjnych, jaka zostanie wykonana
przez funkcj F przy obliczaniu wartoci wielomianu () stopnia 1, gdzie jest potg
dwjki. Po przeprowadzeniu krtkiej analizy algorytmu moemy zauway, e jeli = 1, to
funkcja F nie wykona adnych dodatkowych wywoa rekurencyjnych, a wic
(1) = 1.
Natomiast dla > 1 mona zauway, e funkcja wykonuje dodatkowo dwa wywoania
rekurencyjne dla tablic o poow mniejszych, co oznacza, e
238 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

() = 2(/2) + 1.
Ucze moe tutaj zauway podobiestwo do poprzedniego zadania. Jedyn rznic jest to,
e w powyszej rekurencji mamy warunek pocztkowy (1) = 1. W zadaniu jednak naley
znale wzr oglny dla (). Aby go wyprowadzi, warto wyznaczy kilka pocztkowych
wartoci funkcji (), mianowicie mamy:
(1) = 1
(2) = 2 (1) + 1 = 3,
(4) = 2 (2) + 1 = 7,
(8) = 2 (4) + 1 = 15,
(16) = 2 (8) + 1 = 31.
Std mona wywnioskowa, e () = 2 1. Mona to udowodni za pomoc indukcji
matematycznej.
10.4.
W zadaniu rozwaane s wielomiany stopnia 1, gdzie tym razem jest potg trjki. Do
rozwizania problemu obliczania wartoci wielomianu stosuje si rwnie technik dziel
i zwyciaj. Zaproponowana funkcja G dokonuje podziau tablicy wspczynnikw na trzy
rwne czci, a nastpnie, po rozwizaniu trzech podproblemw obliczania (), (), (),
funkcja oblicza swj wynik, wykonujc dodatkowo 2 mnoenia. W zadaniu naley obliczy
czn liczb mnoe (oznaczmy j przez ()) wykonywanych przez funkcj G dla
problemw o pewnych rozmiarach. Przeprowadzajc analiz podobn jak w zadaniu 2,
otrzymujemy nastpujcy zwizek rekurencyjny:
() = 3(/3) + 2
z warunkiem pocztkowym (1) = 0. Powyszy wzr waciwie wystarczy do rozwizania
caego zadania. Warto jednak dla dodatkowego wiczenia wykaza, e rozwizaniem
powyszej rekurencji jest funkcja
() = 1.
Porwnujc to z wynikiem zadania 2, widzimy, e funkcje F i G wykonuj dokadnie t sam
liczb mnoe.

Zadanie 11.

11.1.
Rozwizanie zadania uatwia fakt, e coraz bardziej zoone wyraenia pojawiajce si
w kolejnych wierszach tabeli skadaj si z wyrae, ktre wystpuj w wierszach
wczeniejszych. W szczeglnoci wyraenie z ostatniego wiersza
( (4 + 3) 2 ) (5 ( 7 6 ) )
mona przedstawi jako W1 W2 dla wyrae
W1 = ((4 + 3) 2),
W2 = (5 ( 7 6 )),
ktre znajduj si odpowiednio w wierszu trzecim i czwartym tabeli. A zatem
ONP(( (4 + 3) 2 ) (5 ( 7 6 ) )) = ONP(W1) ONP(W2)-
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
239
dla powyszych W1 i W2. Wypeniajc kolejne wiersze tabeli, moemy zatem korzysta z
wartoci zapisanych w wierszach wczeniejszych. Poniej prezentujemy kocowe
rozwizanie:
W = W1 op W2 W1 W2 op ONP(W)
4+3 4 3 + 43+
(4 + 3) 2 (4+3) 2 43+2
5(76) 5 (7 6) 576
( (4 + 3) 2 ) (5 ( 7 6 ) ) ( (4 + 3) 2 ) (5 ( 7 6 ) ) 43+2576

11.2.
Zadanie to mona rozwiza, ledzc dziaanie algorytmu na podanych danych.
W algorytmie korzystamy ze stosu reprezentowanego przez tablic T. Wyraenie
wartociujemy, czytajc sekwencyjnie (od lewej do prawej) jego kolejne elementy
i wykonujc nastpujce akcje:
jeli przeczytany element jest liczb, umieszczamy go na szczycie stosu;
jeli przeczytany element jest operatorem op (nalecym do zbioru {+, , }),
zdejmujemy kolejno dwie liczby ze szczytu stosu (nazwijmy je odpowiednio a i b)
oraz umieszczamy na szczycie stosu warto b op a.
W naszym rozwizaniu stos jest reprezentowany przez tablic T, zawarto stosu to T[1]
T[2]T[k 1], gdzie T[1] jest elementem znajdujcym si na dnie stosu, a T[k 1] jest
elementem ze szczytu stosu. Dlatego te warto zmiennej k zmienia si odpowiednio, gdy
zdejmujemy elementy ze stosu lub umieszczamy elementy na jego szczycie.
Wykorzystujc powyszy opis, podajemy poniej rozwizanie dla wszystkich wierszy,
dodajc dla czytelnoci kolumn z kolejnymi wczytywanymi znakami wyraenia w postaci
ONP.
Warto zmiennej k po i-tym Zawarto tablicy T[1..k-1] po i-tym
i X[i]
przebiegu ptli przebiegu ptli
1 9 2 9
2 7 3 9, 7
3 + 2 16
4 3 3 16, 3
5 2 48
6 5 3 48,5
7 4 4 48, 5, 4
8 3 48, 1
9 2 4 48, 1, 2
10 3 48,2
11 2 46

11.3.
Podobnie jak w zadaniu 2 rozwizanie mona uzyska, ledzc dziaanie algorytmu na
podanych danych wejciowych. Pozostawiajc takie rozwizanie czytelnikowi, postaramy si
opisa kryterium rozstrzygajce, czy dany tekst X jest poprawnym wyraeniem ONP, na
ktrym opiera si podany algorytm.
240 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Dziaanie algorytmu mona streci w nastpujcy sposb:


czytajc kolejne elementy X, liczymy rnic midzy liczb przeczytanych dotychczas
liczb a liczb przeczytanych dotychczas operatorw; rnic t zachowujemy
w zmiennej licznik;
jeli po przeczytaniu kolejnego znaku rnica midzy liczb przeczytanych
dotychczas liczb a liczb przeczytanych dotychczas operatorw (zmienna licznik) jest
mniejsza ni 1, uznajemy, e X nie jest poprawnym wyraeniem w postaci ONP;
jeli po przeczytaniu ostatniego znaku rnica midzy liczb przeczytanych liczb
a liczb przeczytanych operatorw jest rwna 1, uznajemy, e X jest poprawnym
wyraeniem w postaci ONP; w przeciwnym razie uznajemy, e X nie jest poprawnym
wyraeniem w postaci ONP.
Stosujc powysze obserwacje, atwo uzupeni tabel:
Warto zmiennej licznik Czy to poprawne
Napis
po zakoczeniu wyraenie w ONP?
12+ 1 NIE
12+34578+9 4 NIE
12345++++ 1 TAK
12345++++++ 1 NIE
12345+++++ 1 NIE
12+233445+ 1 TAK
12+233445+ 1 NIE
12+34578+9+++ 1 TAK

11.4.
Zauwamy, e X = (X1 op9 10), gdzie
X1= (((((((((1 op1 2) op2 3) op3 4) op4 5) op5 6) op6 7) op7 8) op8 9).
Zatem ONP(X) = ONP(X1) 10 op9. Regularno wyraenia X pozwala na wycignicie
wniosku, e ONP(X) uzyskamy, wypisujc kolejno od prawej strony 10 op9, 9 op8, 8 op7 itd.:
ONP(X): 1 2 op1 3 op2 4 op3 5 op4 6 op5 7 op6 8 op7 9 op8 10 op9.
Analogicznie Y=(1 op1 Y1), gdzie
Y1= (2 op2 (3 op3 (4 op4 (5 op5 (6 op6 (7 op7 (8 op8 (9 op9 10)))))))).
Zatem ONP(Y) = 1 ONP(Y1) op1. Regularno wyraenia Y pozwala na wycignicie
wniosku, e ONP(Y) uzyskamy, wypisujc kolejno od lewej strony 1, 2, 3 itd. oraz od prawej
strony op1, op2, op3 itd.:
ONP(Y): 1 2 3 4 5 6 7 8 9 10 op9 op8 op7 op6 op5 op4 op3 op2 op1.

Zadanie 12.
Zaprezentowany szyfr Beauforta jest prostym szyfrem wieloalfabetycznym, w ktrym kada
z liter tekstu jest szyfrowana wedug jednego z 26 podobnych szyfrw przestawieniowych.
Szyfry te rni si przesuniciem szyfrowanej litery o warto k. Pocztkowa warto k
okrela, ktry z 26 szyfrw zosta wyborany do zastosowania w przypadku pierwszej litery.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
241
Dalsze postpowanie (zmiany parametru k dla kolejnych liter / wybr szyfru dla kolejnej
litery) jest zdefiowane w algorytmie i zalene jedynie od wartoci k dla pierwszej litery.
W podanym algorytmie szyfrowanie kadej litery realizowane jest kolejno poprzez: odjcie
kodu litery od 90 (inaczej mwic, obliczenie kolejnego od koca alfabetu numeru litery
szyfrujcej), dodanie do wyniku liczby k (przesunicie o k liter w prawo), a nastpnie
obliczenie reszty z dzielenia dotychczasowgo wyniku (czyli jeeli przesunicie miaoby
spowodowa wyjcie poza alfabet, to bdziemy odliczali to przesunicie ponownie od
pierwszej litery alfabetu). Po tych wszystkich obliczeniach do otrzymanej wartoci dodawane
jest 65, aby otrzyma kod ASCII szukanej litery.

12.1.
W kolejnych iteracjach warto zmiennej i zmienia si o 1. Po kadym zwikszeniu wartoci
zmiennej i o 1 nastpuje zwikszenie zmiennej k o biec warto zmiennej i. Zatem
uzupeniona tabela wyglda nastpujco:
lp i k
1 0 20
2 1 21
3 2 23
4 3 26
5 4 30
6 5 35

12.2.
Poniewa po dodaniu k obliczana jest reszta z dzielenia przez 26, to zwikszenie k o 26 lub
wielokrotno tej liczby da identyczny wynik. Istnieje zatem jedynie 26 wartoci
pocztkowych k dajcych rne szyfrogramy.

12.3.
Szyfrowanie sowa "MAPA" wyglda nastpujco:
1. Litera "M" (kod 77) jest zastpowana liter "B"
(90-77+1) mod 26 + 65 daje w wyniku 66, czyli "B"
warto i jest zwikszana o 1 (do 1)
warto k jest zwikszana o i (do 2)
2. Litera "A" (kod 65) jest zastpowana liter "O"
(90-65+2) mod 26 + 65 daje w wyniku 79, czyli "O"
warto i jest zwikszana o 1 (do 2)
warto k jest zwikszana o i (do 4)
3. Litera "P" (kod 80) jest zastpowana liter "B"
(90-80+4) mod 26 + 65 daje w wyniku 66, czyli "B"
warto i jest zwikszana o 1 (do 3)
242 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

warto k jest zwikszana o i (do 7)


4. Litera "A" (kod 65) jest zastpowana liter "T"
(90-65+7) mod 26 + 65 daje w wyniku 84, czyli "T"
Aby odszyfrowa sowo "DAN", wykonujemy operacj odwrotn do tej w algorytmie
szyfrujcym. W poniszych obliczeniach x jest kodem biecej litery.
1. W pierwszym kroku musimy znale liter, ktra w wyniku szyfrowania zostaa
zastpiona przez "D" (kod 68). Wiemy, e (90x+14) mod 26 + 65 dao w wyniku 68,
czyli (90x+14) mod 26 dao 3. Wiemy zatem, e (90x+14) byo rwne 3 (lub
wiksze o wielokrotno 26). Wiemy rwnie, e x miao warto z zakresu 65-90.
atwo zatem zauway, e wartoci x powinno by 75, co odpowiada literze "K".
2. W drugim kroku musimy znale liter, ktra w wyniku szyfrowania zostaa
zastpiona przez "A" (kod 65). Wiemy, e (90x+15) mod 26 + 65 dao w wyniku 65.
Wynika z tego, e (90x+15) jest rwne 0 (lub wiksze o wielokrotno 26). Biorc
pod uwag moliwe wartoci x, atwo mona wyliczy, e x jest rwne 79, czyli
odpowiada literze "O".
3. W trzecim kroku musimy znale liter, ktra w wyniku szyfrowania zostaa
zastpiona przez "N" (kod 78). Wiemy, e (90x+17) mod 26 + 65 dao w wyniku 78.
Wynika z tego, e (90x+17) jest rwne 13 (lub wiksze o wielokrotno 26). Biorc
pod uwag moliwe wartoci x, atwo mona wyliczy, e x jest rwne 68, czyli
odpowiada literze "D".

12.4.
Algorytm szyfrujcy wykonuje dla kadej kolejnej litery i nastpujce dziaania (w kolejnych
krokach dodany fragment przeksztacenia jest zaznaczony pogrubieniem):
przeksztaca kod ASCII na numer w alfabecie <1; 26>
(Tekst[i]-64);
oblicza numer litery w alfabecie, liczc go od jego koca (w odwrconym alfabecie)
(26-(Tekst[i]-64));
zwiksza znaleziony numer litery o k
(26-(Tekst[i]-64)+k);
przeksztaca tak obliczony numer na numer litery w odwrconym alfabecie <1; 26>
((26-(Tekst[i]-64)+k) mod 26 + 1);
przeksztaca ten numer na kod ASCII
((26-(Tekst[i]-64)+k) mod 26 + 1 + 64).
Algorytm deszyfrujcy powinien te operacje wykona w odwrotnej kolejnoci:
przeksztaci kod ASCII na numer w odwrconym alfabecie
(Szyfrogram[i]-64);
zmniejszy znaleziony numer litery o k
((Szyfrogram[i]-64)-k);
przeksztaci tak obliczony numer na numer litery w odwrconym alfabecie <1; 26>
(((Szyfrogram[i]-64)-k) mod 26 + 1);
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
243
obliczy numer litery w zwykym alfabecie
(26-(((Szyfrogram[i]-64)-k) mod 26 + 1));
przeksztaci numer w alfabecie na kod ASCII
((26-(((Szyfrogram[i]-64)-k) mod 26 + 1))+64).
Przeksztacajc tak uzyskany wzr, uzyskamy:
(26-(((Szyfrogram[i]-64)-k) mod 26 + 1))+64
(26-((Szyfrogram[i]-64-k) mod 26 + 1))+64
26-((Szyfrogram[i]-64-k) mod 26 + 1)+64
(26-(Szyfrogram[i]-64-k)) mod 26 + 1 + 64
(26-(Szyfrogram[i]-64-k)) mod 26 + 65
(26-Szyfrogram[i]+64+k) mod 26 + 65
(90-Szyfrogram[i]+k) mod 26 + 65
Pozostae fragmenty algorytmu (ptla pobierajca kolejne litery, zmiana wartoci klucza) nie
ulegaj zmianie. Cay algorytm bdzie wic wyglda nastpujco:
i 0
dopki (i<n) wykonuj
Tekst[i] (90- Szyfrogram[i]+k) mod 26 + 65
i i+1
k k+i
Warto zauway, e algorytm deszyfrujcy jest praktycznie taki sam jak szyfrujcy.

Zadanie 13.

13.1.
Podany algorytm kady kolejny punkt przeksztaca na inny: wsprzdne (PX[i], PY[i])
zamieniaj si na (ax (PX[i] ax), ay (PY[i] ay)). Nastpnie przeksztacony punkt jest
wyszukiwany wrd podanych.
Algorytm poda wynik TAK, jeli kady z punktw podanego zbioru zamieni si na punkt
nalecy rwnie do zbioru. Jeli ktrykolwiek punkt po przeksztaceniu nie daje si odnale
w tablicach PX, PY, algorytm natychmiast koczy dziaanie z wynikiem NIE.
W pierwszym przykadzie sprawdzamy bezporednio, e punkt P1 przechodzi na P6, P2 na P5,
P3 na P4, P4 na P3, P5 na P2 oraz P6 na P1.
W drugim okazuje si, e punkt P3 (-2,2) przechodzi na punkt (0,0), ktrego nie ma w zbiorze.
W trzecim przykadzie P1 przechodzi na P3, P2 na P4, P3 na P1, P4 na P2, za punkt P5 po
przeksztaceniu pozostaje tym samym punktem P5 (a zatem rwnie da si odnale w
zbiorze).

13.2.
Analizujc algorytm z pomoc rysunkw, dochodzimy do wniosku, e kady z punktw Pi
jest przenoszony na przeciwlegy (pooony symetrycznie) punkt wzgldem A. Istotnie,
zmienne roznicax i roznicay mierz rnic midzy punktami Pi oraz A, kolejne ich odjcie
od wsprzdnych A spowoduje wic odejcie od punktu A w tym samym kierunku i na tak
sam odlego, jaka bya midzy Pi i A.
244 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zatem algorytm zwraca TAK, jeli dla kadego punktu Pi da si znale w zbiorze inny (lub
ten sam) punkt pooony symetrycznie do niego wzgldem A. Warto przy okazji nadmieni,
e w geometrii nazywa si w takiej sytuacji punkt A rodkiem symetrii zbioru {P1, P2,..., Pn},
a sam zbir rodkowosymetrycznym.
Jeli rozumiemy, jak dziaa algorytm, pozostaa nam geometryczna cz zadania: musimy
uzupeni podane punkty P1, P2,..., P5 jeszcze jednym punktem P6, a take znale punkt A
tak, aby by on rodkiem symetrii zbioru {P1, P2,..., Pn}. Trzeba tak dobra punkt P6, aby by
on symetryczny do jednego ze znanych ju punktw, za pozostae poczyy si w pary
symetryczne wzgldem A.
Wybieramy zatem punkt A (2,1) taki, aby punkt P1 przechodzi na P4 (i odwrotnie), a P2 na
P5. Punkt P6 musi wic by symetryczny do P3, a zatem mie wsprzdne (3,-2).

Zadanie 14.

14.1.
Zadanie polega na analizie podanego algorytmu i zaobserwowaniu, e do obliczenia pola
powierzchni pewnego wielokta wystarczy obliczy wielkoci, ktre zasugerowano w tabeli.
Do rozwizania zadania wystarczy wykona elementarne obliczenia arytmetyczne w celu
wyznaczenia wartoci +1 oraz (+1 ) dla kolejnych wartoci = 1,2, ,5. Do
rozwizania drugiej czci zadania, a wic do wyznaczenia pola powierzchni, wystarczy
wykorzysta podany w zadaniu wzr

1
= (+1 1 ) .
2
=1
Ostatecznie odpowied uzyskujemy, dodajc wszystkie liczby w kolumnie zawierajcej
wartoci (+1 ) , a nastpnie dzielc uzyskan sum przez 2.

14.2.
W zadaniu naley poda wzr na pole trjkta przy zadanych wsprzdnych jego
wierzchokw. Do tego celu mona wykorzysta podany algorytm geodety. Poniewa w
zadaniu jest dodatkowe zaoenie, e dane s wsprzdne wierzchokw odwiedzanych w
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
245
kolejnoci zgodnej z ruchem wskazwek zegara, wic do rozwizania zadania mona
bezporednio wykorzysta wzr dany w treci zadania. Majc trzy punkty 1 = = [1 , 1 ],
2 = = [2 , 2 ], 3 = = [3 , 3 ], przyjmujemy zatem = 3 oraz, wobec kroku 3
schematu geodety (podanego w treci zadania), 4 = 1 = [1 , 1 ], a wic 4 = 1 . Oznacza
to, e otrzymujemy nastpujcy wzr na pole trjkta
4
1 (2 0 ) 1 + (3 1 ) 2 + (4 2 ) 3
= (+1 1 ) = ,
2 2
=1

a wobec tego, e w algorytmie przyjmujemy 0 = = 3 , otrzymujemy wynik.

14.3.
Aby wyznaczy liczb operacji arytmetycznych (dodawanie, odejmowanie, mnoenie)
wykonywanych przez algorytm, wystarczy zauway, e wszystkie tego typu operacje
wykonywane s jedynie w ptli
dla = 1,2, , wykonuj
+ (+1 1 )
Poniewa wewntrzna instrukcja wykonuje po jednej operacji kadego typu, za ptla
wykonuje t instrukcj razy, czna liczba operacji dodawania i odejmowania wynosi 2, a
operacji mnoenia .

Zadanie 15.

15.1.
Z zasad tworzenia zbiorw Cantora kolejnych rzdw wynika, e z kadego odcinka zbioru
Cantora rzdu n powstaj dwa odcinki w zbiorze Cantora rzdu n+1. Zatem z jednego
odcinka w zbiorze Cantora rzdu 0 powstaj dwa odcinki w zbiorze Cantora rzdu 1,
nastpnie z dwch odcinkw w zbiorze Cantora rzdu 1 otrzymujemy cztery odcinki w
zbiorze Cantora rzdu 2. Kontynuujc to rozumowanie, w zbiorze rzdu 4 mamy 2*8=16
odcinkw, w zbiorze rzdu 5 mamy 2*16=32 odcinkw, w zbiorze rzdu 6 mamy 2*32=64
odcinkw itd. Oglnie liczba odcinkw w zbiorze Cantora rzdu n+1 jest dwa razy wiksza
ni liczba odcinkw w zbiorze Cantora rzdu n. Std atwo moemy wyznaczy oglny wzr
okrelajcy liczb odcinkw w zbiorze Cantora rzdu i: C(n)=2n.

15.2.
W zbiorach Cantora kolejnych rzdw (poczwszy od zbioru Cantora rzdu 1) zachodzi
nastpujca prawidowo: dugo odcinka w zbiorze rzdu n+1 jest rwna jednej trzeciej
dugoci odcinka ze zbioru rzdu n. Zatem dugo odcinka w zbiorze rzdu 1 rwna jest
1 1
jednej trzeciej dugoci jednego odcinka w zbiorze rzdu 0 i wynosi 3 1 = 3, dugo
odcinka w zbiorze rzdu 2 rwna jest jednej trzeciej dugoci jednego odcinka w zbiorze
1 1 1 1 1
rzdu 1 i wynosi 3 3 = 9. Z kolei w zbiorze Cantora rzdu 3 dugo odcinka wynosi 3 9 =
1 1
, w zbiorze rzdu 4 dugo odcinka wynosi itd. Na tej podstawie atwo jest wyznaczy
27 81
1
oglny wzr okrelajcy dugo jednego odcinka w zbiorze Cantora rzdu n: D(n)=3.
246 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

15.3.
Z omwienia poprzedniego zadania wiemy, e kady odcinek [x; y] zbioru Cantora rzdu n
1 1 2
ma dugo = 3. Uzyskujemy z niego odcinki [x; x+3+1] i [x+3+1;y], nalece do
zbioru Cantora rzdu n+1. Korzystajc z tej zalenoci, wyznaczymy odcinki zbiorw
Cantora kolejnych rzdw:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
247
n dugoci odcinkw odcinki w zbiorze Cantora rzdu n
0 1 [0; 1]
1 1 2
1 [0; 3], [3; 1]
3
1 1 21 27 8
2 [0; 9], [9;3], [3;9], [9;1]
9
1 1 2 1 2 7 8 1
3 [0; 27], [27; 9], [9; 27], [27; 3],
27
2 19 20 7 8 25 26
[3; 27], [27; 9], [9; 27], [27; 1].
Znajc koce odcinkw podane w postaci uamkw zwykych, moemy zastosowa algorytm
konwersji liczby do jej reprezentacji w systemie pozycyjnym o okrelonej podstawie (w
naszym przypadku podstaw systemu jest 3).
Sprbujmy jednak znale ogln prawidowo, ktra zachodzi dla trjkowych reprezentacji
kocw odcinkw w zbiorach Cantora kolejnych rzdw.
Zauwamy, e tworzc zbir Cantora rzdu 1, usuwamy ze zbioru Cantora rzdu 0 liczby
12
z przedziau (3,3), czyli dokadnie zbir tych liczb, ktrych zapis w systemie trjkowym ma
1
na pierwszym miejscu po przecinku cyfr 1; wyjtkiem od tej reguy jest liczba 3 o zapisie
trjkowym 0,1, czyli liczba, w ktrej 1 jest ostatni cyfr. W efekcie uzyskujemy przedziay
[0; 0,1], [0,2; 1].
Podobnie, tworzc zbir Cantora rzdu 2, usuwamy ze zbioru Cantora rzdu 1 liczby, ktrych
zapis w systemie trjkowym ma na drugim miejscu po przecinku cyfr 1; wyjtkiem s liczby
o zapisie trjkowym 0,01 i 0,21, w ktrych 1 jest ostatni cyfr. W efekcie uzyskujemy
przedziay: [0; 0,01], [0,02; 0,1], [0,2; 0,21] i [0,22; 1]. Mona zauway, e pocztki
przedziaw to liczby, ktrych rozwinicie trjkowe:
ma co najwyej dwie cyfry po przecinku,
skada si tylko z cyfr 0 i 2.
Analogicznie pocztki odcinkw wchodzcych w skad zbioru Cantora rzdu n to liczby,
ktrych rozwinicie trjkowe:
ma co najwyej n cyfr po przecinku,
skada si tylko z cyfr 0 i 2.
Uwzgldniajc powysz obserwacj oraz fakt, e odcinki w zbiorze Cantora rzdu 3 maj
1
dugo 27=0,001(3), uzyskujemy nastpujce trjkowe reprezentacje odcinkw tworzcych
zbir Cantora rzdu 3:
[0; 0,001],[0,002;0,01], [0,02; 0,021], [0,022; 0,1],
[0,2; 0,201],[0,202;0,21], [0,22;0,221], [0,222; 1].
248 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 16.

16.1.
Przeanalizujmy krok po kroku dziaanie algorytmu na podanej planszy. Na pocztku we
wszystkie biae pola wpisana jest liczba -1, za w pole (1,1) liczba 0:

Kiedy rozpoczyna si gwna ptla, zmienna k jest rwna 0. Algorytm wykona kolejno
nastpujce czynnoci:
sprawdzi, czy s takie pola, ktrych odlego od lewego grnego rogu rwna jest k
(w tym wypadku 0) jest jedno takie pole na planszy, wic algorytm jeszcze si nie
koczy.
dla kadego takiego pola bdzie szuka wszystkich ssiednich, po czym jeli jest na
nich liczba -1, zastpi j przez k+1, czyli przez 1. W efekcie otrzymamy nastpujc
plansz:

Teraz zmienna k przybiera warto 1 i powtarzane s te same instrukcje: szukamy pl z


zapisan liczb 1 s dwa takie na planszy i wszystkim z nimi ssiadujcymi, ktre
miay warto 1 zmieniamy ich wartoci na 2:

Teraz w pola ssiadujce z dwjkami, w ktrych wci jest -1, wpisujemy 3, potem ssiadom
trjek wpisujemy 4 i tak dalej. Wreszcie w smym okreniu wpiszemy liczb 8 w ostatnie
moliwe pole:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
249

W nastpnej iteracji nie bdzie adnego pola, na ktrym byaby warto -1, tak wic na
planszy nie pojawi si adne pole z liczb 9. Teraz warto zmiennej k zwiksza si do 9, po
czym algorytm sprawdza, czy s na planszy pola z wartoci 9, a poniewa ich nie ma,
wykonywanie algorytmu si koczy.
Sprbujmy doj do tego, jakie jest znaczenie liczb napisanych na planszy. Pole z liczb 0, od
ktrego zaczlimy wykonywanie algorytmu, nazwijmy startowym. Pola z liczb 1 s
ssiadami pola startowego doszlimy do nich w jednym kroku algorytmu. Pola z liczb 2
to ssiedzi pl z jedynkami, a wic pola, do ktrych dao si doj z pola startowego w dwch
krokach, a nie dao si w jednym.
Mona nasz obserwacj sformuowa oglnie tak: jeli ustawimy pionek na polu startowym
i pozwolimy mu w jednym ruchu przej z pola na dowolne ssiednie (w wyczeniem pl
wycitych), to liczba na polu bdzie oznaczaa odlego tego pola od startu: liczb ruchw,
w ktrych pionek mgby do niego doj. Uyjemy tej obserwacji do rozwizania pozostaych
zada.

16.2.
To zadanie jest nietypowe ze wzgldu na wiele moliwoci poprawnej odpowiedzi: musimy
po prostu skonstruowa plansz, na ktrej pionek bdzie potrzebowa a 10 ruchw, aby doj
do jakiego pola. Na cakowicie pustej planszy co atwo sprawdzi wystarczyoby mu 7
ruchw dla kadego pola. Konieczne jest wic umieszczenie przeszkd: wycicie niektrych
pl tak, aby droga do niektrych pl si wyduya. Przypomina to znane amigwki,
polegajce na szukaniu drogi w labiryntach, tutaj jednak to my musimy zaprojektowa

odpowiedni labirynt. Dobrym rozmieszczeniem przeszkd jest na przykad takie:


Wida, e tutaj pionek bdzie musia przej dusz drog do pl w prawej dolnej czci
planszy. Wynik algorytmu bdzie na takiej planszy nastpujcy:
250 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Moliwych jest bardzo wiele rozwiza zachcamy do znalezienia kilku przykadw


mniejszych lub wikszych plansz, na ktrych droga okae si wyjtkowo duga.

16.3.
Tutaj musimy skonstruowa plansz, na ktrej wykonywanie algorytmu zakoczy si mimo
tego, e na niektrych polach wci pozostanie warto -1. Zgodnie z nasz interpretacj
wartoci na polach planszy na kadym z nich, do ktrego mona doj z pola startowego
(1,1), pojawi si liczba oznaczajca odlego tego pola od startu.
Musimy zatem na planszy umieci pola, ktre nie s wycite, ale do ktrych w ogle nie da
si doj. Umieszczone przeszkody (wycite pola) musz odci cz planszy od pola
startowego. Tak jak w poprzednim zadaniu, i w tym jest bardzo wiele moliwoci
rozwizania. Jedno z najprostszych wyglda nastpujco:

adnego pola z prawej czci planszy nie da si osign z pola startowego. Wynik dziaania
algorytmu na takiej planszy przedstawiony jest poniej:

Zadanie 17.

17.1.
Zgodnie z opisem
uruchomienie hamowania nastpuje, jeli odlego od najbliszego pojazdu jest
mniejsza ni 15 metrw oraz prdko samochodu, w ktrym dziaa system, wynosi
mniej ni 30 km/h;
hamulce maj by wczone do osignicia przez samochd prdkoci 0 km/h.
Zatem poprawne rozwizanie zadania wyglda nastpujco:
Bdny zapis w pseudokodzie Poprawny zapis w pseudokodzie
jeeli prdko samochodu <30 lub odlego jeeli prdko samochodu <30 i odlego
midzy samochodami <15 midzy samochodami <15
powtarzaj dopki prdko samochodu
powtarzaj dopki prdko samochodu > 0:
= 100:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
251
17.2.
Zauwamy, e dane brzegowe wystpuj wwczas, gdy jedna z wartoci (prdko lub
odlego) moe spowodowa wczenie lub wyczenie systemu hamowania, czyli gdy
zachodzi jaki z warunkw:
prdko jest rwna 0 km/h (wyczenie systemu);
prdko jest rwna 29 km/h oraz odlego jest mniejsza ni 15 m (wczenie
systemu);
prdko jest mniejsza ni 30 km/h oraz odlego jest rwna 14 m (wczenie
systemu).
Z danymi niezgodnymi ze specyfikacj mamy do czynienia, gdy prdko przekracza
350 km/h (w treci zadania zaoono, e taka sytuacja nie wystpuje). W pozostaych
sytuacjach mamy do czynienia z danymi standardowymi.
Powysze obserwacje prowadz do nastpujcego rozwizania:
Dane testowe Typ danych testowych
prdko samochodu 29 km/h,
brzegowe
odlego midzy samochodami 1 m
prdko samochodu 400 km/h,
niezgodne
odlego od najbliszego pojazdu 0 m
prdko samochodu 13 km/h,
standardowe
odlego od najbliszego pojazdu 8 m
prdko samochodu 45 km/h,
standardowe
odlego od najbliszego pojazdu 17 m
prdko samochodu 0 km/h,
brzegowe
odlego od najbliszego pojazdu 17 m

17.3.
Zasadniczym celem testowania oprogramowania jest sprawdzenie, czy dziaa ono zgodnie
z przyjtymi zaoeniami, a take czy oprogramowanie dziaa zgodnie z formaln
specyfikacj. Cele te zostay wyraone w zdaniach:
upewnienie si, e system poradzi sobie z odczytem parametrw z czujnikw i temp
jego reakcji pozwoli unikn zderzenia, co oznacza sprawdzenie, czy system
realizuje oglne zaoenia (uniknicie zderzenia);
sprawdzenie, czy system dziaa zgodnie z podan specyfikacj, co oznacza
sprawdzenie, czy system realizuje warunki okrelajce moment wczenia i
wyczenia systemu hamowania na podstawie odczytu prdkoci i odlegoci od
najbliszego pojazdu.
Dugo kodu programu nie jest optymalizowana na etapie testowania, tym bardziej e
krtszy kod oznacza czsto mniejsz czytelno programu.
Ponadto pomiary prdkoci i odlegoci s efektem dziaania ukadw niezalenych od
systemu hamowania i samo testowanie systemu hamowania nie ma na celu weryfikacji
dziaania tych ukadw.
252 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

17.4.
Jeli uwzgldnimy fakt, e wartoci ssiednich pomiarw prdkoci i odlegoci mog si
rni o co najwyej (odpowiednio) 1 km/h i 1m, wartoci pomiarw gwarantujce wczenie
systemu hamowania niezalenie od pomiarw poprzednich bd nastpujce: odlego
mniejsza ni 15 m i prdko mniejsza ni 30 km/h.
Z drugiej strony, jeli uwzgldnimy fakt, e po wczeniu systemu hamowania prdko
samochodu si zmniejsza, wyczenie systemu hamowania niezalenie od pomiarw
poprzednich jest moliwe, gdy prdko rwna jest co najmniej 30 km/h lub rwna jest 0
km/h. (Zwrmy uwag, e odlego midzy pojazdami moe w trakcie hamowania zarwno
rosn, jak i male, gdy zaley ona od prdkoci obu pojazdw).
Wartoci pomiarw niespeniajce warunkw podanych w dwch poprzednich akapitach
oznaczaj, e stan systemu hamowania (wczony/wyczony) zaleny jest zarwno od
aktualnych, jak i poprzednich wynikw pomiarw.
Powysze obserwacje oznaczaj, e poprawnie wypeniona tabelka wyglda nastpujco:
Odlego midzy Stan automatycznego
Prdko samochodu
samochodami hamowania
poniej 30 km/h poniej 15m wczony
poniej 30 km/h rwna15m nieustalony
rwna 30 km/h poniej 15m wyczony
rwna 30 km/h rwna 15m wyczony
powyej 30 km/h dowolna wyczony

Zadanie 20.

20.1.
Do rozwizania zadania wystarczy zauway, e mimo brakujcej cyfry znamy dugo
(liczb cyfr) szukanej liczby narcystycznej. W pierwszych dwch przykadach szukana jest
liczba 3-cyfrowa, a w ostatnim 5-cyfrowa. W pierwszym przykadzie szukana liczba x jest
wic w postaci
= 300 + 10 + 1,
gdzie to brakujca cyfra. Zgodnie z definicj podan w treci zadania, aby liczba bya
liczb narcystyczn, to musiaoby by prawdziwe rwnanie
= 33 + 3 + 1.
Odejmujc rwnania stronami, otrzymujemy 3 10 = 273, a std e = 7. Pozostae
przykady mona rozwiza dokadnie w taki sam sposb. Warto tutaj zauway, e zawsze
szukamy {0,1,2, ,9}. Zwykle wikszo cyfr z tego zbioru mona natychmiast odrzuci.

20.2.
Do rozwizania zadania wystarczy jedynie znajomo sposobu zamiany liczby z systemu
dziesitnego na system o podstawie B. Poniewa wszystkie przykady w zadaniu
rozwizujemy dokadnie w taki sam sposb, wic skupimy si tylko na pierwszym z nich. Po
zamianie liczby 3433 na system o podstawie 6 otrzymujemy liczb 5-cyfrow (23521)6. Teraz
wystarczy sprawdzi, e 3433 = 25 + 35 + 55 + 25 + 15 , a wic liczba 3433 jest 6-
narcystyczna.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
253
20.3.
1. Zgodnie z podan w treci zadania definicj, algorytm sprawdzania, czy dana liczba x
jest B-narcystyczna, mona zrealizowa w nastpujcych dwch krokach: Znajd
reprezentacj liczby x w systemie o podstawie B. Powiedzmy, e jest ona postaci
= 1 1 + (2) 2 + + 1 + 0 .
2. Sprawd, czy

1 + 2 + + 1 + 0 = .
Pierwszy krok mona rozwiza, korzystajc z tego, e cyfra 0 jest reszt z dzielenia liczby
przez . Nastpne cyfry mona wyznaczy rekurencyjnie, po wykonaniu operacji
div(, ). W ten sposb otrzymamy wszystkie cyfry w kolejnoci od 0 do 1 .
Rekurencj t naley zakoczy, gdy = 0. W ten sposb otrzymamy rwnie liczb , tzn.
dugo zapisu liczby w systemie o podstawie . Majc te informacje, przechodzimy do
drugiego kroku. Jedn z moliwych jego realizacji jest napisanie do obliczania potgi

pomocniczej funkcji potega(z, k). Wwczas obliczanie sumy 1 + 2 + + 1 + 0
mona zrealizowa za pomoc zwykego sumowania kolejnych skadnikw. Zauwamy, e
sumowanie to mona zorganizowa w kolejnoci od 0 do 1
, co oznacza postpowanie
podobne do tego, jak w przypadku algorytmu wyznaczania reprezentacji liczby x w systemie
o podstawie B:
wyznacza kolejne cyfry 0 , 1 , , 1,
dla kadej cyfry oblicza , korzystajc z pomocniczej funkcji potega; sumujc
zarazem tak wyznaczone wartoci n-tych potg cyfr .
Poniej prezentujemy fragment pseudokodu realizujcy nasz strategi.
suma 0;
dopki m>0 wykonuj
suma suma + potega( m mod B, n );
m m div B;
Po obliczeniu tej sumy wystarczy sprawdzi, czy suma=x.

Zadanie 21.
Zauwamy, e opisany algorytm potgowania wykorzystuje binarne rozwinicie wykadnika,
w ktrym jest ono przegldane od najbardziej znaczcego bitu (mwimy o metodzie od
lewej do prawej). Bardziej rozpowszechniony jest algorytm, w ktrym rozwinicie binarne
wykadnika jest przegldane od najmniej znaczcego bitu (metoda od prawej do lewej).

21.1.
Zadanie jest poprzedzone przykadem, ktry powinien uatwi rozwizanie postawionego
problemu. Zgodnie z opisem w pierwszym kroku przyjmujemy, e wynik jest rwny x. W
kolejnych krokach podnosimy ten wynik do kwadratu, a w przypadku gdy kolejny bit
rozwinicia jest rwny 1, wykonujemy dodatkowe mnoenie uzyskanego wyniku przez x.
Rozwinicie binarne liczby z zadania jest rwne = 38 = (100110)2 . Kolejno obliczane
potgi przedstawione zostay w tabelce. Zauwamy, e w przypadku gdy bit rozwinicia jest
rwny 1, otrzymujemy dwie kolejne potgi.
254 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

ki kolejny bit
i obliczona potga
rozwinicia
5 1 X
4 0 x2
3 0 x4
2 1 x8, x9
1 1 x18, x19
0 0 x38

21.2.
W zadaniu trzeba obliczy liczb operacji wykonywanych w algorytmie. Naley pamita
o tym, e w przypadku gdy bit rozwinicia binarnego jest rwny 1, zawsze dodatkowo
wykonujemy jedno mnoenie.
Dla k = 4 reprezentacja binarna jest rwna 100, co daje kolejne potgi rwne:
x (pierwszy bit rwny 1),
x2= x*x (drugi bit rwny 0) ,
x4= x2*x2 (trzeci bit rwny zero),
std liczba mnoe jest rwna 2.
Dla k = 5 = (101)2 kolejne potgi liczby x byyby rwne:
x (pierwszy bit rwny 1),
x2= x*x (drugi bit rwny zero),
x4= x2* x2, x5 = x4 * x (dodatkowe mnoenie, gdy trzeci bit rwny 1),
zatem otrzymujemy 3 mnoenia.
Oczywicie mona dalej postpowa analogicznie: po zamianie liczby k na system binarny
wypisa kolejne potgi liczby x i sprawdza, ile mnoe zostao wykonanych. Mona jednak
to zadanie wykona sprytniej. atwo zauway, e kade 0 w zapisie binarnym daje nam
jedno mnoenie, kada jedynka w zapisie binarnym (z wyjtkiem najbardziej znaczcej) daje
nam 2 mnoenia. W ten sposb dla k = 6 = (110)2 mamy 2+1 = 3 mnoenia, dla k=7 = (111)2
wykonujemy 2+2 = 4 mnoenia itd. W ten sposb wypenienie tabeli jest bardzo proste.

21.3.
W tym zadaniu trzeba skonstruowa algorytm, ktry korzystajc z binarnej reprezentacji
wykadnika, obliczy warto xk metod opisan w zadaniu. Jak si do tego zabra? Za warto
pocztkow wyniku przyjmujemy liczb x. Nastpnie przegldamy kolejne bity z binarnej
reprezentacji wykadnika, od n-1 do 0. W kadym kroku podnosimy aktualny wynik do
kwadratu. Dodatkowo, gdy ki = 1, mnoymy wynik przez warto x. Do rozwizania zadania
mona zastosowa zarwno ptl for (dla kadego i = n-1, n-2, ..., 0), jak i ptl while
(dopki i 0 wykonuj ...). W tym ostatnim wypadku naley pamita o tym, aby zmniejsza
warto i o 1 po wykonaniu oblicze. Przedstawione rozumowanie prowadzi do
nastpujcego rozwizania:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
255
px
in1
dopki i 0 wykonuj
pp*p
jeeli ki = 1
pp*x
ii1

Zadanie 22.

22.1.
Do rozwizania zadania potrzebne jest tylko zrozumienie specyfikacji podanego schematu
Hornera. Poniewa dany wielomian jest pitego stopnia, wic naley przyj n=5. Natomiast
liczby rzeczywiste 0 , 1 , , 5 maj by kolejnymi wspczynnikami wielomianu ().
Warto parametru otrzymujemy natychmiast, jako e w zadaniu da si obliczenia
wartoci (6).

22.2.
Przypomnijmy, e wiersz (*) jest czci ptli:
dla = 1, 2, ,0 wykonuj
(*) +
Instrukcja w wierszu (*) wykonuje jedno dodawanie i jedno odejmowanie. Poniewa jest ona
wykonywana n razy, wic kada z tych operacji zostanie wykonana n razy.

22.3.
Z treci zadania natychmiast otrzymujemy:
0 = 9, 1 = 7, 2 = 5, 3 = 2, 4 = 0, 5 = 3, 6 = 4 oraz = 2.
Warto wspczynnika 4 wynika z tego, e w podanym wzorze nie wystpuje 4 . Do
rozwizania zadania wystarczy zatem przeanalizowa dziaanie danego schematu Hornera dla
powyszych danych. Na pocztku algorytmu obliczana jest warto = 6 = 4. Nastpnie
dla k=5,4,3,2,1,0, algorytm, w linii (*), zmienia warto zmiennej w. Otrzymujemy zatem dla
k = 5 obliczon warto = 4 3 = 5. W nastpnym kroku, tj. dla k = 4, bdzie =
5 + 0 = 10. W ten sposb otrzymujemy kolejne wyniki.

22.4.
Wskazwk do rozwizania zadania jest obserwacja, e () = (), gdzie = 2 oraz
() = + 1 1 + + 2 2 + 1 + 0 .
Oznacza to, e wyznaczenie wartoci () mona zrealizowa bardzo efektywnie za pomoc
schematu Hornera (zastosowanego do powyszego wielomianu ()), ale nie dla wyjciowej
wartoci , lecz dla 2 . Rozwizanie uzyskujemy zatem, modyfikujc podany schemat
Hornera (obliczania wartoci ()) poprzez dodanie na pocztku instrukcji
.
256 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 23.

23.1.
W pierwszym wierszu tabeli wpisujemy wartoci pocztkowe nadane zmiennym i, a, r w
algorytmie. Nastpnie wyliczamy wartoci tych zmiennych w kolejnych wykonaniach ptli.
Warto i Warto a Warto r
0 0 1
1 a 0+1 r 1+2
2 a 1+3 r 3+2
3 a 4+5 r 5+2
4 a 9+7 r 7+2
5 a 16+9 r 9+2
Warto zauway, e ostatni raz algorytm rozpocznie wykonanie ptli, gdy warto a bdzie
rwna 16. Ostatni wiersz tabeli prezentuje wartoci zmiennych po wyjciu z ptli.

Zadanie 23.

23.1.
W pierwszym wierszu tabeli wpisujemy wartoci pocztkowe nadane zmiennym i, a, r w
algorytmie. Nastpnie wyliczamy wartoci tych zmiennych w kolejnych wykonaniach ptli.
Warto i Warto a Warto r
0 0 1
1 a 0+1 r 1+2
2 a 1+3 r 3+2
3 a 4+5 r 5+2
4 a 9+7 r 7+2
5 a 16+9 r 9+2
Warto zauway, e ostatni raz algorytm rozpocznie wykonanie ptli, gdy warto a bdzie
rwna 16. Ostatni wiersz tabeli prezentuje wartoci zmiennych po wyjciu z ptli.

23.2.
Analiza zmian wartoci zmiennych wystpujcych w algorytmie pokazuje, e:
zmienna a przyjmuje jako wartoci kwadraty kolejnych liczb naturalnych,
zmienna r przyjmuje wartoci kolejnych liczb nieparzystych.
Warto obliczona przez algorytm jest rwna dokadnie wartoci pierwiastka z liczby x tylko
wtedy, gdy x jest kwadratem liczby naturalnej.
Po wyjciu z ptli warto i jest rwna liczbie powtrze ptli i jest o 1 wiksza ni warto
cakowitego pierwiastka z liczby x.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
257
23.3.
Dla danej wartoci n moemy wyznaczy element xn w ptli:
xi x / 2
dla i=1,2,,n wykonuj
xi (xi + x / xi) / 2
otrzymujc warto xn w zmiennej xi.
Z treci zadania wiemy, e cig xn jest zbieny do wartoci pierwiastka kwadratowego liczby
x. Jeli pierwiastek z x nie jest liczb cakowit, wwczas zbieno cigu xn do x
gwarantuje, e dla odpowiednio duych n warto xn znajduje si pomidzy zaokrgleniem
x w d do liczby cakowitej a zaokrgleniem x w gr do liczby cakowitej.
Wykorzystujc t obserwacj, rozwizanie moglibymy uzyska w poniszy sposb:
xi x / 2
dopki prawda wykonuj
xi (xi + x / xi) / 2
p cz_cakowita(xi)
jeeli p p x oraz (p+1) (p+1) x
zwr p i zakocz
Rozwizanie takie moe jednak nie zadziaa poprawnie w sytuacji, gdy x jest liczb
cakowit. (A przynajmniej poprawno powyszego rozwizania nie wynika z tego, e cig
xn zbiega do x ). W takiej sytuacji moliwe jest, e xn< x dla wszystkich duych n
(dajcych dobre przyblienie x ). To z kolei oznacza, e dla p rwnego zaokrgleniu xn w
d mamy (p+1) (p+1)x. W rezultacie nigdy nie bdzie speniony warunek zakoczenia
powyszej ptli (p p x oraz (p+1) (p+1) x). Dla ilustracji tej sytuacji wyobramy sobie,
e cig xn dla x=16 zbiega od dou do 4, tzn. jego kolejne wartoci s coraz blisze 4, ale
mniejsze ni 4. (W rzeczywistoci taka sytuacja nie ma miejsca dla x=16, ale w oparciu o
wiedz szkoln nie moemy wykluczy podobnej sytuacji dla wikszego x, bdcego
kwadratem liczby naturalnej). Na przykad xn = 4 1/n. Wwczas w kadym obrocie
powyszej ptli dopki mamy p=3 i warunek p p x oraz (p+1) (p+1) x nie jest speniony
(mamy wtedy p=3, x=16).
Poniej prezentujemy peny algorytm uwzgldniajcy sytuacj, gdy x jest liczb cakowit.
xi x / 2
kontynuacja prawda
dopki kontynuacja wykonuj
xi (xi + x / xi) / 2
p cz_cakowita(xi)
jeeli p p x oraz (p+1) (p+1) x
kontynuacja fasz
jeeli (p 1) (p 1) x oraz p p x
pp1
kontynuacja fasz
zwr p i zakocz
258 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 24.

24.1.
Przeanalizujemy dziaanie funkcji F dla kolejnych przykadw oraz dla danych z zadania:
p = 1, k = 5, e = 10.
Dla T = [3, 4, 6, 8, 9]:
p k k=p s T [s] T [s] > 10
1 5 nie 3 6 nie
4 5 nie 4 8 nie
5 5 tak
Poniewa T [5] 10, funkcja F zwraca warto p + 1 = 6.
Dla T = [15, 16, 18, 22, 24]:
p k k=p s T [s] T [s] > 10
1 5 nie 3 18 tak
1 3 nie 2 16 tak
1 2 nie 1 15 tak
1 1 tak
Poniewa T [1] > 10, funkcja F zwraca warto p = 1.
Dla T = [2, 10, 16, 24, 26]:
p k k=p s T [s] T [s] > 10
1 5 nie 3 16 tak
1 3 nie 2 10 nie
3 3 tak
Poniewa T [3] > 10, funkcja F zwraca warto p = 3.
Dla T = [1, 3, 10, 10, 18]:
p k k=p s T [s] T [s] > 10
1 5 nie 3 10 nie
4 5 nie 4 10 nie
5 5 tak
Poniewa T [5] > 10, funkcja F zwraca warto p = 5.

24.2.
Dane s uporzdkowane. W funkcji F stosujemy wywoania rekurencyjne. W kadym
wywoaniu rekurencyjnym cig danych jest redukowany o poow. Algorytm przypomina
przeszukiwanie binarne, opiera si na tej samej zasadzie, zatem poprawn odpowiedzi jest
strategia dziel i zwyciaj.

24.3.
Rozwaamy liczb n, ktra jest potg dwjki. Zauwamy, e liczba wywoa
rekurencyjnych jest rwna liczbie wykona instrukcji s (p+k) div 2. Te instrukcje
wykonuj si, gdy k p, czyli gdy w cigu danych jest wicej ni 1 element. Musimy si
zastanowi, ile razy odrzucamy poow cigu, tak aby w cigu pozosta 1 element. Dla n = 8
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
259
= 23 pierwsze wywoanie rekurencyjne zredukuje zakres poszukiwa do cigu 4-
elementowego (elementy cigu od pierwszego do czwartego lub od pitego do smego). Po
drugim wywoaniu analizujemy cig dwuelementowy. W trzecim wywoaniu sprawdzamy
jeden element cigu. Analogiczne rozwaanie mona przeprowadzi dla n = 16 = 24
(wywoujemy funkcj F czterokrotnie), dla n = 32 = 25 (wywoujemy funkcj F
piciokrotnie). Dla n = 2k funkcja F bdzie wywoana k razy, = log 2 .
Dla lepszego zrozumienia poniej przedstawiono moliwe wywoania funkcji F(1, 8, e) oraz
przykadowe cieki wywoa rekurencyjnych.
I wywoanie II wywoanie III wywoanie
rekurencyjne rekurencyjne rekurencyjne
F(1, 1, e)
F(1, 2, e)
F(2, 2, e)
F(1, 4, e)
F(3, 3, e)
F(3, 4, e)
F(4, 4, e)
F(1, 8, e)
F(5, 5, e)
F(5, 6, e)
F(6, 6, e)
F(5, 8, e)
F(7, 7, e)
F(7, 8, e)
F(8, 8, e)

24.4.
Zauwamy, e funkcja F(p, k, e) znajduje pierwsz pozycj w posortowanej tablicy T [p..k],
na ktrej warto jest wiksza od danej liczby e. Wynikiem wywoania F(1, n, b) bdzie
pierwsza pozycja w tablicy T, dla ktrej warto jest wiksza od liczby b. Zatem bdzie to
liczba elementw tablicy mniejszych bd rwnych b. Analogicznie wywoanie funkcji
F(1, n, a) zwrci najmniejszy indeks i w tablicy T, taki e T [i] > a. Zatem warto rnicy
F(1, n, b) F(1, n, a) jest rwna liczbie elementw tablicy, ktre nale do przedziau [a+1,
b]. Trzeba wic jeszcze osobno zliczy elementy, ktre s rwne a, co prowadzi do
zoonoci liniowej algorytmu:
prawy F(1, n, b)
lewy F(1, n, a)
i lewy 1
dopki (i>0 oraz T [i] = T [lewy])
ii1
lewy i+1
w prawy lewy
Zauwamy jednak, e osobne obliczanie elementw rwnych a jest zbdne. Wywoanie
funkcji F(1, n, a 1) zwraca najmniejszy indeks i, taki e T [i] >a 1. Prowadzi to do
rozwizania o zoonoci logarytmicznej:
260 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

prawy F(1, n, b)
lewy F(1, n, a 1)
w prawy lewy

Zadanie 25.

25.1.
Zauwamy, e liczba powtrze ptli oznaczonej (*) dla sowa o ustalonej dugoci zaley od
tego, czy i jak szybko napotkamy znaki rnice si od siebie. Maksymalna liczba powtrze
dla sowa, ktre nie jest palindromem, jest wykonywana wtedy, gdy niezgodno zostanie
wykryta dla ostatniej pary porwnywanych znakw. Najpierw porwnywane s pary znakw
najbliej rodka sowa, a potem przesuwamy si do pozycji coraz bliej pocztku i koca
sowa. Zatem poprawn odpowiedzi jest sowo, ktre ma rne znaki na pierwszej i ostatniej
pozycji (a po usuniciu tych dwch znakw jest palindromem).

25.2.
W naszym rozwizaniu porwnujemy w ptli pary znakw w zdaniu, poczwszy od
pierwszego i ostatniego znaku. Indeksy wskazujce porwnywane znaki przyjmuj wartoci
pocztkowe:
i1
j dugo(Zdanie)
W kolejnych przebiegach ptli zwikszamy indeks i oraz zmniejszamy indeks j a do
momentu, gdy i j.
dopki i <j wykonuj
.
ii+1
jj1
Sowa w zdaniu s rozdzielone co najmniej jedn spacj. Ponisze ptle su do pomijania
znakw spacji :
dopki Zdanie[i] = wykonuj
i i +1
dopki Zdanie[j] = wykonuj
jj1
Zwrmy uwag, e powysze ptle zakocz swoje dziaanie dziki zaoeniu, e w tekcie
wystpuje co najmniej jedna litera.
Porwnanie znakw i dziaanie algorytmu koczymy po napotkaniu rozbienoci:
jeeli Zdanie[i] Zdanie[j]
zwr NIE i zakocz
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
261
Zadanie 26.

26.1.
Ustalmy najpierw zbiory liter wystpujcych w poszczeglnych sowach:
X Y Zbir liter w X Zbir liter w Y
{A, B, C, D,E, F, G, {A, B, C, D, E, F, G,
HHGGFFEEDDCCBBAA ABCDEFGH
H} H}
{A, B, C, D, F, G, H,
DCBADCBA FGHABCJD {A, B, C, D}
J}
ABCDE ABCCBAE {A, B, C, D, E} {A, B, C, E}
AAAAA AA {A} {A}
ABA ACA {A, B} {A, C}
{A, B, C, D, E, F, G,
ACEGJ ABCDEFGHJ {A, C, E, G, J}
H, J}
W podanych powyej zbiorach podkrelone zostay elementy z rnicy symetrycznej zbioru
liter wystpujcych w X i zbioru liter wystpujcych w Y. Korzystajc z powyszej tabeli
i definicji k-podrzdnoci, otrzymujemy nastpujce rozwizanie zadania:
X Y Podrzdno
HHGGFFEEDDCCBBAA ABCDEFGH 0
DCBADCBA FGHABCJD 4
ABCDE ABCCBAE NIE
AAAAA AA 0
ABA ACA NIE
ACEGJ ABCDEFGHJ 4

26.2.
Efektem dziaania dwch pierwszych ptli jest utworzenie reprezentacji zbioru liter
wystpujcych w sowie Y w postaci tak zwanego wektora charakterystycznego.
Dokadniej, po ptli
dla i = 1,2,,d wykonuj
lit Y[i]
Czyjest[kod(lit)] prawda
zachodzi warunek: Czyjest[i]=prawda, gdy litera o kodzie i wystpuje w sowie Y, oraz
Czyjest[i] = fasz w przeciwnym wypadku. W ostatniej ptli
czyp prawda
dla i=1,2,,d wykonuj
lit X[i]
czyp czyp i Czyjest[kod(lit)]
sprawdzamy, czy w sowie X wystpuje litera, ktrej nie ma w Y. Dokadniej, zmiennej czyp
nadajemy warto koniunkcji zda: czy i-ta litera sowa X wystpuje w Y. Tak wic po
zakoczeniu tej ptli czyp ma warto prawda dokadnie wtedy, gdy sowo X jest podrzdne
wzgldem Y.
Specyfikacja algorytmu A wyglda wic nastpujco:
262 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Specyfikacja
Dane:
X, Y sowa, w ktrych wystpuj tylko litery ze zbioru {A, B, C, D, E, F, G, H, I, J}
Wynik:
1 gdy X jest sowem podrzdnym wzgldem Y,
0 gdy X nie jest sowem podrzdnym wzgldem Y.
Tabelk podan w treci zadania moemy wwczas uzupeni w oparciu o to, czy X jest
podrzdne wzgldem Y:
X Y wynik algorytmu A
HHGGFFEEDDCCBBAA ABCDEFGH 1
DCBADCBA FGHABCJD 1
ABCDE ABCCBA 0
AAAAA AA 1
AA AAAAA 1
ACEGJ ABCDEFGH 0

26.3.
Podobnie jak w algorytmie A analizowanym w zadaniu 2 dwie pierwsze ptle tworz
reprezentacje zbiorw liter ze sw X i Y w tablicach Czy_x i Czy_y. Dokadniej, po
wykonaniu ptli
dx dlugosc(X)
dla i=1,2,,dx wykonuj
lit X[i]
Czy_x[kod(lit)] prawda
dy dlugosc(Y)
dla i=1,2,,dy wykonuj
lit Y[i]
Czy_y[kod(lit)] prawda
zachodz warunki: Czy_x[i]=prawda wtedy i tylko wtedy, gdy litera o kodzie i wystpuje
w sowie X, Czy_y[i]=prawda wtedy i tylko wtedy, gdy litera o kodzie i wystpuje w sowie Y.
Definicje k-podrzdnoci i podrzdnoci moemy wwczas wyrazi w odniesieniu do X i Y
w nastpujcy sposb:
a) X nie jest podrzdne wzgldem Y, gdy dla pewnego i[1,10] zachodzi: Czy_y[i]=fasz
oraz Czy_x[i]=prawda
b) X jest k-podrzdne wzgldem Y, gdy warunek Czy_y[i]=prawda oraz Czy_x[i]=fasz
zachodzi dla k rnych wartoci i{1,2,,10} oraz nie zachodzi warunek a)
Oznacza to, e ostatni fragment programu naley uzupeni w nastpujcy sposb:
jeeli Czy_y[i]=prawda oraz Czy_x[i]=fasz
k k+1
jeeli Czy_y[i]=fasz oraz Czy_x[i]=prawda
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
263
26.4.
Aby uwzgldni czsto wystpie poszczeglnych liter, zmodyfikujemy ide wektora
charakterystycznego z algorytmw A, B zaprezentowanych w zadaniach 2 i 3. Utworzymy
tablice liczb cakowitych Ile_x[1..10] i Ile_y[1..10]. Docelowo Ile_x[i] dla i[1,10] ma by
rwne liczbie wystpie litery o kodzie i w sowie X, podobnie Ile_y[i] dla i[1,10] ma by
rwne liczbie wystpie litery o kodzie i w sowie Y. Poniej prezentujemy fragment
pseudokodu dajcy taki rezultat:
dla i=1,2,,10 wykonuj
Ile_x[i] 0,
Ile_y[i] 0
dx dlugosc(X)
dla i=1,2,,dx wykonuj
lit X[i]
Ile_x[kod(lit)] Ile_x[kod(lit)] + 1
dy dlugosc(Y)
dla i=1,2,,dy wykonuj
lit Y[i]
Ile_y[kod(lit)] = Ile_y[kod(lit)] + 1
Przy tablicach Ile_x i Ile_y wypenionych zgodnie z powyszym opisem sprawdzenie
rwnowanoci X i Y sprowadza si do zweryfikowania, czy Ile_x[i]=Ile_y[i] dla kadego
i[1,10]:
dla i=1,2,,10 wykonuj
jeeli Ile_x[i] Ile_y[i]
zwr 0 i zakocz
zwr 1

Zadanie 27.

27.1.
Miejsca wystpie wzorca zaznaczone s w poniszej tabeli.
Wzorzec Tekst Wystpuje?
para opera z bdem
para aparat dokadnie
kran karawana nie
sport bezspornie z bdem
ryt zakryty dokadnie
sofa solanka z bdem

27.2.
Oczywiste jest, e trzy sowa dugoci 4 nie zmieszcz si w sowie o dugoci 8, jeli nie
bd si czciowo nakaday. Wyobramy sobie zatem nie znajc jeszcze jego liter
tekst o dugoci 8, w ktrym musi wystpi trzy razy wzorzec:
264 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

? ? ? ? ? ? ? ?
Wybierzmy miejsca, w ktre chcemy wpasowa wzorzec, na przykad w ten sposb:
? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?
Widzimy, e skoro ten sam wzorzec ma wystpi na miejscach 1 4 oraz 3 6, to pierwsza
i trzecia litera tekstu musz by takie same (s pierwsz liter wzorca), podobnie trzecia
i pita oraz pita i sidma.
Analogicznie takie same musz by litery 2, 4, 6 i 8, a to znaczy, e moliw odpowiedzi do
zadania jest na przykad:
a b a b a b a b
Wzorzec abab wystpuje w nim trzy razy, tak jak zaplanowalimy.
Rwnie dobrze mona jednak zamiast liter a i b wybra na przykad x i y albo nawet a i a
otrzymalibymy wtedy tekst aaaaaaaa i wzorzec aaaa, bdce rwnie prawidowym
rozwizaniem (wzorzec wystpuje w tekcie a pi razy). Moglibymy te inaczej
zaplanowa wystpienia wzorca w tekcie:
? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?
W tym wypadku podobne rozumowanie prowadzi do wniosku, e litery pierwsza, druga itd.
a do szstej, musz by wszystkie identyczne, za to dwie ostatnie mog by absolutnie
dowolne. Otrzymamy w ten sposb kolejne moliwe rozwizania: wzorzec aaaa i tekst
aaaaaabc.

27.3.
Potrzebne nam bdzie najpierw rozwizanie bardzo prostego problemu: majc dane dwa
sowa tej samej dugoci n, chcemy sprawdzi, czy s one identyczne. Odpowiedni algorytm
powinien wyglda podobnie do nastpujcego:
Dane:
sowa A[1..n] i B[1..n]
Wynik:
TAK, jeli s identyczne, NIE, jeli s rne.

identyczne prawda
dla i = 1,2,..., n
jeeli A[i] B[i] wykonuj
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
265
identyczne fasz
jeeli identyczne = prawda
wypisz TAK
w przeciwnym razie
wypisz NIE
Algorytm sprawdza, czy kolejne litery obu sw s zgodne. W razie znalezienia niezgodnoci
przestawia zmienn identyczne na warto fasz, ktr zachowa ona do koca dziaania.
Za pomoc tej prostej procedury moemy teraz zrealizowa wyszukiwanie w tablicy znakw
tekst[1..n] sowa wzorzec[1..m] na razie dokadnie, bez dozwolonego jednego bdu. Aby
to osign, sprawdzamy najpierw, czy wzorzec[1..m] jest identyczny z fragmentem
tekst[1..m]. Jeli tak, znalelimy wystpienie wzorca. Jeli nie, sprawdzamy fragment
tekst[2..m+1], a potem, by moe, tekst[3..m+2] i tak a do koca tekstu, czyli do ostatniego
moliwego fragmentu tekst[n-m+1..n]. Odpowiednia ptla wyglda nastpujco:
dla i = 1, 2, ..., nm+1 wykonuj
identyczne prawda
dla j = 1, 2, ..., m wykonuj
jeeli wzorzec[j] tekst[i+j-1]
identyczne fasz
jeeli identyczne = prawda
wypisz TAK
zakocz algorytm
wypisz NIE
Zmienna i wskazuje pierwszy znak sprawdzanego fragmentu porwnujemy w kadym
momencie wzorzec[1..m] oraz tekst[i..i+m-1].
Ostatnim krokiem prowadzcym do rozwizania zadania jest uwzgldnienie jednego
dozwolonego bdu w porwnywaniu. Zauwamy, e dotychczas ju przy pierwszej
niezgodnoci znakw przestawialimy zmienn identyczne na fasz do koca sprawdzania.
Zamiast tego policzymy niezgodne znaki w osobnej zmiennej bdy podczas porwnywania,
za kad rnic dodajc do niej 1. Odpowiednia zmiana w algorytmie jest bardzo niewielka:
dla i = 1, 2, ..., nm+1 wykonuj
bledy 0
dla j = 1, 2, ..., m wykonuj
jeeli wzorzec[j] tekst[i+j-1]
bdy bdy + 1
jeeli bdy 1
wypisz TAK
zakocz wykonywanie algorytmu
wypisz NIE
Takie rozwizanie, podobnie jak poprzednie, porwnuje wszystkie moliwe fragmenty tekstu
z wzorcem, ale teraz dla kadego z nich oblicza, ile znakw jest niezgodnych. Algorytm
odpowiada TAK, jeli ktrykolwiek fragment ma tych znakw nie wicej ni jeden. Jeli
wszystkie fragmenty maj co najmniej dwa niezgodne znaki, odpowiedzi jest NIE.
266 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 28.

28.1.
Rozwamy osobno kade ze sw AAAABBBB, ABBBABAA, ABAAAABA
i AAAAAAAAAA, dla ktrych naley sprawdzi sab A-palindromiczno oraz
prawdziwo warunkw 2a i 2b:
Sowo AAAABBBB:
W tym sowie nie jest speniony warunek 2a, gdy ostatnia litera sowa jest rna od
pierwszej litery. Zatem AAAA BBBB nie jest sabym A-palindromem. Jednoczenie
AAAA jest sabym A-palindromem, zatem warunek 2b jest speniony.
Sowo ABBBABAA:
Pierwsza i ostatnia litera sowa jest rwna A, zatem warunek 2a jest speniony.
Jednoczenie ABAA jest sabym A-palindromem, co oznacza, e speniony jest
warunek 2b oraz badane sowo jest sabym A-palindromem.
Sowo ABAAAABA:
Pierwsza i ostania litera sowa jest rwna A, zatem warunek 2a jest speniony.
Jednoczenie zarwno ABAA jak i AABA s sabymi A-palindromami, co oznacza,
e spenieny jest warunek 2b.
Sowo AAAAAAAAAA:
Pierwsza i ostatnia litera sowa jest rwna A, zatem warunek 2a jest speniony. Poowa
dugoci sowa to 5, zatem do spenienia 2b konieczne jest, aby AAAAA byo sabym
A-palindromem. Jednak AAAAA nie jest sabym A-palindromem, tak jak nie jest nim
adne sowo o nieparzystej dugoci wikszej od 1 (do spenienia warunku 2.
konieczna jest parzysta dugo sowa).
Zatem poprawnie wypeniona tabela wyglda nastpujco:
Czy sowo jest sabym
sowo 2a 2b uzasadnienie
A-palindromem?
AABA ABAA tak tak tak AABA
AAAB BAAA tak nie nie
AAAB BAAB nie nie nie
AAAA BBBB nie tak nie
ABBB ABAA tak tak tak ABAA
ABAA lub
ABAA AABA tak tak tak
AABA
AAAAA AAAAA tak nie nie

28.2.
Mona zauway, e saby A-palindrom dugoci 8 o najmniejszej liczbie liter A mona
uzyska na dwa sposoby:
czc (dowolny) saby A-palindrom dugoci 4 o najmniejszej liczbie liter A ze
sowem BBBA lub
czc sowo ABBB z (dowolnym) sabym A-palindromem dugoci 4 o najmniejszej
liczbie liter A.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
267
W efekcie sabe A-palindromy dugoci 8 o najmniejszej liczbie liter A to:
ABBBABAA, ABBBAABA, ABAABBBA, AABABBBA.
Zauwamy, e kady z tych sabych A-palindromw ma o jedn liter A wicej ni sabe
A-palindromy dugoci 4 z najmniejsz liczb liter A.
Uoglniajc powysze rozumowanie, saby A-palindrom dugoci 2k o najmniejszej liczbie
liter A ma jedn z postaci:
ABBB x,
x BBBA.
gdzie x jest sabym A-palindromem dugoci 2k 1 o najmniejszej liczbie liter A, a cig liter B
poprzedzajcy/nastpujcy po x ma dugo 2k 1 1. Oznaczmy przez Fk najmniejsz liczb
liter A sabego A-palindromu dugoci 2k. Z powyszej dyskusji uzyskujemy zaleno:
F1 = 2,
F2 = 3,
Fk = Fk 1+1,
co prowadzi do wniosku, e Fk = k+1, czyli e najmniejsza liczba liter A sabego
A-palindromu dugoci 2k to k+1.
Przykadowa poprawna zawarto pierwszej tabeli moe by nastpujca.
najmniejsza liczba liter A sabego saby A-palindrom o dugoci m
m
A-palindromu o dugoci m i najmniejszej liczbie liter A
2 2 AA
4 3 ABAA
8 4 ABBB ABAA
A zawarto drugiej tabeli jest nastpujca:
najmniejsza liczba liter A sabego
m
A-palindrom o dugoci m
16 5
32 6
210 11
220 21
28.3.
Najprociej bdzie zastosowa funkcj rekurencyjn opart na definicji sabego
A-palindromu:
funkcja CzySlabe (W)
(1) jeeli W jest sowem pustym
(2) zwr Nie i zakocz
(3) jeeli W=A
(4) zwr Tak i zakocz
(5) m dlugosc(W)
(6) jeeli m mod 2=1
(7) zwr Nie i zakocz
(8) w przeciwnym razie
(9) jeeli W[1]W[m]
268 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

(10) zwr Nie i zakocz


(11) r1 CzySlabe(W[1, m/2] )
(12) jeeli r1 = Nie, to
(13) zwr CzySlabe(W[m/2+1,m] )
(14) w przeciwnym razie zwr Tak
W przedstawionym rozwizaniu uwzgldnione zostay sowa o dugoci 0 (ktre zgodnie
z definicj nie s sabymi A-palindromami, ale ten przypadek moe umkn przy
dosownym tumaczeniu definicji na funkcj rekurencyjn).
Ponadto wykonalimy drobn optymalizacj przy sprawdzaniu alternatywy:
W[1,m/2] jest sabym A-palindromem lub W[m/2+1, m] jest sabym A-palindromem
Zauwamy, e jeli r1=Tak po wykonaniu wiersza (11), to pierwszy skadnik powyszej
alternatywy jest prawdziwy. Nie trzeba wic sprawdza drugiego skadnika. Dlatego w kroku
(13) sprawdzamy, czy W[m/2+1,m] jest sabym A-palindromem tylko w sytuacji, gdy
r1=Nie.
Alternatyw dla rozwizania rekurencyjnego moe by podejcie wstpujce (programowanie
dynamiczne):
najpierw sprawdzamy i zapamitujemy, ktre 1-literowe podsowa W s sabymi
A-palindromami,
wykorzystujc powysze informacje, sprawdzamy, ktre ze sw W[1,2], W[3,4],
W[5,6], s sabymi A-palindromami,
wykorzystujc informacje o sabych A-palindromach dugoci 2, sprawdzamy, ktre
ze sw W[1,4], W[5,8], W[9,12], s sabymi A-palindromami,
itd.
Rozwizanie takie wymaga jednak duo wikszej sprawnoci w programowaniu,
wykraczajcej poza wymagania szkoy ponadgimnazjalnej.

29.1.
W pierwszym zadaniu naley zdekodowa zapis:

Korzystajc z informacji o zakoczeniu kodowania kadej litery dwiema czarnymi kulkami,
mona podzieli zapis na:

Uywajc tabeli umieszczonej w treci zadania, mona zdekodowa t wiadomo jako sowo
MATURA.

29.2.
W zwizku z tym, e kady znak jest kodowany przynajmniej dwiema kulkami, a dwie
ostatnie z nich s czarne, algorytm powinien zawsze analizowa kolor dwch kolejnych kulek
i przerwa pobieranie, gdy natrafi kolejno na dwie czarne kulki.

29.3.
Aby wypenia swoje zadanie, algorytm powinien cyklicznie:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
269
sprawdza, czy w cigu s jeszcze kulki,
pobiera kulki odpowiadajce jednej literze,
dopisywa odpowiedni liter do budowanej wiadomoci.

Zadanie 30.

30.1.
Argumentami funkcji szyfruj s znak, ktry chcemy zaszyfrowa, i klucz (liczba wskazujca,
o ile pozycji w alfabecie przesunity jest w stosunku do znaku jawnego znak zaszyfrowany).
Poniewa k jest dowoln liczb cakowit nieujemn, operacja k modulo 26 pozwala obliczy
rzeczywiste przesunicie w 26-znakowym alfabecie. Jeeli kadej literze alfabetu
jednoznacznie przypiszemy jej numer (dziesitny kod ASCII), to do numeru znaku naley
doda klucz k modulo 26. W przypadku gdy liczba kod(zn)+k przekracza zakres kodw
ASCII przypisanych wielkim literom, naley przej na pocztek alfabetu (odj 26).
Cykliczno rozwizuje nastpujca instrukcja:
jeeli kod_zn> 90
kod_znkod_zn -26

30.2.
W zadaniu naley zaszyfrowa sowo INFORMATYKA kluczami: k=1 dla pierwszej litery
sowa, k=2 dla drugiej litery, , k=11 dla ostatniej litery sowa.
W drugim wierszu tabeli naley odszyfrowa podany napis, zaszyfrowany opisanym powyej
sposobem, co powinno przygotowa zdajcego do rozwizania zadania 3.

30.3.
Zadanie wymaga podania algorytmu deszyfrujcego sowo zaszyfrowane sposobem opisanym
w zadaniu 2. Poniewa szyfr jest symetryczny, wykonujemy operacj odwrotn do
szyfrowania: dla kadej litery w sowie od jej kodu ASCII odejmujemy klucz k. W przypadku
gdy warto tego wyraenia jest mniejsza ni 65 (kod litery A), dodajemy 26. Tak zapisan
funkcj deszyfrujc naley wywoa dla kadej litery sowa, gdzie drugim argumentem
funkcji bdzie pozycja tej litery w sowie.

Zadanie 31.
Algorytm podany przed treci zada dziaa w taki sposb, e najpierw wypisuje na wejciu
znaki W[1], W[1+m], W[1+2m], , potem znaki W[2], W[2+m], W[2+2m], itd. a do
znakw W[m 1], W[m 1+m], W[m 1+2m], Dziaanie algorytmu mona te opisa
inaczej:
kolejne litery sowa W wpisujemy w kolejnych kolumnach tabeli skadajcej si z m
wierszy (gdzie m to zaokrglenie n/k w gr do liczby cakowitej); najpierw
wypeniamy pierwsz kolumn (od gry do dou), potem drug itd.
nastpnie wypisujemy na wyjciu kolejne wiersze tabeli.
Interpretacj t wykorzystamy w rozwizaniach zada. (Jak wykaemy pniej, dobr
wartoci m zapewnia, e tekst bdzie umieszczony w dokadnie k kolumnach tabeli, czyli
tworzy tabel rozmiaru mk.)
270 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

31.1.
Dugo tekstu ZADANIE1JESTATWE jest rwna 17. Mamy wic n=17 i k=3. Poniewa
17 div 3=5 i 17 mod 30, warto m to 6. Zgodnie z powysz interpretacj algorytmu, sowo
umiecimy w nastpujcej tabeli
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
271
Z E
A 1 A
D J T
A E W
N S E
I T
Wynik uzyskamy wypisujc zawarto tabeli wierszami: ZEA1ADJTAEWNSEIT
Analogicznie moemy zakodowa drugi tekst o dugoci n=18, przyjmujc m=1+18 div 4=5,
gdy 18 mod 40:
Z I S S
A E T T
D 1 P E
A J R
N E O
Wynik uzyskamy wypisujc zawarto tabeli wierszami: ZISSAETTD1PEAJRNEO.

31.2
Znajc dugo n=14 tekstu UDOMEWIKAEOMD, uzyskujemy m=1+14 div 3=5. Zatem
zakodowana posta tekstu zostaa uzyskana poprzez wypisanie kolejnych wierszy tabeli 5-
wierszowej, ktra zostaa wypeniona poprzez wpisanie oryginalnego tekstu do kolejnych
kolumn (od gry do dou).
Zauwamy, e tekst o dugoci n=14 wypeni w caoci 14 div 5=2 kolumny tabeli 5-
wierszowej i zajmie 14 mod 5=4 pola trzeciej kolumny. Oznacza to, e zakodowana posta
tekstu wypenia kolejne wiersze tabeli w poniszy sposb
U D O
M E W
I K A
E O
M D
Odczytujc tekst kolumnami, uzyskamy wynik: UMIEMDEKODOWA.
Analogicznie dla k=4 i zakodowanej postaci DRJTOZEBES mamy n=10, m=1+10 div 4=3.
Tekst o dugoci n=10 wypeni w caoci 10 div 3=3 kolumny tabeli 3-wierszowej i zajmie 10
mod 3=1 pole trzeciej kolumny. Zakodowana posta tekstu wypenia kolejne wiersze tabeli
w poniszy sposb:
D R J T
O Z E
B E S
Odczytujc tekst kolumnami, uzyskamy wynik: DOBRZEJEST.

31.3.
Najpierw pokaemy, e liczba kolumn tablicy, do ktrej algorytm kodujcy wpisuje tekst
jest rwna k.
272 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Dla k podzielnego przez n sytuacja jest prosta: jeli liczba wierszy to m=n/k to liczba kolumn
jest rwna n/m=k, wtedy tablica pomieci dokadnie mk=n liter.
Gdy k nie jest podzielne przez n, to liczba kolumn jest rwna najmniejszej liczbie naturalnej p
speniajcej warunek mp>n (wynikowa tablica o m wierszach i p kolumnach powinna mie
wicej pl ni liter tekstu, czyli wicej ni n). Wybr m jako zaokrglenia w gr wartoci n/k
oznacza, e mk>n oraz m(k 1)<n. Zatem k spenia warunki naoone na p, tablica ma k
kolumn.
Przypomnijmy, e kodujc umieszczamy pierwsze m liter tekstu w pierwszej kolumnie naszej
pogldowej tabeli. Skoro tabela ma rozmiar mk, litery z pierwszej kolumny s
w zakodowanym tekcie (zapisanym wierszami) na pozycjach 1, 1+k, 1+2k, Analogicznie
kolejne m liter tekstu tworzy drug kolumn, zapisan w zakodowanym tekcie na pozycjach
2, 2+k, 2+2k, Poniej prezentujemy algorytm oparty na tej obserwacji. Zewntrzna ptla
dla i=1,2,,k przebiega kolejne kolumny naszej pogldowej tabeli ilustrujcej dziaanie
kodowania. Wewntrzna ptla dopki j n wypisuje zawarto i-tej kolumny, czyli litery
na pozycjach i, i+k, i+2k, w zakodowanej postaci tekstu.
Algorytm:
n dlugosc(X)
dla i=1,2,,k wykonuj
ji
dopki j n wykonuj
wypisz X[j]
j j+k

31.4.
Warto m wyznaczy moemy tak samo, jak zostao to zrobione w algorytmie podanym
w treci zadania:
m n div k
jeeli n mod k0
mm+1
Poniewa tabela ma k wierszy i m kolumn (a tekst wpisujemy do kolejnych wierszy),
pierwsza kolumna tabeli skada si z liter na pozycjach 1, 1+m, 1+2m, itd. dopki nie
przekroczymy wartoci n. Oglnie, i-ta kolumna tabeli dla 1im skada si z liter na
pozycjach i, i+m, i+2m, Ostatnia pozycja w i-tej kolumnie jest rwna i+(k 1)m gdy i+(k
1)mn oraz
i+(k 2)m gdy i+(k 1)m>n.
Korzystajc z powyszych obserwacji, zawarto i-tej kolumny moemy wypisa z gry na
d w nastpujcy sposb:
ji
dopki j n wykonuj
wypisz W[j]
j j+m
Natomiast z dou do gry zawarto i-tej kolumny wypisujemy tak:
j i+(k 1) m
jeeli jn
jjm
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
273
dopki j 0 wykonuj
wypisz W[j]
jjm
Poniszy algorytm przebiega kolejne kolumny i wypisuje ich zawarto z gry na d lub
z dou do gry, w zalenoci od tego czy i (czyli numer kolumny) jest liczb parzyst czy
nieparzyst.
n dlugosc(W)
m n div k
jeeli n mod k0
mm+1
dla i=1,2,,m wykonuj
jeeli (i mod 2=1)
ji
dopki j n wykonuj
wypisz W[j]
j j+m
w przeciwnym razie
j i+(k 1) m
jeeli jn
jjm
dopki j 0 wykonuj
wypisz W[j]
jjm

Zadanie 32.

32.1.
Rozwijamy napisy zgodnie z definicj: na przykad fragment (cd) oznacza cdcd, a zatem
a(cd)a to acdcda. Analogicznie postpujemy z pozostaymi przykadami.

32.2.
Aby napis[1..n] by dwukrotnym powtrzeniem, liczba n musi by parzysta, a pierwsza
poowa napisu (czyli napis[1..n/2]) musi by identyczna z drug poow (napis[n/2+1..n]).
Pierwsza cz algorytmu moe zatem wyglda nastpujco:
moliwe fasz
jeli n mod 2 = 0 wykonaj
moliwe prawda
dla i = 1, 2, ..., n/2
jeli napis[i] napis[i+n/2]
moliwe fasz
W pierwszym wierszu ustawiamy zmienn moliwe na warto fasz. Jeli n okae si
nieparzyste, taka warto pozostanie ju do koca algorytmu nie wykona si adna inna
instrukcja. Jeli n jest parzyste, ustawiamy zmienn moliwe na prawd, ale nastpnie
porwnujemy ze sob kad liter z pierwszej poowy napisu (napis[i]) z odpowiedni liter z
drugiej poowy (napis[n/2+i]). Jeli wszystkie pary s identyczne, zmienna moliwe zachowa
warto prawda, w razie za jakiejkolwiek rnicy przyjmie warto fasz.
274 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Widzimy zatem, e zmienna moliwe bdzie prawd dokadnie wtedy, kiedy napis bdzie
skada si z dwch identycznych fragmentw. W takim wypadku musimy jeszcze wypisa
wynik: wypisujemy lewy nawias, potem pierwsz poow tablicy napis, a koczymy
nawiasem zamykajcym.
jeli mozliwe wykonaj
wypisz '('
dla i = 1, 2, ..., n/2
wypisz napis[i]
wypisz ')'

32.3.
Zamy, e analizujemy kolejne litery napisu napis[1..n]. Dopki nie napotkamy adnego
nawiasu, moemy te litery wypisywa na wyjcie bez adnych zmian:
p1
dopki p < n wykonuj
jeli napis[p] jest liter
wypisz napis[p]
p p+1
....
Co si jednak dzieje, kiedy napotkamy nawias? Oznacza on, e pewien fragment zaczynajcy
si tym nawiasem, a koczcy najbliszym prawym nawiasem (na przykad fragment bar
w sowie skompresowanym ra(bar) ), musi by wypisany dwukrotnie. W tym celu trzeba:
znale w napisie najbliszy prawy nawias (wiemy, e na pewno wystpi, co
upraszcza szukanie),
fragment napisu midzy nawiasami wypisa dwukrotnie,
przeskoczy ju wypisany fragment, a dalsz analiz tekstu rozpocz od pierwszego
znaku po prawym nawiasie.
Pierwszy punkt zrealizujemy prost ptl dopki:
p1
dopki p n wykonuj
jeli napis[p] jest liter
wypisz napis[p]
p p+1
jeli napis[p] = '('
k p+1
dopki napis[k] ')'
k k+1
...
Wiemy, e pod napis[p] znajduje si znak '('. Ustawiamy zmienn k na p+1, a nastpnie
zwikszamy j a pod napis[k] pojawi si ')'. Teraz fragmentem do dwukrotnego wypisania
jest napis[p+1..k-1]:
p1
dopki p n wykonuj
jeli napis[p] jest liter
wypisz napis[p]
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
275
p p+1
jeli napis[p] = '('
k p+1
dopki napis[k] ')'
k k+1
powtrz 2 razy:
dla j = p+1, ..., k-1
wypisz napis[j]
...
Po dwukrotnym wypisaniu fragmentu miedzy nawiasami trzeba jeszcze przeskoczy (czyli
zwikszy zmienn p) do pierwszego znaku po nawiasie, a wic znaku napis[k+1].
Kompletny algorytm ma wic nastpujc posta:
p1
dopki p n wykonuj
jeli napis[p] jest liter
wypisz napis[p]
p p+1
jeli napis[p] = '('
k p+1
dopki napis[k] ')'
k k+1
powtrz 2 razy:
dla j = p+1, ..., k-1
wypisz napis[j]
p k+1

Zadanie 33.

33.1.
Zauwamy, e wartoci B[0,k] i B[n+1,k] s przez algorytm ustalane na 0 dla kadego 1kn,
co oznacza, e wiersze indeksowane przez 0 i 6 mona wypeni wartociami 0. Z pierwszej
ptli algorytmu wida te, e wartoci w kolumnie o numerze 1 speniaj warunek: B[i,1] = 1,
gdy A[i,1] > 0, oraz B[i,1] = 0, gdy A[i,1] 0. A zatem moemy by pewni wartoci tablicy B
przedstawionych na poniszym rysunku:

1 2 3 4 5
0 0 0 0 0 0
1 0
2 0
3 1
4 0
5 0
6 0 0 0 0 0
Warto 1 na pozycji [3,1] wynika z tego, e A[3,1] jest (jedyn) dodatni wartoci w tablicy
A w kolumnie o indeksie 1. Wewntrzna ptla dla i=1,2,,n wykonuj ustala wartoci w j-
276 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

tej kolumnie tablicy B. Dokadniej, warto B[i,j] jest ustawiana na 1 dla 1in, jeli cho
jedna z wartoci B[i 1, j 1]=1, B[i, j 1]=1, B[i + 1, j 1] rwnie jest rwna 1.
Wypeniajc w ten sposb po kolei kolumny o indeksach 2, 3, 4 i 5, uzyskujemy nastpujc
zawarto tablicy B:

1 2 3 4 5
0 0 0 0 0 0
1 0 0 1 1 1
2 0 1 1 0 0
3 1 0 0 1 0
4 0 0 0 0 1
5 0 0 0 0 0
6 0 0 0 0 0
Z ostatniej ptli algorytmu wynika jasno, e zwracana przez niego warto jest rwna 1
wtedy, gdy co najmniej jedna z wartoci w kolumnie n tablicy B jest rwna 1. Poniewa
warunek ten zachodzi w naszym przykadzie (n=5), warto zwracana przez algorytm jest
rwna 1.

33.2.
Zaprezentowany algorytm jest przykadem zastosowania techniki nazywanej
programowaniem dynamicznym. Z obserwacji poczynionych w omwieniu rozwizania
zadania 1 wiemy, e w kolumnie 1 tablicy B wystpuje warto 1 dokadnie wtedy, gdy
odpowiednia warto w tablicy A jest dodatnia. Z drugiej strony w kolumnie j>1 na pozycji i
pojawi si warto 1 dokadnie wtedy, gdy cho jedna z wartoci na pozycjach [j 1, i 1], [j
1, i], [j 1, i + 1] bdzie rwna 1. Po uwzgldnieniu definicji wdrowcw pozwala to na
sformuowanie warunku: B[i,j]=1 po zakoczeniu dziaania algorytmu dokadnie wtedy, gdy
istnieje cieka wdrowca chodzcego, zaczynajca si w pierwszej kolumnie i koczca w
polu na pozycji [i, j], ktra przechodzi wycznie przez pola o wartociach dodatnich.
Uzyskujemy w efekcie nastpujc specyfikacj:
Specyfikacja
Dane:
n liczba naturalna wiksza od 1,
A plansza rozmiaru n n wypeniona liczbami cakowitymi.
Wynik:
1 jeli istnieje trasa wdrowca typu chodzcego
i prowadzca tylko przez pola o wartociach dodatnich,
0 w przeciwnym przypadku.

33.3.
Najwiksz warto trasy wdrowca typu skaczcego uzyskamy, wybierajc z kadej
kolumny najwiksz warto pola. Zadanie sprowadza si zatem do wyznaczenia maksimum
w kadej kolumnie i zsumowania maksimw ze wszystkich kolumn. W poniszym
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
277
pseudokodzie zmienna suma reprezentuje sum maksymalnych wartoci z kolumn 0, 1, , i
1, a w zmiennej mx wyznaczamy najwiksz warto w kolumnie i.
278 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

suma 0
dla j=1,2, ,n wykonuj
mx A[1,j]
dla i=2,3,n wykonuj
jeeli A[i,j] >mx
mx A[i,j]
suma suma + mx
zwr suma

33.4.
W odniesieniu do wdrowca spadajcego bdziemy mwi, e pola w wierszu 1 s najwyej,
w wierszu n najniej i oglnie wiersz i jest wyej od wiersza j dla i<j.
Pole A[i,j] nazywa bdziemy dopuszczalnym, jeli istnieje trasa wdrowca spadajcego
zaczynajca si w pierwszej kolumnie, przechodzca wycznie przez pola o wartociach
nieujemnych i koczca si w polu A[i,j]. Aby sprawdzi, czy istnieje trasa speniajca
warunki zadania, sprbujemy ustali dla kadej kolumny j (zaczynajc od j=1) najwysze
pole dopuszczalne. Oznaczmy numer wiersza najwyszego pola dopuszczalnego w kolumnie j
przez W[j]. Przyjmijmy te, e gdy w kolumnie j nie ma pola dopuszczalnego, to W[j]= 1.
Zauwamy, e trasa wdrowca spadajcego moe przechodzi tylko przez pola dopuszczalne.
Zgodnie z zasadami przemieszczania si wdrowca spadajcego, zachodz te nastpujce
wasnoci:
1. Jeli wszystkie wartoci w pierwszej kolumnie tablicy A s ujemne, to W[1]= 1;
w przeciwnym razie W[1] jest rwne najmniejszej wartoci i, dla ktrej A[i,1]0.
2. Niech w=W[j 1]. Wwczas:
a) jeli w= 1, to W[j] = 1;
b) jeli w>0 i wszystkie wartoci wrd A[w,j], A[w+1,j],,A[n,j] s ujemne,
wtedy rwnie W[j]= 1;
c) jeli w>0 i wrd A[w,j], A[w+1,j],,A[n,j] jest co najmniej jedna liczba
nieujemna, wwczas W[j] jest rwne najmniejszej wartoci i speniajcej
warunki: iw oraz A[i,j]0.
Powysza wasno 1. wynika wprost z definicji pola dopuszczalnego: dopuszczalne pola
w pierwszej kolumnie to pola z nieujemn wartoci.
Wasno 2.a) opisuje sytuacj, gdy nie ma pola dopuszczalnego w kolumnie j 1. Poniewa
do kolumny j>1 mona doj tylko z pola w kolumnie j 1, brak pola dopuszczalnego
w kolumnie j 1 oznacza te brak pola dopuszczalnego w kolumnie j.
Wasnoci 2.b) i 2.c) opieraj si na obserwacji, e najwysze pole dopuszczalne w kolumnie
j>1 nie moe si znajdowa wyej ni najwysze pole dopuszczalne w kolumnie j 1. Jest to
konsekwencj tego, e do pola dopuszczalnego w kolumnie j moemy doj tylko z pola
dopuszczalnego w kolumnie j 1. W poczeniu z faktem, e rozwaamy wdrowca
spadajcego, uzyskujemy wasnoci 2.b) i 2.c).
Zgodnie ze specyfikacj algorytm powinien zwrci warto 1 dokadnie wtedy, gdy W[n]>0.
Nasz algorytm polega wic bdzie na wyznaczaniu po kolei W[1], W[2], z zastosowaniem
powyszych wasnoci 1 i 2. Wykorzystamy w nim rwnie nastpujc obserwacj: po
napotkaniu j takiego, e W[j] = 1, wiemy, e nie istnieje cieka speniajca warunki
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
279
zadania, i moemy zwrci warto 0. Algorytm realizujcy nasz sposb rozwizania zadania
moe wyglda nastpujco:
W[0] 1
dla j=1,2, ,n wykonuj
i W[j 1]
W[j] -1
dopki in i W[j]<0
jeeli A[i,j] > 0
W[j] i
w przeciwnym razie i i+1
jeeli W[j]<0
zwr 0
zwr 1
W modelu odpowiedzi przedstawilimy nieco inny algorytm. Gwna rnica midzy
algorytmem podanym powyej a algorytmem z modelu odpowiedzi opiera si na obserwacji,
e do wyznaczania wartoci W[j] wystarczy znajomo W[j1] i nie jest konieczne
przechowywanie W[1],,W[j2]. Mona zatem tablic liczb W zastpi odpowiednio
aktualizowanymi dwoma zmiennymi prostymi reprezentujcymi wartoci W[j1] i W[j].

Zadanie 36.
Tabele Uczniowie i Oceny poczone s relacj jeden do wielu poprzez klucz Id_u (JOIN
Oceny ON Uczniowie.Id_u = Oceny.Id_u). Z tabeli Uczniowie naley wybra
tych uczniw, a dokadnie ich nazwiska (SELECT Uczniowie.Nazwisko), ktrych
rednia ocen wynosi co najmniej 4,5 (Avg(Oceny.Wynik)>= 4.5)

Zadanie 37.
Polecenie ORDER BY Cena DESC porzdkuje produkty malejco wzgldem ceny. Na
trzech pierwszych pozycjach (po uporzdkowaniu) znajd si winogrona, maliny i orzechy.
W tabeli, w ktrej naley zaznaczy prawidowe odpowiedzi nie wymieniono wszystkich
owocw z tabeli Produkty. Znajdujemy w niej tylko dwie z trzech moliwych nazw:
maliny i orzechy.

Zadanie 38.
Korzystajc z tabeli Agenci, naley wybra pole obszar dziaania (obszar_dzialania)
i policzy liczb wierszy dla rnych obszarw dziaania (COUNT(*)), co bdzie
jednoznaczne z policzeniem liczby agentw przypisanych do danego obszaru.

Zadanie 39.

39.1.
Naley zauway, e rozmiar pliku aquapark2.jpg jest znacznie mniejszy. Poniewa
zdjcie ma by umieszczone na stronie internetowej, naley wybra zdjcie
aquapark2.jpg. Mniejszy rozmiar oznacza szybsze zaadowanie zdjcia ze strony WWW.
280 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

39.2.
Zadanie sprawdza znajomo cech charakterystycznych formatw graficznych. Format GIF
ma palet barw ograniczon do 256 kolorw. Format JPEG co prawda daje dobr kompresj
zdj przy niewielkiej utracie jakoci, jednak nie nadaje si do zastosowania podczas
wydruku. Poprawn odpowiedzi jest format TIFF. Obrazy w tym formacie s
przechowywane bez utraty jakoci. Format ten uywany jest standardowo przez firmy DTP,
przygotowujce materiau do druku.

39.3.
Jest to zadanie rachunkowe. Poniewa bitmap pamitamy w systemie RGB, na zapamitanie
1 piksela potrzebujemy 3 x 8 = 24 bity. Aby zapamita ca bitmap, potrzebujemy 1024 x
768 x 24 = 18 874 368 bitw = 18 874 368/8 bajtw = 2 359 296 bajtw (1 bajt to 8 bitw).
Przy zamianie na kilobajty naley pamita, e 1 kilobajt = 1024 bajty, std otrzymujemy
2359296/1024 = 2304 kB.

Zadanie 40.
Rozwizujc zadanie, naley zwrci uwag na adresowanie zakresu komrek stanowicego
argument funkcji LICZ.JEELI. Chcemy, aby formua wpisana do komrki G1:
zliczaa liczb ocen bardzo dobrych w kolumnie A,
po skopiowaniu do komrek H1, I1 i J1 zliczaa liczb ocen bardzo dobrych w
kolumnach B, C i D.
Musimy wic zadba, aby przy kopiowaniu formuy zmienia si odpowiednio numer
kolumny. Dlatego zmiana numeru kolumny nie powinna by blokowana w adresie zakresu.
Blokowanie numeru wiersza nie ma znaczenia (kopiujemy wartoci w obrbie tego samego
wiersza, a wszystkie formuy dotycz tego samego zakresu wierszy 1,,200). Odpowiedzi
poprawne to:
LICZ.JEELI(A$1:A$200;"=5")
LICZ.JEELI(A1:A200;"=5")
W formule LICZ.JEELI(B$1:B$200;"=5") bdnie wskazano zakres danych (z
przesuniciem o jedn kolumn), a w formule LICZ.JEELI($A$1:$A$200;"=5")
zostaa zablokowana zmiana numeru kolumny.

Zadanie 41.
Przy imporcie danych do arkusza kalkulacyjnego wszystkim kolumnom domylnie nadawany
jest format oglny. Formatowanie oglne dziaa w ten sposb, e zawarto komrki jest
traktowana jako liczba, jeli tylko wprowadzony cig znakw mona zamieni na liczb.
Numer PESEL, jako cig cyfr, jest poprawnym zapisem liczby cakowitej. W zapisie liczby
cakowitej przyjmujemy, e zera umieszczone na pocztku nie maj znaczenia dla wartoci
liczby i mona je pomin. Dlatego po zastosowaniu formatowania oglnego do numeru
PESEL rozpoczynajcego si od cyfry 0 otrzymamy liczb 10-cyfrow (pierwsza cyfra
zostanie pominita). Zmiana formatowania oglnego dla tak przeksztaconej liczby na format
specjalny Numer PESEL lub tekstowy nie spowoduje odzyskania utraconej informacji.
Formatowanie specjalne Numer PESEL umoliwi wywietlenie liczby 10-cyfrowej jako
cigu 11 cyfr (z dodanym zerem na pocztku), ale zawarto komrki nie ulegnie zmianie.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
281
Dlatego jedynym poprawnym rozwizaniem jest nadanie kolumnie zawierajcej numery
PESEL ju od pocztku formatu tekstowego.

Zadanie 42.
W zadaniu naley przeanalizowa dziaanie danego algorytmu dla przykadowych danych.
Poniewa w obu zadaniach dane tablice s takie same, wic przedstawiona poniej analiza
dotyczy jednoczenie zadania 1 i 2.
Dwa pierwsze przykady zawieraj na tyle mao liczb, e dziaanie algorytmu mona
zrealizowa po prostu krok po kroku, zliczajc po drodze liczb wykonanych porwna w
wierszach (*) i (**). Aby rozwiza pozostae dwa przykady, naley dokona penej analizy
algorytmu. Na pocztku zauwamy, e w algorytmie warto zmiennej jest pocztkowo
rwna T[1], i nigdy potem nie jest zmieniana. Dla tablicy T = [1, 2, 3, ..., 100] warto x
bdzie stale rwna 1. Zauwamy, e konstrukcja algorytmu zawiera jedn gwn ptl, a w
jej rodku nastpujce dwie ptle:
ptla 1
wykonuj
j j-1
(*) dopki T[j] > x

ptla 2
wykonuj
i i+1
(**) dopki T[i] < x
W pierwszej ptli algorytm zmniejsza wskanik j tak dugo, dopki T[j]>x. Natomiast
w drugiej ptli algorytm zwiksza wskanik i tak dugo, dopki T[i]<x.
Dla tablicy T=[1, 2, 3, ..., 100], tj. dla n=100 oraz x=1, pierwsza ptla wykonuje porwnania
T[100]>x, T[99]>x, ..., T[1]>x. Ostatnie z nich ma warto logiczn false; wwczas
ptla koczy si, a warto j jest rwna 1. W drugiej ptli algorytm wykona tylko jedno
porwnanie, mianowicie T[1]<x, po ktrym ptla zostanie przerwana. Nastpnie mona
zauway, e algorytm przerwie gwn ptl, gdy nie jest prawd, e i<j. Ostatecznie
otrzymujemy 100 porwna wykonanych w wierszu (*) i 1 porwnanie w wierszu (**).
Widzimy zatem, e algorytm nie wykona adnej operacji zamiany.
Aby rozwiza ostatni przykad, tj. dla T=[100,99,98...,1], zauwamy, e n=100 oraz x=100.
Zatem w pierwszej ptli algorytm wykona tylko jedno porwnanie T[100]>x, po czym
przerwie ptl z wartoci j=100. W drugiej ptli algorytm rwnie wykona tylko jedno
porwnanie T[1]<x, po ktrym ptla ta zostanie przerwana z wartoci i=1. Poniewa i<j,
wic algorytm wykona zamian T[1] T[100] oraz przejdzie ponownie do wykonania
gwnej ptli. Za drugim razem w pierwszej ptli algorytm znw wykona tylko jedno
porwnanie, mianowicie T[99]<x. W drugiej ptli natomiast zostan wykonane porwnania
T[2]<x, T[3]<x, ..., T[100]<x, po ktrych ptla zostanie przerwana z wartoci i=100.
W tym momencie zostanie przerwana rwnie gwna ptla. Oznacza to, e algorytm wykona
w sumie 2 porwnania w wierszu (*) i 100 w wierszu (**). Liczba zamian natomiast bdzie
rwna 1.
Dla uzupenienia warto jeszcze doda, e podany algorytm tak naprawd realizuje podzia
tablicy na pewne dwie czci (niekoniecznie rwnoliczne). W pierwszej czci bd
znajdoway si wszystkie liczby mniejsze od x, a w drugiej te wiksze lub rwne x. Podobny
podzia jest podstaw szybkiego algorytmu sortowania (ang. quick-sort).
282 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 43.

43.1.
Najpierw wskamy aplikacje, dla ktrych wykorzystanie informacji o pooeniu
geograficznym (lokalizacji) jest przydatne w sposb oczywisty:
Serwis pogodowy: informacja o pooeniu daje moliwo automatycznego wyboru
prognozy pogody dla aktualnej lokalizacji uytkownika.
Serwis informacji turystycznej Wrocawia: informacja o aktualnej lokalizacji
uytkownika pomoe ustali najblisze atrakcje turystyczne oraz wskaza drog do
wybranych atrakcji.
Wyszukiwanie optymalnej trasy samochodowej: to najlepiej znane zastosowanie
systemw lokalizacji geograficznej; wystpuje w nim swoiste sprzenie zwrotne:
system wskazuje uytkownikowi optymaln drog do celu, a jednoczenie dane
o pooeniu uytkownikw pozwalaj oszacowa natenie ruchu, co z kolei pozwala
wybiera drog omijajc tzw. korki samochodowe.
Pomysowy czytelnik moe zapewne wyobrazi sobie zastosowania lokalizacji w innych
aplikacjach, np.:
Znajomo lokalizacji pozwoli zasugerowa jzyk uywany w edytorze tekstu czy
systemie komputerowego skadu tekstu (np. w Polsce spodziewamy si korzystania
z jzyka polskiego, a w Argentynie z jzyka hiszpaskiego).
Lokalizacja pozwala zasugerowa format danych w arkuszu kalkulacyjnym (np.
format walutowy czy sposb prezentacji daty dopasowany do kraju).
Nietrudno jednak wskaza wady i ograniczon przydatno powyszych funkcjonalnoci.
Personalizacja urzdze mobilnych powoduje, e uywany w edytorze tekstu jzyk raczej
przypisujemy do uytkownika, a nie do kraju, w ktrym on si znajduje. Wydaje si wic, e
trudno o przekonujce argumenty na rzecz istotnej przydatnoci lokalizacji w edytorze tekstu,
systemie komputerowego skadu tekstu lub arkuszu kalkulacyjnym.
Lokalizacja nie wydaje si te przydatna przy korzystaniu z katalogu ksiek biblioteki
szkolnej. (Mogaby by przydatna w przypadku biblioteki miejskiej czy uczelnianej:
instytucje takie maj wiele oddziaw i aplikacja mogaby znale najbliszy oddzia,
w ktrym dostpna jest poszukiwana ksika.)
Trudno te wyobrazi sobie istotne zastosowania lokalizacji w elektronicznym dzienniku
lekcyjnym lub kompilatorze jzyka programowania.

43.2.
Urzdzenia mobilne typu smartfon/tablet s wygodne przede wszystkim w sytuacjach, w
ktrych uytkownik konsumuje treci (czyta, sucha). Brak duej ergonomicznej klawiatury
oraz odpowiednio duego monitora zazwyczaj utrudnia tworzenie treci (pisanie tekstw,
obsug systemw skadu tekstu, projektowanie CAD/CAM, pisanie i testowanie programw
komputerowych, edycj zestawie w arkuszu kalkulacyjnym itp.).
Uwzgldniajc powysze czynniki, do aplikacji (z podanej listy), ktrych przydatno jest
istotnie ograniczona w sytuacji, gdy uytkownik ma jedynie dostp do urzdzenia mobilnego,
zaliczy mona: system komputerowego skadu tekstu, edytor tekstu, arkusz kalkulacyjny,
kompilator jzyka programowania.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
283
43.3.
Mapa bitowa (np. format BMP) nie wykorzystuje zalenoci midzy pikselami, ktre
pozwalaj zmniejsza pami potrzebn do cyfrowej reprezentacji zdj. Z kolei
zastosowanie kodw korekcji CRC suy zwikszeniu odpornoci na bdy zapisu, odczytu
lub transmisji danych kosztem zwikszenia rozmiaru danych.
Przez rozdzielczo zdjcia rozumiemy liczb wierszy oraz liczb kolumn w tablicy pikseli,
z ktrych zdjcie si skada. Zmniejszenie rozdzielczoci oznacza zmniejszenie liczby kolumn
i liczby wierszy w tej tablicy. Przy zdjciach wysokiej jakoci pozwala to znacznie
ograniczy rozmiar jego cyfrowej reprezentacji bez znacznej straty jakoci zdjcia.
Celem kompresji jest zmniejszenie rozmiaru danych. Standard JPEG opisuje sposb
kompresji obrazw. Jest powszechnie stosowany w cyfrowym zapisie zdj. W kompresji
JPEG moemy zmniejsza rozmiar pliku kosztem pogorszenia wizualnej jakoci zdjcia
(jakoci kompresji).
Podsumowujc, prawdziwe jest zdanie drugie i czwarte, natomiast pierwsze i trzecie s
faszywe.

43.4.
Protok FTP umoliwia przesyanie plikw poprzez sie, nie zawiera jednak adnych
mechanizmw ochrony przed nieuprawnionym dostpem. Z kolei protok SSL zosta
zaprojektowany wanie w celu umoliwienia transferu zapewniajcego poufno i
integralno przesyanych danych, a take uwierzytelniania uczestnikw komunikacji
(wykorzystuje si do tych celw odpowiednie mechanizmy kryptograficzne); narzdzia te s
w szczeglnoci przydatne przy korzystaniu z usug bankowoci internetowej (patrz
przedrostek https w adresie internetowym).
Naturalnymi mechanizmami ochrony dostpu do indywidualnych kont s rwnie hasa
i PIN-y. Ich wzmocnieniem s czsto hasa jednorazowe tworzone dla potwierdzenia
pojedynczych operacji/czynnoci.
Celem kompresji jest przede wszystkim zmniejszenie rozmiaru cyfrowej reprezentacji
danych. Zazwyczaj nie wie si ono z ochron prywatnoci, poufnoci bd ochron przed
nieuprawnionym dostpem.
Powysze uwagi prowadz do nastpujcego rozwizania zadania:

P F

Protok transferu plikw FTP (File Transfer Protocol). x

Protok SSL (Secure Socket Layer). x

Uwierzytelnianie uytkownika przy pomocy hasa lub PIN. x

Kompresja dysku twardego. x

Hasa jednorazowe generowane przez ukady kryptograficzne i dostarczane x


kanaami informacyjnymi alternatywnymi dla Internetu.
284 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 46.
Do gwnych zada systemu operacyjnego naley:
przydzia poszczeglnym zadaniom czasu procesora (odpowied P w pierwszym
zdaniu);
przydzia poszczeglnym zadaniom pamici operacyjnej (odpowied P w czwartym
zdaniu);
dostarczenie mechanizmw synchronizacji zada i komunikacji midzy nimi;
obsugiwanie sprzt oraz zapewnia rwnolegle wykonywanym zadaniom oraz
synchronizuje dostp procesw do niego.
Dodatkowo system operacyjny moe posiada rodowisko graficzne uatwiajce komunikacj
z uytkownikiem (w trzecim zadaniu waciwa jest odpowied F). Wikszo obecnie
uywanych systemw operacyjnych posiada graficzny interfejs uytkownika. Przykadami
systemu operacyjnego bez rodowiska graficznego s Microsoft DOS oraz GNU/Linux bez
X-Windows.
Wikszo systemw operacyjnych posiada wasny system plikw, rozwijany rwnolegle
z nim, ze wzgldu na pewne specyficzne waciwoci nadawane plikom (np. atrybut
wykonywalnoci pliku). Z powodw uytkowych systemy operacyjne potrafi obsugiwa
wiele systemw plikw, w szczeglnoci inny system do urzdze wielokrotnego zapisu (w
zalenoci do systemu operacyjnego moe to by np. FAT/NTFS/ext3/HFS), a inny do pyt
CD/DVD z ograniczonymi moliwociami ponownego zapisu, np. ISO9660 lub UDF (w
drugim zadaniu waciwa jest odpowied F).

Zadanie 47.
NTFS to standardowy system plikw poczwszy od systemu Windows NT, poprzez jego
kolejnych nastpcw, a do Windows 7 i Windows 8. Dla Linuxa to system plikw obcego
pochodzenia, ale po zainstalowaniu odpowiedniego sterownika Linux potrafi go obsuy.
NTFS przechowuje informacj o rozmiarze, dacie utworzenia i modyfikacji pliku oraz ciece
dostpu do pliku. NTFS nie ogranicza maksymalnego rozmiaru pliku do 4GB w
przeciwiestwie do FAT32. W NTFS funkcjonuje tzw. lista kontroli dostpu (ACL), ktra
umoliwia administratorowi nadawanie praw dostpu do plikw i katalogw pojedynczym
uytkownikom lub grupom uytkownikw.

Zadanie 48.
Dla poprawnego udzielenia odpowiedzi trzeba ustali adresy sieci, w ktrych pooone s
cztery komputery. Na podstawie adresu IP i maski sieciowej mona ustali, e adresy te to:
w przypadku komputera A: 10.20.0.0 / maska 255.255.0.0, w skrcie 10.20.0.0/16;
w przypadku komputera B: 10.0.0.0 / maska 255.255.255.0; w skrcie 10.0.0.0/24;
w przypadku komputera C: 1.2.3.0 / maska 255.255.255.0; w skrcie 1.2.3.0/24;
w przypadku komputera D: 1.2.3.0 / maska 255.255.255.0; w skrcie 1.2.3.0/24.
Zdanie 1: Komputer A uywa adresu IP z puli tzw. adresw prywatnych, a wic
niedostpnych z sieci Internet. Komputer ten musi by podczony do sieci Internet za
porednictwem routera, ktry przy okazji moe te przekierowywa ruch adresowany do
pewnego publicznego adresu IP na ten wanie komputer. (Zdanie jest prawdziwe).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
285
Zdanie 2: Dwa z czterech komputerw uywaj adresw prywatnych, dwa adresw
publicznych. Nie ma to jednak znaczenia w przypadku dostpu do sieci Internet. Wszystkie
wymienione komputery, niezaleenie od adresu IP, jaki maj przypisany w sieciach
lokalnych, mog mie dostp do sieci Internet. (Zdanie jest faszywe).
Zdanie 3: Komputer A jest w podsieci 10.20.0.0/16, a komputer B w podsieci 10.0.0.0/24.
Le zatem w rnych podsieciach. (Zdanie jest faszywe).
Zdanie 4: Komputery C i D maj takie same adresy sieci (1.2.3.0/24) i s one publiczne, wic
jest to ta sama podsie. Nie ma to jednak znaczenia dla fizycznego pooenia tych
komputerw w jednym budynku, mog si one znajdowa w rnych budynkach. (Zdanie jest
faszywe).

Zadanie 49.
Zasada dziaania chmury obliczeniowej polega na przeniesieniu caego ciaru wiadczenia
usug IT (danych, oprogramowania, mocy obliczeniowej) na serwer i umoliwienie staego
dostpu do niego komputerom klientw. Wystarczy zalogowa si z jakiegokolwiek
komputera z dostpem do Internetu, by zacz korzysta z chmury obliczeniowej.
Chmura obliczeniowa jest szerokim pojciem, zmierzajcym w takim kierunku, aby cae
oprogramowanie byo instalowane na serwerze, za w komputerze klienta znajdowa si tylko
interfejs do komunikacji z tym oprogramowaniem. Oprogramowanie nie jest kopiowane
i powielane w komputerze klienta, wic klient nie narusza praw autorskich i nie musi
wykupowa licencji, paci jedynie za uytkowanie programw. Klient nie instaluje
oprogramowania na serwerze.
Dokumenty i dane klienta przechowywane s na serwerze, na ich bezpieczestwo nie maj
wpywu ewentualne awarie komputera klienta.
Szybko oblicze zaley od mocy obliczeniowej serwera. Moc obliczeniowa (procesory,
pami RAM, przestrze dyskowa, przepustowo cza internetowego itp.) moe by
zwikszana lub zmniejszana na yczenie klienta, jest ograniczona tylko wielkoci zasobw
usugodawcy. Opaty naliczane s za faktycznie wykorzystan moc obliczeniow w danym
czasie.

Zadanie 50.
HTTP Cookie jest krtkim tekstem (o rozmiarze maksymalnie 4 kB), ktry serwer witryny
internetowej wysya do przegldarki klienta. Przy nastpnych odwiedzinach tej witryny przez
klienta serwer prbuje odczyta swoje cookie. Odczyt cookie przez serwer jest moliwy tylko
z domeny, ktra ustawia to cookie, lub z jej subdomeny.
Cookie moe mie ustawiony czas ycia, tzn. czas przechowywania w ustawieniach
przegldarki. Jeli nie ma ustawionego czasu ycia, jest przechowywane tylko do chwili
zamknicia okna przegldarki.
W treci cookie moe by zawarta informacja o preferencjach klienta: jego rnych wyborach
podczas odwiedzin witryny. Z poziomu cookie nie ma moliwoci wykonania polece,
w szczeglnoci dotyczcych konfiguracji przegldarki.
Przegldarki umoliwiaj kontrol zapisanych HTTP cookie (przegldanie, usuwanie) oraz
zablokowanie samej obsugi cookie.
Witryny sklepw internetowych ustawiaj HTTP cookie po zalogowaniu klienta (zapisuj
identyfikator sesji), aby rozpozna tego klienta, gdy przechodzi on midzy rnymi stronami
286 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

serwisu sklepowego, wybierajc towary do koszyka. Zablokowanie obsugi cookie


w przegldarce moe uniemoliwi serwisowi opartemu na mechanizmie sesji rozpoznanie
klienta i skompletowanie jego koszyka.
Uwaga: Istnieje take inny rodzaj cookie: Flash Cookies, znane jako Local Shared Objects,
zapisywane przez przegldark internetow (dokadniej: przez plugin Flash) po wejciu na
stron WWW zawierajc obiekt Flash, np. banner. Zawieraj one take tekst, ale mog
osiga rozmiar do 100 kB, nie maj okrelonego czasu wyganicia (nie s automatycznie
usuwane) i nie mona ich przeglda ani usun z poziomu ustawie przegldarki. Mona
jedynie ustawi rozmiar przechowywanych danych w ustawieniach Adobe Flash Playera.

Zadanie 51.
Metoda brute force dziaa tylko na krtkich hasach, najlepiej na takich, ktre zoone s
z samych liter lub samych cyfr (1234, axf).
Na atak sownikowy podatne s wszystkie hasa, ktre s trywialnymi cigami kolejnych liter
lub cyfr (abcdef, 1234, ale rwnie kolejne litery na klawiaturze: qwerty), hasa bdce
prostymi sowami, zwaszcza kojarzcymi si z hasem (haslo, password, Ania,
komputer, admin), a take haso identyczne z nazw uytkownika.

Zadanie 52.
24-bitowy kolor oznacza, e na opis koloru pojedynczego piksela przeznacza si 24 bity, co
oznacza, e mamy do dyspozycji palet barw o 224 =16 777 216 kolorw. 24 bity to 3 bajty.
Oko czowieka nie dostrzega rnicy pomidzy obrazem rzeczywistym a zapisanym przy
pomocy 24-bitowej palety barw, dlatego tak palet nazywa si true colour i stosuje si do
zapisu fotografii. W przypadku obrazw rastrowych o rozdzielczoci 300x300 pikseli mamy
90 000 pikseli opisanych przez 24 bity kady.
90 000*24 bity = 2 160 000 bitw = 270 000 bajtw = 270 KB.

Zadanie 53.

53.1.
Na pocztku na podstawie zawartoci zdj chcemy ustali, jak w zegarze kodowane s bity
0 i 1 (ktry z nich kodowany jest biaym kolorem, a ktry czarnym), a take, czy liczby
w kolumnach kodowane s od gry do dou (najbardziej znaczcy bit jest najwyej,
najmniej znaczcy najniej), czy te odwrotnie.
Z treci zadania wynika, e wywietlane metod obrazkow na kolejnych zdjciach stany
zegara oznaczaj coraz pniejsz por. W szczeglnoci na zdjciu 1 warto godziny jest
najmniejsza, a na zdjciu 4 najwiksza. Przeanalizujmy kolumny z godzinami na czterech
zdjciach. Na pierwszym zdjciu w pierwszej kolumnie wystpuj tylko biae komrki, zatem
biay kolor oznacza bit 0 (w przeciwnym razie pierwsza cyfra godziny byaby rwna 15, co
oznacza kodowanie godziny niezgodne z przyjtym opisem). Na drugim i trzecim zdjciu
czarna jest pierwsza komrka od dou w pierwszej kolumnie, zatem moemy rozway dwa
sposoby kodowania: od gry (0001) i od dou (1000). Warto dziesitna pierwszego zapisu
wynosi 1, drugiego 8. Poprawnym wynikiem jest 1, gdy pierwsz cyfr godziny w ukadzie
GG moe by tylko 0, 1, 2. Zatem zapis binarny poszczeglnych cyfr na zegarze ma
najbardziej znaczcy bit w pierwszym wierszu od gry. Std atwo odczyta godziny na
kolejnych zdjciach:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
287
Zdjcie 1 09:20:15
Zdjcie 2 11:47:51
Zdjcie 3 18:33:59
Zdjcie 4 23:10:36

53.2.
Aby zamalowa w drugim zadaniu odpowiednie pola, musimy zamieni zapis
poszczeglnych cyfr z systemu dziesitnego na binarny (moemy take wykorzysta
informacje o sposobie kodowania z pierwszego zadania):
2(10) = 0010(2)
3(10) = 0011(2)
4(10) = 0100(2)
5(10) = 0101(2)
2(10) = 0010(2)
9(10) = 1001(2)
Przepisujc zapis binarny (w ustalonym powyej porzdku) do planszy zegara, otrzymujemy:
0 0 0 0 0 1
0 0 1 1 0 0
1 1 0 0 1 0
0 1 0 1 0 1

Nastpnie zamieniajc 1 na czarne pola, za 0 na pola biae, otrzymujemy rozwizanie


zadania:

Zadanie 54.
Stos jest liniow struktur danych, w ktrej s one dokadane na wierzch stosu i z wierzchoka
stosu pobierane. Mamy moliwo dodania nowego elementu, bezporedni dostp do ostatnio
zapisanego elementu oraz moliwo usunicia najpniej dodanego elementu.

Zadanie 55.

55.1.
Naley zauway, e w kadym wywoaniu funkcji F(n) argument jest zmniejszany
dwukrotnie. Pytanie o zoono mona zamieni na pytanie: Ile razy naley dzieli n na p,
aby uzyska n = 1? Dla n = 8 = 23 kolejne wywoania funkcji to F(4), F(2), F(1), czyli
dzielenie wystpuje 3 razy. Dla n = 16 = 24 kolejne wywoania to F(8), F(4), F(2), F(1), czyli
dzielenie wystpuje 4 razy. Dla n = 2k takie dzielenie bdzie wystpowao k razy, zatem
zoono algorytmu jest logarytmiczna.
288 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

55.2.
Zadanie mona rozwiza na 2 sposoby. Mona przeanalizowa dziaanie funkcji F dla
podanych argumentw, np.
(8) = (4) + 1 = ((2) + 1) + 1 = (((1) + 1) + 1) + 1 = ((1 + 1) + 1) + 1 = 4;
(12) = (6) + 1 = ((3) + 1) + 1 = (((1) + 1) + 1) + 1 = ((1 + 1) + 1) + 1 = 4.
Mona te zauway, e funkcja F oblicza liczb bitw potrzebnych do zapamitania liczby n
w systemie binarnym; w ten sposb zadanie bardzo si upraszcza. I tak do zapamitania
n = 8, n = 9, n = 12 potrzebujemy 4 bitw, a dla n = 1 potrzebujemy 1 bitu.
Std atwo uzyskujemy dwie pierwsze odpowiedzi. Przy udzielaniu odpowiedzi na kolejne
pytania trzeba pamita o tym, e warto wyraenia a lub b jest faszywa tylko w wypadku,
gdy zarwno a = fasz, jak i b = fasz (w pozostaych przypadkach jest prawdziwa), za
warto wyraenia a oraz b jest prawdziwa tylko wtedy, gdy zarwno a = prawda, jak
i b = prawda (w pozostaych przypadkach jest faszywa). Std otrzymamy:
F(1) = 0 lub F(9) = 4 fasz lub prawda prawda,
F(1) = 1 oraz F(9) = 3 prawda oraz fasz fasz.

Zadanie 56.
Aby zgodnie z prawem korzysta z programu komputerowego, powinnimy posiada licencj
na jego uytkowanie. W przeciwnym razie dopuszczamy si kradziey, a odpowiedzialno
za tego typu czyn przewiduje art. 278 par. 1kk, ktry mwi: "Kto zabiera w celu
przywaszczenia cudz rzecz ruchom podlega karze pozbawienia wolnoci od 3 miesicy do
5 lat". A w odniesieniu do programu komputerowego par. 2 tego art. stwierdza: "Tej samej
karze podlega, kto bez zgody osoby uprawnionej uzyskuje cudzy program komputerowy w
celu osignicia korzyci majtkowej".
Warunki licencji na uytkowanie programu precyzuj, co mona zrobi z posiadanym
programem. Zazwyczaj licencje patne nie dopuszczaj odstpowania programu innym
osobom. Warunki licencji freeware dopuszczaj rozpowszechnianie programu, ale bez
moliwoci czerpania korzyci finansowych z tego tytuu.
Wersje demo programw mona z zasady instalowa na komputerze, nie posiadajc licencji
na dany program. Celem udostpniania wersji demo jest zachcenie (potencjalnego) klienta
do zakupu licencji.

Zadanie 57.
Poprawne odpowiedzi do zadania wynikaj bezporednio z treci zapisw Ustawy z dnia 4
lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz.U. 1994 nr 24 poz. 83):
Rozdzia 10
Ochrona wizerunku, adresata korespondencji i tajemnicy rde informacji
Art. 81. 1. Rozpowszechnianie wizerunku wymaga zezwolenia osoby na nim
przedstawionej. W braku wyranego zastrzeenia zezwolenie nie jest wymagane,
jeeli osoba ta otrzymaa umwion zapat za pozowanie.
2. Zezwolenia nie wymaga rozpowszechnianie wizerunku:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
289
1) osoby powszechnie znanej, jeeli wizerunek wykonano w zwizku z
penieniem przez ni funkcji publicznych, w szczeglnoci politycznych,
spoecznych, zawodowych;
2) osoby stanowicej jedynie szczeg caoci takiej jak zgromadzenie, krajobraz,
publiczna impreza.

Zadanie 60.

60.1.
Liczb liczb mniejszych ni 1000 przechowujemy w zmiennej licznik. Z kad tak napotkan
liczb zwikszamy licznik o 1.
Dodatkowo przechowujemy (w zmiennych przedostatnia i ostatnia) dwie ostatnie napotkane
liczby mniejsze ni1000. Przy znalezieniu kolejnej takiej liczby (nazwijmy j a) staje si ona
ostatni, a ostatnia przedostatni:
int przedostatnia = 0, ostatnia = 0;
int licznik = 0;
for(int i=0; i<200; i++)
{
int a;
in >> a;
if (a<1000)
{
przedostatnia = ostatnia;
ostatnia = a;
licznik++;
}
}
Mona atwo znale inne sposoby rozwizania tego zadania: na przykad zapisywa
wszystkie odpowiednio mae liczby w tablicy i wypisa dwa ostatnie jej elementy.

60.2.
Istot tego zadania jest sprawdzenie dla danej liczby a, ile ma ona dzielnikw, a jeli ma ich
dokadnie 18 wypisanie ich wszystkich. Najprostszym pomysem jest przej w ptli
wszystkie liczby od 1 do a, sprawdzajc dla kadej, czy jest ona dzielnikiem a. Znalezione
dzielniki zliczamy w zmiennej ile_dzielnikow:
int ile_dzielnikow = 0;
for(int i=1; i<=a; i++)
if (a%i == 0)
ile_dzielnikow++;
Jeli okae si, e dzielnikw jest 18, wypisujemy znalezion liczb a, a nastpnie
wykonujemy jeszcze raz tak sam ptl, tym razem wypisujc dzielniki na wyjcie:
290 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

if (ile_dzielnikow==18)
{
out << a << endl;
for(int i=1; i<=a; i++)
if (a%i == 0)
out << i << " ";
out << endl;
}
Zauwamy, e w ten sposb dzielniki zostan wypisane w prawidowej kolejnoci rosncej,
jako e sprawdzamy podzielno od najmniejszych do najwikszych liczb.

60.3.
W tym zadaniu musimy zapisa wszystkie liczby w tablicy (nazwijmy j liczby[1..200]), jako
e do kadej z nich bdziemy musieli odwoa si wielokrotnie.
Konieczne jest rwnie wielokrotne sprawdzanie najwikszego wsplnego dzielnika dwch
liczb. Wygodnie jest wydzieli t cz programu do osobnej funkcji. Samo sprawdzanie
zaimplementujemy bardzo znanym algorytmem, zwanym powszechnie algorytmem
Euklidesa:
int nwd(int x, int y)
{
if (x < y)
return nwd(y,x);
if (y == 0)
return x;
return nwd(y,x%y);
}
Funkcja nwd() bdzie przyjmowa dwa argumenty liczby cakowite dodatnie i zwraca
ich najwikszy wsplny dzielnik. Majc t funkcj, iterujemy si po wszystkich liczbach i dla
kadej z nich sprawdzamy jej wzgldn pierwszo z pozostaymi:
for(int i=0; i<200; i++)
{
bool ok = true;
for(int j=0; j<200; j++)
if (i != j && nwd(liczby[i],liczby[j])>1)
ok = false;
if (ok)
(...)
}
Gwna ptla przebiega po wszystkich liczbach liczba[i] jest t, ktr wanie
sprawdzamy. Najpierw ustawiamy zmienn ok na true, a nastpnie przebiegamy drug ptl
(sterowan zmienn j) po wszystkich danych liczbach. Jeli napotkana liczba[j] (dla i j, co
koniecznie musimy sprawdzi!) ma wsplny dzielnik z liczb[i] rny od 1, to liczba[i] nie
moe by odpowiedzi. W takim wypadku zmieniamy ok na false. Liczby, dla ktrych ok
pozostanie na kocu z wartoci true, s wzgldnie pierwsze z pozostaymi.
Do kompletnego algorytmu brakuje jeszcze wyznaczenia i przechowania najwikszej liczby
speniajcej nasz warunek jest to ju bardzo proste zadanie:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
291
int najwieksza = 0;
for(int i=0; i<200; i++)
{
bool ok = true;
for(int j=0; j<200; j++)
if (i != j && nwd(liczby[i],liczby[j])>1)
ok = false;
if (ok && liczby[i] > najwieksza)
najwieksza = liczby[i];
}

Zadanie 61.

61.1.
Aby sprawdzi, czy dany cig jest arytmetyczny, najatwiej obliczy rnic dwch
pierwszych wyrazw, a nastpnie sprawdzi, czy kada nastpna rnica dwch kolejnych
wyrazw jest taka sama:
in >> dlugosc;
for(int i = 0; i < dlugosc; i++)
in >> ciag[i];
int roznica = ciag[1] - ciag[0];
bool arytm = true;
for(int i = 0; i+1 < dlugosc; i++)
if (ciag[i+1] - ciag[i] != roznica)
{
arytm = false;
break;
}
Zmienn arytm ustawiamy na true i jeeli ktra z rnic okae si inna ni pierwsza
obliczona, zmieniamy jej warto z powrotem na false (i moemy ju przerwa ptl
instrukcj break). Jeli po zakoczeniu ptli zmienna arytm wci ma warto true, cig jest
arytmetyczny. W takim wypadku trzeba zwikszy o 1 odpowiedni licznik (utrzymywany w
zmiennej ilearytm) oraz sprawdzi, czy nowa rnica nie jest wiksza od dotychczas
znalezionych (najwiksz dotychczas znalezion przechowujemy w zmiennej maxroznica):
if (arytm)
{
ilearytm++;
if (roznica>maxroznica)
maxroznica = roznica;
}
Oczywicie musimy tak uczyni dla kadego cigu, w odpowiedniej ptli.

61.2.
Skoncentrujmy si wycznie na zagadnieniu: Jak sprawdzi, czy podana liczba jest
szecianem? Przechowywanie najwikszego znalezionego szecianu bdziemy realizowa
podobnie jak w zadaniu 1. Jest kilka sposobw rozwizania tego problemu, wzorcowe
korzysta z tego, e skoro liczby w zadaniu s dodatnie i nie przekraczaj 1 000 000, to mog
292 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

by szecianami tylko liczb midzy 1 a 100. Sprawdzamy wic kolejno wszystkie takie
liczby:
bool czy_szescian(int liczba)
{
for(int x = 1; x <= 100; x++)
if (x*x*x == liczba)
return true;
return false;
}
Alternatywnie mona obliczy przybliony pierwiastek szecienny z liczby za pomoc funkcji
matematycznych (np. funkcja pow w C++), po czym zaokrgli go do liczby cakowitej,
podnie do szecianu i sprawdzi, czy wynik jest rwny liczbie pierwotnej:
bool czy_szescian(int liczba)
{
double pierwiastek = pow(liczba,1.0/3.0);
int pz = (int)round(pierwiastek);
if (pz*pz*pz==liczba)
return true;
else
return false;
}

61.3.
To zadanie moe sprawi kopoty bardzo szczeglnego rodzaju. Mona do niego zastosowa
pomys troch podobny jak w zadaniu 1: obliczamy rnice midzy kadymi dwoma
kolejnymi wyrazami, a potem sprawdzamy, czy wszystkie s rwne pierwszej. Jeli ktra
jest inna, odpowiedni wyraz jest tym bdnym, ktry mielimy znale:
in >> dlugosc;
for(int i = 0; i < dlugosc; i++)
in >> ciag[i];
for(int i = 0; i+1 < dlugosc; i++)
roznice[i] = ciag[i+1] - ciag[i];

(...)

for(int i = 0; i+1 < dlugosc; i++)


if (roznice[i] != roznice[0])
{
out << ciag[i+1] << endl;
break;
}
Niestety, ten sposb zawodzi w dwch przypadkach: kiedy bdny jest pierwszy wyraz oraz
kiedy bdny jest drugi wyraz cigu5. Aby nasz algorytm by kompletny, musimy te dwa
przypadki rozpatrzy osobno, i to zanim uyjemy podanego wyej sposobu.

5 Rozwizanie, ktre nie uwzgldnia tego szczeglnego przypadku, zaimplementowane jest w pliku
rozw3_zle.cpp mona samodzielnie sprawdzi, e niektre wyniki s dla tego rozwizania bdne.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
293
Najpierw sprbujmy wykry bd na pierwszym wyrazie cigu. Jako e wpywa on tylko na
pierwsz rnic, w takim wypadku wszystkie rnice z wyjtkiem pierwszej bd sobie
rwne. Nie trzeba sprawdza wszystkich: jeli druga rnica bdzie rwna kolejnej, a
pierwsza inna, od razu moemy stwierdzi, e odpowiedzialny za to jest pierwszy wyraz:
if (roznice[0]!=roznice[1] && roznice[1]==roznice[2])
{
out << ciag[0] << endl;
continue;
}
Jeli bdny jest drugi wyraz, sytuacja jest podobna, cho nieco bardziej zoona: drugi wyraz
wpywa na pierwsz i drug rnic, a wszystkie dalsze bd takie same. Wystarczy wic
wtedy porwna trzeci i czwart rnic (musz by rwne) oraz sprawdzi, czy druga
i pierwsza s inne:
if (roznice[0]!=roznice[2] && roznice[1]!=roznice[2] &&
roznice[3]==roznice[2])
{
out << ciag[1] << endl;
continue;
}

Zadanie 62.

62.1.
Aby rozwiza to zadanie, po wczytaniu kadej liczby naley porwna j z dotychczas
znalezionymi wartociami, najmniejsz i najwiksz, i w razie potrzeby zapamita wanie
wczytan liczb. Jako pocztkowe wartoci tych liczb naley przyj: 0 dla najwikszej
(kada liczba bdzie od niej wiksza) i np. 1 000 000 dla najmniejszej (kada semkowa
liczba szeciocyfrowa jest mniejsza od siedmiocyfrowej). Poniewa wykonujemy na
wczytanych liczbach tylko operacje porwnywania, moemy je wczytywa i porwnywa jak
liczby zapisane dziesitnie. Gwna cz kodu w jzyku C++ wyglda zatem nastpujco:
int minimum = 1000000;
int maximum = 0;

for(i=0; i<1000; i++) {


cin >> liczba;

if (minimum > liczba) {


minimum = liczba;
}
if (maximum < liczba) {
maximum = liczba;
}
}

62.2.
Przy inicjacji za ostatnio wczytan liczb (poprzednia) mona przyj 1000000, poniewa
kada liczba w cigu jest od niej mniejsza. W ten sposb wykryjemy podcig niemalejcy,
zaczynajcy si od pierwszej liczby w pliku. W rozwizaniu tego zadania po wczytaniu
kadej liczby trzeba okreli, czy jest to pocztek (pierwszy element) nowego podcigu
niemalejcego, czy te kontynuacja wczeniej wykrytego niemalejcego podcigu. W
294 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

pierwszym przypadku wczytana liczba musi by mniejsza od poprzedniej, natomiast w


drugim przypadku nie mniejsza od poprzedniej. Trzeba pamita, eby liczy elementy
podcigu niemalejcego.
int naj_dlugosc_podciagu = 0;
int naj_pierwszy; // pierwszy element najduszego podcigu
int poprzednia = 1000000;
int dlugosc_podciagu = 0; //dugo aktualnie wykrywanego podcigu

for(i=0; i<1000; i++) {


cin >> liczba;

if (liczba < poprzednia) {


// pocztek nowego podcigu, czyli zakoczy si podcig
// niemalejcy naley porwna dugo zakoczonego podcigu
// z dotychczas najduszymu
if (dlugosc_podciagu > naj_dlugosc_podciagu) {
naj_dlugosc_podciagu = dlugosc_podciagu;
naj_pierwszy = pierwszy;
}

pierwszy = liczba;
dlugosc_podciagu = 1;
} else {
// kontynuacja podcigu
dlugosc_podciagu++;
}
// podmieniamy element poprzedni biecym
poprzednia = liczba;
}
Na zakoczenie trzeba jeszcze sprawdzi, czy ostatni podcig (koczcy si ostatnim
elementem cigu) nie jest najduszy.
Gorszym rozwizaniem jest sprawdzanie po kadym elemencie, czy biecy podcig jest
najduszy. Rozwizanie takie jest nieoptymalne. Jego zalet jest natomiast minimalne
uproszczenie kodu i uniknicie koniecznoci dodatkowego sprawdzania ostatniego podcigu.

62.3.
Najczciej rozwizywanie tego typu zada polega na wczytywaniu liczb w zapisie
semkowym jako napisw albo jako liczb dziesitnych, a nastpnie konwertowaniu tych
zapisw na waciwe wartoci. Poniej prezentujemy rozwizanie, ktre wykorzystuje
moliwo czytania liczb zapisanych semkowo z jednoczesn konwersj na wartoci
dziesitne.
Poprawne wczytanie wartoci dziesitnej bardzo uatwia rozwizanie tego zadania. Jeeli
cyklicznie bdziemy wczytywa liczb w zapisie semkowym z pierwszego pliku oraz liczb
w zapisie dziesitnym z drugiego pliku, to sprawdzenie warunkw z obu podpunktw
zadania nie stanowi ju adnego problemu. Zapisany kod programu w jzyku C++ wyglda
nastpujco:
for(i=0; i<1000; i++) {
plik1 >> oct >> licz1;
plik2 >> licz2;

if (licz1 == licz2) {
liczbar++;
} else if (licz1 > licz2) {
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
295
liczbaw++;
}
}
Uwaga: W powyszym rozwizaniu pokazany jest sposb czytania z plikw liczb zapisanych
inaczej ni dziesitnie. W jzyku C++ moemy te wczytywa liczby zapisane szesnastkowo.
Suy do tego manipulator hex. W podobny sposb moliwe jest wypisywanie liczb zarwno
na ekran, jak i do pliku, np.:
cout << "Liczba 42 w systemie osemkowym: " << oct << 42 << endl;
62.4.
W tym zadaniu naley sprawdzi kad cyfr kadej liczby i zlicza te spord nich, ktre
maj warto 6. Dodatkowo naley kad liczb przeksztaci na liczb semkow i w tak
przeksztaconych liczbach w podobny sposb zliczy cyfry 6.
Jeeli liczby bdziemy wczytywa z pliku do programu jako dziesitne, to bd one tak
zapamitane. Naley wtedy odzyska z wczytanych wartoci cyfry w zapisach:
dziesitkowym i semkowym. Odzyskiwanie polega na dzieleniu cakowitym odpowiednio
przez 10 i 8. Szukanymi cyframi s reszty z dzielenia.
Zapisany kod programu w jzyku C++ wyglda nastpujco:
// zliczamy '6' w zapisie dziesitnym
temp = liczba;
while (temp) {
if (temp%10 == 6) {
cyfr6d++;
}
temp /= 10;
}

// zliczamy '6' w zapisie osemkowym


temp = liczba;
while (temp) {
if (temp%8 == 6) {
cyfr6o++;
}
temp /= 8;
}

Zadanie 63.
Zadanie rozpoczynamy od wczytania danych z pliku do np. tablicy napisw ciagi.

63.1.
Aby sprawdzi, czy cig jest dwucykliczny, wystarczy porwna ze sob odpowiednie znaki
napisu reprezentujcego ten cig. Z definicji dwucyklicznoci wynika, e dugo takiego
napisu (oznaczymy j przez d) musi by liczb parzyst. Porwnujemy ze sob znaki napisu
znajdujce si na pozycjach: 0, 1, ..., d/2 1 ze znakami znajdujcymi si na pozycjach: d/2,
d/2+1, ..., d 1. Jeeli na ktrejkolwiek parze pozycji (i, d/2+i) znajduj si rne znaki, to
dany cig nie jest dwucykliczny. Poniej przedstawiono funkcj, ktra sprawdza, czy cig jest
dwucykliczny:
bool dwucykliczny(string ciag)
{ int d=ciag.length();
if (d%2==1) return false;
for (int j=0; j<d/2; j++)
296 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

if (ciag[j]!=ciag[d/2+j]) return false;


return true;
}
Alternatywnym sposobem rozwizania jest skorzystanie z operacji na napisach (np. dzielimy
napis o parzystej dugoci na poowy i sprawdzamy, czy s one takie same). Wymaga to
jednak znajomoci metody substr()z klasy string.
Aby wypisa wszystkie interesujce nas cigi, mona zastosowa ptl for i dla kadego
napisu sprawdzi dwucykliczno przy pomocy funkcji dwucykliczny:
ofstream fout;
fout.open("wyniki_ciagi.txt");
for(int i=0; i<1000; i++)
if (dwucykliczny(ciagi[i]))
fout<<ciagi[i]<<endl;

63.2.
W tym zadaniu dla kadego cigu sprawdzamy wszystkie pary kolejnych znakw: jeeli
ktra z par skada si z dwch jedynek, to taki cig nie spenia warunkw zadania. Poniej
przedstawiamy funkcj realizujc takie sprawdzanie. Zwraca ona warto true wtedy
i tylko wtedy, gdy cig nie zawiera ssiadujcych jedynek.
bool dwie_jedynki(string ciag)
{for (int i=0; i<ciag.length()-1; i++)
if (ciag[i]=='1' && ciag[i+1]=='1') return false;
return true;
}
Do obliczenia liczby cigw niezawierajcych dwch ssiadujcych jedynek stosujemy ptl,
w ktrej dla kolejnych i = 0, 1, ...., 999 wywoujemy funkcj dwie_jedynki(ciag[i]).
Liczba tych cigw zostanie zapamitana w zmiennej ile. Oto fragment kodu
rdowego:
int ile=0;
for (int i=0; i<1000; i++)
if (dwie_jedynki(ciagi[i])) ile++;

63.3.
To zadanie mona podzieli na etapy. Najpierw obliczamy warto liczby, ktrej
reprezentacja binarna jest zapamitana w cigu, a nastpnie sprawdzamy, czy liczba ta jest
liczb ppierwsz.
Krok pierwszy mona wykona na kilka sposobw. Jednym z nich jest wykorzystanie
schematu Hornera, co realizuje ponisza funkcja:
long long int bin2wart(string bin)
{
long long int w=0;
for(int i=0; i<bin.length(); i++)
w=w*2+(bin[i]-'0');
return w;
}
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
297
Zauwamy, e cigi zostay wczytane jako napisy, zatem bin[i] jest zmienn typu znak,
pamitajc i-t cyfr rozwinicia binarnego. Aby uy tej zmiennej w obliczeniach wartoci
liczby, musimy zamieni jej warto (znakow) na warto liczbow. Moemy to zrobi,
odejmujc od niej kod ASCII cyfry 0: bin[i]-'0' lub bin[i]-48.
Sprawdzanie, czy liczba jest ppierwsza, mona take zrealizowa na kilka sposobw.
Pierwszy z nich korzysta z algorytmu obliczania czynnikw pierwszych liczby. Moemy
napisa funkcj, ktra w ptli sprawdza kolejnych kandydatw na czynniki pierwsze: jeli
badana liczba dzieli si bez reszty przez kandydata, to zwikszamy o 1 liczb znalezionych
czynnikw i modyfikujemy badan liczb (dzielimy j przez znaleziony czynnik).
Oczywicie, gdy liczba znalezionych czynnikw przekroczy 2, moemy przerwa obliczenia
badana liczba nie jest liczb ppierwsz. Jeli obliczenia nie zostay przerwane, mamy
dwie moliwoci: albo badana liczba jest liczb pierwsz (gdy liczba czynnikw jest rwna
1), albo jest liczb ppierwsz. Musimy sprawdzi, z ktrym przypadkiem mamy do
czynienia. Poniej przedstawiamy fragment kodu:
bool czy_polpierwsza(long long int x)
{
int ile=0;
int i=2;
while (x>1){
if (x%i==0){
ile++;
x=x/i;
if (ile>2) return false;
}
else i++;
}
if (ile==1) return false;
return true;
}
Innym sposobem jest skorzystanie wprost z definicji liczby ppierwszej: jest ona iloczynem
dwch liczb pierwszych. Dla badanej liczby sprawdzamy kolejnych kandydatw na czynniki
iloczynu, zaczynajc od dwjki. Jeeli badana liczba dzieli si przez kandydata bez reszty
oraz liczbami pierwszymi s zarwno kandydat, jak i wynik dzielenia badanej liczby przez
kandydata, to taka liczba jest ppierwsza. Przykadem realizacji opisanej metoda jest
ponisza funkcja:
bool czy_polpierwsza2(long long int x)
{
for (long long int j=2; j<=x; j++)
if (x%j == 0 && czy_pierwsza(j) && czy_pierwsza(x/j))
return true;
return false;
}
Zauwamy jednak, e obydwie metody mog by bardzo czasochonne. Przykadowo, jeli
badana liczba x jest liczb pierwsz, to obydwie metody bd sprawdza wszystkich
kandydatw z przedziau [2,x]. Poniewa x moe by rzdu 218, liczba wykonywanych
operacji moe by nieakceptowalnie wielka.
298 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Mona to poprawi, modyfikujc funkcj czy_polpierwsza2()tak, by nie sprawdza


kandydatw o wartoci wikszej ni pierwiastek z x. Ponadto mona usprawni t funkcj,
likwidujc niepotrzebne wywoania funkcji czy_pierwsza(). Zauwamy bowiem, e:
jeli liczba x jest liczb pierwsz, to nie moe by liczb ppierwsz;
jeli liczba x jest parzysta, to wystarczy sprawdzi, czy liczba x/2 jest liczb pierwsz;
jeli liczba x dzieli si bez reszty przez dzielnik nieparzysty, to wystarczy sprawdzi,
czy liczba x/dzielnik jest liczb pierwsz. Jest tak dlatego, e pierwszy napotkany
przez algorytm dzielnik nieparzysty jest liczb pierwsz.
Prowadzi to do nastpujcej funkcji:
bool czy_polpierwsza2_v2(long long int x)
{ if (czy_pierwsza(x)) return false;
if (x%2==0) return (czy_pierwsza(x/2));
for (long long int j=3; j*j<=x; j+=2)
if (x%j == 0) return (czy_pierwsza(x/j));
}
Funkcja czy_pierwsza(), ktra jest wywoywana powyej, jest realizacj algorytmu
sprawdzania, czy liczba jest pierwsza. Niech badan liczb bdzie . Jeeli jest rwne 1, to
ta liczba nie jest pierwsza. Jeeli dzieli si przez 2 bez reszty i jednoczenie nie jest rwne
2, to badana liczba rwnie nie jest pierwsza. Jeeli podzieli si przez jakkolwiek spord
liczb: 3, 5, 7, ..., , to take nie bdzie liczb pierwsz. Algorytm ten realizuje ponisza
funkcja:
bool czy_pierwsza(long long int x)
{
if (x==1) return false;
if (x%2 == 0 && x!=2) return false;
for(long long int i=3; i*i<=x; i+=2)
if (x%i == 0) return false;
return true;
}
Dodatkowo naley wyznaczy minimaln i maksymaln liczb ppierwsz. Najpierw
znajdziemy pierwsz liczb ppierwsz w danych, przyjmujc j jako pocztkow warto
minimalnej i maksymalnej liczby ppierwszej:
long long int min, max, liczba;
int j=0;
bool wystepuje=false;
while(j<1000 && (!wystepuje)){
liczba = bin2wart(ciagi[j]);
if (czy_polpierwsza(liczba)){
wystepuje=true;
min=max=liczba;
} else j++;
}
W wyniku wykonania powyszego fragmentu programu zmienna j wskazuje na pierwsz
liczb ppierwsz (jeli j<1000) lub wskazuje na brak liczb ppierwszych (gdy j=1000).
Ponadto wystepuje=true dokadnie wtedy, gdy w cigu znalelimy liczb ppierwsz.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
299
Nastpnie przegldamy kolejne liczby (poczwszy od j-tej), stosujc klasyczny algorytm
znajdowania minimum (lub maksimum) w nieuporzdkowanym cigu liczb. Pamitamy
jednak o tym, e minimum i maksimum wybieramy tylko spord liczb ppierwszych.
Dlatego te warto kolejnej liczby porwnywana jest z min i max tylko wtedy, gdy dana
liczba jest ppierwsza. Poniej prezentujemy fragment kodu realizujcy powyej opisany
algorytm:
ile=0;
for(int i=j; i<1000; i++)
{
liczba = bin2wart(ciagi[i]);
if (czy_polpierwsza(liczba))
{
ile++;
if (liczba>max) max = liczba;
if (liczba<min) min = liczba;
}
}
Po wykonaniu powyszego fragmentu programu zmienna wystepuje wskazuje, czy w
pliku wystpia cho jedna liczba ppierwsza. Gdy wystepuje=true, zmienne min i max
zawieraj odpowiednio warto najmniejszej liczby ppierwszej i warto najwikszej liczby
ppierwszej. Ponadto w zmiennej ile wyznaczona zostanie ilo liczb ppierwszych.

Zadanie 64.
Do reprezentacji jednego obrazka uywa bdziemy tablicy dwuwymiarowej rozmiaru 2121.
Zdefiniujemy w tym celu typ obrazek:
#define RZM 20
typedef short obrazek[RZM+1][RZM+1];
Piksele obrazka bdziemy przechowywa na pozycjach [i][j] dla 0i,j<RZM, bit parzystoci
wiersza 0iRZM umiecimy na pozycji [i][RZM], natomiast bit parzystoci kolumny
0jRZM na pozycji [RZM][j].
Stosujc standardowe metody wczytywania danych z pliku tekstowego, moemy umieci
kolejne obrazki w tablicy elementw typu obrazek bd kolejne obrazki wczytywa do tej
samej zmiennej w celu ich sekwencyjnego przetwarzania.
Zauwamy, e kade z zada sprowadza si do zliczenia liczby obrazkw speniajcych
podan wasno lub znalezieniu obrazka ekstremalnego (minimalnego lub maksymalnego)
wzgldem pewnej wasnoci. Dlatego w omwieniu skoncentrujemy si na przetwarzaniu
pojedynczego obrazka.

64.1.
Do rozwizania zadania przydatna bdzie funkcja, ktra zlicza liczb czarnych pikseli
w obrazku:
int ileCzarnych(obrazek pobraz){
int czarne=0;
for(int i=0;i<RZM;i++){
for(int j=0;j<RZM;j++){
czarne+=pobraz[i][j];
300 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

}
}
return czarne;
}
Zgodnie z treci zadania obrazek jest rewersem, jeli warto zwracana przez funkcj
ileCzarnych jest wiksza od RZM2/2=200. Korzystajc z funkcji ileCzarnych,
sprowadzamy zadanie do znalezienia najwikszej wartoci ileCzarnych zwracanej dla
obrazkw z pliku wejciowego oraz zliczenia liczby obrazkw majcych wicej ni 200
czarnych pikseli.

64.2.
Rozwamy obrazek przechowywany w zmiennej robr typu obrazek. Obrazek taki jest
n n
rekurencyjny, gdy cztery podobrazki rozmiaru o zakresach wsprzdnych
2 2
z poniszego rysunku s rwne:

robr[0..RZM/2 1] [0..RZM/21] robr[0..RZM/21] [RZM/2..RZM1]

robr[RZM/2, RZM1] [0..RZM/21] robr[RZM/2, RZM1] [RZM/2, RZM1]

Wasno powysz moemy wyrazi inaczej: robr jest rekurencyjny, jeli dla kadego
0i,jRZM/2 zachodzi:
robr[i][j]=robr[i][j+s]=robr[i+s][j]=robr[i+s][j+s]
dla s=RZM/2.

[i][j] [i][j+s]

[i+s][j] [i+s][j+s]

Na tej obserwacji oparta jest podana poniej funkcja czyRek, ktra zwraca warto true
dokadnie wtedy, gdy obrazek zapamitany w zmiennej robr jest rekurencyjny:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
301
bool czyRek(obrazek robr){
int s=RZM/2;
for(int i=0; i<RZM/2; i++)
for(int j=0; j<RZM/2; j++){
if (robr[i][j]!=robr[i+s][j]) return false;
if (robr[i][j]!=robr[i][j+s]) return false;
if (robr[i][j]!=robr[i+s][j+s])
return false;
}
return true;
}
Majc do dyspozycji funkcj czyRek, zadanie 2 moemy sprowadzi do zliczania liczby
elementw w cigu speniajcych podan wasno (czyli liczby obrazkw rekurencyjnych)
oraz wypisania pierwszego napotkanego elementu speniajcego t wasno (czyli
pierwszego napotkanego obrazka rekurencyjnego).

64.3.
Aby rozwiza zadanie 3, postaramy si najpierw ustali liczb bdnych bitw parzystoci
wierszy oraz liczb bdnych bitw parzystoci kolumn w obrazku. Zauwamy, e poprawna
warto bitu parzystoci cigu jest rwna reszcie z dzielenia przez 2 sumy wszystkich
elementw cigu. Wykorzystujc ten fakt, liczb bdnych bitw parzystoci wierszy
w obrazku zapamitanym w zmiennej pobraz typu obrazek moemy wyznaczy przy
pomocy nastpujcego fragmentu programu (wynik w zmiennej ileBlWiersz):
int parzw, ileBlWiersz=0;
for(int i=0; i<RZM; i++){
parzw=0;
for(int j=0; j<RZM; j++)
parzw=parzw+pobraz[i][j];
if ((parzw%2)!=pobraz[i][RZM]) ileBlWiersz++;
}
Analogicznie moemy policzy liczb bdnych bitw parzystoci kolumn (wynik w
zmiennej ileBlKol):
int parzk, ileBlKol=0;
for(int i=0; i<RZM; i++){
parzk=0;
for(int j=0; j<RZM; j++)
parzw=parzw+pobraz[j][i];
if ((parzk%2)!=pobraz[RZM][i]) ileBlKol++;
}
Zgodnie z podanymi w treci zadania definicjami:
obrazek jest poprawny, gdy ileBlWiersz+ileBlKol==0;
obrazek jest naprawialny, gdy ileBlWiersz1 oraz ileBlKol1 (warto
zwrci uwag, e warunek ten nie jest rwnowany
ileBlWiersz+ileBlKol2).
302 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Poniewa naszym zadaniem jest nie tylko wyznaczenie liczby obrazkw poprawnych i
naprawialnych, ale rwnie ustalenie najwikszej liczby bdnych bitw parzystoci w
obrazku, napiszemy funkcj stanPoprawnosci o nagwku
int stanPoprawnosci(obrazek pobraz)
zwracajc:
warto 0, gdy pobraz jest poprawny;
warto 1, gdy pobraz jest naprawialny.
liczb bdnych bitw parzystoci w przeciwnym przypadku.
Tre funkcji prezentujemy poniej. Proces zliczania liczby bdnych bitw parzystoci
w wierszach i kolumnach zorganizowalimy troch inaczej ni w powyszym opisie
realizujemy go w jednej ptli zagniedonej, a nie w dwch (przeledzenie szczegw
pozostawiamy czytelnikowi).
int stanPoprawnosci(obrazek pobraz){
int parzw,parzk;
int ileBlWiersz, ileBlKol;

ileBlWiersz=0;
ileBlKol=0;
for(int i=0; i<RZM; i++){
parzw=parzk=0;
for(int j=0; j<RZM; j++){
parzw=parzw+pobraz[i][j];
parzk=parzk+pobraz[j][i];
}
if ((parzw%2)!=pobraz[i][RZM]) ileBlWiersz++;
if ((parzk%2)!=pobraz[RZM][i]) ileBlKol++;
}
if (ileBlWiersz+ileBlKol==0) return 0;
if (ileBlWiersz<=1 && ileBlKol<=1) return 1;
return ileBlWiersz+ileBlKol;
}
Na koniec zwrmy uwag, e funkcja stanPoprawnosci zwraca warto 1 zarwno dla
tych obrazkw naprawialnych, ktre maj tylko jeden bdny bit parzystoci, jak i dla tych
obrazkw naprawialnych, w ktrych wystpuje zarwno bd w kolumnie, jak i w wierszu.
Uruchamiajc t funkcj dla obrazkw z pliku wejciowego, mona si dowiedzie, e w
pliku s obrazki, ktre maj wicej bdw parzystoci ni 2. Z tego powodu brak
rozrnienia midzy jednym a dwoma bdami przez funkcj stanPoprawnosci (dla
obrazkw naprawialnych) nie ma wpywu na ustalenie najwikszej liczby bdnych bitw
parzystoci w jednym obrazku.

64.4.
Aby ustali, ktre obrazki s naprawialne, moemy posuy si przedstawion wczeniej
funkcj stanPoprawnosci. Jeli stanPoprawnosci(pobraz) zwrci warto 1,
pobraz jest naprawialny. Zamy wic, e dostajemy na wejciu obraz naprawialny (ale
nie poprawny!) i powinnimy jedynie ustali pozycj (tj. numer wiersza i numer kolumny)
wartoci, ktr wystarczy zmieni, aby uzyska obrazek poprawny. W treci zadania opisany
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
303
zosta sposb wyznaczenia tych numerw, podamy go jeszcze raz w odniesieniu do numeru
wiersza, w nieco zmienio nej postaci:
(a) jeli bd parzystoci wystpi w wierszu i-tym, powinna zosta zmieniona warto
w wierszu i;
(b) jeli w adnym wierszu nie wystpi bd parzystoci, naley zmieni warto
w ostatnim wierszu (tym, w ktrym umieszczone s bity parzystoci kolumn).
Analogicznie mona sformuowa regu dla numeru kolumny. Korzystajc z tych wasnoci,
zaprogramujemy nasze rozwizanie. Chcemy, aby zmienna wynik typu
struct korekta{
int wiersz;
int kolumna;};
na kocu przechowywaa numer wiersza i numer kolumny pozycji, ktr naley zmieni. Przy
tym, zgodnie z treci zadania, wynik bdziemy reprezentowa, przyjmujc numeracj
wierszy/kolumn 1,2,3,..,21 a nie 0,1,2,..20. Zmienn wynik zainicjujemy tak, jakby w
obrazku nie byo adnego bdu parzystoci wiersza i kolumny:
wynik.wiersz=RZM+1;
wynik.kolumna=RZM+1;
Nastpnie w zagniedonej ptli podobnej do tej, w ktrej zliczalimy liczb bdnych bitw
parzystoci (p. opis funkcji stanPoprawnosci), weryfikujemy poprawno kolejnych
bitw parzystoci wierszy i kolumn. Po napotkaniu pierwszego bdu w wierszu (lub
kolumnie) zmieniamy odpowiednio warto wynik.wiersz (lub wynik.kolumna). Brak
bdu w wierszu (lub kolumnie) oznacza, e warto wynik.wiersz lub
wynik.kolumna pozostanie rwna zainicjowanej wartoci pocztkowej, ROZM+1, co
jest zgodne z podanymi powyej reguami (a) i (b). Poniej podajemy pen tre funkcji,
ktra zwraca jako wynik struktur typu struct korekta, opisujc pozycj w obrazku,
ktr naley zmieni:
struct korekta korygujObrazek(obrazek pobraz){
int parzw,parzk;
struct korekta wynik;

wynik.wiersz=ROZM+1;
wynik.kolumna=ROZM+1;
for(int i=0; i<RZM; i++){
parzw=parzk=0;
for(int j=0; j<RZM; j++){
parzw=parzw+pobraz[i][j];
parzk=parzk+pobraz[j][i];
}
if ((parzw%2)!=pobraz[i][ROZM])
wynik.wiersz=i+1;
if ((parzk%2)!=pobraz[ROZM][i])
wynik.kolumna=i+1;
}
return wynik;
}
304 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Przypomnijmy, e powysza funkcja nie sprawdza, czy obrazek jest naprawialny i dlatego
rozwizanie 4 uzyskamy, najpierw sprawdzajc dla kadego obrazka, czy jest on naprawialny
(opisana wczeniej funkcja stanPoprawnosci), a nastpnie uruchamiajc funkcj
korygujObrazek dla tych obrazkw, ktre s naprawialne. Jako wiczenie pozostawiamy
utworzenie rozwizania, ktre integruje obie czynnoci (sprawdzanie naprawialnoci i
znajdowanie pozycji, ktr trzeba zmieni) bez dwukrotnego przegldania zawartoci
obrazka.

Zadanie 65.
Stosujc standardowe metody wczytywania danych z pliku tekstowego, moemy umieci
liczniki i mianowniki wszystkich uamkw w tablicach, na przykad:
int licz[1000], mian[1000];
Spostrzegawczy czytelnik zapewne zauway, e wczytywanie danych do tablicy nie jest
konieczne, gdy w kadym z zada wystarczy jednorazowo sekwencyjnie przejrze cig
danych od pocztku do koca. Dla czytelnoci rozwizania przyjmujemy jednak, e dane s
wczytane do tablicy i kade z zada rozwizujemy osobno.

65.1.
Naturalnym sposobem rozwizania zadania 1 wydaje si porwnywanie wartoci uamkw,
zapamitanych w zmiennych typu float lub double6 w C/C++. Aby odrni uamki o tej
samej wartoci, musimy wwczas porwnywa ich mianowniki. Zadanie sprowadza si
wwczas do zaimplementowania algorytmu szukania minimum rozszerzonego. Z dwch
uamkw o tej samej wartoci, ale rnych mianownikach, za mniejszy uznajemy ten, ktry
ma mniejszy mianownik.
Powysze rozwizanie obarczone jest jednak bdem zaokrgle zwizanych z reprezentacj
zmiennopozycyjn liczb. Moe to prowadzi do sytuacji, w ktrych porwnanie dwch
uamkw o tej samej wartoci nie wskae na ich rwno. Aby si przekona o takiej
moliwoci, polecamy czytelnikowi sprawdzenie dziaania nastpujcego fragmentu kodu
programu:
double x,y,z,v, a,b;

x=1.0; y=3.0;
z=2.0; v=6.0;
b=x/y;
cout << "Roznica: " << z/v-b<< endl;
Dlatego w omawianym rozwizaniu bdziemy porwnywa uamki, sprowadzajc je do
wsplnego mianownika. Unikniemy wwczas operacji na liczbach w reprezentacji
zmiennoprzecinkowej (float/double). Sprawdzenie, czy l1 / m1 jest mniejsze od (lub rwne)
l2 / m2, sprowadza si do sprawdzenia, czy l1 m2 jest mniejsze od (lub rwne) l2 m1:
bool mniejszy(long l1, long m1, long l2, long m2){
return (l1*m2<l2*m1);
}

6
Pamita przy tym naley, e np. w jzyku C podstawienie x=a/b dla zmiennych a i b typu int oraz x typu float
da w wyniku zaokrglenie w d a/b do liczby cakowitej; aby uzyska wynik dokadny, konieczne jest
wymuszenie konwersji typu, np. przez zastpienie instrukcji x=a/b przez x=1.0*a/b lub x=(float)a/(float)b.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
305
bool rowny(long l1, long m1, long l2, long m2){
return (l1*m2==l2*m1);
}
Uamek o najmniejszej wartoci i najmniejszym mianowniku nazwijmy minimalnym. Stosujc
powysz funkcj, poszukujemy uamka minimalnego w ptli, przechowujc licznik
i mianownik uamka minimalnego spord dotychczas przejrzanych w zmiennych minL
i minM. Wartoci te zmieniaj si zawsze po napotkaniu uamka o wartoci mniejszej od
minL/minM lub uamka o wartoci minL/minM, ale o mianowniku mniejszym od minM.
Poniej prezentujemy fragment kodu realizujcy opisany sposb rozwizania:
int minL, minM;

minL=licz[0];
minM=mian[0];
for(int i=1; i<1000; i++){
if (mniejszy(licz[i],mian[i],minL,minM)){
minL=licz[i]; minM=mian[i];
}
else if (rowny(licz[i],mian[i],minL,minM)){
if (mian[i]<minM){
minL=licz[i]; minM=mian[i];
}
}
}

65.2.
Wiadomo, e uamek jest w postaci nieskracalnej wtedy i tylko wtedy, gdy najwikszy
wsplny dzielnik licznika i mianownika jest rwny 1. Aby sprowadzi uamek do postaci
nieskracalnej, wystarczy zatem podzieli zarwno licznik, jak i mianownik uamka przez ich
najwikszy wsplny dzielnik. Dlatego przydatnym narzdziem do rozwizania zadania moe
by funkcja wyznaczajca najwikszy wsplny dzielnik dwch liczb. Poniej podajemy tak
funkcj, opart na algorytmie Euklidesa:
int nwd(int n, int m){

if (m==0) return n;
return nwd(m,n%m);
}
Przy skorzystaniu z powyszej funkcji zadanie sprowadza si do zliczenia liczby takich
i[0, 999], e nwd(licz[i], mian[i]) jest rwne 1. Poniej podajemy przykadow
implementacj takiego zliczania:
int ileN=0;

for(int i=0; i<1000; i++){


if (nwd(licz[i],mian[i])==1)
ileN++;
}
Zwrmy jednak uwag, e zadanie to mona rozwiza, nawet nie wiedzc o zalenoci
midzy najwikszym wsplnym dzielnikiem licznika i mianownika a nieskracalnoci
306 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

uamka. Dla uamka o postaci a / b wystarczy sprawdzi dla kadej z liczb i[2,min(a,b)], czy
i dzieli zarwno a, jak i b. Poniej prezentujemy fragment takiego rozwizania:

int mniejsza, j, ileN=0;


bool czyN;

for(int i=0; i<1000; i++){


if (licz[i]<mian[i]) mniejsza = licz[i];
else mniejsza = mian[i];
j=2; czyN = true;
while (j<=mniejsza){
if ((licz[i]%j==0) && (mian[i]%j==0))
czyN=false;
j++;
}
if (czyN) ileN++;
}
Po wykonaniu powyszego kodu liczba uamkw w postaci nieskracalnej znajdzie si
w zmiennej ileN.
Zwrmy jeszcze na koniec uwag na to, e powyszy algorytm mona znacznie
przyspieszy, koczc ptl while po znalezieniu pierwszego wsplnego dzielnika licznika
i mianownika, a wic wtedy, gdy warto zmiennej czyn zmieni si na false.

65.3.
Zauwamy, e do uzyskania nieskracalnej postaci uamka a / b wystarczy podzieli a oraz b
przez nwd(a,b), tj. przez najwikszy wsplny dzielnik a i b. Inaczej mwic,
licznik nieskracalnej postaci to a/nwd(a,b), a mianownik to b/nwd(a,b). Na przykad
8 8 / nwd (8,12) 2

12 12 / nwd (8,12) 3
Naturalnym rozwizaniem zadania jest wic wyznaczenie sumy wartoci
licz[i]/nwd(licz[i],mian[i]) dla i[0,999]. Poniej przykadowa implementacja
takiego rozwizania, gdzie wynik umieszczany jest w zmiennej sumL:
long d, sumL=0;
for(int i=0; i<1000; i++){
d=nwd(licz[i],mian[i]);
sumL = sumL + licz[i]/d;
}

65.4.
Wiedzc, e kady mianownik jest dzielnikiem liczby b, moemy wszystkie uamki
przeksztaci do postaci, w ktrej mianownik jest rwny b. Dokadniej, korzystamy z
x x b/ y
tosamoci: . Zadanie sprowadza si wwczas do zsumowania wartoci
y b
licz[i]b/mian[i] dla i[0,999]. Przy takim rozwizaniu pojawia si jednak pewna
puapka, polegajca na tym, e niektre wartoci licz[i]b dla pewnych i przekraczaj
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
307
zakres liczb typu long w popularnych kompilatorach C/C++. Dlatego konieczne jest uycie
typu long long. Poniej przykadowy fragment takiego rozwizania, w ktrym liczS/b jest
rwne sumie uamkw licz[0]/mian[0],,licz[i]/mian[i]:
long long mianS, liczS, nowyLicz;
liczS=0;
mianS=2*3*5*7*13;
mianS=mianS*mianS/13;
for(int i=0; i<ile; i++){
nowyLicz = licz[i]*mianS/mian[i];
liczS+= nowyLicz;
}

Zadanie 66.
We wszystkich zadaniach bdziemy czyta dane w ptli przebiegajcej kolejne wiersze pliku
i sprawdza, czy liczby w biecym wierszu speniaj warunki podane w treci zadania.
Zakadajc, e dane pobierane s ze standardowego wejcia, ptl wczytujc liczby mona
zapisa nastpujco:7
int i, liczba1, liczba2, liczba3;
for (i=1; i<=1000; i++)
{
scanf("%i %i %i\n",&liczba1, &liczba2, &liczba3);
}

66.1.
Aby znale trjki liczb speniajce warunek opisany w zadaniu, potrzebujemy funkcji, ktra
obliczy sum cyfr liczby. Stosujc operacj obliczania reszty z dzielenia, moemy wydzieli
kolejne cyfry i zsumowa je. Posuy do tego ponisza funkcja:
int suma_cyfr(int a)
{int suma=0;
while (a>0)
{suma=suma+a%10;a=a/10;}
return(suma);
}
Po sprawdzeniu, e suma cyfr pierwszych dwch liczb w wierszu jest rwna trzeciej liczbie,
wypisujemy trjk liczb na wyjciu:
if ((suma_cyfr(liczba1)+suma_cyfr(liczba2))==liczba3)
printf("%i %i %i\n",liczba1, liczba2, liczba3);

66.2.
W zadaniu trzeba sprawdza spenienie nastpujcych dwch warunkw dla kadego wiersza
pliku: czy iloczyn dwch pierwszych liczb w wierszu jest rwny trzeciej liczbie i czy dwa
pierwsze elementy wiersza s liczbami pierwszymi. Do sprawdzenia, czy liczba jest pierwsza,
uyjemy poniszej funkcji:

7
Czytelnik powinien zapozna si ze sposobami umoliwiajcymi potraktowanie zawartoci ustalonego pliku
jako standardowego wejcia.
308 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

bool pierwsza(int x)
{ if (x<2) return false;
for (int k=2; k*k<=x; k++)
if (x%k==0) return false;
return true;
}
Do wypisania interesujcych nas wierszy uyjemy zagniedonych instrukcji warunkowych,
w ktrych najpierw sprawdzamy pierwszy warunek i dopiero gdy jest on speniony,
przechodzimy do sprawdzenia, czy dwa pierwsze elementy wiersza s liczbami pierwszymi.
if ((liczba1*liczba2)==liczba3)
{if (pierwsza(liczba1)&&pierwsza(liczba2))
printf("%i %i %i\n",liczba1, liczba2, liczba3);}

66.3.
Do sprawdzenia, czy trjka liczb umieszczona w wierszu reprezentuje dugoci bokw
trjkta prostoktnego, uyjemy zalenoci wynikajcej z twierdzenia Pitagorasa. Zwrmy
uwag, e w zadaniu nie ustalono kolejnoci liczb w wierszu (w szczeglnoci tego, czy s
one uporzdkowane). Sprawdzimy zatem trzy warunki, w kadym z nich przyjmujemy inn
liczb jako dugo przeciwprostoktnej. Zapiszemy to w postaci funkcji:
int czy_prostokatny(int a, int b, int c)
{
return(((a*a+b*b)==c*c)||((a*a+c*c)==b*b)||((c*c+b*b)==a*a));
}
W zadaniu naley znale pary ssiadujcych ze sob wierszy, ktre speniaj opisany
powyej warunek. Dlatego w ptli wprowadzimy pomocnicze zmienne pop1, pop2, pop3
do przechowywania wartoci liczb z poprzedniego wiersza oraz zmienn poprzedni, w
ktrej pamitamy wynik dziaania funkcji sprawdzajcej, czy liczby pop1, pop2, pop3 s
bokami trjkta prostoktnego. W kadym obrocie ptli czytajcej dane z pliku wejciowego
wykonujemy nastpujcy cig instrukcji:
aktualny=czy_prostokatny(liczba1, liczba2, liczba3);
if (poprzedni&&aktualny)
{printf("%i %i %i\n",pop1, pop2, pop3);
printf("%i %i %i\n\n",liczba1, liczba2, liczba3);}
poprzedni=aktualny;
pop1=liczba1; pop2=liczba2; pop3=liczba3;
Aby uwzgldni to, e pierwszy wiersz pliku nie jest poprzedzony innym wierszem, zmiennej
poprzedni pocztkowo nadajemy warto zero. Zmienna aktualny przechowuje wynik
dziaania funkcji czy_prostokatny dla liczb z biecego wiersza. Wiersz biecy i
poprzedni wypisujemy, gdy zmienne aktualny i poprzedni maj warto 1.

66.4.
Najpierw utworzymy funkcj, ktra sprawdza, czy podane liczby a, b i c speniaj warunek
trjkta.
int czy_trojkat(int a, int b, int c)
{
return((a+b>c)&&(b+c>a)&&(a+c>b));
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
309
}
Nastpnie w ptli czytamy kolejne trjki liczb z pliku wejciowego i jednoczenie:
zwikszamy zmienn licznik (o pocztkowej wartoci 0) przy kadym wierszu,
w ktrym liczby speniaj warunek trjkta;
aktualizujemy najwiksz dugo cigu trjktnego, na kocu ktrego znajduje si
biecy wiersz (przyjmujemy przy tym, e jeli liczby w biecym wierszu nie
speniaj nierwnoci trjkta, dugo cigu trjktnego koczcego si na biecym
wierszu jest rwna zero); suy do tego zmienna dlugosc, ktra pocztkowo
przyjmuje warto zero, a nastpnie jest zerowana, gdy napotkamy koniec cigu
trjktnego (czyli wiersz, w ktrym liczby nie speniaj warunku trjkta),
a zwikszana o 1, gdy napotkamy wiersz, w ktrym liczby speniaj warunek trjkta.
Ponadto zmienna max (pocztkowo rwna 0) suy do przechowania aktualnie najwikszej
dugoci cigu trjktnego. Poniszy fragment kodu realizuje opisane powyej modyfikacje
w sytuacji, gdy liczba1, liczba2 i liczba3 to elementy biecego wiersza:
if (czy_trojkat(liczba1, liczba2, liczba3))
{dlugosc++; licznik++;}
else
dlugosc=0;
if (dlugosc>max)max=dlugosc;

Zadanie 67.
Zestaw zada rozwiemy, piszc program komputerowy, natomiast obraz fraktala w postaci
biaych i czarnych kwadratw utworzymy w arkuszu kalkulacyjnym.

67.1.
Wartoci pierwszych 40 liczb Fibonacciego wygenerujemy za pomoc nastpujcego
programu:
const int n = 40;
long int f1 = 1, f2 = 1, f;
for (int i = 3; i <= n; i++) {
f = f1 + f2;
f1 = f2;
f2 = f;
if (i%10 == 0) cout << i << "\t" << f << endl;
}
Wypisujemy tylko F10, F20, F30, F40, czyli takie liczby, ktrych indeksy s podzielne przez 10.

67.2.
Liczby pierwsze w cigu liczb Fibonacciego F1, F2, , F40 znajdziemy za pomoc prostej
funkcji:
bool pierwsza(long a) {
if (a==1) return false;
if (a==2 || a==3) return true;
for (long p=2; p<=sqrt((double)a); p++){
if (a%p == 0) return false;
310 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

}
return true;
}
Dla liczb mniejszych lub rwnych 3 funkcja wypisuje od razu prawidowy wynik. Dla liczb
wikszych ni 3 sprawdza, czy istniej dzielniki liczby z zakresu od 2 do pierwiastka z tej
liczby. Jeli napotka taki dzielnik, wynikiem funkcji jest FASZ, w przeciwnym wypadku
wynikiem jest PRAWDA.
Majc zapisan funkcj pierwsza, moemy sprawdza, czy liczba F jest liczb pierwsz od
razu po jej wygenerowaniu.

67.3.
Przy tworzeniu binarnego fraktala Fibonacciego czeka nas wicej pracy. Najpierw
przekonwertujemy liczby Fibonacciego zapisane w systemie dziesitnym na system
dwjkowy, pamitajc o zachowaniu jednakowej dugoci wszystkich zapisw binarnych
(dodaniu w odpowiednich miejscach zer wiodcych).
Binarny zapis otrzymamy, korzystajc z funkcji bin:
string bin(long a) {
string b = "";
while (a>0) {
if (a%2 == 0) b = "0"+ b; else b = "1" + b;
a /= 2;
}
return b;
}
Zapis binarny uzupeniamy wiodcymi zerami do dugoci zapisu binarnego F40, czyli jeeli m
jest dugoci zapisu binarnego F40, to:
while (b.length()<m) b = "0" + b;
Reprezentacja graficzna przekonujco wyglda w postaci czarnych i biaych kwadracikw.
Aby j uzyska, wczytujemy binarne zapisy do arkusza (kad cyfr do osobnej komrki),
a nastpnie korzystamy z formatowania warunkowego. Dla komrek zawierajcych warto 1
ustawiamy to czarne, a dla komrek zawierajcych warto 0 to biae.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
311

67.4.
Przechodzimy ptl zewntrzn przez wszystkie zapisy binarne, a ptl wewntrzn przez
kolejne cyfry zapisu binarnego, zliczajc dla kadego zapisu liczb jedynek. Jeeli ta liczba
w pojedynczym zapisie wynosi dokadnie 6, dostajemy pozycj takiego zapisu binarnego
w tablicy.
for (int i=1; i<=n; i++) {
int licz1 = 0;
for (int j=0; j<m; j++)
if (b[j]=='1') licz1++;
if (licz1 == 6) cout>>i>>endl;
}
Na koniec wypisujemy zapisy binarne o indeksach i=14, i=21, i=24, i=25.

Zadanie 68.
Napisy umiecimy w tablicach, ktrych elementy reprezentuj typ string:
string s1[1000], s2[1000];
w ten sposb, e pierwszy napis z i-tego wiersza zostanie zapisany jako s1[i], a drugi napis
z i-tego wiersza jako s2[i].

68.1.
Zauwamy, e napisy jednolite x i y s anagramami dokadnie wtedy, gdy x jest rwne y.
Zatem w zadaniu 1 wystarczy zliczy liczb takich i, dla ktrych s1[i]==s2[i] oraz
s1[i] jest napisem jednolitym. Wykorzystamy w tym celu ponisz funkcj:
bool jednolity(string s)
{ int d=s.length();
for(int i=1; i<d; i++)
if (s[i]!=s[i-1]) return false;
return true;
}
312 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Korzystajc z funkcji jednolity, wynik uzyskamy w zmiennej ileZ1 po wykonaniu


poniszego fragmentu programu:
int ileZ1=0;
for (int i=0; i<1000; i++)
if (jednolity(s1[i]))
if (s1[i]==s2[i]) ileZ1++;

68.2.
Zauwamy, e napisy x i y s anagramami dokadnie wtedy, gdy liczba wystpie kadej
z liter A, B, C, D, E, F, G, H, I, J jest w obu napisach taka sama. Aby wykorzysta t
obserwacj, utworzymy funkcj zamien, ktrej celem jest zliczenie liczby wystpie kadej
litery w podanym sowie i zapamitanie wynikw w tablicy typu
int t[10];
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
313
w taki sposb, e liczba wystpie A znajdzie si w t[0], liczba wystpie B znajdzie si
w t[1] itd.

void zamien(string slowo, int t[10])


{ int d=slowo.length();
for(int i=0; i<10; i++) t[i] = 0;
for(int i=0; i<d; i++) t[slowo[i] A]++;
}
Jeli w tablicach int tx[10] i ty[10] zebralimy informacje o liczbie wystpie liter
w napisach x oraz y, to wwczas moemy sprawdzi, czy sowa x i y s anagramami,
wykonujc wywoanie czyAnag(tx, ty) funkcji czyAnag zdefiniowanej nastpujco:
bool czyAnag(int tx[10], int ty[10])
{
for(int i=0; i<10; i++)
if (tx[i]!=ty[i]) return false;
return true;
}
Korzystajc z funkcji zamien, chcemy zapamita informacje o liczbie wystpie
poszczeglnych liter w podanych napisach w tablicach:
int c1[1000][10], c2[1000][10];
w taki sposb, e c1[i][0], c1[i][1], , c1[i][9] bd reprezentoway liczby
wystpie liter w s1[i]; podobnie c2[i][0], c2[i][1], , c2[i][9] maj
reprezentowa liczby wystpie liter odpowiednio w s2[i]. Odpowied do zadania 2
uzyskamy wwczas w zmiennej ileZ2 po wykonaniu nastpujcego fragmentu programu:
int ileZ2 = 0;
for (int i=0; i<1000; i++)
{ zamien(s1[i],c1[i]);
zamien(s2[i],c2[i]);
if (czyAnag(c1[i],c2[i])) ileZ2++;
}

68.3.
Przyjmijmy, e informacje o liczbie wystpie poszczeglnych liter w sowach z pliku
wejciowego zapisane s w tablicach c1 i c2, tak jak opisalimy to w rozwizaniu zadania 2.
Zadanie 3 moemy wwczas rozwiza, zliczajc dla kadego i z przedziau [0,999]:
liczb takich j z zakresu [0,999], e s1[i] i s1[j] s anagramami lub s1[i]
i s2[j] s anagramami;
liczb takich j z zakresu [0,999], e s2[i] i s1[j] s anagramami lub s2[i]
i s2[j] s anagramami.
Nastpnie, wybierajc najwiksz z tak wyznaczonych wartoci, uzyskamy rezultat
wymagany w zadaniu 3. Stwrzmy w tym celu funkcj pomocnicz, ktra wyznaczy liczb
anagramw dla napisu, ktrego statystyki wystpie liter umiecilimy w tablicy c:
314 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

int zad3Pom(int c[10], int liczbaslow)


{ int ile=0,j;
for(j=0; j< liczbaslow; j++){
if (czyAnag(c,c1[j])) ile++;
if (czyAnag(c,c2[j])) ile++;
}
return ile;
}
Dokadniej, powysza funkcja wyznacza liczb takich napisw wrd s1[0],..,s1[999]
i s2[0],..,s2[999], dla ktrych funkcja zamien (patrz opis rozwizania zadania 2) da
w wyniku tablic o takiej samej zawartoci jak tablica c.
Korzystajc z funkcji zad3Pom, rozwizanie zadania uzyskamy jako warto poniszej
funkcji:
int zad3()
{ int i, ilePowt, maxPowt=0;
string s;
int i, j;

for(i=0; i<1000; i++){


ilePowt=zad3Pom(c1[i],1000);
if (ilePowt>maxPowt) maxPowt=ilePowt;
ilePowt=zad3Pom(c2[i],1000);
if (ilePowt>maxPowt) maxPowt=ilePowt;
}
return maxPowt;
}
Przedstawione powyej rozwizanie mona nieco usprawni. Dla kadego i[0,999]
wystarczy sprawdza liczb anagramw sw s1[i] i s2[i] jedynie wrd
s1[0],,s1[i] oraz s2[0],,s2[i]. Pozostawiamy czytelnikowi zastanowienie si
nad tym, dlaczego nie zmieni to wyniku naszych oblicze.
W przypadku bardzo obszernych danych mona si pokusi o kolejne usprawnienie.
(Zaznaczmy jednak, e rozmiar danych w treci zadania nie wymaga stosowania metod
omwionych w dalszej czci opisu.) Potraktujmy tablice c1 i c2 jako cigi 10-elementowe,
ktre mog by porwnywane leksykograficznie. Po posortowaniu cigu c1 (lub c2) zgodnie
z porzdkiem leksykograficznym wszystkie anagramy konkretnego napisu wystpujce na
pierwszych pozycjach w wierszach reprezentowane s jako cig kolejnych elementw (o tej
samej wartoci) w tablicy c1. Analogiczna wasno zachodzi dla anagramw konkretnego
napisu wystpujcych na drugich pozycjach w cigu i tablicy c2. Pozostawiamy czytelnikowi
zastanowienie si, jak z tych obserwacji mona skorzysta, aby uzyska szybki algorytm
rozwizujcy zadanie 3.

Zadanie 69.
Przyjmijmy, e genotypy wczytane zostay ju do tablicy stringw:
#define ROZ 1000
string genotypes[ROZ];
W opisie rozwizania stosujemy notacj a[i..j], ktra oznacza cig a[i], a[i+1], , a[j].
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
315
69.1.
Z opisu danych wejciowych wiemy, e dugo genotypu jest nie wiksza ni 500. Aby
rozwiza zadanie, utworzymy tablic licznikw
#define MAXL 500
int licz[MAXL+1];
W zmiennej licz[i] dla kadego i[1,500] wyznaczymy liczb wystpie genotypw
o dugoci i, wczeniej inicjujc wartoci w tablicy licz zerami:
for(int i=1; i<=MAXL; i++) licz[i]=0;
for(int i=0; i<ROZ; i++){
licz[genotypes[i].length()]++;
}
Po wykonaniu powyszego fragmentu programu liczba wartoci rnych od zera wrd
licz[1..500] bdzie rwna liczbie gatunkw. Natomiast najwiksza liczba osobnikw
jednego gatunku bdzie rwna najwikszej liczbie wrd licz[1], licz[2], ,
licz[500]. Obserwacje te wykorzystujemy w poniszym fragmencie programu:
ileg=najw=0;
for(int i=1; i<=MAXL; i++){
if (licz[i]>0) ileg++;
if (licz[i]>najw) najw=licz[i];
}
Zmienne ileg i najw odpowiadaj po zakoczeniu ptli for odpowiednio liczbie
niezerowych wartoci wrd licz[1], licz[2], , licz[500](liczbie gatunkw)
oraz najwikszej liczbie wrd licz[1], licz[2], , licz[500] (najwikszej
liczbie osobnikw tego samego gatunku).

69.2.
Zauwamy, e w zadaniu nie wystarczy sprawdzi, w ilu napisach z tablicy genotypes
wystpuje fragment BCDDC. Mutacja pojawia si tylko wwczas, gdy fragment BCDDC
wystpuje w genie. Musimy zatem odrnia w kadym genotypie fragmenty nalece do
genw od pozostaej czci. Z uwagi na to, e rwnie w zadaniach 3 i 4 potrzebne jest
odrnienie fragmentw genotypu tworzcych geny od czci niekodujcej, napiszemy
funkcj wyznaczajc kolejne geny danego genotypu. Funkcja ta bdzie miaa nagwek:
Gen nextGen(string s, int i)
gdzie typ Gen zdefiniowany jest nastpujco
typedef struct{
int bg;
int end;
}Gen;
Oznaczmy dugo napisu s, bdcego parametrem funkcji nextGen, przez len. Chcemy,
aby funkcja nextGen zwracaa jako warto struktur typu Gen, tak e pierwszy gen
w napisie s[i]s[i+1] s[len1] zaczyna si na pozycji bg, a koczy na pozycji end.
W przypadku gdy w napisie s[i]s[i+1] s[len1] nie ma genu, ustalimy warto bg
na len (czyli dugo s). Poniej podajemy kod funkcji nextGen:
316 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
317
Gen nextGen(string s, int i)
{ int len=s.length();
Gen pom;
pom.bg=pom.end=len;
while (i<len-4 && (s[i]!='A' || s[i+1]!='A'))
i++;
if (i>len-4) // za mao miejsca na cay gen
return pom;
pom.bg=i;
while (i<len-1 && (s[i]!='B' || s[i+1]!='B'))
i++;
if (i==len-1) // za mao miejsca na cay gen
{ pom.bg=len; return pom;}
pom.end=i+1;
return pom;
}
Celem pierwszej ptli w funkcji nextGen jest znalezienie pocztku genu (AA). Natomiast
druga ptla suy ustaleniu pozycji koca genu (BB).
Do sprawdzenia, czy w genie zaczynajcym si w napisie s na pozycji bg i koczcym na
pozycji end wystpuje podana mutacja, uyjemy poniszej funkcji:
bool czyMutacjaGen(string s, int bg, int end)
{ string mut="BCDDC";
int len = mut.length();
while (bg<=end-len+1) {
if (mut==s.substr(bg,len))
return true;
bg++;
}
return false;
}
Aby sprawdzi, czy mutacja wystpuje w genotypie, wyszukujemy kolejne wystpujce
w nim geny i do kadego z nich stosujemy funkcj czyMutacjaGen. Czynimy to tak
dugo, a napotkamy gen z mutacj lub sprawdzimy wszystkie geny.
bool czyMutacjaGenotyp(string s)
{ int lenMut= mut.length();
Gen pom;
bool czyM=false;
pom.bg=0;
int i=0;
do{
pom = nextGen(s,pom.bg);
if (czyMutacjaGen(s,pom.bg,pom.end))
return true;
pom.bg=max(pom.bg,pom.end)+1;
} while(pom.bg<s.length());
return false;
}
318 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Liczb osobnikw z podan mutacj moemy wyznaczy, zliczajc liczb napisw g wrd
genotypes[0999], takich e czyMutacjaGenotyp(g) zwraca warto true.
Na koniec zaznaczmy, e efektywniejszym czasowo rozwizaniem zadania 2 byoby
sprawdzenie, gdzie wystpuj geny oraz czy mutacja wystpuje w genach w jednym
przebiegu przez kolejne znaki genotypu. Zaprezentowalimy rozwizanie wykorzystujce
funkcj wyznaczajc kolejne geny, gdy funkcja taka bdzie przydatna take w kolejnych
zadaniach.

69.3.
Do zliczenia liczby genw w jednym genotypie zastosujemy funkcj nextGen:
do wyznaczenia pierwszego genu w genotypie g uruchamiamy nextGen(g,0);
po znalezieniu genu zaczynajcego si na pozycji bg i koczcego na pozycji end
nastpnego genu szukamy, wywoujc nextGen(g,end+1).
Wykorzystamy te fakt, e w przypadku braku genu w czci napisu g zaczynajcej si na
pozycji i funkcja nextGen(g,i) zwrci struktur typu Gen, ktrej pole bg jest rwne
dugoci napisu g. Poniej prezentujemy funkcj ileGenow, zliczajc liczb genw
w napisie s:
int ileGenow(string s)
{ Gen pom;
int len=s.length();
int i=0;
int ileg=0;
while (i<s.length()){
pom=nextGen(s,i);
if (pom.bg<len) ileg++;
i=pom.end+1;
}
return ileg;
}
Aby ustali najwiksz liczb genw u jednego osobnika, wyznaczymy maksymaln warto
powyszej funkcji dla sw genotypes[0...999]. W podobny sposb mona
wykorzysta funkcj nextGen do utworzenia funkcji o nagwku
int najdluzszyGen(string s)
wyznaczajcej najwiksz dugo genu w napisie s. Implementacj takiej funkcji
pozostawiamy czytelnikowi. Korzystajc z tej funkcji, najwiksz dugo genu w caym
pliku, wyznaczymy, znajdujc najwiksz liczb wrd liczb
najdluzszyGen(genotypes[i]) dla i[0,999].

69.4.
Aby ustali, czy dany genotyp jest odporny, napiszemy funkcj czescKodujaca, ktra
zwraca jako wynik cz kodujc genotypu s:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
319
string czescKodujaca(string s)
{ Gen pom;
int len=s.length();
string rob="";
int i=0;
while (i<len){
pom=nextGen(s,i);
if (pom.bg<len)
rob=rob+s.substr(pom.bg,pom.end-pom.bg+1);
i=pom.end+1;
}
return rob;
}
Aby porwna cz kodujc genotypu czytanego od strony lewej do prawej i czytanego od
strony prawej do lewej, potrzebujemy jeszcze funkcji odwracajcej napis:
string odwroc(string s)
{
string rob="";
int len=s.length()
for(int i=0;i<len;i++)
rob=s[i]+rob;
return rob;
}
Jeeli dysponujemy powyszymi funkcjami, ustalenie, czy genotypes[i] jest odporny,
sprowadza si do sprawdzenia prawdziwoci warunku
czescKodujaca(genotypes[i])==czescKodujaca(odwroc(genotypes[i]))
W efekcie zadanie moemy rozwiza, zliczajc liczb napisw genotypes[i] dla
i[0,999] speniajcych powyszy warunek oraz liczb palindromw wrd
genotypes[0..999].

Zadanie 70.
W treci nie wystpuje polecenie Napisz program, zatem zadanie mona wykona zarwno
w arkuszu kalkulacyjnym, jak i za pomoc programu komputerowego.

70.1.
Zadanie sprowadza si do obliczenia sumy dwch pl: pola powierzchni pomidzy wykresem
funkcji f(x) i osi X oraz pola pomidzy wykresem funkcji g(x) i osi OX. Uwzgldniajc
fakt, e f(x) jest rosnca w przedziale [2,10], pole obszaru ograniczonego osi OX oraz
wykresem funkcji f(x) w zadanym przedziale moemy szacowa z gry oraz z dou przy
pomocy pl obszarw zoonych z prostoktw. Przedzia [2, 10] dzielimy na n rwnych
czci. Oznaczmy prawe koce tych czci przez xi (i = 1, ..., n), przyjmijmy te x0=2.
W czci ograniczonej punktami xi i xi+1budujemy (p. rysunek):
102 8
przy ograniczeniu z dou: prostokt o bokach = = i f(xi);

102 8
przy ograniczeniu z dou: prostokt o bokach = = i f(xi+1).

320 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Ograniczenie z dou na pole obszaru pomidzy wykresem f(x) i osi OX jest rwne:
Pd=h(f(x0)+f(x1)++f(xn 1))
a ograniczenie z gry na pole obszaru pomidzy wykresem f(x) i osi OX jest rwne:
Pg=h(f(x1)+f(x2)++f(xn)).
Przybliajc pole przez (Pd+Pg)/2, wymagan dokadno uzyskamy, gdy Pg Pd 1/1000.
Analogiczny algorytm moemy zastosowa do obliczenia pola pomidzy wykresem funkcji
g(x) a osi OX. Poniewa funkcja g(x) przyjmuje wartoci ujemne, boki i-tego prostokta s
102 8
rwne = = oraz g(xi) (przy szacowaniu pola od dou) lub g(xi+1) .
Pamita przy tym naley, e docelowy wynik stanowi suma obu pl. Aby bd wyniku by
1
mniejszy ni 0.001, wyznaczymy oba pola z dokadnoci 2 0.001.
Piszc program komputerowy, musimy te uwanie zaprogramowa dwie funkcje: (f() oraz
g()), ktre bd wykorzystywane przy wyznaczaniu pola. W szczeglnoci, jeli uywamy
C++, naley pamita o tym, e wynikiem dzielenia liczb cakowitych jest liczba cakowita
(cz uamkowa wyniku jest odrzucana), co moe prowadzi do bardzo niedokadnych
oblicze. Std we fragmentach kodu podanych poniej stosujemy np. zapis 3.0/250, a nie
3/250.
double f(double x)
{
return (x*x*x*x/500-x*x/200-3.0/250);
}

double g(double x)
{
return (-x*x*x/30+x/20+1.0/6);
}
Obliczajc pole ograniczone przez krzyw f(x) lub g(x), testowa bdziemy rne wartoci n
w opisanej powyej metodzie, zaczynajc od n=10 i zwikszajc n dwukrotnie w kolejnych
krokach. Wynik uznamy za poprawny, gdy rnica midzy oszacowaniem pola z gry
i oszacowaniem pola z dou bdzie mniejsza od wartoci zmiennej blad. Algorytm ten
realizuje podana poniej funkcja pole. W funkcji tej w zmiennych pfgora i pfdol
wyznaczamy przyblione ograniczenia z gry i z dou na pole pomidzy osi OX a wykresem
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
321
f(x) w przedziale [a, b]. Zgodnie z wczeniejszym opisem po uzyskaniu pfgora i pfdol
rnicych si o mniej ni blad za kocowe pole przyjmujemy redni arytmetyczn
z wartoci pfgora i pfdol. Analogicznie wyznaczamy pole pomidzy osi OX a wykresem
g(x), pamitajc o tym, e funkcja g(x) przyjmuje w rozwaanym przedziale wartoci ujemne.
double pole(double a, double b, double blad)
{
double pfgora=0, pfdol=0, pf;
double pggora=0, pgdol=0, pg;
double x,h;
int n=10;
//pole f
do{
h=(b-a)/n; x=a;
pfdol=pfgora=0;
for(int i=0; i<n; i++)
{
pfdol=pfdol+f(x);
x=x+h;
pfgora=pfgora+f(x);
}
pfgora=pfgora*h;
pfdol=pfdol*h;
n=2*n;
}while (pfgora-pfdol>blad/2);
pf=(pfgora+pfdol)/2;
//pole g
x=a; n=10;
do{
h=(b-a)/n; x=a;
pgdol=pggora=0;
for(int i=0; i<n; i++)
{
pgdol=pgdol-g(x);
x=x+h;
pggora=pggora-g(x);
}
pggora=pggora*h;
pgdol=pgdol*h;
n=2*n;
} while (pggora-pgdol>blad/2);
pg=(pggora+pgdol)/2;
return (pf+pg);
}
Aby uzyska wymagany rezultat, funkcj pole(a,b,blad) wywoujemy dla a = 2, b = 10
oraz blad=0.001.

70.2.
Zgodnie z opisem podanym w treci zadania sumujemy dugoci odcinkw o kocach
(xi, f(xi)) i (xi+1, f(xi+1)) dla i = 0, 1,, 999, gdzie x0 = 2 oraz xi = 2+8i/1000.
322 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Dugo odcinka o kocach (xi, f(xi)) i (xi+1, f(xi+1)) wyznaczamy, korzystajc z twierdzenia
Pitagorasa (zob. rysunek):

Nastpnie w ptli sumujemy dugoci kolejnych odcinkw. Pamitamy rwnie o tym, eby
do dugoci krzywej doda odpowiednie odcinki poziome i pionowe.
double dlugosc(double a, double b, double n)
{
double d=0;
d=d+16+f(10)-g(10);
double h = 1.0*(b-a)/n;
double x=a;
double tmp;
//dlugosc luku f
for (int i=0; i<n; i++)
{
tmp=sqrt(h*h+(f(x+h)-f(x))*(f(x+h)-f(x)));
d=d+tmp;//nowa dlugosc
x=x+h; //zmiana x_i
}
//dlugosc luku g
x=a;
for (int i=0; i<n; i++)
{
tmp=sqrt(h*h+(g(x+h)-g(x))*(g(x+h)-g(x)) );
d=d+tmp;//nowa dlugosc
x=x+h; //zmiana x_i
}
return d;
}
Poniewa wynikiem ma by liczba cakowita, otrzyman sum zaokrglamy do najbliszej
liczby cakowitej w gr.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
323
70.3.
W tym zadaniu przyjmujemy, e pasy s prostoktami. Pasy wycinamy od prawej strony
materiau. Poniewa szeroko pojedynczego pasa jest rwna 0,25 m, to ostatni prostokt
rozpocznie si dla x = 9,75. Dugo boku i-tego prostokta jest rwna ( ) ( ).
Poniewa ma by ona liczb cakowit, zaokrglamy j do najbliszej liczby cakowitej w d.
Na kocu sumujemy wszystkie obliczone dugoci bokw prostoktw. Przykadowa
realizacja w jzyku programowania znajduje si poniej. Funkcja floor(x)z biblioteki
cmath zwraca najwiksz liczb cakowit nie wiksz ni x.
double zadanie3()
{
double d=0;
for (double x=2; x<=9.75; x=x+0.25)
d=d+floor(f(x)-g(x));
return d;
}

Zadanie 71.

71.1.
Wobec definicji funkcji , aby wyznaczy warto (1.5), naley obliczy warto 2 (1.5).
Zakadajc, e wspczynniki postaci potgowej wielomianu 2 pamitamy w zmiennych
(w kolejnoci od wspczynnika stojcego przy najwyszej potdze): A, B, C i D, warto
2 (1.5) mona obliczy np. za pomoc schematu Hornera, tzn.
((A*x+B)*x+C)*x+D
gdzie zmiennej x naley uprzednio nada warto 1.5.

71.2.
W rozwizaniu zadania bardzo pomocna jest analiza wykresu funkcji zaczonego do treci.
Mona zaobserwowa, e warto maksymalna funkcji jest osigana w przedziale [4,5).
Oznacza to, e wystarczy ograniczy si tylko do wielomianu 4 . Niech w zmiennych A, B, C
i D pamitane bd wspczynniki tego wielomianu (w kolejnoci od wspczynnika
stojcego przy najwyszej potdze).
Aby wyznaczy maksymaln warto 4 () dla [4,5), mona oblicza wartoci 4 ( ) dla
bardzo wielu punktw [4,5). Na przykad mona oblicza wartoci 4 ( ) pocztkowo
dla 0 = 4, a nastpnie zwiksza warto argumentu o pewn ma liczb (krok), tzn.
przyj +1 = + . W ten sposb obliczamy wartoci 4 ( ), dopki zachodzi nierwno
< 5. Aby wyznaczy maksymaln warto 4 ( ), naley zastosowa klasyczny algorytm
znajdowania elementu maksymalnego. Znalezienie wartoci ,dla ktrej 4 ( ) jest
maksymalne, mona zaimplementowa, wykorzystujc dwie zmienne globalne:
mx (do zapamitania ),
mfx (do zapamitania ( )).
324 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

double mx, mfx;


void maksimum(double step)
{
double x = 4.0;
mx = x;
mfx = ((A*x+B)*x+C)*x+D;
for (x = 4.0; x<5.0; x+=step)
{
double fx = ((A*x+B)*x+C)*x+D;
if ( fx > mfx )
{
mx = x;
mfx = fx;
}
}
}
Powysza procedura przyjmuje argument step, ktry oznacza warto kroku .
Stosujc t procedur z krokiem = 0.001, uzyskujemy wartoci:
mx = 4.092
mfx = 3.06495098
Aby jednak mie pewno, e 3.06495 jest prawidowym wynikiem tego zadania, tzn. jest
maksymaln wartoci funkcji 4 z dokadnoci do piciu cyfr, wystarczy uruchomi
powysz procedur ponownie, ale ze znacznie mniejszym krokiem, np. =0.000001.
Wwczas otrzymujemy:
mx = 4.092275
mfx = 3.06495154
Zatem po zmniejszeniu kroku uzyskalimy troch wiksz warto mfx. Mona rwnie
sprawdzi, e dalsze zmniejszanie kroku nie zmienia w ogle podanej powyszej przyblionej
wartoci mfx. To oznacza, e wynik 3.06495 jest prawidowo zaokrglon do piciu cyfr
po przecinku maksymaln wartoci funkcji 4 (). Jeli chodzi o warto , zaokrglon do
trzech miejsc po przecinku, to mona sprawdzi, e (prawe strony zostay podane z
dokadnoci do piciu cyfr):
f(4.090)=3.06491
f(4.091)=3.06494
f(4.092)=3.06495
f(4.093)=3.06495
f(4.094)=3.06493
a wic obie odpowiedzi 4.092 i 4.093 s prawidowe.

71.3.
Analizujc dany w zadaniu wykres funkcji , atwo zauway, e ma ona cztery miejsca
zerowe, odpowiednio w przedziaach (0,1), (2,3), (3,4) i (4,5). Oznacza to, e musimy
wyznaczy miejsca zerowe funkcji 1 , 3 , 4 , 5 . Do kadego z tych czterech zada stosujemy
ten sam algorytm, mianowicie metod bisekcji. Dla przykadu ustalmy, e chcemy wyznaczy
miejsce zerowe funkcji 1 (). W metodzie bisekcji znajdowanie miejsca zerowego zaczyna
si od podania przedziau, w ktrym si ono znajduje, takiego, na ktrego kocach wartoci
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
325
badanej funkcji maj rne znaki. W rozwaanym przykadzie przedziaem pocztkowym jest
(0,1). Z analizy wykresu funkcji widzimy, e w lewym kocu przedziau funkcja ma warto
ujemn, a w prawym dodatni. W metodzie bisekcji nastpnie dzielimy przedzia na dwie
poowy i ograniczamy si do tej czci, w ktrej funkcja znw ma rne znaki na kocach
przedziau. W ten sposb zawamy przedzia, w ktrym znajduje si szukane miejsce
zerowe. Proces ten koczymy, gdy dugo przedziau daje nam dan dokadno
przyblienia miejsca zerowego. Poniewa w zadaniu naley wypisa odpowied z
dokadnoci do piciu cyfr po przecinku, wic metod bisekcji naley kontynuowa, dopki
dugo przedziau nie bdzie mniejsza od pewnego maksymalnego dopuszczalnego bdu
bezwzgldnego error. W poniszym kodzie korzystamy z funkcji f(x) do obliczania
wartoci funkcji ().
void bisekcja(double left, double right)
{
double fl = f(left);
while ( right-left > error )
{
double middle = (left+right)/2.0, fm = f(middle);
if ( fl * fm < 0.0 )
right = middle;
else
left = middle; fl = fm;
}
printf("Miejsce zerowe : %.5lf\n", (left+right)/2.0);
}
Zwrmy uwag, e warunek ( fl * fm < 0.0 ) sprawdzany w powyszej funkcji
jest rwnowany temu, e liczby fl (rwna f(left)) i fm (rwna f(middle)) maj
przeciwny znak (jedna z nich jest ujemna, a druga dodatnia).
Poniewa w zadaniu naley poda wynik z dokadnoci do piciu cyfr po przecinku, wic
ustalimy prg bdu error na odpowiednio ma warto. Zauwamy, e obranie
error=107 daje nam rozwizanie z bdem bezwzgldnym speniajcym | |
107, co oznacza, e po zaokrgleniu go np. do piciu cyfr po przecinku uzyskujemy wynik.

Zadanie 72.

72.1.
Za pomoc funkcji length() uzyskujemy dugoci obu napisw i porwnujemy je ze sob,
pamitajc o tym, aby sprawdzi obie moliwoci (albo pierwszy, albo drugi z nich moe by
tym duszym). Jeli warunek podany w zadaniu jest speniony, zwikszamy licznik
przechowywany w zmiennej wynik:
326 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

int wynik = 0;
bool wypisalem = false;
for(int i=0; i<200; i++)
{
string a,b;
in >> a >> b;
if (a.length()>=3*b.length() || a.length()*3 <=
b.length())
{
wynik++;
(...)
}
}
Konieczne jest jeszcze wypisanie pierwszej znalezionej pary. Po wypisaniu ustalamy warto
zmiennej logicznej wypisalem na prawda, co pozwoli nam unikn wypisania kolejnych par:
if (a.length()>=3*b.length() || a.length()*3 <=
b.length())
{
wynik++;
if (!wypisalem)
{
wypisalem = true;
out << "Pierwsza para: " << endl;
out << a << " " << b << endl;
}
}

72.2.
Dla dwch zmiennych acuchw znakw chcemy sprawdzi, czy pierwszy z nich jest
pocztkowym fragmentem drugiego. Pierwszy ma dugo s = a.length(), za drugi
t = b.length(). Wystarczy sprawdzi dwa warunki: czy s < t oraz czy pierwsze s znakw jest
w obu napisach identyczne:
for(int i=0; i<N; i++)
{
string a,b;
in >> a >> b;
if (a.length() >= b.length())
continue;
bool dobry = true;
for(int j=0; j<a.length(); j++)
if (a[j]!=b[j])
dobry = false;
(...)

}
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
327
Instrukcja:
if (a.length() >= b.length())
continue;
powoduje natychmiastowe przejcie do nastpnej iteracji ptli, jeli drugi cig znakw jest za
krtki (nie przewysza pierwszego dugoci). Kolejne instrukcje porwnuj ze sob kolejne
znaki a i b. Pierwsza niezgodno powoduje ustawienie zmiennej dobry na false. Jeli do
koca algorytmu warto tej zmiennej pozostanie true, musimy wypisa oba napisy, a take
rnice je litery:
if (dobry)
{
out << a << " " << b << " ";
for(int j=a.length(); j<b.length(); j++)
out << b[j];
out << endl;
}

Litery, ktre rni napisy, to te, znajdujce si na kocu duszego z nich (czyli b), liczc od
miejsca, w ktrym skoczy si krtszy (czyli od a.length()). Std wynika konstrukcja ptli
taka jak powyej.

72.3.
Napiszmy najpierw funkcj koncowka(A,B), ktra przyjmujc dwa napisy, okreli, jak duga
jest ich wsplna kocwka. Aby to okreli, liczymy najpierw dugoci obu, odpowiednio
dl_A i dl_B. Teraz trzeba sprawdzi, czy ostatnie litery A i B s rwne (czyli czy A[dl_A-1]
jest rwne B[dl_B-1]), potem przedostatnie litery (A[dl_A 2] oraz B[dl_B 2]) i tak dalej:
int koncowka(string A, string B)
{
int dl_A = A.length();
int dl_B = B.length();
int k = 0;
while(k<dl_A && k<dl_B && A[dl_A-1-k]==B[dl_B-1-k])
k++;
return k;
}
Zmienna k przechowuje liczb wczeniej ju znalezionych wsplnych liter. Wane jest, aby
przerwa ptl, kiedy k osignie jedn z liczb dl_A, dl_B, co bdzie oznacza, e
sprawdzilimy ju jeden z napisw w caoci. Gdybymy prbowali kontynuowa, wyraenie
(na przykad) dl_A -1-k przyjoby wartoci ujemne, a wic sprawdzalibymy nieistniejce
wartoci w zmiennej tablicowej A. Szczeglnie w jzyku C++ to bardzo niebezpieczny rodzaj
bdu, jego skutki s bowiem trudne do przewidzenia. Czasem taki program zostanie
przerwany z bdem wykonania, ale zdarza si, e na przykad kontynuuje on dziaanie z
nagle pojawiajcymi si absurdalnymi wartociami zmiennych albo le wykonuje niektre
instrukcje.
Skoro mamy ju prawidow funkcj koncowka(), reszta dziaa programu sprowadza si do
tego, aby najpierw znale najduszy wsplny kocowy fragment, a nastpnie wypisa
wszystkie pary napisw, dla ktrych warto jest maksymalna. W tym celu uyjemy tablic
328 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

przechowujcych acuchy znakw: pierwszy[200], drugi[200] oraz tablicy liczb


wspolny[200]:
int dlugosc = 0;
string pierwszy[200],drugi[200];
int wspolna[200];
for(int i=0; i<N; i++)
{
in >> pierwszy[i] >> drugi[i];
wspolna[i] = koncowka(pierwszy[i],drugi[i]);
if (wspolna[i] > dlugosc)
dlugosc = wspolna[i];
}
out << "Maksymalna koncowka: " << dlugosc << endl;
for(int i=0; i<N; i++)
if (wspolna[i]==dlugosc)
out << pierwszy[i] << " " << drugi[i] << endl;
Pierwsza cz programu (ptla for) zapisuje wczytane napisy w zmiennych pierwszy[i] oraz
drugi[i], a obliczon kocwk w zmiennej wspolna[i]. Najdusz dotychczas znalezion
kocwk pamitamy w zmiennej dlugosc, zmieniajc jej warto, kiedy trafimy na wiksz.
W drugiej czci programu jeszcze raz sprawdzamy wszystkie znalezione kocwki jeli
ktra z nich ma dugo maksymaln, wypisujemy odpowiednie napisy na wyjcie.

Zadanie 73.

73.1.
Po wczytaniu sowa przechodzimy ptl przez wszystkie jego litery, porwnujc kad z
nastpn. Jeli znajdziemy dwie identyczne, zwikszamy zmienn licznik, przechowujc
liczb odpowiednich sw:
int licznik = 0;
for(int i=0; i<1876; i++)
{
string slowo;
in >> slowo;
for(int j=0; j<slowo.length()-1; j++)
if (slowo[j]==slowo[j+1])
{
licznik++;
break;
}
}
Wane s dwa szczegy: po pierwsze, wewntrzna ptla musi dziaa do przedostatniej
litery, nie do ostatniej (j < slowo.length()-1), inaczej wykonalibymy porwnanie z
nieistniejcym elementem za tablic. Po drugie, konieczna jest instrukcja break po
znalezieniu dwch kolejnych identycznych liter bez niej moe si zdarzy, e znajdziemy
w tym samym sowie jeszcze jakie wystpienie dwch kolejnych liter, ktre nadmiarowo
zwikszy licznik.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
329
73.2.
Tworzymy tablic czstotliwosc[26], w ktrej bdziemy liczy wystpienia wszystkich liter:
'A' w czestotliwosc[0], 'B' w czestotliwosc[1] itd. Napotykajc liter, odejmujemy od niej kod
znaku 'A', aby uzyska liczb z przedziau [0, 25], a nastpnie zwikszamy warto w
odpowiedniej komrce tablicy czestotliwosc:
int czestotliwosc[26];
for(int j=0; j<26; j++)
czestotliwosc[26] = 0;
int suma = 0;
for(int i=0; i<1876; i++)
{
in >> slowo;
for(int j=0; j<slowo.length(); j++)
czestotliwosc[slowo[j]-'A']++;
suma += slowo.length();
}
Podany fragment programu oblicza jeszcze jedn warto: sum dugoci wszystkich sw,
czyli liczb wystpie wszystkich liter w pliku. Bdzie ona potrzebna do policzenia
procentowej czstotliwoci wystpie:
for(int j=0; j<26; j++)
{
out << (char)('A'+j) << ": " << czestotliwosc[j];
out << " (" << fixed << setprecision(2) <<
100*czestotliwosc[j]/(double)suma << "%)" << endl;
}
Teraz dla j = 0..25 wykonujemy nastpujce czynnoci:
Wypisujemy j-ty znak, czyli 'A'+j. Aby poinformowa kompilator, e chcemy wypisa
go jako znak (char), a nie jako liczb (int), zamieniamy go na odpowiedni typ
instrukcj (char)('A'+j), zwan rzutowaniem.
Wypisujemy liczb wystpie tego znaku
Obliczamy czstotliwo procentow: czestotliwosc[j]/suma*100%. Musimy jeszcze
zaznaczy, e chcemy wyniku jako liczby rzeczywistej (zarwno czestotliwosc[j], jak
i suma to liczby cakowite), zatem przed dzieleniem zamienimy (znowu uywajc
rzutowania) zmienn suma na typ rzeczywisty double.
Ustalamy sposb wypisywania liczb: z dokadnie dwoma miejscami po kropce
dziesitnej. Suy do tego fragment instrukcji << fixed << setprecision(2).

73.3.
Zacznijmy od funkcji spogloski(A), ktra w danym acuchu znakw A okreli dugo
najduszego cigu kolejnych spgosek:
330 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

int spolgloski(string A)
{
int s = 0;
int ciag = 0;
for(int i=0; i<A.length(); i++)
{
if (A[i]=='A' || A[i]=='E' || A[i]=='O' || A[i]=='U'
|| A[i]=='I' || A[i]=='Y')
s = 0;
else
s++;
if (s > ciag)
ciag = s;
}
return ciag;
}
Przechodzimy gwn ptl przez wszystkie litery sowa. Zmienna s przechowuje, ile (w
danym momencie) ostatnich liter byo spgoskami. Wida, e jeli napotykamy kolejn
spgosk, to t warto naley zwikszy o 1. Jeli za kolejn liter bdzie samogoska,
warto s spada do 0.
Zmienna ciag przechowuje dugo najduszego znalezionego do tej pory cigu. Kad
warto, jak przybierze s, bdziemy porwnywa z wartoci ciag i w razie potrzeby
zwiksza t ostatni.
Teraz moemy ju wczyta i sprawdzi wszystkie sowa:
int najdluzsze = 0;
int licznik = 0;
string odpowiedz;
for(int i=0; i<dlugosc; i++)
{
string slowo;
in >> slowo;
int k = spolgloski(slowo);
if (k>najdluzsze)
{
najdluzsze = k;
licznik = 1;
odpowiedz = slowo;
}
else if (k==najdluzsze)
licznik ++;
}
Zmienna najdluzsze bdzie przechowywa dugo najlepszego cigu spgosek, licznik
liczb sw z takim cigiem, a odpowiedz pierwsze znalezione sowo. Dla kadego
znalezionego sowa wywoujemy funkcj spolgloski jeli wynik okae si lepszy od
dotychczasowego rekordu, ustawiamy najdluzsze na now warto, odpowiedz na sowo,
ktre wanie znalelimy, a licznik na 1.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
331
Musimy jeszcze uwzgldni sytuacj, kiedy nowe sowo ma tyle samo spgosek co
najlepsze dotychczas znalezione wtedy nie zmieniamy ani wartoci najdluzsze, ani sowa
przechowywanego jako odpowiedz, musimy jednak zwikszy licznik o 1.

Zadanie 74.

74.1.
Na potrzeby rozwizania zadania warto zaprogramowa funkcj czySameCyfry(S), ktra
zwraca wynik true lub false w zalenoci od tego, czy w napisie S znajduj si tylko
i wycznie cyfry od 0 do 9, czy nie. Mona najpierw napisa dodatkowo funkcj czyCyfra(z),
ktra sprawdza, czy dany znak z jest cyfr:
bool czyCyfra(char z)
{
if ('0' <= z && z <= '9') return true;
else return false;
}
Teraz implementacja funkcji czySameCyfry(S) to realizacja ptli, w ktrej przegldamy kady
znak napisu S i sprawdzamy, czy jest on cyfr, np. w nastpujcy sposb:
bool czySameCyfry(string S)
{
int n = S.size();
for (int i=0; i<n; i++)
if ( czyCyfra(S[i])==false ) return false;
return true;
}
Aby obliczy wynik, wystarczy zlicza, dla ilu napisw w pliku hasla.txt funkcja
czySameCyfry(...) zwrcia warto true.

74.2.
Rozwizanie zadania mona atwo uzyska, o ile najpierw posortujemy wszystkie hasa z
pliku hasla.txt w kolejnoci leksykograficznej. Do tego celu mona na przykad
zastosowa algorytm sortowania bbelkowego, gdy liczba wszystkich hase jest bardzo maa.
Dla wygody warto najpierw napisa funkcj mniejszy(A,B), ktra sprawdzi, czy napis A jest
mniejszy leksykograficznie od napisu B:
bool mniejszy(string A, string B)
{
int n = A.size();
int m = B.size();
for (int i=0; i<min(n,m); i++)
{
if (A[i] < B[i]) return true;
if (A[i] > B[i]) return false;
}
if (n<m) return true;
else return false;
}
332 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Powyej wykorzystano funkcj min, ktra zwraca mniejsz z danych dwch liczb. Funkcji
mniejszy nie trzeba w ogle pisa, jeli wykorzystuje si typ string. Mianowicie dostpny jest
operator mniejszoci <, ktry porwnuje leksykograficznie dwa napisy. Niech tablica T[0..n]
zawiera wszystkie wczytane hasa z pliku hasla.txt (n=200). Sortowanie bbelkowe
tablicy T[0..n-1] mona zrealizowa nastpujco:
for (int i=0; i<n-1; i++)
for (int j=1; j<n; j++)
if (mniejszy(T[j],T[j-1])) swap(T[j],T[j-1]);
Sortowanie to korzysta z powyszej funkcji mniejszy oraz pomocniczej funkcji swap, ktra
zamienia miejscami napisy na pozycjach j-1 i j w tablicy T.
Teraz gdy wszystkie hasa w tablicy T mamy dane w kolejnoci leksykograficznej moemy
atwo znale te, ktre si powtarzaj, i wypisa je bez powtrze. Mianowicie wystarczy
przeglda tablic T kolejno od pierwszego hasa do ostatniego, przy czym przy
przechodzeniu do nastpnego hasa bdziemy sprawdzali, ile nastpnych hase jest takich
samych jak aktualnie rozwaane. Algorytm ten mona zrealizowa w nastpujcy sposb:
for (int i=0; i<n;i++)
{
int j = 0;
while(i+j+1<n && T[i+j+1]==T[i]) j++;
if ( j>0 )
{
cout << hasla[i] << endl;
i += j;
}
}
W powyszym algorytmie wykorzystano operator == do porwnywania napisw. Jeli
w rozwizaniu wykorzystuje si typ string, to taki operator jest automatycznie dostpny.
Jeli natomiast go nie mamy, to do porwnania napisw moemy na przykad wykorzysta
podan wyej funkcj mniejszy. Mianowicie A==B, wtedy i tylko wtedy, gdy
mniejszy(A,B)==false && mniejszy(B,A) == false.

74.3.
Rozwizanie zadania budujemy poprzez zliczenie wynikw, dla ktrych wykryto, e
pojedyncze haso spenia podane w zadaniu warunki. Aby to sprawdzi, naley najpierw
zauway, e haso musi skada si z co najmniej 4 znakw. Nastpnie naley przejrze
kady fragment 4-literowy i sprawdzi, czy zawiera on kolejne znaki ASCII (w dowolnej
kolejnoci). Procedur przegldania wszystkich fragmentw 4-literowych napisu S[0..n-1]
mona zrealizowa za pomoc zwykej ptli, w ktrej wskanik i zmieniamy od czwartej do
ostatniej litery, a nastpnie badamy fragment zoony z liter na pozycjach i-3, i-2, i-1, i.
for (int i=3; i<n; i++)
if ( kolejne(S[i-3],S[i-2],S[i-1],S[i]) ) return true;
Do ostatecznego rozwizania zadania pozostaje zatem napisa funkcj kolejne(a,b,c,d), ktra
sprawdzi, czy zbir {a,b,c,d} zawiera 4 kolejne znaki ASCII. Dla wygody moemy to
zrealizowa, wstawiajc wszystkie 4 znaki a,b,c,d do tablicy T, a nastpnie posortowa j
dowolnym algorytmem. Wwczas wystarczy tylko sprawdzi, czy T[0], T[1], T[2] i T[3] s
kolejnymi znakami, np. za pomoc nastpujcego warunku
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
333
(T[0]+1==T[1] && T[1]+1==T[2] && T[2]+1==T[3]).

74.4.
Rozwizanie zadania budujemy poprzez zliczenie wynikw, dla ktrych wykryto, e
pojedyncze haso spenia podane warunki w zadaniu. Aby sprawdzi, czy wszytkie warunki
zachodz jednoczenie dla pewnego hasa S[0..n-1], mona wykona ptl, w ktrej bdziemy
przeglda haso znak po znaku, sprawdzajc, czy jest on cyfr, czy liter ma lub du. Dla
kadego rodzaju znaku bdziemy pamita zmienn logiczn, ktra bdzie informowaa, czy
taki znak wystpi. Niech CY, ML, DL oznaczaj te zmienne odpowiednio dla typu: cyfra,
maa litera, dua litera. Ptl t moemy zapisa nastpujco:
bool CY=false, ML=false, DL=false;
for (int i=0; i<n; i++)
{
char c = S[i];
if ( '0' <= c && c <= '9' ) CY = true;
else if ( 'a' <= c && c <= 'z' ) ML = true;
else if ( 'A' <= c && c <= 'Z' ) DL = true;
}
Po zakoczeniu ptli wystarczy sprawdzi, czy w hale wystpi kady rodzaj znaku, a wic
wystarczy sprawdzi warunek: (CY && ML && DL).

Zadanie 75.

75.1.
W tym zadaniu, poza wczytaniem danych, wystarczy sprawdzi bardzo prosty warunek na
pierwsz i ostatni liter sowa. W C++ mona to robi na przykad tak:
for(int i=0; i<slowa; i++)
{
in >> S;
if (S[0]=='d' && S[S.length()-1]=='d')
out << S << endl;
}

75.2.
Tutaj wystarczy zaszyfrowa z osobna kade sowo o dugoci co najmniej 10:
for(int i=0; i<S.length(); i++)
{
S[i] -= 'a';
S[i] = S[i]*5 + 2;
S[i] %= 26;
S[i] += 'a';
}
334 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Wykonujemy kolejno nastpujce operacje na kadym znaku:


przez odjcie kodu znaku 'a' zamieniamy go na liczb z przedziau [0, 25];
liczb t mnoymy przez 5 i dodajemy 2;
bierzemy reszt z dzielenia przez 26;
z powrotem zamieniamy liczb na znak, dodajc kod 'a'.
Taka implementacja jest wygodna, ma jednak pewn wad: ot zmienna S[i], na ktrej
dokonujemy operacji, jest typu znakowego (char w C++), a typ ten przechowuje liczby z
przedziau 128..127 albo 0..255. O ile mona bezpiecznie pomnoy liczb z przedziau
[0,25] przez 5 i doda do niej 2 (nie przekroczymy 127), o tyle gdyby kluczem szyfrowania
byo na przykad (19, 15), uzyskalibymy w ten sposb bdne odpowiedzi. Lepiej przepisa
na chwil liter S[i] do zmiennej liczbowej (na przykad typu int):
int c = S[i] - 'a';
c = c*x + y;
c %= 26;
S[i] = c + 'a';

75.3.
Dla wygody utwrzmy procedur szyfruj, ktra przyjmuje cig znakw oraz dwie liczby x, y
i koduje zadany cig szyfrem afinicznym z kluczem (x,y). Zrobimy to analogicznie jak w
zadaniu 2:
string szyfruj(string jawny, int x, int y)
{
string wynik = jawny;
for(int i=0; i<wynik.length(); i++)
{
int c = wynik[i] - 'a';
c = c*x + y;
c %= 26;
wynik[i] = c + 'a';

}
return wynik;
}
Metoda znalezienia waciwego klucza szyfrujcego (a take deszyfrujcego) jest zaskakujco
prosta: poniewa obie lizcby A i B s z przedziau [0,25], wszystkich moliwoci klucza jest
26*26 = 676. Dla komputera jest to bardzo niewielka liczba8. Sprawdmy wic, podwjn
ptl, wszystkie moliwe klucze, dla kadego szyfrujc sowo jawne i sprawdzajc, czy
bdzie wwczas identyczne z zakodowanym:

8 Jest to dobra ilustracja tego, e pojcie zoonoci obliczeniowej warto stosowa ostronie: s sytuacje,
w ktrych algorytm o najwikszej zoonoci okazuje si najlepsz moliwoci! W tym wypadku dzieje si tak
dlatego, e wielko danych (w tym wypadku rozmiar alfabetu, ktry ma 26 liter) moe by bardzo maa.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
335
for(int i=1; i<=ile; i++)
{
string jawne,zakodowane;
in >> jawne;
in >> zakodowane;
for(int A=0; A<=25; A++)
for(int B=0; B<=25; B++)
if (szyfruj(jawne,A,B)==zakodowane)
out << "Klucz szyfrujacy numer " << i <<
": (" << A << "," << B << ")" << endl;
}
Podane rozwizanie znajduje tylko klucz szyfrujcy. Aby znale klucz szyfrujcy, konieczna
jest wic druga, analogiczna ptla:
for(int A=0; A<=25; A++)
for(int B=0; B<=25; B++)
if (szyfruj(zakodowane,A,B)==jawne)
out << "Klucz deszyfrujacy numer " << i << ": ("
<< A << "," << B << ")" << endl;
Mona zmodyfikowa podane wyej procedury tak, aby po znalezieniu waciwego klucza
natychmiast przeryway ptl. Nie jest to konieczne i skomplikuje to nieco program, ale taka
praktyka na dusz met czsto przynosi bardzo istotn oszczdno czasow. Aby to
uczyni, zdefiniujmy zmienn znalazlem, ktra przyjmie warto true, kiedy klucz zostanie
znaleziony. Ptl bdziemy wykonywa tylko dopki znalazlem nie zmieni wartoci:
bool znalazlem = false;
for(int A=0; A<=25 && !znalazlem; A++)
for(int B=0; B<=25 && !znalazlem; B++)
if (szyfruj(zakodowane,A,B)==jawne)
{
out << "Klucz deszyfrujacy numer " << i << ": ("
<< A << "," << B << ")" << endl;
znalazlem = true;
}
Zapis:
for(int A=0; A<=25 && !znalazlem; A++)
{
(...)
}
wymaga pewnych wyjanie: oznacza on wykonywanie ptli dopki A 25 oraz zmienna
znalazlem jest rwna false. Jeli ktrykolwiek z tych warunkw przestanie by prawd, ptla
si koczy.

Zadanie 76.

76.1.
Do rozwizania zadania przydatne jest zapamitanie klucza (z wiersza nr 7) w tablicy 50-
elementowej. Niech P[0], P[1], ..., P[49] oznaczaj kolejne liczby klucza. Poniewa
w zadaniu naley zaszyfrowa 6 danych napisw za pomoc klucza P, wic wygodnie jest
336 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

napisa program szyfrujcy jeden napis, a nastpnie uruchomi go dla wszystkich danych
napisw. Naley zwrci uwag, e w jzyku C++ napisy czsto pamitane s w tablicach
znakw, w ktrych pierwsza litera ma wskanik 0, druga 1 itd. Niech A[0..49] bdzie
napisem, ktry chcemy zaszyfrowa kluczem P[0..49]. Podkrelmy, e w tablicy P
znajduj si wartoci od 1 do 50, a wic musimy by ostroni przy programowaniu procedury
szyfrujcej, tzn. musimy za kadym razem zamienia liter A[i] z liter A[P[i]-1].
Procedur t warto zaprogramowa w ptli, ktra wykona operacje przestawiania liter w
takiej samej kolejnoci, jak to zostao podane w treci zadania, tj. od pierwszej do ostatniej
litery sowa A. Poniewa klucz jest tej samej dugoci co sowo A, wic wystarczy kolejno
zamienia liter A[i] z liter A[P[i]-1] dla kolejnych wartoci i=0,1,...,49. Na kocu w
sowie A uzyskujemy w zaszyfrowane sowo wyjciowe. Proces szyfrowania napisu A
moemy zatem zapisa w nastpujcy sposb, gdzie do zamiany wartoci dwch zmiennych
uyta jest funkcja swap:
string szyfr(string A)
{
for (int i=0; i<50; i++)
swap(A[i], A[P[i]-1]);
return A;
}

76.2.
Podobnie jak w poprzednim zadaniu klucz bdziemy pamitali w tablicy P[0..14], a napis
A w tablicy A[0..49]. Tym razem przy szyfrowaniu napisu musimy dodatkowo pamita,
aby po zamianie 15. litery, czyli A[14], z liter A[P[14]-1] kolejn liter sowa, czyli
A[15], zamienia z liter A[P[0]-1], a nastpn z liter A[P[1]-1] itd. Moemy to
zapisa z uyciem operacji modulo, czyli obliczania reszty z dzielenia cakowitego. W
naszym przypadku atwo zauway, e bdziemy zamieniali liter A[i] z liter A[
P[i%15]-1 ]. Ponisza funkcja realizuje proces szyfrowania kluczem 15-elementowym:
string szyfr(string A)
{
for (int i=0; i<A.size(); i++)
swap(A[i], A[P[i%15]-1]);
return A;
}

76.3.
W zadaniu mamy dane sowo B oraz klucz [6, 2, 4, 1, 5, 3]. Ponownie przyjmijmy, e sowo
pamitane jest w tablicy B[0..49], a klucz w tablicy P[0..5]. Aby znale sowo A,
ktre po zaszyfrowaniu bdzie sowem B, naley dokona analizy algorytmu szyfrowania
podanego w treci. Oczywicie sowo B powstao ze sowa A poprzez wykonanie
pidziesiciu operacji zamian pewnych par liter na sowo A. Mona atwo zauway, e
chcc odwrci proces szyfrowania, tzn. zdeszyfrowa sowo B, wystarczy wykona te same
operacje zamian liter, ale w odwrotnym porzdku. Poniewa w sowie A zamieniano litery
A[i] z A[P[i%6]-1], wic proces deszyfrowania sowa B[0..49] moemy zapisa za
pomoc nastpujcego programu
for (int i=49; i>=0; i--)
swap(B[i], B[P[i%6]-1]);
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
337
W ten sposb, po wykonaniu powyszej ptli, w sowie B otrzymamy sowo pierwotne,
a wic wynik zadania.

Zadanie 77.
Przydatna bdzie wiedza o sposobie kodowania wielkich liter w standardzie ASCII, w
szczeglnoci znajomo kodw kolejno od A65 do Z90 i umiejtno konwersji
kodu znaku na graficzn posta znaku za pomoc funkcji lub rzutowania typu char().
Zauwa, e pozycj litery w alfabecie mona wyznaczy, odejmujc warto 65 od jej kodu
ASCII.
Ca zawarto tekstu (jawnego lub zaszyfrowanego) z jednego wiersza pliku pobieramy do
jednej zmiennej tekstowej (C++, Java) lub do tablicy znakw (C, a take Pascal, poniewa
szyfr o dugoci przekraczajcej 255 znakw nie zmieci si w zmiennej typu String).
Uywamy odpowiedniej funkcji w wybranym jzyku programowania:
C++ getline(strumien z pliku, zmiennaTekstowa);
C fgets (tablica znakw, rozmiar tablicy, wskanik do pliku);
Pascal Read(plik, znak) w ptli a do znaku nowej linii #10;
Java s.nextLine(), gdzie s zmienna typu Scanner.

77.1.
Tworzymy acuch znakw q (lub tablic znakw) o dugoci rwnej dugoci tekstu t.
Wypeniamy go kolejnymi znakami klucza (cyklicznie) na pozycjach odpowiadajcych
wielkim literom tekstu, za pozostae pozycje moemy wypeni dowolnym znakiem
niebdcym wielk liter, np. przepisa z tekstu, z tej samej pozycji, znak odstpu lub znak
przestankowy.
Tworzymy pusty acuch znakw s dla wyniku szyfrowania.
Nastpnie dla kadego znaku w tekcie t:
jeli znak nie jest wielk liter, przepisujemy go do acucha wynikowego,
w przeciwnym razie wykonujemy nastpujce kroki:
1) wyznaczamy odpowiadajcy mu znak klucza c, znajdujcy si w acuchu q
na tej samej pozycji co biecy znak tekstu t;
2) wyznaczamy pozycj k znaku c w alfabecie (moemy w tym celu przeszuka
alfabet lub prociej: wykorzysta kody ASCII);
3) obliczamy kod znaku szyfru, dodajc warto k do kodu znaku tekstu;
4) jeli obliczona warto kodu jest wiksza od 90, odejmujemy od niej 26, aby
przesun ten kod do zakresu odpowiadajcego wielkim literom;
5) doczamy znak odpowiadajcy obliczonemu kodowi na kocu acucha s.
Wypisujemy acuch wynikowy s.

77.2.
Problem odszyfrowania jest podobny do problemu szyfrowania, ktry rozwizalimy w
zadaniu1, rozwizania obu problemw rni si tylko w krokach 3) i 4) algorytmu opisanego
338 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

powyej. Tekst mamy teraz zaszyfrowany. Od kodu kadej litery szyfru trzeba wic odj
przesunicie k (krok 3) i sprawdzi, czy obliczony kod szyfru nie jest mniejszy od 65, czyli
najniszej wartoci kodu z zakresu wielkich liter. Jeli jest mniejszy, to trzeba powikszy go
o warto 26 (krok 4).
Aby uproci rozwizanie caej wizki zada, wygodnie jest zdefiniowa jedn funkcj
szyfrujc/deszyfrujc i wykorzysta j w rozwizaniu obu zada: 1 i 2. Moe to by na
przykad:
Vigenere(wiadomosc, klucz, szyfruj),
gdzie: wiadomosc acuch znakw zawierajcy szyfr lub tre do zaszyfrowania,
klucz sowo uywane jako klucz szyfru,
szyfruj parametr typu logicznego: true szyfrowanie, false deszyfrowanie,
ktry bdzie sterowa wykonaniem jednego z dwch wariantw krokw 3) i 4)
algorytmu opisanego w rozwizaniu zadania 1.
Przykadowy kod w jzyku C++
string Vigenere(string tresc, string klucz, bool szyfruj) {
int n = tresc.length();
int nk = klucz.length();

string q = ""; // odwzorowanie klucza dla calej tresci


int powtorzenia = 1; // liczba powtorzen klucza
int j = 0; // indeks znaku w kluczu
for (int i=0; i<n; i++) {
char c = tresc[i];
if (c>='A' && c<='Z') { // jesli znak jest wielka litera
c = klucz[j]; // we znak klucza
j++; // przesun si w kluczu na nastepny znak
if (j==nk) { // gdy klucz si skoczy,
j=0; // czytaj klucz od poczatku
powtorzenia++; // zwiksz licznik powtrze klucza
}
}
q += c;
}
cout << powtorzenia <<" powtorzenia klucza\n";

string t=""; // kodowanie lub dekodowanie


for (int i=0; i<n; i++) {
char c = tresc[i];
if (c>='A' && c<='Z') { // jesli znak jest wielka litera
int k = q[i]-int('A');
if (szyfruj) { // szyfruj
c += k;
if (c>'Z') c -=26;
}
else { // deszyfruj
c -= k;
if (c<'A') c +=26;
}
}
t += c;
}
return t;
}
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
339
77.3.
a) Przygotujemy tablic liczb cakowitych L o rozmiarze 26 (tyle, ile mamy liter w alfabecie),
kady element tablicy bdzie licznikiem wystpie innej litery: L[0] bdzie zlicza
wystpienia litery A, L[1] litery B, , L[25] litery Z. Na pocztku kady
licznik inicjujemy wartoci 0.
Dla kolejnych znakw szyfru powtarzamy nastpujce kroki:
jeeli znak jest wielk liter:
obliczamy indeks i licznika L[i], odpowiadajcy pozycji tego znaku w alfabecie,
zwikszamy o 1 warto licznika L[i]
Przykadowy kod w jzyku C++
int L[26];
for (int j=0; j<26; j++) L[j]=0; // liczniki wystapien liter
for (int i=0; i<s.length(); i++) { // dla kadego znaku szyfru s
if (s[i]>='A' && s[i]<='Z') { // jeeli znak jest wielk liter
int j = s[i] - 'A'; // wyznacz jej pozycj w alfabecie
L[j]++; // zwiksz licznik jej wystpie
}
}
cout << "Liczniki wystapien liter:\n"; // wypisz wyniki
for (int j=0; j<26; j++)
cout << char(j+'A') << " - " << L[j] << endl;;
b) W celu oszacowania dugoci klucza szyfru obliczamy sum iloczynw L[i]*( L[i] -1) dla
i<0..25>. Liczb wszystkich wystpie liter moemy wyznaczy, sumujc liczniki
poszczeglnych liter. Nastpnie obliczamy szacunkow dugo klucza wedug podanego
wzoru.
Wynik zaokrglamy do 2 cyfr dziesitnych. Mona zastosowa w tym celu funkcj
round(), lecz nie wszystkie kompilatory j implementuj, funkcja nie naley do standardu.
Samodzielne zaokrglenie wyniku do 2 cyfr dziesitnych mona wykona wedug
nastpujcych krokw:
dodaj do wyniku warto 0.005,
nastpnie pomn przez 100,
obetnij do liczby cakowitej,
i podziel przez 100.
Wypisujemy dla porwnania dugo klucza podanego w pliku szyfr.txt.
Przykadowy kod w jzyku C++
340 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

int suma = 0;
int n = 0;
for (int j=0; j<26; j++) {
suma += L[j]*(L[j]-1);
n += L[j];
}
double ko = (double)suma/n/(n-1);
double d = 0.0285/(ko-0.0385);

d += 0.005; // zaokraglenie do 2 cyfr dziesietnych


d = 0.01*int(100*d);
cout << d << " - szacunkowa dlugosc klucza\n";
cout << klucz.length() << " - dokladna dlugosc klucza\n";
Aby zapisa wyniki do pliku tekstowego, mona utworzy w kodzie programu strumie
wyjciowy skojarzony z plikiem i skierowa do niego wszystkie wyniki lub uruchomiajc
program wykonywalny w oknie konsoli, przekierowa standardowe wyjcie tak, by program
wysya dane wprost do pliku tekstowego zamiast na konsol.

Zadanie 78.
Pobieramy ca tre pojedynczej wiadomoci do jednej zmiennej tekstowej (C++, Pascal,
Java) lub do tablicy znakw (C). Pamitamy, e bdzie to acuch znakw zawierajcy
spacje. Nie potrzebujemy przechowywa w pamici wszystkich wiadomoci na raz.
Wystarczy przetwarza je kolejno, wykorzystujc t sam zmienn tekstow.
Za wzgldu na potrzeb powtrzenia operacji tworzenia skrtu dla wielu wiadomoci
wygodnie jest zaprogramowa t operacj jako osobn funkcj, ktra bdzie wywoywana
w ptli programu gwnego dla kolejnych wiadomoci czytanych z pliku.

78.1
Poniej podano przykadowy kod funkcji skrtu w C++, realizujcej opisany algorytm.
Naley uzupeni poniszy kod o polecenia wypisywania danych wynikw do pliku.
string skrot(string t) {
string S = "ALGORYTM";
int d = S.length();

// uzupelnij dlugosc wiadomosci do wielokrotnosci 8 znakow


while (t.length()%d != 0) t += ".";
int n = t.length();

// przetwarzanie wiadomosci
int p = 0;
while (p<n) {
for (int j=0; j<d; j++) S[j] = (S[j]+t[p+j])%128;
p += d;
}
// rzutowanie elementw tablicy S na zakres wielkich liter
for (int j=0; j<d; j++) S[j] = 65 + S[j]%26;
return S;
}
Funkcja skrtu w jzyku Pascal
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
341
function skrot(t: String): String;
var S: array[1..8] of Integer;
wynik: String;
i,p: Integer;
begin
wynik := 'ALGORYTM';
for i:=1 to 8 do S[i] := Ord(wynik[i]);
while (Length(t) mod 8 <> 0) do t := t + '.';
writeln(Length(t));
p := 0;
while (p<Length(t)) do
begin
for i:=1 to 8 do S[i] := (S[i] + Ord(t[p+i])) mod 128;
p := p + 8;
end;
for i:=1 to 8 do wynik[i] := Char(65 + S[i] mod 26 );
skrot := wynik;
end;

78.2
Deszyfracja e-podpisu w jzyku C++
int N = 200;
int D = 3;
string mojSkrot = "";
for (int i=0; i<8; i++) {
we2 >> ep; // czytanie z pliku liczby, elementu e-podpisu
int w = ep * D % N;
mojSkrot += char(w);
}
cout << "moj skrot = " << mojSkrot << endl;

78.3
Program gwny w jzyku C++, weryfikujcy wiarygodno wiadomoci:
ifstream we1("wiadomosci.txt");
ifstream we2("podpisy.txt");

int main() {
string t; // tresc wiadomosci
int p; // jedna liczba z 8 liczb
epodpisu
int N = 200, D = 3; // elementy klucza publicznego
vector<int> W; // wykaz numerw wiarygodnych
informacji

for (int i=1; i<=11; i++) {

getline(we1,t);
cout << t << endl;
string mojskrot = skrot(t);
342 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

cout << "moj skrot = " << mojskrot << endl;

string twojskrot = "";


for (int i=0; i<8; i++) {
we2 >> p;
int w = ep * D % N;;
twojskrot += char(w);
}
cout << "twoj skrot = " << twojskrot << endl;
if (mojskrot == twojskrot) {
cout << i << " - wiarygodna\n";
W.push_back(i);
}
else cout << i << " - zmieniona\n";

}
we1.close();
we2.close();
cout << "\nNumery wiarygodnych wiadomosci: ";
for (int i=0; i<W.size(); i++) cout << W[i] << ", ";
cout << endl;

return 0;
}
Wiarygodno kadej wiadomoci moe by oceniana na bieco, program od razu wypisze
odpowiedni informacj o tym, czy wiadomo jest wiarygodna, czy zmieniona..
Program moe take wypisa numery wszystkich wiarygodnych wiadomoci dopiero po
zakoczeniu przetwarzania wszystkich wiadomoci. W tym celu naley na bieco
zapamitywa ich numery. Mona to zrobi w zwykej tablicy statycznej, ale poniewa nie
znamy z gry liczby jej elementw, a nie chcemy marnowa pamici na elementy, ktre nie
s wykorzystywane, zaproponujemy tu struktur danych o typie vector.
Wektor jest alternatyw dla tablicy statycznej, jest wieloelementow struktur danych,
zdefiniowan w bibliotece STL. Aby mc go uywa, naley doczy do kodu programu
jego definicj dyrektyw #include <vector>. Wektor umoliwia dostp do swoich
elementw za pomoc indeksu, podobnie jak tablica, lecz moe zmienia rozmiar podczas
pracy programu (deklaracja rozmiaru nawet nie jest konieczna) i posiada zestaw funkcji
znacznie uatwiajcych zarzdzanie elementami. Szczegw poszukaj w dokumentacji STL.

Zadanie 79.

79.1.
W celu rozwizania zadania warto najpierw napisa program, ktry dla danego okrgu
sprawdza, czy znajduje si on w caoci w pewnej wiartce. Zauwamy, e na to, aby okrg o
rodku w punkcie (x,y) i promieniu r zawiera si w pewnej wiartce, potrzeba i wystarcza,
aby < min(||, ||). Intuicyjnie chodzi o to, aby promie okrgu by mniejszy ni odlego
jego rodka od najbliszej osi Ox lub Oy. Jeli ju sprawdzimy to, czy okrg ley w caoci
w pewnej wiartce, to ustalenia numeru tej wiartki mona dokona sprawdzajc znaki liczb
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
343
i . W poniszej funkcji zaprogramowano sprawdzanie, do ktrej wiartki naley okrg
o rodku w punkcie (, ) i promieniu .
int cwiartka(double x, double y, double r)
{
if ( r >= fabs(x) || r >= fabs(y) ) return 0;
if ( x > 0 && y > 0 ) return 1;
if ( x < 0 && y > 0 ) return 2;
if ( x < 0 && y < 0 ) return 3;
return 4;
}
Powyej wykorzystano funkcj fabs do obliczania wartoci bezwzgldnej liczby
rzeczywistej (typu double). Wynikiem funkcji jest numer wiartki, a jeli okrg nie zawiera
si w adnej z nich, to funkcja zwraca wynik . Jeli dysponujemy powysz funkcj, do
rozwizania zadania wystarczy wywoa j dla kadego okrgu z pliku okregi.txt oraz
zlicza, np. w tablicy 5-elementowej, liczb okrgw w kadej wiartce z osobna oraz liczb
okrgw, ktre nie zawieraj si w adnej wiartce.

79.2.
W celu rozwizania zadania znw warto napisa osobny (pod)program do sprawdzenia, czy
dwa okrgi tworz lustrzan par. Rozpatrzmy dwa okrgi: pierwszy o rodku w (1 , 1 )
i promieniu 1, drugi o rodku w (2 , 2 ) i promieniu 2 . Zauwamy, e jeli okrgi te
tworzy lustrzan par, to promienie tych okrgw s jednakowe, tzn. speniony jest warunek
1 = 2. Nastpnie naley sprawdzi, czy punkty (1 , 1 ) i (2 , 2 ) s symetryczne wzgldem
jednej z osi Ox lub Oy. Mona to prosto sprawdzi w nastpujcy sposb: ( x1==x2 &&
y1==-y2 ) || ( x1==-x2 && y1==y2 ). Ostatecznie funkcj sprawdzajc, czy
dwa okrgi tworz lustrzan par, moemy zapisa nastpujco:
bool czyParaLustrzana(
double x1, double y1, double r1, double x2, double y2, dou-
ble r2
)
{
if ( r1 != r2 ) return false;
if ( x1 == x2 && y1 == -y2 ) return true;
if ( y1 == y2 && x1 == -x2 ) return true;
return false;
}
Aby prawidowo zlicza liczb wszystkich lustrzanych par okrgw spord wszystkich
okrgw danych w pliku okregi.txt, mona zapamita ich rodki i promienie w
tablicach x[0..N-1], y[0..N-1], r[0..N-1], a nastpne zrealizowa zliczanie w
nastpujcy sposb:
int pary = 0;
for (int i=1; i<N; i++)
for (int j=0; j<i; j++)
if (czyParaLustrzana(x[i],y[i],r[i], x[j],y[j],r[j]))
pary++;
Poprawno powyszego kodu mona uzasadni nastpujco: w pierwszej (zewntrznej) ptli
przegldamy okrgi o numerach i od 1 do N-1, czyli wszystkie oprcz pierwszego. Dla
344 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

kadego okrgu o rodku w punkcie (x[i], y[i]) i promieniu r[i] sprawdzamy, ktre
z okrgw o numerach od 0 do i-1 tworz z nim par lustrzan. W ten sposb kad par
lustrzan policzymy jeden raz.

79.3.
Liczb par bdziemy zlicza w podobny sposb jak w poprzednim zadaniu:
int pary = 0;
for (int i=1; i<N; i++)
for (int j=0; j<i; j++)
if (czyParaProstopadla(x[i],y[i],r[i], x[j],y[j],r[j]))
pary++;
Do rozwizania zadania bdzie zatem potrzebna funkcja, ktra sprawdzi, czy dwa okrgi
tworz par prostopad. Niech (1 , 1 ) i (2 , 2 ) oznaczaj rodki dwch okrgw, a 1 i 2
odpowiednio ich promienie. Po pierwsze, aby okrgi te tworzyy par prostopad, ich
promienie musz by jednakowe, czyli 1 = 2 . Po drugie, naley sprawdzi, czy ich rodki
tworz par prostopad, tzn. czy jeden z nich powstaje przez obrcenie drugiego o 90 stopni
wzgldem pocztku ukadu wsprzdnych w kierunku zgodnym lub przeciwnym do ruchu
wskazwek zegara. Warto tutaj podkreli, e sprawdzanie obrotu w obu kierunkach jest
istotne dla obliczenia prawidowego wyniku. Sprawdzenie, czy rodki (1 , 1 ), (2 , 2 )
tworz par prostopad, mona wykona na kilka sposobw. Na przykad mona sprawdzi,
czy punkty te wraz z pocztkiem ukadu wsprzdnych tworz trjkt prostoktny (aby to
wykona, wystarczy skorzysta z twierdzenia Pitagorasa). Pokaemy jednak inny sposb
rozwizania tego problemu. Mianowicie mona zauway, e obrt punktu (, ) o 90 stopni
w kierunku przeciwnym do ruchu wskazwek zegara daje punkt o wsprzdnych (, ).
Z tej obserwacji natychmiast wynika poprawno poniszego programu sprawdzajcego, czy
dwa okrgi tworz par prostopad.
bool czyParaProstopadla(
double x1, double y1, double r1,
double x2, double y2, double r2)
{
if ( r1 != r2 ) return false;
double nx1 = -y1, ny1 = x1;
double nx2 = -y2, ny2 = x2;
if ( nx1 == x2 && ny1 == y2 ) return true;
if ( nx2 == x1 && ny2 == y1 ) return true;
return false;
}

79.4.
Podkrelmy, e w zadaniu naley rozpatrywa tylko pierwsze 1000 okrgw. Do rozwizania
zadania warto najpierw zaprogramowa funkcj sprawdzajc, czy dane dwa okrgi maj co
najmniej jeden wsplny punkt. Zamy, e funkcja
bool sprawdz(double x1, double y1, double r1,
double x2, double y2, double r2)
{
// return true/false jeli okrgi maj / nie maj co
wsplnego
}
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
345
rozwizuje ten problem. Wwczas iteracyjnie obliczamy dugoci wszystkich acuchw. Na
pocztku zakadamy, e pierwszy okrg tworzy acuch dugoci 1. Nastpnie sprawdzamy,
czy kolejny okrg ma wsplny punkt z ostatnim okrgiem aktualnego acucha. Jeli tak, to
wyduamy aktualny acuch. Jeli nie, to przerywamy go, wypisujc jego dugo jako
wynik, a nastpnie rozpoczynamy nowy jednoelementowy acuch, ktry uznajemy za
aktualny. Algorytm ten mona zaprogramowa za pomoc jednej ptli:
int dlugosc = 1;
for (int i=1; i<1000; i++)
{
if ( sprawdz( x[i],y[i],r[i], x[i-1],y[i-1],r[i-1] ))
dlugosc = dlugosc + 1;
else
{
cout << "Dlugosc kolejnego lancucha = " << dlugosc <<
"\n";
dlugosc = 1;
}
}
cout << "Dlugosc kolejnego lancucha = " << dlugosc << "\n";
Zauwamy, e po zakoczeniu ptli w zmiennej dlugosc przechowujemy dugo
ostatniego acucha, ktr rwnie powinnimy wypisa jako wynik. Aby wyznaczy
maksymaln napotkan dugo acucha, wystarczy zmodyfikowa powyszy program w
nastpujcy sposb:
int dlugosc = 1, max_dlugosc = 1;
for (int i=1; i<1000; i++)
{
if ( sprawdz( x[i],y[i],r[i], x[i-1],y[i-1],r[i-1] ))
{
dlugosc = dlugosc + 1;
}
else
{
if ( max_dlugosc < dlugosc ) max_dlugosc = dlugosc;
cout << "Dlugosc kolejnego lancucha = " << dlugosc <<
"\n";
dlugosc = 1;
}
}
cout << "Dlugosc kolejnego lancucha = " << dlugosc << "\n";
if ( max_dlugosc < dlugosc ) max_dlugosc = dlugosc;
cout << "Dlugosc najdluzszego lancucha = " << max_dlugosc <<
"\n";
W zmiennej max_dlugosc przechowujemy bowiem maksymaln dugo napotkanego
dotychczas acucha. Do cakowitego rozwizania zadania pozostaje zatem napisanie funkcji
sprawdz(x1,y1,r1,x2,y2,r2). Niech D oznacza odlego pomidzy rodkami
okrgw. Moemy j obliczy za pomoc wzoru
= (2 1 )2 + (2 1 )^2,
346 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

a w jzyku C++ za pomoc funkcji sqrt(...):


double D = sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) );
Majc warto D, moemy atwo bada wzajemne pooenie okrgw. W celu wykrycia, czy
maj one punkt wsplny, warto rozpatrzy dwa przypadki:
1, czyli gdy rodek drugiego okrgu ley wewntrz pierwszego okrgu lub na nim,
> 1.
W obu przypadkach, aby oba okrgi miay wsplny punkt, promie drugiego okrgu nie moe
by zbyt may ani te nie moe by zbyt duy. atwo sprawdzi, e w pierwszym przypadku,
aby okrgi miay co najmniej jeden punkt wsplny, musz zachodzi nierwnoci:
1 2 1 +.
Z kolei w drugim przypadku wystarczy sprawdzi nierwnoci:
1 2 1 +.
Zaprogramowanie sprawdzenia powyszych nierwnoci pozostawimy czytelnikowi jako
wiczenie.

Zadanie 80.
Stosujc standardowe metody wczytywania danych z pliku tekstowego, moemy umieci
liczby z pliku wejciowego w tablicy, na przykad w tablicy o poniszej deklaracji:
int boki[500];
W kadym z zada uzyskanie rozwizania wymaga sprawdzania, czy podane trzy liczby
dodatnie mog by bokami trjkta lub trjkta prostoktnego. Zacznijmy zatem od
omwienia tego zagadnienia. Liczby a, b, c s dugociami bokw trjkta, gdy suma kadych
dwch z nich jest wiksza od trzeciej liczby. Wykorzystamy t wasno w funkcji
trojkat, zwracajcej true, gdy argumenty a, b, c s moliwymi dugociami bokw
trjkta:
bool trojkat(int a, int b, int c){
return ((a+b>c)&&(a+c>b)&&(b+c>a));
}
Dziki twierdzeniu Pitagorasa wiemy, e liczby a, b, c s bokami trjkta prostoktnego, gdy
kwadrat najwikszej z liczb jest rwny sumie kwadratw dwch pozostaych liczb.
Skorzystamy z tej wasnoci w nastpujcy sposb:
najpierw zmienimy kolejno liczb a, b i c tak, aby a bya najwiksza;
nastpnie sprawdzimy, czy a2=b2+c2.
Ide t mona zaimplementowa przy pomocy poniszej funkcji:
bool prostokatny(int a, int b, int c)
{ int d;
if (a<b) {d=b; b=a; a=d;}
if (a<c) {d=c; c=a; a=d;}
return (a*a==c*c+b*b);
}
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
347
80.1.
Majc do dyspozycji funkcj prostoktny, nie bdziemy mieli wikszego problemu
z rozwizaniem zadania 1. Poniewa mamy sprawdzi jedynie trjki kolejnych liczb,
wystarczy utworzy ptl sprawdzajc moliwo utworzenia trjkta z bokw o
dugociach boki[i], boki[i+1] i boki[i+2] dla i=0,1,,997, jednoczenie wypisujc wartoci
boki[i], boki[i+1] i boki[i+2] za kadym razem, gdy utworzenie trjkta bdzie moliwe.
Poniej podajemy implementacj tej metody:
for(int i=0; i<998;i++)
if (prost(boki[i],boki[i+1],boki[i+2])){
out << boki[i]<< ", " << boki[i+1]<<",
"<<boki[i+2]<<"; ";
}
gdzie out oznacza obiekt typu ofstream (biblioteka fstream) zidentyfikowany z plikiem
wynikowym.

80.2.
Aby znale boki tworzce trjkt o najwikszym obwodzie, moemy sprawdzi wszystkie
trzyelementowe podzbiory zbioru B={boki[0], boki[1],,boki[999]}. Wymaga
n
to przejrzenia rnych trjek liczb dla n=1000. Tego typu rozwizanie przegldajce
3
wszystkie moliwoci przeledzimy w omwieniu rozwizania zadania 3. Natomiast trjkt
o najwikszym obwodzie sprbujemy znale sprytniej.
Wszystkie trjkty, ktrych dugoci bokw s trzema rnymi liczbami ze zbioru
B={boki[0],,boki[999]}, nazwijmy trjktami dopuszczalnymi.
Ograniczmy na chwil nasze rozwaania do takich trjktw dopuszczalnych, w ktrych
najduszym bokiem jest boki[i] dla pewnego ustalonego i. Zauwamy, e jeli istnieje cho
jeden trjkt dopuszczalny, w ktrym boki[i] jest najduszym bokiem, wwczas najwikszy
obwd takiego trjkta (tzn. trjkta z najduszym bokiem boki[i]) uzyskamy dobierajc
oprcz boki[i] dwie najwiksze liczby ze zbioru B spord liczb mniejszych od boki[i].
Rzeczywicie, skoro jakie dwie liczby x,yB mniejsze od boki[i] speniaj warunek
x+y>boki[i], to suma dwch najwikszych liczb z B mniejszych od boki[i] rwnie bdzie
wiksza od boki[i].
Z powyszej obserwacji wynika, e gdybymy posortowali wszystkie elementy zbioru B,
wwczas trjkt o najwikszym obwodzie znalelibymy wrd trjktw, ktrych boki s
trzema ssiednimi liczbami w (posortowanym) cigu. Poniej prezentujemy rozwizanie
oparte na tej idei. Najpierw uporzdkujemy liczby w tablicy boki, stosujc proste sortowanie
bbelkowe:
int ile, pom;
ile=1000;
for (int i=ile-1; i>0; i--)
for (int j=0; j<i; j++)
if (boki[j]>boki[j+1]){
pom=boki[j]; boki[j]=boki[j+1]; boki[j+1]=pom;
}
348 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Nastpnie zaczynajc od najwikszej liczby w B, znajdujcej si w boki[999], szukamy


najwikszej liczby, ktra moe utworzy dugoci bokw trjkta wraz z dwiema liczbami
poprzedzajcymi j w (posortowanej) tablicy:
bool brak = true;
i=ile;
while(brak && i>1){
i--;
if (trojkat(boki[i],boki[i-1],boki[i-2]))
brak=false;
}
maxObw = boki[i]+boki[i-1]+boki[i-2];
Obwd najwikszego trjkta zostanie w efekcie zapisany w zmiennej maxObw, o ile
zmienna brak przyjmie warto false (co ma miejsce dla danych z pliku
dane_trojkaty.txt).
Rozwizanie powysze jest szybsze od przegldania wszystkich trjek liczb z B, pomimo
tego, e stosujemy stosunkowo woln metod sortowania. Wynika to z tego, e sortowanie
wymaga uruchomienia dwch zagniedonych ptli i wykonania w zwizku z tym liczby
operacji proporcjonalnej do n2 dla n=1000. Natomiast liczba wszystkich podzbiorw
trzyelementowych zbioru B jest proporcjonalna do n3.
Na koniec podkrelmy, e maksymaln liczb punktw mona uzyska rwnie za
rozwizanie mniej efektywne (np. przegldajce wszystkie trzyelementowe podzbiory B).
Rozmiar danych jest na tyle may, e program implementujcy takie rozwizanie wykona si
bardzo szybko na standardowym komputerze. Bardziej wydajne rozwizanie podalimy, aby
zwrci uwag na rnic w efektywnoci rnych rozwiza algorytmicznych tego samego
problemu. Poza tym przy sprawdzaniu wszystkich trjek liczb te si atwo pomyli (wicej o
tym w opisie rozwizania zadania 3).

80.3.
Przypomnijmy, e w pliku dane_trojkaty.txt adna liczba nie wystpuje wicej ni
jeden raz. Aby ustali liczb trjktw, ktre mona utworzy z majcych rne dugoci
odcinkw ze zbioru {boki[0],,boki[999]}, zastosujemy proste rozwizanie,
w ktrym w trzech zagniedonych ptlach sprawdzimy kady podzbir trzyelementowy
zbioru {boki[0],,boki[999]}.9 Poniej mona zobaczy odpowiedni fragment kodu
programu:
int ileT=0,ile=1000;
for (int i=0; i<ile-2; i++)
for (int j=i+1; j<ile-1; j++)
for (int k=j+1; k<ile;k ++){
if (trojkat(boki[i],boki[j],boki[k])){
ileT++;
}
}

9
Podobnie jak w zadaniu 2 rwnie tutaj moliwe jest rozwizanie znacznie szybsze od takiego, w ktrym
sprawdzamy kad trjk liczb z pliku wejciowego. Jednak rozwizanie takie wykracza poza zakres wymaga
maturalnych.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
349
Po wykonaniu zagniedonych ptli for zmienna ileT przechowywa bdzie liczb rnych
(nieprzystajcych) trjktw, ktrych dugoci bokw s rnymi elementami zbioru B.
Wyjanijmy, e wartoci pocztkowe zmiennych j i k w ptli for zostay dobrane w taki
sposb, aby kada trjka liczb bya rozwaana tylko raz. (Gdyby wartoci pocztkowe
zmiennych i, j, k byy rwne 0, wwczas kad trjk liczb rozwaalibymy sze razy; co
wicej dopuszczalibymy uycie liczby wicej ni raz w tym samym trjkcie, co jest
niezgodne z treci zadania).

Zadanie 81.
Do rozwizania polecenia z kadego punktu piszemy oddzielny program. W kadym z nich
w ptli 100 razy czytamy 6 wartoci cakowitych z pliku i wykonujemy obliczenia zalene od
konkretnego zadania. We wszystkich podanych poniej przykadach wsprzdne te s
wczytane odpowiednio do zmiennych: xa, ya, xb, yb, xc oraz yc.

81.1.
Aby policzy w ilu przypadkach wszystkie punkty A, B i C le w I wiartce ukadu
wsprzdnych, naley sprawdzi, czy kada ze wsprzdnych tych punktw jest wiksza od
zera. Jeeli ten warunek jest speniony, zwikszamy licznik o 1.
Przykadowy fragment kodu programu do zliczania takich przypadkw:
if ((xa>0) && (ya>0) && (xb>0) && (yb>0) && (xc>0) && (yc>0)) {
liczba++;
}

81.2.
Punkty A, B, C le na jednej prostej dokadnie w podanej kolejnoci, jeeli |AB| + |BC| =
|AC|. Przeksztacajc powyszy warunek aby uwzgldni wszystkie moliwe kombinacje
kolejnoci punktw, otrzymujemy: suma dugoci odcinkw |AB|, |AC| i |BC| musi by rwna
podwojonej dugoci najduszego z tych odcinkw.
Przykadowy fragment kodu programu zliczajcy wiersze z punktami na jednej prostej:
dl1 = sqrt((xc-xb)*(xc-xb)+(yc-yb)*(yc-yb));
dl2 = sqrt((xc-xa)*(xc-xa)+(yc-ya)*(yc-ya));
dl3 = sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb));
if (dl1>dl2) {
maks = dl1;
} else {
maks = dl2;
}
if (dl3>maks) {
maks = dl3;
}
if (2*maks == dl1+dl2+dl3) {
liczba++;
}
Z teoretycznego punktu widzenia algorytm jest poprawny. W praktyce jednak ze wzgldu na
sposb zapisu liczb rzeczywistych w komputerze (prawie zawsze niedokadny) rozwizanie to
nie zawsze bdzie dziaao poprawnie.
W podanym pliku wspolrzedne.txt jest wiersz (99):
-98 2 -86 10 -41 40
350 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Wykonujc obliczenia wedug powyszego algorytmu na 32 bitowych zmiennych


rzeczywistych (typu double), otrzymamy nastpujce dugoci bokw:
dl1 = 54,083269131959838
dl2 = 68,505474233815804
dl3 = 14,422205101855956
Suma dwch krtszych (dl1+dl3) jest zatem rwna 68,505274233815794 i jest rna od
najduszego (dl2) o 0,00000000000001 czyli (10-14).
Wspliniowo mona te stwierdzi, sprawdzajc wspczynniki kierunkowe prostych
przechodzcych przez punkty A i B oraz B i C, czyli sprawdzajc rwno

ybyaycyb
. Wzr ten jednak nie nadaje si do wykorzystania, gdy jedna z prostych

xb
xa xcxb
jest pionowa, poniewa w tym wzorze otrzymujemy zero w mianowniku. Odpowiedni do
naszych celw jest wzr w postaci przeksztaconej: yb ya (xc xb) = yc yb (xb xa).
Zatem odpowiedni fragment programu mgby wyglda nastpujco:
if ((yb-ya)*(xc-xb) == (yc-yb)*(xb-xa)) {
liczba++;
}
W przypadku obliczania wspczynnikw nachylenia prostych bdy mog si pojawi
w wierszach 36 (prosta x=36):
36 24 36 -24 36 0
Oraz 88 (prosta (y=-25):
27 -25 9 -25 -9 -25

81.3.
Aby znale trjkt o najwikszym obwodzie, obliczamy kolejno obwd kadego trjkta
i porwnujemy z najduszym dotychczas znalezionym. Jeeli nowo obliczony jest wikszy,
to zapamitujemy go.
obwod = sqrt((xc-xb)*(xc-xb)+(yc-yb)*(yc-yb))
+sqrt((xc-xa)*(xc-xa)+(yc-ya)*(yc-ya))
+sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb));
if (obwod>najdluzszy) {
najdluzszy = obwod;
}

81.4.
Aby policzy trjkty prostoktne, wykorzystujemy twierdzenie Pitagorasa (kwadrat dugoci
najduszego boku jest rwny sumie kwadratw dugoci dwch pozostaych). Poniewa nie
wiemy, ktry z bokw jest najduszy, sprawdzamy trzy podobne warunki, przyjmujc za
najduszy za kadym razem inny bok. Poniewa mamy do czynienia ze stosunkowo maymi
liczbami (najduszy moliwy bok ma dugo mniejsz ni 300), moemy do oblicze
stosowa liczby cakowite. Nie mamy te potrzeby oblicza pierwiastkw z sumy pl
kwadratw.
Takie rozwizanie moe wyglda nastpujco:
kw1 = (xc-xb)*(xc-xb)+(yc-yb)*(yc-yb);
kw2 = (xc-xa)*(xc-xa)+(yc-ya)*(yc-ya);
kw3 = (xa-xb)*(xa-xb)+(ya-yb)*(ya-yb);
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
351
if ((kw1==kw2+kw3) || (kw2==kw1+kw3) || (kw3==kw1+kw2)) {
liczba++;
}
Gdybymy porwnywali dugoci bokw z pierwiastkami sumy kwadratw pozostaych
bokw, to ze wzgldu na sposb zapisu w komputerze liczb rzeczywistych uzyskamy na og
bdne wyniki.

81.5.
Moemy zauway, e miejsce przecicia przektnych rwnolegoboku ABCD dzieli je na
rwne czci, inaczej mwic, rodki obydwu przektnych s w tym samym punkcie. Zatem
xa + xc = xb + xd oraz ya + yc = yb + yd . Obliczamy zatem xd = xa + xc xb
i yd = ya + yc yb . Nastpnie, aby sprawdzi, czy tak wyliczony punkt D ley na prostej
y=x, porwnujemy ze sob wsprzdne punktu D.
Odpowiedni fragment programu mgby wyglda nastpujco:
xd = xa+xc-xb;
yd = ya+yc-yb;
if (xd == yd) {
liczba++;
}

Zadanie 84.
Zadanie to naley do typowych zada symulacyjnych. Najtrudniejsz czci takich zada
jest prawidowe zasymulowanie powtarzajcych si zdarze, ktre s ze sob powizane.
Zadanie mona rozwiza zarwno poprzez napisanie odpowiedniego programu, jak i za
pomoc arkusza kalkulacyjnego. Poniej przedstawimy wskazwki do rozwizania zadania w
arkuszu.
Rozwizanie rozpoczynamy od wczytania pliku z danymi (dat oraz liczby przejechanych km)
oraz od wpisana do arkusza staych elementw zadania tzn. pojemnoci zbiornika na paliwo
LPG, pojemnoci zbiornika na paliwo Pb95, spalania paliwa LPG, spalania paliwa Pb95 oraz
ceny jednego litra LPG i jednego litra Pb95.
Poniewa w zadaniu pojawiaj si dni tygodnia, dobrze jest ustali jedn kolumn
przechowujc dzie tygodnia. W kadym dniu symulacji zachodzi wiele moliwych zdarze
(np. zuywanie paliwa, tankowanie), dlatego wskazane jest rozpisanie tego, co dzieje si
podczas caego dnia. Bardzo wane jest przeczytanie caej treci zadania, eby wiedzie, jaka
jest kolejno zdarze oraz jakie elementy bd przydatne przy udzielaniu odpowiedzi na
pytania.
Mona ustali, e kolejne kolumny w arkuszu to na przykad: data (wczytana z pliku z
danymi), dzie tygodnia, liczba przejechanych kilometrw (wczytana z pliku z danymi),
poranny stan paliwa w zbiorniku LPG, poranny stan paliwa w zbiorniku Pb95, liczba
spalonych litrw (odpowiednio LPG i Pb95), stan w obu zbiornikach po podry, tankowanie
LPG i Pb95 oraz stan wieczorny w obu zbiornikach (po ewentualnym tankowaniu). By moe
jest to rozbudowane, ale uatwia kontrolowanie symulacji.
Aby wyznaczy dzie tygodnia odpowiadajcy danej dacie, korzystamy z funkcji
DZIE.TYG, ktra zwraca liczb od 1 do 7 na podstawie danej daty. Naley pamita, e
drugi parametr pozwala dokadnie sprecyzowa, w jaki sposb numerowa dni. W naszym
przypadku parametr ten jest rwny 2, co odpowiada numeracji od poniedziaku (= 1) do
niedzieli (= 7).
352 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

W pierwszym dniu rano w zbiorniku z LPG znajdowao si 30 litrw paliwa, a w zbiorniku


z Pb95 znajdowao si 45 litrw paliwa. Takie liczby wpisujemy w arkuszu w komrkach E9
oraz F9. Nastpnym elementem symulacji jest podr pana Binarnego (wypeniamy komrki
F9 oraz G9): jeeli w zbiorniku z LPG byo wicej ni 15 litrw, to do jazdy wykorzystywa
on tylko paliwo LPG, w przeciwnym razie poow trasy pokonywa, korzystajc z paliwa
Pb95, a poow z paliwa LPG. Zauwamy, e te wyniki maj by zaokrglone do dwch
miejsc po przecinku. Liczba spalonego paliwa LPG odpowiada formule:
=ZAOKR(JEELI(E9>15;$B$3*D9/100;$B$3*D9/200);2)
za liczba spalonego paliwa Pb95 odpowiada formule:
=ZAOKR(JEELI(E9>15;0;$B$4*D9/200);2)
Formuy te uwzgldniaj adresowanie bezwzgldne, co znacznie uatwia symulacj. W
komrce I9 obliczamy ilo paliwa LPG pozostaego po przejechaniu trasy danego dnia:
=E9-G9, analogicznie ilo paliwa pozostaego w zbiorniku Pb95 obliczamy komrce J9:
=F9-H9.
Nastpny krok to tankowanie samochodu. Paliwo LPG byo tankowane do pena wtedy, gdy
w zbiorniku LPG znajdowao si go mniej ni 5 litrw, i byo niezalene od dnia tygodnia.
Odpowiada to formule wpisanej w komrk K9: =JEELI(I9<5;$B$1-I9;0).
Tankowanie paliwa Pb95 odbywao si w kady czwartek, jeli w zbiorniku znajdowao si
mniej ni 40 litrw paliwa. Tankowanie rwnie odbywao si do pena. Tutaj trzeba zwrci
uwag na poczenie dwch warunkw w instrukcji JEELI za pomoc funkcji ORAZ:
=JEELI(ORAZ(C9=4;J9<40);$B$2-J9;0)
Aby dokoczy symulacj pojedynczego dnia, naley ustali wieczorny stan paliwa w obu
zbiornikach, tzn. uzupeni komrki M9: =I9+K9 oraz N9: =J9+L9, a na koniec przenie
te wartoci na poranny stan zbiornikw, czyli uzupeni komrki E10 i wpisa =M9, a w F10
wpisa =N9. Teraz wystarczy skopiowa formuy we wszystkich kolumnach a do dnia 31
grudnia 2014 r. Tak przygotowany arkusz pozwoli odpowiedzie na pytania postawione
w zadaniach.

84.1.
Aby wykona to zadanie, moemy skorzysta z funkcji LICZ.JEELI. Dla liczby tankowa
LPG zliczamy, ile komrek w kolumnie K jest wikszych od zera:
=LICZ.JEELI(K9:K373;">0"). Analogicznie obliczamy liczb tankowa Pb95.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
353
Liczba dni, w ktre pan Binarny podczas jazdy korzysta wycznie z paliwa LPG, jest rwna
liczbie dni, w ktre Pan Binarny w ogle nie korzysta z paliwa Pb95. Te dane znajduj si
w kolumnie H, zatem zastosowanie ma np. =LICZ.JEELI(dane!H9:H373;0).
Pamitajmy o tym, e jest to tylko jedna z wersji rozwizania tego zadania.

84.2.
To zadanie mona rozwiza rwnie na wiele sposobw. Jednym z nich jest filtrowanie
danych (w karcie Dane wybieramy narzdzie Filtruj). Nastpnie w kolumnie E, ktra
przechowuje stan paliwa LPG rano, rozwijamy opcj filtrowania. Wybieramy Filtry liczb, a
potem opcj Mniejsze ni. W oknie autofiltru niestandardowego podajemy zadan liczb
(5,25).

W rezultacie otrzymujemy wszystkie wiersze, w ktrych warto w kolumnie E jest mniejsza


ni 5,25. Poniewa mamy poda pierwszy dzie, w ktrym rano w zbiorniku LPG byo mniej
ni 5,25 litra, jest to dzie znajdujcy si w pierwszym wierszu otrzymanego zestawienia.
354 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

84.3.
Wykres tworzymy korzystajc z karty Wstawianie Wykresy Kolumnowy. Trzeba
pamita o dobraniu waciwych danych do wykresu (kolumny i zakres wierszy). W tym
przypadku bd to komrki: $E$9:$E$38 (stan zbiornika LPG przed podr) oraz
$I$9:$I$38 (stan zbiornika LPG po podry, ale przed tankowaniem). Wykres powinien
by czytelny, co oznacza, e etykiety osi X powinny by datami. Dane ustawiamy w
nastpujcy sposb: klikamy prawym przyciskiem myszy na o poziom i z rozwijanego
menu wybieramy opcj Zaznacz dane. Nastpnie przechodzimy do edycji etykiet osi
poziomej, ktrych zakres moemy poda wprost z arkusza (komrki $B$9:$B$39).

Pamitajmy rwnie o opisie kolumn w narzdziach wykresu mona wybra odpowiedni


typ wykresu. Przygotowany wykres zapisujemy w odpowiednim pliku i oczywicie
pozostawiamy w arkuszu jako realizacj komputerow rozwizania zadania.

84.4.
Podczas obliczania kosztu eksploatacji z wykorzystaniem instalacji gazowej obliczenia
moemy prowadzi w kolejnych kolumnach arkusza. Przypomnijmy, e koszty obu paliw
zostay wpisane ju do arkusza do komrek B5 oraz B6 jako elementy stae symulacji.
Poniewa wszystkie wyniki maj by zaokrglane do dwch miejsc po przecinku, bdziemy
korzysta z funkcji ZAOKR(), ktrej drugim argumentem jest liczba cyfr, do ktrej ma zosta
zaokrglona liczba podawana jako pierwszy argument tej funkcji.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
355
Koszt paliwa LPG dla pojedynczego dnia obliczamy w kolumnie O formu
=ZAOKR(G11*$B$5;2), a koszt paliwa Pb95 w kolumnie P analogiczn formu
=ZAOKR(H11*$B$6;2). Te formuy kopiujemy do komrek, odpowiednio O12:O375,
P12:P375, a nastpnie obliczamy odpowiednie sumy kosztw: SUMA(O11:O375) oraz
SUMA(P11:P375). Aby obliczy roczny koszt eksploatacji, dodajemy do siebie obie
obliczone sumy oraz koszt instalacji gazowej.

Podczas obliczania w rozwaanym okresie kosztw eksploatacji samochodu


wykorzystujcego tylko paliwo Pb95 sumujemy liczb przejechanych kilometrw. Kilometry
przechowujemy w kolumnie D, std np. w komrce D7 formua =SUMA(D11:D375).
W komrce D8 obliczamy, ile litrw paliwa zostaoby spalonych (zgodnie ze wzorem
podanym w treci): =ZAOKR(D7*B4/100;2). Na kocu obliczamy koszt paliwa:
=ZAOKR(D8*B6;2).

Zadanie 85.
W zadaniu symulacyjnym rozpoczniemy od rozplanowania pl arkusza.Najlepiej zrobi to
dosy szczegowo.W odpowiednich komrkach utworzymy odpowiednie formuy
odzwierciedlajce opisane w zadaniu wydarzenia. Dla staych wykorzystywanych w
formuach, bdziemy w formuach stosowa adresy bezwzgldne.
Zadanie dotyczy okresu od 23.04.2014 do 29.09.2014. Wypiszemy wszystkie daty w
kolejnych wierszach i ponumerujemy dni wypasu owiec, a w komrce nad tabel
zapiszemyliczb owiec w stadzie.

85.1.
Aby poda liczb litrw mleka, jak uzyska baca od swojego stada owiec w okresie od
23.04.2014 do 29.09.2014, ustawimy warto pocztkow na 0,50 l, a nastpnie utworzymy
formu, za pomoc ktrej obliczymy ilo mleka od jednej owcy w kolejnych dniach,
uwzgldniajc jej przyrost w kolejnych 7-dniowych okresach do dnia 24 czerwca wcznie:
=JEELI(MOD(A5;7)=1;ZAOKR(1,04*D4;2);D4)
Od 25 czerwca ilo mleka bdzie co 7 dni zmniejsza si o 10%:
=JEELI(MOD(A67;7)=1;ZAOKR(0,9*D66;2);D66)
356 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

W kolumnie E znajdzie si ilo mleka otrzymanego w danym dniu od caego


stada(=D$1*D4). Na koniec podsumowujemy cay okres wypasu: =SUMA(E4:E163).

85.2.
Popyt turystw na ser zaley od dnia tygodnia: w sobot i w niedziel jest popyt na 100
serw, za w pozostae dni tygodnia na 36 serw.
W kolumnie F wyznaczamy dla kadej wypisanej daty dzie tygodnia
(=DZIE.TYG(B10;2)), a nastpnie w kolumnie G opisujemy popyt na sery:
=JEELI(F10<6;36;100). I znowu naley podsumowa kolumn G: =SUMA(G4:G163).

85.3.
Baca wytwarza z kadych 6 litrw mleka jeden oscypek: =ZAOKR.DO.CAK(E9/6).
Proces wytwarzania sera trwa 6 dni, czyli sery z udoju z dnia 23.04 s gotowe do sprzeday
29.04, w tym dniu pojawiaj si pierwszy raz turyci. Baca gromadzi wyprodukowane sery,
a turyci je regularnie kupuj. Stan serw (kolumna L) obliczamy, odejmujc od stanu z
poprzedniego dnia sery zakupione i dodajc do tego stanu sery tego dnia (gotowe do
sprzeday): =L9-K9+J10. Liczba sprzedanych serw zaley od popytu turystw i liczby
serw gotowych do sprzeday w bacwce (stan): =JEELI(G10<=L10;G10;L10).
Jeeli popyt na sery (G10) jest mniejszy lub rwny liczbie gotowych serw w bacwce
(L10), to sprzedawana jest taka liczba serw, na jak jest popyt turystw, w przeciwnym
razie sprzedawana jest liczba serw bdcych w bacwce na stanie.
W kolumnie M sprawdzimy, kiedy baca mia po raz pierwszy w sezonie mniej gotowych
serw ni chcieli kupi turyci: =JEELI(G10<=L10;1;0). I ju atwo policzy w
sezonie liczb dni, w ktrych baca mia mniej gotowych serw ni chcieli kupi turyci,
liczc liczb zer: =LICZ.JEELI(M4:M163;0).

85.4.
W zadaniu wykonamy zestawienie, w ktrym dla kadego miesica podamy liczb
sprzedanych oscypkw w kadym miesicu (od kwietnia do wrzenia wcznie). Symulacj
dotyczc liczby sprzedanych serw (kolumna K) mamy gotow. Teraz wybierzemy z daty
miesic: =MIESIC(B4) i za pomoc sum czciowych podsumujemy dla kadego
miesica liczb serw. Do tak wykonanego zestawienia tworzymy wykres kolumnowy.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
357

85.5.
Aby poda najmniejsz liczb owiec, jak musiaby posiada baca, aby kadego dnia przez
cay okres wypasania owiec zaspokaja popyt turystw na oscypki, bdziemy tak zmienia
liczb owiec w stadzie, aby w kolumnie M (czy dosy) pojawiy si tylko jedynki.

85.6.
Liczb serw gotowych, przy zaoeniu, e ser tworzony byby tylko z mleka owczego, ju
mamy. Po usuniciu zbdnych kolumn liczby serw wyrabianych tylko z mleka owczego
znajd si w kolumnie F, wystarczy wic podsumowa kolumn F. Ilo mleka uzyskiwana
od stada zapisana jest w kolumnie E, liczba wyrabianych serw z 80% mleka owczego i 20%
mleka krowiego to: I5=ZAOKR.DO.CAK(E4/0,8/6), za z 60% mleka owczego i 20%
mleka krowiego to: L5=ZAOKR.DO.CAK(E4/0,6/6). Teraz zachowujemy odpowiednie
przesunicie pomidzy datami, kiedy sery byy wyrobione i gotowe do sprzeday, na koniec
sumujemy kolumny K i N.

Zadanie 86.
Zaprezentujemy rozwizanie zadania z pomoc programu napisanego w jzyku C/C++. Dane
wejciowe wczytamy do tablic naz i tab, wprowadzajc wczeniej stae nokr (liczba
okrgw) i nkom (liczba komitetw):
#define nokr 20
#define nkom 5
string naz[nokr];
int tab[nokr][nkom]
Po wczytaniu danych naz[i] bdzie zawiera nazw okrgu i, a tab[i][j] liczb
gosw oddanych w tym okrg na komitet Kj.
Rzeczywiste nazwy okrgw zapamitamy w tablicy o deklaracji:
string naz[nokr];
Z uwagi na indeksowanie tablic od zera komitety oznacza bdziemy K0, K1,,K4 (przy
wypisywaniu odpowiedzi do zada uwzgldnimy to, e rzeczywista numeracja to K1,,K5).

86.1.
Dla zapisanych zgodnie z powyszym opisem danych wejciowych liczb gosw w okrgu i
moemy wyznaczy jako tab[i][0]+tab[i][1]+tab[i][4]. Wartoci te moemy
wyznaczy w nastpujcej ptli:
358 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

for(int i=0; i<nokr; i++) tabsum[i]=0;


for(int i=0; i<nokr; i++)
for(int j=0; j<nkom; j++)
tabsum[i]+= tab[i][j];
gdzie tabsum[i] reprezentuje liczb gosw oddanych w okrgu i. Przypomnijmy:
rzeczywist nazw okrgu i przechowujemy w naz[i]. Wykres sporzdzimy natomiast
w arkuszu kalkulacyjnym, wartoci z tablicy tabsum mona zreszt uzyska, importujc
dane wejciowe do arkusza kalkulacyjnego i wyznaczajc sumy w wierszach uzyskanego
zestawienia. W niniejszym opisie koncentrujemy si na rozwizaniu przy pomocy programu
komputerowego, gdy rozwizywanie zadania 3 (a take zada 4 i 5) w arkuszu
kalkulacyjnym wydaje si bardzo pracochonne.

86.2.
Na podstawie opisanej powyej reprezentacji danych w tablicy tab poparcie komitetu Kj
w okrgu i wyznaczymy jako
Pi,j = 100% tab[i][j] / ( tab[i][0]+ tab[i][1]++ tab[i][4] )
Zadanie sprowadza si wic do wyznaczenia dla kadego j=0,1,..,4 najwikszej wartoci
spord P0,j, P1,j,, P19,j. W naszym rozwizaniu zadeklarujemy tablice
int maxnumer[nkom];
double maxproc[nkom];
Poniej prezentujemy rozwizanie, w ktrym przegldamy wyniki w kolejnych okrgach
(ptla zewntrzna), przechowujc w maxproc[j] najwiksze poparcie procentowe
wyznaczone dotychczas dla komitetu Kj, a w maxnumer[j] numer okrgu, w ktrym to
poparcie zostao uzyskane:
double akt, sum;
for(int i=0; i<nkom; i++) {
maxproc[i]=0.0; maxnumer[i]=0;
}
for(int i=0; i<nokr; i++){
sum=0.0;
for(int j=0; j<nkom; j++) sum+=tab[i][j];
for(int j=0; j<nkom; j++){
akt=tab[i][j]/sum;
if (akt>maxproc[j]){
maxproc[j]=akt;
maxnumer[j]=i;
}
}
}
Zauwamy, e w zmiennej sum wyznacza bdziemy
(tab[i][0]+tab[i][1]++tab[i][4]),
a w zmiennej akt warto Pi,j. Nazwa okrgu bdcego matecznikiem komitetu Kj bdzie
po wykonaniu powyszego fragmentu programu rwna naz[maxnumer[j]].
Uwzgldniajc rnice w indeksowaniu komitetw, odpowied do zadania moglibymy
wypisa na standardowym wyjciu np. tak:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
359
cout << "Zadanie 2: " << endl;
for(int i=0; i<nkom; i++)
cout << "K" << i+1 << ": " << naz[maxnumer[i]] << endl;

86.3.
Na uytek rozwiza zada 3, 4 i 5 zaimplementujemy wyznaczanie liczby mandatw
zdobytych przez rne komitety wyborcze metod Sainte-Lagu. Poniewa bdziemy
stosowa t metod wielokrotnie, utworzymy funkcj fmandaty, ktra dla wartoci
wejciowych:
ilek liczba komitetw wyborczych,
ilem liczba mandatw do podziau,
glosy[i] liczba gosw oddanych na komitet Ki dla i[0, ilek 1]
umieci w s[i] liczb mandatw przyznanych i-temu komitetowi dla i[0, ilek 1].
Wartoci w0,,wilek1 wyznaczane w metodzie Sainte-Lagu przechowywa bdziemy jako
x[0],,x[ilek1]. Przydzielajc kolejne mandaty, aktualizowa bdziemy wartoci
wspczynnikw wi w tablicy x i liczb przyznanych mandatw w tablicy s. Tre naszej
funkcji jest nastpujca:
void fmandaty(int glosy[], int s[], int ilem, int ilek){
int indmax;
double x[nkom];

for(int i=0; i<ilek; i++) {


s[i]=0; x[i]=(double)glosy[i];
}
for(int i=0; i<ilem; i++){
indmax=0;
for(int j=1; j<ilek; j++){
if (x[j]>x[indmax]) indmax=j;
s[indmax]++;
x[indmax]=glosy[indmax]/(2.0*s[indmax]+1);
}
}
Podsumowujc,
pierwsza ptla for(int i=0;i<ilek;i++) inicjuje wartoci wspczynnikw
wi w tablicy x i liczby przyznanych mandatw w tablicy s;
w ptli zewntrznej for(int i=0;i<ilem;i++) przyznawane s kolejne
mandaty;
ptla wewntrzna for(int j=1;j<ilek;j++) suy wyznaczeniu (w
zmiennej indmax) numeru komitetu, ktremu przyznany bdzie kolejny mandat, za
ptl aktualizowane s odpowiednio tablice s i x.
Skoncentrujmy si teraz na rozwizaniu zadania 3, ktrego dokonamy, z wykorzystaniem
funkcji fmandaty. Do gromadzenia informacji o mandatach przyznanych we wszystkich
okrgach wyborczych utworzymy tablic
360 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

int wyniki[nokr][nkom];
Docelowo wyniki[i][j] powinno by rwne liczbie mandatw przyznanych komitetowi
Kj w okrgu o numerze i.
Korzystajc z funkcji fmandaty, podzia mandatw w okrgu i (czyli wartoci
wyniki[i][j] dla j=0,1,..,4) wyznaczymy, wywoujc
fmandaty(tab[i],wyniki[i],20,5).
Wykonujc takie wywoanie dla kadego i[0,19], wypenimy odpowiednio tablic wyniki.
Rozwizanie zadania 3 sprowadza si wwczas wyznaczenia najwikszej liczby wrd
wyniki[0][j],,wyniki[19][j] dla kadego j[0,4]. Napisanie odpowiednich
fragmentw programu pozostawiamy czytelnikowi.

86.4.
Zagldajc do pliku wejciowego dane_wybory.txt, moemy zauway, e nazwy
kolejnych okrgw to A1,,A5; B1,,B5; C1,,C5 oraz D1,,D5. A zatem:
okrgi A1,,A5 maj numery: 0,..,4; okrgi B1,,B5 maj numery: 5,,9; okrgi
C1,,C5 maj numery: 10,,14 , a okrgi D1,,D5 maj numery: 15,,19.
Odpowiednie liczby mandatw moemy wyznaczy z pomoc funkcji fmandaty.
Dla standardowego podziau mandatw moemy wykorzysta tablic wyniki o zawartoci
opisanej w omwieniu rozwizania zadania 3 (wyniki[i][j] to liczba mandatw
przyznanych komitetowi Kj w okrgu i): liczba mandatw przyznanych komitetowi Kj w
caym kraju jest rwna sumie wyniki[0][j]++wyniki[19][j] .
Na potrzeby regionalnego podziau mandatw najpierw ustalimy liczb gosw uzyskanych
przez kady z komitetw w poszczeglnych regionach, a wyniki umiecimy w tablicy tabR:
#define nreg 4
int pocz,tabR[nreg][nkom];
for(int i=0; i<nreg; i++){
for(int j=0; j<nkom; j++) tabR[i][j]=0;
pocz=i*5;
for(int k=0; k<nkom; k++)
for(int j=pocz; j<pocz+5; j++)
tabR[i][k]+=tab[j][k];
}
Nastpnie wyznaczymy liczb mandatw w poszczeglnych regionach za pomoc funkcji
fmandaty:
int wynReg[nreg][nkom];
for(int i=0; i<nreg; i++){
fmandaty(tabR[i],wynReg[i], 100, 5);
}
Na koniec pozostaje zsumowanie liczby mandatw dla kadego komitetu; liczba mandatw
zdobytych przez Ki bdzie rwna wynReg[0][i]+...+wynReg[nreg 1][i].
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
361
86.5.
Oznaczmy komitet Q przez K0, a komitet R przez K1. Przyjmijmy, e liczba oddanych
gosw i liczba mandatw do podziau s ustalone. Aby uzyska odpowied na postawione
pytanie (najmniejsza liczba gosw, jak musi uzyska K0, aby zdoby poow mandatw),
przeprowadzimy symulacj wynikw wyborw dla rnych wartoci liczby gosw
zdobytych przez komitet K0, zmieniajcych si od 1 do poowy liczby wszystkich oddanych
gosw. Najmniejsza liczba gosw, przy ktrej K0 otrzyma poow mandatw, wyznaczy
odpowied na postawione pytanie. Gdyby metoda ta wymagaa zbyt dugich oblicze,
moglibymy j zoptymalizowa, znajdujc odpowied metod wyszukiwania binarnego
(binarnie wyszukujemy najmniejszej liczby gosw, przy ktrej K0 uzyska poow mandatw:
wiedzc e warto ta jest w przedziale [a,b], sprawdzamy, czy wystarczajca jest liczba
gosw (a+b)/2, i w zalenoci od wyniku ograniczamy obszar poszukiwa do [1+(a+b)/2,b]
lub [a, (a+b)/2]). Przy danych z zadania nie jest to jednak konieczne obliczanie przydziau
mandatw dla konkretnej liczby gosw wykonuje si bardzo szybko. Poniej prezentujemy
rozwizanie, w ktrym:
liczba oddanych gosw znajduje si w zmiennej glosy;
ptla zewntrzna przebiega przez trzy warianty zadania odpowiadajce rnym
liczbom mandatw do podziau (liczby te zapisane s w tablicy lmandatow);
liczby gosw oddane na komitety K0 i K1 zapisujemy (przed wywoaniem
fmandaty) w tablicy testin, a przyznane liczby mandatw funkcja fmandaty
zapisuje w tablicy testout.

void zad5(){
int testin[2], testout[2];
int glosow=100000, mandatow=20;
int lmandatow[3]={20,40,100};

cout << "Zadanie 5: " << endl;


for(int j=0; j<3; j++){
mandatow=lmandatow[j];
for(int i=1; i<=glosow/2; i++){
testin[0]=i;
testin[1]=glosow-i;
fmandaty(testin,testout, mandatow, 2);
if (testout[0]==testout[1]){
cout << "Dla m="<< mandatow/2 <<": " << i <<
endl;
break;
}
}
}
}

Zadanie 87.
Rozwizanie rozpoczynamy od przygotowania tabeli, w ktrej kolejnych kolumnach
umieszczamy: dat (dzie), numer kolejnego dnia (nr dnia), informacje dotyczce
danego dnia rejsu: liczb godzin rejsu na silniku elektrycznym (godz A), liczb godzin rejsu
362 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

na silniku spalinowym (godz S), redni prdko okrtu na silniku elektrycznym (v A),
jego redni prdko na silniku spalinowym (v S), drog przebyt na silniku elektrycznym
(droga A), drog przebyt na silniku spalinowym (droga S), drog przebyt danego dnia
(droga) oraz sumaryczn drog przebyt od pocztku rejsu (droga cak). Pocztek takiej
tabeli bdzie wyglda nastpujco:

W wierszu opisanym 14 lipca w kolumnach z liczb godzin rejsu umieszczamy dwa zera, a
w kolejnych dniach odpowiednio 0 i 11, odpowiadajce dziennej liczbie godzin rejsu na
silnikach elektrycznym i spalinowym:

87.1.
W tak skonstruowanej tabeli, informacji o tym, ktrego dnia rednia prdko na silniku
elektrycznym spada poniej 3 wzw, szukamy w kolumnie E. W tej kolumnie warto
mniejsza ni 3 jest po raz pierwszy w wierszu 31, odpowiadajcym 1 czerwca 1945.

87.2.
W tej samej tabeli na kocu kolumny z sumaryczn przebyt drog (J) znajdujemy
informacj o przebytej podczas rejsu drodze: 7701,94.

87.3.
Na podstawie danych zawartych w kolumnach z dat (A) oraz drog przebyt danego dnia (I)
tworzymy wykres kolumnowy. Pierwsz kolumn wykorzystujemy do opisania osi X
wykresu. Pamitamy o podpisaniu samego wykresu.

87.4.
Kopiujemy poprzedni tabel z wyliczeniami. Zmieniamy w niej, poczynajc od 15 lipca
1945, liczby godzin rejsu na silniku elektrycznym i na silniku spalinowym (odpowiednio na
20 i 4). Nastpnie w kolumnie z sumaryczn przebyt drog szukamy pierwszej wartoci nie
wikszej bd rwnej tej, wyliczonej w ostatnim wierszu poprzedniej tabeli. Wynika z niej, e
do 14 sierpnia wcznie okrt mg przepyn ponad 7722 Mm, czyli pync tym samym
kursem dopynby do Mar del Plata.

87.5.
Ponownie kopiujemy tabel pocztkow do nowego arkusza. Tym razem dla wszystkich dni
ustawiamy ten sam czas rejsu na silniku spalinowym, wpisujc odpowiedni formu:
=JEELI(DZIE.TYG(A118;2)=7;18;20), gdzie w komrce A118 jest podana data danego dnia.
Formua ta liczy dzienny czas rejsu na silniku elektrycznym (uzaleniony od dnia tygodnia),
ale z wyczeniem pierwszej niedzieli. Zmieniamy te obliczenia dotyczce utraty redniej
dobowej prdkoci (0,997 zamiast 0,9 w odpowiedniej formule) oraz wykorzystania silnikw
(90% moliwoci).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
363
Pocztek tej tabeli bdzie wyglda nastpujco:

Z ostatniego wiersza takiej tabeli odczytujemy dugo rejsu: 9811,73 Mm.

Zadanie 88.
Rozwizanie rozpoczynamy od przygotowania tabeli, w ktrej kolejnych kolumnach
umieszczamy: dzie (numer dnia miesica), wielko dostawy, liczb odpowiadajc 90%
choinek zaokrglon w d do liczby cakowitej, zapotrzebowanie na choinki, rzeczywist
sprzeda, liczb choinek pozostaych na placu wieczorem oraz informacj, czy danego dnia
zabrako choinek, aby wypeni zapotrzebowanie.
Pocztek takiej tabeli bdzie wyglda nastpujco:

Formuy wpisane w tym arkuszu wygldaj nastpujco:

Istotne jest te to, eby w obliczeniach uy funkcji ZAOKR.D, a nie jedynie wywietla
zaokrglony wynik.

88.1.
Liczb sprzedanych choinek obliczamy, sumujc komrki z kolumny z wielkoci sprzeday
(F), za liczb choinek pozostaych na placu znajdujemy w ostatnim kolumny G, ktry
odpowiada dacie 24 grudnia.

88.2.
Na podstawie kolumn dzie (A), liczba sprzedanych drzewek (F) i liczba drzewek
pozostaych na placu (G) wykonujemy wykres kolumnowy skumulowany (aby byo na nim
dodatkowo wida liczb choinek znajdujcych si rano na placu).

88.3.
W kolumnie z informacj o braku choinek (H) szukamy pierwszego wystpienia wartoci
PRAWDA. Odpowiedzi jest numer dnia w wierszu, w ktrym ta warto wystpia.
364 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

88.4.
Cae zestawienie kopiujemy do nowego arkusza. Jeeli
w ktrym dniu zabrako choinek do sprzeday,
wyznaczamy dodatkow dostaw w tym dniu lub w
jednym z poprzednich dni. Jeeli w ostatniej komrce
kolumny, z liczb choinek pozostaych na placu,
znalaza si liczba wiksza ni 49, to znaczy, e
przynajmniej jedna dostawa bya zbdna. W takim
wypadku naley usun odpowiedni liczb
poprzedzajcych ten dzie dostaw w kolejnoci od najpniejszej, tak aby liczba pozostaych
choinek zmalaa poniej 50 sztuk. W kolumnie zawierajcej liczb sprzedanych choinek (F)
obliczamy sum. Na podstawie zawartoci kolumny z dostawami (B) wymieniamy dni, w
ktrych dostawy s realizowane, oraz podajemy liczb dostaw. Moemy to zrobi jedna z
funkcji: LICZ.JEELI lub ILE.NIEPUSTYCH (patrz ilustracja).

88.5.
Ponownie kopiujemy tabel do nowego arkusza.
W kolumnie z wielkoci dostaw (B) we
wszystkich wierszach wpisujemy t sam warto.
Nastpnie zmniejszamy t warto cyklicznie o 1 i
szukamy sytuacji, w ktrej ktrego dnia
zabraknie choinek na placu. Wtedy wracamy do
wartoci o jeden wikszej, ktra jest odpowiedzi
na to zadanie.
Aby nie zmienia za kadym razem zawartoci 24 komrek, we wszystkich z nich poza
pierwsz wstawiamy formu pobierajc warto z pierwszej, np. =$K$35 (patrz ilustracja).

Zadanie 91.
Przy wczytywaniu danych z pliku naley pamita, aby kolumnie zawierajcej numery
PESEL nada format tekstowy. Dane umieszczamy w nastpujcych kolumnach:

91.1.
Zgodnie z opisem zawartym w zadaniu, aby wyznaczy pe na podstawie numeru PESEL,
naley wyodrbni z niego cyfr na 10. pozycji. Dla numeru PESEL, traktowanego jako dana
typu tekstowego, mona zastosowa funkcje tekstowe. Wyodrbnimy 10. cyfr, stosujc
funkcj FRAGMENT.TEKSTU. Wynikiem dziaania tej funkcji jest take tekst. Aby
wyodrbnion cyfr potraktowa jako liczb, ktrej parzysto powinnimy zbada,
zastosujemy funkcj WARTO. Poniej prezentujemy formu wyodrbniajc cyfr
oznaczajc pe, ktr zapisujemy w kolumnie D:
=WARTO(FRAGMENT.TEKSTU(A2;10;1))
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
365
Dla przejrzystoci rozwizania w kolumnie E umiecimy formu, ktrej wynikiem bdzie
litera k (dla kobiet) lub m (dla mczyzn). Posuy nam do tego celu formua warunkowa,
w ktrej odwoujemy si do wartoci liczbowej umieszczonej w kolumnie D:
=JEELI(MOD(D2;2)=0;"k";"m")
W kolejnej kolumnie umiecimy formu warunkow, ktrej warto wynosi 1, gdy spenione
s jednoczenie dwa warunki: pe wyznaczona na podstawie numeru PESEL jest oznaczona
liter k i ostatnia litera imienia jest rna od a. Do wyznaczenia ostatniej litery stosujemy
funkcj PRAWY.
=JEELI(ORAZ(E2="k";PRAWY(C2)<>"a");1;0)
Po odfiltrowaniu wierszy, w ktrych formua ta przyjmuje warto 1, otrzymamy rozwizanie
zadania.

91.2.
Rozwizanie tego zadania rozpoczniemy od posortowania danych alfabetycznie wedug
nazwiska i imienia. W kolumnie D umiecimy formu warunkow, ktra przyjmuje warto
1, gdy nazwiska i imiona w biecym wierszu oraz w nastpnym wierszu s takie same.
=JEELI(ORAZ(B2=B3;C2=C3);1;0)
Po odfiltrowaniu wierszy, w ktrych formua ta przyjmuje warto 1, dostaniemy wykaz
powtarzajcych si imion i nazwisk:

Pamitajmy, e naley wypisa wszystkie osoby speniajce warunki zadania, czyli rwnie
te, ktre na uporzdkowanej alfabetycznie licie nastpuj po osobach, dla ktrych formua
warunkowa daje warto 1. Na przykad pojawienie si wiersza 193 w powyszym
zestawieniu wiadczy o tym, e w rozwizaniu naley umieci osob z wiersza 193 oraz
osob z wiersza 194.
Czytelnikowi pozostawiamy zastanowienie si nad rozwizaniem zadania, ktre odfiltruje
wszystkie wiersze, ktre powinny znale si w rozwizaniu zadania.

91.3.
Najpierw wyodrbnimy liczb porzdkow, stosujc funkcj FRAGMENT.TEKSTU.
Wynikiem dziaania tej funkcji jest take tekst. Aby wyodrbniony fragment tekstu
potraktowa jako liczb, zastosujemy funkcj WARTO. W kolumnie o nagwku Liczba
porzdkowa zapiszemy formu:
366 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

=WARTO(FRAGMENT.TEKSTU(A2;7;3))
Nastpnie posortujemy zestawienie (zawierajce imiona, nazwiska i liczby porzdkowe)
rosnco wedug liczb porzdkowych. Jako wynik odczytamy imi i nazwisko na pierwszej
oraz ostatniej pozycji.

91.4.
Rozpoczniemy od wyodrbnienia cyfr miesica z numeru PESEL i zamiany tekstu na warto
liczbow. Zastosujemy funkcje FRAGMENT.TEKSTU oraz WARTO, a formu
=WARTO(FRAGMENT.TEKSTU(A2;3;2)) umiecimy w kolumnie D. Nastpnie
obliczymy rzeczywisty numer miesica. Mona zauway, e:
jeli wyodrbniony z numeru PESEL numer miesica jest wikszy od 20, to
rzeczywisty numer miesica uzyskamy zmniejszajc wyodrbniony numer o 20;
w przeciwnym razie rzeczywisty numer miesica jest rwny wartoci wyodrbnionej
w kolumnie D.
Stosujc te obserwacje, numer miesica wyznaczymy za pomoc nastpujcej formuy:
=JEELI(D2>20;D2-20;D2)
Na podstawie numeru PESEL oraz rzeczywistego numeru miesica tworzymy tabel
przestawn, w ktrej etykiety wierszy to rzeczywiste numery miesicy, a wartoci to liczby
rnych numerw PESEL odpowiadajcych poszczeglnym miesicom. Czytelnik moe te
si zastanowi nad uzyskaniem podobnej tabeli, stosujc funkcj LICZ.JEELI zamiast
tabeli przestawnej. Sortujemy tabel wedug numerw miesicy.

Uzyskane zestawienie kopiujemy w inne miejsce arkusza, dodajemy nagwek, a numery


miesicy zastpujemy ich nazwami. Mona to zrobi rcznie lub wykorzysta tworzenie serii
danych w arkuszu kalkulacyjnym Excel. Po wpisaniu nazw stycze i luty w jednej
kolumnie mona przez przecignicie mysz utworzy list nazw miesicy dla caego roku.
Poniej prezentujemy gotowe zestawienie, na podstawie ktrego mona utworzy wymagany
w zadaniu wykres kolumnowy:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
367

91.5.
Aby utworzy identyfikator, wykorzystamy funkcje LEWY, PRAWY, FRAGMENT.TEKSTU,
ZCZ.TEKSTY. W kolumnie o nagwku Identyfikator umiecimy formu:
=ZCZ.TEKSTY(LEWY(C2);FRAGMENT.TEKSTU(B2;1;3);PRAWY(A2))

Nastpnie na podstawie identyfikatora oraz numeru PESEL tworzymy tabel przestawn,


w ktrej etykiety wierszy to identyfikatory, a wartoci to liczba numerw PESEL dla kadego
identyfikatora. Sortujemy wiersze tabeli alfabetycznie wedug identyfikatora i filtrujemy je
tak, aby widoczne byy tylko wartoci wiksze od 1. Do filtrowania naley wykorzysta
polecenie Filtry wartoci, dostpne w menu w pierwszej kolumnie tabeli przestawnej.

Uzyskane zestawienie identyfikatorw stanowi rozwizanie zadania.


368 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 92.
Zadania rozwiemy z pomoc MS Excel, najpierw wczytujc dane do arkusza tak, aby
wiersz 1 zawiera nagwki kolumn, a kolumna A nazwy pastw.

92.1.
Rozwizanie zadania rozpoczynamy od wstawienia dwch kolumn i zsumowania w nich
liczby medali zdobytych na olimpiadach letnich (kolumna G) oraz liczby medali zdobytych na
olimpiadach zimowych (kolumna L). To pozwoli nam zbudowa funkcj logiczn
sprawdzajc, ktre pastwa speniaj warunki zadania. Zauwamy, e mona pomin
sprawdzenie udziau w co najmniej jednej olimpiadzie letniej, poniewa zdobycie co najmniej
jednego medalu na takiej olimpiadzie daje nam pewno jego uczestnictwa w co najmniej
jednej takiej olimpiadzie (a rozwaamy tylko pastwa, ktre zdobyy medale na olimpiadach
letnich).
W tym celu dodajemy do zestawienia kolumn Czy spenione s 3 warunki?
i w komrce M2 budujemy formu: =JEELI(ORAZ(G2>0;H2>0;L2=0);1;0), ktr
kopiujemy do pozostaych wierszy zestawienia. Sumujc otrzymane wartoci w kolumnie M,
otrzymamy poszukiwan liczb pastw.

Drug cz zadania moemy rozwiza na dwa sposoby:


1. Dodajemy kolejn kolumn, w ktrej budujemy formu: =JEELI(M2=1;G2;0),
dziki ktrej otrzymamy w kolumnie liczb medali zdobytych na olimpiadach letnich
przez pastwa speniajce warunki. A suma tych medali jest odpowiedzi do drugiej
czci zadania.
2. Korzystajc z wbudowanej funkcji suma.jeeli (sumuje ona te wartoci z zakresu,
ktre speniaj okrelone kryteria), budujemy formu, ktra sumuje liczb medali
zdobytych na olimpiadach letnich przez pastwa speniajce podane warunki
=(SUMA.JEELI(M2:M139;1;G2:G139).

92.2.
W celu rozwizania zadania tworzymy tabel przestawn, ustalajc nastpujce wartoci:
etykiety wierszy: Kontynent,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
369
etykiety wartoci: OL_letnie i OL_zimowe.
Dla obu wartoci wybieramy funkcj suma i ostatecznie otrzymujemy potrzebne do
sporzdzenia wykresu zestawienie:

Dla tak przygotowanych danych moemy utworzy wykres przestawny, wybierajc


odpowiedni jego typ, albo skopiowa zestawienie i sporzdzi wykres w tradycyjny sposb,
dostpny w grupie Wykresy, na karcie Wstawianie.

92.3.
Rozwizanie zadania rozpoczynamy od zsumowania dla kadego pastwa liczby
poszczeglnych typw medali zdobytych przez nie na obu olimpiadach.

To pozwoli nam zbudowa funkcj logiczn sprawdzajc, ktre pastwa zdobyy wicej
medali zotych ni (cznie) medali srebrnych i brzowych. Dodajemy do zestawienia
kolumn N, w ktrej sprawdzamy powyszy warunek, i w komrce N2 budujemy formu:
=JEELI(K2>(L2+M2);1;0), ktr kopiujemy do pozostaych wierszy zestawienia.
Sortujc zestawienie malejco wedug kolumny L, otrzymamy w pierwszych wierszach
szukane pastwa.

92.4.
Wyznaczenie dla kadego kontynentu pastwa, ktre zdobyo cznie najwiksz liczb
medali na wszystkich olimpiadach, oraz ich liczby rozpoczynamy od zsumowania wszystkich
medali dla kadego pastwa. Nastpnie sortujemy otrzymane zestawienie leksykograficznie
wedug nazwy kontynentu oraz malejco wedug sumy medali. W efekcie pierwszy wiersz
kadego kontynentu zawiera nazw pastwa z najwiksz liczb medali na tym kontynencie.
370 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Aby wyodrbni tylko te wiersze, ktre nas interesuj, moemy skorzysta z narzdzia Sumy
czciowe (dostpnego w grupie Konspekt, na karcie Dane); dla kadego kontynentu
wybierzemy maksymaln warto wyliczonej sumy medali.

W obrbie danego kontynentu na pierwszej pozycji znajdzie si kraj z najwiksz liczb


medali.

92.5.
Rozwizanie ostatniego zadania (pitego) rozpoczynamy od wyznaczenia rnicy liczby
medali kadego rodzaju zdobytych w olimpiadach letnich oraz liczby medali zdobytych
w olimpiadach zimowych. Wartoci te wyznaczamy dla kadego kraju.

Kraj, dla ktrego wszystkie rnice s mniejsze od zera jest krajem zimowym
(=JEELI(ORAZ(K3<0;L3<0;M3<0);1;0)), jeeli za wszystkie rnice s dodatnie,
kraj jest krajem letnim (=JEELI(ORAZ(K3>0;L3>0;M3>0);1;0)).

Zadanie 93.
Zadania rozwiemy z pomoc MS Excel, najpierw wczytujc dane do arkusza tak, aby
wiersz 1 zawiera nagwki kolumn, a kolumna A zawieraa imiona osb.

93.1.
Rozwizanie moemy uzyska za pomoc funkcji LICZ.JEELI, wyliczajc w kolumnie G,
w kadym wierszu, liczb wyjazdw danego pracownika:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
371
=LICZ.JEELI($B$2:$B$1001;B2).
Zakres danych to komrki z nazwiskami pracownikw ($B$2:$B$1001), za kryterium
funkcji jest komrka z nazwiskiem pracownika w danym wierszu, tutaj: nazwisko z komrki
B2.
Zwrmy uwag na sposb adresowania w formule z komrki G2:
adres $B$2 gwarantuje, e po skopiowaniu formuy pocztek zakresu zawsze bdzie
zaczyna si od drugiego wiersza, za adres $B$1001 e koniec zakresu bdzie si
koczy w wierszu 1001 (poniej pierwszych kilka wierszy).

Nastpnie, sortujc zestawienie rosnco wedug kolumny G, otrzymujemy poprawny wynik


w pierwszym wierszu otrzymanego zestawienia.

93.2.
W drugim zadaniu musimy obliczy, ile dni trwa kady wyjazd, a nastpnie zsumowa
otrzymane wyliczenia dla kadego pracownika. W tym celu dodajemy do zestawienia
kolumn Ile_dni_delegacji, w ktrej wyznaczamy, ile dni trwaa kada delegacja,
jednoczenie budujc w komrce H2 formu: =E2-D2+1 (liczba 1 dodana do rnicy to
doliczenie do rnicy dat daty wyjazdu, ktra dla delegacji jednodniowych jest rwna dacie
powrotu) i kopiujc j do kolejnych wierszy arkusza (poniej kilka pierwszych wierszy),

otrzymujemy dla kadego nazwiska liczb dni trwania kadej delegacji (poniej kilka
pierwszych wierszy).
372 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Dla tak przygotowanych danych tworzymy tabel przestawn i sortujemy j z jednym


kryterium grupowania, ustalajc nastpujce wartoci:
etykiety wierszy: Nazwisko,
etykiety wartoci: wyliczona liczba dni delegacji.
W obszarze wartoci wybieramy funkcj suma.

93.3.
Rozwizanie zadania trzeciego rozpoczynamy od wyliczenia kosztu kadej delegacji
w kolumnie I (Koszt_delegacji).
Wyliczajc koszt, moemy wykorzysta przy budowaniu formuy wyliczon w poprzednim
zadaniu liczb dni delegacji: =JEELI(H2=1;F2+30;30+(H2-1)*24+F2) albo
zbudowa formu odwoujc si bezporednio do obu dat (wyjazdu i powrotu):
=F2+30+(E2-D2)*24. Kopiujc j do pozostaych wierszy (poniej kilka pierwszych
wierszy),

otrzymujemy zestawienie (poniej kilka pierwszych wierszy):


Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
373

I podobnie jak w poprzednim zadaniu tworzymy oraz sortujemy tabel przestawn, w ktrej
ustalamy:
etykiety wierszy: Miasto,
etykiety wartoci: wyliczona liczba dni delegacji.
W obszarze wartoci ponownie wybieramy funkcj suma.

93.4.
W nastpnym zadaniu, korzystajc z wbudowanej funkcji =MIESIC(D2), wyuskujemy
dla kadej daty wyjazdu (D_wyj) numer miesica. Poniej kilka pierwszych wierszy.

Zliczenia liczby wyjazdw w poszczeglnych miesicach mona dokona na kilka sposobw.


Zapewne najprostszym rozwizaniem jest posortowanie dat wyjazdw wedug miesicy
(wtedy nie trzeba nawet wyuskiwa z daty numeru miesica) i rczne zliczenie liczby
wyjazdw w danym miesicu. Mona rwnie skorzysta z funkcji arkusza kalkulacyjnego:
LICZ.JEELI() albo LICZ.WARUNKI().
374 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Na podstawie otrzymanego zestawienia:

wstawiamy wykres kolumnowy:

Liczba wyjazdw w miesicu


160
140
120
100
80
60
40
20
0
1 2 3 4 5 6 7 8 9 10 11 12

Liczba wyjazdw w miesicu

93.5.
Dodajemy kolumn Liczba noclegw i wyliczamy w niej, ile noclegw przypada na
kad delegacj, budujc w komrce K2 formu: =E2-D2 i kopiujc j do kolejnych wierszy
arkusza (poniej kilka pierwszych wierszy):

Otrzymamy zestawienie (poniej kilka pierwszych wierszy):


Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
375

redni liczb noclegw pracownikw we wszystkich delegacjach, wyliczamy korzystajc


z funkcji rednia i zaokrglajc otrzymany na jej podstawie wynik do dwch miejsc po
przecinku (zgodnie z poleceniem w zadaniu): =ZAOKR(REDNIA($K$2:$K$1001);2).
W kolumnie K wyliczona zostaa liczba noclegw niezalenie od dugoci trwania delegacji
i dla delegacji jednodniowych otrzymalimy 0 noclegw. Aby wyliczy redni liczb
noclegw w delegacjach co najmniej 2-dniowych, korzystamy z wbudowanej funkcji
obliczajcej redni z komrek speniajcych dany warunek (lub kryteria) i podobnie jak w
poprzednim obliczeniu jej wynik zaokrglamy do dwch miejsc po przecinku:
=ZAOKR(REDNIA.JEELI($K$2:$K$1001;">0");2).

Zadanie 94.

94.1.
Najwikszy procentowy przyrost dugoci ciaa wyraony w procentach iloraz rnicy
wzrostu w wieku lat 19 i dugoci ciaa w dniu urodzin do dugoci ciaa w dniu urodzin.

Po obliczeniu procentowego przyrostu posortujemy dane wedug kolumny przyrost%


w porzdku malejcym. Pierwszy rekord spenia kryteria zadania: dziecko o identyfikatorze
718 osigno najwikszy przyrost dugoci ciaa: 270%.

94.2.
Do obliczenia redniej arytmetycznej wzrostu dziewczt i chopcw stosujemy funkcj
REDNIA.JEELI o argumentach: zakres, kryteria i rednia_zakres. Zakres to kolumna B
(pe), kryteria to komrka z oznaczeniem pci ("d" lub "ch"), za rednia_zakres to
kolumny ze wzrostem dzieci.
W przypadku, gdy nie znamy funkcji REDNIA.JEELI lub brak jej w starszej wersji
arkusza mona zastosowa funkcj SUMA.JEELI, a otrzymany wynik podzieli przez
liczb dzieci okrelonej pci.
376 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Po wykonaniu zestawienia redniego wzrostu dzieci naley obliczy rnic midzy rednim
wzrostem chopcw a rednim wzrostem dziewczt i wyrni rnice mniejsze lub rwne -1,
np. za pomoc formatowania warunkowego.

94.3.
Aby sprawdzi przyrost dugoci ciaa w danym roku, obliczamy rnic pomidzy wzrostem
w roku biecym a wzrostem w roku poprzednim. Nastpnie odfiltrowujemy przyrosty rwne
0 po 15 roku ycia.

94.4.
Po obliczeniu przyrostw dugoci ciaa w kolejnych latach wyznaczamy rednie dla kadej
pci osobno, a nastpnie sprawdzamy kierunek trendu w zakresie przyrostu w kolejnych
latach: czy kolejny przyrost jest mniejszy od aktualnego. Pojawienie si wartoci fasz
wyznacza moment, w ktrym trend si zmienia.

94.5.
Centyle 5. i 95. obliczamy za pomoc funkcji PERCENTYL lub etapami: najpierw
wyznaczamy pozycj 5. centyla, czyli 5% liczby wszystkich badanych chopcw (5%*1239),
i w uporzdkowanym szeregu sprawdzamy warto na tej pozycji, a nastpnie postpujemy
identycznie dla 95. centyla.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
377
94.6.
Mediana to inaczej rodkowy wyraz uporzdkowanego cigu. Median wyznaczymy funkcj
MEDIANA lub wybierajc rodkowy wzrost (w zadaniu mamy dane dotyczcd wzrostu 1239
chopcw, wic naley odczyta 620. pozycj) w uporzdkowanym zestawieniu.

Na podstawie uzyskanego zestawu danych tworzymy wykres liniowy, w ktrym na osi OX


znajdzie si wiek chopca, za na osi OY jego wzrost.

Zadanie 95.
Rozwiemy zadania za pomoc arkusza kalkulacyjnego, kade zadanie w osobnym arkuszu.
W tym celu po zaimportowaniu danych do arkusza utworzymy kopie tego arkusza.

95.1.
redni kurs akcji kadej spki w danym dniu moemy obliczy, wykorzystujc funkcj
warunkow JEELI. Gdy obrt spki i jej wolumen s wiksze od 0, funkcja powinna
zwrci warto obrot/wolumen, w przeciwnym razie kurs_zamkniecia.
Aby znale spki o najwyszym rednim kursie dnia, sortujemy wiersze tabeli malejco
wedug obliczonego redniego kursu dnia. Nastpnie nakadamy filtr na kolumn data, aby
wybra tylko wiersze z dnia 2015-01-21. Trzy pierwsze wiersze tabeli s wynikami zadania.

95.2.
Przegrupujemy dane rdowe, aby w jednym wierszu wystpiy nazwa spki oraz jej kursy
zamknicia sesji z trzech kolejnych dni. W tym celu wstawiamy tabel przestawn.
W nagwkach wierszy umieszczamy pole nazwa spki, w nagwkach kolumn pole
data, a w polu wartoci kurs_zamknicia.
378 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

W nowej kolumnie obok tabeli przestawnej, w kadym wierszu, umieszczamy formu, ktra
obliczy wzgldn dzienn zmian kursu: podzieli kurs zamknicia w dniu 2015-01-23 przez
kurs zamknicia w dniu 2015-01-22 i odejmie 1. Wynik wyraamy w formacie procentowym
z dan dokadnoci. Aby znale spk o najwyszej zmianie kursu, sortujemy ca tabel
malejco wedug zmiany kursu.

95.3.
Rodzaj spki (krajowa lub zagraniczna) wyznaczamy w kadym wierszu na podstawie
pola ISIN. Jeli pierwsze dwa znaki w tym polu s rwne PL, to spka jest krajowa,
w przeciwnym razie jest zagraniczna.
Do wycicia dwch znakw z lewej strony tekstu w polu ISIN stosujemy funkcj LEWY.
Porwnanie wyniku tej funkcji z tekstem PL umieszczamy jako warunek wewntrz funkcji
warunkowej JEELI. Wyniki funkcji warunkowej umieszczamy w nowej kolumnie o nazwie
rodzaj.

a) Zliczamy wystpienia wszystkich sw krajowa i sw zagraniczna w polu rodzaj.


Mona to zrobi na dwa sposoby, uywajc:
funkcji warunkowej LICZ.JEELI,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
379
narzdzia z karty Dane Sumy czciowe: dla kadej zmiany w polu rodzaj
uywamy funkcji licznik w polu nazwa (w Excelu tabel trzeba wczeniej
posortowa wedug rodzaju spki).
Wystarczy zliczy spki tylko w jednym dniu. Jeli nie chcemy filtrowa danych
dotyczcych jednego wybranego dnia, zliczamy wystpienia w caej kolumnie tabeli i
wynik dzielimy przez 3 (liczba dni).
b) czne obroty spek krajowych i spek zagranicznych wyznaczamy w podobny sposb,
uywajc jednego z dwch narzdzi:
funkcji SUMA.JEELI,
narzdzia z karty Dane Sumy czciowe: dla kadej zmiany w polu rodzaj
uywamy funkcji suma w polu obrot (w Excelu tabel trzeba wczeniej
posortowa wedug rodzaju spki).
Procentowy udzia spek krajowych w obrotach giedy obliczamy, dzielc obroty spek
krajowych przez sum obrotw wszystkich spek. Wynik wyraamy w formacie
procentowym z dan dokadnoci.
Sposb 1 funkcje warunkowe:

Sposb 2 przykadowo: wstawianie sum czciowych zawierajcych sum obrotw


poszczeglnych rodzajw spek.
380 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

95.4.
Obliczenie WIG zaczynamy od wyznaczenia w kadym wierszu wartoci rynkowej pakietu
spki w danym dniu. W nowej kolumnie umieszczamy nagwek: warto_rynkowa,
a w kolejnych komrkach tej kolumny formu, ktra mnoy liczb akcji (pole
pakiet_wig) przez warto akcji (pole kurs_zamkniecia) .
Dla kadego z trzech danych dni:
obliczamy M sum wartoci rynkowych w tym dniu (moemy zastosowa funkcj
SUMA.JEELI z kryterium ustawionym dla daty lub rcznie zaznaczy zakres sumy lub
wykorzysta narzdzie Sumy czciowe),
obliczamy indeks WIG wedug podanego wzoru, uywajc obliczonej powyej wartoci M
oraz staych wartoci Mb, Wb, K, podanych w treci zadania.

95.5
Celem podjcia decyzji: kup, sprzedaj lub obserwuj wykonamy zestawienie, w ktrym
dla kadej spki umiecimy w jednym wierszu kursy zamknicia z trzech kolejnych dni.
Moemy wykorzysta tabel przestawn, wykonan na pocztkowym etapie rozwizywania
zadania 2 (skopiowa j do nowego arkusza, najlepiej wklejajc wartoci, a nie formuy) lub
wykona t tabel ponownie, korzystajc z danych rdowych.
W dwch nowych kolumnach obliczamy dla kadej spki rnice kursw zamknicia akcji
w kolejnych dniach:
zmiana1 = kurs_zamknicia z dnia 2015-01-22 kurs_zamknicia z dnia 2015-01-21
zmiana2 = kurs_zamknicia z dnia 2015-01-23 kurs_zamknicia z dnia 2015-01-22.
W nastpnej kolumnie umiecimy pole decyzja, ktre bdzie zawiera sowa: kup,
sprzedaj lub obserwuj, zalenie od wartoci w polach zmiana1 i zmiana2 w tym
samym wierszu arkusza:
kup gdy pierwsza zmiana jest dodatnia i druga zmiana jest wiksza od pierwszej,
sprzedaj gdy pierwsza zmiany jest ujemna i druga zmiana jest mniejsza od pierwszej.
Jeli adna z powyszych sytuacji nie zachodzi, to warto spk tylko obserwowa.
Wykorzystamy funkcj warunkow JEELI i funkcj logiczn ORAZ, ktra utworzy nam
iloczyn logiczny dwch warunkw.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
381
Nastpnie zliczymy wystpienia sw: kup, sprzedaj i obserwuj za pomoc funkcji
warunkowej LICZ.JEELI

Zadanie 96.

96.1.
W zadaniu naley porwna struktur wiekow ludnoci w dwch latach kalendarzowych:
2013 i 2050, przedstawiajc j na wykresie punktowym.
W kadym wierszu tabeli rdowej obliczamy czn liczb ludnoci: sum liczby kobiet i
mczyzn z miast oraz wsi. Nastpnie kopiujemy liczby ludnoci dotyczce roku 2050
i umieszczamy je obok wynikw z roku 2013, tak aby w jednym wierszu znalazy si liczby
ludnoci z roku 2013 i 2050 dla wszystkich grup wiekowych od 0 do 100.

Tak przygotowane dane umoliwiaj utworzenie wykresu, obejmujcego dwie serie danych:
liczb ludnoci w roku 2013 i 2050 w tym samym zakresie kategorii: w wieku od 0 do 100.

96.2.
Naley obliczy stosunek liczby ludnoci miast do liczby ludnoci wsi w roku 2013 i w roku
2050.
Do tabeli rdowej dodajemy dwie nowe kolumny: miasto i wie. W komrkach tych
kolumn, w kadym wierszu, sumujemy liczby kobiet i mczyzn, odpowiednio z miast i wsi.
Nastpnie trzeba obliczy sum liczb ludnoci miast i wsi w kadym roku uwzgldniajc
wszystkie grupy wiekowe.
Wybierzemy narzdzie sumy czciowe: dla kadego roku zastosujemy funkcj Suma w polu
miasto i w polu wie. Ukryjemy wiersze skadajce si na sum czciow roku
(wybierajc przycisk 2 na listwie z lewej strony ekranu).
Zamiast sum czciowych mona po prostu uy funkcji SUMA i rcznie zaznacza zakres
sumowania dla ludnoci miast i ludnoci wsi z roku 2013 i roku 2050, lecz jest to bardziej
pracochonne.
W dwch wierszach, przedstawiajcych sumy dla roku 2013 i 2050, obliczamy iloraz: suma
ludnoci z miast przez sum ludnoci wsi. dan dokadno wynikw zapewniamy,
wybierajc 2 miejsca dziesitne w formacie liczbowym.
382 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

96.3.
Naley obliczy redni waon wieku mczyzny w miecie.
Obok tabeli rdowej tworzymy now kolumn o nazwie licznik. W jej komrkach
obliczymy kolejne elementy licznika ze wzoru podanego w treci zadania, w kadym wierszu
iloczyn: wiek * liczba osb w tym wieku.
Nastpnie zastosujemy narzdzie sumy czciowe: dla kadego roku uyjemy funkcji Suma
do pola m_miasto oraz do pola licznik.
Ukryjemy wiersze skadajce si na sumy czciowe (za pomoc przycisku 2 na listwie
z lewej strony ekranu). W wierszach dotyczcych roku 2013 i roku 2050 podzielimy wynik
sumy czciowej pola licznik przez wynik sumy czciowej pola m_miasto. Kocowe
wyniki sformatujemy z dan dokadnoci.

96.4.
Dla kadego roku od 2013 do 2050 naley znale najniszy wiek, w jakim kobiety
przewaaj liczebnie nad mczyznami.
Do rdowej tabeli danych dodajmy 4 nowe kolumny o nastpujcych nazwach: kobiety,
mczyni, k>m, zmiana.
W kolumnach kobiety i mczyni obliczymy w kadym wierszu liczb kobiet (cznie
z miast i wsi) oraz liczb mczyzn (cznie z miast i wsi).
W kolumnie k>m uyjemy funkcji warunkowej JEELI . Jeeli w danym wierszu liczba
kobiet jest wiksza od liczby mczyzn, niech funkcja umieci w komrce warto 1, jeli nie
warto 0.
W kolumnie zmiana take uyjemy funkcji warunkowej JEELI, ktra sprawdzi, czy
w biecym wierszu jest przewaga kobiet, a jednoczenie czy w poprzednim wierszu nie
ma przewagi kobiet. Jeeli ma miejsce taka sytuacja, funkcja zwrci warto 1, w
przeciwnym razie zwrci 0.

Wykorzystujc filtr, wybierzemy teraz te wiersze, w ktrych pole zmiana ma warto 1.


Okazuje si, e dla niektrych lat kalendarzowych liczba kobiet w pewnym wieku zaczyna
przewysza liczb mczyzn, lecz ta przewaga nie jest trwaa. W grupie o rok starszej znw
przewaaj mczyni, a w nastpnej grupie wiekowej znw kobiety. Aby wyznaczy dla
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
383
kadego roku kalendarzowego najmodszy wiek kobiet, w ktrym ich liczba przekracza
liczb mczyzn, mona powysze wyniki filtru skopiowa do nowego arkusza i uy
narzdzia sumy czciowe: dla kadej zmiany w polu rok uy funkcji Minimum w
polu wiek.

96.5.
Naley wyznaczy w kadym roku kalendarzowym liczb osb nalecych do trzech grup
wiekowych: modziey (0-18), osb w wieku produkcyjnym (19-67) i emerytw (68-100).
Przede wszystkim zsumujemy liczb kobiet i mczyzn z miast oraz wsi w kadym wierszu
rdowej tabeli danych. W ten sposb nasza tabela zyska dodatkow kolumn, nazwijmy j
razem.
Nastpnie utworzymy now kolumn o nazwie grupa. Za pomoc funkcji warunkowej
JEELI umiecimy komrkach tej kolumny jedn z liter: m (jak modzie), p (produkcyjni)
lub e (emeryt), zalenie od pola wiek w tym wierszu tabeli.

Nastpnie wykonamy tabel przestawn: w nagwkach wierszy umiecimy pole rok,


w nagwkach kolumn pole grupa, a jako wartoci danych przyjmiemy pole
razem.W utworzonej ju tabeli przestawnej moemy zmieni kolejno kolumn, aby ustawi
je rosnco wedug wieku: najpierw modzie, pniej osoby w wieku produkcyjnym, na
kocu emerytw. W tym celu zaznaczamy komrk nagwka kolumny emerytw (z liter
e), ustawiamy kursor na krawdzi komrki i cigniemy w prawo na nowe miejsce.
Na podstawie zawartoci tabeli przestawnej wykonujemy wykres kolumnowy skumulowany.
Aby obliczy procent osb w wieku produkcyjnym w kolejnych latach, utworzymy now
kolumn obok tabeli przestawnej. Wyznaczymy w niej dla kadego roku, stosunek liczby
osb w wieku produkcyjnym do liczby wszystkich osb w tym roku. Dla caej tej kolumny
wybierzemy format % liczb, podajc wyniki oblicze z dokadnoci do 0 cyfr po przecinku.
384 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 97.
Zadania rozwiemy z pomoc MS Excel, najpierw wczytujc dane do arkusza tak, aby
wiersz 1 zawiera nagwki kolumn, a dane o stopie bezrobocia w kolejnych miesicach
znajdoway si w kolumnach B-M.

97.1.
Rozwizanie pierwszego zadania uzyskamy, wykorzystujc funkcj LICZ.JEELI do
wyznaczenia liczby miesicy, w ktrych stopa bezrobocia jest wiksza od 10:
=LICZ.JEELI($B$2:$M$71;">10"),
Zakres danych w powyszej formule stanowi wszystkie komrki z miesicznymi stopami
bezrobocia ($B$2:$M$71), za napis >10 oznacza wyraenie logiczne, okrelajce, ktre
komrki bd uwzgldniane przy zliczaniu. Naley pamita, e wszelkie kryteria
zawierajce symbole matematyczne lub logiczne (a take tekstowe) naley uj w podwjny
cudzysw().

97.2.
W tym zadaniu musimy poda najnisz i najwysz redni roczn stop bezrobocia oraz
rok, w ktrym zostae ony odnotowane. W tym celu dodajemy kolejn kolumn rednia
roczna stopa bezrobocia i w komrce N2 budujemy formu =REDNIA(B2:M2),
ktr przekopiowujemy do pozostaych komrek w kolumnie. Zestawienie sortujemy
malejco ze wzgldu na otrzymane rednie, dziki czemu na pierwszej pozycji znajdzie si
rok z najnisz redni roczn stop bezrobocia, a na ostatniej pozycji rok z najwysz
redni.

97.3.
Sporzdzenie wykresu rozpoczynamy od przygotowania danych. W tym celu dodajemy dwie
kolumny, w ktrych wyznaczamy odpowiednio minimaln (kolumna B) i maksymaln
(kolumna C) miesiczn stop bezrobocia dla kadego roku.

Na podstawie otrzymanego zestawienia:


Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
385

wstawiamy wykres liniowy:

97.4.
W zadaniu mamy znale najduszy nierosncy cig miesicznych stp bezrobocia
w kolejnych miesicach. Wykonamy to, budujc formu logiczn, w ktrej dla kadego
miesica wyznaczamy najwiksz dugo cigu nierosncego, w ktrym dany miesic jest
ostatnim elementem (stycze 1945 roku ma warto pocztkow rwn 0). Z uwagi na sposb
rozmieszczenia danych formua ta ma dwa warianty:
dla miesicy od lutego do grudnia: =JEELI(B2>=C2;O2+1;1);
dla stycznia: =JEELI(M2>=B3;Z2+1;1).

Wielko najduszego nierosncego cigu miesicznych stp bezrobocia w kolejnych


miesicach jest maksymalna warto z zakresu (=MAX(O2:Z71)). Miesic i rok koca
znalezionego cigu odnajdujemy, wyszukujc wyznaczon wczeniej warto maksimum w
tym samym zakresie komrek, i na tej podstawie znajdujemy rozwizanie.

97.5.
Rozwizanie rozpoczynamy od dodania kolumny Czy wiksze w kadym
miesicu? i zbudowania w komrce N3 formuy logicznej, sprawdzajcej dla danego roku,
czy stopa bezrobocia w kadym jego miesicu by wiksza ni w tym samym miesicu roku
poprzedniego:
=JEELI(ORAZ(B3>B2;C3>C2;D3>D2;E3>E2;F3>F2;G3>G2;H3>H2;I3>I2;
J3>J2;K3>K2;L3>L2;M3>M2);1;0)
386 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Sumujc wartoci w kolumnie N (=SUMA(N3:N71)), otrzymamy szukan liczb lat.

Zadanie 100.
Po wczytaniu danych do tabel oraz ustaleniu zwizkw midzy tabelami (Relacje) mona
przystpi do rozwizania zadania.

100.1.
W tym zadaniu do utworzenia zapytania potrzebne s 2 tabele: Listy oraz Punktacja.
Z pierwszej tabeli wybieramy nazw listy zada, a z drugiej tabeli liczb punktw.
Poniewa chcemy policzy redni liczb punktw dla kadej listy, nazwy list grupujemy, a
dla pola punkty z tabeli Punktacja wybieramy rednia.

Zauwamy jeszcze, e rednie wartoci maj by podane z dokadnoci do dwch miejsc po


przecinku. Mona to zrobi, np. ustawiajc waciwoci pola punkty w arkuszu
waciwoci: wybieramy format staoprzecinkowy z dwoma miejscami po przecinku.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
387

100.2.
Do zbudowania zapytania potrzebujemy wszystkich tabel. Musimy wybra imiona i nazwiska
osb (tabela Osoby) oraz nazw listy (tabela Listy). Poniewa lista ma rozpoczyna si od
litery P, w wierszu filtrujcym (Kryteria) wystarczy wpisa: Like "P*". Dodatkowo
mamy wybra osoby, ktre spniy si z oddaniem listy o 14 dni lub wicej. Poniewa
wiemy, kiedy osoby przesyay zadania oraz jaki by termin oddania listy zada, wystarczy
zbada rnic tych dat. Mona to zrobi poprzez zbudowanie odpowiedniego wyraenia.
Nastpnie w kryteriach ustawiamy, e obliczona rnica ma by wiksza bd rwna 14.
388 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

100.3.
Zadanie mona wykona na kilka sposobw. Jeli wybierzemy narzdzie bazodanowe, to
najprociej jest utworzy jedn kwerend, wybierajc osoby, ktrych suma punktw mieci
si w zadanym przedziale, a nastpnie odczyta, ile takich osb byo (sprawdzajc liczb
rekordw pojawiajcych si w wyniku uruchomienia zapytania). Poniej prezentujemy
kwerend wyznaczajc liczb osb z ocen cztery. Analogicznie wyznaczamy pozostae
wartoci.

100.4.
Zadanie mona rozwiza na 2 sposoby. W pierwszym przypadku mona dla kadej grupy
obliczy, ile osb otrzymao 10, 11, 12 punktw. W rezultacie trzeba zrobi 15 kwerend, co
jest do czasochonne. Mona te wykorzysta kwerend krzyow, ktra pozwoli wykona
czytelne zestawienie. Przy tworzeniu takiej kwerendy (Tworzenie Projekt kwerendy)
wybieramy z karty Projektowanie typ kwerendy Krzyowa. Pole punkty z tabeli
Punktacje ustawiamy jako nagwek wiersza, pole grupa z tabeli Osoby jako
nagwek kolumny. Natomiast identyfikatory osb (id_osoby) ustawimy w wierszu
Krzyowe jako warto. Dodatkowo chcemy, aby punktacja uwzgldniaa tylko 10, 11 oraz
12 punktw, dlatego dodajemy odpowiednie kryterium.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
389

100.5.
W tym zadaniu trzeba zwrci uwag na sformuowanie polecenia: nie chodzi o to, eby
poda osoby, ktre nie wysay adnej listy zada, ale o osoby, ktre nie wysay co najmniej
jednej listy zada. Poniewa wszystkich list zada jest 11, wystarczy sprawdzi, kto odda
mniej ni 11 list zada.

Trzeba jednak pamita o tym, e takie podejcie nie gwarantuje, e znajdziemy osob, ktra
nie oddaa adnej listy zada. eby sprawdzi, czy jest taka osoba, mona np. napisa
zapytanie w jzyku SQL, w ktrym wybierzemy te imiona i nazwiska osb, ktrych
identyfikatory nie wystpuj w tabeli Punktacja:
SELECT Osoby.nazwisko, Osoby.imie
FROM Osoby INNER JOIN Punktacja
ON Osoby.id_osoby = Punktacja.id_osoby
WHERE Osoby.id_osoby NOT IN
SELECT Punktacja.id_osoby FROM Punktacja)
ORDER BY Osoby.nazwisko;
390 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 101.
Zadanie rozwiemy za pomoc MS Access. Zawartoci plikw osoby.txt,
zajecia.txt i wejcia.txt wczytamy do tabel Osoby, Zajecia i Wejscia,
ktre poczymy odpowiednimi relacjami (szczegy pozostawiamy czytelnikowi).

101.1.
W zadaniu naley obliczy liczb kobiet i mczyzn uczestniczcych w zajciach Fitness
TBC. Do uzyskania odpowiedzi potrzebne nam s dane z trzech tabel:
Id_uzytkownika z tabeli Wejscia do zliczenia liczby wej,
rodzaj zaj z tabeli Zajecia,
pe uczestnika zaj z tabeli Osoby.
Zadanie rozwiemy w dwch krokach. W kroku pierwszym utworzymy pomocnicz
kwerend grupujc uytkownikw wedug pola Id_uzytkownika, aby by pewnym, e
policzymy kad osob jednokrotnie. W kwerendzie uwzgldnimy tylko uczestnikw zaj
Fitness TBC. Widok projektu tej kwerendy prezentujemy poniej:

W kroku drugim tworzymy kwerend, dla ktrej jako rdo danych wybieramy utworzon
wczeniej kwerend pomocnicz uczestnicy zaj Fitness TBC i ich pe.
Nastpnie grupujemy uytkownikw wedug pola pe i uywamy funkcji Policz do
zliczenia liczby wej.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
391

101.2.
Do rozwizania zadania wykorzystamy zczenie wszystkich trzech tabel: Osoby, Wejscia
i Zajecia, ktre gwarantuje nam, e kade wejcie na zajcia jest uwzgldnione
jednokrotnie. Jeli pogrupujemy te wejcia wedug nazw obiektu i zsumujemy ceny wej,
uzyskamy poprawnie wyliczony koszt zaj.

101.3.
Aby rozwiza zadanie, zliczymy liczb wej poszczeglnych osb na dowolne zajcia
w dniu 16 kwietnia oraz podamy nazwiska i imiona osb, dla ktrych liczba wej jest
wiksza od 1. W tym celu tworzymy ponisz kwerend:

101.4.
W kwerendzie zliczamy liczb osb uczestniczcych w poszczeglnych zajciach i
prezentujemy rodzaj zaj oraz nazw obiektu, w ktrym byy one prowadzone. Uzyskane
wyniki sortujemy malejco i ustalamy, e kwerenda ma zwraca tylko pierwszy wiersz,
zawierajcy najwiksz liczb uczestnikw. W tym celu na karcie Projektowanie
ustawiamy warto parametru Zwr na 1.
392 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

101.5.
W kwerendzie zliczamy liczb wej na zajcia oraz grupujemy i sortujemy rosnco dane
wedug kolumny Obiekt z tabeli Zajecia.

Zadanie 102.

102.1.
W tym zadaniu wystarczy wyfiltrowa zdjcia dodane midzy 1 stycznia a 31 grudnia 2014
(klauzula WHERE), a nastpnie poda ich liczb (klauzula COUNT). Odpowiednia kwerenda
SQL wyglda nastpujco:

SELECT COUNT(Zdjecia.ID_zdjecia) AS LiczbaZdjec


FROM Zdjecia
WHERE (((Zdjecia.Data_dodania)>=#1/1/2014# AND
(Zdjecia.Data_dodania)<=#12/31/2014#));

102.2.
Tutaj konieczne jest poczenie tabeli znajomosci z tabel uzytkownicy. Dla kadej
znajomoci wiersza bazy przechowujcego dwa identyfikatory uytkownikw chcemy
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
393
znale imiona uytkownikw ukrywajcych si pod tymi identyfikatorami. Poczymy zatem
tabel znajomosci z dwiema kopiami tabeli uzytkownicy dwukrotnie, raz wedug pola
Znajomy_1, drugi raz wedug pola Znajomy_2:

Teraz ju wystarczy wyfiltrowa wiersze, w ktrych obaj przyczeni uytkownicy maj tak
samo na imi.

SELECT Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Uzytkownicy.Kraj,


Uzytkownicy_1.Imie, Uzytkownicy_1.Nazwisko, Uzytkownicy_1.Kraj
FROM (Znajomosci INNER JOIN Uzytkownicy ON Znajomosci.Znajomy_1 =
Uzytkownicy.ID_uzytkownika) INNER JOIN Uzytkownicy AS Uzytkownicy_1 ON
Znajomosci.Znajomy_2 = Uzytkownicy_1.ID_uzytkownika
WHERE (((Uzytkownicy.Imie)=[Uzytkownicy_1].[Imie]));

102.3.
Oczywiste jest, e naley poczy tabele uzytkownicy oraz zdjecia po wsplnym polu
przechowujcym ID uytkownika. Powsta zczon tabel trzeba teraz zgrupowa wedug
nazwy kraju, liczc dla kadej nazwy liczb wierszy:

SELECT TOP 10 Uzytkownicy.Kraj, Count(Zdjecia.ID_zdjecia) AS Liczba_Zdjec


FROM Uzytkownicy INNER JOIN Zdjecia
ON Uzytkownicy.ID_uzytkownika = Zdjecia.Uzytkownik
GROUP BY Uzytkownicy.Kraj
ORDER BY Count(Zdjecia.ID_zdjecia) DESC;
Na kocu sortujemy tabel wedug liczby zdj i ograniczamy wyniki do pierwszych
dziesiciu (klauzula TOP lub LIMIT albo odpowiednia opcja w MS Access), zgodnie z
poleceniem zadania.

102.4.
Znowu czymy tabele uzytkownicy oraz zdjecia. Tym razem jednak chcemy dla kadego
zdjcia obliczy liczb pikseli, czyli jego szeroko pomnoon przez wysoko:
394 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

SELECT TOP 1 Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Zdjecia.Wysokosc,


Zdjecia.Szerokosc
FROM Uzytkownicy INNER JOIN Zdjecia
ON Uzytkownicy.ID_uzytkownika = Zdjecia.Uzytkownik
ORDER BY Zdjecia.[Szerokosc]*[Wysokosc] DESC;
Zwracamy tylko jeden, najlepszy wynik.

102.5.
Zadanie to wymaga nieco wicej pracy ni poprzednie. Jednym z moliwych sposobw
rozwizania go jest znalezienie dla kadego uytkownika, najwczeniej dodanego zdjcia oraz
najwczeniej nawizanej znajomoci. Bd nas interesowali ci uytkownicy, dla ktrych data
pierwszego zdjcia jest wczeniejsza (pierwsze zdjcie pojawio si wczeniej ni pierwsza
znajomo).
Najwczeniejsz dat zdjcia wyznaczamy, czc tabel uzytkownicy z tabel zdjecia,
grupujc po ID_uzytkownika i biorc minimum kadej grupy.
Najwczeniejsz zawart znajomo mona zrobi podobnie, napotykamy tutaj na dodatkow
trudno czy poczy pole ID_uzytkownika z polem Znajomy_1 czy Znajomy_2. Przy
kadym z tych pocze dostaniemy inn najwczeniejsz dat jedna bdzie odpowiadaa
pierwszej znajomoci, w ktrej uytkownik wystpuje jako Znajomy_1, druga za
wystpowaniu jako Znajomy_2. Potrzebujemy wic obu tych dat, a szuka bdziemy tych
uytkownikw, ktrzy dodali zdjcie wczeniej ni wypada ktrakolwiek z nich. Poczmy
uytkownikw ze znajomymi i zdjciami w jednej kwerendzie:

Pomocnicza kwerenda, ktra liczy trzy najwczeniejsze daty (dat dodania zdjcia jako
Data_pierwszego_zdjecia, zawarcia znajomoci jako Data_zawarcia_1 oraz
Data_zawarcia_2), wyglda moe tak:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
395

SELECT Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Uzytkownicy.Kraj,


Min(Zdjecia.Data_dodania) AS Data_pierwszego_zdjecia,
Min(Znajomosci.Data_znajomosci) AS Data_zawarcia_1,
Min(Znajomosci_1.Data_znajomosci) AS Data_zawarcia_2
FROM ((Znajomosci INNER JOIN Uzytkownicy ON Znajomosci.Znajomy_1 =
Uzytkownicy.ID_uzytkownika) INNER JOIN Znajomosci AS Znajomosci_1 ON
Uzytkownicy.ID_uzytkownika = Znajomosci_1.Znajomy_2) INNER JOIN Zdjecia ON
Uzytkownicy.ID_uzytkownika = Zdjecia.Uzytkownik
GROUP BY Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Uzytkownicy.Kraj,
Uzytkownicy.ID_uzytkownika;
Przy okazji od razu filtrujemy wyniki zapytania, aby znale tylko mczyzn, a dla kadego
z nich podajemy imi, nazwisko oraz kraj. T pomocnicz kwerend nazwiemy e_pom i
bdziemy jej uywa do dalszych operacji.
Teraz wystarczy wyfiltrowa tych uytkownikw, dla ktrych Data_pierwszego_zdjecia jest
wczeniejsza zarwno od Data_zawarcia_1, jak i Data_zawarcia_2:

SELECT "ID_uzytkownika", "Imie", "Nazwisko", "Kraj" FROM "e_pom" WHERE


"Data_zawarcia_1" > "Data_pierwszego_zdjecia"AND "Data_zawarcia_2" >
"Data_pierwszego_zdjecia" ORDER BY "Nazwisko" ASC
Na tym w zasadzie moglibymy zakoczy omwienie, ale zwrmy uwag na pewn
subtelno: mogoby si jednak zdarzy, e ten sposb nie daby dobrej odpowiedzi! W
podanych plikach wejciowych taka sytuacja wprawdzie nie wystpuje, ale wyobramy sobie,
e ktry uytkownik nigdy nie wystpuje w tabeli znajomosci jako Znajomy_2, a zawsze
jako Znajomy_1. Przy domylnym sposobie poczenia (wewntrznym) nie pojawiby si on
w ogle w kwerendzie e_pom.
eby zadanie zostao rozwizane prawidowo, poczenia w pierwszej kwerendzie musiayby
by poczeniami zewntrznymi, przy ktrych kady uytkownik pojawia si jako rekord
w kwerendzie, by moe z pust wartoci w niektrych kolumnach (w tym wypadku na
przykad Data_zawarcia_2).

(wynik kwerendy dla nieco innych danych wejciowych, w ktrych Sebastian Quispe nie wystpuje jako
Znajomy_2)
396 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

SELECT Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Uzytkownicy.Kraj,


Min(Zdjecia.Data_dodania) AS Data_pierwszego_zdjecia,
Min(Znajomosci.Data_znajomosci) AS Data_zawarcia_1,
Min(Znajomosci_1.Data_znajomosci) AS Data_zawarcia_2
FROM ((Znajomosci RIGHT JOIN Uzytkownicy ON Znajomosci.Znajomy_1 =
Uzytkownicy.ID_uzytkownika) LEFT JOIN Znajomosci AS Znajomosci_1 ON
Uzytkownicy.ID_uzytkownika = Znajomosci_1.Znajomy_2) INNER JOIN Zdjecia ON
Uzytkownicy.ID_uzytkownika = Zdjecia.Uzytkownik
GROUP BY Uzytkownicy.Imie, Uzytkownicy.Nazwisko, Uzytkownicy.Kraj,
Uzytkownicy.ID_uzytkownika, Uzytkownicy.Plec
HAVING (((Uzytkownicy.Plec)='M'));
Trzeba t moliwo uwzgldni te w drugiej kwerendzie:

SELECT e_pom.Imie, e_pom.Nazwisko, e_pom.Kraj, e_pom.Data_zawarcia_1,


e_pom.Data_zawarcia_2
FROM e_pom
WHERE
(e_pom.Data_zawarcia_1>[Data_pierwszego_zdjecia] OR e_pom.Data_zawarcia_1 IS
NULL) AND
(e_pom.Data_zawarcia_2>[Data_pierwszego_zdjecia] OR e_pom.Data_zawarcia_2 IS
NULL)
ORDER BY e_pom.Nazwisko;

Zadanie 103.
Po wczytaniu danych do tabel oraz ustaleniu zwizkw midzy tabelami (Relacje) moemy
przystpi do rozwizania zadania.

103.1.
W zadaniu tym naley przygotowa odpowied na pytanie, jakie jest nazwisko, imi oraz rok
urodzenia pacjenta, ktremu wykonano najwicej zdj RTG. Naley poda te liczb zdj
tego pacjenta. Aby przygotowa stosown kwerend, potrzebujemy pl Nazwisko i Imie
z tabeli pacjenci (grupujemy wedug tych pl) oraz pola Id_badanie z tabeli
badania (stosujemy funkcj Policz).
Niezbdne w kwerendzie jest take pole Rok_ur, niestety nie ma takiego pola w adnej
z tabel. Moemy jednak to pole stworzy, a jego zawarto wyliczy, korzystajc z zawartej
w treci zadania wskazwki, e dwie pierwsze cyfry numeru PESEL to rok urodzenia.
W tym celu konstruujemy zawarto pola, korzystajc z funkcji Left(). Argumentem
funkcji jest PESEL, z ktrego pobieramy 2 pierwsze znaki.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
397

Musimy take pamita, aby pole Id_badanie posortowa malejco. Wwczas na grze
tabeli znajdzie si pacjent, ktremu wykonano najwicej bada. Jako wynik moemy zwrci
jeden rekord, zaznaczajc w konfiguracji kwerendy (w widoku projektu kwerendy, karta
Projektowanie):

103.2
W zadaniu tym tworzymy zestawienie, zawierajce informacje o sumie kosztw zdj RTG
poniesionych przez poszczeglne oddziay NFZ. Przygotowujemy kwerend podsumowujc
i wybieramy do niej pola NFZ z tabeli pacjenci (grupujemy wedug tego pola) oraz pole
Cena_Badania z tabeli RTG (wybierajc dla tego pola funkcj Suma).
398 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zestawienie sortujemy malejco ze wzgldu na sum kosztw.

103.3.
Zadanie to podzielono na 2 czci.
Podpunkt a)
W tej czci naley poda nazw zdjcia RTG, ktre wykonano najwicej razy,
i odpowiedzie te, ile razy wykonano dane badanie. Przygotowujemy kwerend
podsumowujc, wybierajc do niej pola Nazwa_Badania z tabeli Badania (grupujemy
wedug tego pola) oraz pole Id_badanie z tabeli Badania, dla ktrego wybieramy
funkcj Policz. Aby kwerenda zwracaa odpowiedni wynik (tj. nazw zdjcia RTG, ktre
wykonano najwicej razy), trzeba wyniki posortowa malejco wedug pola
Cena_Badania i zwrci jeden rekord, zaznaczajc w konfiguracji kwerendy:

Podpunkt b)
W tej czci trzeba poda nazw zdjcia RTG, ktre wykonano u najwikszej liczby
pacjentw, oraz liczb pacjentw, u ktrych wykonano dane badanie. Zadanie rozwizujemy
dwuetapowo.
Najpierw przygotowujemy kwerend okrelajc, ktre badanie wykonywano najczciej. To
kwerenda podsumowujca. Wybieramy do niej pola: PESEL z tabeli Pacjenci,
Nazwa_Badania z tabeli RTG (grupujemy wedug tych pl) oraz Id_Badanie z tabeli
RTG (wartoci w tym polu zliczamy, stosujc funkcj Policz).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
399

Na bazie tak przygotowanej kwerendy moemy ju ustali, ktre badanie wykonywano


najczciej. Wystarczy teraz przygotowa kwerend podsumowujc na bazie kwerendy
pomocniczej. Wybieramy z niej pola Nazwa_badania oraz PESEL, grupujc wedug
pierwszego pola i zliczajc wystpienia w drugim polu.

Pamitamy o sortowaniu malejco pola zliczajcego PESEL-e i wywietleniu 1 rekordu,


zaznaczajc w konfiguracji kwerendy:

103.4.
W zadaniu mamy poda liczb kobiet oraz liczb mczyzn, ktrym wykonano zdjcia RTG.
Wystarczy przygotowa kwerend podsumowujc opart na tabeli Pacjenci.
400 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Z tabeli wybieramy pola Plec (grupujemy wedug tego pola) i zliczamy numery PESEL
wybierajc funkcj Policz dla pola PESEL.

103.5.
W zadaniu tym naley utworzy zestawienie zawierajce numer dziesiciolecia oraz liczb
pacjentw urodzonych w tym dziesicioleciu dla okresu od roku 1900 do 1999. Pamitajc, e
pierwsze dziesiciolecie to okres 19001909, a drugie dziesiciolecie to okres 19101919
wystarczy wzi pod uwag pierwsz liczb z numeru PESEL pacjenta. Tworzymy pole
Nr_dziesiciolecia i korzystamy z funkcji
Nr_dziesieciolecia: Left([Pacjenci]![PESEL];1)+1
W drugim poluzliczamy dla danego dziesiciolecia numery PESEL pacjentw.

Zadanie 104.
W tabeli Leki_refundowane zapisano zestawienie lekw, ktre s czciowo
refundowane przez fundusz zdrowia; nie wszystkie leki z tego zestawienia byy wypisywane
przez lekarzy przychodni w kontrolowanym okresie. Kluczem gwnym tej tabeli jest pole
Kod_leku. Leki nale do rnych grup, grupy lekw zostay wymienione w tabeli
Grupy_lekow, kluczem gwnym tabeli jest Id_grupy. Jedna recepta moe zawiera
maksymalnie pi lekw. Jeli na jednej recepcie wypisano kilka lekw, to identyfikatory
recept w tabeli Recepty powtarzaj si, dlatego pole Id_recepty nie moe by kluczem
w tej tabeli.
Tabele poczone s relacjami jeden do wielu:

104.1.
W pierwszym zadaniu naley dla kadego dnia policzy liczb recept o niepowtarzajcych si
identyfikatorach. Aby wyeliminowa powtarzajce si identyfikatory, mona skonstruowa
kwerend pomocnicz:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
401

SELECT Recepty.Data, Recepty.ID_recepty


FROM Recepty
GROUP BY Recepty.Data, Recepty.ID_recepty;
w ktrej usuniemy je poprzez grupowanie. Dalej, korzystajc z tej kwerendy, policzymy dla
kadego dnia liczb niepowtarzajcych si identyfikatorw:

SELECT pomzad 1.Data, Count(pomzad 1.ID_recepty) AS PoliczOfID_recepty


FROM pomzad 1
GROUP BY pomzad 1.Data
ORDER BY Count(pomzad 1.ID_recepty) DESC;
Inny sposb postpowania to skorzystanie z klauzuli SELECT DISTINCT (wybierz
niepowtarzajce si identyfikatory recept).
Zapytanie w jzyku SQL:
SELECT r.Data, count(*)
FROM (SELECT DISTINCT recepty.ID, recepty.Data FROM recepty) AS r
GROUP BY r.Data
ORDER BY count(*) DESC
LIMIT 1

104.2.
Konstruujc odpowied do zadania, wykorzystamy dane z dwch tabel: Grupy_lekw
i Leki_refundowane. Dla kadej grupy lekw policzymy wszystkie leki z tej grupy przy
zaoeniu, e cena refundowana wynosi 0 z. Ponadto naley wybra grup, w ktrej znajduje
si najwicej lekw refundowanych w 100%, dlatego zliczone kody lekw naley posortowa
malejco. Pierwszy wiersz w zestawieniu stanowi odpowied do zadania.

Zapytanie w jzyku SQL:


SELECT grupy_lekow.nazwa_grupy
402 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

FROM leki_refundowane
JOIN grupy_lekow ON grupy_lekowId_grupy = leki_refundowane.Id_grupy
WHERE leki_refundowane.Cena_refundowana = 0
GROUP BY grupy_lekow.Nazwa_grupy
ORDER BY COUNT(*)
LIMIT 1

104.3.
Aby poda dla kadego miesica liczb wydanych recept, mona skorzysta z kwerendy
pomocniczej do zadania pierwszego (ktra usuwa powtarzajce si identyfikatory recept). Za
pomoc funkcji MONTH wyodrbniamy z daty miesic. Nastpnie dla kadego miesica
zliczamy liczb niepowtarzajcych si identyfikatorw recept.

W drugiej kwerendzie obliczymy sumaryczn warto wszystkich lekw z recept wypisanych


w kolejnych miesicach. Dokonujemy grupowania wedug miesicy, za cen detaliczn
wypisanych lekw sumujemy.

Zapytanie w jzyku SQL:


SELECT w.mc, COUNT(*), SUM(w.sumw)
FROM ( SELECT recepty.ID_recepty, MONTH(recepty.Data) AS mc,
SUM(leki_refundowana.Cena_detaliczna) AS sumw FROM recepty join leki_refundowane
ON leki_refundowane.Kod_leku = recepty.Kod_leku GROUP BY recepta.id_recepty,
MONTH(recepty.Data)) AS w
GROUP BY w.mc

104.4.
Aby poda cen detaliczn najdroszego leku, na ktry wypisano recept, naley wzi pod
uwag wszystkie trzy tabele poczone ze sob relacjami.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
403
Poczenie z tabel Recepty zapewnia nam wybranie leku wypisanego (nie dowolnego).
Z tabeli Leki_refundowane wybieramy cen detaliczn (najwiksz), a z tabeli
Grupy_lekw wybieramy nazw grupy, do jakiej naley najdroszy lek.

Zapytanie w jzyku SQL:


SELECT leki_refundowane.Cena_detaliczna, grupy_lekow.Nazwa_grupy
FROM leki_refundowane
JOIN grupy_lekow ON grupy_lekow.Id_grupy = leki_refundowane.Id_grupy
JOIN recepty ON recepty.Kod_leku = leki_refundowane.Kod_leku
ORDER BY leki_refundowane.Cena_detaliczna DESC
LIMIT 1

104.5.
Dla kadej recepty (rozrniane s one po identyfikatorach) wybieramy dat jej wystawienia
i obliczamy sum z wyraenia Cena_detalicznaCena_refundowana. Nastpnie
zakadamy warunek, ktry wybiera sumy wysze ni 2000. Na koniec zestawienie naley
posortowa rosnco wedug dat.

Zapytanie w jzyku SQL:


404 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

SELECT recepty.Id_recepty, recepty.Data, SUM(leki_refundowane.Cena_detaliczna


leki_refundowane.Cena_refundowana)
FROM recepty
JOIN leki_refundowane ON leki_refundowane.Kod_leku = recepty.Kod_leku
GROUP BY recepty.Id_recepty, recepty.Data
HAVING SUM (leki_refundowane.Cena_detaliczna
leki_refundowane.Cena_refundowana) > 2000
ORDER BY recepty.Data

Zadanie 105.
Zadanie rozwiemy z pomoc MS Access. Zawartoci plikw osoby.txt,
zamowienia.txt i rosliny.txt wczytamy do tabel Osoby, Zamowienia i
Rosliny, ktre poczymy odpowiednimi relacjami (szczegy pozostawiamy
czytelnikowi).

105.1.
Do rozwizania zadania wykorzystamy dane ze wszystkich trzech tabel:
Id_klienta z tabeli Osoby, niezbdne dla zliczenia, ile faktur otrzymali
poszczeglni klienci,
dat zamwienia z tabeli Zamowienia, aby pogrupowa zamwienia wedug dat
i uzyska informacj o liczbie wszystkich wystawionych faktur,
liczb sadzonek z tabeli Zamowienia i cen sadzonki z tabeli Rosliny, aby
obliczy warto poszczeglnych zamwie.
Zadanie rozwiemy w trzech krokach. W pierwszym kroku utworzymy pomocnicz
kwerend o nazwie wartoci pozycji zamowien, przy pomocy ktrej obliczymy
wartoci poszczeglnych zamwie. W kwerendzie tej pogrupujemy wiersze wedug
identyfikatorw klientw, dat, liczb sadzonek, cen oraz dodamy now kolumn z danymi
dotyczcymi wartoci kadej pozycji zamwienia. Warto pozycji zamwienia obliczymy
jako iloczyn liczby zamwionych sadzonek i ich ceny.

W kroku drugim utworzymy kwerend zadanie 1a, w ktrej zsumujemy wartoci pozycji
zamwienia dla kadego klienta i kadego dnia. W ten sposb dowiemy si, ile wystawiono
faktur i jakie byy ich wartoci. Jako rdo danych wskaemy kwerend pomocnicz
wartoci pozycji zamowien. Wyniki posortujemy malejco wedug kolumny
Wartosc, aby atwo mona byo odczyta, jaka jest najwiksza warto faktury. Liczba
wierszy w tabeli z wynikami kwerendy zadanie 1a stanowi odpowied na pytanie o liczb
wystawionych faktur.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
405

W kroku trzecim skorzystamy z wynikw kwerendy zadanie 1a. Utworzymy kwerend


zadanie 1b, przy pomocy ktrej zliczymy, ile faktur otrzyma kady z klientw, i
wybierzemy tych, ktrzy otrzymali wicej ni jedn faktur. Liczba wierszy zestawienia
utworzonego przez kwerend zadanie 1b jest odpowiedzi na pytanie, ilu klientw
otrzymao wicej ni jedn faktur (faktura dla kadego klienta wystawiana jest na
zakoczenie dnia za wszystkie dokonane przez niego zamwienia, zatem rne daty
oznaczaj rne faktury). Na poniszym rysunku widzimy, e na dole zestawienia
wywietlana jest informacja o liczbie wierszy i numerze wiersza biecego: Rekord: 1 z 33.

105.2.
W rozwizaniu wykorzystamy dane:
nazw miasta z tabeli Osoby,
liczb porzdkow z tabeli Zamowienia, aby zliczy liczb pozycji,
406 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

okres kwitnienia z tabeli Rosliny, aby wskaza roliny, ktrych dotycz


zamwienia.
Utworzymy kwerend, w ktrej pogrupujemy wiersze wedug nazwy miasta, zliczymy liczb
pozycji i wybierzemy roliny kwitnce tylko w okresie VII-VIII.

105.3.
Do utworzenia wymaganego w zadaniu zestawienia potrzebujemy nastpujcych danych:
nazwiska i imienia z tabeli Osoby,
liczby sadzonek z tabeli Zamowienia,
nazwy roliny oraz koloru kwiatw z tabeli Rosliny.
Utworzymy kwerend wedug poniszego projektu, zaznaczajc w kryteriach, e interesuje
nas liczba sadzonek wiksza ni 10 i kolor kwiatw bialo-liliowe.

105.4.
Aby odpowiedzie na pytanie postawione w zadaniu, naley ustali odpowiedni rodzaj
zczenia dla tabel Rosliny i Zamowienia (patrz poniszy rysunek). Szukamy rolin,
ktre nie zostay uwzgldnione w adnym zamwieniu, czyli takich wierszy, dla ktrych
identyfikator roliny w tabeli Rosliny nie ma odpowiednika w tabeli Zamowienia.
Zmieniamy wasnoci sprzenia tabel tak, jak pokazano na rysunku, i w kwerendzie
wskazujemy, e interesuj nas wiersze tabeli Rosliny, dla ktrych w tabeli Zamowienia
wartoci identyfikatora s nieokrelone (Null).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
407

105.5.
W rozwizaniu zadania pogrupujemy wiersze tabeli Rosliny (zczonej przez pole
Id_rosliny z tabel Zamowienia) wedug rozmiaru doniczek i w tabeli Zamowienia
zliczymy pozycje odpowiadajce zamwieniom rolin w poszczeglnych rozmiarach
doniczek.

Zadanie 106.
Importujemy dane z plikw tekstowych do tabel.
z pliku obserwacje.txt tworzymy tabel Obserwacje, w ktrej pola
poczatek i koniec s typu Data/Godzina, pola ID_gatunku,
ID_lokalizacji i liczebnosc s liczbami cakowitymi, a pole zachowanie
jest tekstowe,
z pliku gatunki.txt tworzymy tabel Gatunki, w ktrej pole ID_gatunku jest
liczb cakowit, a pozostae pola s tekstowe.
z pliku lokalizacje.txt tworzymy tabel Lokalizacje, w ktrej pole
ID_lokalizacji jest liczb cakowit, a pozostae pola s tekstowe.
Jako pola kluczowe w tabelach wybieramy:
w tabeli Gatunki: pole ID_gatunku,
w tabeli Lokalizacje: pole ID_lokalizacji.
W tabeli Obserwacje zgadzamy si na utworzenie dodatkowego pola
Identyfikator, ktre bdzie jednoczenie przechowywa numer rekordu w tabeli.
W programie Microsoft Access moemy od razu ustawi i zapisa relacje tabel:
pole ID_lokalizacji poczy tabele: Lokalizacje i Obserwcje;
408 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

pole ID_gatunku poczy tabele: Gatunki i Obserwcje.

106.1
Naley poda nazwy zwyczajowe trzech gatunkw najczciej obserwowanych ptakw.

Dla kadego gatunku bdziemy zlicza identyfikatory obserwacji, ktre dotyczyy tego
gatunku. Niech kwerenda wybierze nam pola: Identyfikator z tabeli Obserwacje i
nazwa_zwyczajowa z tabeli: Gatunki. Wybrane rekordy zgrupujemy wedug nazwy
zwyczajowej, a do pola Identyfikator zastosujemy funkcj Policz.
Posortujemy wyniki malejco wedug licznika identyfikatorw, aby najczciej obserwowane
gatunki pojawiy si na pocztku zestawienia.

106.2.
Dla kadego miesica naley poda czn liczb wszystkich zaobserwowanych osobnikw
remiza. Do wyuskania numeru miesica z penej daty, z pola poczatek lub koniec z
tabeli Obserwacje, bdzie nam potrzebna funkcja MONTH.
Wykorzystamy tabele Obserwacje i Gatunki. W kwerendzie umiecimy pola:
nazwa_zwyczajowa i liczebnosc. Dodamy pole obliczane Miesic. Dla nazwy
zwyczajowej ustawimy kryterium remiz. Wyniki zgrupujemy wedug pola Miesic, a do
pola liczebnosc zastosujemy funkcj Suma.

106.3.
Naley wybra gatunki krukowate (czyli takie, ktrych aciska nazwa zawiera sowo
Corvus), zaobserwowane na terenach miejskich. Dla kadego z tych gatunkw naley
poda nazw zwyczajow i liczb przeprowadzonych obserwacji.
Utworzymy kwerend wybierajc pola nazwa_zwyczajowa i nazwa_lacinska
z tabeli Gatunki oraz lokalizacja i opis z tabeli Obserwacje.
Dla pola nazwa_lacinska ustawimy kryterium: zawiera Corvus, a dla pola opis
zawiera miasto.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
409

Na wybranych rekordach wykonamy operacj grupowania wedug nazwy zwyczajowej, a do


pola lokalizacja zastosujemy funkcj Policz.

106.4.
Dla kadej grupy obserwacji naley wyznaczy czas jej trwania w minutach oraz czn
liczebno zaobserwowanych osobnikw, a nastpnie poda:
a) lokalizacj dla grupy obserwacji trwajcej najduej, dat, czas trwania obserwacji
w minutach i czn liczebno zaobserwowanych osobnikw;
b) dat, lokalizacj i sprawno grupy obserwacji o najwikszej sprawnoci, gdzie
sprawno jest stosunkiem liczebnoci obserwacji w grupie do czasu trwania
obserwacji w minutach.
Do obliczenia czasu trwania kadej obserwacji wykorzystamy funkcj
DATEDIFF(interwa; pocztek; koniec)

Interwa w minutach w programie Microsoft Access oznacza si przez n.


a) Niech kwerenda wybiera pola: lokalizacja, poczatek i liczebno. Dodamy
pole obliczane, ktre wyznaczy czas obserwacji jako rnic czasw: pocztku i koca
obserwacji.
Zgrupujemy lokalizacje, daty i obliczony czas, za do pola liczebno zastosujemy funkcj
Suma. Zestawienie posortujemy malejco wedug czasu trwania obserwacji, aby rekord
z najduszym czasem pojawi si jako pierwszy.

b) Wykorzystamy wyniki poprzedniej kwerendy. Wybierzemy z niej pola: lokalizacja i data.


Dodamy nowe pole obliczane sprawnosc, ktre zwrci sprawno obserwacji jako
iloraz: liczba obserwowanych osobnikw podzielona przez czas obserwacji. Posortujemy
zestawienie malejco wedug pola sprawnosc.

W ustawieniach waciwoci pl kwerendy wybierzemy odpowiedni format:


410 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

pole data sformatujemy jako dat krtk, aby pokazywao jedynie dat obserwacji,
bez godziny i minuty;
dla pola sprawno ustawimy format staoprzecinkowy z liczb cyfr dziesitnych 3.

106.5.
Naley poda liczb wszystkich zaobserwowanych osobnikw urawia, a nastpnie wykona
zestawienie, w ktrym dla poszczeglnych powiatw podamy liczb osobnikw urawia
zaobserwowanych na ich terenie, z podziaem na rne zachowania obserwowanego ptaka.
a) Aby zliczy wszystkie zaobserwowane osobniki urawia, wybierzemy te obserwacje,
w ktrych wystpuje nazwa zwyczajowa zuraw, a nastpnie zsumujemy wartoci
w polu liczebnosc wybranych obserwacji.

b) Druga cz zadania wymaga ponadto uwzgldnienia informacji o nazwie powiatu


i zachowaniu obserwowanego ptaka. Rozszerzymy poprzedni kwerend o dodatkowe
pola: powiat i zachowanie.

Nastpnie przedstawimy powysze dane w formie 2-wymiarowej tabeli.


Wykonamy kwerend krzyow, umieszczajc nazw powiatu w nagwkach
wierszy, zachowanie w nagwkach kolumn, a sum liczebnoci jako warto
pola danych.

Zamiast tworzenia kwerendy krzyowej mona wyeksportowa wyniki do arkusza


kalkulacyjnego i tam wstawi tabel przestawn o takim samym ukadzie kolumn
i wierszy.

Zadanie 107.
Po wczytaniu danych do tabel oraz ustaleniu zwizkw midzy tabelami (Relacje) mona
przystpi do rozwizania zadania.

107.1.
W zadaniu naley zauway, e interesuje nas liczba dni, a nie liczba wylotw do miejsc
docelowych. Zatem jeli np. w danym dniu odbyy si 3 wyloty przykadowo do Barcelony, to
taki dzie powinien by zliczony jeden raz, a nie 3 razy. W jzyku SQL mona skorzysta
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
411
z funkcji COUNT DISTINCT(), jednak MS Access nie daje takiej moliwoci. Zadanie
mona rozwiza, projektujc kwerend pomocnicz, w ktrej wybieramy miejsca docelowe
oraz daty, kade z pl grupujc. Dziki temu dla kadego miejsca docelowego mamy ustalon
dat wylotu (bez powtrze). Nastpnie tworzymy waciw kwerend, dla ktrej rdem
danych jest kwerenda pomocnicza. Z niej wybieramy miejsca docelowe. Dla kadego miejsca
zliczamy liczb dni. Poprawny wynik otrzymamy, wykonujc sortowanie liczby dni i
wybierajc trzy pierwsze rekordy z uzyskanej listy.

107.2.
W zadaniu zliczamy dla kadego pasaera (imi, nazwisko), ile kupi on biletw. Nastpnie
w kryteriach pola id_pasazera dla tabeli Bilety ustawiamy, e liczba biletw ma by
wiksza od 15.
412 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

107.3.
Do zbudowania zapytania potrzebujemy wszystkich tabel. Do zestawienia potrzebujemy
numeru miesica, dlatego skonstruujemy wyraenie, ktre z daty wylotu uzyska miesic.

Pole to grupujemy. Nastpnie z tabeli Bilety wybieramy pole id_pasazera, w ktrym


stosujemy funkcj Policz. Z tabeli Pasazerowie wybieramy pole miejscowosc, dla
ktrego w kryteriach ustawiamy Wroclaw.

107.4.
W tym zadaniu wystarczy zwyka kwerenda wybierajca. Wane s kryteria: dla pola
godzina ustawiamy, e jest to godzina midzy 8 a 10 (Between 8:00 And 10:00), a
dla pola miejsce docelowe ustawiamy, e jest to dowolne lotnisko w Londynie, (w nazwie
wystpuje sowo Londyn i dalej dowolny cig znakw Like "Londyn*").
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
413

107.5.
Zadanie wymaga odnalezienia numerw lotw, ktre wystpuj w tabeli Loty, ale nie
wystpuj w tabeli Bilety. Mona to zrobi na 2 sposoby. Pierwszym z nich jest napisanie
prostego zapytania w SQL:
SELECT Loty.id_lotu, Loty.[miejsce docelowe]
FROM Loty
WHERE (((Loty.id_lotu)
NOT IN (SELECT Bilety.id_lotu FROM Bilety)));
Podobny rezultat mona osign, budujc kwerend, w ktrej w kryteriach pola id_lotu
dla tabeli Loty wpiszemy NOT IN (SELECT Bilety.id_lotu FROM Bilety)) .

Drugi sposb to zastosowanie zczenia tabel RIGHT JOIN(). We waciwociach


sprzenia uwzgldniamy wszystkie rekordy z tabeli Loty i tylko te rekordy z tabeli
414 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Bilety, dla ktrych pola sprzone s rwne. eby uzyska rozwizanie zadania, wystarczy
do kwerendy wybra pole id_lotu z tabeli Bilety, a w kryteriach wpisa Is Null.

108.1.
Aby obliczy sumaryczn dugo drg wszystkich kategorii tworzymy kwerend, ktra
korzystajc z informacji z tabeli drogi bdzie sumowa wartoci pola dugo
wszystkich wierszy tabeli.
Odpowiednie zapytanie w jzyku SQL ma posta:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
415
SELECT Sum(Drogi.dlugosc) AS [dugo cakowita] FROM Drogi;

108.2.
Aby znale nazw i dugo
najduszej drogi, przy ktrej
nie ley adna stacja
benzynowa, wykonujemy
zestawienie, korzystajc z tabel
drogi i stacje. W zwizku
z tym, e szukamy tych
rekordw, w ktrych po
poczeniu tabel bdzie
brakowao informacji z tabeli
stacje, to zmieniamy
waciwoci sprzenia tych
tabel na niesymetryczne (patrz rysunek). Uwzgldniamy zatem wszystkie elementy z tabeli
drogi i do nich dopasowujemy elementy z tabeli stacje.
Nastpnie w kwerendzie
wybieramy interesujce nas pola
nazwa i dlugosc z tabeli
drogi oraz identyfikatory stacji
(pole id_stacji) z tabeli stacje.
Poniewa szukamy tych drg, przy
ktrych nie ma adnej stacji,
wybieramy takie wpisy, dla ktrych
brakuje id_stacji (pole ma
warto NULL). Aby wybra
najdusz z tak znalezionych drg,
sortujemy cao malejco wedug
wartoci pola dlugosc.
W jzyku SQL zapytanie wyglda
nastpujco:
SELECT Drogi.nazwa, Drogi.dlugosc
FROM Drogi LEFT JOIN Stacje
ON Drogi.id_drogi=Stacje.id_drogi
WHERE ((Stacje.id_stacji) IS NULL)
ORDER BY Drogi.dlugosc DESC;

108.3.
Aby znale drog, przy ktrej odlego midzy stacjami benzynowymi jest najmniejsza,
wykonujemy zestawienie podobne jak w poprzednim zadaniu. Tym razem powizanie
pomidzy tabelami drogi i stacje pozostaje symetryczne (uwzgldniamy rwne wartoci
z obu tabel). W zestawieniu uwzgldniamy pola: id_drogi, nazwa i dlugosc z tabeli
drogi (i grupujemy po tych kolumnach) oraz obliczamy redni odlego pomidzy
stacjami, uywajc formuy: dlugosc/COUNT(id_stacji).Wyniki sortujemy rosnco
wedug obliczonej redniej odlegoci midzy stacjami.
416 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Odpowiednie zapytanie w jzyku SQL wyglda nastpujco:


SELECT Drogi.id_drogi, Drogi.nazwa, Drogi.dlugosc,
dlugosc/Count(id_stacji) AS [rednia odlego]
FROM Drogi INNER JOIN Stacje
ON Drogi.id_drogi = Stacje.id_drogi
GROUP BY Drogi.id_drogi, Drogi.nazwa, Drogi.dlugosc
ORDER BY dlugosc/Count(id_stacji);

108.4.
Aby znale drogi nazywane
autostradami, ale w rzeczywistoci
nimi niebdce, wykonujemy
zestawienie, wykorzystujc tabele
drogi i kategorie. Wybieramy z
niego wiersze odnoszce si do drg,
w ktrych nazwie wystpuje sowo
autostrada (nazwa LIKE
"*autostrada*"), ale ktre maj
inn kategori (NOT kategoria =
"autostrada").
Odpowiednie zapytanie w jzyku SQL
ma posta:
SELECT Drogi.nazwa
FROM Kategorie INNER JOIN Drogi
ON Kategorie.id_kategorii = Drogi.id_kategorii
WHERE ((Drogi.nazwa LIKE "*autostrada*") AND (NOT
Kategorie.kategoria="autostrada"));

108.5.
Do wykonania zestawienia liczby stacji kadej z sieci z podziaem na kategorie drg, przy
ktrych te stacje s pooone, uywamy odpowiednio powizanych wszystkich czterech tabel.
Do zestawienia wybieramy pola: kategoria z tabeli kategorie, nazwa_sieci z
tabeli sieci oraz id_stacje z tabeli stacje. Tabela drogi jest tutaj potrzeba do
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
417
zachowania relacji pomidzy tabelami kategorie i stacje. Zestawienie grupujemy po
polach kategoria i nazwa_sieci, za pola id_stacji zliczamy.

Odpowiednie zapytanie w jzyku SQL ma posta:


SELECT Kategorie.kategoria, Sieci.nazwa_sieci,
Count(Stacje.id_stacji) AS [liczba stacji]
FROM Sieci INNER JOIN (Kategorie INNER JOIN (Drogi INNER JOIN
Stacje ON Drogi.id_drogi = Stacje.id_drogi) ON
Kategorie.id_kategorii = Drogi.id_kategorii) ON Sieci.id_sieci
= Stacje.id_sieci
GROUP BY Kategorie.kategoria, Sieci.nazwa_sieci;
Jeeli uywamy bazy danych z graficznym interfejsem uytkownika (np. MS Acccess), dla
lepszej prezentacji wyniku tworzymy na bazie tej kwerendy kwerend krzyow.

Zadanie 109.
W tabeli Sprzet_budowlany kluczem gwnym bdzie identyfikator sprztu
(ID_sprzetu), poniewa to on jednoznacznie identyfikuje urzdzenie, nawet w przypadku
kilku urzdze o identycznych nazwach. Podobna sytuacja dotyczy tabeli Klienci, ktrej
kluczem gwnym bdzie numer dowodu osobistego osoby wynajmujcej sprzt
(Nr_dowodu_osoby), poniewa kady dowd ma inny numer, bdcy kombinacj trzech
liter i szeciu cyfr, za imiona i nazwiska mog si powtarza. W przypadku tabeli Wynajem
nie ma jednej kolumny, ktra mogaby stanowi klucz gwny, mona wic utworzy klucz
zoony z kilku kolumn, ale w tym wypadku jest to zbdne, poniewa mona pozostawi
418 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

tabel bez klucza gwnego albo doda kolumn z identyfikatorem kolejnych wypoycze.
Ostatecznie otrzymujemy nastpujce relacje typu jeden do wielu:

109.1.
Aby wyszuka nazw urzdzenia wypoyczanego najczciej oraz poda liczb wypoycze
tego urzdzenia, skorzystamy z informacji zawartych w dwch tabelach:
Sprzet_budowlany i Wynajem. Dla kadego identyfikatora i nazwy sprztu policzymy
liczb identyfikatorw wypoycze sprztu (COUNT), nastpnie posortujemy malejco
wedug lizcby wypoycze (ORDER BY.. DESC) i wybierzemy pierwsz warto
(klauzula LIMIT 1).

Zapytanie w jezyku SQL:


SELECT Sprzet_budowlany.Nazwa_sprzetu, Count(*) AS liczba_urz
FROM Sprzet_budowlany INNER JOIN Wynajem ON Sprzet_budowlany.ID_sprzetu =
Wynajem.ID_sprzetu
GROUP BY Sprzet_budowlany.Nazwa_sprzetu
ORDER BY Count(*) DESC LIMIT 1;

109.2.
Konstruujc zapytanie dotyczce kwoty kaucji za wszystkie urzdzenia wypoyczone przez
Andrzeja Rydawskiego, skorzystamy si funkcji grupujcej (sumowanie wartoci w
wierszach) oraz filtra dla pola tekstowego. Wane jest, abymy podczas grupowania posuyli
si numerem dowodu (kluczem gwnym), gdy okazuje si, e mamy w bazie dwie osoby
o nazwisku Andrzej Rydawski.
Klauzula GROUP BY umoliwia podzia wierszy na kategorie na podstawie wartoci w
kolumnie (np. nr dowodu) i skorzystanie z funkcji grupujcych (sumowanie) dla rnych
numerw dowodu. Zaoenie warunku moe odby si na dwa sposoby: albo za pomoc
klauzuli HAVING, albo klauzuli WHERE.
Zapytanie z klauzul HAVING:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
419
SELECT Klienci.Imie, Klienci.Nazwisko, Sum(Sprzet_budowlany.Kaucja) AS SumaKaucji
FROM Sprzet_budowlany INNER JOIN Klienci INNER JOIN Wynajem ON
Klienci.Nr_dowodu_osoby = Wynajem.Nr_dowodu_osoby ON Sprzet_budowlany.ID_sprzetu =
Wynajem.ID_sprzetu
GROUP BY Klienci.Nr_dowodu_osoby, Klienci.Imie, Klienci.Nazwisko
HAVING Klienci.Nr_dowodu_osoby="JCK343973";
Widok projektu:

109.3
Zadanie stawia problem wyeliminowania tych samych urzdze (poprzez grupowanie), a
nastpnie wymaga zliczenia liczby rnych urzdze wypoyczanych przez te same osoby
(COUNT) i wybrania tych nazwisk, dla ktrych ta liczba jest wiksza ni 3 (HAVING).
W dalszym cigu pamitamy, e kluczem gwnym w tabeli Klienci jest numer dowodu.
Kwerenda pomocnicza (pom) eliminujca powtarzalno urzdze:
SELECT Wynajem.Nr_dowodu_osoby, Sprzet_budowlany.ID_sprzetu
FROM Sprzet_budowlany INNER JOIN Wynajem ON Sprzet_budowlany. ID_sprzetu =
Wynajem.ID_sprzetu
GROUP BY Wynajem.Nr_dowodu_osoby, Sprzet_budowlany.ID_sprzetu;
Widok projektu:

Druga kwerenda korzysta z wynikw pierwszej:


SELECT Klienci.Imie, Klienci.Nazwisko
FROM Klienci INNER JOIN pom ON Klienci.Nr_dowodu_osoby = pom.Nr_dowodu_osoby
GROUP BY Klienci.Imie, Klienci.Nazwisko, Klienci.Nr_dowodu_osoby
HAVING Count(pom.ID_sprzetu)>3;
Widok projektu:
420 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

109.4.
Aby poda liczb zarejestrowanych w bazie firmy klientw, ktrzy w 2014 roku nie
wypoyczyli adnego urzdzenia, zastosujemy pomidzy tabelami zczenie typu LEFT
JOIN. Pozwala ono na uwzgldnienie w wyniku tych danych z pierwszej tabeli, ktre nie
posiadaj swoich odpowiednikw w drugiej. Dane te zostan wzite pod uwag podczas
zczenia, ale puste miejsca zostan wypenione wartociami NULL. Kolejnym krokiem jest
wybranie rekordw z wartoci NULL.
Widok projektu:

Zapytanie z czeniem LEFT JOIN:


SELECT Klienci.Nr_dowodu_osoby, Wynajem.Identyfikator
FROM Klienci LEFT JOIN Wynajem ON Klienci.Nr_dowodu_osoby = Wynajem.Nr_dowodu_osoby
WHERE Wynajem.IdentyfikatorIsNull;

109.5
Na pocztek obliczmy przychd firmy z tytuu wypoycze urzdze budowlanych w
kolejnych miesicach 2014 r. Do wyodrbnienia numeru miesica z daty wypoyczenia
posuy funkcja MONTH. Aby obliczy kwot uzyskan za konkretne wypoyczenie, naley w
pierwszej kolejnoci wyznaczy liczb db, na ktre urzdzenie byo wynajte, a nastpnie
pomnoy j przez koszt wynajcia na jedn dob. Takie wyniki grupujemy po miesicach,
za kwoty sumujemy.
Zapytanie przyjmuje form:
SELECT Month(Wynajem.Data_wypozycz) AS Miesiac, Sum(Wynajem.Data_zwrotu-
Wynajem.Data_wypozycz)*Sprzet_budowlany.Koszt_wynajecia AS Kwota
FROM Sprzet_budowlany INNER JOIN Wynajem ON Sprzet_budowlany.ID_sprzetu =
Wynajem.ID_sprzetu
GROUP BY Month(Wynajem.Data_wypozycz);
Widok projektu:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
421
Aby ustali przychody uzyskane z transportu, policzymy liczb transportw do 10 km
wcznie i pomnoymy j przez 50 z oraz obliczymy liczb transportw powyej 10 km i
pomnoymy j przez 100 z. Nastpnie wszystkie wartoci w danym miesicu zsumujemy.
Kwerenda pomocnicza: obliczanie liczby transportw do 10 km:
SELECT Month(Wynajem.Data_wypozycz) AS Miesiac, Count(Wynajem.Dowoz_km) AS
do_10
FROM Wynajem
WHERE ((Wynajem.Dowoz_km)>0 And (Wynajem.Dowoz_km)<11)
GROUP BY Month(Wynajem.Data_wypozycz);
Widok projektu:

Kwerenda pomocnicza: obliczanie liczby transportw powyej 10 km:


SELECT Month(Wynajem.Data_wypozycz) AS Miesiac, Count(Wynajem.Dowoz_km) AS
powyzej_10
FROM Wynajem
WHERE Wynajem.Dowoz_km>10
GROUP BY Month(Wynajem.Data_wypozycz);
Widok projektu:

Kwerenda obliczajca przychd z transportu (korzysta z powyszych kwerend


pomocniczych):
SELECT pom2.Miesiac,Sum(pom1.do_10km*50+pom2.powyej_10km*100) AS
Dochod_transport
FROM pom1 INNER JOIN pom2 ON pom1.Miesiac = pom2.Miesiac
GROUP BY pom2.Miesiac;
Widok projektu:
422 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 110.
Po poprawnym wczytaniu zawartoci plikw tekstowych do tabel przystpujemy do
rozwizywania zada.

110.1.
Aby obliczy liczb miast na terenie Polski, tworzymy
kwerend, ktra na podstawie tabeli miejscowosci
policzy liczb miejscowoci o typie miasto.
Odpowiednie zapytanie w jzyku SQL ma posa:
SELECT
Count(Miejscowosci.id_miejscowosci) AS
[liczba miast]
FROM Miejscowosci
GROUP BY Miejscowosci.typ_miejscowosci
HAVING ((Miejscowosci.typ_miejscowosci)="miasto");

110.2.
Aby obliczy, ile w powiecie brodnickim jest miejscowoci kadego typu (wie, miasto,
osada itd.), wykorzystujemy w zapytaniu tabele: powiaty, gminy oraz miejscowosci.
Ustalamy, e interesuj nas miejscowoci z powiatu o nazwie brodnicki, grupujemy
wyniki po polu typ_miejscowosci i zliczamy id_miejscowosci.

Odpowiednie zapytanie w jzyku SQL wyglda nastpujco:


SELECT Miejscowosci.typ_miejscowosci,
Count(Miejscowosci.id_miejscowosci) AS liczba
FROM Powiaty INNER JOIN (Gminy INNER JOIN Miejscowosci ON
Gminy.id_gminy = Miejscowosci.id_gminy) ON Powiaty.id_powiatu
= Gminy.id_powiatu
GROUP BY Miejscowosci.typ_miejscowosci, Powiaty.nazwa_powiatu
HAVING ((Powiaty.nazwa_powiatu)="brodnicki");
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
423
110.3.
Aby znale nazwy powiatw powtarzajce si w skali kraju, wykorzystujemy w zapytaniu
tabele wojewodztwa oraz powiaty. Tabeli powiaty uywamy dwukrotnie. Pierwsze
uycie zachowuje waciw relacj z tabel wojewodztwa. Drugie (w przykadzie i
rozwizaniu SQL nazwane powiaty_1) jest powizane z pierwszym przez pole nazwa.
Umoliwi to poczenie dwch rnych powiatw o tej samej nazwie. Wyniki grupujemy
wedug nazw wojewdztw i powiatw (w tabeli powiaty bdcej w odpowiedniej relacji z
tabel wojewodztwa), za id_powiatu zliczamy z tabeli powiaty_1. Wynikiem
w tym zadaniu jest lista powiatw, w ktrych naliczylimy wicej ni jeden powiat z tabeli
powiaty_1. Wynik odpowiednio sortujemy wedug nazwy powiatu i nazwy wojewdztwa.

Odpowiednie zapytanie w jzyku SQL ma posta:


SELECT Wojewodztwa.nazwa_wojewodztwa, Powiaty.nazwa_powiatu
FROM Wojewodztwa INNER JOIN (Powiaty INNER JOIN Powiaty AS
Powiaty_1 ON Powiaty.nazwa_powiatu = Powiaty_1.nazwa_powiatu)
ON Wojewodztwa.id_wojewodztwa = Powiaty.id_wojewodztwa
GROUP BY Wojewodztwa.nazwa_wojewodztwa, Powiaty.nazwa_powiatu,
Powiaty_1.nazwa_powiatu
HAVING (Count(Powiaty_1.id_powiatu)>1)
ORDER BY Powiaty.nazwa_powiatu, Wojewodztwa.nazwa_wojewodztwa;

110.4.
Aby policzy gminy wiejskie w wojewdztwie kujawsko-pomorskim, wykorzystujemy
wszystkie cztery tabele dostpne w zadaniu. Dla wszystkich wierszy zapytania
przyrwnujemy typ miejscowoci do "miasto". Grupujemy po nazwie gminy i wybieramy
z nich jedynie te, ktre le w odpowiednim wojewdztwie. W wyniku wybieramy jedynie te
z nich, w ktrych suma porwna typw miejscowoci do "miasto" jest rc)wna 0. W
wyniku takiego zapytania otrzymujemy tabel wszystkich gmin wiejskich w wojewdztwie.
Odpowiedzi do zadania jest liczba wierszy w tej tabeli.
424 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Nastpnie odczytujemy liczb wierszy odpowiedzi albo tworzymy kolejne zapytanie,


zliczajce liczb wierszy z zaprezentowanego powyej zapytania.
Odpowiednie zapytanie w jzyku SQL, od razu zliczajce liczb gmin, wyglda nastpujco:
SELECT Count(*) AS [liczba gmin]
FROM (SELECT Gminy.nazwa_gminy, Miejscowosci.id_gminy
FROM Wojewodztwa INNER JOIN (Powiaty INNER JOIN (Gminy
INNER JOIN Miejscowosci ON Gminy.id_gminy =
Miejscowosci.id_gminy) ON Powiaty.id_powiatu =
Gminy.id_powiatu) ON Wojewodztwa.id_wojewodztwa =
Powiaty.id_wojewodztwa
GROUP BY Gminy.nazwa_gminy, Miejscowosci.id_gminy,
Wojewodztwa.nazwa_wojewodztwa
HAVING (((Wojewodztwa.nazwa_wojewodztwa)="kujawsko-
pomorskie") AND
(Sum([Miejscowosci].[typ_miejscowosci]="miasto")=0))
);

110.5.
Aby wykona zestawienie gmin miejskich o nazwach zaczynajcych si na J,
wykorzystujemy dane zawarte we wszystkich czterech tabelach. Tabel wojewodztwa i
powiaty uywamy jedynie po to, by dla kadej gminy okreli nazwy jednostek
administracyjnych wyszego rzdu. Wynik grupujemy po nazwie gminy i wybieramy te
gminy, ktrych nazwy zaczynaj si na liter J (nazwa_gminy LIKE "j*").Wyboru
gmin jedynie miejskich dokonujemy przez naoenie dwch dodatkowych warunkw:
policzenie miejscowoci na terenie gminy musi da w wyniku 1, za zsumowanie wynikd)w
warunku logicznego (typ_miejscowosci<>'miasto') musi by rwne 0.
Uwzgldnienie jedynie pierwszego z tych dwch warunkw w tym pytaniu da bdny wynik z
powodu gminy Jajkowice, na terenie ktrej ley dokadnie jedna miejscowo, ktra jednak
nie jest miastem.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
425

Odpowiednie zapytanie w jzyku SQL ma posa:


SELECT Wojewodztwa.nazwa_wojewodztwa, Powiaty.nazwa_powiatu,
Gminy.nazwa_gminy
FROM Wojewodztwa INNER JOIN (Powiaty INNER JOIN (Gminy INNER
JOIN Miejscowosci ON Gminy.id_gminy = Miejscowosci.id_gminy)
ON Powiaty.id_powiatu = Gminy.id_powiatu) ON
Wojewodztwa.id_wojewodztwa = Powiaty.id_wojewodztwa
GROUP BY Wojewodztwa.nazwa_wojewodztwa, Powiaty.nazwa_powiatu,
Gminy.nazwa_gminy
HAVING (((Gminy.nazwa_gminy) LIKE "j*") AND
(Sum([typ_miejscowosci]<>'miasto')=0) AND
(Count(Miejscowosci.id_miejscowosci)=1));

Zadanie 111.
Importujemy dane z plikw tekstowych:
z pliku malware.txt tworzymy tabel Malware, w ktrej pole data jest typu
Data/Godzina, pole ASN jest liczb cakowit, a pozostae pola s tekstowe;
z pliku asn.txt tworzymy tabel ASN, w ktrej pole ASN jest liczb cakowit,
a pozostae pola s tekstowe;
z pliku kraje.txt tworzymy tabel Kraje, w ktrej oba pola s tekstowe.
Jako pola kluczowe w tabelach wybieramy
w tabeli Asn pole ASN;
w tabeli Kraje: pole ID_kraju .
W tabeli Malware zgadzamy si na utworzenie dodatkowego pola
Identyfikator, ktre bdzie jednoczenie przechowywa w niej numer rekordu.
W programie Microsoft Access moemy od razu ustawi i zapisa relacje tabel
pole ASN poczy tabele Malware i Asn;
pole ID_kraju poczy tabele: Asn i Kraje .
426 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

111.1.
Naley wyszuka te pozycje malware, ktre w opisie zawieraj sowo phishing pisane ma
lub wielk liter, oraz poda: URL, opis i nazw kraju, skd pochodzi zagroenie.
Tworzymy kwerend wybierajc pola: kraj z tabeli Kraje, opis i URL z Malware.
Dla pola opis ustawiamy kryterium: zawiera phish. Program Microsoft Access
domylnie nie rozrnia wielkoci liter, ale rozwizujc zadanie w innym programie, trzeba
doda drugie kryterium: lub zawiera Phish.

111.2.
Naley znale pi sieci, ktre udostpniy najwicej pozycji zoliwego oprogramowania.
Dla kadej z tych sieci podamy jej nazw, ponadto: nazw kraju, w ktrym ta sie jest
zarejestrowana, liczb pozycji malware pochodzcych tej sieci i liczb rnych adresw IP,
udostpniajcych malware w tych sieciach.
Problem rozwizujemy w dwch krokach. Najpierw zliczamy pozycje malware udostpnione
z rnych adresw IP. Wybieramy pola Kraje.kraj, Asn.siec, Malware.IP i
Malware.Identyfikator. Dodajemy wiersz podsumowania. Grupujemy pola: IP,
kraj i siec, dla pola Identyfikator wybieramy funkcj Policz.

W drugim kroku wykorzystujemy wyniki pierwszej kwerendy. Dla kadej sieci zliczamy
rne adresy IP oraz sumujemy liczby identyfikatorw malware ze wszystkich adresw IP w
tej sieci. Rekordy sortujemy malejco wedug licznika identyfikatorw i zwracamy pi
pierwszych rekordw z wyniku kwerendy.

111.3.
Naley zliczy rne domeny, z ktrych pochodzi szkodliwe oprogramowanie, oraz znale te
domeny, z ktrymi skojarzony jest wicej ni jeden adres IP. Do rozwizania problemu
potrzebne s tylko dane z tabeli Malware.
Aby wyuska domen z pola URL, wykorzystamy funkcje InStr i Left jzyka SQL.
W kwerendzie umieszczamy adres IP z tabeli Malware oraz dwa pola obliczeniowe:
slash: InStr(1;[Malware]![URL];"/") wyszuka pozycj pierwszego
wystpienia znaku / w polu URL
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
427
domena: Left([Malware]![adres];[slash]-1) wyznaczy adres
internetowy domeny zawarty w polu URL, biorc z lewej strony (slash-1) znakw.
Uwaga: w programie Base funkcja wyszukujca pozycj znaku / w URL miaaby posta:
slash: LOCATE('/', Malware.URL, 1)

W kolejnym kroku wykorzystamy wyniki pierwszej kwerendy, jej pola: domena i IP.
Wykorzystujc operacj grupowania, dla kadej domeny sporzdzimy wykaz rnych
nalecych do niej adresw IP.

Wreszcie w trzecim kroku, wykorzystujc wyniki drugiej kwerendy, zliczymy rne adresy IP
w kadej domenie. Niech nowa kwerenda grupuje domeny, za do pola IP zastosuje funkcj
Policz. Kwerenda zwrci nam 687 rekordw, tyle ile jest rnych domen, podajc dla
kadej domeny liczb adresw IP z ni skojarzonych.

Sortujemy rekordy malejco wedug licznika IP, aby znale domeny skojarzone z najwiksz
liczb adresw IP. Moemy te ustawi dla licznika IP kryterium: > 1, wwczas kwerenda
zwrci tylko te rekordy, w ktrych z domen skojarzony jest wicej ni jeden adres IP.

111.4.
Naley sporzdzi zestawienie, w ktrym dla kadego miesica w roku 2014 podamy liczb
pozycji malware z podziaem na regiony.
Do rozwizania potrzebne s funkcje przetwarzania daty. Funkcja YEAR wyuska rok,
a funkcja MONTH wyuska miesic z penej daty, zwracajc jego numer z zakresu 1..12.
W projekcie kwerendy umieszczamy dwa pola danych potrzebne do zestawienia:
Asn.region i Malware.Identyfikator, ktrego wartoci bdziemy zlicza.
Tworzymy dwa pola obliczane: Miesic, ktre bdzie zawiera miesic wyuskany z daty,
oraz Rok rok wyuskany z daty.
Dla pola obliczanego Rok ustawiamy kryterium, ktre wybierze nam tylko dane z roku 2014.

Na podstawie wynikw tej kwerendy zbudujemy drug kwerend, krzyow, ktra zwrci
nam zestawienie w postaci 2-wymiarowej tablicy wynikw. W nagwku wiersza ustawimy
428 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Miesic, w nagwku kolumny region, a wartoci niech bdzie licznik identyfikatorw


(w wierszu Podsumowania dla pola Identyfikator zastosuj funkcj Policz).

Zamiast tworzy drug kwerend moglimy wyeksportowa wyniki pierwszej kwerendy do


arkusza kalkulacyjnego i tam wstawi tabel przestawn, w ktrej numer miesica byby
nagwkiem wiersza, nazwa regionu nagwkiem kolumny, a licznik identyfikatorw
wartoci.

111.5.
Dla kadego kraju, z ktrego udostpniono malware ukryte w plikach graficznych, naley
poda liczb pozycji malware z podziaem na format jpg i png.
Najpierw wybierzemy wszystkie pozycje malware, ktrych URL koczy si znakami .jpg
lub .png, przy kadym z nich umiemy informacj o jego kraju pochodzenia.

Teraz naleaoby zgrupowa rekordy wedug kraju i w kadej grupie zliczy wybrane URL.

W ten sposb dla kadego kraju dostaniemy czn liczb malware w plikach graficznych,
jednak bez podziau na formaty plikw.
Aby uzyska podzia na rne formaty plikw, trzeba doda w pierwszej kwerendzie pole
obliczane format. Umiecimy w nim 4 ostatnie znaki pola URL, ktre wytniemy za pomoc
funkcji RIGHT(tekst,liczba znakw). W tym polu ustawimy kryterium: warto
rwna .jpg lub .png

Nastpnie utworzymy kwerend krzyow, ktra zliczy wybrane pola URL dla kadego kraju,
osobno w kadym z formatw:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
429
Zadanie 112.
Najpierw importujemy dane z plikw tekstowych do tabel. W tabelach dobieramy typy pl
odpowiednie do treci danych i ustawiamy klucz gwny.
Dane z pliku towary.txt importujemy do tabeli Towary: pola nazwa i rodzaj jako
tekst, pola masa i VAT jako liczby rzeczywiste (np. o podwjnej precyzji), pole EAN jako
tekst (cho wyglda jak liczba, ma wartoci zbyt due, aby przechowa je w polu o typie
liczby cakowitej). Kluczem gwnym moe by pole EAN, poniewa jego wartoci w pliku
danych s unikatowe, jednoznacznie identyfikujce towar.
Dane z pliku producenci.txt importujemy do tabeli Producenci, wszystkie cztery
pola jako tekstowe. Kody krajw i oddziaw mogyby by liczbami cakowitymi, lecz jeli
bd tekstami, wygodniej bdzie pniej tworzy wizania z tabel Towary. Jako klucz
gwny wybieramy pole kod_oddzialu.
Dane z pliku kraje.txt importujemy do tabeli Kraje, oba pola jako tekstowe. Klucz
gwny ustawiamy w polu kod_kraju.

112.1.
Dla kadego rodzaju towaru naley wyznaczy liczb krajw, w ktrych zarejestrowani s
producenci. Pierwsze trzy cyfry kodu EAN kadego towaru s kodem kraju producenta.
Wystarczy wic wyci kod kraju z kodu EAN i zliczy rne kody krajw w ramach
kadego rodzaju towarw.
Wystarcz nam dane tylko z jednej tabeli: Towary. Tworzymy kwerend wybierajc,
umieszczamy w niej pole rodzaj i pole obliczane: kod kraju wycity z pola EAN za pomoc
funkcji LEFT.
W projekcie kwerendy dodajemy wiersz Podsumowanie i grupujemy w nim rodzaje
towarw oraz uzyskane kody krajw. Kwerenda tworzy zestawienie, w ktrym dla kadego
rodzaju towaru mamy list kodw rnych krajw. Dziki grupowaniu kodw, kady kod
kraju wystpi tylko jeden raz w grupie wybranego rodzaju towaru.

Utworzymy nastpnie drug kwerend na podstawie wynikw pierwszej. W wierszu


Podsumowanie wybierzemy grupowanie w polu rodzaj, za dla kodw krajw wybierzemy
funkcj Policz, ktra zwrci liczb kodw w kadej grupie rodzaju towarw.

112.2.
Dla wszystkich producentw obecnych na naszym rynku, a zarejestrowanych w Czechach,
naley poda nazwy ich firm oraz lokalizacje ich oddziaw.
Potrzebne s nam dane z dwch tabel: Producenci i Kraje. Tworzymy zczenie tych
tabel (relacj), czc pola kod_kraju, ktre wystpuj w obu tabelach.
430 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Do projektu kwerendy wybieramy pola: kraj z tabeli Kraje oraz nazwa_firmy


i lokalizacja z tabeli Producenci. Dla pola kraj ustawiamy kryterium Czechy.
Moemy usun zaznaczenie pola kraj w wierszu Poka, wwczas pole nie bdzie
widoczne w wynikach kwerendy, ale mimo to ustawione dla kryterium bdzie obowizywa.

112.3.
Do znalezienia minimalnej masy towaru dla kadego rodzaju towarw wystarczy kwerenda
wybierajca z wierszem Podsumowanie. Wemiemy pola: rodzaj i masa z tabeli
Towary. Pogrupujemy dane wedug rodzaju, a dla pola masa wybierzemy funkcj
Minimum.

Wypisanie nazwy towaru o minimalnej masie oraz nazwy firmy producenta jest trudniejsze.
Pierwszym krokiem do rozwizania zadania jest utworzenie kwerendy, ktra posortuje towary
wedug dwch kluczy: ze wzgldu na rodzaj, a w kadym rodzaju wedug masy tu
koniecznie rosnco.

w
Najprociej bdzie, gdy wyeksportujmy wyniki tej kwerendy do arkusza kalkulacyjnego.
W arkuszu utworzymy now kolumn o nazwie duplikat. W jej komrkach umiecimy
warto 0 jeli rodzaj towaru w biecym wierszu jest inny ni w wierszu poprzednim, lub
warto 1, jeli ten rodzaj jest taki sam. Nastpnie przy pomocy filtra wybierzemy tylko te
wiersze, ktre w polu duplikat maj warto 0.

W programie Microsoft Access moemy rozwiza problem bez uycia arkusza.


Wyniki kwerendy (sortujcej wedug dwch kluczy) zapiszemy w nowej tabeli. Aby tak
kwerend uruchomi, trzeba byo wczeniej zgodzi si na wczenie zawartoci aktywnej
przy otwieraniu pliku bazy.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
431

Nastpnie tworzymy now kwerend, wybierajc dane z tej nowej tabeli. Grupujemy
rekordy w polu rodzaj, w polu masa wybieramy, jak poprzednio, funkcj Minimum.
W polu: nazwa wybieramy funkcj Pierwszy. Wwczas po uruchomieniu kwerendy
ujrzymy dane z pierwszych rekordw poszczeglnych grup (wyodrbnionych ze wzgldu na
rodzaj), a ju wczeniej zadbalimy o to, aby w tym pierwszym rekordzie znalaz si produkt
o najmniejszej masie.

112.4.
Wyszukamy batony w opakowaniach o masie przekraczajcej 300g. Dla kadego z nich
podamy: nazw towaru, mas oraz nazw firmy i nazw kraju producenta.
W tym celu potrzebujemy danych z trzech poczonych tabel. Tabele Kraje i Producenci
zczymy za pomoc pola kod_kraju i dowiemy si, jaki jest kraj wybranego producenta.
Brakuje nam powizania tabeli Towary z tabel Producenci, aby mc pozna nazwy
firm, ktre wyprodukoway wybrane towary. W tym celu trzeba wyuska kod oddziau
producenta z kodu EAN towaru.
W tabeli Towary dodajemy nowe pole o nazwie kod_oddzialu, typu tekstowego.
Nastpnie tworzymy kwerend typu: Aktualizujca, ktra umieci w tym polu, w
kadym wierszu tabeli, 4-cyfrowy acuch znakw wycity z kodu EAN, poczwszy od
znaku na czwartej pozycji. Do operacji na tekcie wykorzystamy funkcj MID.
432 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Teraz ju nie ma przeszkd, aby utworzy relacje wice wszystkie trzy tabele, wybra
potrzebne pola i ustawi dane kryteria dla rodzaju towaru (baton) oraz jego masy (>300).

112.5.
Dla kadego kraju naley poda liczb towarw pochodzcych od producentw z tego kraju,
z podziaem na poszczeglne stawki podatku VAT.
Do zliczania potrzebne jest nam pole kraj z tabeli Kraje oraz pole VAT z tabeli Towary
i pole identyfikujce towary (EAN).
Jeli rozwizalimy zadanie 4, to dla kadego towaru mamy okrelone pole kod_oddzialu
i moemy, podobnie jak w zadaniu 4, zwiza tabele Towary i Kraje za porednictwem
tabeli Producenci.
Jeli nie mamy w tabeli Towary pola z kodem oddziau, moemy z kodu EAN kadego
towaru wyuska kod kraju, zapisa jego warto w nowym polu tabeli Towary (w sposb
podobny jak w zadaniu 4, w ktrym tworzylimy pole kod_oddzialu) i wykorzysta to
pole do poczenia tabeli Towary wprost z tabel Kraje.
Poniewa rozwizalimy zadanie 4, wic moemy postpi wedug sposobu, opisanego wyej
jako pierwszy. Utworzymy kwerend opart na trzech tabelach i zapewnimy ich powizanie
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
433
za pomoc pl kod_oddzialu i kod_kraju. Wemiemy do projektu pola
Kraje.kraj, Towary.VAT i Towary.EAN.
W wierszu Podsumowania bdziemy grupowa dane w polach kraj i VAT, dla pola EAN
wybierzemy funkcj Policz.
Zmienimy typ kwerendy na kwerend krzyow. Jako nagwek wiersza wybierzemy kraj,
jako nagwek kolumny VAT, jako warto licznik kodw EAN.
434 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

4. Odpowiedzi
Zadanie 2.

2.1.
Kolejne wykonanie Warto zmiennej y
1 0,6
2 0,2
3 0,4
4 0,8
5 0,6
Liczba wypisana przez algorytm: 0,10011.

2.2.
Musi to by liczba, ktra ma dokadnie cztery cyfry po przecinku w zapisie dwjkowym.
Moliwe odpowiedzi to zatem: 1/16 (0,0625), 3/16 (0,1875), 5/16 (0,3125),..., 15/16 (0,9375).

2.3.
funkcja trjkowy(x, k)
wypisz 0,
yx
dla i=1, 2, ..., k wykonuj
jeeli y 2/3
wypisz 2
jeeli y 1/3 oraz y < 2/3
wypisz 1
jeeli y < 1/3
wypisz 0
yy*3
jeeli y2
yy2 // prawidow odpowiedzi jest rwnie y y-1
jeeli y1
yy1

Zadanie 3.

3.1.
wywoanie wynik
F(2, 10) 1024
F(2; 9) 512
F(2, 3) 8
F(2, 1) 2
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
435
3.2.
x N wynik F(x, n)
2 2 4
2 3 8
3 4 81
2 5 32
2 8 256
2 10 1024

3.3.
X N Liczba operacji mnoenia
2 2 1
2 3 2
3 4 3
4 7 4
4 8 5
4 9 4

3.4.
lmnozenn = 2 log 3 n

Zadanie 4.

4.1.
liczba w systemie silniowym liczba w systemie dziesitnym
(310)! 20
(2011)! 51
(54211)! 711

4.2.
Najwiksza liczba 5-cyfrowa zapisana w zapisie silniowym to (54321)! .

4.3.
x k x div k! x mod k!
5489 7 1 449
449 6 0 449
449 5 3 89
89 4 3 17
17 3 2 5
5 2 2 1
1 1 1 0
Liczba dziesitna 5489 w zapisie silniowym: (1033221)!
436 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

4.4.
Przykadowa poprawna odpowied (luki oznaczono szarym kolorem):
silnia 1
k 1
dopki (silnia < x) wykonuj
k k + 1
silnia silnia* k
jeeli silnia x
silnia silnia div k
kk1
s
dopki (k>0) wykonuj
cyfra x div silnia
s s tekst (cyfra)
x x cyfra *silnia lub x x mod silnia
silnia silnia div k
k k 1

Zadanie 5.

5.1.
Poprawna odpowied:
Liczba wykona
Warto j
ki pi
5 1 0
4 1 1
3 2 0
2 1 1
1 0 3

5.2.
Uzupenione fragmenty algorytmu:
dla j = n - 1, n - 2, , 1 wykonuj
x A[j]
ij+1
dopki (i n) i (x > A[i]) wykonuj
A[i - 1] A[i]
ii+1
A[i - 1] x

5.3.
FPPP
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
437
Zadanie 6.

6.1.
k Pocztkowa zawarto tablicy A[1...2k] Kocowa zawarto tablicy A[1...2k]
2 [4, 3, 1, 2] [1, 4, 3, 2]
2 [2, 3, 4, 1] [1, 3, 2, 4]
3 [1, 2, 3, 4, 5, 6, 7, 8] [1, 2, 3, 4, 5, 6, 7, 8]
3 [8, 7, 6, 5, 4, 3, 2, 1] [1, 8, 7, 6, 5, 4, 3, 2]
3 [4, 5, 6, 1, 8, 3, 2, 4] [1, 5, 4, 6, 2, 8, 3, 4]

6.2.
FFP

6.3.
PFPF

6.4.
Poprawnie uzupenione luki:
Po zakoczeniu dziaania algorytmu 2 element A[i] jest nie wikszy (mniejszy bd rwny)
ni element A[i+1] dla kadego i wikszego od 0
oraz mniejszego od n
Wiersz (*) algorytmu 2 wykonywany bdzie w przebiegu algorytmu
wicej ni n razy
mniej ni n2 razy

Zadanie 7.

7.1.
T = [ 15, 11 ], wynik algorytmu to [ 11, 15 ];
T = [ 8, 4, 2, 1], wynik algorytmu to [1, 2, 4, 8 ];
T = [ 10, 15, 1 , 6, 9, 2, 5, 90 ], wynik algorytmu to [ 1, 2, 5, 6, 9, 10, 15, 90 ].

7.2.
8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9

8, 80, 90, 14, 3, 5, 20, 10 5, 6, 90, 34, 11, 13, 56, 9

8, 80, 90, 14 3, 5, 20, 10 5, 6, 90, 34 11, 13, 56, 9

8, 80 90, 14 3, 5 20, 10 5, 6 90, 34 11, 13 56, 9

8 80 90 14 3 5 20 10 5 6 90 34 11 13 56 9
438 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

7.3.
49

Zadanie 8.

8.1.
Wynik Liczba porwna
Tablica A Tablica B x dziaania w kroku (*)
algorytmu
3, 5, 12, 17 8, 10, 13, 14 21 FASZ 7
4, 6, 8, 10 5, 7, 9, 11 13 PRAWDA 2

8.2.
Przykad poprawnej odpowiedzi:
Wynik: PRAWDA, gdy istnieje co najmniej jeden element nalecy do tablicy A i co
najmniej jeden element nalecy do tablicy B takie e = + ;
FASZ, gdy dla wszystkich elementw nalecych do tablicy A i elementw
nalecych do tablicy B zachodzi + .

8.3.
Przykad poprawnej odpowiedzi:
A=[1, 3, 7, 9, 11] B=[1, 13, 14, 16, 18]

Zadanie 9.

9.1.
n X y z
2 A C B
1 A B C
1 B C A
2 C B A
1 C A B
1 A B C

9.2.
AB; AC; BC; AB; CA; CB; AB
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
439
9.3.
n H(n)
1 1
2 3
3 7
4 15
5 31
7 127
10 1023
H(n) = 2n 1

9.4.
AC, AB, CB, AC, BA, BC, AC, AB, CB, CA, BA, CB, AC,
AB, CB.

Zadanie 10.

10.1.
[0] = 2, [1] = 4, [2] = 16, [3] = 256

10.2.
n Liczba operacji mnoenia
1 0
2 1
4 3
8 7
16 15
1024 1023
oraz
() = 2(/2) + 1.
440 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

10.3.
Prawidowa odpowied:
F([9,1,0,-6,0,10,0,2,0,4,-1,0,0,0,-3,5])
o F([9,1,0,-6,0,10,0,2])
F([9,1,0,-6])
F([9,1])
o F([9])
o F([1])
F([0,-6])
o F([0])
o F([-6])
F([0,10,0,2])
F([0,10])
o F([0])
o F([10])
F([0,2])
o F([0])
o F([2])
o F([0,4,-1,0,0,0,-3,5])
F([0,4,-1,0])
F([0,4])
o F([0])
o F([4])
F([-1,0])
o F([-1])
o F([0])
F([0,0,-3,5])
F([0,0])
o F([0])
o F([0])
F([-3,5])
o F([-3])
o F([5])
Prawidowy wzr na liczb wywoa rekurencyjnych:
() = 2 1.

10.4.
n Liczba operacji mnoenia
3 2
9 8
27
81
243
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
441
Zadanie 11.

11.1.
W = W1 op W2 W1 W2 op ONP( W )
4+3 4 3 + 43+
(4 + 3) 2 (4+3) 2 43+2
5(76) 5 (7 6) 576
( (4 + 3) 2 ) (5 ( 7 6 ) ) ( (4 + 3) 2 ) (5 ( 7 6 ) ) 43+2576

Uwaga
Za poprawne naley te uzna odpowiedzi podajce wyraenia w kolumnach W1 i W2 bez
nawiasw zewntrznych, np. 4 + 3 zamiast (4 + 3).

11.2.
Warto zmiennej k po i-tym Zawarto tablicy T[1..k-1] po i-tym
i
przebiegu ptli przebiegu ptli
1 2 9
2 3 9, 7
4 3 16, 3
5 2 48
6 3 48,5
10 3 48,2
11 2 46

11.3.
Warto zmiennej Czy poprawne wyraenie
Napis
licznik po zakoczeniu ONP?
12+ 1 NIE
12+34578+9 4 NIE
12345++++ 1 TAK
12345++++++ 1 NIE
12345+++++ 1 NIE
12+233445+ 1 TAK
12+233445+ 1 NIE
12+34578+9+++ 1 TAK

11.4.
ONP(X): 1 2 op1 3 op2 4 op3 5 op4 6 op5 7 op6 8 op7 9 op8 10 op9
ONP(Y): 1 2 3 4 5 6 7 8 9 10 op9 op8 op7 op6 op5 op4 op3 op2 op1
442 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 12.

12.1.
i k
Lp

1 0 20
2 1 21
3 2 23
4 3 26
5 4 30
6 5 35

12.2.
Moliwych wartoci k, dla ktrych algorytm daje rne szyfrogramy, jest 26.
Krtkie uzasadnienie:
Podczas szyfrowania do rnicy liczby 90 i kodu kolejnego znaku dodawana jest warto k.
Dla tak obliczonej wartoci obliczana jest reszta z dzielenia jej przez 26. Zatem zastpienie k
wartoci k+26 da identyczny wynik, czyli tylko wartoci 0, 1, ..., 25 dadz istotnie rne
szyfrogramy.

12.3.
K Tekst[] Szyfrogram[]
1 MAPA BOBT
14 KOD DAN

12.4.
Przykad poprawnej odpowiedzi:
i 0
dopki (i<n) wykonuj
Tekst[i] (90-Szyfrogram[i]+k) mod 26 + 65
i i+1
k k+i

Zadanie 13.

13.1.
TAK, NIE, TAK.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
443
13.2.
P6 (3,-2)
A (2,1)

Zadanie 14.

14.1.
+1 1 (+1 1 )
1 2 2 -7 -14
2 1 7 7 49
3 9 8 9 72
4 10 4 -1 -4
5 8 2 -8 -16
Pole dziaki jest rwne 87/2.

14.2.
Prawidowy wzr:
(2 3 )1 + (3 1 )2 + (1 2 )3
.
2

14.3.
Dziaanie Liczba operacji
dodawanie lub odejmowanie 2
mnoenie
Dopuszczalna jest rwnie odpowied, w ktrej liczba operacji mnoenia jest rwna + 1, tj.
taka, w ktrej uwzgldniono ostatnie dzielenie przez 2 jako mnoenie przez 1/2.

Zadanie 15.

15.1.
n Liczba odcinkw w zbiorze Cantora rzdu n
0 1
1 2
2 4
3 8
5 32
6 64
9 512
10 1024
Oglny wzr okrelajcy liczb odcinkw w zbiorze Cantora rzdu n: 2n
444 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

15.2.
n Dugo jednego odcinka w zbiorze Cantora rzdu n
0 1
1 1/3
2 1/9
3 1/27
4 1/81
5 1/243
6 1/729
7 1/2187
1
Oglny wzr okrelajcy dugo jednego odcinka w zbiorze Cantora rzdu n:
3n

15.3.
Zbir Cantora rzdu 3 z kocami odcinkw zapisanymi jako uamki nieskracalne:
[0; 1/27], [2/27; 1/9], [2/9;7/27], [8/27;1/3],
[2/3; 19/27], [20/27,7/9], [8/9;25/27], [26/27; 1].
Zbir Cantora rzdu 3 z kocami odcinkw zapisanymi w systemie trjkowym:
[0; 0,001],[0,002;0,01], [0,02; 0,021], [0,022; 0,1],
[0,2; 0,201],[0,202;0,21], [0,22;0,221], [0,222; 1].

Zadanie 16.

16.1.

16.2.
Algorytm liczy dla kadego pola jego odlego od lewego grnego rogu: minimaln liczb
krokw, ktr trzeba zrobi, aby przechodzc po polach ssiednich, dosta si od lewego
grnego rogu do tego pola.
Prawidowym rozwizaniem jest dowolna plansza, na ktrej trzeba zrobi przynajmniej 10
krokw. Dwa moliwe rozwizania przedstawione s na rysunkach:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
445

16.3.
Prawidowym rozwizaniem jest dowolna plansza, na ktrej niektre biae pola nie s
osigalne (s odcite) z lewego grnego rogu planszy. Na przykad:

Zadanie 17.

17.1.
Bdny zapis w pseudokodzie Poprawny zapis w pseudokodzie
jeeli prdko samochodu <30 lub odlego jeeli prdko samochodu <30 i odlego
midzy samochodami <15 midzy samochodami <15
powtarzaj dopki prdko samochodu = 100: powtarzaj dopki prdko samochodu > 0:

17.2.
Dane testowe Typ danych testowych
prdko samochodu 29 km/h,
brzegowe
odlego midzy samochodami 1 m
prdko samochodu 400 km/h,
niezgodne
odlego od najbliszego pojazdu 0 m
prdko samochodu 13 km/h,
standardowe
odlego od najbliszego pojazdu 8 m
prdko samochodu 45 km/h,
standardowe
odlego od najbliszego pojazdu 17 m
prdko samochodu 0 km/h,
brzegowe
odlego od najbliszego pojazdu 17 m

17.3.
PFFP

17.4.
Odlego midzy Stan automatycznego
Prdko samochodu
samochodami hamowania
poniej 30 km/h poniej 15m wczony
446 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

poniej 30 km/h rwna15m nieustalony


rwna 30 km/h poniej 15m wyczony
rwna 30 km/h rwna 15m wyczony
powyej 30 km/h dowolna wyczony

Zadanie 19.

19.1.
Cena towaru zapisana w systemie liczbowym planety
Towar
Liczbowo2 Liczbowo4 Liczbowo8 Liczbowo10
Kozaki 10111011 2323 273 187
Paszcz 111010100 13110 724 468
Skuter 10110110010 112302 2662 1458

19.2.
Liczbowoi Relacja Liczbowoi
1100001002 > 5568
31234 < 17478
11010 < 110103
2669 < 1101003
1101111012 > 6748

19.3.
Suma rachunku pana Dwjkowskiego: 1 0 1 1 0 0 1 0
Suma rachunku pana Czwrkowskiego: 2 3 3 3
Rnica rachunkw w systemie obowizujcym na planecie Liczbowo10 wynosi: 13

19.4.
Przykadowe rozwizanie:
i1
r0
dopki i < n+1 wykonuj
C[i] A[i] + B[i] + r
jeeli C[i] p
C[i] C[i] p
r1
w przeciwnym razie
r0
ii+1
C[n+1] r
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
447
Zadanie 20.

20.1.
371, 407, 54748.

20.2.
prawda/fasz
3433 6 prawda
4890 5 prawda
8956 3 fasz
15345 2 fasz

20.3.
Przykadowe prawidowe rozwizanie:
m n;
d 0;
dopki m>0 wykonuj
m m div B;
d d+1;
m n;
suma 0;
dopki m>0 wykonuj
suma suma + potega( m mod B, d );
m m div B;
jeeli suma=n
zwr TAK i zakocz
w przeciwnym razie
zwr NIE i zakocz
gdzie potega(x, n) oblicza x do potgi n np. w nastpujcy sposb:
potega(x,n)
jeeli n = 0
zwr 1 i zakocz
w przeciwnym razie
zwr x*potega(x, n-1) i zakocz

Zadanie 21.
21.1.
x, x2, x4, x8, x9, x18, x19, x38

21.2.
reprezentacja liczba
k
binarna k mnoe
4 100 2
5 101 3
448 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

6 110 3
7 111 4
8 1000 3
15 1111 6
16 10000 4
22 10110 6
32 100000 5

21.3.
Przykadowa odpowied:
px
in1
dopki i 0 wykonuj
pp*p
jeeli ki = 1
pp*x
ii1

Zadanie 22.

22.1.
Dane Warto
liczba naturalna 0 5
liczba rzeczywista 6

liczby rzeczywiste 0 , 1 , , 7, -8, 2, 1, -13, 10

22.2.
Dziaanie Liczba operacji
dodawanie
mnoenie
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
449
22.3.
Warto
=5 5
=4 10
=3 22
=2 39
=1 85
=0 179
Algorytm zwrci wynik 179.

22.4.
Przykadowy algorytm:
Dane:
liczba cakowita, 0,
x liczba rzeczywista,
0 , 1 , , liczby rzeczywiste.
Wynik: warto ()
Algorytm:
y

dla = 1, 2, , 0 wykonuj
+
zwr i zakocz

Zadanie 23.

23. 1.
Poprawna odpowied:
Warto i Warto a Warto r
0 0 1
1 1 3
2 4 5
3 9 7
4 16 9
5 25 11

23.2.
PFPF
450 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

23.3.
Przykadowe poprawne rozwizanie:
xi x / 2
kontynuacja prawda
dopki kontynuacja wykonuj
xi (xi + x / xi) / 2
p cz_cakowita(xi)
jeeli p p x oraz (p+1) (p+1) x
kontynuacja fasz
jeeli (p 1) (p 1) x oraz p p x
pp1
kontynuacja fasz
zwr p i zakocz

Przykadowe poprawne rozwizanie jzyku C:


int pierw(double x){
int p;
double xi = x / 2;
bool kontynuacja = true;

while (kontynuacja){
xi = (xi + x / xi) / 2;
p = floor(xi);
if (p*p<=x && (p+1)*(p+1)>x)
kontynuacja=false;
if ((p-1)*(p-1)<=x && p*p>x){
p=p-1;
kontynuacja=false;
}
}
return p;
}

Zadanie 24.

24.1.
T F (p, k, e)
[3, 4, 6, 8, 9] 6
[15, 16, 18, 22, 24] 1
[2, 10, 16, 24, 26] 3
[1, 3, 10, 10, 18] 5
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
451
24.2.
Funkcja F wykorzystuje

metod zachann.
strategi dziel i zwyciaj. X
programowanie dynamiczne.

24.3.
Liczba wywoa rekurencyjnych funkcji F dla pocztkowych wartoci p = 1 oraz k = n,
bdcej potg dwjki, jest w najgorszym przypadku rwna

n div 2


log 2 X

24.4.
Przykadowe poprawne odpowiedzi:

Rozwizanie o zoonoci logarytmicznej:


prawy F(1, n, b)
lewy F(1, n, a 1)
w prawy lewy

Rozwizanie o zoonoci liniowej:


prawy F(1, n, b)
lewy F(1, n, a)
i lewy 1
dopki (i>0 oraz T [i] = T [lewy])
ii1
lewy i+1
w prawy lewy

Zadanie 25.

25.1.
Poprawn odpowiedzi jest sowo, w ktrym pierwsza i ostatnia litera s rne, a bez
pierwszej i ostatniej litery sowo to jest palindromem, np. tamtotmar.
452 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

25.2.
Przykadowe poprawne rozwizanie:
i1
j dugo(Zdanie)
dopki i <j wykonuj
dopki Zdanie[i] = wykonuj
i i +1
dopki Zdanie[j] = wykonuj
jj1
jeeli Zdanie[i] Zdanie [j]
zwr NIE i zakocz
ii+1
jj1
zwr TAK i zakocz

Zadanie 26.

26.1.
X Y Podrzdno
HHGGFFEEDDCCBBAA ABCDEFGH 0
DCBADCBA FGHABCJD 4
ABCDE ABCCBAE NIE
AAAAA AA 0
ABA ACA NIE
ACEGJ ABCDEFGHJ 4

26.2.
X Y wynik algorytmu A
HHGGFFEEDDCCBBAA ABCDEFGH 1
DCBADCBA FGHABCJD 1
ABCDE ABCCBA 0
AAAAA AA 1
AA AAAAA 1
ACEGJ ABCDEFGH 0
Dane: X, Y sowa, w ktrych wystpuj tylko litery ze zbioru {A, B, C, D, E, F, G, H, I, J}
Wynik: 1 gdy X jest sowem podrzdnym wzgldem Y, 0 w przeciwnym przypadku.

26.3.
Poprawnie uzupenione fragmenty algorytmu:
jeeli Czy_y[i]=prawda oraz Czy_x[i]=fasz
k k+1
jeeli Czy_y[i]=fasz oraz Czy_x[i]=prawda
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
453
26.4.
Przykadowe rozwizanie 1:
dla i=1,2,,10 wykonuj
Ile_x[i] 0,
Ile_y[i] 0
dx dlugosc(X)
dla i=1,2,,dx wykonuj
lit X[i]
Ile_x[kod(lit)] Ile_x[kod(lit)] + 1
dy dlugosc(Y)
dla i=1,2,,dy wykonuj
lit Y[i]
Ile_y[kod(lit)] = Ile_y[kod(lit)] + 1
dla i=1,2,,10 wykonuj
jeeli Ile_x[i] Ile_y[i]
zwr 0 i zakocz
zwr 1
Alternatywne rozwizanie polega moe na przykad na tym, e dla kolejnych liter (A, B,
,I, J) algorytm wyznacza liczb ich wystpie w X i liczb ich wystpie w Y, a nastpnie
zwraca 1, gdy s one rne. W rozwizaniu takim nie potrzebujemy dodatkowych tablic.
Mona te to zrobi w jednej tablicy. W ptli dla sowa X zwikszamy liczniki wystpienia
liter, za w ptli dla sowa Y je zmniejszamy. Jeli w tablicy s same zera, to sowa s
rwnowane:
Przykadowe rozwizanie 2:
dla i=1,2,,10 wykonuj
Ile[i] 0,
dx dlugosc(X)
dla i=1,2,,dx wykonuj
lit X[i]
Ile[kod(lit)] Ile[kod(lit)] + 1
dy dlugosc(Y)
dla i=1,2,,dy wykonuj
lit Y[i]
Ile[kod(lit)] = Ile[kod(lit)] 1
dla i=1,2,,10 wykonuj
jeeli Ile_x[i] 0
zwr 0 i zakocz
zwr 1
454 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 27.

27.1.
Wzorzec Tekst W jaki sposb wzorzec
wystpuje w tekcie?
para opera z bdem
para aparat dokadnie
kran karawana nie wystpuje
sport bezspornie z bdem
ryt zakryty dokadnie
sofa solanka z bdem

27.2.
Prawidowe odpowiedzi to na przykad abab i abababab albo aaaa i aaaaaaaa. Jest jednak
duo wicej moliwoci.

27.3.
Przykadowy algorytm:
dla i = 1, 2, ..., nm+1 wykonuj
bledy 0
dla j = 1, 2, ..., m wykonuj
jeeli wzorzec[j] tekst[i+j-1]
bdy bdy + 1
jeeli bdy 1
wypisz TAK
zakocz wykonywanie algorytmu
wypisz NIE

Zadanie 28.

28.1.
Czy jest speniony Czy sowo jest
Sowo warunek sabym A- Uzasadnienie
2a? 2b? palindromem?
AABA ABAA tak tak tak AABA
AAAB BAAA tak nie nie
AAAB BAAB nie nie nie
AAAA BBBB nie tak nie
ABBB ABAA tak tak tak ABAA
ABAA lub
ABAA AABA tak tak tak
AABA
AAAAA AAAAA tak nie nie
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
455
28.2.
Poprawne wypenienie luk w pierwszej tabeli:
najmniejsza waga sabego saby A-palindromu o dugoci m
m
A-palindromu o dugoci m i najmniejszej liczbie liter A
2 2 AA
4 3 AABA albo ABAA
AABA BBBA albo ABAA BBBA albo
8 4
ABBB AABA albo ABBB ABAA
Poprawne wypenienie luk w drugiej tabeli:
najmniejsza liczba liter A sabego
m
A-palindromu o dugoci m
16 5
32 6
210 11
220 21

28.3.
Przykad poprawnej odpowiedzi:
CzySlabe (W)
jeeli W jest sowem pustym
zwr Nie i zakocz
jeeli W=A
zwr Tak i zakocz
m dugo(W)
jeeli m mod 2=1
zwr Nie i zakocz
w przeciwnym razie
jeeli W[1]A lub W[m] A
zwr Nie i zakocz
r1 CzySlabe(W[1, m/2] )
jeeli r1 = Nie, to zwr CzySlabe(W[m/2+1,m] )
w przeciwnym razie zwr Tak

Zadanie 29.

29.1.
MATURA

29.2.
Przykad poprawnej odpowiedzi:
pusty(litera)
poprzednia pobierz(wiadomosc)
kulka pobierz(wiadomosc)
docz(litera, poprzednia)
docz(litera, kulka)
456 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

dopki (poprzednia '' LUB kulka '') wykonuj


poprzednia kulka
kulka pobierz(wiadomosc)
docz (litera, kulka)

29.3.
Przykad poprawnej odpowiedzi:
pusty(wiadomosc)
dopki (czy_sa_kulki(ciag)) wykonuj
dopisz(wiadomosc, pobierz_litere(ciag))

Zadanie 30.

30.1.
Przykad poprawnej odpowiedzi
funkcja szyfruj(zn, k)
kk mod 26
kod_znkod(zn)+k
jeeli kod_zn> 90
kod_znkod_zn -26
wynik znak(kod_zn)

30.2.
Sowo jawne Sowo zaszyfrowane
INFORMATYKA JPISWSHBHUL
KOMPUTER LQPTZZLZ

30.3.
Przykad poprawnej odpowiedzi:
dla i=1,2, n wykonuj
J[i]deszyfruj(S[i], i)

funkcja deszyfruj(zn, k)
kk mod 26
kod_znkod(zn) k
jeeli kod_zn< 65
kod_znkod_zn +26
wynik znak(kod_zn)
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
457
Zadanie 31.

31.1.
k=3, W=ZADANIE1JESTATWE
Tekst wypisany przez algorytm: ZEA1ADJTAEWNSEIT
k=4, W=ZADANIE1JESTPROSTE
Tekst wypisany przez algorytm: ZISSAETTD1PEAJRNEO

31.2.
k=3, W= UMIEMDEKODOWA
Tekst wypisany przez algorytm: UDOMEWIKAEOMD
k=4, W= DOBRZEJEST
Tekst wypisany przez algorytm: DRJTOZEBES

31.3.
Przykadowe rozwizanie:
Algorytm:
n dlugosc(X)
dla i=1,2,,k wykonuj
ji
dopki j n wykonuj
wypisz X[j]
j j+k

31.4.
Przykadowe rozwizania:
Algorytm 1:
n dlugosc(W)
m n div k
jeeli n mod k0
mm+1
dla i=1,2,,m wykonuj
jeeli (i mod 2=1)
ji
dopki j n wykonuj
wypisz W[j]
j j+m
w przeciwnym razie
j i+(k 1) m
jeeli jn
jjm
dopki j 0 wykonuj
wypisz W[j]
jjm
458 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Algorytm 2:
n dlugosc(W)
m n div k
jeeli n mod k0
mm+1
dla i=1,2,,m wykonuj
ji
jeeli (i mod 2=1)
dopki j n wykonuj
wypisz W[j]
j j+m
w przeciwnym razie
dopki j n wykonuj
j j+m
jjm
dopki j 0 wykonuj
wypisz W[j]
jjm

Zadanie 32.

32.1.
Tekst skompresowany Tekst oryginalny
a(cd)a acdcda
(pur)owy purpurowy
(z)(zz) zzzzzz
(ab)a(abcd) abaabcdabcd

32.2.
Przykadowy algorytm:
mozliwe fasz
jeli n mod 2 = 0 wykonaj
mozliwe prawda
dla i = 1, 2, ..., n/2
jeli napis[i] napis[i+n/2]
mozliwe fasz
jeli mozliwe wykonaj
wypisz '('
dla i = 1, 2, ..., n/2
wypisz napis[i]
wypisz ')'
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
459
32.3.
Przykadowy algorytm:
p1
dopki p n wykonuj
jeli napis[p] jest liter
wypisz napis[p]
p p+1
jeli napis[p] = '('
k p+1
dopki napis[k] ')'
k k+1
powtrz 2 razy:
dla j = p+1, ..., k-1
wypisz napis[j]
p k+1

Zadanie 33.

33.1.
Tablica B:
1 2 3 4 5
0 0 0 0 0 0
1 0 0 1 1 1
2 0 1 1 0 0
3 1 0 0 1 0
4 0 0 0 0 1
5 0 0 0 0 0
6 0 0 0 0 0
Warto zwracana przez algorytm: 1

33.2.
Specyfikacja
Dane: n liczba naturalna wiksza od 1
A plansza rozmiaru n n wypeniona liczbami cakowitymi.
Wynik:
1 jeli istnieje trasa wdrowca typu chodzcego
i prowadzca tylko przez pola o wartociach dodatnich
0 w przeciwnym przypadku
460 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

33.3.
Przykadowe rozwizanie
Algorytm:
suma 0
dla j=1,2, ,n wykonuj
mx A[1,j]
dla i=2,3,n wykonuj
jeeli A[i,j] >mx
mx A[i,j]
suma suma + mx
zwr suma

33.4.
Przykadowe rozwizanie
Algorytm:
w1
dla j=1,2, ,n wykonuj
dopki w<=n oraz A[w,j]<0
ww+1
jeeli w>n
zwr 0
zwr 1

Zadanie 35.

35a
FPFP

35b

C = 1112 4 = 7 - 4 = 3
M = 1.11112 = 1 + 0.5 + 0.25 + 0.125 + 0.0625 = 1.9375
x = 1.9375*23 = 15.5

35c

C = 02 4 = -4
M = 1.0
x = 1.0*2-4 = 1/16 = 0.0625

Zadanie 36.
NIE TAK TAK NIE NIE NIE

Zadanie 37.
NIE TAK NIE TAK NIE
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
461
Zadanie 38.
NIE TAK NIE NIE

Zadanie 39.

39.1.
Przykadowa odpowied:
Powinien zosta dodany obraz aquapark2.jpg, poniewa rozmiar tego jest mniejszy.
Dziki temu obraz szybciej si zaaduje.

39.2.
Przykadowa odpowied:
Najlepsz jako druku zapewni format TIFF. Obrazy s przechowywane bez utraty jakoci.
Format ten uywany jest standardowo przez firmy DTP przygotowujce materiay do druku.

39.3.
Poprawna odpowied: 2304 kB
Odpowied wynikajca z obliczenia jedynie liczby bitw: 18874368 bitw lub bajtw:
2359296 bajtw

Zadanie 40.
FPFP

Zadanie 41.
PFFF

Zadanie 42.

42.1.
Liczba operacji Liczba operacji
porwnania porwnania
Tablica T
wykonanych w wierszu wykonanych w wierszu
oznaczonym (*) oznaczonym (**)
4, 2, 5, 8, 1, 9, 7, 6, 3 7 4
5, 4, 3, 2, 1, 6, 7, 8, 9, 10 7 5
1, 2, 3, ... , 100 100 1
100, 99, 98, ... , 1 2 100
462 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

42.2.
Liczba operacji
zamiany wykonanych
Tablica T
w wierszu
oznaczonym (***)
4, 2, 5, 8, 1, 9, 7, 6, 3 2
5, 4, 3, 2, 1, 6, 7, 8, 9, 10 1
1, 2, 3, ... , 100 0
100, 99, 98, ... , 1 1

Zadanie 43.

43.1.
Przykadowa odpowied:
Wyszukiwanie optymalnej trasy samochodowej
Uzasadnienie: Dziki lokalizacji znane jest pooenie uytkownika co daje moliwo
podawania wskazwek odnonie wyboru drogi, dopasowanych do jego pooenia oraz
zmiany trasy, w przypadku informacji o korkach. Dane o lokalizacji uytkownikw
pozwalaj oszacowa natenie ruchu na rnych odcinkach drg
Serwis pogodowy
Uzasadnienie: Dziki usudze lokalizacji uytkownicy mog uzyskiwa dane
pogodowe i prognoz pogody dla ich aktualnego pooenia bez koniecznoci
podawania lokalizacji samemu
Serwis informacji turystycznej Wrocawia
Uzasadnienie: Wykorzystujc dane o lokalizacji uytkownika, serwis moe poda,
jakie obiekty znajduj si najbliej jego aktualnego pooenia, a take wskaza tras
od miejsca, w ktrym uytkowniksi aktualnie znajduje, do wybranego obiektu

43.2.
Przykadowa odpowied:
System komputerowego skadu tekstu
Uzasadnienie: Edycja wielu elementw (tekst + grafika) wymaga wprowadzania wielu
danych (wpisywanie tekstu, wstawianie i tworzenie obiektw graficznych), a do tego
celu przydatna jest ergonomiczna klawiatura, mysz itp. Wizualizacja w skali 1:1
wymaga odpowiednio duego ekranu.
Edytor tekstu
Uzasadnienie: Du ilo tekstu duo wygodniej wprowadza si, korzystajc z duej,
ergonomicznej klawiatury. Ponadto duy ekran umoliwia wizualizacj wynikowego
dokumentu w rzeczywistych wymiarach.
Arkusz kalkulacyjny
Uzasadnienie: Dane (zestawienia liczbowe, teksty) i formuy wygodniej wprowadza
si, korzystajc z duej, ergonomicznej klawiatury. Dotyczy to rwnie tworzenia
i przegldania wykresw.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
463
43.3.
FPFP

43.4.
FPPFP

Zadanie 45.
PFPF

Zadanie 46.
PFFP

Zadanie 47.
FPFP

Zadanie 48.
PFFF

Zadanie 49.
PPFP

Zadanie 50.
FPFP

Zadanie 51.
Prawidowa odpowied:

atak brute force metoda


sownikowa/psychologiczna
Uytkownik A x x
Uytkownik B x
Uytkownik C
Uytkownik D x

Zadanie 52.
PPFF
464 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 53.

53.1.
Stan zegara na zdjciu nr 1: 9:20:15 (09:20:15).
Stan zegara na zdjciu nr 4: 23:10:36.

53.2.

Zadanie 54.
PFFP

Zadanie 55.

55.1.
FPFF

55.2.
FPPF

Zadanie 56.
PFPF

Zadanie 57.
PPFP

Zadanie 59.

59.1.
114

59.2.
181
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
465
59.3.

moc ile
liczb
1 381
2 344
3 171
4 76
5 22
6 4
7 0
8 2
Minimalna liczba o mocy 1 jest rwna 11.
Maksymalna liczba o mocy 1 jest rwna 999342708.

Zadanie 60.

60.1.
Przykadowe rozwizanie znajduje si w pliku rozw1.cpp. Prawidowa odpowied:
Mniejszych od 1000: 12
Dwie ostatnie: 540 633

60.2.
Przykadowe rozwizanie znajduje si w pliku rozw2.cpp. Prawidowa odpowied:

989532
1 2 3 4 6 9 12 18 36 27487 54974 82461 109948 164922 247383
329844 494766 989532

131072
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
65536 131072

702027
1 3 9 27 81 107 243 321 729 963 2187 2889 6561 8667 26001
78003 234009 702027

461817
1 3 9 23 69 97 207 291 529 873 1587 2231 4761 6693 20079 51313
153939 461817

17298
1 2 3 6 9 18 31 62 93 186 279 558 961 1922 2883 5766 8649
17298
466 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

60.3.
Przykadowe rozwizanie znajduje si w pliku rozw3.cpp. Prawidowa odpowied:
Najwieksza wzglednie pierwsza: 988027

Zadanie 61.

61.1.
Przykadowe rozwizanie znajduje si w pliku rozw1.cpp. Prawidowa odpowied:
Ciagow arytmetycznych: 44
Najwieksza roznica: 246849

61.2.
Przykadowe rozwizanie znajduje si w pliku rozw2.cpp. Prawidowa odpowied:

1
27
551368
1000000
250047
1000
35937
531441

61.3.
Przykadowe rozwizanie znajduje si w pliku rozw3.cpp. Prawidowa odpowied:

6
36
421503
362326
303276
534127
40828
949
90367
177326
390126
842436
37889
11106
149243
80882
529815
988401
29559
953023
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
467
Zadanie 62.

62.1.
Najmniejsza liczba to 1002, najwiksza 777044.

62.2.
Pierwszym elementem tego cigu jest 639 i cig skada si z 6 elementw.

62.3.
liczb o tych samych wartociach jest 160;
liczba z pierwszego pliku jest wiksza od liczby z drugiego pliku w 357 wierszach.

62.4.
625 razy w zapisie dziesitnym, 411 razy w zapisie semkowym.

Zadanie 63.

63.1.
Poprawna odpowied (18 cigw):
11
101000101000
10110001011000
1010
110110110110
100100
11001100
111111
10111011
101101
100100100100
110110
1100110011001100
1111
10011001
1001110011
1100111001
110110110110110110

63.2.
93

63.3.
259 cigw jest binarn reprezentacj liczb ppierwszych.
Najmniejsz liczb ppierwsz jest 6.
468 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Najwiksza z nich jest rwna 248667.


Odpowied bdnie podajca liczb liczb ppierwszych, wynikajca z zastosowania
algorytmu sita Eratostenesa, ktry nie uwzgldnia tego, e 0 oraz 1 nie s liczbami
pierwszymi: 436
Odpowied bdnie podajca liczb liczb ppierwszych, ktra wynika z uwzgldnienia
dwch rnych czynnikw pierwszych podczas sprawdzania ppierwszoci: 252
Odpowied bdnie podajca liczb liczb ppierwszych, ktra wynika ze zliczenia rwnie
liczb pierwszych, ktre maj tylko jeden czynnik pierwszy: 418

Zadanie 64.

64.1.
Poprawna odpowied:
Liczba rewersw: 13
Najwiksza liczba pikseli czarnych: 381
Niepoprawna odpowied wynikajca z przyjcia, e rewersem jest rwnie obrazek z rwn
liczb pikseli czarnych i biaych:
Liczba rewersw: 37
Najwiksza liczba pikseli czarnych: 381

64.2.
Poprawna odpowied:
Liczba obrazkw rekurencyjnych: 60
Pierwszy obrazek rekurencyjny:
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
11111111111111111111
00000000000000000000
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
469
Niepoprawna odpowied wynikajca ze sprawdzania ssiednich podobrazkw parami tylko
poziomo (inny obrazek bdzie te wwczas pierwszym speniajcym sprawdzane
warunki): 95.
Niepoprawna odpowied wynikajca ze sprawdzania ssiednich podobrazkw parami tylko
pionowo (inny obrazek bdzie te wwczas pierwszym speniajcym sprawdzane
warunki): 101.

64.3.
Poprawna odpowied:
Liczba obrazkw poprawnych: 171
Liczba obrazkw naprawialnych: 14
Liczba obrazkw nienaprawialnych: 15
Najwiksza liczba bdnych parzystoci: 7
Niepoprawna odpowied wynikajca z bdnie przyjtego zaoenia, e obrazek z dwoma
bdami jest naprawialny, nawet gdy bdy wystpuj w tym samym wierszu lub tej samej
kolumnie:
Liczba obrazkw poprawnych: 171
Liczba obrazkw naprawialnych: 18
Liczba obrazkw nienaprawialnych: 11
Najwiksza liczba bdnych bitw parzystoci: 7

64.4.
Poprawna odpowied:
Obrazki naprawialne (numer obrazka, wiersz, kolumna):
(14,1,15)
(19,4,20)
(26,21,13)
(29,2,8)
(33,15,21)
(115,21,14)
(116,21,13)
(129,21,14)
(131,10,7)
(143,7,15)
(154,7,7)
(161,21,17)
(162,21,16)
(187,21,18)
Niepoprawna odpowied wynikajca z bdnie przyjtego zaoenia, e obrazek z dwoma
bdami jest naprawialny, nawet gdy bdy wystpuj w tym samym wierszu lub tej samej
kolumnie
(11,5,21) lub (11,9,21)
(14,1,15)
(19,4,20)
470 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

(26,21,13)
(29,2,8)
(33,15,21)
(53,6,21) lub (53,15,21)
(115,21,14)
(116,21,13)
(129,21,14)
(131,10,7)
(143,7,15)
(146,21,19) lub (146,21,4)
(154,7,7)
(161,21,17)
(162,21,16)
(170,21,19) lub (170,21,12)
(187,21,18)
Uwaga: W podanych powyej wierszach z dwoma odpowiedziami przyjmuje si, e w
odpowiedzi maturzysty zostaa podana jedna z nich pozwalajca skorygowa jeden z
dwch bdw parzystoci.

Zadanie 65.

65.1.
Poprawna odpowied: 1 225
Odpowiedzi bdne: 2 450, 7 1575. Podaj one uamek o najmniejszej wartoci, ale nie
speniaj drugiego warunku zadania, tzn. w pliku wystpuje inny uamek o tej samej wartoci
i mniejszym mianowniku.

65.2.
Poprawna odpowied: 410.
Odpowiedzi bdne:
409 lub 411 odpowiedzi wynikajce z bdnego zainicjowania licznika.
459 odpowied wynikajca z policzenia jako nieskracalnych wszystkich uamkw,
w ktrych licznik jest dzielnikiem mianownika (lub mianownik jest dzielnikiem
licznika).

65.3.
Poprawna odpowied: 128446.
Odpowied z bdem polegajcym na pominiciu pierwszego lub ostatniego uamka: 128445
lub 128399.

65.4.
Poprawna odpowied: 578219135.
Odpowied bdna: 564486930. Bd w niej wynika z zastosowania typu danych o zbyt
maym zakresie (gdy w kompilatorze gcc zastosuje si typ long zamiast long long do
reprezentacji wynikw porednich).
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
471
Zadanie 66.

66.1.
Poprawna odpowied:
25320 29269 40
24810 10353 27
15276 20113 28
13867 24491 45
19677 6037 46
19688 2020 36

66.2.
Poprawna odpowied:
6131 20807 127567717
26297 6329 166433713
24767 809 20036503
28477 19289 549292853
24799 6359 157696841
691 11003 7603073
9631 28351 273048481
6661 26393 175803773
5881 28429 167190949
18587 21739 404062793
Bdna odpowied (podajca 12 wierszy) wynikajca z zastosowania ostrej nierwnoci
w warunku zakoczenia ptli przy sprawdzaniu, czy liczba jest pierwsza:
6131 20807 127567717
26297 6329 166433713
24767 809 20036503
28477 19289 549292853
24799 6359 157696841
691 11003 7603073
9631 28351 273048481
23 529 12167
89 7921 704969
6661 26393 175803773
5881 28429 167190949
18587 21739 404062793
Bdna odpowied (podajca 14 wierszy) wynikajca ze sprawdzenia tylko tego, czy trzecia
liczba jest iloczynem dwch pierwszych liczb:
6131 20807 127567717
26297 6329 166433713
24767 809 20036503
2572 29539 75974308
28477 19289 549292853
24799 6359 157696841
691 11003 7603073
472 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

9631 28351 273048481


6705 1606 10768230
23 529 12167
89 7921 704969
6661 26393 175803773
5881 28429 167190949
18587 21739 404062793

66.3.
Poprawna odpowied:
58140 58141 341
343 58824 58825
681 231880 231881
683 233244 233245
1021 521220 521221
1023 523264 523265
926160 1361 926161
928885 1363 928884
1701 1446700 1446701
1703 1450104 1450105
Bdna odpowied wynikajca z wypisania wszystkich (nie tylko ssiadujcych) wierszy,
w ktrych liczby reprezentuj dugoci bokw trjkta prostoktnego, nie tylko ssiadujce
pary:
345
58140 58141 341
343 58824 58825
681 231880 231881
683 233244 233245
1021 521220 521221
1023 523264 523265
926160 1361 926161
928885 1363 928884
1701 1446700 1446701
1703 1450104 1450105
Bdna odpowied wynikajc z przyjcia zaoenia, e liczby w wierszu s uporzdkowane
rosnco:
681 231880 231881
683 233244 233245

1021 521220 521221


1023 523264 523265
1701 1446700 1446701
1703 1450104 1450105

66.4.
Liczba wierszy, w ktrych liczby reprezentuj dugoci bokw trjkta: 604
Dugo najduszego cigu trjktnego: 11
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
473

Zadanie 67.

67.1.
10. 55
20. 6765
30. 832040
40. 102334155

67.2.
3. 2
4. 3
5. 5
7. 13
11. 89
13. 233
17. 1597
23. 28657
29. 514229

67.3.
1
1
10
11
101
1000
1101
10101
100010
110111
1011001
10010000
11101001
101111001
1001100010
1111011011
11000111101
101000011000
1000001010101
1101001101101
10101011000010
100010100101111
110111111110001
1011010100100000
10010010100010001
11101101000110001
101111111101000010
474 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

1001101100101110011
1111101100010110101
11001011001000101000
101001000101011011101
1000010011110100000101
1101011100011111100010
10101110000010011100111
100011001100110011001001
111000111101000110110000
1011100001001111001111001
10010101000111000000101001
11110001010000111010100010
110000110010111111011001011
fraktal binarny Fibonacciego:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1
0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1
0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1
0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0
0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1
0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1
0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0
0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1
0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1
0 1 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0
1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 1 1

67.4.
101111001
10101011000010
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
475
1011010100100000
10010010100010001

Zadanie 68.

68.1.
Poprawna odpowied: 9.
Odpowied bdna: 14. Uwzgldnia ona wiersze zawierajce napisy rnej dugoci, ale
skadajce si z tych samych liter.

68.2.
Poprawna odpowied: 93
Odpowied bdna: 101. Uwzgldnia ona wiersze zawierajce napisy zoone z tych samych
liter, ale o rnej dugoci.

68.3.
Poprawna odpowied: 17
Odpowied bdna: 59. Wynika ona z policzenia napisw, ktre zawieraj te same litery, ale
o rnej liczbie wystpie w poszczeglnych napisach.

Zadanie 69.

69.1
Liczba gatunkw:206
Rozmiar najwikszego gatunku: 20

69.2
8

69.3
Najwiksza liczba genw w genotypie: 11
Najduszy gen: 189

69.4
Liczba genotypw odpornych: 249
Liczba genotypw silnie odpornych: 187

Zadanie 70.

70.1.
Pozostaa powierzchnia materiau: 117.705
476 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

70.2.
Pani Binarna musi kupi 126 m tamy.
Odpowied bdna, wynikajca z bdnego zaokrglenia: 125.
Odpowied bdna, wynikajca z braku dodania odcinkw poziomych i pionowych do
dugoci krzywej: 57.

70.3.
Suma dugoci pasw jest rwna 429 m.
Odpowied bdna: 445 m. Wynika ona ze zego obliczenia cakowitej dugoci kadego pasa
(niezaokrglenia w d).
Odpowied bdna: 447 m. Wynika ona ze zego obliczenia dugoci pasa podzielenia
jednego pasa na 2 czci (odpowiednio dla funkcji f(x) oraz g(x)) oraz bdnego obliczenia
cakowitej dugoci kadego z dwch pasw (brak zaokrglania w d).

Zadanie 71.

71.1.
2.09032

71.2.
Dla dwu wartoci: x = 4.092, x = 4.093 zachodzi przybliona rwno f(x) 3.06495.

71.3.
Miejsce zerowe : 0.53656
Miejsce zerowe : 2.52073
Miejsce zerowe : 3.31769
Miejsce zerowe : 4.84971

Zadanie 72.

72.1.
Przykadowe rozwizanie znajduje si w pliku rozw1.cpp. Prawidowa odpowied:
Pierwsza para:
feycznvjtboxfx gthzgbpglrwjqxqlculgwzdhuevrmvssozrwdjcqcb
Par znalezionych:
70

72.2.
Przykadowe rozwizanie znajduje si w pliku rozw2.cpp. Prawidowa odpowied:
kxazlp kxazlpe e
ifvjhuqvh ifvjhuqvhcupzcpw cupzcpw
aznqxr aznqxryrbgshtceaylwak yrbgshtceaylwak
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
477
72.3.
Przykadowe rozwizanie znajduje si w pliku rozw3.cpp. Prawidowa odpowied:
Maksymalna koncowka: 15
zccvywdcmjrdokqzcnayixplhkrf sarkqzcnayixplhkrf
iokvlepqzeyvycfjkliiutmzqawwjxgf
dfcfyddwodduznkmivqxnrdliiutmzqawwjxgf
psmwjyystgwchofokzvmkmgusfakroambngky mabgusfakroambngky

Zadanie 73.

73.1.
Przykadowe rozwizanie znajduje si w pliku rozw1.cpp. Prawidowa odpowied:
Slow z dwoma kolejnymi literami: 204

73.2.
Przykadowe rozwizanie znajduje si w pliku rozw2.cpp. Prawidowa odpowied:
A: 632 (7.56%)
B: 196 (2.34%)
C: 162 (1.94%)
D: 422 (5.05%)
E: 1092 (13.06%)
F: 213 (2.55%)
G: 151 (1.81%)
H: 565 (6.76%)
I: 521 (6.23%)
J: 2 (0.02%)
K: 64 (0.77%)
L: 402 (4.81%)
M: 193 (2.31%)
N: 557 (6.66%)
O: 641 (7.66%)
P: 93 (1.11%)
Q: 6 (0.07%)
R: 523 (6.25%)
S: 484 (5.79%)
T: 792 (9.47%)
U: 185 (2.21%)
V: 84 (1.00%)
W: 196 (2.34%)
X: 3 (0.04%)
Y: 185 (2.21%)
Z: 0 (0.00%)

73.3.
Przykadowe rozwizanie znajduje si w pliku rozw3.cpp. Prawidowa odpowied:
Najdluzszy ciag spolglosek: 4
478 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Znalezionych slow: 6
Pierwsze z nich: FRIENDSHIP

Zadanie 74.

74.1.
Prawidowa odpowied:
16
Bdne odpowiedzi:
84 liczba hase zoonych tylko z liter (zapomniano zanegowa sprawdzany warunek)
9 rozwizanie z warunkiem '0' <= c && c < '9'
3 rozwizanie z warunkiem '0' < c && c <= '9'
1 rozwizanie z warunkiem '0' < c && c < '9'

74.2.
8Y7JGYXXR5
Ehz018657
PAsCMQaervw
cefdi
cek
ikfLDegQXj
jir
yvm249t83o04

74.3.
Prawidowa odpowied:
39
Bdne odpowiedzi:
30 rozwizanie, ktre rozwaa tylko hasa co najmniej 5-literowe
2 rozwizanie, ktre tylko sprawdza, czy cztery kolejne znaki ASCII wystpuj na
kolejnych pozycjach, np. ABCD
47 lub 38 rozwizanie, ktre szuka 4 kolejnych znakw ASCII w caym hale, a nie we
fragmencie 4-literowym.

74.4.
Prawidowa odpowied:
40
Bdne odpowiedzi:
73 rozwizanie, ktre nie sprawdza, czy w hale wystpuje cyfra
72 rozwizanie, ktre nie sprawdza, czy w hale wystpuje maa litera
68 rozwizanie, ktre nie sprawdza, czy w hale wystpuje dua litera
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
479
Zadanie 75.

75.1.
Przykadowe rozwizanie znajduje si w pliku rozw1.cpp. Prawidowa odpowied:
did
desired
destroyed
devised

75.2.
Przykadowe rozwizanie znajduje si w pliku rozw2.cpp. Prawidowa odpowied:
wkqoocjqwo
iujolqzzwr
udwjtljuip
tlcpgujurjqk
yplcjdwotwr
kqrrfwwcjtl
mupmwjpqpg
kqrrfwwcjtl
wotchfqolwr

75.3.
Przykadowe rozwizanie znajduje si w pliku rozw3.cpp. Prawidowa odpowied:
Klucz szyfrujacy numer 1: (3,7)
Klucz deszyfrujacy numer 1: (9,15)
Klucz szyfrujacy numer 2: (1,3)
Klucz deszyfrujacy numer 2: (1,23)
Klucz szyfrujacy numer 3: (17,14)
Klucz deszyfrujacy numer 3: (23,16)
Klucz szyfrujacy numer 4: (7,0)
Klucz deszyfrujacy numer 4: (15,0)
Klucz szyfrujacy numer 5: (25,13)
Klucz deszyfrujacy numer 5: (25,13)

Zadanie 76.

76.1.
ramnfrayooyauymtkgsrrnyyzianmaooldlctatsocthurtzuk
slsWdrnazkryjiAeaseeznktiAnoejrdraikacFwNmKtkeeoyK
jltDereaaonaLaAiiknBimeurAalaAliKrzrasgDaaaicaoaot
zawSKndGoOLaozWrorlcaalnnwnpkorocaWcPzwdieazszaesk
btsdogdbeKoulrSanPotkMenmlaiwasjzMnyryLuywrtmirRBe
ktjwaoSkKoctcoSrasioarlrluewblTnfzoGetiaSkeruDKapi

76.2.
cosnyzcahnzdoolynturmoifaraatmkaalgorytmystruktury
480 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

76.3.
csonozolzhcynadyrutkurtsymtyroglaakytamrofniarutam

Zadanie 77.

77.1.
19 powtrze klucza
EI XILLG AWLMA HCFLLGGKG LKCO JSHKAJNBSIOJ, JPVUCYZX CEUWC OQQ UKDKR SMLX
QZLWEGMWZKXS, UW ZGG VGXMA RXAQQ HGRRXSOJ. U KMEJK MGX WKPGZ OPXKD
HXSVPMNG, FM PHC PIGXS EWWYF YKBETKUNG. M HGRJB KVZM OQQ UKD BHKCO TNQQPBZ,
RH PTLQEWBMFNZGIG KGJMDXC V XEYO VCFZGLMT. RXRTJ JSIFAJDRM.

77.2.
W RZECZYWISTOSCI PRZESZLOSC NIE ISTNIEJE, JEDYNIE WSPOMNIENIE PRZESZLOSCI.
MRUGNIJCIE OCZAMI, A SWIAT KTORY ZOBACZYCIE NIE ISTNIAL KIEDY ZAMYKALISCIE
POWIEKI. JEDYNYM WLASCIWYM STANEM UMYSLU JEST ZASKOCZENIE. JEDYNYM
WLASCIWYM STANEM SERCA JEST RADOSC. NIEBO KTORE WIDZICIE NIE BYLO JESZCZE
NIGDY PRZEZ WAS OGLADANE. MOMENT ABSOLUTNEJ PERFEKCJI JEST TERAZ. CIESZCIE
SIE NIM. TERRY PRATCHETT.

77.3.
Liczniki wystpie liter:
A - 8 H - 21 O - 10 V - 11
B - 19 I - 12 P - 10 W - 21
C - 13 J - 13 Q - 8 X - 12
D - 21 K - 6 R - 11 Y - 10
E - 19 L - 14 S - 12 Z - 7
F - 4 M - 16 T - 17
G - 8 N - 15 U - 13
12.52 szacowana dlugosc klucza
13 dokladna dlugosc klucza

Zadanie 78.

78.1.
Dlugosc pierwszej wiadomosci = 232
Bajty pierwszej wiadomosci po przetworzeniu: 12 94 94 57 96 115 51 90
Skrot pierwszej wiadomosci = MQQFSLZM
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
481
78.2.
1 MQQFSLZM
2 WWXRFKEC
3 UAQFAKQN
4 WVTFWMLI
5 WMXQBVTU
6 IRCEIIDN
7 DLGULFST
8 UIZVEUSE
9 DMWHUXTH
10 UFHRHSXM
11 TFUKGFXW

78.3.
1 3 4 8 9 11

Zadanie 79.

79.1.
wiartka I: 1339,
wiartka II: 274,
wiartka III: 166,
wiartka IV: 218,
Pozostae okrgi: 3.

79.2.
Liczba lustrzanych par: 158.

79.3.
Liczba par prostopadych : 231.

79.4.
Dugoci kolejnych acuchw: 6, 3, 11, 7, 4, 5, 12, 36, 18, 53, 87, 21, 73, 39, 31, 12, 41, 10,
64, 22, 57, 31, 41, 50, 65, 73, 45, 18, 37, 28
Najduszy acuch ma dugo 87.

Zadanie 80.

80.1.
Poprawna odpowied: 4, 3, 5; 13, 85, 84; 33, 65, 56; 28, 45, 53.
Odpowied z bdem, ktry wynika z pominicia jednego z trjktw albo z podania tylko
trjktw, ktrych boki podane s w takiej kolejnoci, e na kocu wystpuje bok najduszy:
4, 3, 5; 28, 45, 53.
482 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

80.2.
Poprawna odpowied: 29694.
Odpowied z bdem, ktry wynika z pominicia jednego z trjktw albo z podania wyniku
dla bdnej nierwnoci trjkta, z bdem polegajcym na zamianie nierwnoci ostrej na
nieostr (czyli za dugoci bokw trjkta uznawane s liczby a, b, c, takie e a+b=c).
Odpowied: 285412.

80.3.
Poprawna odpowied: 2343790
Odpowied z bdem, ktry wynika z liczenia kadego trjkta szeciokrotnie, z
uwzgldnieniem rnej kolejnoci dugoci krawdzi (np. (1, 3, 5), (1, 5, 3), (3, 1, 5), (3, 5, 1),
(5, 1, 3) i (5, 3, 1)). Odpowied: 62343790=14062740
Odpowied z bdem, w ktrym podany jest wynik dla bdnej nierwnoci trjkta, z bdem
polegajcym na zamianie nierwnoci ostrej na nieostr (czyli za dugoci bokw trjkta
uznane s liczby a, b, c, takie e a+b=c). Odpowied: 2354017.

Zadanie 81.

81.1.
2

81.2.
24

81.3.
A(-30;23), B(75, -62), C(25, 48), obwd: 316,34

81.4.
18

81.5.
S cztery takie czworokty:
-18,-23 15,1 -49,-38 -48,-48
17,-19 -36,6 -37,-28 1,1
-28,-35 -16,39 -36,-10 -38,-38
-14,49 27,39 48,-3 7,7
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
483
Zadanie 82.

82.1.
Prawidowa odpowied:
populacja wilkw: 43,46, populacja zajcy: 118,06.
Bdna odpowied (wynik wzity o jeden miesic za wczenie/pno):
populacja wilkw: 43,07, populacja zajcy: 118,24
populacja wilkw: 43,85, populacja zajcy: 117,86

82.2.
n=53, m=98.

82.3.

82.4.
Prawidowa odpowied
Zajce Wilki
Najmniejsza
80,71 28,05
warto populacji
Najwiksza
123,32 54,15
warto populacji
Bdna odpowied (rozwizanie, w ktrym zaokrgla si wyniki porednie):
Zajce Wilki
Najmniejsza warto
80,65 28,00
populacji
Najwiksza warto
123,39 54,21
populacji
484 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 84.

84.1.
43 razy tankowa Pb95.
78 razy tankowa LPG
200 dni jecha, korzystajc tylko z LPG.

84.2.
26.01.2014 r.

84.3.
Przykadowy poprawny wykres:

84.4.
Wydatki na Pb95 i LPG (wraz z kosztem instalacji): 8373,06
Wydatki na Pb95: 8965,23

Zadanie 85.

85.1.
41 406 l

85.2.
8 360 sztuk
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
485
85.3.
2014-05-04
50 dni

85.4.
liczba sprzedanych
miesic oscypkw
kwiecie 72
maj 1626
czerwiec 1656
lipiec 1628
sierpie 1243
wrzesie 586

Liczba sprzedanych oscypkw


1800
1600
1400
1200
1000
800
600
400
200
0
kwiecie maj czerwiec lipiec sierpie wrzesie

85.5.
744

85.6.
skad mleka liczba oscypkw
tylko mleko owcze 6811
20% mleka krowiego 8470
40% mleka krowiego 11298
486 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 86.

86.1.
A1: 94989 B1: 72187 C1: 79735 D1: 73580
A2: 61487 B2: 71950 C2: 73675 D2: 71402
A3: 67178 B3: 62913 C3: 65751 D3: 60146
A4: 70318 B4: 69326 C4: 69332 D4: 63234
A5: 74985 B5: 75045 C5: 75876 D5: 51362
Przykadowy wykres:

86.2.
K1: A2, K2: D5, K3: A5, K4: B4, K5: D5.

86.3.
K1: 8, K2: 4, K3: 7, K4: 8, K5: 3.

86.4.
Poprawna odpowied:
Wariant standardowy: K1: 94, K2: 57, K3: 82, K4: 126, K5: 41
Przykadowe bdne odpowiedzi wynikajce z zaokrglania wspczynnika wK do liczby
cakowitej: K1: 95, K2: 57, K3: 82, K4: 125, K5: 41
Wariant regionalny: K1: 97, K2: 56, K3: 82, K4: 127, K5: 38
Przykadowe bdne odpowiedzi wynikajce z zaokrglania wspczynnika wK do liczby
cakowitej: K1: 98, K2: 56, K3: 82, K4: 126, K5: 38

86.5.
Dla m=10: 47500
Dla m=20: 48750
Dla m=50: 49500
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
487
Zadanie 87.

87.1.
1 czerwca 1945 / 30. dnia podry.

87.2.
7701,9.

87.3.
Przykad poprawnej odpowiedzi:

odlego przebyta w kolejnych dniach rejsu

140

120

100

80

60

40

20

0
10.05.1945 24.05.1945 7.06.1945 21.06.1945 5.07.1945 19.07.1945 2.08.1945 16.08.1945
3.05.1945 17.05.1945 31.05.1945 14.06.1945 28.06.1945 12.07.1945 26.07.1945 9.08.1945

87.4.
14 sierpnia 1945 / 104. dnia podry.

87.5.
9811,7.

Zadanie 88.

88.1.
Firma sprzeda 592 choinki, a 8 zostanie na placu.
488 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

88.2.
Przykad poprawnej odpowiedzi:

Liczba choinek rano z podziaem na sprzedane i pozostae


80

pozostao
70

60

50

40

30

20

10

0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

88.3.
Poprawna odpowied: 11. dnia sprzeday / 11 grudnia.

88.4.
Poprawna odpowied: 17 dostaw; poprawny jest dowolny ich harmonogram, pod warunkiem,
e druga bdzie nie pniej ni 4. dnia, trzecia nie pniej ni 6. dnia, czwarta nie pniej ni
8. dnia, sidma nie pniej ni 12. dnia, a czternasta nie pniej ni 20. dnia.
Przy harmonogramie odpowiadajcym tym warunkom firma sprzeda 819 choinek.

88.5.
Poprawna odpowied: Po 24 dostawach, kada po 35 choinek, na placu pozostan 21
drzewka.

Zadanie 90.

90.1.
Poprawna odpowied:
Katowice, 57 studentw,
najpopularniejsza uczelnia to Politechnika Informatyczno-Elektroniczna.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
489
90.2.
143 miejsca
<=2256 lub <2257denarw

90.3.
Uczelnia redni_dochd
Uniwersytet Krolewski 1832,22
Akademia Sztuk Pieknych 1985,98
Politechnika Krolewska 1947,34
Politechnika Informatyczno-Elektroniczna 1814,20
Uniwersytet Sportu i Turystyki 1923,81
Wyzsza Szkoa Techniczna 1871,07
Uniwersytet Muzyczny 2124,00
Uniwersytet Pedagogiczny 1858,47
Uniwersytet Ekonomiczny 1921,06
Uniwersytet Rolniczy 1898,49
490 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

90.4.
Przykad poprawnej odpowiedzi:
Uczelnie I II III IV V
Akademia Sztuk Pieknych 32 10 6 2 5
Politechnika Informatyczno-Elektroniczna 299 108 48 54 54
Politechnika Krolewska 168 59 28 31 25
Uniwersytet Sportu i Turystyki 24 5 6 3 5
Uniwersytet Ekonomiczny 32 9 3 2 7
Uniwersytet Krolewski 233 77 53 32 61
Uniwersytet Muzyczny 5 2 0 1 0
Uniwersytet Pedagogiczny 31 11 4 2 5
Uniwersytet Rolniczy 27 14 7 5 6
Wyzsza Szkoa Techniczna 8 1 1 0 5

90.5.
Przykad poprawnej odpowiedzi:
Imie Nazwisko Miejsce_zam Dochod_na_osobe
Iwona Andrzejewska Ruda Slaska 2241
Jacek Andrzejewski Ruda Slaska 2241
Anna Barska Ogrodzieniec 1047
Barbara Barska Ogrodzieniec 1047
Krzysztof Barski Ogrodzieniec 1047
Joanna Bilska Kedzierzyn-Kozle 2807
Michal Bilski Kedzierzyn-Kozle 2807
Waclawa Borkowska Szczyrk 1683
Sylwester Borkowski Szczyrk 1683
Piotr Jablonski Sanok 1185
Zygmunt Jablonski Sanok 1185
Tomasz Kaczmarek WodzislawSlaski 1140
Weronika Kaczmarek WodzislawSlaski 1140
Przemyslaw Kaczmarek WodzislawSlaski 1140
Klaudia Kotowicz Katowice 1950
Tadeusz Kotowicz Katowice 1950
Felicja Ostrowska Tarnowskie Gory 2466
Boguslawa Ostrowska Tarnowskie Gory 2466
Robert Tomaszewski Wisla 1511
Bartosz Tomaszewski Wisla 1511

Zadanie 91.

91.1.
Beatrycze
Doris
Ines
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
491
91.2.
08321103754 Wizniewski Andrzej
09321501177 Wizniewski Andrzej
08322201772 Michalak Krzysztof
09311310792 Michalak Krzysztof
66100294134 Kowalczyk Mateusz
59031152059 Kowalczyk Mateusz
09211700664 Kozlowska Malgorzata
09313003607 Kozlowska Malgorzata
67112966668 Kozlowska Malgorzata

91.3.
Najwiksza liczba porzdkowa: Piotr Dzierzak
Najmniejsza liczba porzdkowa: Amelia Wendt

91.4.
Liczba osb urodzonych w poszczeglnych miesicach:
stycze 68
luty 33
marzec 9
kwiecie 16
maj 13
czerwiec 15
lipiec 19
sierpie 22
wrzesie 32
padziernik 67
listopad 99
grudzie 101

Liczba osb urodzonych


w poszczeglnych miesicach
120
100
80
60
40
20
0
492 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

91.5.
AWie3
AWit4
AWoj0
AWoj2
AWoj8
BWas9
JPod4
KMic2
LMar4
MKoc9
MKor0
MKow4
MLub7
NJak2
NJan3
NJan6
SCie9
SDab7
ZAda1

Zadanie 92.

92.1.
Liczba pastw: 54.
Liczba medali zdobytych na letniej olimpiadzie: 1218.

92.2.
Kontynent Olimpiady letnie Olimpiady zimowe
Afryka 297 30
Ameryka Pld. 218 52
Ameryka Pln. 236 88
Australia i Oc. 55 34
Azja 422 177
Europa 682 571
Przykadowy wykres przedstawiajcy poprawne zestawienie:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
493
92.3.
Kamerun
Burundi
Zjednoczone Emiraty Arabskie

92.4.
Afryka Kenia 86
Ameryka Pld. Brazylia 108
Ameryka Pln. StanyZjednoczone 2681
Australia i Oc. Australia 480
Azja Chiny 526
Europa ZSRR 1204

92.5.
Liczba krajw letnich: 35.
Liczba krajw zimowych: 3.

Zadanie 93.

93.1.
Ewelina Adamska

93.2.
Poprawna odpowied:
Budzianowska41
Kolarski 41
Laska 41
Maskor 41
Rzepka 42
Rzymski 42
Odpowied bdna, wynikajca z podania take nazwisk osb, ktre byy w delegacji
dokadnie 40 dni (zastosowanie nierwnoci nieostrej):
Andrycz 40
Elawa 40
Budzianowska 41
Kolarski 41
Laska 41
Maskor 41
Rzepka 42
Rzymski 42
494 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

93.3.
Radom 27599,50
Siedlce 34215,40
Zgierz 38263,50
Kutno 43372,80
Kielce 48014,70
Olsztyn 50606,60
Kalisz 51099,00
Lublin 53209,50
Mielec 54144,00
Bydgoszcz 63932,00
Krakow 80344,50
Katowice 81486,30
Malbork 84280,00

93.4.
stycze 130
luty 68
marzec 63
kwiecie 32
maj 31
czerwiec 63
lipiec 70
sierpie 54
wrzesie 121
padziernik 103
listopad 135
grudzie 130
Przykadowy wykres przedstawiajcy poprawne zestawienie:
Rozkad liczby wyjazdw w poszczeglnych miesicach
140

120

100

80

60

40

20

0
kwiecie
luty

maj

wrzesie
marzec

listopad
stycze

czerwiec

sierpie
lipiec

padziernik

grudzie
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
495
93.5.
Liczba noclegw pracownikw we wszystkich delegacjach 1,64 0,01
Liczba noclegw pracownikw w delegacjach co najmniej 2-dniowych 2,25 0,01

Zadanie 94.

94.1.
Przyrost procentowy: 270%
Identyfikator dziecka: ID_dz: 718

94.2.
od 10 lat do 13 lat

94.3.
17 dzieci

94.4.
dla dziewczt: w smym roku ycia
dla chopcw: w jedenastym roku ycia

94.5.
1rok 10lat 19lat
centyl 5. 68 128 166
centyl 95. 80 147 187

94.6.
dlugosc_ur 1rok 2lata 3lata 4lata 5lat 6lat 7lat 8lat 9lat
mediana 52 74 87 96 103 110 116 121 127 132

10lat 11lat 12lat 13lat 14lat 15lat 16lat 17lat 18lat 19lat
mediana 138 143 149 156 163 169 173 175 176 176
496 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 95.

95.1.
LPP 7485,84
WAWEL 960,06
PZU 481,56

95.2.
MILKILAND 27,85%

95.3.
rodzaj licznik obrot_zl
krajowa 418 2427046811
zagraniczna 52 29736190
Procentowy udzia obrotw spek krajowych = 98,79%

95.4.
data M WIG
2015-01-21 281 091 498 490,00 50 987,13
2015-01-22 284 219 170 040,00 51 554,46
2015-01-23 285 297 764 160,00 51 750,07
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
497
95.5.
kup 53
sprzedaj 20
obserwuj 397

Zadanie 96.

96.1.

96.2.
stosunek liczby ludnoci w miastach do liczby ludnoci wsi:
w roku 2013 : 1,53
w roku 2050 : 1,24

96.3.
redni wiek mczyzny zamieszkaego w miecie:
w roku 2013 : 39
w roku 2050 : 48

96.4.
rok wiek 2022 51 2032 52 2042 57
2013 49 2023 50 2033 53 2043 57
2014 49 2024 51 2034 53 2044 58
2015 49 2025 52 2035 54 2045 59
2016 49 2026 51 2036 55 2046 60
2017 48 2027 51 2037 54 2047 59
2018 49 2028 52 2038 55 2048 60
2019 48 2029 53 2039 56 2049 61
2020 49 2030 53 2040 57 2050 61
2021 50 2031 53 2041 56
W niektrych latach kalendarzowych (np. 2019) bdzie mie miejsce taka sytuacja, e kobiety
w pewnym wieku (np. 48 lat) uzyskaj przewag liczebn nad mczyznami, ale w kolejnej
498 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

grupie wiekowej (49 lat) znw bdzie ich mniej ni mczyzn, dopiero w nastpnej grupie
wiekowej (50 lat) rozpocznie si trwaa przewaga liczebna kobiet.
Ponisze zestawienie podaje take te drugie progi wiekowe w danych latach kalendarzowych,
np. w roku 2019 kobiety po raz pierwszy przewa nad mczyznami w grupie wiekowej 48
lat, a po raz drugi, ju trwale, w grupie wiekowej 50 lat.
Poniewa w treci zadania byo pytanie o najniszy wiek, w ktrym kobiety przewaaj
liczebnie nad mczyznami, taka odpowied uzyskaaby niepeny wymiar punktw.

96.5.

Poprawne zestawienie procentowe ludnoci grupy w wieku produkcyjnym w kolejnych


latachrok % prod
2013 69% 2020 67% 2027 63% 2034 63% 2041 62%
2014 69% 2021 66% 2028 63% 2035 63% 2042 61%
2015 69% 2022 66% 2029 63% 2036 63% 2043 61%
2016 69% 2023 65% 2030 63% 2037 63% 2044 61%
2017 68% 2024 64% 2031 63% 2038 62% 2045 60%
2018 68% 2025 64% 2032 63% 2039 62% 2046 60%
2019 67% 2026 64% 2033 63% 2040 62% 2047 59%
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
499
2048 58% 2049 58% 2050 57%

Zadanie 97.

97.1.
Liczba miesicy wysokiego zagroenia: 42

97.2.
Rok 1953 3,64
Rok 1982 10,85

97.3.
ROK MIN MAX ROK MIN MAX
1945 3,2 4,4 1980 7,2 8,8
1946 3,5 4,5 1981 8,2 9,3
1947 5,0 7,1 1982 9,9 12,4
1948 4,0 5,0 1983 8,3 11,4
1949 5,3 8,9 1984 7,3 9,0
1950 3,8 7,5 1985 7,0 8,4
1951 3,5 4,7 1986 6,6 8,2
1952 2,7 4,4 1987 5,7 7,6
1953 3,2 4,5 1988 5,3 6,7
1954 5,0 7,1 1989 5,4 6,4
1955 4,2 5,9 1990 6,2 7,2
1956 4,2 5,4 1991 7,3 8,0
1957 4,7 6,1 1992 7,4 8,8
1958 6,2 8,5 1993 6,5 8,3
1959 5,3 7,0 1994 5,5 7,6
1960 5,8 7,1 1995 5,6 6,8
1961 6,0 8,1 1996 5,4 6,6
1962 5,5 6,8 1997 4,7 6,3
1963 5,5 6,9 1998 4,4 5,7
1964 5,0 6,6 1999 4,0 5,4
1965 4,0 6,1 2000 3,9 5,1
1966 3,8 5,0 2001 5,2 6,5
1967 3,8 5,0 2002 6,0 6,9
1968 3,4 4,8 2003 5,7 7,3
1969 3,5 4,7 2004 5,4 6,8
1970 4,9 6,9 2005 4,9 6,4
1971 6,0 7,1 2006 4,4 5,8
1972 5,2 6,8 2007 5,0 5,7
1973 4,9 6,0 2008 5,8 7,9
1974 6,1 7,6 2009 8,7 11,1
1975 8,2 10,0 2010 9,4 10,9
1976 7,8 8,9 2011 8,5 10,2
1977 6,4 8,6 2012 7,8 9,3
1978 6,0 7,4 2013 6,7 8,9
1979 6,0 7,0 2014 5,7 7,7

Przykadowy wykres przedstawiajcy poprawne zestawienie:


500 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

97.4.
Najduszy cig: 13.
Pocztek cigu: II 1994.
Koniec cigu: II 1995.

97.5.
Liczba lat: 15.

Zadanie 98.

98.1.
Liczba dziewczt 2779
Liczba chopcw 2781

98.2.
Rodzaj szkoy pyt1 pyt2 pyt3 pyt4 pyt5 pyt6
G 2,93 2,33 2,51 2,69 2,99 2,96
LO 3,02 2,27 2,59 2,60 3,01 2,97
SP 3,52 1,99 2,26 2,65 3,03 3,35
SZ 3,01 2,21 2,45 2,63 3,09 3,04
T 3,02 2,01 2,53 2,65 3,07 2,94
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
501
98.3.
GM07 3,63 GM12 3,13 GM13 3,08 GM04 3,02
GM08 3,37 GM11 3,12 GM16 3,07 GM05 2,98
GM17 3,28 GM09 3,11 GM19 3,05 GM20 2,96
GM01 3,26 GM02 3,09 GM03 3,05 GM18 2,96
GM15 3,18 GM06 3,09 GM10 3,03 GM14 2,92

98.4.
G 80
LO 94
SP 70
SZ 12
T 35

98.5.
Lipcowa Rosa 390

98.6.
Rodzaj szkoy liczba dziewczyt liczba chopcw
G 130 119
LO 116 108
SP 276 307
SZ 19 35
T 77 65

Zadanie 100.

100.1.
rednia liczba
Lista
punktw
C1 11,80
C2 11,07
C3 9,67
C4 10,62
C5 10,02
C6 10,55
C7 11,13
P1 17,95
P2 19,65
P3 19,98
P4 20,83

100.2.
Albert Mikos
Lukasz Rdzanek
Dawid Zajaczkowski
502 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

100.3.
ocena liczba
uczniw
1 0
2 1
3 5
4 18
5 36

100.4.
punkty G1 G2 G3 G4 G5
10 12 9 20 21 14
11 11 17 39 15 14
12 25 33 43 50 31

100.5.
Robert Czaja
Bartlomiej Gosk
Albert Mikos
Krzysztof Plata
Igor Rybarczyk
Karol Wojciul

Zadanie 101.

101.1.
90 kobiet i 45 mczyzn

101.2.
Obiekt Warto
Active 3334
Aqua Park 2218
Bodyfit 2180
Lady Fitness Club 924
Platinium Center 1419
Pure Jatomi 1771
Redeco 3613
Spartan 3173
Top-Gym 1804

101.3.
Nazwisko Imi
Kowalska Maria
Olech Klaudia
Pozarzycka Justyna
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
503
101.4.
Silownia, 127 osb, Spartan

101.5.
Obiekt Liczba wej
Active 339
Aqua Park 226
Bodyfit 223
Lady Fitness Club 84
Platinium Center 120
Pure Jatomi 161
Redeco 383
Spartan 300
Top-Gym 164

Zadanie 102.
Realizacja komputerowa rozwizania (wszystkich zada z wizki) znajduje si w pliku
portal.accdb.

102.1.
231

102.2.
Joshua King Stany Zjednoczone
Joshua Nelson Stany Zjednoczone

Miguel Barbosa Portugalia


Miguel Rocha Brazylia

102.3.
Stany Zjednoczone 61
Kanada 41
Polska 33
Wielka Brytania 32
Niemcy 29
Brazylia 27
Hiszpania 26
Francja 24
Rosja 24
Holandia 22

102.4.
Antonio Reyes (1896 x1926)

102.5.
Prawidowa odpowied (24 wiersze):
504 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Fabian Aigner Austria


Matthias Becker Niemcy
Leonardo De Luca Wlochy
Mehmet Demir Turcja
Keiji Fukuda Japonia
Lovro Gradic Chorwacja
Jayden Harper Kanada
Anton Ivanov Rosja
Davit Khachatryan Armenia
Joshua King Stany Zjednoczone
Artjoms Klavins Lotwa
Said Koudri Algieria
Serhij Kovalenko Ukraina
Nathan Mercier Francja
Cristian Munteanu Rumunia
Jiri Novotny Czechy
Theo Peeters Belgia
Ioannis Petridis Grecja
Sebastian Quispe Peru
Samuel Ramirez Stany Zjednoczone
Allan Smith Wielka Brytania
Hikari Takeuchi Japonia
Hakan Yilmaz Turcja
Aiden Young Stany Zjednoczone

Zadanie 103.

103.1.
Grabowska Waclawa 58 17
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
505
103.2.
Poprawna odpowied:
Dolnoslaski 14414
Slaski 8540
Opolski 8490
Lubuski 7552
Pomorski 7351
Wielkopolski 7080
Swietokrzyski 5532
Mazowiecki 5345
Kujawsko-Pomorski 5317
Zachodniopomorski 5271
Lubelski 5097
Lodzki 4829
Podlaski 3700
Podkarpacki 3406
Maopolski 2399
Warminsko-Mazurski 358
Odpowied bdna, wynikajca z policzenia zamiast kosztw bada ich liczby:
Dolnoslaski 360
Opolski 210
Slaski 209
Lubuski 189
Pomorski 183
Wielkopolski 175
Swietokrzyski 137
Kujawsko-Pomorski 135
Mazowiecki 134
Zachodniopomorski 133
Lubelski 128
Lodzki 120
Podlaski 96
Podkarpacki 84
Maopolski 59
Warminsko-Mazurski 9

103.3.
Poprawna odpowied dla punktu a):
RTG przedramienia 352
Poprawna odpowied dla punktu b):
RTG przedramienia 337

103.4.
Liczba kobiet 339.
Liczba mczyzn 477.
506 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

103.5.
Poprawna odpowied:
4 2
5 4
6 19
7 95
8 192
9 289
10 215
Za poprawn odpowied uznaje si take zestawienie, do ktrego wczone s 3 pierwsze
dziesiciolecia z liczb pacjentw rwn zero.
Odpowied bdna, wynikajca z podania kolejnych dziesitek jako pierwszej cyfry z roku
urodzenia:
3 2
4 4
5 19
6 95
7 192
8 289
9 215

Zadanie 104.

104.1.
30.03.2015, 56 recept

104.2.
Leki przeciwnowotworowe i immunomodulujace inhibitory enzymow doustne
inhibitory aromatazy

104.3.
Miesic Liczba recept Warto wszystkich lekarstw
1 800 71 698,64 z
2 742 61 522,39 z
3 936 75 405,95 z

104.4.
Cena_detaliczna Nazwa_grupy
4770,46 Hormony przysadki i podwzgorza - inhibitory hormonu wzrostu
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
507
104.5.
ID_recepty Data
28/2015 2015-01-02
64/2015 2015-01-05
655/2015 2015-01-27
673/2015 2015-01-27
710/2015 2015-01-28
1133/2015 2015-02-12
1274/2015 2015-02-18
1289/2015 2015-02-18
1517/2015 2015-02-27
2014/2015 2015-03-17
2209/2015 2015-03-24

Zadanie 105.

105.1.
Sklep wystawi 540 faktur. Najwiksza warto faktury wynosi 1250. Wicej ni jedn
faktur dostao 33 klientw.

105.2.
Miasto Liczba zamwie
Bielawa 5
Jelenia Gora 5
Olawa 1
Olesnica 1
Sobotka 8
Trzebnica 4
Walbrzych 5
Wolow 13
Wroclaw 33
Zlotoryja 3

105.3.
Nazwisko Imie Liczba sadzonek Nazwa
Gryczka Nina 12 Symphytum grandiflorum Goldsmith
Gorska Oliwia 14 Symphytum grandiflorum Goldsmith
Gondek Oliwia 12 Symphytum grandiflorum Goldsmith
Szubarczyk Dawid 11 Symphytum grandiflorum Goldsmith
Mezynska Lena 14 Symphytum x uplandicum Axmister s Gold
Boleski Tymon 12 Symphytum x uplandicum Axmister s Gold
Jezierska Nadia 12 Symphytum x uplandicum Axmister s Gold
Bzwka Szymon 13 Symphytum x uplandicum Axmister s Gold
508 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

105.4.
Primula japonica
Carex Comans
Echinacea Tomato Soup
Echinacea Black Beauty

105.5.
Rozmiary doniczki Liczba zamwie
10x10x20 85
11x11x11 355
13x13x13 96
9x9x12 429
9x9x9 1051

Zadanie 106.

106.1.
bogatka, sroka, myszolow

106.2.
Miesic liczba remizw
5 2
6 9
7 3
8 12
9 2

106.3.
nazwa_zwyczajowa liczba_lokalizacji_miejskich
gawron 7
kawka 16
kruk 7
wrona siwa 20

106.4.
a)
lokalizacja data czas czna_liczebnosc
Tadzino 2014-07-18 960 13
b)
lokalizacja data sprawno
Jezioro Zarnowieckie 2014-12-03 143,875
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
509
106.5.
a) 1624,
b) tabela poniej
Zachowanie obserwowanego ptaka
powiat brak
gniazduje leci odpoczywa zeruje
informacji
chojnicki 2
gdanski 7 35 3 8
kartuski 1 6
koscierski 120
malborski 5
pucki 111 580 90
starogardzki 307
wejherowski 22 243 17 67

Zadanie 107.

107.1.
Warszawa 83
Dusseldorf 78
Warszawa Modlin 68

107.2.
Krankowska Joanna 16
Lipinski Artur 16
Wilkonska Marta 18
Wirowski Marcin 16
Wronikowska Magdalena 19

107.3.
4 69
5 86
6 91

107.4.
Gumowska Anna
Hanke Amelia
Kowal Waldemar
Krupa Jan
Krupa Mariola
Kupinski Jakub
Lipinski Artur
Lis Krystyna
Pawlikowska Beata
Sibilska Monika
Tobera Jowita
510 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Waruszewska Agnieszka
Wilczek Agata
Wirowski Marcin
Wojtas Sylwester
Zawadzka Monika

107.5.
21 Bolonia
99 Barcelona
316 Warszawa
522 Liverpool
987 Oslo Torp

Zadanie 108.

108.1.
45 171

108.2.
DW990, 13 km

108.3.
22, Berlinka, 8,2 km

108.4.
Autostrada Toruska
Gliwicka Autostrada

108.5.
Prawidowa odpowied z wykorzystaniem kwerendy krzyowej (MS Access):
kategoria drogi
autostrada droga ekspresowa droga krajowa droga wojewdzka
Blisko od szosy 23 50 136 233
Czysta Nafta 25 44 105 235
Dobre Paliwo 22 56 112 223
Dyskont paliwowy 21 46 117 230
Green Fuel 19 40 120 261
Najpierw Ropa 23 45 128 217
Nitrogaz 31 52 120 205
Petrochemia Centralna 21 42 120 213
Standard Oil 21 50 127 241
Dopuszczamy te odpowied w tabeli skadajcej si z kolumn: nazwa sieci, kategoria drogi,
liczba stacji.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
511
Zadanie 109.

109.1.
Rusztowanie aluminiowe o wysokoci 5m, 28 wypoycze.

109.2.
1 750 z

109.3.
Imi Nazwisko
Marcin Budzisz
Wojciech Dudek
Izabela Kusz

109.4.
68

109.5.
Miesic Przychd z wynajmu Miesic Przychd z transportu
1 43 307,00 z 1 850,00 z
2 35 441,00 z 2 900,00 z
3 46 181,00 z 3 1 200,00 z
4 54 162,00 z 4 1 300,00 z
5 81 019,00 z 5 1 950,00 z
6 95 315,00 z 6 1 600,00 z
7 111 173,00 z 7 2 450,00 z
8 96 436,00 z 8 2 600,00 z
9 101 491,00 z 9 1 800,00 z
10 66 041,00 z 10 850,00 z
11 47 754,00 z 11 700,00 z
12 36 435,00 z 12 900,00 z

Zadanie 110.

110.1.
913
512 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

110.2.
Typ miejscowosci Liczba miejscowosci
wies 148
osada 47
osada lesna 12
kolonia 10
miasto 3
przysiolek 1

110.3.
Nazwa powiatu Nazwa wojewodztwa
bielski podlaskie
bielski slaskie
brzeski maopolskie
brzeski opolskie
grodziski mazowieckie
grodziski wielkopolskie
krosnienski podkarpackie
krosnienski lubuskie
nowodworski pomorskie
nowodworski mazowieckie
opolski lubelskie
opolski opolskie
ostrowski mazowieckie
ostrowski wielkopolskie
sredzki dolnolskie
sredzki wielkopolskie
swidnicki lubelskie
swidnicki dolnolskie
tomaszowski lubelskie
tomaszowski lodzkie

110.4.
92 gminy

110.5.
Nazwa gminy Nazwa powiatu Nazwa wojewodztwa
Jaroslaw jaroslawski podkarpackie
Jaslo jasielski podkarpackie
Jastarnia pucki pomorskie
Jastrzebie-Zdroj Jastrzebie-Zdroj slaskie
Jawor jaworski dolnoslaskie
Jaworzno Jaworzno slaskie
Jedlina-Zdroj walbrzyski dolnoslaskie
Jelenia Gora Jelenia Gora dolnoslaskie
Jordanow suski malopolskie
Jozefow otwocki mazowieckie
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
513
Zadanie 111.

111.1.
Lp kraj opis adres
1 Russia redirects to andreyzakharov.com/wp-
AppleId phishing content/plugins/wp-no-category-
base/generic/
2 Spain AppleId phishing www.matecocinas.com/productos/mesas/mesa
-brenda/4rfv/
3 Luxembo AusPost Phish, austr-post.net/open/scripts.js
urg leads to trojan
- js
4 Luxembo AusPost Phish, austr-post.net/open/index.php
urg leads to trojan
- php
5 USA Destination of whitehorsetechnolo-
banking phishing gies.net/images/clients/x/mail.php
6 Russia Amazon phishing www.amazonsicherheitonline.com/
7 Germany Amazon phishing cc8.joseppe.ru/de/amazon/amazon_check.ph
p
8 France HTML.ScrRedir.Ph rec-danse.fr/tmp/photos6.php
ish
9 France PHP.Phish rec-danse.fr/tmp/4640731669/
10 France Phish Postbank - rec-danse.fr/tmp/stat.php
stat.php
11 France Phish Postbank - rec-danse.fr/tmp/very.php
very.php
12 France Phish Postbank - rec-danse.fr/tmp/p.html
p.html
13 France JS.exploit, BoA gulsproductions.com/css/bank-of-america-
phish credit-card-payment-mailing-address
14 France Google phish - www.lajourneeducommercedeproximite.fr/jn
adw.html cp/images/documents/mouy/adw.html
15 France Google phish www.lajourneeducommercedeproximite.fr/jn
cp/images/documents/mouy/
16 France Google phish tremplin84.fr/components/BIG/2013gdocs/

111.2.
siec kraj liczbaIP licznikPozycji
OVH OVH SAS France 28 375
AMAZON-02 - Amazon.com, Inc. USA 11 190
AS-COLOCROSSING - ColoCrossing USA 4 116
HWNG Eweka Internet Services B.V. Netherlands 3 99
INFOBOX-AS Infobox.ru Autonomous System Russia 1 52
514 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

111.3.
687 rnych domen
trzy domeny maj przypisane wicej ni jeden IP:
f.cl.ly 9
directxex.com 5
dl.downf468.com 3

111.4.
Miesiac afrinic apnic arin lacnic ripencc
1 4 20 118
2 1 21 81 2 202
3 12 52 3 110
4 1 31 3 27
5 56 53 4 128
6 1 3 68
7 8 119 6 117
8 1 5
9 1 12 4 51
10 8 7
11 2 1 14 128
12 190 7 1 24

111.5.
kraj jpg png
France 2 1
Germany 0 1
Russia 0 5
USA 38 1
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
515
Zadanie 112.

112.1.
rodzaj ile_krajow
bakalie 2
baton 5
bombonierka 4
ciastka 3
ciasto 1
cukierki 4
czekolada 9
deser 2
dodatki 1
miod 1
napoje 2
przekaska 2
przetwory zbozowe 3
uzywki 5

112.2.
nazwa_firmy lokalizacja
Hoop Brno
Kraft-Foods Praha, Rohansky Ostrov
Kraft-Foods Praha, Karolinska
Mokate Votice
Pacific Antwerpia
516 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

112.3.
najmniejsza
rodzaj nazwa towaru
masa
bakalie 50 MIGDALY BLANSZOWANE
baton 28 MARCEPAN
bombonierka 37,5 ROCHER T3X16X6 FLO B POL 11
ciastka 17 PRINCE POLO ORZECHOWE
ciasto 40 FIX DO KARPATEK
cukierki 6 FIGURKA
czekolada 15 MLECZNA
deser 25 KREM O`LADA SCOOBY DOO
dodatki 3 BARWNIKI DO JAJEK
miod 15 MIOD PORCJOWANY
napoje 300 JUPIK BANAN
przekaska 37 NIC NAC'S
przetwory 20 FITNESS Z CZEKOLADA I POMARANCZA
zbozowe 6-PAK PLATKI I MLEKO
uzywki 12 LA MATTINA CAPPUCCINO Z MAGNEZEM
PALUCH

112.4.
Poprawna odpowied:nazwa masa nazwa_firmy kraj
KINDER DUPLO T 364 Ferrero Niemcy
NUTELLA G670X6 VT PR POL 11 670 Ferrero Polska
BANG BANG 1200 Millano Baron Polska
MILKA ALPEJSKIE MLECZKO 350 Kraft-Foods Szwajcaria
WANILIOWE
MILKA ALPEJSKIE MLECZKO 350 Kraft-Foods Szwajcaria
CZEKOLADOWE
KINDER DELICE KAKAO 420 Ferrero Wlochy
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
517
112.5.
kraj 0,05 0,08 0,23
Austria 3 4
Belgia 7
Czechy 20 9
Francja 1 3
Hiszpania 1
Niemcy 3 16 28
Polska 146 220 496
Slowacja 4
Szwajcaria 57
Wegry 3
Wlochy 24
518 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

5. Wykaz umiejtnoci oglnych i szczegowych


sprawdzanych zadaniami
Zadanie 1.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach;

Zadanie 2.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
Wymagania szczegowe
problemu;
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach cakowitych

Zadanie 3.
III. Rozwizywanie problemw i podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania
11) opisuje podstawowe algorytmy i stosuje:
a) algorytmy na liczbach cakowitych

Zadanie 4.
Wymagania oglne III. Rozwizywanie problemw, podejmowanie decyzji z
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
519
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5. 4 dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
5.7 opracowuje i przeprowadza wszystkie etapy prowadzce
Wymagania szczegowe
do otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
5.11 opisuje podstawowe algorytmy i stosuje
a) algorytmy na liczbach cakowitych, np.:
reprezentacja liczb w dowolnym systemie pozycyjnym,
w tym, w dwjkowym i szesnastkowym,

Zadanie 5.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.6. ocenia wasnoci rozwizania algorytmicznego, np.,
efektywno dziaania
5.11. opisuje podstawowe algorytmy i stosuje
b) algorytmy wyszukiwania i porzdkowania (sortowania),
Wymagania szczegowe
np. () algorytmy sortowania cigu liczb () przez
wstawianie
5.16 opisuje wasnoci algorytmw na podstawie ich analizy
5.18 oblicza liczb operacji wykonywanych przez algorytm

Zadanie 6.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy wyszukiwania i porzdkowania (sortowania);
18) oblicza liczb operacji wykonywanych przez algorytm

Zadanie 7.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
Wymagania szczegowe 5. Rozwizywanie problemw i podejmowanie decyzji,
520 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

stosowanie podejcia algorytmicznego. Ucze:


2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
6) ocenia wasnoci rozwizania algorytmicznego
(komputerowego), np. zgodno ze specyfikacj, efektywno
dziaania;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
8) posuguje si metod dziel i zwyciaj w rozwizywaniu
problemw;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje:
b) algorytmy wyszukiwania i porzdkowania (sortowania)
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 8.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach;

Zadanie 9.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
Wymagania szczegowe 5) posuguje si podstawowymi technikami algorytmicznymi;
8) posuguje si metod dziel i zwyciaj w rozwizywaniu
problemw;
9) stosuje rekurencje w prostych sytuacjach problemowych;
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 10.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
Wymagania szczegowe
stosowanie podejcia algorytmicznego. Ucze:
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
521
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
8) posuguje si metod dziel i zwyciaj w rozwizywaniu
problemw;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje:
c) algorytmy numeryczne, np.:
obliczanie wartoci wielomianu za pomoc schematu
Hornera
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 11.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
d) algorytmy na tekstach, w tym obliczanie wartoci
wyraenia podanego w postaci odwrotnej notacji polskiej;

Zadanie 12.
Wymagania oglne III. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
Wymagania szczegowe 5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania
11) opisuje podstawowe algorytmy i stosuje:
e) algorytmy kompresji i szyfrowania

Zadanie 13.
Wymagania oglne III. Rozwizywanie problemw i podejmowanie decyzji
522 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

z zastosowaniem podejcia algorytmicznego.


5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
Wymagania szczegowe
problemu;
11) opisuje podstawowe algorytmy i stosuje: []
f) algorytmy geometryczne
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
523
Zadanie 14.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce
Wymagania szczegowe do otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje:
f) algorytmy badajce wasnoci geometryczne
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 15.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
Wymagania szczegowe 8) posuguje si metod dziel i zwyciaj w rozwizywaniu
problemw;
11) opisuje podstawowe algorytmy i stosuje: []
a) reprezentacje liczb w dowolnym systemie;
f) algorytmy badajce waciwoci geometryczne [];
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 16.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
Wymagania szczegowe
problemu;
11) opisuje podstawowe algorytmy i stosuje: []
f) algorytmy geometryczne

Zadanie 17.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
Wymagania szczegowe 1) analizuje [] sytuacje z rnych dziedzin;
2) stosuje podejcie algorytmiczne do rozwizania
problemw;
524 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

16) opisuje wasnoci algorytmw na podstawie ich analizy;


17) ocenia zgodno algorytmu ze specyfikacj;
26) ocenia poprawno rozwizania problemu na podstawie
jego testowania;

Zadanie 18.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5. 4 dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
5.7 opracowuje i przeprowadza wszystkie etapy prowadzce
do otrzymania poprawnego rozwizania problemu: od
Wymagania szczegowe
sformuowania specyfikacji problemu po testowanie
rozwizania;
5.11 opisuje podstawowe algorytmy i stosuje
a) algorytmy na liczbach cakowitych, np.:
iteracyjna i rekurencyjna realizacja algorytmu Euklidesa,
5.12 projektuje rozwizanie problemu (realizacj algorytmu)
i dobiera odpowiedni struktur danych;
5.16 opisuje wasnoci algorytmw na podstawie ich analizy;

Zadanie 19.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
Wymagania szczegowe 4) dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach cakowitych, w tym reprezentacj
liczb w dowolnym systemie pozycyjnym.

Zadanie 20.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
Wymagania szczegowe problemu;
4) dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
5) posuguje si podstawowymi technikami algorytmicznymi;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
525
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje:
a) algorytmy na liczbach cakowitych, np.:
reprezentacja liczb w dowolnym systemie pozycyjnym,
w tym, w dwjkowym i szesnastkowym,

Zadanie 21.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5. 4 dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
5.7 opracowuje i przeprowadza wszystkie etapy prowadzce
Wymagania szczegowe do otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
5.11c) opisuje podstawowe algorytmy i stosuje
algorytmy numeryczne, np.: zastosowania schematu Hornera:
szybkie podnoszenie do potgi,
5.16 opisuje wasnoci algorytmw na podstawie ich analizy;
5.18 oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 22.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
6) ocenia wasnoci rozwizania algorytmicznego
(komputerowego), np. zgodno ze specyfikacj, efektywno
Wymagania szczegowe
dziaania;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje:
c) algorytmy numeryczne, np.:
obliczanie wartoci wielomianu za pomoc schematu
526 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Hornera
18) oblicza liczb operacji wykonywanych przez algorytm;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
527
Zadanie 23.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.2. stosuje podejcie algorytmiczne do rozwizania problemu
5.4. dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji
5.5. posuguje si podstawowymi technikami
algorytmicznymi
Wymagania szczegowe 5.11. opisuje podstawowe algorytmy i stosuje
c) algorytmy numeryczne, np.:
obliczanie wartoci pierwiastka kwadratowego
5.14. dobiera odpowiednie struktury danych do realizacji
algorytmu
5.16 opisuje wasnoci algorytmw na podstawie ich analizy

Zadanie 24.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5. 4 dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
5.7 opracowuje i przeprowadza wszystkie etapy prowadzce
do otrzymania poprawnego rozwizania problemu: od
Wymagania szczegowe sformuowania specyfikacji problemu po testowanie
rozwizania;
5.8 posuguje si metod dziel i zwyciaj w
rozwizywaniu problemw;
5.9 stosuje rekurencj w prostych sytuacjach problemowych;
5.11 opisuje podstawowe algorytmy i stosuje
b) algorytmy wyszukiwania i porzdkowania (sortowania);
5.16 opisuje wasnoci algorytmw na podstawie ich analizy;
5.18 oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 25.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.2. stosuje podejcie algorytmiczne do rozwizania problemu
5.4. dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji
Wymagania szczegowe 5.5. posuguje si podstawowymi technikami
algorytmicznymi
5.11. opisuje podstawowe algorytmy i stosuje
d) algorytmy na tekstach, np.:
528 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

sprawdzanie, czy dany cig znakw tworzy palindrom


5.14. dobiera odpowiednie struktury danych do realizacji
algorytmu

Zadanie 26.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje: []
d) algorytmy na tekstach

Zadanie 27.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
d) algorytmy na tekstach, np. [...] wyszukiwanie wzorca
w tekcie;

Zadanie 28.
III. Rozwizywanie problemw i podejmowanie decyzji []
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Zdajcy:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje: []
d) algorytmy na tekstach;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
529
Zadanie 29.
III. Rozwizywanie problemw i podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania
11) opisuje podstawowe algorytmy i stosuje
e) algorytmy kompresji i szyfrowania, np.:
kody znakw o zmiennej dugoci

Zadanie 30.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje: []
e) algorytmy kompresji i szyfrowania, np. szyfr Cezara

Zadanie 31.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje: []
e) algorytmy kompresji i szyfrowania, np. szyfr
przestawieniowy
530 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 32.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
e) algorytmy szyfrowania i kompresji

Zadanie 33.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania sytuacji
problemowej i zapisuje go w wybranej notacji;
Wymagania szczegowe
5) posuguje si podstawowymi technikami algorytmicznymi;
11) opisuje podstawowe algorytmy i stosuje: []
d) algorytmy na liczbach cakowitych, w tym reprezentacj
liczb w dowolnym systemie pozycyjnym.
12) dobiera odpowiednie struktury danych do realizacji
algorytmu, w tym struktury dynamiczne;

Zadanie 34.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych
1.1) przedstawia sposoby reprezentowania rnych form
Wymagania szczegowe informacji w komputerze: liczb, znakw, obrazw, animacji,
dwikw;

Zadanie 35.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych
1.1) przedstawia sposoby reprezentowania rnych form
Wymagania szczegowe informacji w komputerze: liczb, znakw, obrazw, animacji,
dwikw;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
531
Zadanie 36.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji z
Wymagania oglne rnych rde; opracowywanie za pomoc komputera danych
liczbowych.
2.2. stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe
w relacyjnej bazie danych (jzyk SQL);

Zadanie 37.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
Wymagania oglne z rnych rde; opracowywanie za pomoc komputera
danych liczbowych.
2.2. stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe
w relacyjnej bazie danych (jzyk SQL);

Zadanie 38.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
Wymagania oglne z rnych rde; opracowywanie za pomoc komputera
danych liczbowych.
2.2. stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe
w relacyjnej bazie danych (jzyk SQL);

Zadanie 39.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych.
Wymagania oglne
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
1.1. Ucze przedstawia sposoby reprezentowania rnych
form informacji w komputerze: liczb, znakw, obrazw,
animacji, dwikw;
4.2 okrela wasnoci grafiki rastrowej i wektorowej oraz
Wymagania szczegowe charakteryzuje podstawowe formaty plikw graficznych,
tworzy i edytuje obrazy rastrowe i wektorowe z
uwzgldnieniem warstw i przeksztace;
4.3. przetwarza obrazy i filmy, np.: zmienia rozdzielczo,
rozmiar, model barw, stosuje filtry;

Zadanie 40.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
Wymagania oglne z rnych rde; opracowanie za pomoc komputera danych
liczbowych.
4.4.wykorzystuje arkusz kalkulacyjny do obrazowania
Wymagania szczegowe
zalenoci funkcyjnych i do zapisywania algorytmw.
532 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 41.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
Wymagania oglne z rnych rde; opracowanie za pomoc komputera danych
liczbowych.
4.4.wykorzystuje arkusz kalkulacyjny do obrazowania
Wymagania szczegowe
zalenoci funkcyjnych i do zapisywania algorytmw.

Zadanie 42.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Wymagania szczegowe otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje:
b) algorytmy wyszukiwania i porzdkowania (sortowania),
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 43.
V. Ocena zagroe i ogranicze, docenianie spoecznych
Wymagania oglne
aspektw rozwoju i zastosowa informatyki
7.1 Ucze opisuje najwaniejsze elementy procesu
Wymagania szczegowe rozwoju informatyki i technologii informacyjno-
komunikacyjnych.

Zadanie 44.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych.
1. Posugiwanie si komputerem i jego oprogramowaniem,
korzystanie z sieci komputerowej. Ucze:
Wymagania szczegowe 1) przedstawia sposoby reprezentowania rnych form
informacji w komputerze: liczb, znakw, obrazw, animacji,
dwikw;

Zadanie 45.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych
PP 1.1) opisuje podstawowe elementy komputera, jego
Wymagania szczegowe urzdzenia zewntrzne i towarzyszce i ich dziaanie w
zalenoci od wartoci ich podstawowych parametrw,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
533
wyjania wspdziaanie tych elementw;

Zadanie 46.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych.
1. Posugiwanie si komputerem i jego oprogramowaniem,
korzystanie z sieci komputerowej. Ucze:
Wymagania szczegowe
2) wyjania funkcje systemu operacyjnego i korzysta z nich;
opisuje rne systemy operacyjne;

Zadanie 47.
Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej,
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno komunikacyjnych.
1.2) wyjania funkcje systemu operacyjnego i korzysta z nich;
Wymagania szczegowe
opisuje rne systemy operacyjne;

Zadanie 48.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych.
3) przedstawia warstwowy model sieci komputerowych,
Wymagania szczegowe okrela ustawienia sieciowe danego komputera i jego
lokalizacji w sieci, (...)

Zadanie 49.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych
1.4) zapoznaje si z moliwociami nowych urzdze
Wymagania szczegowe zwizanych z technologiami informacyjno-komunikacyjnymi,
poznaje nowe programy i systemy oprogramowania

Zadanie 50.
I. Bezpieczne posugiwanie si komputerem i jego
oprogramowaniem, wykorzystanie sieci komputerowej;
Wymagania oglne
komunikowanie si za pomoc komputera i technologii
informacyjno-komunikacyjnych
1.4) zapoznaje si z moliwociami nowych urzdze
Wymagania szczegowe zwizanych z technologiami informacyjno-komunikacyjnymi,
poznaje nowe programy i systemy oprogramowania
534 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 51.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Wymagania oglne
zasobw w sieci, korzystanie
z rnych rde i sposobw zdobywania informacji. Ucze:
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie
Wymagania szczegowe
z rnych rde i sposobw zdobywania informacji. Ucze:
5) opisuje mechanizmy zwizane z bezpieczestwem danych:
(...)

Zadanie 52.
II Wyszukiwanie, gromadzenie i przetwarzanie informacji z
rnych rde opracowywanie za pomoc komputera
Wymagania oglne
rysunkw, tekstw, danych liczbowych, motyww, animacji,
prezentacji multimedialnych.
1.1) przedstawia sposoby reprezentowania rnych form
informacji w komputerze: liczb, znakw, obrazw, animacji,
dwikw;
Wymagania szczegowe 4.2) okrela wasnoci grafiki rastrowej i wektorowej oraz
charakteryzuje podstawowe formaty plikw graficznych,
tworzy i edytuje obrazy rastrowe i wektorowe z
uwzgldnieniem warstw i przeksztace;

Zadanie 53.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
Wymagania szczegowe 1) analizuje [] sytuacje problemowe z rnych dziedzin;
11) [] stosuje:
a) algorytmy na liczbach cakowitych, np. reprezentacje liczb
w systemie dwjkowym.

Zadanie 54.
III Rozwizywanie problemw i podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5.14 Dobiera odpowiednie struktury danych do realizacji
Wymagania szczegowe
algorytmu, w tym struktury dynamiczne;

Zadanie 55.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
535
5.Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
Wymagania szczegowe algorytmicznego. Ucze:
16) opisuje wasnoci algorytmw na podstawie ich analizy;
18) oblicza liczb operacji wykonywanych przez algorytm;

Zadanie 56.
V. Ocena zagroe i ogranicze, docenianie spoecznych
Wymagania oglne
aspektw rozwoju i zastosowa informatyki
7.4 Ucze omawia zagadnienia przestpczoci
Wymagania szczegowe komputerowej, w tym piractwo komputerowe, nielegalne
transakcje w sieci

Zadanie 57.
V. Ocena zagroe i ogranicze, docenianie spoecznych
Wymagania oglne
aspektw rozwoju i zastosowa informatyki
7.4 Ucze omawia zagadnienia przestpczoci
Wymagania szczegowe komputerowej, w tym piractwo komputerowe, nielegalne
transakcje w sieci

Zadanie 58.
II. [] opracowanie za pomoc komputera danych
liczbowych.
Wymagania oglne
III. Rozwizywanie problemw i podejmowanie decyzji []
z zastosowaniem podejcia algorytmicznego.
Rozwizywanie problemw i [] stosowanie podejcia
algorytmicznego. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe;
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
6) ocenia wasno rozwizania algorytmicznego [], np.
efektywno dziaania.
11) opisuje podstawowe algorytmy i stosuje: []
Wymagania szczegowe a) algorytmy badajce waciwoci geometryczne [];
12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, funkcje i procedury, instrukcje wejcia i
wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania problemu
na podstawie jego testowania.
536 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 59.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5.11 opisuje podstawowe algorytmy i stosuje
a) algorytmy na liczbach cakowitych, np.:
rozkadanie liczby na czynniki pierwsze,
i inne
5.12 projektuje rozwizanie problemu (realizacj algorytmu)
i dobiera odpowiedni struktur danych;
5.15 stosuje zasady programowania strukturalnego i
Wymagania szczegowe
modularnego do rozwizywania problemu;
5.21 przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
5.22 sprawnie posuguje si zintegrowanym rodowiskiem
programistycznym przy pisaniu i uruchamianiu programw;
5.23 stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
5.25 dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania;

Zadanie 60.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
Wymagania szczegowe
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach cakowitych
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;

Zadanie 61.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
Wymagania szczegowe stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
537
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach cakowitych
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;

Zadanie 62.
III. Rozwizywanie problemw i podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
Wymagania szczegowe sformuowania specyfikacji problemu po testowanie
rozwizania
11) opisuje podstawowe algorytmy i stosuje:
a) algorytmy na liczbach cakowitych
reprezentacja liczb w dowolnym systemie pozycyjnym
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu

Zadanie 63.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5.11 opisuje podstawowe algorytmy i stosuje
a) algorytmy na liczbach cakowitych, np.:
reprezentacja liczb w dowolnym systemie pozycyjnym,
w tym w dwjkowym i szesnastkowym,
Wymagania szczegowe
sprawdzanie, czy liczba jest liczb pierwsz,
i inne
5.12 projektuje rozwizanie problemu (realizacj algorytmu)
i dobiera odpowiedni struktur danych;
5.15 stosuje zasady programowania strukturalnego i
modularnego do rozwizywania problemu;
5.21 przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
538 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

5.22 sprawnie posuguje si zintegrowanym rodowiskiem


programistycznym przy pisaniu i uruchamianiu programw;
5.23 stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
5.25 dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania;

Zadanie 64.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
Rozwizywanie problemw i [] stosowanie podejcia
algorytmicznego. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe;
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
6) ocenia wasno rozwizania algorytmicznego [], np.
efektywno dziaania.
11) opisuje podstawowe algorytmy i stosuje: []
b) algorytmy wyszukiwania [];
Wymagania szczegowe
a) algorytmy na liczbach;
12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania
problemu na podstawie jego testowania

Zadanie 65.
II. [] opracowanie za pomoc komputera danych
liczbowych.
Wymagania oglne
III. Rozwizywanie problemw i podejmowanie decyzji []
z zastosowaniem podejcia algorytmicznego.
Rozwizywanie problemw i [] stosowanie podejcia
algorytmicznego. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe;
2) stosuje podejcie algorytmiczne do rozwizywania
Wymagania szczegowe problemu;
4) dobiera efektywny algorytm do rozwizania problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
6) ocenia wasno rozwizania algorytmicznego [], np.
efektywno dziaania.
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
539
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach cakowitych [];
b) algorytmy wyszukiwania [];
12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, funkcje i procedury, instrukcje wejcia i
wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania problemu
na podstawie jego testowania.

Zadanie 66.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5.11 opisuje podstawowe algorytmy i stosuje
a) algorytmy na liczbach cakowitych, np.:
sprawdzanie, czy liczba jest liczb pierwsz,
f) algorytmy badajce wasnoci geometryczne, np.
sprawdzanie warunku trjkta
5.12 projektuje rozwizanie problemu (realizacj algorytmu)
i dobiera odpowiedni struktur danych;
Wymagania szczegowe 5.15 stosuje zasady programowania strukturalnego i
modularnego do rozwizywania problemu;
5.21 przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
5.22 sprawnie posuguje si zintegrowanym rodowiskiem
programistycznym przy pisaniu i uruchamianiu programw;
5.23 stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
5.25 dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania;

Zadanie 67.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
540 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

7) opracowuje i przeprowadza wszystkie etapy prowadzce do


otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje: []
a) algorytmy na liczbach cakowitych, np.:
reprezentacja liczb w dowolnym systemie pozycyjnym,
w tym w dwjkowym
sprawdzanie, czy liczba jest liczb pierwsz
f) konstrukcje rekurencyjne: binarny fraktal Fibonacciego

Zadanie 68.
II. [] opracowanie za pomoc komputera tekstw, danych
liczbowych.
Wymagania oglne
III. Rozwizywanie problemw i podejmowanie decyzji []
z zastosowaniem podejcia algorytmicznego.
Rozwizywanie problemw i [] stosowanie podejcia
algorytmicznego. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe;
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
6) ocenia wasno rozwizania algorytmicznego [], np.
efektywno dziaania.
11) opisuje podstawowe algorytmy i stosuje: []
b) algorytmy wyszukiwania [];
Wymagania szczegowe
d) algorytmy na tekstach;
12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania
problemu na podstawie jego testowania

Zadanie 69.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
Rozwizywanie problemw i [] stosowanie podejcia
algorytmicznego. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe;
Wymagania szczegowe 2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
541
6) ocenia wasno rozwizania algorytmicznego [], np.
efektywno dziaania.
11) opisuje podstawowe algorytmy i stosuje: []
b) algorytmy wyszukiwania [];
d) algorytmy na tekstach;
12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania
problemu na podstawie jego testowania
542 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 70.
III. Rozwizywanie problemw, podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5.11 opisuje podstawowe algorytmy i stosuje
Wymagania szczegowe c) algorytmy numeryczne, np.:
obliczanie pola obszarw zamknitych,
5.21 przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
5.25 dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania;

Zadanie 71.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
8) posuguje si metod dziel i zwyciaj w rozwizywaniu
Wymagania szczegowe problemw;
9) stosuje rekurencj w prostych sytuacjach problemowych.
11) opisuje podstawowe algorytmy i stosuje:
c) algorytmy numeryczne, np.:
wyznaczanie miejsc zerowych funkcji metod poowienia,
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;

Zadanie 72.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
Wymagania szczegowe 2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
543
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
d) algorytmy na tekstach
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;

Zadanie 73.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
Wymagania szczegowe
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
e) algorytmy na tekstach
12) projektuje rozwizanie problemu (realizacj algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;

Zadanie 74.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowanie za pomoc komputera danych
Wymagania oglne liczbowych
III. Rozwizywanie problemw i podejmowanie decyzji
z zastosowaniem podejcia algorytmicznego.
5.Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
5) posuguje si podstawowymi technikami algorytmicznymi
11) opisuje podstawowe algorytmy i stosuje:
Wymagania szczegowe d) algorytmy na tekstach, np.:
porzdkowanie alfabetyczne,
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
25) dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania
544 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 75.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
Wymagania szczegowe
sformuowania specyfikacji problemu po testowanie
rozwizania;
11) opisuje podstawowe algorytmy i stosuje: []
e) algorytmy szyfrowania i kompresji
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;

Zadanie 76.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
Wymagania szczegowe
11) opisuje podstawowe algorytmy i stosuje:
e) algorytmy kompresji i szyfrowania, np.: szyfr
przestawieniowy
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;

Zadanie 77.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
11) opisuje podstawowe algorytmy i stosuje
Wymagania szczegowe
e) algorytmy kompresji i szyfrowania np.:
kody znakw o zmiennej dugoci, np. alfabet Morse'a,
kod Huffmana,
szyfr Cezara,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
545
szyfr przestawieniowy,
szyfr z kluczem jawnym (RSA),
wykorzystanie algorytmw szyfrowania, np. w podpisie
elektronicznym,

Zadanie 78.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
11) opisuje podstawowe algorytmy i stosuje
e) algorytmy kompresji i szyfrowania np.:
kody znakw o zmiennej dugoci, np. alfabet Morse'a, kod
Wymagania szczegowe
Huffmana,
szyfr Cezara,
szyfr przestawieniowy,
szyfr z kluczem jawnym (RSA),
wykorzystanie algorytmw szyfrowania, np. w podpisie
elektronicznym,

Zadanie 79.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
Wymagania szczegowe rozwizania;
11) opisuje podstawowe algorytmy i stosuje:
f) algorytmy badajce wasnoci geometryczne
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne i
warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;

Zadanie 80.
II. [] opracowanie za pomoc komputera danych
liczbowych.
Wymagania oglne
III. Rozwizywanie problemw i podejmowanie decyzji []
z zastosowaniem podejcia algorytmicznego.
Rozwizywanie problemw i [] stosowanie podejcia
Wymagania szczegowe
algorytmicznego. Zdajcy:
546 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

1) analizuje, modeluje i rozwizuje sytuacje problemowe;


2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
4) dobiera efektywny algorytm do rozwizania problemu;
5) posuguje si podstawowymi technikami algorytmicznymi;
6) ocenia wasno rozwizania algorytmicznego [], np.
efektywno dziaania.
11) opisuje podstawowe algorytmy i stosuje: []
f) algorytmy badajce waciwoci geometryczne [];
12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, funkcje i procedury, instrukcje wejcia i
wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania
problemu na podstawie jego testowania.

Zadanie 81.
III. Rozwizywanie problemw i podejmowanie decyzji z
Wymagania oglne wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
Wymagania szczegowe
sformuowania specyfikacji problemu po testowanie
rozwizania
11) opisuje podstawowe algorytmy i stosuje:
f) algorytmy badajce wasnoci geometryczne
21) przeprowadza komputerow realizacj algorytmu i
rozwizania problemu

Zadanie 82.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowanie za pomoc komputera danych
liczbowych
Wymagania oglne
III. Rozwizywanie problemw, podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
4.4. wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
Wymagania szczegowe 5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
547
problemu;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;

Zadanie 83.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowywanie za pomoc komputera:
rysunkw, tekstw, danych liczbowych, motyww, animacji,
Wymagania oglne prezentacji multimedialnych.
III. Rozwizywanie problemw, podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
4.4.wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5.3 formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
5.25.dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania

Zadanie 84.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowywanie za pomoc komputera:
rysunkw, tekstw, danych liczbowych, motyww, animacji,
Wymagania oglne prezentacji multimedialnych.
III. Rozwizywanie problemw, podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
4.4.wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5.Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
5.1 analizuje, modeluje i rozwizuje sytuacje problemowe
Wymagania szczegowe
z rnych dziedzin;
5.2 stosuje podejcie algorytmiczne do rozwizywania
problemu;
5.3 formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
548 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

5.25.dobiera waciwy program uytkowy lub samodzielnie


napisany program do rozwizywanego zadania
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
549
Zadanie 85.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
5. Rozwizywanie problemw i podejmowanie decyzji,
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
Wymagania szczegowe
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;

Zadanie 86.
II. [] opracowanie za pomoc komputera tekstw, danych
liczbowych.
Wymagania oglne
III. Rozwizywanie problemw i podejmowanie decyzji []
z zastosowaniem podejcia algorytmicznego.
4. [] opracowanie za pomoc komputera tekstw, danych
liczbowych. Zdajcy:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5. Rozwizywanie problemw i [] stosowanie podejcia
algorytmicznego. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe;
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
Wymagania szczegowe 12) projektuje rozwizanie problemu (realizacja algorytmu)
i dobiera odpowiedni struktur danych;
21) przeprowadza komputerow realizacj algorytmu
i rozwizania problemu;
23) stosuje podstawowe konstrukcje programistyczne w
wybranym jzyku programowania, instrukcje iteracyjne
i warunkowe, rekurencj, funkcje i procedury, instrukcje
wejcia i wyjcia, poprawnie tworzy struktur programu;
26) ocenia poprawno komputerowego rozwizania
problemu na podstawie jego testowania.

Zadanie 87.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowywanie za pomoc komputera:
Wymagania oglne
rysunkw, tekstw, danych liczbowych, motyww, animacji,
prezentacji multimedialnych.
4. Opracowywanie informacji za pomoc komputera, w tym:
rysunkw, tekstw, danych liczbowych, animacji, prezentacji
multimedialnych i filmw.
Wymagania szczegowe
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5. Rozwizywanie problemw i podejmowanie decyzji,
550 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

stosowanie podejcia algorytmicznego. Ucze:


2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania

Zadanie 88.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowywanie za pomoc komputera:
Wymagania oglne
rysunkw, tekstw, danych liczbowych, motyww, animacji,
prezentacji multimedialnych.
4. Opracowywanie informacji za pomoc komputera, w tym:
rysunkw, tekstw, danych liczbowych, animacji, prezentacji
multimedialnych i filmw.
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5. Rozwizywanie problemw i podejmowanie decyzji,
Wymagania szczegowe
stosowanie podejcia algorytmicznego. Ucze:
2) stosuje podejcie algorytmiczne do rozwizywania problemu
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania

Zadanie 89.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowanie za pomoc komputera danych
liczbowych
Wymagania oglne
III. Rozwizywanie problemw, podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
4.4.wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5.Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe z
rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
5.25.dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
551
552 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 90.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
4. Opracowywanie informacji za pomoc komputera, w tym:
[] tekstw, danych liczbowych. Ucze:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;

Zadanie 91.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowanie za pomoc komputera danych
liczbowych
Wymagania oglne
III. Rozwizywanie problemw, podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego.
4.4.wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw
5.Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu;
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
5.25.dobiera waciwy program uytkowy lub samodzielnie
napisany program do rozwizywanego zadania
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
553
Zadanie 92.
II. [...] opracowywanie za pomoc komputera danych
liczbowych.
Wymagania oglne III Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
4. Opracowywanie informacji za pomoc komputera, w tym:
[] tekstw, danych liczbowych. Ucze:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;

Zadanie 93.
II. [...] opracowywanie za pomoc komputera danych
liczbowych.
Wymagania oglne III Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
4. Opracowywanie informacji za pomoc komputera, w tym:
[] tekstw, danych liczbowych. Ucze:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;
554 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

Zadanie 94.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
4. Opracowywanie informacji za pomoc komputera, w tym:
[] tekstw, danych liczbowych. Ucze:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;

Zadanie 95.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowywanie za pomoc komputera
Wymagania oglne
rysunkw, tekstw, danych liczbowych, motyww, animacji,
prezentacji multimedialnych.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie z rnych rde i sposobw
Wymagania szczegowe
zdobywania informacji. Ucze:
4) znajduje odpowiednie informacje niezbdne do realizacji
projektw z rnych dziedzin;

Zadanie 96.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
z rnych rde; opracowywanie za pomoc komputera
Wymagania oglne
rysunkw, tekstw, danych liczbowych, motyww, animacji,
prezentacji multimedialnych
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie z rnych rde i sposobw
Wymagania szczegowe
zdobywania informacji. Ucze:
4) znajduje odpowiednie informacje niezbdne do realizacji
projektw z rnych dziedzin;
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
555
Zadanie 97.
II. [...] opracowywanie za pomoc komputera danych
liczbowych.
Wymagania oglne III Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, z zastosowaniem podejcia
algorytmicznego.
4. Opracowywanie informacji za pomoc komputera, w tym:
[] tekstw, danych liczbowych. Ucze:
4) wykorzystuje arkusz kalkulacyjny do obrazowania
zalenoci funkcyjnych i do zapisywania algorytmw.
5. Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, stosowanie podejcia
algorytmicznego. Ucze:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
Wymagania szczegowe
2) stosuje podejcie algorytmiczne do rozwizywania
problemu
3) formuuje przykady sytuacji problemowych, ktrych
rozwizanie wymaga podejcia algorytmicznego i uycia
komputera;
7) opracowuje i przeprowadza wszystkie etapy prowadzce do
otrzymania poprawnego rozwizania problemu: od
sformuowania specyfikacji problemu po testowanie
rozwizania;

Zadanie 98.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Wymagania oglne
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
2.1.projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2.2.stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe w relacyjnej bazie danych;
2.3.tworzy aplikacj bazodanow, w tym sieciow,
wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;

Zadanie 99.
II. [] przetwarzanie informacji z rnych rde;
opracowywanie za pomoc komputera [] danych
Wymagania oglne liczbowych [].
III Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, [].
2. [] selekcjonowanie, przetwarzanie [] informacji,
korzystanie z rnych rde [] informacji. Zdajcy:
Wymagania szczegowe 1) projektuje relacyjn baz danych [];
2) stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych (jzyk SQL);
556 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

3) tworzy aplikacj bazodanow, w tym sieciow,


wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;
5. Rozwizywanie problemw []. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe z
rnych dziedzin;
25) dobiera waciwy program uytkowy [] do rozwizania
zadania.

Zadanie 100.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Wymagania oglne
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
2.1. projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2.2. stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe w relacyjnej bazie danych;
2.3. tworzy aplikacj bazodanow, w tym sieciow,
wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;

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

Zadanie 102.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Wymagania oglne
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
2.1. projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
Wymagania szczegowe 2.2. stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych;
2.3. tworzy aplikacj bazodanow, w tym sieciow,
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
557
wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;

Zadanie 103.
II. [] przetwarzanie informacji z rnych rde;
opracowywanie za pomoc komputera [] danych
Wymagania oglne liczbowych [].
III Rozwizywanie problemw i podejmowanie decyzji z
wykorzystaniem komputera, [].
2. [] selekcjonowanie, przetwarzanie [] informacji,
korzystanie z rnych rde [] informacji. Zdajcy:
1) projektuje relacyjn baz danych [];
2) stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych (jzyk SQL);
3) tworzy aplikacj bazodanow, w tym sieciow,
Wymagania szczegowe wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;
5. Rozwizywanie problemw []. Zdajcy:
1) analizuje, modeluje i rozwizuje sytuacje problemowe
z rnych dziedzin;
25) dobiera waciwy program uytkowy [] do rozwizania
zadania.

Zadanie 104.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Wymagania oglne
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
2.1.projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2.2.stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe w relacyjnej bazie danych;
2.3.tworzy aplikacj bazodanow, w tym sieciow,
wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;

Zadanie 105.
II. Wyszukiwanie, gromadzenie i przetwarzanie informacji
Wymagania oglne z rnych rde; opracowanie za pomoc komputera danych
liczbowych
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie z rnych rde i sposobw
zdobywania informacji. Ucze:
Wymagania szczegowe 1) projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2) stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych (jzyk SQL);
3) tworzy aplikacj bazodanow, w tym sieciow,
558 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia


integralno danych na poziomie pl, tabel, relacji

Zadanie 106.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
Wymagania szczegowe
1) projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2) stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych (jzyk SQL);

Zadanie 107.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Wymagania oglne
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
2.1. projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2.2. stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe w relacyjnej bazie danych;
2.3. tworzy aplikacj bazodanow, w tym sieciow,
wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;

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

Zadanie 109.
II. Wyszukiwanie, gromadzenie, selekcjonowanie,
Wymagania oglne
przetwarzanie i wykorzystywanie informacji, wsptworzenie
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here..
Error! Use the Home tab to apply Nagwek 1 to the text that you want to appear here.
559
zasobw sieci, korzystanie z rnych rde i sposobw
zdobywania informacji.
2.1.projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2.2.stosuje metody wyszukiwania i przetwarzania informacji
Wymagania szczegowe w relacyjnej bazie danych;
2.3.tworzy aplikacj bazodanow, w tym sieciow,
wykorzystujc jzyk zapyta, kwerendy, raporty; zapewnia
integralno danych na poziomie pl, tabel, relacji;

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

Zadanie 111.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie z rnych rde i sposobw
zdobywania informacji. Ucze:
Wymagania szczegowe
1) projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
2) stosuje metody wyszukiwania i przetwarzania informacji
w relacyjnej bazie danych (jzyk SQL);

Zadanie 112.
III. Rozwizywanie problemw i podejmowanie decyzji
Wymagania oglne
z zastosowaniem podejcia algorytmicznego.
2. Wyszukiwanie, gromadzenie, selekcjonowanie,
przetwarzanie i wykorzystywanie informacji, wsptworzenie
zasobw w sieci, korzystanie z rnych rde i sposobw
Wymagania szczegowe
zdobywania informacji. Ucze:
1) projektuje relacyjn baz danych z zapewnieniem
integralnoci danych;
560 Egzamin maturalny. Informatyka. Poziom rozszerzony. Zbir zada

2) stosuje metody wyszukiwania i przetwarzania informacji


w relacyjnej bazie danych (jzyk SQL);

You might also like