Arkusz INF.04 : 2022 - czerwiec - zad. 01

Oznaczenie: INF.04-01-22.06-SG   Limit czasu: 150 minut

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:

  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 domek.zip znajdującego się na pulpicie konta Egzamin i zabezpieczonego hasłem: !Turystyk@

Pobierz domek.zip

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

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.