Rok 2023
Zadanie egzaminacyjne
UWAGA: katalog z rezultatami pracy oraz płytę należy opisać numerem zdającego, którym został podpisany arkusz, czyli numerem PESEL lub w przypadku jego braku numerem paszportu. Dalej w zadaniu numer ten jest nazwany numerem zdającego. Wykonaj aplikację konsolową oraz desktopową według wskazań. Udokumentuj obie aplikacje zrzutami ekranu i komentarzami zgodnie z opisem w części III instrukcji do zadania. Wykorzystaj konto Egzamin bez hasła. Utwórz folder i nazwij go numerem zdającego. W folderze utwórz podfoldery: konsola, desktop, dokumentacja. Po wykonaniu każdej aplikacji, jej pełny kod (cały folder projektu) spakuj do archiwum. Następnie pozostaw w podfolderze jedynie pliki źródłowe, których treść była modyfikowana, plik wykonywalny, jeśli jest to możliwe oraz spakowane archiwum. Dokumentację obu aplikacji w postaci zrzutów ekranu i dokumentu umieść w folderze dokumentacja.Część I. Aplikacja konsolowa
Korzystając z opisu algorytmu sita Eratostenesa, przekształć pseudokod algorytmu do aplikacji konsolowej szukającej liczb pierwszych w przedziale 2..n, gdzie n = 100. Ze zbioru liczb naturalnych z przedziału [2, n], tj. {2,3,4,… ,n} wybieramy najmniejszą, czyli 2, i wykreślamy wszystkie jej wielokrotności większe od niej samej, to jest 4, 6, 8, … . Z pozostałych liczb wybieramy najmniejszą niewykreśloną liczbę (3) i wykreślamy wszystkie jej wielokrotności większe od niej samej: 6, 9, 12, … . Według tej samej procedury postępujemy dla liczby 5. Następnie dla 7 aż do sprawdzenia wszystkich niewykreślonych wcześniej liczb. Wykreślanie powtarzamy do momentu, gdy liczba i, której wielokrotność wykreślamy, będzie większa niż √𝑛. Pseudokod:Niech A będzie tablicą wartości typu logicznego indeksowaną
liczbami całkowitymi od 2 do n (indeksy 0 i 1 nie są brane pod uwagę w czasie działania algorytmu),
początkowo wypełniona wartościami true
for i := 2, 3, 4, ..., nie więcej niż √𝑛:
if A[i] = true:
for j := 2*i, 3*i, 4*i, ..., nie więcej niż n :
A[j] := false
Wyjście: wartości i takie, że A[i] zawiera wartość true.
- Program wykonywany w konsoli.
- Język programowania zgodny z zainstalowanym na stanowisku egzaminacyjnym, jeden z: C++, C#, Java, Python.
- Program szuka liczb w przedziale 2..100 (n = 100)
- Wypełnianie tablicy odbywa się w osobnej funkcji przyjmującej tablicę jako argument i nie zwracającej żadnej wartości.
- Liczby pierwsze są wyświetlane na ekranie, rozdzielone dowolnym separatorem oraz poprzedzone znaczącym komunikatem.
- Program powinien być zapisany czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji.
- Dokumentacja do programu wykonana zgodnie z wytycznymi z części III zadania egzaminacyjnego.
Część II. Aplikacja desktopowa
Za pomocą środowiska programistycznego dostępnego na stanowisku egzaminacyjnym, wykonaj aplikację desktopową będącą fragmentem aplikacji do obsługi poczty. Wykorzystaj umieszczone na pulpicie materiały o nazwie materialy.zip zabezpieczone hasłem: %Twoj@Paczka&Obraz 1. Aplikacja desktopowa, zaznaczono pole radio „List” i wybrano przycisk „Sprawdź Cenę”
Na obrazie 1 przedstawiono ideę aplikacji. W zależności od zastosowanego środowiska programistycznego wygląd może nieznacznie się różnić. Opis wyglądu aplikacji:- Okno dialogowe o nazwie „Nadaj Przesyłkę” i szerokości dopasowanej do kontrolek wewnątrz.
- grupa pól radio: Pocztówka, List, Paczka; pola są zgrupowane w dowolny dostępny element grupujący (np. GroupBox), w stanie początkowym zaznaczone jest pole Pocztówka
- trzy pola edycyjne poprzedzone etykietami o treści „Ulica z numerem”, „Kod pocztowy”, „Miasto”; zgrupowane w dowolny dostępny element grupujący
- przycisk o treści „Sprawdź Cenę”
- obraz w stanie początkowym wyświetlający obraz pocztowka.png
- etykieta o treści „Cena: ”, o cechach: napis pogrubiony i czcionka widocznie większa względem pozostałych napisów
- przycisk o treści: „Zatwierdź”
- pola radio działają w grupie, jednocześnie może być wybrane tylko jedno pole
- po wybraniu przycisku „Sprawdź cenę” aplikacja sprawdza, które pole radio jest zaznaczone i zależnie od wyboru wyświetla odpowiedni dla pola obraz oraz cenę, odpowiednio:
- pole radio Pocztówka: obraz pocztowka.png, „Cena: 1 zł”
- pole radio List: obraz list.png, „Cena: 1,5 zł”
- pole radio Paczka: obraz paczka.png, „Cena: 10 zł”
- po wybraniu przycisku „Zatwierdź” jest walidowane pole kodu pocztowego oraz wyświetlany komunikat. Dla uproszczenia zadania należy przyjąć, że kod składa się tylko z 5 cyfr (bez znaku ’-’).
- komunikat dla poprawnego kodu pocztowego: „Dane przesyłki zostały wprowadzone”
- komunikat, gdy jest mniej lub więcej niż 5 znaków: „Nieprawidłowa liczba cyfr w kodzie pocztowym”
- komunikat, gdy przynajmniej jeden znak nie jest cyfrą: „Kod pocztowy powinien się składać z samych cyfr”
- Pliki obrazów zapisane w zasobach aplikacji
- Aplikacja obsługuje dwa zdarzenia: kliknięcie dla każdego z przycisków
- Po wybraniu przycisku Zatwierdź aplikacja jedynie wyświetla komunikat. Nie jest wymagane, aby dane z okna zostały zapisane do struktury w programie.
- Aplikacja powinna być zapisana czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji
Część III. Dokumentacja utworzonych aplikacji
Wykonaj dokumentację do aplikacji utworzonych na egzaminie. W kodzie źródłowym aplikacji konsolowej utwórz nagłówek funkcji wypełniającej tablicę, według wzoru. Nagłówek powinien znaleźć się w kodzie źródłowym nad funkcją. W miejscu nawiasów <> należy podać nazwę funkcji, nazwy parametrów (lub słowo „brak”) oraz zwięzłe informacje (co realizuje funkcja?) – zgodnie z listingiem 1. W miejscu autor należy podać numer zdającego UWAGA: Dokumentację umieścić w komentarzu (wieloliniowym lub kilku jednoliniowych). Znajdujący się w listingu 1 wzór dokumentacji jest bez znaków początku i końca komentarza, gdyż te są różne dla różnych języków programowania Listing 1. Wzór dokumentacji funkcji/*******************************************************
nazwa funkcji: <tu wstaw nazwę funkcji>
parametry wejściowe:<nazwa parametru> - <co przechowuje>
wartość zwracana: <co zwraca funkcja – opis>
informacje: <opis>
autor: <numer zdającego>
*******************************************************/
- dowolna liczba zrzutów ekranowych z aplikacji konsolowej nazwane konsola1, konsola2 itd.
- dowolna liczba zrzutów ekranowych z aplikacji desktopowej nazwane desktop1, desktop2 itd.
- nazwę systemu operacyjnego, na którym pracował zdający,
- nazwy środowisk programistycznych, z których zdający korzystał na egzaminie,
- nazwy języków programowania użytych podczas tworzenia aplikacji,
- opcjonalnie komentarz do wykonanej pracy.
Czas przeznaczony na wykonanie zadania wynosi 180 minut. Ocenie będą podlegać 4 rezultaty:
- implementacja, kompilacja, uruchomienie programu,
- aplikacja konsolowa,
- aplikacja desktopowa,
- dokumentacja aplikacji.