Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 23 maja 2025 00:10
  • Data zakończenia: 23 maja 2025 00:22

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

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

Który z wymienionych składników charakteryzuje się typowym wystąpieniem w diagramie Gantta?

A. Oś czasu oraz przedziały czasowe dla zadań
B. Model relacji pomiędzy tabelami w bazie danych
C. Wykaz użytkowników w systemie
D. Wykaz błędów w projekcie
Diagram Gantta zawiera oś czasu i zakresy czasowe dla zadań, co pozwala na wizualizację całego harmonogramu projektu. Każde zadanie jest reprezentowane jako pasek na wykresie, którego długość odzwierciedla czas trwania zadania. Diagram ten jest szczególnie pomocny w zarządzaniu złożonymi projektami, gdzie istnieje wiele współzależnych zadań. Dzięki diagramowi Gantta można łatwo określić, które zadania są krytyczne dla terminowego zakończenia projektu oraz jakie są dostępne bufory czasowe. Jest to jedno z najczęściej używanych narzędzi w zarządzaniu projektami.

Pytanie 2

Co należy zrobić w sytuacji silnego krwawienia z rany?

A. Poczekać, aż krwawienie ustanie samoistnie
B. Nałożyć elastyczny bandaż bez ucisku
C. Przepłukać ranę wodą utlenioną i zostawić do wyschnięcia
D. Założyć opatrunek uciskowy oraz unieść kończynę powyżej poziomu serca
Założenie opatrunku uciskowego i uniesienie kończyny powyżej poziomu serca to najskuteczniejszy sposób na zatrzymanie silnego krwotoku z rany. Opatrunek uciskowy powoduje mechaniczne zamknięcie naczyń krwionośnych, co spowalnia lub całkowicie zatrzymuje wypływ krwi. Podniesienie kończyny dodatkowo zmniejsza ciśnienie krwi w obszarze rany, co ogranicza krwawienie. Ważne jest, aby nie zdejmować opatrunku, nawet jeśli przesiąknie krwią – należy dołożyć kolejną warstwę materiału. W sytuacjach ekstremalnych, gdy opatrunek uciskowy nie zatrzymuje krwawienia, można zastosować opaskę uciskową (tzw. stazę), ale tylko w ostateczności, gdy inne metody zawiodą. Takie działania mogą zapobiec wstrząsowi krwotocznemu i uratować życie poszkodowanego.

Pytanie 3

Modyfikator dostępu, który znajduje się przed definicją metody Dodaj() w klasie Kalkulator, powoduje, że

Ilustracja do pytania
A. jest ona dostępna w programie głównym i może być wywoływana na rzecz instancji klasy Kalkulator
B. nie jest ona dostępna z poziomu klas zaprzyjaźnionych z klasą Kalkulator
C. jest ona dostępna zarówno wewnątrz klasy, jak i w klasach dziedziczących po klasie Kalkulator
D. nie jest ona dostępna w klasach, które dziedziczą po klasie Kalkulator
Modyfikator dostępu protected jest kluczowym elementem programowania obiektowego, umożliwiającym kontrolę nad widocznością i dostępem do składników klasy. Gdy metoda jest oznaczona jako protected, jak w przypadku metody Dodaj() w klasie Kalkulator, oznacza to, że jest ona dostępna nie tylko w ramach tej klasy, ale również w dowolnych klasach, które dziedziczą po klasie Kalkulator. To podejście wspiera koncepcję dziedziczenia, umożliwiając klasom potomnym korzystanie z funkcjonalności klasy bazowej bez konieczności ponownego definiowania metod. Na przykład, jeśli stworzymy klasę DziecięcyKalkulator dziedziczącą po Kalkulator, metoda Dodaj() będzie dostępna w tej klasie potomnej. Takie rozwiązanie jest często stosowane w projektach, gdzie istnieje potrzeba rozszerzania funkcjonalności bazowych klas bez naruszania ich enkapsulacji. Dobre praktyki programistyczne sugerują stosowanie protected tam, gdzie chcemy umożliwić dziedziczenie oraz uniknąć nadmiernego udostępniania elementów klasy zewnętrznym użytkownikom. Dzięki temu kod staje się bardziej modularny i elastyczny, co jest istotne w dużych projektach programistycznych. Zrozumienie roli modyfikatorów dostępu, takich jak protected, jest kluczowe dla efektywnego projektowania i implementacji systemów obiektowych.

Pytanie 4

Jakie z wymienionych działań jest fundamentalne w modelu kaskadowym?

A. Przeprowadzanie testów systemu po zakończeniu każdej fazy
B. Równoległe prowadzenie wielu etapów projektu
C. Iteracyjne wprowadzanie modyfikacji na każdym poziomie
D. Zakończenie jednej fazy przed rozpoczęciem następnej
Równoległa realizacja kilku faz to cecha modelu przyrostowego lub iteracyjnego, który pozwala na pracę nad różnymi etapami jednocześnie. Iteracyjne wprowadzanie zmian to charakterystyczna cecha Agile, gdzie projekt rozwijany jest stopniowo. Testowanie po każdej fazie jest istotnym elementem w różnych metodykach, ale sam proces testowania nie definiuje modelu kaskadowego – tutaj testowanie odbywa się dopiero po zakończeniu implementacji całego systemu.

Pytanie 5

W jakiej okoliczności należy umieścić poszkodowanego w pozycji bezpiecznej?

A. Gdy poszkodowany cierpi na krwotok zewnętrzny
B. Gdy poszkodowany jest świadomy, lecz ma uraz kończyny
C. Gdy poszkodowany jest nieprzytomny, ale oddycha
D. Gdy poszkodowany nie oddycha
Ułożenie poszkodowanego w pozycji bezpiecznej jest konieczne, gdy osoba jest nieprzytomna, ale oddycha. Pozycja boczna ustalona zapobiega zadławieniu się językiem lub treścią żołądkową, co może wystąpić u osoby nieprzytomnej. To działanie jest kluczowe w przypadku osób po urazach głowy, zatruciach lub nagłych omdleniach. Dzięki tej pozycji drożność dróg oddechowych zostaje utrzymana, co znacząco zwiększa szanse na przeżycie do czasu przybycia służb medycznych.

Pytanie 6

Który z etapów umożliwia zwiększenie efektywności aplikacji przed jej wydaniem?

A. Tworzenie interfejsu graficznego
B. Testowanie jednostkowe
C. Optymalizacja kodu
D. Dodawanie komentarzy do kodu
Testowanie jednostkowe pozwala na wykrycie błędów w poszczególnych komponentach aplikacji, ale samo w sobie nie prowadzi do optymalizacji kodu. Tworzenie interfejsu graficznego (GUI) jest istotne dla atrakcyjności aplikacji, ale nie wpływa bezpośrednio na jej wydajność. Dodawanie komentarzy do kodu poprawia jego dokumentację i czytelność, ale nie ma wpływu na szybkość działania aplikacji.

Pytanie 7

Jakie narzędzie jest najbardziej odpowiednie do identyfikacji błędów w trakcie działania programu?

A. Interpreter
B. Kompilator
C. Linker
D. Debugger
Debugger to narzędzie przeznaczone do wyszukiwania błędów w czasie wykonywania programu. Pozwala na zatrzymywanie aplikacji w wybranych miejscach, analizowanie wartości zmiennych i śledzenie przepływu sterowania, co umożliwia szybkie wykrywanie błędów logicznych i błędów czasu wykonania. Debugger jest niezbędny w procesie rozwoju oprogramowania, ponieważ pomaga programistom w zrozumieniu, jak ich kod działa w rzeczywistości i jak różne warunki wpływają na jego funkcjonowanie.

Pytanie 8

Który z poniższych opisów najlepiej definiuje kompilator?

A. Narzędzie przekształcające kod źródłowy na plik wykonywalny
B. Program łączący dynamiczne biblioteki z kodem źródłowym
C. Narzędzie do analizy kodu w czasie rzeczywistym
D. System monitorujący zmiany w kodzie źródłowym
Kompilator to narzędzie, które przekształca kod źródłowy napisany w języku programowania na plik wykonywalny (binarny), który może być uruchomiony bez potrzeby ponownej kompilacji. Proces ten obejmuje kilka etapów, takich jak analiza leksykalna, analiza składniowa, optymalizacja kodu oraz generowanie kodu maszynowego. Kompilator jest nieodzownym elementem w językach takich jak C, C++ czy Java. Generowany plik wykonywalny może działać szybciej niż kod interpretowany, ponieważ nie wymaga tłumaczenia w czasie rzeczywistym.

Pytanie 9

Co to jest WebSockets?

A. Biblioteka JavaScript do manipulacji danymi JSON
B. Metoda zabezpieczania połączeń HTTP
C. Format zapisu danych w bazach NoSQL
D. Protokół komunikacyjny zapewniający dwukierunkową komunikację między przeglądarką a serwerem
WebSockets to protokół komunikacyjny, który umożliwia dwukierunkową, pełnodupleksową komunikację między klientem a serwerem. To oznacza, że zarówno przeglądarka, jak i serwer mogą wysyłać dane w dowolnym momencie, co znacząco różni się od tradycyjnego modelu HTTP, gdzie klient inicjuje każde połączenie. Przykładem zastosowania WebSockets jest aplikacja czatu w czasie rzeczywistym, gdzie użytkownicy mogą widzieć wiadomości natychmiastowo, bez potrzeby odświeżania strony. Dodatkowo, WebSockets zmniejszają opóźnienia w komunikacji, co jest kluczowe w aplikacjach wymagających szybkiej interakcji, takich jak gry online czy platformy do handlu. Warto zaznaczyć, że WebSockets są zdefiniowane w standardzie IETF jako RFC 6455, a ich wykorzystanie powinno być zgodne z najlepszymi praktykami w zakresie bezpieczeństwa, takimi jak użycie protokołu wSecure WebSockets (wss://) do zapewnienia bezpieczeństwa przesyłanych danych.

Pytanie 10

Podczas programowania kontrolki stepper przedstawionej na ilustracji w aplikacji mobilnej, należy zarządzać zmienną, która zawsze przechowuje jej bieżącą wartość. Jakie zdarzenie można wykorzystać do osiągnięcia tej funkcjonalności?

Ilustracja do pytania
A. DescendantAdded
B. SizeChanged
C. ValueChanged
D. Unfocused
Zdarzenie ValueChanged jest kluczowe w kontekście programowania kontrolek takich jak stepper w aplikacjach mobilnych. To zdarzenie jest wywoływane zawsze, gdy wartość kontrolki zostaje zmieniona przez użytkownika, co umożliwia natychmiastowe przetwarzanie tej zmiany i aktualizację interfejsu użytkownika lub innych powiązanych komponentów. W praktyce, użycie zdarzenia ValueChanged to dobry przykład reaktywnego programowania, gdzie aplikacja reaguje na akcje użytkownika w czasie rzeczywistym. Przy implementacji takiego zdarzenia należy zadbać o poprawne sprawdzanie zakresu wartości, aby uniknąć błędów logicznych. Warto również pamiętać o optymalizacji wydajności takiej obsługi, zwłaszcza w aplikacjach złożonych z wielu komponentów zależnych od wartości steppera. Praktyczne zastosowanie tego zdarzenia można znaleźć w aplikacjach e-commerce, gdzie steppery mogą być używane do wyboru ilości produktów w koszyku, a zmiana wartości natychmiast wpływa na obliczenie ceny całkowitej. Używanie zdarzeń takich jak ValueChanged jest zgodne z dobrymi praktykami projektowania interfejsów użytkownika, poprawiając ich responsywność i interaktywność.

Pytanie 11

Która z poniższych nie jest zasadą czystego kodu (clean code)?

A. Samodokumentujący się kod
B. Maksymalna złożoność funkcji
C. Konsekwentne nazewnictwo
D. Jedna odpowiedzialność funkcji
Maksymalna złożoność funkcji to pojęcie, które odnosi się do zasady, że funkcje powinny być jak najmniej złożone, aby były zrozumiałe i łatwe w utrzymaniu. Czysty kod promuje ideę, że każda funkcja powinna mieć jasno określoną odpowiedzialność, co w praktyce oznacza ograniczenie jej złożoności. Przykładem może być rozdzielenie złożonej logiki biznesowej na kilka prostszych funkcji, co ułatwia ich testowanie i ponowne wykorzystanie. Warto zwrócić uwagę, że zgodnie z zasadą KISS (Keep It Simple, Stupid) dąży się do prostoty w projektowaniu kodu, co nie tylko zwiększa jego czytelność, ale także minimalizuje ryzyko błędów. Dobrze napisany kod powinien być również samodokumentujący się, co oznacza, że jego struktura i nazwy zmiennych powinny jasno wskazywać na ich funkcjonalność. Przestrzeganie zasady maksymalnej złożoności funkcji jest kluczowe w kontekście długoterminowego utrzymania aplikacji, ponieważ zmniejsza koszty związane z modyfikacjami oraz poprawkami.

Pytanie 12

Modyfikator dostępu znajdujący się przed definicją metody Dodaj() w klasie Kalkulator sprawia, że:

Ilustracja do pytania
A. jest ona dostępna zarówno w samej klasie, jak i w klasach dziedziczących po klasie Kalkulator
B. nie jest ona dostępna z poziomu klas, które są zaprzyjaźnione z klasą Kalkulator
C. jest ona możliwa do wykorzystania w programie głównym i można ją wywołać na instancji klasy Kalkulator
D. nie jest ona osiągalna w klasach, które dziedziczą po klasie Kalkulator
Modyfikator dostępu w C# to taki fajny element, który pozwala, żeby metoda Dodaj() była dostępna nie tylko w klasie Kalkulator, ale też w klasach, które dziedziczą po niej. To naprawdę ważne w programowaniu obiektowym, bo dzięki temu możesz rozbudowywać funkcje klasy bazowej, nie grzebiąc w jej kodzie. To w sumie daje większą elastyczność i ułatwia ponowne wykorzystywanie fragmentów kodu w różnych częściach aplikacji.

Pytanie 13

Jakie z wymienionych narzędzi jest szeroko stosowane do debugowania aplikacji internetowych?

A. Git
B. Chrome DevTools
C. Blender
D. Postman
Chrome DevTools to potężne narzędzie wbudowane w przeglądarkę Google Chrome, które umożliwia debugowanie aplikacji webowych. Umożliwia ono analizowanie struktury DOM, monitorowanie sieci, profilowanie wydajności oraz inspekcję kodu JavaScript. Chrome DevTools pozwala na śledzenie błędów w czasie rzeczywistym, edytowanie stylów CSS oraz modyfikowanie HTML bezpośrednio w przeglądarce, co znacznie przyspiesza proces rozwoju i testowania aplikacji webowych.

Pytanie 14

W jaki sposób definiuje się konstruktor kopiujący w ramach klasy?

A. Inicjuje obiekt klasy na podstawie klasy dziedziczącej
B. Generuje nowy obiekt klasy bez przypisywania wartości
C. Tworzy nowy obiekt jako wierną kopię innego obiektu
D. Generuje nowy obiekt i usuwa wcześniejszy
Tworzenie nowego obiektu bez przypisania wartości to zadanie domyślnego konstruktora, który inicjalizuje obiekt, ale nie kopiuje stanu innego obiektu. Tworzenie obiektu na podstawie klasy pochodnej to proces dziedziczenia, a nie kopiowania – w tym przypadku tworzona jest nowa instancja klasy dziedziczącej, ale nie kopiowany jest stan innego obiektu. Usunięcie obiektu i stworzenie nowego nie jest zadaniem konstruktora kopiującego – za usuwanie odpowiada destruktor, który działa automatycznie podczas niszczenia obiektów.

Pytanie 15

Jaki typ złośliwego oprogramowania funkcjonuje w tle, zbierając dane o wprowadzanych hasłach?

A. Spyware
B. Keylogger
C. Adware
D. Trojan
Keylogger to takie złośliwe oprogramowanie, które działa w tle i rejestruje wszystkie naciśnięcia klawiszy. To naprawdę niebezpieczne, bo może przechwytywać hasła i inne ważne dane osobowe. Keyloggery mogą się dostawać na komputer na różne sposoby, na przykład przez zainfekowane pliki, złośliwe reklamy albo w ramach innych niebezpiecznych programów. Przykładami takich keyloggerów są Spyrix czy Perfect Keylogger, które mogą monitorować, co robisz na komputerze. Z punktu widzenia bezpieczeństwa, standardy takie jak ISO/IEC 27001 mówią, jak ważna jest ochrona informacji. Dlatego tak istotne jest, żeby użytkownicy mieli świadomość zagrożeń, jakie niosą keyloggery i używali dobrego oprogramowania antywirusowego, żeby chronić swoje urządzenia i dane.

Pytanie 16

Które narzędzie służy do tworzenia makiet interfejsu użytkownika (UI mockups)?

A. Postman
B. Figma
C. Jenkins
D. Webpack
Jenkins, Postman i Webpack to narzędzia o zupełnie innym przeznaczeniu, co prowadzi do mylnych wniosków na temat ich zastosowań w kontekście tworzenia makiet interfejsu użytkownika. Jenkins jest narzędziem do ciągłej integracji i dostarczania oprogramowania, które automatyzuje procesy budowania, testowania i wdrażania aplikacji. Jego rolą jest wspieranie deweloperów w efektywnym zarządzaniu kodem źródłowym i zapewnieniu, że każda zmiana wprowadzona w kodzie nie wprowadza błędów. Z kolei Postman to narzędzie przeznaczone do testowania API, które umożliwia wysyłanie zapytań, analizowanie odpowiedzi oraz dokumentowanie interfejsów API, co jest kluczowe w kontekście integracji usług, ale nie ma związku z tworzeniem wizualnych makiet UI. Webpack jest narzędziem do bundlowania modułów JavaScript i zasobów, umożliwiającym optymalizację aplikacji webowych. Jego głównym celem jest zarządzanie złożonością aplikacji front-end, co jest istotne, ale nie ma zastosowania w kontekście projektowania interfejsów użytkownika. Typowym błędem myślowym jest mylenie narzędzi do prototypowania z narzędziami do zarządzania procesem wytwarzania oprogramowania. Zrozumienie, jakie narzędzia są odpowiednie do konkretnych zadań, jest kluczowe dla efektywnej pracy w zespole projektowym.

Pytanie 17

Jaki jest podstawowy okres ochrony autorskich praw majątkowych w krajach Unii Europejskiej?

A. Bezterminowo
B. 50 lat od chwili pierwszej publikacji utworu
C. 75 lat od daty powstania utworu
D. 70 lat od zgonu autora
Okres 50 lat od pierwszej publikacji utworu odnosi się zazwyczaj do praw pokrewnych, takich jak ochrona nagrań dźwiękowych lub filmowych. Ochrona przez 75 lat od powstania utworu nie jest standardem w UE, choć niektóre kraje mogą mieć takie przepisy w odniesieniu do specyficznych typów dzieł. Bezterminowa ochrona dotyczy wyłącznie autorskich praw osobistych, a nie majątkowych, które zawsze wygasają po określonym czasie.

Pytanie 18

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. prezentacji elementów interfejsu użytkownika
C. zapewnienia odpowiedniego czasu na zapoznanie się i przetworzenie informacji
D. umożliwienia interakcji między elementami użytkownika za pomocą klawiatury
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 19

Jakie jest główne zadanie debuggera w środowisku programowania?

A. Kompilowanie kodu źródłowego
B. Tworzenie kodu źródłowego
C. Analiza i usuwanie błędów w kodzie
D. Generowanie plików wykonywalnych
Debugger to narzędzie programistyczne służące do analizy i usuwania błędów w kodzie źródłowym. Pozwala na krokowe wykonywanie programu, śledzenie wartości zmiennych i identyfikowanie miejsc, w których występują błędy logiczne lub składniowe. Debugger umożliwia zatrzymanie wykonania programu w dowolnym miejscu, ustawienie tzw. breakpointów (punktów przerwania) i monitorowanie przepływu sterowania. Dzięki temu programista może dokładnie przeanalizować, dlaczego program nie działa zgodnie z oczekiwaniami i szybko znaleźć przyczynę problemu. Debuggery są dostępne w większości zintegrowanych środowisk programistycznych (IDE), takich jak Visual Studio, PyCharm czy IntelliJ IDEA.

Pytanie 20

W jednostce centralnej, za obliczenia na liczbach zmiennoprzecinkowych odpowiada

A. FPU
B. AU
C. IU
D. ALU
FPU, czyli jednostka zmiennoprzecinkowa, zajmuje się obliczeniami na liczbach, które mają część ułamkową. Dzięki niej komputer może szybko i dokładnie przeprowadzać różne skomplikowane operacje matematyczne, jak na przykład mnożenie czy pierwiastkowanie. Jest to naprawdę ważne w takich programach jak oprogramowanie inżynieryjne czy aplikacje graficzne, bo tam precyzja to podstawa, żeby wszystko działało jak należy.

Pytanie 21

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

A. kompilatorowi języka JavaScript
B. konsoli przeglądarki internetowej
C. narzędziom zainstalowanym po stronie serwera aplikacji
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 22

Fragment kodu w języku JavaScript to

Ilustracja do pytania
A. prototyp metody klasy
B. definicja zmiennej typu tablicowego
C. definicja funkcji strzałkowej
D. prototyp interfejsu
Kod w JavaScript opisuje definicję funkcji strzałkowej, która jest nowoczesnym i bardziej zwięzłym sposobem definiowania funkcji. Funkcje strzałkowe mają też specyficzne zachowanie w kontekście 'this', co czyni je często preferowanymi przy pracy z obiektami i metodami callback.

Pytanie 23

W języku Python, jak nazywa się funkcja, która jest wykonywana automatycznie, gdy obiekt jest niszczony?

A. __del__
B. __str__
C. __init__
D. __repr__
W Pythonie funkcja __del__ to metoda destruktora, która jest wywoływana, gdy obiekt jest niszczony. Jest to część procesu zarządzania pamięcią, gdzie interpreter Pythona automatycznie usuwa obiekty, które nie są już potrzebne, aby zwolnić pamięć. __del__ pozwala na wykonanie dodatkowych czynności przed ostatecznym usunięciem obiektu, takich jak zamknięcie plików czy połączeń sieciowych. Warto jednak pamiętać, że użycie __del__ nie jest zalecane do zarządzania zasobami, ponieważ może prowadzić do trudnych do zdiagnozowania błędów, szczególnie gdy obiekty są usuwane w nieprzewidywalnym momencie. Zamiast tego, lepiej jest używać menedżerów kontekstu (z instrukcją with), które zapewniają bardziej kontrolowane i bezpieczne zwalnianie zasobów. Przykładowo, otwierając plik za pomocą with open('plik.txt', 'r') as f:, masz pewność, że plik zostanie zamknięty poprawnie po zakończeniu bloku kodu, niezależnie od tego, czy wystąpił błąd.

Pytanie 24

Jakie z wymienionych narzędzi służy do emulacji mobilnych urządzeń podczas developowania aplikacji?

A. Genymotion
B. Numpy
C. Postman
D. TensorFlow
Genymotion to jedno z najbardziej zaawansowanych narzędzi do emulacji urządzeń mobilnych podczas tworzenia aplikacji na system Android. Umożliwia symulowanie działania aplikacji na różnych urządzeniach i wersjach systemu Android, co pozwala programistom na testowanie kompatybilności i wydajności aplikacji w różnych warunkach. Genymotion oferuje szybkie emulowanie, obsługę GPS, kamery oraz czujników, co czyni go niezwykle przydatnym narzędziem w procesie rozwoju aplikacji mobilnych. Dzięki wsparciu dla integracji z Android Studio, Genymotion jest popularnym wyborem wśród deweloperów tworzących aplikacje na platformę Android.

Pytanie 25

Podaj wspólną cechę wszystkich kontrolek umieszczonych w ramce

Ilustracja do pytania
A. mają identyczny kolor czcionki
B. są w nich ustawione te same wartości domyślne
C. mają tło w tym samym kolorze
D. wszystkie są widoczne
Wszystkie kontrolki w ramce mają tło tego samego koloru. Jest to kluczowy aspekt projektowania interfejsu użytkownika, który zapewnia spójność wizualną i ułatwia nawigację.

Pytanie 26

Wskaż algorytm sortowania, który nie jest stabilny?

A. sortowanie szybkie
B. sortowanie bąbelkowe
C. sortowanie przez zliczanie
D. sortowanie przez wstawianie
Sortowanie szybkie (QuickSort) jest algorytmem niestabilnym, co oznacza, że nie zachowuje kolejności elementów o tej samej wartości. Jego główną zaletą jest efektywność, jednak brak stabilności może być istotny w aplikacjach wymagających zachowania oryginalnej kolejności danych.

Pytanie 27

Zasada programowania obiektowego, która polega na ukrywaniu elementów klasy tak, aby były one dostępne wyłącznie dla metod tej klasy lub funkcji zaprzyjaźnionych, to

A. wyjątki
B. dziedziczenie
C. polimorfizm
D. hermetyzacja
Polimorfizm umożliwia definiowanie metod o tej samej nazwie w różnych klasach, dziedziczenie pozwala na przekazywanie cech klasy bazowej do klas pochodnych, a wyjątki dotyczą obsługi błędów, nie ukrywania składowych klasy.

Pytanie 28

Wskaź rodzaj testowania, które realizuje się w trakcie tworzenia kodu źródłowego?

A. testy jednostkowe
B. testy wdrożeniowe
C. testy wydajnościowe
D. testy kompatybilności
Testy wydajnościowe są wykonywane po zakończeniu kodowania, aby sprawdzić, jak system działa pod obciążeniem. Testy kompatybilności sprawdzają zgodność aplikacji z różnymi środowiskami i urządzeniami. Testy wdrożeniowe są realizowane na końcowym etapie projektu i mają na celu sprawdzenie, czy aplikacja działa poprawnie w rzeczywistym środowisku.

Pytanie 29

Jaką wydajność posiada sieć, która przesyła 500 MB danych w czasie 10 sekund?

A. 50 Mbps
B. 40 Mbps
C. 500 Mbps
D. 400 Mbps
Przepustowość sieci to tak naprawdę miara, jak dobrze potrafimy przesyłać dane w określonym czasie, najczęściej podawana w bitach na sekundę (bps). Jeśli mamy 500 MB danych do przesłania w ciągu 10 sekund, to najpierw musimy zamienić megabajty na megabity. Pamiętaj, że 1 bajt to 8 bitów, więc 500 MB to 4000 Mb (500 MB * 8 = 4000 Mb). Jak już to zrobimy, dzielimy 4000 Mb przez 10 sekund i wychodzi nam 400 Mb/s. Ale warto też wspomnieć, że generalnie przepustowość mierzona jest w megabitach na sekundę. Tak więc 500 Mbps to w zasadzie to samo co 500 Mb/s w kontekście przesyłania danych. Podsumowując, obliczając 4000 Mb dzielone przez 10 sekund, dostajemy przepustowość 400 Mbps. Wiesz, to pokazuje, że przy takim transferze danych potrzeba sporego pasma, żeby wszystko działało jak należy. W dzisiejszych czasach, szybkość transferu danych to kluczowy element, żeby sieć była wydajna.

Pytanie 30

Jakie jest zastosowanie iteratora w zbiorach?

A. Do usuwania elementów ze zbioru
B. Do zmiany rodzaju zbioru w trakcie działania aplikacji
C. Do generowania kopii zbiorów
D. Do iterowania po elementach zbioru
Tworzenie kopii kolekcji to operacja duplikacji danych i nie wymaga iteratorów. Usuwanie elementów z kolekcji może być realizowane przy pomocy iteratora, ale nie jest to jego główna funkcja. Zmiana typu kolekcji to operacja, która często wymaga konwersji lub transformacji, ale iterator nie służy do zmiany typów danych, a jedynie do iteracji po elementach kolekcji.

Pytanie 31

Jaką wartość jest w stanie przechować tablica jednowymiarowa?

A. Jedną wartość
B. Wartość logiczną true lub false
C. Wiele wartości pod tym samym indeksem
D. Wiele wartości pod różnymi indeksami
Tablica jednowymiarowa przechowuje wiele wartości pod różnymi indeksami. Każdy element tablicy jest dostępny za pomocą indeksu, co pozwala na szybkie i efektywne przechowywanie oraz przetwarzanie danych. W programowaniu tablice jednowymiarowe są podstawą do implementacji algorytmów sortowania, wyszukiwania oraz przechowywania sekwencji danych. Tego rodzaju tablice są niezwykle użyteczne w organizowaniu danych o powtarzalnej strukturze, takich jak listy imion, wyniki testów czy współrzędne.

Pytanie 32

Do stworzenia zbioru danych potrzebnego do uruchomienia algorytmu sortowania bąbelkowego tablicy, wymagane są przynajmniej następujące typy:

A. dwa tablicowe, dwa do zamiany miejscami elementów
B. jeden tablicowy, jeden liczbowy do nadzorowania pętli, dwa do zamiany miejscami elementów
C. jeden tablicowy, dwa liczbowe do nadzorowania pętli, jeden do zamiany miejscami elementów
D. dwa tablicowe, jeden liczbowy do nadzorowania pętli
Do implementacji algorytmu sortowania bąbelkowego potrzebny jest jeden typ tablicowy, dwa liczbowe do kontroli iteracji pętli oraz jeden do zamiany elementów miejscami. Dwa liczniki pętli są niezbędne, aby iterować po tablicy wielokrotnie, zmniejszając zakres w każdej iteracji.

Pytanie 33

Kod przedstawiony w języku XML/XAML określa

Ilustracja do pytania
A. przełącznik
B. suwak
C. listę rozwijaną
D. stepper
Kod XML/XAML definiuje przełącznik (Switch), który jest standardową kontrolką używaną do reprezentowania dwustanowego wyboru (włącz/wyłącz). Jest to często stosowane w aplikacjach mobilnych i desktopowych do aktywowania i dezaktywowania funkcji. W XAML przełącznik jest łatwy do skonfigurowania za pomocą atrybutu 'IsToggled', co umożliwia programistom szybkie zarządzanie stanem kontrolki.

Pytanie 34

Jakie aspekty powinny być brane pod uwagę przy tworzeniu zestawów danych?

A. Narzędzia do analizy błędów
B. Typ zastosowanego kompilatora
C. Metoda alokacji pamięci dla danych
D. Ilość linii kodu programu
Sposób alokacji pamięci dla danych to kluczowy element projektowania zestawów danych, ponieważ wpływa na wydajność i efektywność programu. Dynamiczna alokacja pamięci pozwala na tworzenie struktur, których rozmiar jest zmienny i dostosowuje się w trakcie działania aplikacji. Dzięki temu programiści mogą optymalnie zarządzać zasobami systemowymi, unikając marnowania pamięci lub jej niedoboru. Wybór odpowiedniej metody alokacji, np. stosowanie wskaźników, dynamicznych tablic lub struktur danych takich jak lista czy mapa, pozwala na budowanie bardziej skalowalnych i elastycznych aplikacji.

Pytanie 35

Jakie jest zastosowanie języka XAML przy tworzeniu aplikacji desktopowych?

A. Do projektowania graficznego interfejsu użytkownika
B. Do optymalizacji działania aplikacji
C. Do obsługi zdarzeń klawiatury
D. Do zarządzania bazami danych
XAML (Extensible Application Markup Language) to język znaczników wykorzystywany w technologii WPF (Windows Presentation Foundation) oraz UWP (Universal Windows Platform) do projektowania graficznego interfejsu użytkownika (GUI). XAML pozwala na definiowanie układów, przycisków, etykiet oraz innych elementów interaktywnych w aplikacjach desktopowych. Dzięki XAML, projektowanie interfejsu jest intuicyjne, a kod interfejsu jest oddzielony od logiki aplikacji, co sprzyja przejrzystości projektu. XAML wspiera animacje, style i szablony, co umożliwia budowę nowoczesnych, dynamicznych aplikacji. Jego elastyczność i możliwość współpracy z C# sprawiają, że XAML jest niezastąpiony w środowisku Windows.

Pytanie 36

Które z poniższych jest podstawowym rodzajem testów używanych w testowaniu jednostkowym?

A. Testy integracyjne
B. Testy systemowe
C. Testy akceptacyjne
D. Testy jednostkowe
Pozostałe rodzaje testów, mimo że są istotne w procesie testowania oprogramowania, nie są podstawowymi elementami testowania jednostkowego. Testy integracyjne mają na celu sprawdzenie, czy różne moduły systemu współpracują ze sobą poprawnie. Są one wykonywane po testach jednostkowych i skupiają się na interakcjach między komponentami. Testy systemowe to kolejny poziom testowania, który bada cały zintegrowany system pod kątem zgodności z wymaganiami. Są one szeroko zakrojone i testują zarówno funkcjonalność, jak i niefunkcjonalne aspekty systemu, takie jak wydajność czy bezpieczeństwo. Testy akceptacyjne to ostatnia faza testowania, w której sprawdza się, czy system spełnia kryteria akceptacji i jest gotowy do wdrożenia. Są one często wykonywane przez końcowych użytkowników lub klientów, aby upewnić się, że system spełnia ich potrzeby i oczekiwania. Wszystkie te formy testowania są ważne, ale nie zastępują testów jednostkowych, które są fundamentem weryfikacji poprawności poszczególnych części kodu. Typowym błędem jest myślenie, że można całkowicie polegać na testach wyższego poziomu, zaniedbując testy jednostkowe, co może prowadzić do trudnych do wykrycia błędów w późniejszych etapach projektów.

Pytanie 37

Jakie z wymienionych narzędzi służy do testowania aplikacji?

A. Git
B. WordPress
C. Photoshop
D. Selenium
Selenium to potężne narzędzie do automatycznego testowania aplikacji webowych. Umożliwia ono symulowanie działań użytkownika na stronie internetowej, takich jak klikanie przycisków, wypełnianie formularzy czy nawigowanie po witrynie. Dzięki Selenium programiści mogą automatyzować testy funkcjonalne i regresyjne, co pozwala na szybkie wykrywanie błędów i sprawdzanie zgodności aplikacji z wymaganiami. Selenium obsługuje wiele języków programowania, takich jak Python, Java, C# czy JavaScript, co czyni je wszechstronnym narzędziem do testowania aplikacji webowych na różnych platformach i przeglądarkach. Jest to jedno z najważniejszych narzędzi w arsenale testerów oprogramowania i deweloperów dbających o jakość swoich produktów.

Pytanie 38

Jaką komendę w języku C++ używa się do wielokrotnego uruchamiania tego samego bloku kodu?

A. if
B. while
C. break
D. switch
Instrukcja `while` w języku C++ i innych językach programowania pozwala na wielokrotne wykonanie tego samego fragmentu kodu, dopóki warunek logiczny jest spełniony. Przykład: `while (x < 10) { x++; }` będzie zwiększać zmienną `x` o 1, dopóki jej wartość nie osiągnie 10. Pętle `while` są przydatne, gdy liczba iteracji nie jest z góry znana i zależy od spełnienia określonego warunku w trakcie wykonywania programu.

Pytanie 39

Jaka będzie wartość zmiennej x po wykonaniu poniższego kodu?

let x = 0; for (let i = 0; i < 10; i++) { if (i % 2 === 0) continue; x += i; }

A. 25
B. 20
C. 30
D. 45
Wartość zmiennej x po wykonaniu podanego kodu wynosi 25, co jest wynikiem sumy wszystkich nieparzystych liczb od 0 do 9. W pętli for iterujemy od 0 do 9, a dla każdej wartości i sprawdzamy, czy jest parzysta. Jeżeli i jest parzyste, używamy instrukcji continue, co oznacza, że ten krok pętli jest pomijany i przechodzimy do następnej iteracji. W praktyce oznacza to, że wartości takie jak 0, 2, 4, 6, 8 nigdy nie zostaną dodane do zmiennej x. Zostaną natomiast dodane wartości nieparzyste: 1, 3, 5, 7, 9. Ich suma wynosi 1 + 3 + 5 + 7 + 9 = 25. Takie podejście jest typowe w programowaniu, gdyż pozwala na efektywne pomijanie niepotrzebnych wartości, co zwiększa wydajność kodu. Używanie operatora modulo (%) do sprawdzania parzystości jest powszechną praktyką. Tego typu konstrukcje możemy znaleźć w różnych zastosowaniach, na przykład w algorytmach sortujących czy w przetwarzaniu danych, gdzie istotne jest operowanie tylko na wybranych elementach.

Pytanie 40

Który z operatorów w Pythonie umożliwia sprawdzenie, czy dany element należy do listy?

A. is
B. and
C. in
D. ==
Operator `==` służy do porównywania dwóch wartości, ale nie sprawdza przynależności do listy czy zbioru. Operator `is` porównuje obiekty pod względem tożsamości (czy wskazują na ten sam obiekt w pamięci), co różni się od `in`, który porównuje wartości. Operator `and` to operator logiczny, który sprawdza, czy dwie wartości są prawdziwe (`True`), ale nie jest używany do wyszukiwania elementów w listach czy zbiorach. Każdy z tych operatorów pełni inną funkcję niż `in`, który jest dedykowany do sprawdzania przynależności elementów do kolekcji.