Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 9 stycznia 2025 18:16
  • Data zakończenia: 9 stycznia 2025 18:38

Egzamin zdany!

Wynik: 30/40 punktów (75,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Błędy w interpretacji kodu stworzonego za pomocą React.js lub Angular można wykryć dzięki

A. narzędziom zainstalowanym po stronie serwera aplikacji
B. konsoli przeglądarki internetowej
C. kompilatorowi języka JavaScript
D. wbudowanemu debuggerowi w danym środowisku
Konsola przeglądarki to naprawdę super narzędzie do śledzenia błędów w JavaScript, a szczególnie przydatna jest, gdy piszemy coś w React.js albo Angular. Dzięki niej możesz łatwo sprawdzać logi i błędy, a nawet na żywo testować różne fragmenty swojego kodu. To naprawdę szybki sposób, żeby znaleźć problemy, bez potrzeby grzebania w całym kodzie aplikacji.

Pytanie 2

Wynik dodawania liczb binarnych 1101 i 1001 to

A. 10111
B. 1001
C. 1110
D. 10110
Sumą liczb binarnych 1101 i 1001 jest 10110. Dodawanie binarne odbywa się analogicznie do dodawania dziesiętnego, z przeniesieniem jedności na kolejny bit, co prowadzi do poprawnego wyniku.

Pytanie 3

Który z języków programowania jest powszechnie stosowany do tworzenia interfejsów użytkownika przy użyciu XAML?

A. C++
B. Objective-C
C. C#
D. Java
C++ jest często używany do tworzenia aplikacji desktopowych, ale w przypadku interfejsów użytkownika XAML jest bardziej związany z C#. Java jest językiem wykorzystywanym głównie do tworzenia aplikacji na Androida oraz aplikacji webowych i backendowych, ale nie jest typowo używany do programowania interfejsów w XAML. Objective-C to starszy język programowania dla systemów Apple i nie jest związany z XAML, który jest specyficzny dla technologii Microsoftu.

Pytanie 4

W frameworkach do budowy aplikacji mobilnych lub desktopowych znajduje zastosowanie wzorzec MVVM, oznaczający Model-View-ViewModel. Te podejście do programowania oznacza, że

A. w aplikacji obecny jest jedynie interfejs użytkownika
B. kontrolki i widoki interfejsu użytkownika są zintegrowane z logiką aplikacji
C. interfejs użytkownika oraz logika aplikacji są oddzielone
D. interfejs użytkownika i logika aplikacji są umieszczone w jednym pliku
Wzorzec MVVM, czyli Model-View-ViewModel, jest jednym z kluczowych podejść w architekturze aplikacji, szczególnie w kontekście aplikacji mobilnych i desktopowych. Zakłada on wyraźne rozdzielenie logiki aplikacji (Model) od warstwy prezentacji (View), z pomocą komponentu ViewModel, który działa jako mediator. Dzięki temu programiści mogą łatwiej zarządzać kodem, testować poszczególne komponenty oraz wprowadzać zmiany w interfejsie użytkownika bez wpływu na logikę aplikacji. Przykładem zastosowania MVVM jest framework WPF (Windows Presentation Foundation), w którym dane są wiązane do kontrolek w interfejsie użytkownika, co pozwala na automatyczną aktualizację widoków w przypadku zmian w modelu. Standardy takie jak Data Binding w WPF oraz Reactive Programming w Xamarin i Avalonia, pokazują, jak MVVM ułatwia rozwój aplikacji poprzez separację odpowiedzialności, co prowadzi do większej przejrzystości kodu i łatwości w jego utrzymywaniu.

Pytanie 5

W aplikacji mobilnej, aby określić warianty grafiki w zależności od wielkości ekranu, należy (uwaga: odpowiedzi wariantowe dla dwóch systemów - sugerować się systemem omawianym na zajęciach)

A. iOS: utworzyć katalogi hdpi, lhpi, xhpi i dodać do nich grafiki. Android: utworzyć katalogi 32x32, 64x64, 96x96 i dodać do nich grafiki
B. iOS: dodać do nazw sufiksy oznaczające rozdzielczość, np. 32ppi. Android: umieścić grafikę w odpowiednich katalogach: 32ppi, 64ppi, 96ppi
C. iOS: dodać do nazw sufiksy #2x, #3x. Android: dodać do nazw sufiks rozdzielczości: -32x32, -64x64, -96x96
D. iOS: dodać do nazw plików sufiksy @2x, @3x. Android: umieścić grafikę w odpowiednich folderach drawable: -hdpi, -xhpi, xxhdpi
Kiedy chcemy, żeby grafiki w aplikacjach mobilnych wyglądały dobrze na różnych ekranach, musimy zastosować odpowiednie strategie, które zależą od platformy. Na iOS używa się przyrostków @2x lub @3x, co oznacza, że grafiki są przygotowane dla ekranów Retina, które mają wyższą gęstość pikseli. Na Androidzie z kolei, grafiki umieszcza się w folderach drawable z takimi nazwami jak -hdpi, -xhdpi czy -xxhdpi. Dzięki temu system wie, jaką wersję grafiki wybrać w zależności od rozdzielczości urządzenia. Moim zdaniem, taki system pozwala na super jakość obrazów i lepszą wydajność aplikacji.

Pytanie 6

Jakie kwestie związane z percepcją są uwzględnione w rekomendacjach standardu WCAG 2.0?

A. jasności i dokładności w dostarczonych treściach na stronie
B. umożliwienia interakcji między elementami użytkownika za pomocą klawiatury
C. prezentacji elementów interfejsu użytkownika
D. zapewnienia odpowiedniego czasu na zapoznanie się i przetworzenie informacji
Inne zasady WCAG, takie jak obsługa klawiatury czy zrozumiałość treści, dotyczą odpowiednio nawigacji i struktury informacji. Elementy percepcyjne koncentrują się na warstwie wizualnej i słuchowej, umożliwiając użytkownikom z różnymi ograniczeniami percepcyjnymi dostęp do pełnej funkcjonalności strony.

Pytanie 7

Gdzie są przechowywane informacje w sytuacji korzystania z chmury obliczeniowej?

A. Na nośnikach optycznych użytkownika
B. Na lokalnym serwerze użytkownika
C. Na zdalnych serwerach dostawcy usług
D. Na dysku twardym użytkownika
Przechowywanie danych na serwerze lokalnym użytkownika, na dysku twardym lub na dyskach optycznych jest w kontekście chmury obliczeniowej nieodpowiednie i nieefektywne. Serwer lokalny użytkownika, mimo że może przechowywać dane, nie oferuje takich samych korzyści jak zdalne serwery dostawcy usług chmurowych. W przypadku awarii, usunięcia danych lub kradzieży, użytkownik może stracić wszystkie informacje bez możliwości ich odzyskania, co jest minimalizowane w modelu chmurowym dzięki automatycznym kopiom zapasowym i redundancji. Dysk twardy użytkownika ma ograniczoną pojemność i nie jest w stanie zapewnić elastyczności w zarządzaniu dużymi zbiorami danych, co jest kluczowe w dzisiejszym świecie big data. Przechowywanie danych na dyskach optycznych również nie jest praktycznym rozwiązaniem, ponieważ wymaga manualnej obsługi i nie oferuje natychmiastowego dostępu do danych. Ostatecznie, wszystkie te metody przechowywania są ułomne w porównaniu z korzyściami, jakie niesie za sobą korzystanie z zdalnych serwerów dostawcy usług, które są nie tylko bardziej wydajne, ale również zapewniają większe bezpieczeństwo i łatwość dostępu do danych.

Pytanie 8

W językach C++ bądź C# termin virtual można wykorzystywać w kontekście

A. atrybutów klasy
B. metod klasy
C. destruktorów
D. funkcji zaprzyjaźnionych
W językach C++ i C# słowo kluczowe 'virtual' można stosować do metod klasy, co umożliwia ich nadpisanie w klasach pochodnych. Pozwala to na implementację polimorfizmu, co jest kluczowym elementem programowania obiektowego.

Pytanie 9

Zaprezentowany diagram Gantta odnosi się do projektu IT. Przy założeniu, że każdy członek zespołu dysponuje wystarczającymi umiejętnościami do realizacji każdego z zadań oraz że do każdego zadania można przypisać jedynie jedną osobę, która poświęci na zadanie pełny dzień pracy, to minimalna liczba członków zespołu powinna wynosić:

Ilustracja do pytania
A. 5 osób
B. 2 osoby
C. 4 osoby
D. 1 osobę
Diagram Gantta przedstawia harmonogram projektu, gdzie poszczególne zadania są przypisane do konkretnych dni. W sytuacji, gdy każdy członek zespołu jest w stanie wykonać dowolne zadanie, minimalna liczba osób potrzebna do realizacji projektu to liczba równoczesnych zadań w najbardziej wymagającym momencie. Kluczowe jest tu równomierne rozłożenie pracy i unikanie przestojów, co zapewnia efektywne wykorzystanie zasobów.

Pytanie 10

Jakie działanie powinno się wykonać w pierwszym kroku, oceniając stan osoby poszkodowanej?

A. Rozpocząć resuscytację krążeniowo-oddechową
B. Sprawdzić, czy występuje krwawienie
C. Wezwać ambulans
D. Zadbać o własne bezpieczeństwo
Bezpieczeństwo to naprawdę ważna sprawa, kiedy oceniamy stan kogoś, kto uległ wypadkowi. Jak nie zadbamy o siebie, to możemy się sami narazić i to jeszcze bardziej skomplikować całą akcję ratunkową. Ruch uliczny, prąd, jakieś toksyczne substancje... to wszystko może być niebezpieczne. Dopiero jak mamy pewność, że jest ok w okolicy, możemy zająć się poszkodowanym i myśleć o dalszych krokach ratunkowych.

Pytanie 11

W zaprezentowanym kodzie stworzono abstrakcyjną klasę figura oraz klasę prostokąta, która dziedziczy po niej, zawierającą zdefiniowane pola i konstruktory. Wskaż minimalną wersję implementacji sekcji /* metody klasy */ dla klasy Prostokat:

Ilustracja do pytania
A. D
B. B
C. A
D. C
Minimalna implementacja klasy Prostokat wymaga zaimplementowania podstawowych metod określonych w klasie abstrakcyjnej figura. Implementacja zawiera niezbędne pola i metody, które muszą być obecne, aby klasa mogła być skompilowana i działała poprawnie.

Pytanie 12

Jakie jest podstawowe użycie metod wirtualnych?

A. Umożliwienie dynamicznego wiązania metod w czasie wykonania
B. Zapewnienie, że metoda działa wyłącznie na danych statycznych
C. Umożliwienie korzystania z metod bezpośrednio z klasy bazowej
D. Umożliwienie wielokrotnego dziedziczenia
Umożliwienie korzystania z metod bezpośrednio z klasy bazowej nie jest funkcją metod wirtualnych – to raczej standardowa cecha metod publicznych. Metody działające wyłącznie na danych statycznych nie mogą być wirtualne, ponieważ ich działanie nie jest zależne od instancji klasy. Umożliwienie wielokrotnego dziedziczenia jest funkcją konstrukcji dziedziczenia w językach takich jak C++, ale samo w sobie nie wymaga metod wirtualnych, chociaż mogą one być używane w kontekście wielokrotnego dziedziczenia.

Pytanie 13

Który z dokumentów stosowanych w metodologii Agile zawiera listę funkcjonalności produktu uporządkowanych według ich ważności?

A. Product backlog
B. Backlog sprintu
C. Diagram Gantta
D. Harmonogram projektu
Product backlog to dokument zawierający listę funkcjonalności produktu uporządkowanych według priorytetów. Jest to jedno z głównych narzędzi w metodykach Agile, szczególnie w Scrumie, gdzie backlog stanowi podstawę do planowania sprintów. Zawiera on wszystkie elementy, które muszą zostać zaimplementowane, w tym nowe funkcje, poprawki błędów oraz zadania techniczne. Priorytety są ustalane przez właściciela produktu (Product Ownera) i dostosowywane na bieżąco w zależności od zmieniających się wymagań i potrzeb biznesowych. Dzięki backlogowi zespół może skupić się na dostarczaniu najważniejszych funkcji, co pozwala na szybkie reagowanie na feedback i rozwój aplikacji zgodnie z oczekiwaniami klienta.

Pytanie 14

Który z poniższych aspektów najdokładniej określa cel realizacji projektu?

A. Ocena postępów w czasie realizacji projektu
B. Określenie problemu i metody jego rozwiązania
C. Zidentyfikowanie technologii, które mogą być zastosowane
D. Stworzenie harmonogramu działań
Określenie problemu i sposobu jego rozwiązania to fundamentalny cel każdego projektu. Bez jasno zdefiniowanego problemu i sprecyzowanej metody jego rozwiązania, projekt może stać się chaotyczny i nieefektywny. Precyzyjna analiza problemu pozwala na wyznaczenie celów, które prowadzą do stworzenia wartościowego produktu lub usługi. Dzięki temu zespół może skupić się na kluczowych zadaniach i efektywnie zarządzać zasobami. Określenie problemu to pierwszy krok w metodykach Agile i Waterfall, który warunkuje sukces całego przedsięwzięcia.

Pytanie 15

Jakie jest podstawowe działanie w ochronie miejsca zdarzenia?

A. Usunięcie niebezpiecznych przedmiotów z otoczenia
B. Zastosowanie sterylnych materiałów opatrunkowych
C. Zagwarantowanie odpowiedniego oświetlenia
D. Zagwarantowanie stabilności ciała rannego
Z mojego doświadczenia, usunięcie niebezpiecznych rzeczy z miejsca, gdzie doszło do wypadku, to naprawdę kluczowa sprawa. Dzięki temu zmniejszamy szanse na dodatkowe obrażenia i możemy lepiej pomóc poszkodowanemu, nie narażając siebie na ryzyko. Na przykład, warto odsunąć ostre narzędzia, wyłączyć działające maszyny czy podnieść ciężkie przedmioty, które mogłyby kogoś zranić. Takie działania są istotne w każdej sytuacji, czy to wypadek na drodze, czy w pracy.

Pytanie 16

Jakie operacje na plikach można uznać za podstawowe?

A. Otwieranie, zapisywanie, odczytywanie, zamykanie
B. Zmiana rozszerzenia plików podczas działania programu
C. Usuwanie oraz tworzenie nowych plików
D. Jedynie otwieranie oraz zamykanie plików
Podstawowe operacje na plikach obejmują otwieranie, zapisywanie, odczytywanie i zamykanie. Te cztery operacje są fundamentem zarządzania plikami w programowaniu i pozwalają na efektywne przechowywanie oraz przetwarzanie danych. Otwarcie pliku umożliwia dostęp do jego zawartości, zapis pozwala na modyfikację lub tworzenie nowych plików, odczyt umożliwia pobieranie danych, a zamknięcie pliku zapewnia integralność danych i zwalnia zasoby systemowe. W wielu językach, takich jak C++, Java czy Python, operacje te są realizowane za pomocą dedykowanych funkcji i klas, co ułatwia ich implementację w kodzie.

Pytanie 17

Jakie jest fundamentalne zagadnienie w projektowaniu aplikacji w architekturze klient-serwer?

A. Brak podziału na role klienta i serwera
B. Przeniesienie wszystkich obliczeń na stronę klienta
C. Użycie serwera jako głównego miejsca przetwarzania danych
D. Funkcjonowanie aplikacji wyłącznie w trybie offline
Użycie serwera jako centralnego miejsca przetwarzania danych jest kluczowym elementem architektury klient-serwer. Serwer pełni rolę centralnego punktu, który zarządza żądaniami klientów, przechowuje dane i zapewnia odpowiedzi na zapytania. Taki model zapewnia większe bezpieczeństwo danych, ułatwia zarządzanie zasobami i umożliwia skalowanie aplikacji w miarę wzrostu liczby użytkowników. Architektura klient-serwer jest szeroko stosowana w aplikacjach webowych, systemach bankowych oraz usługach chmurowych, gdzie konieczna jest centralizacja danych i ich ochrona.

Pytanie 18

Która z metodologii w zarządzaniu projektami umożliwia łatwe dostosowywanie się do zmieniających się potrzeb klienta?

A. Model Waterfall
B. Scrum
C. Kanban
D. Model spiralny
Waterfall to model sekwencyjny, który nie zakłada elastyczności – raz określone wymagania muszą być zrealizowane zgodnie z pierwotnym planem, co utrudnia adaptację do zmian. Kanban umożliwia optymalizację przepływu pracy, ale nie kładzie tak dużego nacisku na iteracyjne dostarczanie funkcjonalności jak Scrum. Model spiralny łączy prototypowanie i iteracje, ale jego struktura nie jest tak elastyczna jak w przypadku Scruma, gdzie zmiany mogą być wprowadzane niemal na każdym etapie sprintu.

Pytanie 19

Definicja konstruktora dla zaprezentowanej klasy w języku C++ może być sformułowana jak w

Ilustracja do pytania
A. Deklaracji 2
B. Deklaracji 3
C. Deklaracji 4
D. Deklaracji 1
Deklaracja 1 przedstawia poprawną definicję konstruktora w języku C++. Konstruktor jest specjalną metodą, która ma taką samą nazwę jak klasa i nie posiada wartości zwracanej. Służy do inicjalizacji obiektów klasy i może być przeciążany, co pozwala na tworzenie różnych wersji konstruktora.

Pytanie 20

Na podstawie treści zawartej w ramce, określ, który z rysunków ilustruje element odpowiadający klasie Badge zdefiniowanej w bibliotece Bootstrap?

Ilustracja do pytania
A. Rysunek 2
B. Rysunek 3
C. Rysunek 1
D. Rysunek 4
Wybór Rysunku 2 jest poprawny ponieważ przedstawia on elementy badge zdefiniowane w bibliotece Bootstrap Badge to niewielkie oznaczenia wizualne zazwyczaj zawierające liczby lub krótkie informacje które można umieścić obok linków lub innych elementów interfejsu użytkownika W Bootstrapie badge są implementowane za pomocą klasy .badge i można je stosować na przykład do wskazywania liczby nowych wiadomości lub powiadomień w aplikacjach webowych Dzięki temu użytkownik ma natychmiastowy dostęp do ważnych informacji bez konieczności wykonywania dodatkowych działań Przykładem zastosowania badge może być ikonka koperty z liczbą nieprzeczytanych wiadomości w skrzynce odbiorczej Co więcej badge można stylować za pomocą dodatkowych klas kolorystycznych takich jak .bg-primary .bg-success itd co pozwala na dostosowanie ich wyglądu do stylistyki całej aplikacji To praktyczne narzędzie w tworzeniu intuicyjnych interfejsów użytkownika które poprawia użyteczność i estetykę strony internetowej Zastosowanie badge zgodnie z dobrymi praktykami projektowania UX/UI wspiera lepszą organizację i dostępność informacji w aplikacjach internetowych

Pytanie 21

Na przedstawionym obrazie widać fragment emulacji systemu iOS z prostą aplikacją. Górna część ekranu nachodzi na pasek stanu baterii. Który z poniższych zapisów powinien zostać użyty w miejscu znaków zapytania, aby ustawić jedynie marginesy górne tylko dla systemu iOS?

Ilustracja do pytania
A. x:TypeArguments="Thickness"
iOS= "0, 0, 0, 0"
Android= "0, 20, 0, 0"
WinPhone= "0, 0, 0, 0"
B. x:TypeArguments="Thickness"
iOS= "0, 20, 0, 0"
Android= "0, 0, 0, 0"
WinPhone= "0, 0, 0, 0"
C. x:TypeArguments="Thickness"
(0, 20, 0, 0)
D. x:TypeArguments="Thickness"
iOS= 20
Odpowiedź czwarta jest prawidłowa, ponieważ prawidłowo wykorzystuje mechanizm OnPlatform w XAML do zastosowania specyficznych ustawień dla różnych platform. W przypadku iOS zastosowano margines górny wynoszący 20 jednostek, co jest konieczne, aby uwzględnić przestrzeń zajmowaną przez status bar systemowy. Takie podejście jest zgodne z dobrymi praktykami projektowania aplikacji wieloplatformowych, gdzie różne platformy mogą wymagać różnych ustawień interfejsu użytkownika. Przykładowo, w aplikacjach tworzonych przy użyciu Xamarin.Forms, korzystanie z OnPlatform pozwala na dynamiczne dostosowywanie interfejsu w zależności od platformy, co zwiększa elastyczność i poprawia doświadczenie użytkownika. Dodatkowo, zastosowanie marginesów tylko dla platformy iOS pozwala na zachowanie spójności i pełną kontrolę nad wyglądem aplikacji na innych platformach takich jak Android czy Windows Phone, gdzie takie dostosowanie nie jest konieczne. Uwzględnienie tych różnic jest kluczowe dla tworzenia aplikacji, które wyglądają i działają dobrze na wszystkich docelowych urządzeniach.

Pytanie 22

Zamieszczony fragment kodu w Android Studio wdraża metodę nasłuchującą dla obsługi zdarzenia:

Ilustracja do pytania
A. naciśnięcia przycisku
B. wybierania daty
C. zmiany w polu tekstowym
D. zmiany stanu kontrolki Switch
Kod implementuje nasłuchiwanie zdarzenia naciśnięcia przycisku (ang. Button Click). W środowisku Android Studio jest to jedna z podstawowych metod obsługi interakcji użytkownika. Kiedy użytkownik naciśnie przycisk, wywoływana jest określona metoda, co umożliwia np. uruchomienie nowej aktywności, walidację danych lub wywołanie zapytania do bazy danych. Obsługa zdarzeń tego typu jest kluczowa w budowie responsywnych aplikacji mobilnych, zapewniając użytkownikowi płynne i intuicyjne działanie.

Pytanie 23

Jaki kod może być związany z treścią wygenerowaną w trakcie działania programu Java?

Ilustracja do pytania
A. Kodu 2
B. Kodu 4
C. Kodu 3
D. Kodu 1
Kod 4 jest prawidłowym rozwiązaniem generującym przedstawioną treść. Prawidłowo wykorzystuje składnię i logikę języka Java, co skutkuje poprawnym działaniem programu i zgodnym wynikiem w konsoli.

Pytanie 24

Na ilustracji pokazany jest fragment diagramu blokowego pewnego algorytmu. Ile razy warunek n<7 będzie badany?

Ilustracja do pytania
A. 7
B. 5
C. 8
D. 6
Odpowiedź 4 jest prawidłowa ponieważ algorytm rozpoczyna od n równego 1 i zwiększa tę wartość o jeden w każdej iteracji aż do momentu gdy n stanie się równe 7 Wtedy warunek n mniejsze od 7 przestaje być spełniony co oznacza że warunek ten jest sprawdzany łącznie 6 razy tj dla n równych 1 2 3 4 5 i 6 Jest to typowa pętla kontrolna często spotykana w programowaniu gdzie warunek pętli decyduje o jej zakończeniu W praktyce takie podejście pozwala na efektywne zarządzanie liczbą iteracji i zapewnia klarowność kodu Co więcej użycie pętli z warunkiem końcowym jest zgodne z dobrymi praktykami projektowania algorytmów gdyż minimalizuje ryzyko błędów logicznych poprzez jawne określenie końca pętli Ponadto zrozumienie mechanizmu działania pętli i jej warunków jest kluczowe dla optymalizacji algorytmów i efektywnego zarządzania zasobami co ma bezpośrednie przełożenie na wydajność aplikacji szczególnie w środowiskach wymagających dużej mocy obliczeniowej

Pytanie 25

Jakie składniki powinien mieć plan projektu?

A. Wyłącznie etapy projektu
B. Terminy i zasoby ludzkie
C. Etapy projektu, ramy czasowe, zasoby i zadania
D. Tylko czas wykonania i budżet
Harmonogram projektu powinien zawierać etapy projektu, ramy czasowe, zasoby oraz zadania. Taka kompleksowa struktura umożliwia skuteczne zarządzanie projektem i pozwala na śledzenie postępów. Każdy etap harmonogramu powinien być dokładnie opisany, a zadania powinny być przypisane do odpowiednich członków zespołu. Uwzględnienie zasobów i ram czasowych pozwala na precyzyjne planowanie i minimalizuje ryzyko opóźnień. Harmonogram stanowi nieodłączny element projektów zarządzanych zarówno w modelu Waterfall, jak i Agile, dostarczając przejrzystość na każdym etapie realizacji.

Pytanie 26

Jakie działanie związane z klasą abstrakcyjną jest niedozwolone?

A. Definiowanie pól publicznych
B. Rozszerzanie tej klasy
C. Określenie metody wirtualnej
D. Utworzenie instancji tej klasy
Deklaracja pól publicznych w klasie abstrakcyjnej jest całkowicie dozwolona i może być używana do udostępniania danych w klasach pochodnych. Wprowadzenie pól publicznych w klasie abstrakcyjnej pozwala na określenie podstawowych atrybutów, które będą współdzielone przez wszystkie klasy dziedziczące. Może to być przydatne w kontekście encapsulacji i zarządzania danymi w aplikacjach. Deklaracja metody wirtualnej również jest prawidłowa, gdyż klasy abstrakcyjne mogą zawierać metody, które są zdefiniowane jako wirtualne, co umożliwia ich nadpisywanie w klasach pochodnych. Dzięki temu, programiści mogą budować bardziej elastyczne i modułowe aplikacje. Dziedziczenie po klasie abstrakcyjnej jest podstawowym stosowaniem tego typu klas, gdyż pozwala na tworzenie hierarchii, w której klasy pochodne muszą implementować abstrakcyjne metody zdefiniowane w klasie bazowej. Dziedziczenie wspiera ponadto zasady programowania obiektowego, takie jak ponowne wykorzystanie kodu i polimorfizm, co czyni je kluczowym elementem nowoczesnego programowania.

Pytanie 27

Który z podanych algorytmów operujących na jednowymiarowej tablicy posiada złożoność obliczeniową O(n2)?

A. Wyszukiwanie binarne
B. Sortowanie bąbelkowe
C. Wypisanie elementów
D. Sortowanie szybkie
Sortowanie bąbelkowe, znane również jako bubble sort, to prosty algorytm sortowania, który działa na zasadzie wielokrotnego przechodzenia przez tablicę i porównywania sąsiadujących ze sobą elementów. Algorytm ten ma złożoność obliczeniową O(n^2), co oznacza, że w najgorszym przypadku liczba operacji porównania wzrasta kwadratowo wraz ze wzrostem liczby elementów w tablicy. Przykładowo, dla tablicy o 5 elementach algorytm może wykonać do 10 porównań. W praktyce sortowanie bąbelkowe jest rzadko stosowane w dużych zbiorach danych ze względu na swoją niską efektywność, jednak jest to dobry przykład do nauki podstaw algorytmów sortujących. Standardy algorytmów sortujących, takie jak te zawarte w podręcznikach algorytmiki, często używają sortowania bąbelkowego jako przykładu do omówienia prostych koncepcji związanych z sortowaniem. Warto zauważyć, że chociaż algorytm ten jest prosty do zrozumienia, jego złożoność czasowa sprawia, że nie jest on praktyczny do stosowania w produkcyjnych rozwiązaniach, gdyż bardziej optymalne algorytmy, jak sortowanie szybkie czy sortowanie przez scalanie, osiągają złożoność O(n log n).

Pytanie 28

Tworząc aplikację opartą na obiektach, należy założyć, że program będzie zarządzany przez

A. moduły zawierające funkcje oraz zmienne globalne
B. zbiór instancji klas współpracujących ze sobą
C. pętlę dyspozytora, która w zależności od zdarzenia wywoła właściwą funkcję
D. definicję warunków końcowego rozwiązania
W programowaniu obiektowym aplikacje są sterowane za pomocą instancji klas, które współpracują ze sobą. Obiekty reprezentują elementy rzeczywistego świata i komunikują się, co pozwala na większą elastyczność i modułowość kodu.

Pytanie 29

Co to jest automatyzacja testowania procesów?

A. Sprawdzaniem poprawności działania aplikacji na urządzeniach przenośnych
B. Integracją testów w środowisku deweloperskim
C. Kompilowaniem kodu w celu zwiększenia efektywności
D. Używaniem narzędzi oraz skryptów do wykonywania testów w sposób automatyczny bez udziału człowieka
Automatyzacja procesu testowania to zastosowanie narzędzi, skryptów i technologii do przeprowadzania testów oprogramowania w sposób zautomatyzowany, bez konieczności ciągłej ingerencji człowieka. Automatyzacja pozwala na szybkie i wielokrotne uruchamianie testów regresyjnych, co znacząco zwiększa efektywność testowania, redukuje czas potrzebny na wykrycie błędów i umożliwia jednoczesne testowanie wielu funkcji. Narzędzia takie jak Selenium, JUnit czy TestNG pozwalają na tworzenie skryptów testowych, które automatycznie weryfikują poprawność działania aplikacji na różnych urządzeniach i w różnych środowiskach. Automatyzacja testów to nie tylko oszczędność czasu, ale także wyższa dokładność i powtarzalność testów, co minimalizuje ryzyko przeoczenia krytycznych błędów.

Pytanie 30

W jakim języku został stworzony framework Angular?

A. C#
B. Postscript
C. PHP
D. Typescript
Angular został napisany w TypeScript, który jest nadzbiorem JavaScriptu i wprowadza statyczne typowanie. TypeScript pozwala na lepszą organizację kodu, co czyni Angular bardziej stabilnym i efektywnym narzędziem do tworzenia aplikacji webowych.

Pytanie 31

Jaki z wymienionych komponentów jest kluczowy do inicjalizacji pola klasy podczas tworzenia instancji obiektu?

A. Metoda statyczna
B. Konstruktor
C. Instrukcja warunkowa
D. Funkcja zaprzyjaźniona
Metoda statyczna działa na poziomie klasy, a nie obiektu, i nie jest używana do inicjalizacji pól instancji. Funkcja zaprzyjaźniona może mieć dostęp do prywatnych pól klasy, ale jej głównym celem nie jest inicjalizacja obiektu – służy do wykonywania operacji na istniejących obiektach. Instrukcja warunkowa kontroluje przepływ programu, ale nie jest odpowiedzialna za inicjalizację pól klasy – jest to zadanie konstruktora, który działa automatycznie przy tworzeniu obiektu.

Pytanie 32

Która z wymienionych metod może pomóc w walce z uzależnieniem od internetu?

A. Zwiększenie czasu spędzanego na mediach społecznościowych
B. Używanie komputera jedynie w nocy
C. Wprowadzenie systematycznych przerw od używania urządzeń cyfrowych
D. Zainstalowanie większej ilości aplikacji rozrywkowych
Wprowadzenie regularnych przerw od korzystania z urządzeń cyfrowych pomaga przeciwdziałać uzależnieniu od internetu. Regularne odstawienie urządzeń pozwala na regenerację, zmniejsza ryzyko nadmiernej ekspozycji na treści cyfrowe i pozwala na większą interakcję z rzeczywistym otoczeniem. Przerwy te pomagają w utrzymaniu równowagi psychicznej i fizycznej, poprawiają koncentrację oraz jakość snu.

Pytanie 33

Wartości składowych RGB koloru #AA41FF zapisane w systemie szesnastkowym po przekształceniu na system dziesiętny są odpowiednio

A. 160, 64, 255
B. 170, 65, 255
C. 170, 64, 255
D. 160, 65, 255
Kolor #AA41FF w formacie RGB składa się z trzech komponentów: czerwony (AA - 170), zielony (41 - 65) i niebieski (FF - 255). Przekształcenie wartości szesnastkowych na dziesiętne pozwala na precyzyjne odwzorowanie koloru w różnych aplikacjach graficznych. Tego typu konwersje są kluczowe w projektowaniu stron internetowych i aplikacji, gdzie kolorystyka ma istotne znaczenie dla UX/UI.

Pytanie 34

Wskaź kod, który spowoduje wyświetlenie okna dialogowego przedstawionego na ilustracji. Dla uproszczenia kodu, zrezygnowano z atrybutów znaczników

Ilustracja do pytania
A. kod 1
B. kod 2
C. kod 4
D. kod 3
Odpowiedź, którą wybrałeś, to kod 2, i nie ma co do tego wątpliwości. Dobrze, że zauważyłeś wszystkie elementy, które były w oknie dialogowym. W tym kodzie masz TextBox na górze, który pozwala na wpisanie tekstu. Dwa CheckBoxy po lewej stronie to te typowe pola wyboru, które też były widoczne. Po prawej stronie masz trzy RadioButtony, które tworzą grupę przycisków - to jest właśnie to, co powinno być. Na dole widoczny jest przycisk Button z napisem Test, co też jest zgodne z obrazkiem. Takie rozmieszczenie to klucz do stworzenia dobrego interfejsu. Wiesz, w praktyce w wielu aplikacjach używa się właśnie tych elementów do prostych formularzy. Jeżeli rozumiesz, jak te komponenty działają i jak je ze sobą łączyć, to naprawdę dobrze ci to pójdzie w przyszłości w tworzeniu ładnych i funkcjonalnych interfejsów.

Pytanie 35

Jedną z zasad standardu WCAG 2.0 jest

A. unikanie przedstawiania informacji w formie uproszczonej
B. używanie jednego, odpowiednio dużego rozmiaru czcionki
C. stosowanie różnych palet kolorystycznych, w tym o wysokim kontraście
D. ograniczanie treści na stronie przez rezygnację z używania alternatywnych tekstów dla obrazów i filmów
Unikanie uproszczeń językowych nie jest celem WCAG – wręcz przeciwnie, zaleca się stosowanie prostego języka. Zmniejszanie zawartości strony poprzez eliminację alternatywnych tekstów dla obrazów i wideo jest sprzeczne z zasadami dostępności. Stosowanie jednego rozmiaru czcionki ogranicza elastyczność interfejsu i nie spełnia standardów dostępności.

Pytanie 36

Który z wymienionych elementów UI w aplikacjach mobilnych jest odpowiedzialny za przechodzenie pomiędzy ekranami?

A. ListView
B. Przycisk
C. Navigation Drawer
D. Pasek narzędziowy
Navigation Drawer to jeden z najczęściej stosowanych komponentów interfejsu użytkownika w aplikacjach mobilnych na platformie Android. Pozwala na stworzenie bocznego menu nawigacyjnego, które użytkownik może wysunąć z lewej (lub rzadziej z prawej) krawędzi ekranu. Drawer umożliwia szybki dostęp do różnych sekcji aplikacji, co poprawia nawigację i organizację interfejsu. Navigation Drawer jest szeroko wykorzystywany w aplikacjach mobilnych takich jak Gmail, YouTube czy Google Maps, ponieważ zapewnia przejrzysty i intuicyjny sposób poruszania się po aplikacji, zachowując minimalistyczny wygląd interfejsu. Dzięki niemu użytkownik ma dostęp do wielu opcji bez konieczności zaśmiecania głównego ekranu aplikacji przyciskami nawigacyjnymi. W Android Studio Navigation Drawer można zaimplementować poprzez gotowe szablony lub za pomocą komponentu DrawerLayout.

Pytanie 37

Liczba A4 w zapisie heksadecymalnym ma odpowiadający jej zapis binarny

A. 10100010
B. 10100100
C. 1011100
D. 1010100
1010100 to niepełna reprezentacja, brakuje odpowiednich bitów dla pełnej liczby. 10100010 zawiera błędy w zamianie jednej z cyfr. 1011100 nie odpowiada poprawnemu przekształceniu szesnastkowego A4, co prowadzi do błędnych obliczeń.

Pytanie 38

Które z wymienionych praw autorskich nie wygasa po pewnym czasie?

A. Autorskie prawa majątkowe
B. Prawa pokrewne
C. Autorskie prawa osobiste
D. Licencje wolnego oprogramowania
Autorskie prawa osobiste to rodzaj praw autorskich, które nie wygasają po upływie określonego czasu i są bezterminowe. Obejmują one prawo do autorstwa, oznaczania dzieła swoim nazwiskiem oraz sprzeciwiania się wszelkim zmianom, które mogłyby naruszać reputację twórcy. Prawa osobiste są niezbywalne, co oznacza, że nie można ich przenieść na inną osobę ani sprzedać. Nawet po śmierci twórcy, prawo do ochrony integralności jego dzieła jest respektowane. W praktyce oznacza to, że choć prawa majątkowe mogą wygasnąć (np. po 70 latach od śmierci autora), prawo do bycia uznanym za twórcę trwa wiecznie.

Pytanie 39

W zaprezentowanym kodzie stworzono abstrakcyjną klasę Figura oraz klasę Prostokąt, która po niej dziedziczy, zawierającą określone pola i konstruktory. Wskaż najprostszą implementację sekcji /* metody klasy */ dla klasy Prostokąt

Ilustracja do pytania
A. Kod 4
B. Kod 2
C. Kod 1
D. Kod 3
Kod 1 jest prawidłowy ponieważ zapewnia implementację abstrakcyjnych metod Pole i Obwod z klasy Figura co jest wymagane dla każdej klasy dziedziczącej po klasie abstrakcyjnej W Javie kiedy klasa dziedziczy po klasie abstrakcyjnej musi zaimplementować wszystkie jej abstrakcyjne metody Kod 1 definiuje metodę Pole która oblicza pole prostokąta jako iloczyn długości boków a i b oraz metodę Obwod która oblicza obwód jako sumę dwóch razy długości a i dwóch razy długości b Jest to zgodne z konwencjami programowania obiektowego które promują enkapsulację i polimorfizm Kod odnosi się bezpośrednio do konkretnego zastosowania jakim jest obliczanie parametrów prostokąta co jest częstym przypadkiem w programowaniu graficznym oraz w aplikacjach matematycznych Implementacja metod w ten sposób zapewnia prostotę oraz czytelność kodu co jest zgodne z dobrymi praktykami w inżynierii oprogramowania Ponadto dzięki poprawnej implementacji można z powodzeniem rozszerzać funkcjonalność obiektową programu umożliwiając jego łatwiejsze modyfikowanie i rozwijanie w przyszłości

Pytanie 40

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. sformułowania klasy bardziej szczegółowej niż już stworzona
B. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
C. określenia zasięgu dostępności metod i pól danej klasy
D. asynchronicznej realizacji długotrwałych zadań
Asynchroniczna obsługa operacji nie jest związana z dziedziczeniem, raczej chodzi tu o programowanie współbieżne. A jeśli chodzi o stałe, to definiuje się je jako stałe (const), a dziedziczenie to zupełnie inna bajka. Pamiętaj, że widoczność metod i pól kontrolują modyfikatory dostępu, takie jak private, protected i public, więc to też jest ważne.