INF.04-01-22.06-SG

Rok 2022
Zadanie egzaminacyjne
UWAGA: katalog z rezultatami pracy oraz płytę należy opisać numerem, którym został podpisany arkusz, czyli numerem PESEL lub w przypadku jego braku numerem paszportu. Wykonaj aplikację konsolową oraz mobilną według wskazań. Wykonaj dokumentację do aplikacji konsolowej, zgodnie z opisem w części III instrukcji do zadania. W tym celu zaloguj się na konto Egzamin bez hasła. Utwórz folder i nazwij go swoim numerem. W folderze utwórz podfoldery: konsola, mobilna, dokumentacja. Po wykonaniu każdej aplikacji, jej pełny kod (cały folder projektu) spakuj do archiwum. Następnie pozostaw w folderze jedynie pliki źródłowe, których treść modyfikowałeś, plik uruchomieniowy, jeśli jest to możliwe oraz spakowane archiwum.
Część I. Aplikacja konsolowa
Napisz program implementujący algorytm przeszukiwania tablicy z wartownikiem. Opis algorytmu znajduje się w ramce. By odnaleźć element x podejmiemy następujące kroki:
By odnaleźć element x podejmiemy następujące kroki: 1. na końcu tablicy (pod indeksem n+1) wstawimy szukany element x – będzie to nasz wartownik, w przypadku, gdy nie znajdziemy go nigdzie indziej w tablicy, zabezpieczy nas on przed wyjściem poza tablicę, 2. przejdziemy po kolejnych elementach tablicy, tak długo aż nie znajdziemy szukanego elementu, 3. w momencie znalezienia szukanego elementu x sprawdzamy, który jest to element tablicy? Jeżeli jest to ostatni element tablicy (n+1) to trafiliśmy na naszego wartownika i oznacza to, że w tablicy nie było szukanego elementu x, w przeciwnym razie element x został odnaleziony. „
Założenia do programu:
  • Program wykonywany w konsoli.
  • Zastosowany obiektowy język programowania zgodny z zainstalowanym na stanowisku egzaminacyjnym: C++ lub C#, lub Java, lub Python.
  • Przeszukiwana jest minimum 50 elementowa tablica liczb całkowitych wypełniona wartościami pseudolosowymi z zakresu od 1 do 100.
  • Wyszukiwane jest pierwsze wystąpienie elementu w tablicy.
  • Wypełnianie tablicy i przeszukiwanie jest realizowane w oddzielnych funkcjach / metodach. Funkcja przeszukująca zwraca indeks odnalezionego elementu.
  • Wartość do wyszukania jest pobierana z klawiatury.
  • Po przeszukaniu tablicy na ekranie wyświetlana jest zawartość tablicy (liczby oddzielone przecinkami) oraz indeks, pod którym odszukano wartość lub w przypadku jej braku – stosowny komunikat.
  • Program powinien podejmować zrozumiałą komunikację z użytkownikiem, dane wprowadzane i wyprowadzane powinny być opatrzone zrozumiałym opisem.
  • Program powinien być zapisany czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji.
  • Program główny powinien zawierać test działania aplikacji.
Podejmij próbę kompilacji i uruchomienia aplikacji. Informacje dotyczące dokumentacji i zrzutów ekranowych umieszczono w części III zadania. Kod aplikacji przygotuj do nagrania na płytę. W podfolderze konsola powinno znaleźć się archiwum całego projektu o nazwie konsola.zip, plik z kodem źródłowym programu oraz plik uruchomieniowy, jeżeli istnieje.
Część II. Aplikacja mobilna
Wykonaj aplikację mobilną za pomocą środowiska programistycznego dostępnego na stanowisku egzaminacyjnym oraz uruchom ją w dostępnym emulatorze systemu mobilnego. Aplikacja jest fragmentem programu do przeglądania ofert turystycznych. Do wykonania aplikacji należy wykorzystać obraz z archiwum zad1.zip znajdującego się na pulpicie konta Egzamin i zabezpieczonego hasłem: !Turystyk@
Obraz 1a. Aplikacja AndroidStudio, stan początkowy. Emulacja Nexus 5X API 29 x86. Obraz 1b. Aplikacja MS Visual Studio, zachowanie aplikacji: 5 razy wciśnięto „POLUB”. Emulacja Android Oreo.
Na obrazie 1a przedstawiono stan po uruchomieniu aplikacji mobilnej. W zależności od zastosowanego środowiska programistycznego oraz emulowanego systemu wynik końcowy może nieznacznie się różnić od przedstawionego. Na obrazie 1b przedstawiono zachowanie aplikacji: 5 razy wciśnięto przycisk „POLUB” i w efekcie status pod przyciskami wyświetla tekst „5 polubień”. Elementy aplikacji:
  • Tytuł o treści: „Domek w górach”.
  • Obraz o nazwie obraz.jpg wypakowany z archiwum.
  • Trzy przyciski o treści: „POLUB”, „USUŃ”, „ZAPISZ” umiejscowione obok siebie.
  • Napis o treści „0 polubień”.
  • Linia horyzontalna.
  • Napis o treści „Opis”.
  • Napis o treści „Odwiedź komfortowy domek w Sudetach, blisko do szlaków turystycznych”.
Działanie aplikacji:
  • Aplikacja implementuje licznik polubień, który w stanie początkowym aplikacji jest równy 0, następnie jego stan jest:
  • inkrementowany po wciśnięciu przycisku „POLUB”,
  • dekrementowany po wciśnięciu przycisku „USUŃ”. Licznik nie może być niższy niż 0.
  • Stan licznika jest wyświetlany pod przyciskami, w formie napisu „<x> polubień”, gdzie <x> oznacza aktualną wartość licznika.
Założenia aplikacji:
  • Interfejs użytkownika zapisany za pomocą języka znaczników wspieranego w danym środowisku (np. XAML, XML).
  • Zastosowany typ rozkładu liniowy wertykalny (Linear / Stack lub inny o tej idei) z zagłębionym rozkładem liniowym horyzontalnym dla przycisków.
  • Margines wewnętrzny górny dla całej strony lub rozkładu wertykalnego: 20 px (lub dp)
  • Kolor tła przycisków i rozkładu, w którym się znajdują: Teal (#008080), zgodnie z Obrazem 1a.
  • Kolory czcionki: biały dla przycisków oraz Gray (#808080) dla napisu „Odwiedź…”, zgodnie z Obrazem 1a.
  • Czcionka tytułu ma rozmiar największy spośród użytych w aplikacji.
  • Czcionka napisu „Opis” jest pogrubiona.
  • Napis o liczbie polubień jest wyrównany do prawej.
  • Obraz wypełnia całą szerokość strony (zależnie od zastosowanego aspektu może być automatycznie obcięty przez emulator – zobacz obraz 1b).
  • Linia horyzontalna jest koloru Gray (#808080), dopuszcza się również prostokąt o wysokości 1.
  • Aplikacja powinna być zapisana czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji.
Podejmij próbę kompilacji i emulacji. Informacje dotyczące dokumentacji i zrzutów ekranowych umieszczono w części III zadania. Kod aplikacji przygotuj do nagrania na płytę. W podfolderze mobilna powinno znaleźć się archiwum całego projektu o nazwie mobilna.zip, plik źródłowy interfejsu użytkownika (XAML lub XML) oraz plik źródłowy kodu skojarzonego z interfejsem użytkownika.
Część III. Dokumentacja aplikacji
Wykonaj dokumentację do aplikacji utworzonych na egzaminie. W kodzie źródłowym aplikacji konsolowej utwórz nagłówek funkcji przeszukującej, według wzoru zgodnie z listingiem 1. Nagłówek powinien znaleźć się w kodzie źródłowym nad funkcją. W miejscu nawiasów <> należy podać nazwę funkcji, nazwy argumentów wraz z krótkim opisem, typ zwracany wraz z krótkim opisem, krótki opis zawierający przynajmniej nazwę algorytmu. Gdy funkcja nie ma argumentów – zapisać „brak”. W miejscu autor należy podać swój numer. 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>
argumenty:      <nazwa argumentu> - <co przechowuje>
                <nazwa argumentu> -<co przechowuje> 
typ zwracany:   <nazwa typu>, <co jest zwracane> 
informacje:     <opis>
autor:          <numer zdającego>
*****************************************************/
Wykonaj zrzuty ekranu dokumentujące uruchomienie aplikacji utworzonych podczas egzaminu. Zrzuty powinny obejmować cały obszar ekranu monitora z widocznym paskiem zadań. Jeżeli aplikacja uruchamia się, na zrzucie należy umieścić okno z wynikiem działania programu oraz otwarte środowisko programistyczne z projektem lub okno terminala z kompilacją projektu. Jeżeli aplikacja nie uruchamia się z powodu błędów kompilacji, należy na zrzucie umieścić okno ze spisem błędów i widocznym otwartym środowiskiem programistycznym. Wykonać należy tyle zrzutów ile interakcji podejmuje aplikacja. Wymagane zrzuty ekranu:
  • Aplikacja konsolowa – dowolna liczba zrzutów nazwanych konsola1, konsola2 …
  • Aplikacja mobilna – dowolna liczba zrzutów nazwanych mobile1, mobile2 … (np. stan początkowy, po wciśnięciu przycisku polubień)
W edytorze tekstu pakietu biurowego utwórz plik z dokumentacją i nazwij go egzamin. Dokument powinien zawierać podpisane zrzuty ekranu oraz zapisane informacje:
  • 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.
  • Nazwa emulatora systemu mobilnego.
Zrzuty ekranu i dokument umieść w podfolderze dokumentacja. UWAGA: Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego powinny się znajdować podfoldery: konsola, mobilna, dokumentacja. W folderze dokumentacja: pliki ze zrzutami oraz plik egzamin. W folderze konsola: spakowany cały projekt aplikacji konsolowej, pliki z kodem źródłowym, opcjonalnie plik uruchomieniowy. W folderze mobilna: spakowany cały projekt aplikacji mobilnej, pliki ze źródłami interfejsu i logiki. Po nagraniu płyty sprawdź poprawność nagrania. Opisz płytę swoim numerem i pozostaw na stanowisku, zapakowaną w pudełku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 180 minut. Ocenie będą podlegać 4 rezultaty
  • Implementacja, kompilacja, uruchomienie programu,
  • Aplikacja konsolowa,
  • Aplikacja mobilna,
  • Dokumentacja aplikacji.