Instrukcja: 1. Kategoria A rozwiązuje tylko zadania 1, 2, 3 a kategoria B zadania 2, 3, 4! 2. Rozwiązania zadań zapisujcie w folderze znajdującym się na pulpicie Waszego komputera. Jego nazwa jest identyczna jak przydzielony Wam kod (np. C05, D02 itp.). Rozwiązania zapisane w innym folderze nie będą brane pod uwagę. W przypadku problemów z zapisem plików poproście o pomoc nadzorującego nauczyciela. 3. Swoje rozwiązania zapisujcie pod nazwami zgodnymi z numerem zadania: 1.bpr, 2.bpr, 3.bpr, 4.bpr 4. Regularnie zapisujcie swoje rozwiązania. Pozwoli to uniknąć niepotrzebnych strat w przypadku problemów z komputerem.. 5. W programach nie wpisujcie w żadnym przypadku nazwy swojego zaspołu, albo swoich imion czy nazwisk, wasze rozwiązania muszą pozostać anonimowe. 6. W przypadku jakichkolwiek problemów z komputerem, zgłoście to natychmiast nauczycielowi nadzorującemu. 7. Na pulpicie swojego komputeraz znajdziecie plik z zadaniami pod nazwą Baltie_2011_MK_AB_PL.pdf, gdzie będziecie mogli obejrzeć treść zadań w kolorze. 8. W rozwiązaniach nie możecie wykorzystywać scen, własnych banków i innych plików! Jako rozwiązanie oceniane będą jedynie pliki: 1.bpr, 2.bpr, 3.bpr a 4.bpr. Punktowanie: Punkty, które są widoczne w każdym z zadań możecie uzyskać realizując w swoim programie poszczególne części zadań. Tak uzyskana ocena będzie mnożona przez współczynnik z przedziału od 1 do 2, który będzie przyznany za efektywność rozwiązania i przejrzystość programu. Oznacza, to że liczba punktów za dane zadanie może się nawet podwoić. Współczynnik będzie oceniał efektywność programu (krótkość rozwiązania), czy skrócenie programu uzyskano przez użycie pomocników (metod), czy były sensownie użyte bloki poleceń, cykle, instrukcje warunkowe, zmienne, tablice itp. oraz oczywiście całkowitą elegancję rozwiązania. Program musi także być przejrzysty, podzielony sensownie na wiersze, które w razie potrzeby powinny być poprzedzone wcięciami (np. wewnątrz metody lub cyklu). Dla więjszej przejrzystości możecie wykorzystać pomocników. Każda z części programu powinna być poprzedzona komentarzem. 1
Zadanie nr 1: Remont domków rozwiązuje tylko kat. A ( 45 punktów) a. Na ekranie pojawi się wioska Baltiego identyczna jak na na obr. 1-1. Domki tworzone są z przedmiotów 2, 4, 6, 7, 105. Dwa górne rzędy zajmuje błękitny obłok, a na dole jest trawa z przedmiotu 1122. Program czeka na naciśnięcie klawisza lub przycisku myszy. 7 punktów Obr. 1-1 b. Z lewego dolnego rogu wyjdzie dziewczynka, która ucz się rysować graffiti. Dziewczynka wybrało do rysowania domki z wioski Baltiego. Idzie z szybkością 7 po zielonej trawie, a jeśli na lewo od niej jest ściana rysuje na niej graffiti. Na prawym domku graffiti będzie przezroczysty przedmiot numer 11 034, na drugim domku 11 035 a na ostatnim przezroczysty przedmiot 11 008. Patrz obr. 1-2 až 1-3. Kiedy narysuje graffiti na wszystkich domkach idzie do prawej strony i znika. 7 punktów Obr. 1-2 Obr. 1-3 c. Baltie leci nad swoją wioską samolotem. Przeleci od prawej do lewej w następujący sposób: cały samolot pojawi się najpierw na położonym najbardziej w prawo polu, po 300 milisekundach posunie się o 1 pole w lewo, tak przeleci cały obłok, aż wyleci z lewej strony. Obr. 1-4 Obr. 1-5 2
Baltie sprawdził, co się stało z jego wioską i stwierdził, że trzeba wyremontować domki. Ponieważ jest czarodziejem, wymyślił, że ze swojego samolotu wyleje na każdy domek farbę i w ten sposób je pomaluje. Samolot leci w podobny sposób jak poprzednim razem, ale gdy znajdzie się nad kominem domku zatrzymuje się na 1 sekundę, wyleje się z niego farba spray o grubości 200 punktów, a szerokości jednego przedmiotu. Będzie się on przesuwać od samolotu do komina jak na obr. 1-6. Spray będzie widoczny przez 1 sekundę, dopóki samolot stoi, potem znikniei równocześnie mury domku zabarwia się w tym kolorze, w jakim był spray. Obr. 1-6 Obr. 1-7 Samolot leci dalej nad kolejny komin. Domki będą pomalowane na żółto (14), pomarańczowo (12) i różowo (13). Patrz obr.1-6 do 1-9. Obr. 1-8 Obr. 1-9 Gdy samolot przeleci drugi raz, program czeka na naciśnięcie klawisza lub przycisku myszy. 20 punktów d. Gdy Baltie rozpoczął już remont domków, postanowił, że naprawi dachy. Postawił rusztowanie z przedmiotu 6132. Będzie ono widoczne między domkami patrz obr. 1-10. Po wciśnięciu klawisza P w lewym dolnym rogu pojawi się stary Baltazar i zacznie z szybkością 5 naprawiać dachy: wyjdzie na rusztowanie, stanie na nim i naprawi skraje dachu, które dostanie wstawiając przedmioty 52 i 53. Potem zejdzie, ominie domek po trawie i wyjdzie na kolejne rusztowanie. Patrz obr. 1-11 i 1-12. 3
Obr. 1-10 Obr. 1-11 Obr. 1-12 W ten sposób poprawi wszystkie dachy, które z rusztowań dosięgnie, potem dojdzie do prawego dolnego rogu i tam zniknie. Po 1 sekundzie zniknie także rusztowanie (obr. 1-13) a po dalszej sekundzie program automatycznie się zakończy. 11 bodov Obr. 1-13 4
Zadanie nr 2: Nieporządny Janek - rozwiązują kat. A i B (50 punktów) a. Janek jest nieporządnym chłopcem i stale się czegoś szuka. Miał przynieść do szkoły zegar, ale nie mógł go znaleźć. Na ekranie pojawi się jego pokój z sejfami (przedmiot 41), w jednej jest widoczny zegar (przedmiot 18) dokładnie jak na obrazku 2-1. Janek stoi w lewym dolnym rogu i po naciśnięciu klawisza lub przycisku myszy dowolną drogą (nie wchodząc oczywiście na sejfy) przejdzie przed zegar, zabierze go (w miejsce zegara pojawi się taki sam sejf jak inne) i jednakową drogę wróci na miejsce staru. Program czeka na naciśnięcie klawisza lub przycisku myszy. 10 punktów Obr. 2-1 b. Kolejny dzień Janek szuka swojej komórki w innym pokoju, który masz przedstawiony na obrazku 2-2. Janek stoi na pozycji przedstawionej na tym obrazku. Obr. 2-2 Po wciśnięciu dowolnego klawisza albo przycisku myszy komórka (przedmiot 12 135) pojawi się na losowo wybranej szafce Teraz sterujemy ruchem Janka za pomocą klawiszy strzałek, w ten sposób, że po wciśnięciu strzałki Janek obróci się w tym kierunku i przesunie się o 1 pole 5
naprzód. Janek nie może przechodzić przez sejfy. Szuka telefonu do momentu, gdy będzie na nim stał. Wówczas mniej więcej w środku ekranu pojawi się napis: Hura, znalazlem telefon, patrz obr. 2-4. Napis będziee żółty, w rozmiarze 15, czcionka dowolna. Program znowu czeka na naciśnięcie klawisza lub przycisku myszy. 16 punktów Obr. 2-3 Obr. 2-4 c. W ostatnim dniu Janek szuka podręcznika. Znajduje się w kolejnym pokoju, czeka na swojej wyjściowej pozycji patrz obr. 2-5. Podręcznik (przedmiot 12 131) znajduje się w losowym miejscu na ekranie (może być i na sejfach i obok nich). Teraz sterujemy ruchem Janka za pomocą myszy. Gdy klikniemy w jakieś pole Janek się płynnie (animacja) przesunie na nie patrz obr. 2-6. Gdy klikniemy na kolejne pole, przesunie się ponownie. Będzie się tak przesuwał do momentu aż klikniemy pole na którym znajduje się książka. Gdy Janek znajdzie się na tym polu, książka zniknie a mniej więcej w środku ekranu pojawi się napis: Hura, znalazlem ksiazke (dalej żółty, w rozmiarze 15) patrz obr. 2-7. Po 1 sekundzie program automatycznie się zakończy. 24 punktów 6
Obr. 2-5 Obr. 2-6 Obr. 2-7 7
Zadanie nr 3: TRIATLON - rozwiązują kat. A i B (57 punktód.) Baltikowie spotkali się, by rozegrać triatlon. Triatlon jest konkursem złożonym z 4 dyscyplin: pływania, kolarstwa i biegu. a. Natychmiast po uruchomieniu programu mniej więcej w środku ekranu pojawi się na białym tle napis TRIATLON, czcionka Arial, rozmiar 36, pogrubiona, w kolorze czerwonym. Baltie jest niewidzialny. Program czeka na naciśnięcie klawisza lub przycisku myszy. 2 punkty Obr. 3-1 b. Pierwszą dyscypliną jest pływanie. Na ekranie pojawi się momentalnie basen pływacki (obr. 3-2). Ma 5 torów pływackich oddzielonych linami. Tor ma wysokość 1 pola (29 punktów). Liny, oddzielające tory pływackie mają grubość 3 i są w kolorze granatowym. Woda w basenie jest błękitna. Start i meta są szare. Pozycje startowe są numerowane od 1 po 5 (przedmioty nr 2002-2006). Napisy Start i Meta są napísane czcionką Arial, rozmiar 10, pogrubione, kolor czerwony. Na starcie stoi 5 Baltich. W leweym górnym rogu znajduje się napis PLYWANIE (czcionk Arial, rozmiar 20, pogrubione, kolor błękitny). Program czeka na naciśnięcie klawisza lub przycisku myszy. 5 punktów Obr. 3-2 8
c. Baltie wskakują do basenu bazéna (pojawią się o pole dalej w kolumnie nr 1), zmienią się w rybki i od razu zaczną płynąć. Rybki jednocześnie poruszają się w basenie do metu. Do przedstawienia animowanego ruchu rybek wykorzystajcie przedmiot nr 10101 10104. Każdy zawodnik (w pływaniu rybka) dopłynie do mety w losowym czasie (oznacza to, że niektóre rybki płyną wolniej, a niektóre szybcieje). Czas przepłynięcia do mety jest losowy, minimalnie 5 a maksymalnie 15 sekund. Gdy rybka dopłynie do mety, na mecie pojawi się jej miejsce w wyścigu (przedmioty nr 2002 2006) a rybka znowu zmieni się w Baltiego (obr. 3-3). Obr. 3-3 Gdy wszyscy Baltie dopłyną do mety, program czeka 1 sekundę. Potom pojawi się tabela wyników (obr. 3-4). Pierwsza kolumna będzie zawierać numery Baltiech (1 5). W drugiej będą wyświetlone miejsca, które zdobyli w pływanie. Kolejne kolumny będą puste. Program czeka na naciśnięcie klawisza lub przycisku myszy. 10 punktów Obr. 3-4 d. Następny jest wyścig kolarski. Tor kolarski ma wygląd podobny do basenu. Pojawi się on momentalnie na ekranie (obr. 3-5). Wymiary ma jednakowe jak basen. Różni się tylko kolorami tory mają kolor zielonej trawy i są oddzielone ciemnoczerwonymi liniami. Na starcie ponownie stoi 5 Baltiech. W lewym górnym rogu wyświetlony jest napis KOLARSTWO (czcionka Arial, rozmiar 20, pogrubiona, kolor błękitny). Program czeka na naciśnięcie klawisza lub przycisku myszy. 9
Obr. 3-5 Po naciśnięciu klawisza lub przycisku myszy zacznie się wyścig. Reguły są identyczne jak w pływaniu. Baltie wchodzą na tor kolarski (pojawią się o pole dalej w kolumnie nr 1), zmienią się w kolarzy i zaczną się wyścigować. Kolarze jednocześnie przesuwają się w kierunku mety. Do przedstawienia animowanego ruchu kolarzy wykorzystajcie przedmioty nr 10061 10064. Każdy zawodnik (kolarz) dojedzie do mety w losowym czasie (niektórzy kolarze jadą szybciej, inni wolniej). Gdy kolarz dojedzie do mety na końcu jego toru pojawi się jego miejsce w wyścigu (przedmioty nr 2002 2006) a kolarz znowu zmieni się w Baltiego (obr. 3-6). Czas trwania przejazdu jest losowy, minimalne 5, maksymalne 15 sekund. Obr. 3-6 Gdy wszyscy Baltie dojadą do mety, program czeka 1 sekundę a potem pojawi się tabela wyników (obr. 3-7). W pierwszej kolumnie będą wyświetlane numery Baltiech (1 5). W drugiej miejsca w pływaniu, w trzeciej miejsca zdobyte w wyścigu kolarskim. Kolejne kolumny pozostaną puste. Program czeka na naciśnięcie klawisza lub przycisku myszy. 10 punktów 10
Obr. 3-7 e. Ostatnim wyścigiem jest bieg. Po naciśnięciu klawisza lub przycisku myszy pojawi się momentalnie bieżnia (obr. 3-8). Wymiary ma identyczne jak basen i tor kolarskie w poprzednich częściach. Inne są tylko kolory tory bieżni mają kolor kremowy i są oddzielone brązowymi liniami. Na starcie znowu stoi 5 Baltiech. W lewym górnym rogu pojawi się napis BIEG (czcionka Arial, rozmiar 20, pogrubiona, kolor błękitny). Program czeka na naciśnięcie klawisza lub przycisku myszy. Obr. 3-8 Po wciśnięciu klawisza lub przycisku myszy rozpoczyna się wyścig podobny do pływania czy wyścigu kolarskiego. Baltie wejdą na tory bieżni (pojawią się o jedno pole dalej w kolumnie nr 1) i natychmiast zaczną się wyścigować. Baltie jednocześnie przesuwają się w kierunku mety. Do przedstawienia animowanego ruchu Baltiech użyjcie przedmioty nr 9001 9004. Każdy zawodnik (w biegu Baltie) uzyskuje losowy czas (niektórzy Baltie są wolniejsi, inni szybsi). Gdy Baltie dobiegnie do mety, na mecie jego toru pojawi się jego miejsce w biegu preteku (przedmioty nr 2002 2006) (obr. 3-8). Czas trwania biegu jest losowy, minimalne 5, maksymalne 15 sekund. 11
Obr. 3-9 Gdy wszyscy Baltie dobiegną do mety, program czeka 1 sekundę, a potem pojawi się tablica wyników (obr. 5-9). W pierwszej kolumnie będą wyświetlone numery Baltiech (1 5). W drugiej miejsca uzyskane w pływaniu, w trzeciej wyniki wyścigu kolarskiego, w czwartej biegu. W ostatniej kolumnie wyświetlona będzie suma wyników uzyskanych w poszczególnych dyscyplinach (obr. 5-10). Program czeka na naciśnięcie klawisza lub przycisku myszy. 10 punktów Obr. 3-10 a. Po wciśnięciu klawisza lub przycisku myszy pojawi się tabela wyników (obr. 5-11). Zawodnicy będą na niej wyświetlani według miejsc, od 1 po 5. Porządek jest ustalany na podstawie kolumny z sumą z tabeli z poprzedniej części. Wygrywa Baltie, który ma najmniejszą liczbę w tej kolumnie (czyli suma jego miejsc w poszczególnych dyscyplinach jest najmniejsza). Jeśli niektórzy Baltie uzyskają ten sam wynik, należy to uwzględnić w tabeli (np. Jeśli dwaj Baltie mają równą liczbę punktów i zajęliby drugie trzecie miejsce, w kolumnie porządek będzie wyświetlone 2 3. Napis TRIATLON jest napísany czcionką Arial, rozmiar 24, pogrubione, czerwone. Nagłówek tabeli (Nr Baltiego pływanie kolarstwo itd.) jest napisany czcionką Arial, rozmiar 12, pogrubione. Liczby w w tabelce też będą wyświetlane czcionką Arial, rozmiar 12, pogrubione. Liczby w pierwszej kolumnie będą żółte, w ostattniej 12
czerwone, a w środkowych kolumnach błękitne. Program zakończy działanie po naciśnięciu klawisza lub przycisku myszy. 20 punktów Obr. 3-11 13
Zadanie nr 4: SZYFROWANIE rozwiązuje tylko kat. B (61 punktów) W tym zadaniu nauczycmy się 3 sposobów szyfrowania. Gdy napiszecie ten program, staniecie się doskonałymi kryptografami. a. W całym zadaniu korzystamy z czcionki systemowej, bez formatowania tekstów. Najpierw podamy tekst, który chcemy przetestować. Na ekranie w pierwszym rzędzie pojawi się tekst: Podaj tekst do szyfrowania (bez znaków diakryficznych):. Po tekście będzie pole pozwalające na wprowadzenie tekstu z klawiatury, długość tekstu nieokreślona. Po wciśnięciu klawisza Enter wprowadzony tekst będzie wyświetlany w tym rzędzie dużymi literami. Tekst może zawierać tylko litery od A do Z bez znaków diakryficznych. Jeśli wpiszemy niewłaściwe znaki (znaki diakryficzne, cyfry, spacje), w kolejnym rzędzie pojawi się tekst: Twoj tekst zawiera niedozwolone znaki! Sprobuj ponownie. Program poczeka 2 sekundy, ekran zostanie zmazany i znowu pojawi się tekst: Podaj tekst do szyfrowania (bez znaków diakryficznych):. Program będzie to powtarzał do momentu wprowadzenia poprawnego tekstu. 8 punktów b. Po wprowadzenie poprawnego tekstu, który chcemy zaszyfrować, w kolejnym rzędzie pojawi się tekst: Wybierz sposob szyfrowania (1/2/3): a po nim pole na wprowadzenie z klawiatury dokładnie 1 znaku. Po wciśnięciu klawisza Enter zostanie wybrany typ szyfrowania napisany za tekstem komunikatu. Ponownie ograniczymy dane wejściowe z klawiatury tak, by w momencie, gdy zostanie wybrana inna liczba niż 1, 2 albo 3, program wyświetli komunikat: Musisz wybrac jedna z mozliwosci 1, 2, 3!!! Spróbuj ponownie... W kolejnym rzędzie znowu pojawi się tekst: Wybierz sposob szyfrowania (1/2/3): a po nim pole na wprowadzenie z klawiatury dokładnie 1 znaku. Powtarzamy to do momentu wprowadzenia poprawnej liczby. Po wyborze typu szyfrowania nie musisz wykonywać podpunkty c, d, e tego zadania w podanej kolejność. Zadanie rozwiążcie tak, by możliwy był wybór szyfrowania. Po wyborze typu szyfrowania wszystkie wyświetlone wcześniej napisy pozostają na ekranie, nie trzeba nic mazać. 9 punktów 14
c. Gdy mamy już zaprogramowane procedury wejściowe, przechodzimy do pierwszego typu szyfrowania, który wywoła wprowadzenie cyfry 1. Wykorzystamy hebrajski szyfr atbasz, który polega na tym, że pierwszą literę alfabetu zastępuje ostatnia, drugą przedostatnia itd. Skoro używamy alfabetu angielskiego złożonego z 26 znaków, A będzie szyfrowane jako Z, B jako Y, C jako W itd. W kolejnym rzędzie pojawi się tekst: Zaszyfrowany tekst za pomocą 1. szyfru: Za nim będzie wyświetlane zaszyfrowane słowo. W kolejnym rzędzie pojawi się oddzielająca linia i program poczeka 1 sekundę. 9 punktów d. Potem w nowym rzędzie znowu pojawi się napis: Wybierz sposob szyfrowania (1/2/3): a po nim pole na wprowadzenie z klawiatury dokładnie 1 znaku. Po wciśnięciu klawisza Enter zostanie wybrany typ szyfrowania napisany za wcześniejszym komunikatem. Wejście z klawiatury mamy dalej ograniczone tak, by w razie pomyłki program działał tak jak w części c. Teraz wprowadzimy drugi typ szyfrowania, który będzie wykorzystany po wprowadzeniu cyfry 2. Będzie to tzw. Szyfr Cezara. Szyfr polega na tym, że każdą literą przesuwamy o jednakową liczbę miejsc. My wykorzystamy przesunięcie o dwa miejsca.oznacza to, że literę A zaszyfrujemy jako C, B jako D, C jako E itd. W kolejnym rzędzie po tekście: Tekst zaszyfrowany za pomocą 2. szyfru: zostanie wyświetlony wynik szyfrowania. W kolejnym rzędzie pojawi się oddzielająca linia i program poczeka 1 sekundę. 13 punktów e. Do trójki będzie przypisany najtajniejszy szyfr tego zadania. W nowym rzędzie znowu pojawi się napis: Wybierz sposob szyfrowania (1/2/3): a po nim pole na wprowadzenie z klawiatury dokładnie 1 znaku. Po wciśnięciu klawisza Enter zostanie wybrany typ szyfrowania napisany za wcześniejszym komunikatem. Wejście z klawiatury mamy dalej ograniczone tak, by w razie pomyłki program działał tak jak w części c. Trzeci typ szyfrowania będzie wykorzystany po wprowadzeniu cyfry 3. Tym razem będzie to Szyfr Vigenère'a.Szyfr wymaga wprowadzenia dodatkowego klucza, który pozna adresat szyfrowanej wiadomości. Po podaniu klucza zaszyfrowany tekst tworzy się w ten sposób (możesz spróbować na papierze): pod tekstem, który chcemy zaszyfrować 15
wpisujemy klucz tak, by litery klucza znajdowały się pod literami tekstu.litery z jednej kolumny dodajemy tak, jakby były liczbami i otrzymujemy litery szyfru (np. A=1, B=2, C=3,...) Np.: C-3 O-15 K-11 O-15 L-12 A-1 D-4 A-1 J-10 A-1 N-14 O-15 J-10 A-1 N-14 O-15 13 16 25 30 (-26) 22 2 18 16 M P Y D V B R P My pozwolimy na klucz 4-znakowy. Wprowadzanie klucza trzeba ograniczyć. Klucz musi mieć 4 znaki, nie może zawierać spacji, cyfr i znaków diakryficznych. Wprowadzony klucz będzie wyświetlony dużymi literami za tekstem. Po wyborze możliwości 3 w koljenym rzędzie zostanie wyświetlony tekst: Tekst zaszyfrowany za pomocą 3. szyfru: zostanie wyświetlony wynik szyfrowania. W kolejnym rzędzie pojawi się oddzielająca linia i program poczeka 1 sekundę. Szyfrowanie wprowadzonego tekstu będzie powtarzane do momentu naciśnięcia klawisza Delete. Jakbyśmy chcieli zaszyfrować nowy tekst, musimy ponownie uruchomić program. 22 punktów 16
Pomoc mapa współrzędnych punkty 0 584 pola 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 X 0 0 1 2 3 4 5 6 7 8 289 9 Y 17