Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 13 stycznia 2025 17:11
  • Data zakończenia: 13 stycznia 2025 17:19

Egzamin zdany!

Wynik: 38/40 punktów (95,0%)

Wymagane minimum: 20 punktów (50%)

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

Jaką rolę odgrywa interpreter w kontekście programowania?

A. Przekłada kod źródłowy na język maszynowy w trakcie działania programu
B. Łączy kod źródłowy z zewnętrznymi bibliotekami
C. Zoptymalizowuje wydajność aplikacji w środowisku produkcyjnym
D. Generuje plik wykonywalny dla systemu operacyjnego
Interpreter tłumaczy kod źródłowy na język maszynowy instrukcja po instrukcji, co oznacza, że każda linia kodu jest analizowana i wykonywana na bieżąco. Dzięki temu programy interpretowane, takie jak te w Pythonie, Ruby czy JavaScript, mogą być szybko testowane i uruchamiane bez konieczności wcześniejszej kompilacji. Interpretacja pozwala na elastyczność w procesie rozwoju, ponieważ zmiany w kodzie są widoczne natychmiast po zapisaniu pliku. To czyni interpreter idealnym narzędziem do prototypowania i budowania aplikacji w dynamicznych środowiskach.

Pytanie 2

Jakie jest przeznaczenie polecenia "git merge"?

A. Do zakładania nowego repozytorium
B. Do usuwania zmian w repozytorium
C. Do pobierania aktualizacji zdalnego repozytorium
D. Do łączenia zmian z różnych gałęzi
Polecenie 'git merge' służy do łączenia zmian z jednej gałęzi (branch) z inną. Najczęściej używane jest do scalenia gałęzi deweloperskich (feature branches) z gałęzią główną (main lub master). Git merge pozwala na integrację nowych funkcji z głównym kodem projektu, co jest kluczowe w pracy zespołowej. W przypadku konfliktów, Git wymaga ręcznego rozwiązania ich przed zakończeniem procesu scalania. Umożliwia to zachowanie porządku w kodzie i unikanie błędów, które mogłyby wyniknąć z niezgodnych zmian.

Pytanie 3

Które z wymienionych poniżej błędów podczas wykonywania programu można obsłużyć poprzez zastosowanie wyjątków?

A. Błąd w składni
B. Niekompatybilność typów danych w kodzie
C. Błąd kompilacyjny
D. Błąd dzielenia przez zero
W języku C++ wyjątki pozwalają na obsługę błędów wykonania, takich jak dzielenie przez zero. Jest to klasyczny przykład błędu, który może prowadzić do nieprzewidywalnych rezultatów lub awarii programu. Dzięki użyciu wyjątków można zapobiec katastrofalnym skutkom takich błędów, przekierowując sterowanie do odpowiedniego bloku 'catch', gdzie można podjąć działania naprawcze lub zakończyć program w kontrolowany sposób. Obsługa błędów takich jak dzielenie przez zero jest kluczowa w programowaniu niskopoziomowym i aplikacjach wymagających wysokiej niezawodności.

Pytanie 4

Jakie są kluczowe zasady WCAG 2.0?

A. Elastyczna, prosta, przejrzysta, trwała
B. Ewolucyjna, interaktywna, efektywna
C. Dostosowana, błyskawiczna, mobilna, dostępna
D. Percepcyjna, operacyjna, zrozumiała, solidna
Zasady WCAG 2.0, czyli Wytycznych dotyczących dostępności treści internetowych, skupiają się na zapewnieniu, że strony internetowe są dostępne dla wszystkich użytkowników, niezależnie od ich zdolności. Główne zasady to percepcyjna, operacyjna, zrozumiała i solidna. Percepcyjna oznacza, że ​​wszystkie elementy na stronie muszą być przedstawione w sposób, który umożliwia ich percepcję przez różne zmysły, takie jak wzrok i słuch. Na przykład, tekst alternatywny dla obrazów pozwala osobom niewidomym zrozumieć zawartość wizualną. Operacyjna dotyczy interakcji użytkownika z treścią; nawigacja powinna być intuicyjna, a elementy interaktywne łatwo osiągalne. Zrozumiała oznacza, że ​​treść powinna być zrozumiała dla wszystkich użytkowników, co można osiągnąć poprzez prosty język i jasne instrukcje. Solidna koncentruje się na tym, aby treść była wystarczająco elastyczna, aby działała w różnych przeglądarkach i urządzeniach, co jest kluczowe w dobie różnorodności technologii. Przykładem wdrożenia tych zasad może być wykorzystanie ARIA (Accessible Rich Internet Applications), które wspomagają dostępność dynamicznych treści w aplikacjach internetowych.

Pytanie 5

Który z wymienionych algorytmów sortowania jest najskuteczniejszy w przypadku dużych zbiorów danych w przeważającej liczbie sytuacji?

A. Sortowanie przez zliczanie
B. Sortowanie bąbelkowe
C. Sortowanie przez wstawianie
D. Sortowanie szybkie (QuickSort)
QuickSort to algorytm sortowania, który jest najbardziej efektywny dla dużych zbiorów danych, osiągając średnią złożoność obliczeniową O(n log n). Wykorzystuje strategię 'dziel i zwyciężaj', co pozwala na szybkie podzielenie tablicy na mniejsze części wokół elementu zwanego pivotem. Dzięki temu QuickSort jest wyjątkowo szybki, nawet w przypadku dużych i losowo rozłożonych zbiorów danych. Jego zaletą jest niskie zużycie pamięci oraz możliwość sortowania w miejscu (in-place), co oznacza, że nie wymaga dodatkowej przestrzeni poza rekurencyjnym stosowaniem wywołań. Algorytm ten jest szeroko stosowany w aplikacjach bazodanowych, systemach operacyjnych i analizie danych.

Pytanie 6

Termin ryzyko zawodowe odnosi się do

A. efektów zagrożeń wypadkowych, jakie występują w miejscu zatrudnienia
B. zagrożenia wypadkowego, które może wystąpić w miejscu pracy
C. prawdopodobieństwa, że zdarzenia niepożądane związane z pracą spowodują straty, w szczególności negatywne skutki zdrowotne dla pracowników
D. ciężkości skutków niepożądanych zdarzeń związanych z pracą
Ryzyko zawodowe to prawdopodobieństwo wystąpienia niepożądanych zdarzeń związanych z pracą, mogących prowadzić do strat zdrowotnych lub materialnych. Ocena ryzyka to kluczowy element zarządzania bezpieczeństwem pracy.

Pytanie 7

Pierwszym krokiem w procesie tworzenia aplikacji jest

A. opracowanie architektury systemu
B. stworzenie przypadków testowych
C. analiza wymagań klienta
D. wybór zestawu typów i zmiennych dla aplikacji
Analiza wymagań klienta to kluczowy, pierwszy etap tworzenia aplikacji. Pozwala na określenie potrzeb, funkcjonalności i założeń systemu, co jest podstawą do dalszego projektowania architektury oraz implementacji.

Pytanie 8

Który system operacyjny jest podstawowym środowiskiem do tworzenia aplikacji mobilnych w języku Swift?

A. iOS
B. Windows UWP
C. Android
D. LG UX
iOS to natywny system operacyjny dla aplikacji mobilnych pisanych w języku Swift. Swift to nowoczesny język programowania, stworzony przez Apple, ułatwiający rozwój aplikacji na urządzenia iPhone i iPad.

Pytanie 9

Który framework jest powszechnie wykorzystywany do tworzenia aplikacji internetowych w języku Python?

A. ASP.NET Core
B. React.js
C. Django
D. Angular
Django to framework stworzony specjalnie do budowy aplikacji webowych w języku Python. Jest jednym z najbardziej popularnych i zaawansowanych frameworków typu full-stack, który oferuje szeroki wachlarz narzędzi umożliwiających szybkie i efektywne tworzenie aplikacji internetowych. Django pozwala na tworzenie aplikacji zgodnych z zasadą DRY (Don't Repeat Yourself), co oznacza minimalizację powtarzalnego kodu. Posiada wbudowany panel administracyjny, system ORM (Object-Relational Mapping) oraz zabezpieczenia przed atakami CSRF i XSS. Dzięki Django programiści mogą skupić się na rozwijaniu logiki biznesowej, a nie na konfiguracji podstawowych funkcji aplikacji, co znacznie skraca czas wdrożenia gotowego produktu.

Pytanie 10

W języku C# szablon List zapewnia funkcjonalność listy. Z tworzenia obiektu typu List wynika, że jego składnikami są

Ilustracja do pytania
A. liczby rzeczywiste
B. elementy typu List
C. elementy o nieokreślonym typie
D. liczby całkowite
Szablon Listw języku C# implementuje listę, której elementami są liczby całkowite. Jest to przykład zastosowania kolekcji generycznych, które wprowadzają typowanie silne w czasie kompilacji, co pozwala na uniknięcie błędów typowych dla kolekcji niegenerycznych. Definiując Listdeklarujesz, że lista będzie przechowywać tylko liczby całkowite. Dzięki temu kompilator może wykrywać błędy związane z typowaniem już podczas pisania kodu, co zwiększa jego niezawodność i bezpieczeństwo. Typ generyczny T w Listumożliwia tworzenie kolekcji przechowujących dowolny typ, co ułatwia ponowne wykorzystanie kodu i zgodność z zasadą DRY (Don't Repeat Yourself). W praktyce Listjest szeroko stosowany w scenariuszach wymagających dynamicznie rozwijanych kolekcji, które nie ograniczają się do statycznej liczby elementów, takich jak tablice. Listy generyczne są wydajniejsze i bardziej elastyczne dzięki metodom takim jak Add, Remove czy Contains, które operują na elementach określonego typu. Dzięki implementacji IEnumerable/Listy są również zgodne z LINQ, co umożliwia stosowanie złożonych zapytań i operacji na danych, takich jak filtrowanie i sortowanie, w sposób czytelny i efektywny.

Pytanie 11

Zawarty w ramce opis licencji sugeruje, że mamy do czynienia z licencją

Ilustracja do pytania
A. Freeware
B. OEM
C. Open Source
D. Shareware
Opis licencji wskazuje na licencję Open Source, która umożliwia użytkownikom przeglądanie, modyfikowanie i dystrybucję kodu źródłowego. Oprogramowanie open source sprzyja innowacji, współpracy i elastyczności, pozwalając na dostosowanie aplikacji do własnych potrzeb. Licencje takie jak GPL, MIT czy Apache są popularnymi przykładami licencji open source.

Pytanie 12

Zaprezentowany diagram ilustruje wyniki przeprowadzonych testów:

Ilustracja do pytania
A. funkcjonalności
B. użyteczności
C. wydajnościowych
D. ochrony
Wykres obrazuje wyniki testów wydajnościowych, które pokazują, jak system lub aplikacja radzi sobie pod dużym obciążeniem. Testy te pomagają zidentyfikować wąskie gardła i umożliwiają optymalizację wydajności.

Pytanie 13

Klasa Mieszkaniec zawiera atrybuty: imie, nazwisko, ulica, nrDomu, rokUrodzenia. W tej klasie umieszczono opisane poniżej konstruktory (zapisano jedynie typy argumentów). Do tworzenia obiektu za pomocą konstruktora kopiującego wykorzystany będzie konstruktor określony w punkcie

Ilustracja do pytania
A. 1
B. 3
C. 2
D. 4
Konstruktor kopiujący to taka fajna metoda, która pozwala nam stworzyć nowy obiekt, będący kopią innego obiektu tej samej klasy. To naprawdę ważny element w programowaniu obiektowym, bo dzięki niemu możemy tworzyć nowe instancje bez konieczności ręcznego wpisywania wartości pól. Taki konstruktor kopiujący dba o to, żeby dane były spójne i integralne, co jest super istotne, zwłaszcza przy obiektach, które mają wskaźniki lub potrzebują dynamicznie przydzielanej pamięci.

Pytanie 14

Po wykonaniu podanego kodu na konsoli wyświetli się liczba

Ilustracja do pytania
A. 115
B. 0
C. 73
D. 108
Kod generuje liczbę 115 w konsoli, co jest wynikiem przetwarzania wartości ASCII znaków lub obliczeń matematycznych na poziomie bajtów. W języku C++ konwersja i manipulowanie wartościami liczbowymi często obejmuje użycie operacji na typach całkowitych oraz zmiennych pomocniczych, co umożliwia precyzyjne zarządzanie wynikiem wyjściowym.

Pytanie 15

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

Ilustracja do pytania
A. 5
B. 6
C. 7
D. 8
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 16

Jakiego kwalifikatora powinno się użyć dla metody, aby umożliwić do niej dostęp jedynie z wnętrza tej klasy oraz klas dziedziczących, a także, by metoda ta nie była dostępna w żadnej funkcji?

A. public
B. protected
C. reinterpret_cast
D. private
Metoda oznaczona jako 'protected' jest dostępna tylko z poziomu klasy oraz jej klas potomnych. Chroni to przed bezpośrednim dostępem spoza klasy, zapewniając większe bezpieczeństwo kodu i ograniczenie dostępu.

Pytanie 17

Która z poniższych deklaracji w języku C++ poprawnie opisuje tablicę dwuwymiarową?

A. int matrix[3];
B. int matrix[];
C. int matrix[3][3];
D. int matrix[3][3][3];
Deklaracja 'int matrix[3][3];' poprawnie definiuje tablicę dwuwymiarową w języku C++. Tablice dwuwymiarowe to kluczowe narzędzie do przechowywania macierzy i danych tabelarycznych. Każdy element macierzy jest dostępny poprzez dwa indeksy, co umożliwia łatwe odwzorowanie układów współrzędnych lub plansz w grach. Tablice tego rodzaju są wykorzystywane w algorytmach obliczeniowych, grafice komputerowej oraz analizie danych. Struktura 'matrix[3][3]' tworzy siatkę 3x3, która może przechowywać 9 elementów, co czyni ją efektywnym rozwiązaniem dla problemów wymagających przestrzennych danych.

Pytanie 18

Jaką wartość ma zmienna b po wykonaniu poniższego kodu?

Ilustracja do pytania
A. 5
B. 2
C. 11
D. 20
Po przeanalizowaniu przedstawionego kodu, możemy zauważyć, że zmienne a b i c są zainicjalizowane odpowiednio wartościami 1 20 i 3. Pętla while jest zależna od warunku a <= 10 co oznacza że będzie się wykonywać dopóki a nie przekroczy 10. W ciele pętli najpierw zmniejszamy wartość b o wartość c czyli b = b - c a następnie zwiększamy a o 2 czyli a += 2. Ponieważ a jest początkowo równe 1 pętla będzie się wykonywać pięć razy zanim a stanie się większe niż 10 (1 3 5 7 9). Podczas każdej iteracji wartość b zmniejsza się o 3 (ponieważ c=3). Po pięciu iteracjach wartość b zostanie zmniejszona o 15 (5*3) z początkowej wartości 20 uzyskując ostatecznie 5. W tym kontekście poprawna odpowiedź to 5. Takie podejście do analizy pętli i zmiennych jest kluczowe podczas programowania ponieważ pozwala zrozumieć jak zmieniają się wartości zmiennych w czasie wykonywania programu. Zrozumienie tych zasad jest fundamentalne w programowaniu proceduralnym oraz w debugowaniu kodu.

Pytanie 19

Jakie jest poprawne określenie interfejsu (szablonu klasy) w języku Java?

Ilustracja do pytania
A. Definicja 3
B. Definicja 2
C. Definicja 1
D. Definicja 4
W języku Java interfejs określa zbiór abstrakcyjnych metod, które klasa implementująca musi zaimplementować. Poprawna definicja interfejsu nie zawiera zmiennych instancji ani konstruktorów, co jest błędem w pierwszej definicji. Interfejsy służą do deklarowania metod, które są automatycznie publiczne i abstrakcyjne. W czwartej definicji, interfejs IMyInterface zawiera dwie metody mth1 i mth2 bez implementacji, co jest zgodne z zasadami Javy. Metody w interfejsie nie mają ciał, co wskazuje, że są przeznaczone do implementacji w klasie, która zadeklaruje się jako implementująca ten interfejs. Interfejsy są kluczowe dla polimorfizmu w Javie, pozwalając na tworzenie kodu, który może pracować z obiektami różnych klas w jednolity sposób, o ile klasy te implementują wspólny interfejs. Zastosowanie interfejsów zwiększa spójność i elastyczność kodu, umożliwiając łatwe dodawanie nowych funkcjonalności bez ingerencji w istniejącą strukturę kodu. Interfejsy są także wykorzystywane do tworzenia klasycznych wzorców projektowych jak Adapter, Strategia czy Obserwator, co jest dobrą praktyką w programowaniu obiektowym.

Pytanie 20

Którą funkcję w C++ można zastosować do dynamicznego przydzielania pamięci dla tablicy?

A. malloc()
B. sizeof()
C. free()
D. delete[]
Funkcja 'malloc()' w języku C i C++ służy do dynamicznego alokowania pamięci dla tablic i innych struktur danych. Jest to kluczowa funkcja pozwalająca na przydzielenie określonej ilości bajtów w czasie wykonywania programu, co zwiększa elastyczność zarządzania pamięcią. Używając 'malloc()', programista może utworzyć tablicę o zmiennym rozmiarze, który nie musi być znany w czasie kompilacji. Dynamiczne alokowanie pamięci jest powszechnie stosowane w aplikacjach wymagających dużych ilości danych lub wtedy, gdy konieczne jest efektywne wykorzystanie zasobów systemowych.

Pytanie 21

Jakie środki ochrony zbiorowej najlepiej chronią kręgosłup w warunkach pracy biurowej?

A. Korzystanie z regulowanych krzeseł i biurek
B. Umieszczanie monitorów na wysokości oczu
C. Regulowanie poziomu oświetlenia w biurze
D. Ograniczenie hałasu w pomieszczeniu
Używanie regulowanych foteli i biurek to jeden z najlepszych sposobów na zapobieganie problemom z kręgosłupem w pracy biurowej. Ergonomiczne fotele pozwalają na dostosowanie wysokości siedziska, podparcia lędźwiowego oraz kąta nachylenia oparcia, co zapewnia optymalne wsparcie dla kręgosłupa i zmniejsza ryzyko bólu pleców. Regulowane biurka umożliwiają zmianę pozycji pracy – z siedzącej na stojącą – co redukuje obciążenie kręgosłupa i poprawia krążenie krwi. Ergonomia stanowiska pracy to kluczowy element profilaktyki zdrowotnej, który minimalizuje ryzyko dolegliwości związanych z długotrwałą pracą w jednej pozycji.

Pytanie 22

Jakie zadanie wykonuje debugger?

A. Przekładanie kodu źródłowego na język maszynowy
B. Umożliwianie analizy działania programu krok po kroku
C. Identyfikowanie błędów składniowych podczas kompilacji
D. Generowanie pliku wykonywalnego programu
Tłumaczenie kodu źródłowego na język maszynowy to zadanie kompilatora, a nie debuggera. Wykrywanie błędów składniowych odbywa się podczas procesu kompilacji lub analizy statycznej, ale debugger zajmuje się błędami występującymi w trakcie wykonywania programu. Tworzenie pliku wykonywalnego jest funkcją kompilatora, nie debuggera. Debugger nie generuje kodu – jego zadaniem jest monitorowanie i analizowanie kodu, który już został skompilowany lub interpretowany.

Pytanie 23

Który z poniższych problemów jest najczęściej rozwiązywany z zastosowaniem algorytmu rekurencyjnego?

A. Wyszukiwanie binarne w uporządkowanej tablicy
B. Obliczanie sumy elementów w tablicy
C. Sortowanie za pomocą metody QuickSort
D. Generowanie ciągu Fibonacciego
Generowanie ciągu Fibonacciego to klasyczny przykład problemu, który najczęściej rozwiązuje się za pomocą algorytmu rekurencyjnego. Algorytm rekurencyjny wywołuje sam siebie, dzieląc problem na mniejsze podproblemy, aż do osiągnięcia przypadku bazowego. W przypadku Fibonacciego każda liczba jest sumą dwóch poprzednich, a algorytm rekurencyjny odwzorowuje to wprost poprzez wywołania fib(n-1) + fib(n-2). Rekurencja jest intuicyjna i często stosowana w zadaniach matematycznych, takich jak obliczanie silni czy rozwiązywanie problemów związanych z przeszukiwaniem drzew. Choć rekurencja jest elegancka, dla dużych n może prowadzić do nadmiarowych obliczeń, dlatego często optymalizuje się ją za pomocą pamięci podręcznej (memoizacji) lub iteracyjnych wersji algorytmu.

Pytanie 24

Z analizy złożoności obliczeniowej algorytmów sortowania dla dużych zbiorów danych (powyżej 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania:

Ilustracja do pytania
A. kubełkowego
B. przez zliczanie
C. przez scalanie
D. bąbelkowego
Sortowanie przez zliczanie (Counting Sort) to jeden z najszybszych algorytmów sortowania dla dużych zbiorów danych, jeśli zakres wartości jest ograniczony. Algorytm działa w czasie O(n+k), gdzie n to liczba elementów, a k to zakres wartości. Jest to algorytm stabilny, co oznacza, że zachowuje kolejność elementów o tej samej wartości. Counting Sort jest szczególnie efektywny w przypadku danych numerycznych o ograniczonym przedziale wartości, co czyni go idealnym rozwiązaniem do sortowania dużych zbiorów danych w krótkim czasie.

Pytanie 25

Czym jest ochrona własności intelektualnej?

A. Koncepcja prawa zabezpieczającego twórczość i innowacje
B. Rejestr plików przechowywanych w chmurze
C. Zbiór informacji osobowych
D. Zestaw przepisów dotyczących ochrony prywatności
Własność intelektualna to zbiór praw chroniących twórczość i wynalazki, obejmujący patenty, prawa autorskie, znaki towarowe i wzory przemysłowe. Własność intelektualna pozwala twórcom na zarabianie na swoich dziełach oraz kontrolowanie, kto i w jaki sposób może z nich korzystać. W wielu krajach naruszenie praw własności intelektualnej wiąże się z poważnymi konsekwencjami prawnymi. Dla przedsiębiorstw i innowatorów ochrona własności intelektualnej jest kluczowa dla zabezpieczenia ich inwestycji oraz rozwijania nowych technologii.

Pytanie 26

Zaproponowany fragment kodu w Android Studio realizuje metodę nasłuchującą do obsługi wydarzenia

Ilustracja do pytania
A. naciśnięcia przycisku
B. zmiany stanu kontrolki Switch
C. wybór daty
D. zmiany w polu tekstowym
Metoda OnClickListener, to coś, co na pewno warto znać, gdy pracujesz z aplikacjami na Androida. Gdy użytkownik klika przycisk, wywoływana jest metoda onClick. I tu możesz zrobić różne rzeczy, jak na przykład przejść do innego ekranu, zapisać dane albo uruchomić jakąś akcję w tle. To jest dobry przykład wzorca projektowego zwanego Delegacja, który pomaga oddzielić to, co widzisz w interfejsie, od tego, co dzieje się w aplikacji. Dzięki temu łatwiej zarządzać kodem i wprowadzać zmiany. Fajnie jest, gdy logikę umieszczasz w osobnych metodach, bo wtedy testowanie całej aplikacji staje się prostsze. Przykłady? Możesz na przykład użyć OnClickListenera, żeby zrobić logowanie po kliknięciu przycisku lub wysłać formularz. Pamiętaj też, żeby unikać ciężkich operacji w metodzie onClick, żeby aplikacja działała płynnie.

Pytanie 27

W jakim języku programowania kod źródłowy musi być skompilowany do kodu maszynowego konkretnej architektury procesora przed jego uruchomieniem?

A. Java
B. Perl
C. PHP
D. C++
C++ to język kompilowany, co oznacza, że kod źródłowy jest najpierw przekształcany do kodu maszynowego przed jego uruchomieniem. Dzięki temu aplikacje napisane w C++ działają szybciej i są bardziej efektywne, ale wymagają kompilacji na każdą platformę oddzielnie.

Pytanie 28

Który aspekt projektu aplikacji jest kluczowy dla zabezpieczenia danych użytkowników?

A. Pominięcie testowania aplikacji w etapie produkcji
B. Zastosowanie zaawansowanych systemów ochrony
C. Koncentracja na wyglądzie interfejsu użytkownika
D. Tworzenie prostych formularzy do rejestracji
Stosowanie zaawansowanych mechanizmów bezpieczeństwa jest kluczowe dla ochrony danych użytkowników w aplikacjach. Wdrożenie technologii takich jak szyfrowanie, autoryzacja dwuskładnikowa (2FA), firewalle oraz regularne testy penetracyjne pozwala na minimalizację ryzyka ataków i naruszeń danych. Mechanizmy te nie tylko zabezpieczają dane, ale również budują zaufanie użytkowników do aplikacji, co jest niezwykle istotne w branżach takich jak bankowość, medycyna czy e-commerce.

Pytanie 29

Jaką istotną właściwość ma algorytm rekurencyjny?

A. Funkcjonuje tylko w przypadku tablic dynamicznych
B. Zawiera wywołanie samego siebie
C. Wywołuje się wielokrotnie w jednej iteracji
D. Jest podzielony na wiele niezwiązanych funkcji
Kluczową cechą algorytmu rekurencyjnego jest to, że zawiera on wywołanie samego siebie. Rekurencja pozwala na eleganckie i zwięzłe rozwiązanie problemów, które można podzielić na mniejsze, powtarzające się podproblemy. Każde wywołanie rekurencyjne zmniejsza złożoność problemu, aż do osiągnięcia przypadku bazowego, który kończy dalsze wywołania i rozpoczyna proces zwracania wyników w górę stosu wywołań. Rekurencja znajduje zastosowanie w algorytmach takich jak DFS (przeszukiwanie w głąb), sortowanie szybkie (QuickSort) oraz algorytmy obliczające wartości liczb Fibonacciego i silni.

Pytanie 30

Jaką nazwę elementu interfejsu należy wprowadzić w pierwszej linii kodu, na miejscu

Ilustracja do pytania
A. Spinner
B. SeekBar
C. RatingBar
D. Switch
Kontrolka 'Switch' to taki przycisk, który służy do zmiany stanu, na przykład włączania i wyłączania czegoś. W Androidzie mamy klasę Switch, która często jest używana do aktywacji lub dezaktywacji różnych funkcji w ustawieniach aplikacji. Moim zdaniem, to bardzo przydatne narzędzie, bo pozwala użytkownikom łatwo zarządzać opcjami.

Pytanie 31

Mobilna aplikacja przedstawia listę, w której każdy element można dotknąć palcem, aby zobaczyć jego detale. Zdarzenie, które odpowiada tej czynności, to

A. tapped.
B. toggled.
C. button clicked.
D. value changed.
Zdarzenie 'tapped' oznacza, że stuknęliśmy w coś na liście na naszym telefonie. To takie podstawowe zdarzenie, które przydaje się w aplikacjach mobilnych. Dzięki temu możemy wchodzić w interakcje z różnymi elementami, na przykład, gdy klikniemy na coś w liście, pojawią się dodatkowe szczegóły. Ta obsługa zdarzeń 'tap' jest naprawdę ważna w aplikacjach mobilnych, bo to w zasadzie główny sposób, w jaki poruszamy się po interfejsie.

Pytanie 32

Które z wymienionych stanowi przykład struktury dziedziczenia?

A. Klasa Samochód i Pojazd nie są ze sobą powiązane
B. Klasa Pojazd ma dziedziczenie od klasy Samochód
C. Klasa Pojazd nie dziedziczy z żadnej klasy
D. Klasa Samochód ma dziedziczenie od klasy Pojazd
Hierarchia dziedziczenia to struktura klas, w której klasa pochodna dziedziczy właściwości i metody klasy bazowej. Klasa 'Samochód' dziedzicząca po klasie 'Pojazd' jest przykładem prawidłowej hierarchii dziedziczenia – klasa 'Samochód' rozszerza klasę 'Pojazd', dziedzicząc ogólne właściwości pojazdu, takie jak prędkość czy typ silnika. Dziedziczenie umożliwia rozszerzanie istniejącej funkcjonalności bez konieczności przepisywania tego samego kodu, co jest jednym z fundamentów programowania obiektowego.

Pytanie 33

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

A. Keylogger
B. Adware
C. Spyware
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 34

Jaką instrukcję należy wykorzystać do poprawnej deklaracji zmiennej typu string w C++?

A. string name = "Jan"
B. float name = "Jan"
C. bool name = "Jan"
D. int name = "Jan"
Ta deklaracja 'string name = "Jan"' to naprawdę dobry sposób na zdefiniowanie zmiennej łańcuchowej w C++. Wiesz, 'string' to typ danych, 'name' to nazwa tej zmiennej, a 'Jan' to wartość, która jest jej przypisana. Typ 'string' jest częścią bibliotekii daje nam wiele możliwości, gdy pracujemy z tekstem. Możemy łączyć, porównywać i modyfikować różne łańcuchy znaków bez większego problemu. To jest mega ważne w aplikacjach, które mają do czynienia z danymi tekstowymi, interfejsami użytkownika czy analizą danych, które wprowadzamy.

Pytanie 35

Jaki modyfikator dostępu umożliwia dostęp do pól klasy tylko za pomocą jej metod?

A. Public
B. Protected
C. Static
D. Private
Modyfikator `private` w językach takich jak C++, Java i C# pozwala na ograniczenie dostępu do pól i metod klasy, umożliwiając ich wykorzystanie wyłącznie w obrębie tej samej klasy. Pola `private` są ukryte przed innymi klasami i mogą być modyfikowane lub odczytywane jedynie poprzez metody publiczne (gettery i settery). Przykład w C++: `class Konto { private: double saldo; public: void ustawSaldo(double s) { saldo = s; } }`. Dzięki temu mechanizmowi dane są chronione przed nieautoryzowanymi zmianami, co zwiększa bezpieczeństwo aplikacji i minimalizuje ryzyko błędów.

Pytanie 36

Który z wymienionych dysków oferuje najszybszy dostęp do danych?

A. HDD 5400 RPM, SATA II, 32 MB Cache
B. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s
C. SSD SATA III, prędkość odczytu do 550 MB/s
D. HDD 7200 RPM, SATA III, 64 MB Cache
Odpowiedź wskazująca na SSD NVMe PCIe 3.0 jako najszybszy dysk do odczytu danych jest zgodna z obecnymi standardami technologii przechowywania. Dyski SSD (Solid State Drive) korzystają z pamięci flash, co pozwala na znacznie szybszy dostęp do danych w porównaniu do tradycyjnych dysków HDD (Hard Disk Drive), które działają na zasadzie mechanicznych ruchomych elementów. Dyski NVMe (Non-Volatile Memory Express) są szczególnie wydajne, ponieważ wykorzystują interfejs PCIe (Peripheral Component Interconnect Express), co umożliwia znacznie wyższe prędkości transferu danych. W przypadku SSD NVMe PCIe 3.0, prędkość odczytu może osiągać do 3500 MB/s, co jest znaczącą różnicą w porównaniu do prędkości odczytu w dyskach HDD i SSD SATA. Przykładowo, w zastosowaniach takich jak edycja wideo, renderowanie grafiki 3D czy gry komputerowe, wyższa prędkość odczytu przekłada się na szybsze ładowanie danych i lepszą wydajność systemu. Standardy SATA III dla HDD również mają swoje ograniczenia, ponieważ maksymalna teoretyczna prędkość transferu wynosi 6 Gb/s, co jest dalekie od osiągów oferowanych przez NVMe. Dlatego SSD NVMe PCIe 3.0 jest zdecydowanym liderem w kontekście wydajności odczytu danych w porównaniu do pozostałych opcji.

Pytanie 37

Który z wymienionych typów testów najlepiej ocenia odporność aplikacji na intensywne obciążenie?

A. Testy zgodności
B. Testy obciążeniowe
C. Testy funkcjonalne
D. Testy bezpieczeństwa
Testy obciążeniowe to rodzaj testów, które sprawdzają, jak aplikacja radzi sobie z dużym ruchem użytkowników lub przetwarzaniem dużych ilości danych. Celem testów obciążeniowych jest wykrycie potencjalnych wąskich gardeł, identyfikacja problemów z wydajnością oraz określenie maksymalnej przepustowości aplikacji. Testy te są kluczowe dla aplikacji o wysokim natężeniu ruchu, takich jak sklepy internetowe czy systemy bankowe, gdzie stabilność pod obciążeniem jest krytyczna dla sukcesu.

Pytanie 38

Na podstawie zamieszczonego fragmentu kodu można stwierdzić, że element o nazwie rysunek jest

Ilustracja do pytania
A. obiektem
B. konstruktorem
C. polem w klasie
D. metodą w klasie
Konstruktor to coś, co ma tę samą nazwę co klasa, ale nie jest tak jak reszta metod. Nie ma nawiasów, więc to nie jest metoda, tylko po prostu pole klasy, tak jak zmienna. Pamiętaj, obiekt to instancja klasy, a nie element kodu.

Pytanie 39

Jakie oprogramowanie służy jako przykład programu do komunikacji audio-wideo?

A. Slack
B. Notion
C. Microsoft Teams
D. Google Drive
Microsoft Teams to naprawdę fajne narzędzie do komunikacji. Łączy w sobie czat, wideo i audio, więc wszystko masz w jednym miejscu. Zostało stworzone przez Microsoft, żeby ułatwić współpracę w zespołach. To idealne, gdy trzeba prowadzić spotkania online z kilkoma osobami. Myślę, że to super rozwiązanie dla firm, które pracują zdalnie. Dzięki WebRTC jakość transmisji audio i wideo jest naprawdę wysoka. Można w nim organizować spotkania, webinary, a nawet stworzyć przestrzeń dla zespołów projektowych, gdzie można dzielić się plikami i prowadzić dyskusje. A jak jeszcze połączysz go z innymi aplikacjami Microsoft 365, jak OneNote czy SharePoint, to masz pełny zestaw do zarządzania projektami. Dobrze też, że Microsoft Teams dba o ochronę danych osobowych, więc jest bezpieczny dla różnych organizacji.

Pytanie 40

Jakie są główne różnice między środowiskiem RAD (Rapid Application Development) a klasycznymi IDE w odniesieniu do aplikacji mobilnych?

A. RAD nie obsługuje interfejsu użytkownika
B. RAD koncentruje się wyłącznie na procesie debugowania aplikacji
C. RAD pozwala na szybsze budowanie aplikacji dzięki narzędziom do wizualnego designu i automatycznego generowania kodu
D. RAD działa tylko na urządzeniach z systemem iOS
RAD (Rapid Application Development) umożliwia szybsze tworzenie aplikacji mobilnych dzięki narzędziom do wizualnego projektowania i automatycznego generowania kodu. RAD koncentruje się na iteracyjnym podejściu do rozwoju oprogramowania, w którym prototypy są budowane i testowane w krótkich cyklach, co pozwala na szybkie dostosowywanie aplikacji do zmieniających się wymagań użytkowników. W kontekście aplikacji mobilnych, RAD skraca czas tworzenia poprzez graficzne narzędzia do budowy interfejsów, gotowe komponenty oraz integrację z backendem. Frameworki RAD, takie jak OutSystems, Mendix czy Flutter, pozwalają na szybkie wdrażanie i modyfikację aplikacji mobilnych, co znacząco zwiększa efektywność programistów.