Arkusz INF.04 : 2026 - styczeń - zad. 01
Oznaczenie: INF.04-01-26.01-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Numer, którym został podpisany arkusz egzaminacyjny (PESEL lub w przypadku jego braku, numer paszportu) jest w zadaniu nazywany numerem zdającego.
Wykonaj aplikację konsolową oraz mobilną według wskazań. Wykonaj testy jednostkowe aplikacji konsolowej.
Wykorzystaj konto Egzamin bez hasła. Do wykonania aplikacji mobilnej wykorzystaj umieszczone na pulpicie konta Egzamin obrazy z archiwum PlikiSt202601INF04.zip z hasłem: @Kosc6
Pobierz PlikiSt202601INF04.zip
Utwórz folder i nazwij go numerem zdającego. W folderze utwórz podfoldery: konsolowa, mobilna, testy.
Część I. Aplikacja konsolowa
Zaprogramuj klasę o nazwie Kosc implementującą logikę działania pojedynczej kości, wykorzystywanej później w grze w kości. Każda ściana kości zawiera unikatową liczbę oczek równą wartości wyrzuconej z zakresu 1 ÷ 6.
Założenia do programu:
- Wykonywany w
konsoli - Zastosowany
obiektowyjęzyk programowania zgodny z zainstalowanym na stanowisku egzaminacyjnym: C++ lub C#, lub Java, lub Python - Zastosowane znaczące, angielskie lub polskie nazewnictwo zmiennych i funkcji
- Zapisany czytelnie, z zachowaniem zasad czystego formatowania kodu
Klasa Kosc powinna zawierać:
- Pole
ogólnodostępne,statyczne, przechowująceliczbę instancjiklasy Kosc - Pola
ogólnodostępne, przechowujące:- Nazwy plików przechowujących obrazy (kosc0.png, kosc1.png, kosc2.png, kosc3.png, kosc4.png, kosc5.png, kosc6.png) umieszczone w
tablicylub innej kolekcji typunapisowego - Liczba oczek wyrzucona kością, typu
liczbowegocałkowitego (3dlaobrazu 1)
- Nazwy plików przechowujących obrazy (kosc0.png, kosc1.png, kosc2.png, kosc3.png, kosc4.png, kosc5.png, kosc6.png) umieszczone w
Obraz 1. kosc3.png

-
- Identyfikator pliku graficznego odpowiadającego wyrzuconej liczbie oczek, typu całkowitego (
3dlaobrazu 1, jest to indeks tablicy wskazujący na nazwękosc3.png) - Informacja czy kość jest dostępna, typu logicznego
- Identyfikator pliku graficznego odpowiadającego wyrzuconej liczbie oczek, typu całkowitego (
- Konstruktory klasy:
- Jednoargumentowy, którego argument jest wartością wyrzuconej kości.
- W przypadku, gdy wartość argumentu jest inna niż
1,2,3,4,5lub6, ustawia wartość na0 - Przypisuje
liczbie oczekiidentyfikatorowipliku wartość argumentu - Przypisuje wartość polu logicznemu: kość jest dostępna
- Inkrementuje zmienną statyczną zliczającą
instancje klasy
- W przypadku, gdy wartość argumentu jest inna niż
- Bezargumentowy:
- Losuje liczbę
pseudolosowąz zakresu od1do6 - Przypisuje
liczbie oczekiidentyfikatorowipliku wylosowaną liczbę - Przypisuje wartość polu logicznemu: kość jest dostępna
- Inkrementuje zmienną statyczną zliczającą
instancje klasy
- Losuje liczbę
- Jednoargumentowy, którego argument jest wartością wyrzuconej kości.
- UWAGA!
- W języku Python należy utworzyć jeden konstruktor z domyślną wartością argumentu None
- Metoda ogólnodostępna, bezparametrowa, niezwracająca wartości, która realizuje rzut kością tylko, gdy kość jest dostępna:
- Losuje wartość z zakresu od
1do6 - Przypisuje wylosowaną wartość do pola
liczby oczekiidentyfikatorapliku graficznego
- Losuje wartość z zakresu od
- Metoda ogólnodostępna, bezparametrowa, niezwracająca wartości, która blokuje kość:
- Ustawiana jest informacja, że kość jest
niedostępna
- Ustawiana jest informacja, że kość jest
- Metoda ogólnodostępna, bezparametrowa, zwracająca wartość wyrzuconą na kości w postaci tekstu (np. gdy wartość jest równa
3, zwracane jest„trzy”)
Sprawdź działanie klasy w programie głównym:
- Należy utworzyć dwa obiekty klasy
Kosc, każdy za pomocą innego konstruktora - W przypadku konstruktora jednoargumentowego liczba przekazana jako argument ma być pobrana z klawiatury
- Po utworzeniu każdego obiektu należy wyświetlić:
- Liczbę utworzonych
instancji klasy - Informację o
liczbie oczekwyrzuconych kością (w postaciliczbowejinapisowej) - Nazwę pliku odpowiadającego wyrzuconej liczbie oczek
- Liczbę utworzonych
- Informacja powinna być zrozumiała dla użytkownika
Wykonaj zrzuty ekranu dokumentujące wykonanie programu w konsoli. Zrzuty ekranu powinny obejmować cały obszar ekranu, z widocznym paskiem zadań oraz środowiskiem programistycznym. Liczba zrzutów ekranu powinna odpowiadać wszystkim możliwym interakcjom użytkownika z programem. Zrzuty ekranu zapisz w folderze konsolowa pod nazwami konsola1.png, konsola2.png, itd.
Kod aplikacji przygotuj do nagrania na płytę. W folderze konsolowa powinno znaleźć się archiwum całego projektu o nazwie konsola.zip, skopiowany z projektu plik z kodem źródłowym programu, plik wykonywalny, jeżeli istnieje oraz zrzuty ekranu.
Część II. Aplikacja mobilna
Za pomocą środowiska programistycznego dostępnego na stanowisku egzaminacyjnym wykonaj aplikację mobilną do gry w kości oraz uruchom ją w dostępnym emulatorze systemu mobilnego. Gra polega na rzutach pięcioma sześciennymi kośćmi. Stany aplikacji zostały przedstawione na obrazach 2 i 3. W zależności od zastosowanego środowiska programistycznego oraz emulowanego systemu, widok może nieznacznie się różnić. W programie można wykorzystać klasę Kosc z aplikacji konsolowej.
Obraz 2. Stany aplikacji mobilnej w Android Studio

Obraz 3. Stany aplikacji mobilnej w .NET MAUI lub XAMARIN

Elementy aplikacji w stanie początkowym (stan 1 obrazu 2 lub 3):
- Pięć obrazów
kosc0.pngbez przezroczystości (wszystkie kości są dostępne) - Przycisk z napisem „RZUT”
- Pole tekstowe z wynikiem rzutu z wartością
0, zawierającesumę oczekpięciu kości - Rozmieszczenie elementów zgodne z obrazami
2lub3
Założenia dotyczące widoku:
- Interfejs użytkownika zapisany za pomocą
języka znacznikówwspieranego w danym środowisku (np. XAML, XML) - Zastosowany dowolny układ pozwalający na rozmieszczenie wszystkich elementów tak jak na obrazie
2lub3 - Tło okna / rozkładu:
#ED27C121, tło przycisku:#ED275021 - Rozmiar czcionki pola tekstowego
40 - Wielkość obrazów wyświetlających kości dopasowana do widoku z obrazu
2lub3 - Marginesy zewnętrzne dla obrazów i przycisku
10 - Wszystkie elementy widoku są
wyśrodkowane
Działanie aplikacji po wciśnięciu przycisku RZUT:
- Dla dostępnych kości
losowanajest liczba oczek każdej z nich - W kontrolkach obrazu wyświetlana jest grafika odpowiadająca liczbie oczek na każdej kości
- Liczona jest
suma oczekz wszystkich kości i wyświetlana w polu tekstowym
Działanie aplikacji po kliknięciu na dowolny obraz kości:
- Jeżeli kość jest dostępna: jest ustawiana na
niedostępnąi przezroczystość obrazu jest ustawiana na50% - Jeżeli kość jest niedostępna: jest ustawiana na
dostępnąi obraz jest wyświetlanybez przezroczystości
Przykłady interakcji:
- Obraz 3, stan 2: ponieważ wszystkie kości są dostępne, jest losowanych 5 wartości (4, 4, 1, 4, 2), wyświetlane są odpowiadające im grafiki (kosc4.png, kosc4.png, kosc1.png, kosc4.png, kosc2.png) oraz liczona jest suma oczek równa 15 (4 + 4 + 1 + 4 + 2 = 15)
- Obraz 3, stan 3: zostały kliknięte kości: pierwsza, druga i czwarta (4, 4, 4); została zmieniona ich przezroczystość, są niedostępne
Aplikacja powinna być zapisana czytelnie, z zasadami czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji.
Podejmij próbę kompilacji i emulacji aplikacji. Wykonaj zrzuty ekranowe dokumentujące wszystkie stany aplikacji. Zrzuty zapisz w folderze mobilna pod nazwami mobilna1.png, mobilna2.png, itd. Wszystkie zrzuty muszą zawierać cały obszar ekranu z paskiem zadań i środowiskiem programistycznym.
Kod aplikacji przygotuj do nagrania na płytę. W folderze mobilna powinno znaleźć się archiwum całego folderu projektu oraz skopiowane pliki z kodem źródłowym, które były modyfikowane oraz pliki z zrzutami.
Część III. Testy jednostkowe
Wykonaj testy jednostkowe aplikacji konsolowej, metody realizującej rzut kością. Do napisania testów wykorzystaj bibliotekę do testów jednostkowych dostępną na stanowisku egzaminacyjnym dla języka programowania, w którym została napisana klasa Kosc. W testach jednostkowych należy rozważyć następujące przypadki testowe:
- Czy wyrzucona wartość jest w zakresie od
1do6 - Czy wartość na kości pozostaje
bez zmianjeżeli kość nie jest dostępna
W testach nazwy metod testujących należy dobrać tak, aby wyrażały cel danego testu. Nazwy metod należy zapisać zgodnie z konwencją nazewnictwa w danym języku programowania. Każdy przypadek testowy powinien być sprawdzany oddzielną metodą.
Po napisaniu metod testujących uruchom wszystkie metody. Wykonaj zrzuty ekranu dokumentujące uruchomienie testów, zrzuty zapisz w katalogu testy pod nazwami test1.png, test2.png, itd. Na zrzutach powinny być widoczne wyniki działania metod testujących. Zrzuty ekranu powinny obejmować cały obszar ekranu, z widocznym paskiem zadań oraz środowiskiem programistycznym.
Projekt testów przygotuj do nagrania na płytę. W folderze testy powinno znaleźć się archiwum całego folderu projektu oraz skopiowane pliki z kodem źródłowym, które były modyfikowane oraz zrzuty ekranu.
Utwórz plik tekstowy z dokumentacją i nazwij go egzamin. Dokument powinien zawierać informacje o narzędziach wykorzystanych na egzaminie:
- Nazwę systemu operacyjnego
- Nazwy środowisk programistycznych
- Nazwę emulatora dla aplikacji mobilnej
- Nazwy języków programowania
Dokument egzamin zapisz w folderze z numerem zdającego.
- UWAGA!
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego powinny się znajdować foldery: konsolowa, mobilna, testy oraz plik egzamin. W folderze konsolowa: spakowany cały projekt aplikacji konsolowej, pliki źródłowe, plik wykonywalny jeśli istnieje, zrzuty ekranu. W folderze mobilna: spakowany cały projekt aplikacji mobilnej, pliki z kodem źródłowym interfejsu i logiki, zrzuty ekranu. W folderze testy: spakowany projekt z testami jednostkowymi, pliki z zapisem metod testujących, zrzuty ekranu. Po nagraniu płyty sprawdź poprawność nagrania. Opisz płytę numerem zdającego i pozostaw na stanowisku, zapakowaną w pudełku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 180 minut.
Ocenie podlegać będą 4 rezultaty:
- implementacja, kompilacja, uruchomienie programów
- aplikacja konsolowa
- aplikacja mobilna
- testy aplikacji.

Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
KOD: pasja
Dostajesz rabat -15%
KOD: pasja
Dostajesz rabat -15%
KOD: pasja-linux
Dostajesz rabat -10%
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!