... Pieczątka Organizatora... Tu wpisz swój Kod KONKURS PRZEDMIOTOWY Z INFORMATYKI DLA UCZNIÓW GIMNAZJUM ETAP WOJEWÓDZKI Drogi uczniu, Witaj na III etapie konkursu informatycznego. Przeczytaj uważnie instrukcję i postaraj się prawidłowo odpowiedzieć na wszystkie pytania. Arkusz liczy 9 stron Twoim zadaniem będzie rozwiązanie czterech zadań umieszczonych w arkuszu konkursowym. Przed rozpoczęciem pracy, sprawdź czy arkusz jest kompletny. Jeśli zauważysz usterki, zgłoś Komisji Konkursowej. Zadania czytaj uważnie i ze zrozumieniem. Rozpoczynając pracę zaloguj się do systemu, zgodnie ze wskazówkami otrzymanymi przed konkursem. Wszystkie potrzebne Ci pliki znajdziesz w folderze Dane, znajdującym się na pulpicie, pliki z rozwiązaniami należy umieszczać w folderze ID_ucznia. Na pulpicie znajdziesz skróty do wszystkich potrzebnych Ci programów. Przy każdym zadaniu podano maksymalną liczbę punktów możliwą do uzyskania za jego rozwiązanie Pracuj samodzielnie Powodzenia! Czas pracy: 90 minut Liczba punktów możliwych do uzyskania: 50 Wpisuje egzaminator / nauczyciel sprawdzający pracę Nr zadania 1 2 3 4 Suma Maksymalna liczba punktów 18 14 10 8 50 Uzyskana liczba punktów Strona 1 z 9
Zadanie 1 Ankieta (18 punktów) Za pomocą notatnika systemowego utwórz nową stronę html i zapisz ją na dysku w swoim folderze pod nazwą index.html. Wykonaj następujące czynności: a) stwórz odpowiedni szkielet dokumentu, zadeklaruj typ dokumentu jako HTML 5, dodaj ramy początku i końca dokumentu znacznikiem <html> oraz dodaj sekcje <head> i <body> ; b) w nagłówku dokumentu ustaw stronę kodową na UTF-8 oraz tytuł strony jako Twoje imię i nazwisko ; c) dodaj do strony formularz który umożliwi wysłanie wpisanych i wybranych odpowiedzi do domyślnego programu pocztowego zainstalowanego na Twoim komputerze. Formularz ma spełniać następujące wymagania: 1. atrybut action ma odsyłać na adres jan@kowalski.pl 2. atrybut method ma przyjąć wartość post 3. posiada jednowierszowe pole tekstowe o nazwie "imie" i wartości pola "wpisz imię" 4. posiada jednowierszowe pole tekstowe o nazwie "nazwisko" i wartości pola "wpisz nazwisko" 5. pod polami tekstowymi posiada paragraf z tekstem "Mój ulubiony napój to: " 6. posiada listę rozwijaną o nazwie "marka" z następującymi opcjami do wyboru coca-cola pepsi sprite fanta 7. posiada przycisk wysyłający formularz o nazwie "przycisk" i wartości pola "wyślij" 8. posiada obramowanie grupujące pola formularza <fieldset> oraz tytuł wkomponowany w ramkę <legend> o nazwie "Ankieta badająca preferencje konsumentów: " d) dokonaj zmiany wyglądu formularza za pomocą wewnętrznego arkusza stylów CSS: 1. dodaj znacznik <style> w nagłówku strony 2. wystylizuj obramowanie formularza <fieldset> na grubość 3 pikseli jako ciągłą linie w kolorze niebieskim 3. wystylizuj kolor tła znacznika <fieldset> na wartość lightblue ustaw szerokość obramowania <fieldset> na 380 pikseli 4. wystylizuj kolor czcionki znacznika <legend> na wartość darkblue ustaw wielkość czcionki na 20 pikseli Strona 2 z 9
e) w programie GIMP utwórz baner.jpg, który wstawisz do swojej strony, trzymając się następujących założeń: 1. szerokość 400 pikseli, wysokość 100 pikseli 2. w środku napis ANKIETA o wielkości 60 pikseli, czcionka Georgia w kolorze żółtym 3. tło gradientowe typu Deep Sea 4. w prawym rogu banera dodaj 3 figury: pięciokątną gwiazdę, kwadrat i koło z ciemnoczerwonym obramowaniem 5. wyeksportuj grafikę i zapisz ją na dysku w swoim folderze pod nazwą baner.jpg 6. dodaj baner do strony nad formularzem Poniżej zrzut ekranu gotowej strony wykonanej zgodnie z zadaniem: W folderze ID_ucznia/zadanie1 powinny znajdować się pliki index.html oraz baner.jpg Punktowanie zadania 1 Podpunkt a b c d e Razem Max Liczba punktów 2 1 6,5 4 4,5 18 Liczba punktów ucznia Strona 3 z 9
Zadanie 2 Oceny (14 punktów) W tabeli, w pliku oceny.xlsx przedstawiono oceny na świadectwach z oszczególnych przedmiotów dla pewnej klasy. Na podstawie wprowadzonych ocen, wykorzystując arkusz kalkulacyjny odpowiedz na poniższe pytania: a) Jaka jest średnia klasowa, z dokładnością do 3 miejsc po przecinku? b) Jaka ocena najczęściej pojawiała się na świadectwie? c) Policz średnią uczniów, określ jakie dostaną świadectwo: z wyróżnieniem czy zwykłe, (zgodnie z rozporządzeniem MEN: promocję do klasy programowo wyższej z wyróżnieniem otrzymuje uczeń, który w wyniku klasyfikacji rocznej uzyskał z obowiązkowych zajęć edukacyjnych średnią ocen co najmniej 4,75 oraz co najmniej bardzo dobrą ocenę z zachowania), posortuj tabelę malejąco wg średniej ocen; d) Ilu uczniów otrzyma wyróżnienie na świadectwie? e) Policz uczniów z odpowiednią średnią wg następujących kryteriów: średnia <3 >=3 i <4 >=4 i <4,75 >=4,75 liczba uczniów f) Stwórz wykres kołowy 3-W przedstawiający procentowy udział poszczególnych ocen w klasie. Umieść na wykresie etykiety danych (procenty) oraz etykiety kategorii (oceny). Wykres zatytułuj: "Oceny procentowo". Zapisz w folderze ID_ucznia/zadanie2 plik z rozwiązaniem Punktowanie zadania 2 Podpunkt a b c d e f Razem Max Liczba punktów 1 3 3 2 3 2 14 Liczba punktów ucznia Strona 4 z 9
Zadanie 3 Funkcja (10 punktów) W tym zadaniu chcemy sprawdzić Twoje umiejętności dotyczące napisania programu w języku C++, który wyznaczy z dokładnością do liczby dodatniej d przybliżoną wartość miejsca zerowego funkcji liniowej f(x) = ax + b metodą połowienia przedziału. Utworzony przez Ciebie program zapisz w pliku Miejsce_zerowe_cpp. W pliku Wynik.txt zapisz wynik działania programu dla danych określonych w dalszym opisie tego zadania. Definicja funkcji liniowej Funkcję liniową określa wzór f(x) = ax + b, gdzie a jest współczynnikiem kierunkowym, natomiast b jest wyrazem wolnym. Wykresem funkcji liniowej jest prosta, która w przypadku, gdy a 0, przecina oś odciętych OX. Tym samym mówimy, że funkcja liniowa ma miejsce zerowe Jest to liczba, która podstawiona do wzoru funkcji daje wartość równą 0. Krótki opis metody wyznaczenia miejsca zerowego funkcji liniowej 1. Po podaniu wartości współczynnika kierunkowego a oraz wyrazu wolnego b, w pierwszym kroku obliczeń musisz określić na osi odciętych OX taki przedział (p1, p2), w którym funkcja f(x) zmienia znak (z wartości dodatniej na ujemną, lub odwrotnie). 2. Stanowi to podstawę do stwierdzenia, że w tym przedziale znajduje się miejsce zerowe funkcji liniowej f(x). 3. Jeśli w określonym przez Ciebie przedziale funkcja nie zmieni znaku, wówczas powinien wyświetlić się komunikat Źle dobrany przedział i ponownie powinieneś przystąpić do określenia tego przedziału. 4. Następnie musisz określić dokładność obliczeń d i tak długo zmniejszać o połowę przedział (p1, p2), aż otrzymasz taką wartość x0 dla której -d > f(x0) < d. Matematycznie można to także zapisać w następujący sposób f(x0) < d. Wówczas obliczona wartość x0 będzie miejscem zerowym funkcji z dokładnością do d. 5. Do zadania wprowadź dodatkowo zmienną licznik, która określa ile razy (liczba powtórzeń) należy zmniejszać o połowę przedział (p1, p2), aby otrzymać miejsce zerowe funkcji z dokładnością do d. 6. W zadaniu uwzględnij również przypadki, w których: a = 0 i b = 0 a = 0 i b 0 Przykład Wyznacz miejsce zerowe funkcji f(x) dla następujących danych: a = 2.3 b = -3.3 p1 = 1 p2 = 2 d = 0.0001 Strona 5 z 9
Plik Miejsce_zerowe.cpp Twoje wyniki na ekranie a) Oczekujemy od Ciebie, że dla tych danych na ekranie zostaną wyświetlone DOKŁADNIE takie informacje (puste wiersze bez tekstu są także uwzględniane w ocenie zadania): b) W przypadku, gdy określisz zły przedział zmienności, np. (0,1) na ekranie zostaną wyświetlone DOKŁADNIE takie informacje: c) W przypadku gdy a = 0 i b = 0, na ekranie zostaną wyświetlone DOKŁADNIE takie informacje: Strona 6 z 9
d) W przypadku gdy a = 0 i b 0, na ekranie zostaną wyświetlone DOKŁADNIE takie informacje: Plik Wynik.txt e) Oczekujemy od Ciebie, że w tym pliku zapiszesz wynik działania programu dla następujących danych: współczynnik kierunkowy a jest rokiem urodzenia Euklidesa (365 p.n.e); wyraz wolny b jest rokiem urodzenia Billa Gatesa (1955). Oto konstrukcja treści pliku (w miejsce pytajników wstaw określone wartości): a =? b =? p1 =? p2 =? Miejsce zerowe =? Liczba powtórzeń =? W folderze ID_ucznia/zadanie3 powinny znajdować się dwa pliki: Miejsce_zerowe_cpp oraz Wynik.txt Punktowanie zadania 3 Podpunkt a b c d e Razem Max Liczba punktów 5 2 0.5 0.5 2 10 Liczba punktów ucznia Strona 7 z 9
Zadanie 4 Silnia (8 punktów) Silnię z liczby naturalnej n obliczamy w ten sposób, że mnożymy przez siebie kolejne liczby naturalne począwszy od 2, a skończywszy na n. Np.: dla n = 6 otrzymamy: 2 * 3 * 4 * 5 * 6 = 720 dla n = 7 otrzymamy: 2 * 3 * 4 * 5 * 6 * 7 = 5 040 dla n = 8 otrzymamy: 2 * 3 * 4 * 5 * 6 * 7 * 8 = 40 320 dla n = 9 otrzymamy: 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 = 362 880 itd. Jakież jednak było zdziwienie Jacka, który po napisaniu programu w języku C++ obliczającego silnię z liczby naturalnej n, w trakcie jego testowania otrzymał dla n <=8 poprawne wyniki, natomiast dla n = 9 otrzymał wartość mniejszą od silni dla n = 8. Na ekranie bowiem zamiast wartości 362 880 wyświetliła się wartość 35 200. Jacek jednak szybko zorientował się, dlaczego tak się stało. Zadeklarował bowiem w swoim programie zmienną przechowującą wynik z silni, jako unsigned short. Ten typ danych ma długość 2 bajty, zatem może przechować maksymalną wartość liczbową równą 2 16 1 = 65 535, natomiast do zapamiętania poprawnego wyniku potrzeba więcej niż 2 bajty. Nie oczekujemy od Ciebie, abyś obliczył poprawną wartość silni z liczby 9 i wyraził ją w zapisie dwójkowym (binarnym). Podajemy ją tutaj. Jest to: 101 1000 1001 1000 0000. Twoim zadaniem jest: a) wprowadzenie do programu podanej wyżej liczby binarnej; b) określenie w bitach długości tej liczby; c) zamiana wprowadzonej liczby dwójkowej na poprawną wartość dziesiętną; d) zamiana szesnastu mniej znaczących bitów liczby dwójkowej na liczbę dziesiętną. Program powinien być także poprawny dla innych wartości liczby binarnej. Niżej na ekranie prezentujemy wyniki poprawie działającego programu. W folderze ID_ucznia/zadanie4 powinien znajdować się plik Silnia_cpp Punktowanie zadania 4 Podpunkt a b c d Razem Max Liczba punktów bez punktów 1 3 4 8 Liczba punktów ucznia Strona 8 z 9
BRUDNOPIS Strona 9 z 9