Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 22 października 2025 15:33
  • Data zakończenia: 22 października 2025 15:54

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

Wykorzystując jeden z dwóch zaprezentowanych sposobów inkrementacji w językach z rodziny C lub Java, można zauważyć, że

Ilustracja do pytania
A. drugi zapis nie jest zgodny ze składnią, co doprowadzi do błędów kompilacji
B. tylko przy użyciu pierwszego zapisu, zmienna a zostanie zwiększona o 1
C. wartość zmiennej b będzie wyższa po użyciu drugiego zapisu w porównaniu do pierwszego
D. bez względu na zastosowany sposób, w zmiennej b zawsze uzyskamy ten sam rezultat
Drugi zapis nie jest niezgodny ze składnią – zarówno preinkrementacja, jak i postinkrementacja są w pełni zgodne z zasadami języka i nie powodują błędów kompilacji. Niezależnie od wybranego zapisu, zmienna zostanie zwiększona, lecz kluczowa różnica polega na tym, kiedy dokładnie to następuje. Twierdzenie, że w każdym przypadku wynik będzie taki sam, jest błędne – różnice pojawiają się podczas użycia tych operatorów w bardziej złożonych wyrażeniach. Zapis pierwszy (preinkrementacja) nie jest jedynym sposobem na zwiększenie wartości zmiennej, chociaż w wielu sytuacjach jest preferowany ze względu na efektywność.

Pytanie 2

Które z poniższych nie jest wzorcem architektonicznym aplikacji mobilnych?

A. MVC (Model-View-Controller)
B. Linear Sequential Flow
C. MVVM (Model-View-ViewModel)
D. Clean Architecture
Wszystkie wymienione odpowiedzi, z wyjątkiem Linear Sequential Flow, są uznawane za wzorce architektoniczne aplikacji mobilnych. MVC, MVVM i Clean Architecture to powszechnie stosowane podejścia, które mają swoje unikalne cechy i zalety. MVC, czyli Model-View-Controller, dzieli aplikację na trzy główne komponenty, co ułatwia zarządzanie kodem oraz rozdzielanie logiki biznesowej od logiki prezentacji. Dzięki temu, programiści mogą pracować nad różnymi częściami aplikacji równolegle, co przyspiesza rozwój i ułatwia testowanie. MVVM, z kolei, jest często wykorzystywany w aplikacjach opartych na technologiach takich jak WPF czy Xamarin, gdzie wprowadza dwukierunkowe powiązania danych, co poprawia interaktywność i responsywność aplikacji. Clean Architecture jest bardziej złożonym podejściem, które sugeruje, aby aplikacja była podzielona na warstwy, co ułatwia jej rozwój, testowanie i utrzymanie. Wybierając niewłaściwy wzorzec, jak Linear Sequential Flow, programiści mogą napotkać problemy z elastycznością i możliwością dostosowania aplikacji do zmieniających się wymagań. Często takie podejście prowadzi do tzw. „technical debt”, gdzie trudności w wprowadzaniu zmian kumulują się, co w dłuższym okresie może być kosztowne i czasochłonne.

Pytanie 3

W jakim modelu Cyklu Życia Projektu Informatycznego znajduje się etap analizy ryzyka?

A. W kaskadowym
B. W spiralnym
C. W modelu Fry’ego
D. W modelu z prototypem
Model kaskadowy nie uwzględnia formalnej analizy ryzyka, a projekt jest realizowany liniowo. Model z prototypem koncentruje się na szybkim tworzeniu działających wersji produktu, ale analiza ryzyka nie jest jego istotnym elementem. Model Fry’ego to starszy model, który nie kładzie nacisku na analizę ryzyka w każdej fazie projektu.

Pytanie 4

Co to jest git rebase?

A. Metoda tworzenia kopii zapasowej repozytorium
B. Narzędzie do rozwiązywania konfliktów między plikami
C. Polecenie do tworzenia nowego repozytorium
D. Technika integracji zmian z jednej gałęzi do drugiej przez przeniesienie lub połączenie sekwencji commitów
Nieprawidłowe odpowiedzi wskazują na nieporozumienie dotyczące podstawowych funkcji narzędzi do kontroli wersji. Tworzenie nowego repozytorium to operacja rozpoczęcia nowego projektu, co jest zupełnie inną funkcjonalnością i nie ma związku z integracją zmian w istniejącym projekcie. Narzędzia do rozwiązywania konfliktów między plikami, takie jak merge, są stosowane w sytuacjach, gdy zmiany w dwóch gałęziach kolidują, ale nie dotyczą one bezpośrednio rebase, który ma na celu uporządkowanie i uproszczenie historii commitów. Metoda tworzenia kopii zapasowej repozytorium również nie ma związku z rebase, gdyż rebase nie jest narzędziem do zabezpieczania danych, lecz do przekształcania historii commitów. Często błędne rozumienie polecenia rebase wynika z mylenia go z innymi operacjami, takimi jak merge, które łączą zmiany dwóch gałęzi bez modyfikacji istniejącej historii. Zaleca się, aby deweloperzy dobrze zapoznali się z różnicami między tymi operacjami, aby skutecznie zarządzać historią projektu i unikać nieporozumień.

Pytanie 5

Który element HTML5 służy do wyświetlania zawartości video?

A. <video>
B. <media>
C. <film>
D. <play>
Odpowiedzi takie jak <media>, <film> czy <play> są nieprawidłowe, ponieważ nie istnieją jako standardowe elementy HTML5. <media> to dość szerokie pojęcie i nie odnosi się bezpośrednio do konkretnego tagu w HTML. W kontekście HTML5, nie ma elementu <media>, który mógłby służyć w sposób analogiczny do <video>. Z kolei <film> oraz <play> nie mają żadnego uznania w standardach HTML i nie pełnią roli w kontekście osadzania multimediów. Często błędne rozumienie tych terminów wynika z nieprzemyślanej analizy dostępnych możliwości HTML. Na przykład, <film> kojarzy się z filmami, ale w rzeczywistości nie ma takiego tagu, co może prowadzić do frustracji developerów. Podobnie <play> jest bardziej funkcją lub akcją, a nie elementem HTML. Współczesne standardy webowe jasno definiują, że do obsługi treści wideo należy używać elementu <video>, co jest zgodne z normami W3C. Ignorując te zasady, twórcy stron mogą napotkać problemy z kompatybilnością oraz wydajnością ich aplikacji. Warto zawsze opierać się na sprawdzonych dokumentacjach oraz standardach, aby unikać takich błędów i móc tworzyć wysokiej jakości produkty internetowe.

Pytanie 6

Które z wymienionych narzędzi nie znajduje zastosowania w tworzeniu aplikacji desktopowych?

A. Edytor graficzny
B. Kompilator
C. Przeglądarka internetowa
D. Debugger
Przeglądarka internetowa nie jest narzędziem wykorzystywanym bezpośrednio w procesie tworzenia aplikacji desktopowych. Chociaż może służyć do przeszukiwania dokumentacji lub testowania aplikacji webowych, jej funkcjonalność nie wspiera bezpośredniego tworzenia aplikacji desktopowych. W tworzeniu aplikacji desktopowych kluczowe są narzędzia takie jak kompilatory, debugery i edytory kodu. Kompilatory przekształcają kod źródłowy na kod wykonywalny, debugery pozwalają na śledzenie błędów, a edytory kodu umożliwiają pisanie i edytowanie aplikacji.

Pytanie 7

Który z algorytmów ma złożoność O(n2)?

A. Binary Search
B. Dijkstra
C. Merge Sort
D. Bubble Sort
Bubble Sort to algorytm o złożoności O(n²), co oznacza, że jego czas wykonania rośnie kwadratowo wraz ze wzrostem liczby elementów wejściowych. Algorytm porównuje sąsiadujące elementy i zamienia je miejscami, jeśli są w złej kolejności. Proces ten powtarza się wielokrotnie, aż do uzyskania pełnego posortowania tablicy. Ze względu na swoją prostotę, Bubble Sort jest często wykorzystywany do nauki podstaw algorytmiki, ale w praktyce rzadko stosuje się go do sortowania dużych zbiorów danych, ponieważ jest nieefektywny w porównaniu do bardziej zaawansowanych algorytmów, takich jak QuickSort czy Merge Sort.

Pytanie 8

Które z poniżej wymienionych afirmacji najtrafniej charakteryzuje proces interpretacji kodu?

A. Generowanie bibliotek dynamicznych dla programu
B. Tłumaczenie kodu źródłowego na język maszynowy w czasie rzeczywistym
C. Tworzenie pliku wykonywalnego
D. Analiza struktury kodu przed tłumaczeniem
Generowanie pliku wykonywalnego to proces związany z kompilacją, a nie interpretacją. Kompilator przekształca cały kod źródłowy na kod maszynowy przed uruchomieniem programu, co odróżnia go od interpretacji. Analiza struktury kodu przed tłumaczeniem odnosi się do statycznej analizy kodu, a nie jego wykonywania. Tworzenie bibliotek dynamicznych to etap łączenia (linkowania), który następuje po kompilacji lub interpretacji, ale nie jest częścią samej interpretacji kodu źródłowego.

Pytanie 9

Jakie jest źródło błędu w podanym kodzie przez programistę?

Ilustracja do pytania
A. inicjacja obiektu została błędnie zapisana
B. brak konstruktora w definicji klasy
C. argumenty konstruktora powinny być przekazane podczas inicjacji obiektu
D. pole autor jest niedostępne z tego poziomu
Brak konstruktora w definicji klasy nie jest błędem – jeśli konstruktor nie zostanie jawnie zdefiniowany, kompilator wygeneruje domyślny konstruktor bez parametrów. Błędna inicjalizacja obiektu lub brak argumentów w wywołaniu konstruktora mogą prowadzić do błędów kompilacji, ale nie mają związku z dostępem do prywatnych pól klasy. Problem polega na naruszeniu zasad dostępu do pól prywatnych, co jest rozwiązane poprzez odpowiednie mechanizmy dostępowe i stosowanie konwencji programistycznych, takich jak wzorzec projektowy getter-setter.

Pytanie 10

Jaką funkcję pełnią mechanizmy ciasteczek w aplikacjach internetowych?

A. Do generowania dynamicznych interfejsów dla użytkowników
B. Do zapisywania danych użytkownika w przeglądarce
C. Do przechowywania informacji w bazie danych
D. Do zapisywania danych użytkownika na serwerze
Mechanizm ciasteczek (cookies) w aplikacjach webowych służy do przechowywania danych użytkownika bezpośrednio w przeglądarce. Ciasteczka mogą przechowywać różnego rodzaju informacje, takie jak preferencje językowe, identyfikatory sesji czy dane logowania, co pozwala na personalizację doświadczenia użytkownika oraz śledzenie jego aktywności na stronie. Dzięki ciasteczkom aplikacje webowe mogą zapamiętać użytkownika i dostosować treści do jego potrzeb przy kolejnych wizytach. Cookies są nieodłącznym elementem zarządzania stanem w aplikacjach stateless, takich jak te oparte na protokole HTTP. Mogą być one również wykorzystywane w systemach reklamowych i analitycznych do monitorowania zachowań użytkowników. Prawidłowe zarządzanie ciasteczkami i stosowanie odpowiednich polityk prywatności są kluczowe dla zgodności z przepisami RODO oraz regulacjami dotyczącymi ochrony danych osobowych.

Pytanie 11

Co to jest lazy loading w kontekście aplikacji webowych?

A. Metoda kompresji obrazów na stronach internetowych
B. Technika przechowywania danych w pamięci podręcznej przeglądarki
C. Narzędzie do testowania wydajności ładowania strony
D. Strategia optymalizacji, która opóźnia ładowanie zasobów do momentu, gdy są faktycznie potrzebne
Lazy loading to technika optymalizacji wydajności, która polega na opóźnieniu ładowania zasobów, takich jak obrazy, filmy czy skrypty, do momentu, gdy są one rzeczywiście potrzebne. Dzięki temu zwiększa się szybkość ładowania strony, co jest szczególnie ważne w kontekście doświadczeń użytkowników i SEO. Przykładem zastosowania lazy loading może być strona z długą listą produktów, gdzie obrazy dla produktów znajdujących się poza ekranem są ładowane dopiero, gdy użytkownik przewinie stronę w dół. Praktyka ta nie tylko poprawia czas reakcji strony, lecz także redukuje zużycie pasma, co jest korzystne dla użytkowników na urządzeniach mobilnych. Stosując lazy loading, warto pamiętać o dobrych praktykach, takich jak użycie odpowiednich bibliotek JavaScript, które wspierają tę technikę, oraz zapewnienie odpowiednich fallbacków dla starszych przeglądarek. Wprowadzenie lazy loading jest zgodne z zaleceniami optymalizacji wydajności publikowanymi przez Google, które podkreślają znaczenie ładowania tylko niezbędnych zasobów i poprawę UX.

Pytanie 12

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 13

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

A. sizeof()
B. free()
C. malloc()
D. delete[]
Funkcja 'free()' służy do zwalniania pamięci zaalokowanej dynamicznie przez 'malloc()', ale nie alokuje pamięci. Funkcja 'sizeof()' zwraca rozmiar typu lub obiektu, ale nie alokuje pamięci dynamicznie – jest wykorzystywana do określania ilości pamięci potrzebnej dla danego typu. 'Delete[]' jest operatorem w C++, który usuwa tablicę dynamicznie zaalokowaną przy użyciu 'new[]', ale nie alokuje pamięci – jest to mechanizm zwalniania pamięci, a nie jej przydzielania.

Pytanie 14

Który z wymienionych poniżej przykładów ilustruje użycie systemu informatycznego w działalności gospodarczej?

A. System nawigacji GPS
B. System sterowania ruchem miejskim
C. System wentylacji
D. E-sklep
E-sklep, jako przykład zastosowania systemu informatycznego w działalności biznesowej, reprezentuje złożony ekosystem technologiczny, który umożliwia przedsiębiorstwom sprzedaż produktów i usług w Internecie. E-sklepy wykorzystują różnorodne technologie, takie jak systemy zarządzania treścią (CMS), bazy danych oraz systemy płatności, co pozwala na efektywne zarządzanie ofertą, realizację zamówień oraz obsługę klienta. Przykładem może być platforma Shopify, która oferuje funkcjonalności umożliwiające łatwe tworzenie i zarządzanie sklepem online. E-sklepy są zgodne z różnymi standardami, takimi jak PCI DSS, które zapewniają bezpieczeństwo transakcji płatniczych. Dzięki integracji z systemami analitycznymi, właściciele e-sklepów mogą śledzić zachowania użytkowników, co pozwala na optymalizację oferty oraz strategii marketingowej. Tego rodzaju rozwiązania informatyczne fundamentalnie zmieniają sposób, w jaki przedsiębiorstwa prowadzą działalność i komunikują się z klientami, czyniąc procesy bardziej wydajnymi i zautomatyzowanymi.

Pytanie 15

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. interfejs użytkownika oraz logika aplikacji są oddzielone
C. kontrolki i widoki interfejsu użytkownika są zintegrowane z logiką aplikacji
D. interfejs użytkownika i logika aplikacji są umieszczone w jednym pliku
Pierwsza odpowiedź sugeruje, że interfejs użytkownika oraz logika aplikacji są kodowane w jednym pliku. Taki sposób organizacji kodu prowadzi do chaotyczności oraz trudności w zarządzaniu projektem. Łączenie tych dwóch warstw w jednym miejscu nie tylko utrudnia testowanie poszczególnych komponentów, ale również zwiększa ryzyko wprowadzenia błędów, gdyż zmiany w jednej części mogą niezamierzenie wpływać na drugą. Druga odpowiedź wskazuje, że kontrolki i widoki interfejsu użytkownika są zaszyte w logice aplikacji, co jest również sprzeczne z ideą MVVM. Kiedy interfejs jest bezpośrednio związany z logiką, programiści nie mogą łatwo modyfikować lub wymieniać elementów UI, co ogranicza elastyczność aplikacji. Czwarta odpowiedź twierdzi, że w aplikacji występuje tylko interfejs użytkownika, co jest niepoprawne, ponieważ każda dobrze zaprojektowana aplikacja wymaga zarówno logiki, jak i interfejsu do funkcjonowania. W kontekście MVVM, brak modelu i ViewModel prowadzi do zastosowania jedynie warstwy prezentacji, co jest nieefektywne i niezgodne z najlepszymi praktykami programistycznymi, które promują separację odpowiedzialności i modularność.

Pytanie 16

Technika konstruowania algorytmu polegająca na rozbiciu na dwa lub więcej mniejszych podproblemów, aż do momentu, gdy ich części będą wystarczająco proste do bezpośredniego rozwiązania, nosi nazwę:

A. dziel i zwyciężaj
B. heurystycznej
C. komiwojażera
D. najkrótszej trasy
Metoda 'dziel i zwyciężaj' polega na podziale problemu na mniejsze podproblemy, aż do osiągnięcia najprostszych przypadków, które można łatwo rozwiązać. To podejście jest stosowane w algorytmach takich jak Merge Sort czy QuickSort.

Pytanie 17

Który element dokumentacji technicznej jest istotny dla ustalenia metod ochrony danych w aplikacji?

A. Harmonogram zarządzania zadaniami
B. Koncepcja interfejsu użytkownika
C. System ochrony aplikacji
D. Opis architektury klient-serwer
System zabezpieczeń aplikacji to kluczowy element specyfikacji technicznej, który określa metody ochrony danych. Obejmuje on takie elementy jak szyfrowanie, kontrola dostępu, uwierzytelnianie oraz autoryzacja. Prawidłowo zaprojektowany system zabezpieczeń zapewnia ochronę przed atakami hakerskimi, nieautoryzowanym dostępem oraz utratą danych. W aplikacjach webowych i mobilnych systemy zabezpieczeń obejmują również techniki takie jak dwuskładnikowe uwierzytelnianie (2FA), zabezpieczenia API oraz regularne audyty bezpieczeństwa. Implementacja solidnych mechanizmów zabezpieczeń jest niezbędna, aby zapewnić zgodność z regulacjami prawnymi i zyskać zaufanie użytkowników.

Pytanie 18

W zestawieniu zaprezentowano doświadczenie zawodowe pracowników firmy IT. Do stworzenia aplikacji front-end powinien/powinna zostać wyznaczony/a

PracownikZnajomość technologii lub programów
AnnaInkscape, Corel Draw
KrzysztofAngular
PatrykHTML, CSS
EwaDjango, .NET
A. Patryk
B. Anna
C. Krzysztof
D. Ewa
Anna zna programy graficzne jak Inkscape czy Corel Draw, które są spoko do tworzenia grafiki wektorowej, ale nie nadają się do budowy aplikacji front-end. Te narzędzia bardziej są w rękach grafików, którzy robią ilustracje i projekty wizualne, więc to nie do końca pasuje do front-endu, gdzie liczy się programowanie interakcji i logiki. Patryk ogarnia HTML i CSS, co jest podstawą do stawiania stron, ale niestety to nie wystarczy do budowy nowoczesnych aplikacji front-end. Musi znasz również frameworki JavaScript, takie jak Angular, React czy Vue.js, żeby aplikacja była interaktywna i by dało się z danymi lepiej zarządzać. Ewa ma umiejętności w Django i .NET, które są używane po stronie serwera. Django to framework w Pythonie, a .NET obsługuje różne języki, w tym C#. Te technologie są super do backendu, ale do front-endu już nie bardzo. Dlatego Ewa może być świetna w budowie serwerowej części aplikacji, ale nie w tworzeniu interfejsu użytkownika. Zrozumienie różnic między backendem a frontendem jest kluczowe, bo jeśli wybierzesz niewłaściwą osobę do zadania, mogą być kłopoty z integracją i wydajnością aplikacji. Dlatego ważne, żeby do front-endu był ktoś z odpowiednim doświadczeniem, tak jak Krzysztof, który zna Angulara.

Pytanie 19

Jakie informacje mogą być zapisywane w cookies przeglądarki?

A. Prywatne dane użytkownika, na przykład hasła
B. Dane przechowywane w systemie baz danych
C. Preferencje użytkownika, takie jak język lub styl strony
D. Kod źródłowy aplikacji internetowej
Preferencje użytkownika, takie jak język strony, motyw kolorystyczny lub preferencje dotyczące układu, są typowymi danymi przechowywanymi w ciasteczkach przeglądarki. Mechanizm ciasteczek pozwala na personalizację doświadczenia użytkownika i jest szeroko stosowany w aplikacjach webowych w celu dostosowania interfejsu do indywidualnych potrzeb. Cookies umożliwiają także zapamiętywanie sesji użytkownika, co pozwala uniknąć konieczności wielokrotnego logowania. Informacje te są przechowywane lokalnie w przeglądarce użytkownika i mogą być odczytywane przez aplikację podczas każdej wizyty. Stosowanie ciasteczek zgodnie z przepisami, takimi jak RODO (GDPR), wymaga informowania użytkownika o ich przeznaczeniu oraz uzyskiwania jego zgody na ich przechowywanie, co zapewnia transparentność i zgodność z prawem.

Pytanie 20

W wyniku realizacji zaprezentowanego kodu na ekranie pojawią się

Ilustracja do pytania
A. elementy z indeksów tablicy, które są podzielne przez 3
B. wszystkie elementy tablicy, które są wielokrotnością 3
C. wszystkie elementy tablicy, które mają wartość nieparzystą
D. elementy tablicy o indeksach: 1, 2, 4, 5, 7, 8
Kod pokazuje elementy tablicy, które mają konkretne indeksy, takie jak 1, 2, 4, 5, 7 i 8. To efekt przechodzenia przez tablicę i wybierania tylko tych elementów, które spełniają określone warunki. Filtrowanie tablic w ten sposób jest dość powszechne w programowaniu, więc to całkiem popularna technika.

Pytanie 21

Co to jest Docker?

A. Narzędzie do automatyzacji procesu tworzenia dokumentacji
B. Platforma do tworzenia, wdrażania i uruchamiania aplikacji w kontenerach
C. System zarządzania bazami danych
D. Framework JavaScript do tworzenia aplikacji mobilnych
Chociaż odpowiedzi wskazujące na system zarządzania bazami danych, framework JavaScript oraz narzędzie do automatyzacji dokumentacji mogą wydawać się na pierwszy rzut oka przekonywujące, to w rzeczywistości są one dalekie od prawdy. System zarządzania bazami danych odnosi się do oprogramowania, które służy do przechowywania i zarządzania danymi, jak MySQL czy PostgreSQL, ale nie ma nic wspólnego z konteneryzacją aplikacji. Framework JavaScript, jak React czy Angular, jest narzędziem do budowania interfejsów użytkownika, a nie do zarządzania środowiskiem uruchomieniowym aplikacji. Z kolei narzędzia do automatyzacji dokumentacji, takie jak Sphinx czy JSDoc, koncentrują się na generowaniu dokumentacji technicznej z kodu źródłowego, co również nie ma związku z konteneryzacją. Wiele osób myli te pojęcia z Dockerem przez brak znajomości architektury aplikacji oraz sposobu, w jaki są one wdrażane w nowoczesnym środowisku IT. Konteneryzacja pozwala na izolację aplikacji i ich zależności, co jest kluczowe dla zapewnienia stabilności i spójności w różnych środowiskach, co nie jest celem wspomnianych odpowiedzi. Aby lepiej zrozumieć funkcję Dockera, warto zaznajomić się z koncepcjami związanymi z wirtualizacją oraz zarządzaniem środowiskami deweloperskimi, co pomoże uniknąć tego typu nieporozumień w przyszłości.

Pytanie 22

Jakie są różnice między konstruktorem a zwykłą metodą w klasie?

A. Konstruktor zawsze nosi tę samą nazwę co klasa i nie zwraca wartości
B. Konstruktor powinien zwracać jakąś wartość
C. Konstruktor jest uruchamiany jedynie przez destruktor
D. Konstruktor można wywołać bez konieczności tworzenia obiektu
Konstruktor nie zwraca wartości, w przeciwieństwie do zwykłych metod klasy, które mogą zwracać typy danych (`int`, `float`, `string`). Konstruktor nie może być wywoływany bez tworzenia obiektu – jest to mechanizm związany wyłącznie z procesem inicjalizacji obiektu. Destruktor, a nie konstruktor, jest wywoływany po zakończeniu życia obiektu w celu zwolnienia zasobów. Konstruktor jest pierwszą metodą, która działa podczas tworzenia obiektu, co odróżnia go od destruktora, który działa na końcu życia obiektu.

Pytanie 23

Zaproponowany fragment kodu w języku Java wypełnia tablicę elementami:

Ilustracja do pytania
A. 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
B. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
C. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
D. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Kod w języku Java wypełnia tablicę liczbami parzystymi od 2 do 20. W pętli inkrementacja wynosi 2, co skutkuje dodawaniem kolejnych parzystych liczb. To popularne rozwiązanie przy iteracji po wartościach, które mają spełniać określone warunki, np. podzielność przez 2.

Pytanie 24

Wskaż fragment kodu, który stanowi realizację przedstawionego algorytmu w języku C++

Ilustracja do pytania
A. kod 2
B. kod 1
C. kod 3
D. kod 4
Jak się przyjrzysz innym opcjom, można zauważyć sporo problemów, które mogą wprowadzać w błąd przy implementacji algorytmu związanym z schematem blokowym. Opcja Kod 2 stosuje instrukcję if-else, co już jest dużym błędem. W związku z tym operacje dodawania i zwiększania zmiennej `i` wykonają się tylko raz, jeśli początkowy warunek jest spełniony. Z tego wynika brak powtarzalności, co ważne w algorytmach, gdzie trzeba coś robić wielokrotnie, aż warunek będzie spełniony. Z kolei Kod 3 używa pętli for, która lepiej nadaje się do przypadków, gdzie liczba powtórzeń jest znana. Ale tutaj zmienna `i` jest źle umiejscowiona i nie pasuje do logiki algorytmu. Dodatkowo, sama konstrukcja pętli for nie pokazuje, że musimy coś zrobić przynajmniej raz, zanim sprawdzimy warunek. Kod 4 chociaż używa pętli while, to i tak nie spełnia warunku, że operacja musi się wykonać przynajmniej raz przed sprawdzeniem tego warunku. Pętla while najpierw weryfikuje warunek, więc jeśli na początku jest nieprawdziwy, to nie wejdzie w żadną iterację, co jest sprzeczne z logiką algorytmu. Dlatego tylko Kod 1 jest naprawdę zgodny z wymaganiami algorytmu i może być traktowany jako poprawna implementacja według tego schematu.

Pytanie 25

Zaprezentowany fragment kodu w języku C# tworzy hasło. Wskaż zdanie PRAWDZIWE dotyczące charakterystyki tego hasła:

Ilustracja do pytania
A. Może zawierać małe i wielkie litery oraz cyfry
B. Może zawierać zarówno małe, jak i wielkie litery, cyfry oraz symbole
C. Jest maksymalnie 7-znakowe, co wynika z wartości zmiennej i
D. Ma co najmniej 8 znaków oraz zawiera małe i wielkie litery oraz cyfry
Niektóre odpowiedzi błędnie sugerują, że hasło może zawierać mniej niż 8 znaków lub ogranicza się do liter i cyfr, co zmniejsza poziom bezpieczeństwa. Symbole dodatkowe i różna długość haseł wpływają na jego siłę, ale w tym przypadku skupiamy się na podstawowych zasadach budowy haseł.

Pytanie 26

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

A. Testy funkcjonalne
B. Testy obciążeniowe
C. Testy bezpieczeństwa
D. Testy zgodności
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 27

Jakie cechy powinien posiadać skuteczny negocjator?

A. lojalność, nieśmiałość, uczciwość
B. asertywność, pesymizm, buta
C. intuicja, cierpliwość, asertywność
D. dobra reputacja, przekora, porywczość
Cechy dobrego negocjatora to intuicja, cierpliwość i asertywność. Negocjator powinien umieć ocenić sytuację, przewidzieć reakcje drugiej strony i stanowczo, lecz spokojnie dążyć do celu. Te cechy pomagają budować relacje, znajdować kompromisy i skutecznie rozwiązywać konflikty, co jest kluczowe w biznesie i codziennych interakcjach.

Pytanie 28

Który z objawów może sugerować zawał serca?

A. Ból brzucha po spożyciu posiłku
B. Intensywny ból w klatce piersiowej promieniujący do lewej ręki
C. Gorączka oraz dreszcze
D. Spadek nastroju
Silny ból w klatce piersiowej promieniujący do lewej ręki to klasyczny objaw zawału serca (ostrego zespołu wieńcowego). Ból ten często pojawia się nagle, jest intensywny, gniotący lub piekący i może towarzyszyć mu duszność, zawroty głowy, zimne poty i nudności. Zawał serca wynika z zablokowania jednej z tętnic wieńcowych, co prowadzi do niedokrwienia mięśnia sercowego. Szybka reakcja i wezwanie pomocy medycznej mogą uratować życie i zminimalizować uszkodzenia serca. Każda minuta jest kluczowa – nie należy czekać na ustąpienie objawów, lecz natychmiast zadzwonić na numer alarmowy 112 lub udać się do najbliższego szpitala.

Pytanie 29

Jaką złożoność obliczeniową posiada podany algorytm?

Ilustracja do pytania
A. O(n2)
B. O(n)
C. O(n log n)
D. O(1)
O(n log n) – to typowa złożoność dla algorytmów sortowania, na przykład quicksort czy mergesort. O(1) – to oznacza, że algorytm działa w stałym czasie, niezależnie od wielkości danych, co tu nie pasuje. O(n^2) – to z kolei złożoność dla algorytmów, które mają kwadratową wydajność, jak na przykład sortowanie bąbelkowe, ale to nie jest to, czego szukamy w tym przypadku.

Pytanie 30

Zestaw operatorów, który został przedstawiony, należy do kategorii operatorów

Ilustracja do pytania
A. porównawczymi
B. logicznymi
C. przypisania
D. arytmetycznych
Przedstawiony zbiór operatorów należy do grupy operatorów arytmetycznych, które wykonują podstawowe operacje matematyczne, takie jak dodawanie, odejmowanie, mnożenie i dzielenie. Są one podstawą obliczeń w większości języków programowania.

Pytanie 31

Algorytmu Euklidesa, przedstawionego na schemacie, należy użyć do obliczenia.

Ilustracja do pytania
A. najmniejszej liczby pierwszej w danym zakresie
B. Największego Wspólnego Dzielnika
C. największego elementu w zbiorze liczb
D. Najmniejszej Wspólnej Wielokrotności
Algorytm Euklidesa to klasyczna metoda stosowana do wyznaczania największego wspólnego dzielnika (NWD) dwóch liczb całkowitych. Działa na zasadzie iteracyjnego odejmowania mniejszej liczby od większej aż do momentu, gdy obie liczby staną się równe. Wtedy ta wspólna wartość jest największym wspólnym dzielnikiem. Algorytm jest bardzo efektywny, nawet dla dużych liczb, co czyni go powszechnie stosowanym w praktycznych zastosowaniach, takich jak kryptografia czy optymalizacja komputerowa. W kryptografii, szczególnie w systemach kluczy publicznych, takich jak RSA, obliczanie NWD jest kluczowe dla generowania kluczy. Algorytm Euklidesa jest też podstawą dla bardziej zaawansowanych algorytmów, takich jak rozszerzony algorytm Euklidesa, który umożliwia obliczenie również współczynników liczbowych używanych w teoretycznych dowodach matematycznych. Jego implemetacja jest również często wykorzystywana w bibliotekach matematycznych języków programowania, co świadczy o jego uniwersalności i znaczeniu w dzisiejszej technologii.

Pytanie 32

Jakie są kluczowe etapy resuscytacji krążeniowo-oddechowej?

A. 30 wdechów ratowniczych bez uciśnięć
B. 20 uciśnięć klatki piersiowej na przemian z 5 wdechami ratowniczymi
C. 30 uciśnięć klatki piersiowej na przemian z 2 wdechami ratowniczymi
D. 10 uciśnięć klatki piersiowej bez wdechów
30 uciśnięć klatki piersiowej na przemian z 2 wdechami ratowniczymi to standardowy protokół resuscytacji krążeniowo-oddechowej (RKO) zgodny z wytycznymi Europejskiej Rady Resuscytacji (ERC). Uciśnięcia wykonywane są na głębokość około 5-6 cm w tempie 100-120 uciśnięć na minutę. Po 30 uciśnięciach wykonuje się 2 wdechy ratownicze, które powinny być wykonywane z odpowiednią siłą, aby unieść klatkę piersiową poszkodowanego. Taka sekwencja jest podstawą pierwszej pomocy i może uratować życie osoby, u której doszło do zatrzymania akcji serca. Resuscytację należy kontynuować do momentu przybycia służb ratunkowych lub odzyskania przytomności przez poszkodowanego.

Pytanie 33

Które z poniższych NIE jest typem wartości zwracanej przez funkcję w języku JavaScript?

A. Object
B. Undefined
C. Method
D. Number
W języku JavaScript funkcje mogą zwracać różne typy wartości, takie jak obiekty, liczby czy typ undefined. Wśród wymienionych opcji, 'Method' nie jest typem wartości zwracanej przez funkcję. W rzeczywistości, metoda w JavaScript to funkcja przypisana do obiektu. Jeżeli definiujemy funkcję wewnątrz obiektu, to możemy ją nazwać metodą tego obiektu, ale nie jest to typ wartości. Przykładowo, jeżeli mamy obiekt o nazwie 'person' i metodę 'greet', która zwraca powitanie: const person = { name: 'Jan', greet: function() { return 'Cześć, ' + this.name; } }; W powyższym przypadku, 'greet' jest metodą, ale jej wartością zwracaną jest typ string, co jest typowym zachowaniem funkcji. Dobrą praktyką jest zrozumienie różnicy między funkcjami a ich zastosowaniami w obiektach, co pozwala na lepsze projektowanie kodu oraz ukierunkowanie na zasady programowania obiektowego, które są kluczowe w JavaScript.

Pytanie 34

Zademonstrowana pętla wykorzystuje obiekt random do

Ilustracja do pytania
A. wielokrotnego generowania liczby, aby stworzyć ciąg z liczb pseudolosowych
B. jednorazowego wylosowania znaku z określonego zestawu znaków
C. stworzenia losowego napisu o długości 8 znaków składającego się z liter
D. uzupełnienia tablicy danymi w postaci liczb pseudolosowych
Wielokrotne losowanie – Dotyczy sytuacji, gdy generowane jest wiele liczb, co nie jest zgodne z kodem. Wypełnienie tablicy – Kod dotyczy jednego znaku, a nie tablicy. Generowanie napisu – Pętla mogłaby generować ciąg znaków, ale pytanie dotyczy pojedynczego znaku.

Pytanie 35

Która metoda tablicy w JavaScript dodaje nowy element na końcu tablicy?

A. unshift()
B. pop()
C. push()
D. shift()
Metody pop(), shift() oraz unshift() mają różne funkcje, które nie są związane z dodawaniem elementów na końcu tablicy, co prowadzi do istotnych nieporozumień. Metoda pop() usuwa ostatni element z tablicy, co jest sprzeczne z ideą dodawania nowego elementu. Użytkownicy mogą mylnie sądzić, że pop() może być używana do dodawania elementów, ponieważ zmienia stan tablicy, jednak efektem jej działania jest redukcja liczby elementów, co w wielu przypadkach może prowadzić do utraty istotnych danych. Z kolei shift() usuwa pierwszy element z tablicy, co również nie jest związane z dodawaniem. Użytkownicy mogą mylić shift() z metodą dodawania, co jest błędne z perspektywy funkcjonalności tablic w JavaScript. Metoda unshift() dodaje nowe elementy na początku tablicy, co jest odwrotnością tego, czego szukamy w pytaniu. Typowe błędy myślowe obejmują myślenie o dodawaniu elementów do tablicy jako o operacji, która może być wykonywana w dowolnej formie, ignorując specyfikę działania poszczególnych metod. Właściwe zrozumienie funkcji tych metod jest kluczowe do skutecznego wykorzystania tablic w JavaScript i może znacząco wpłynąć na skuteczność kodu oraz jakość napisanych rozwiązań.

Pytanie 36

Jakie są cechy biblioteki statycznej w zestawieniu z dynamiczną?

A. Nie potrzebuje obecności pliku wykonywalnego
B. Jest wczytywana do pamięci podczas działania aplikacji
C. Może być zmieniana w czasie działania programu
D. Zostaje dodana do pliku wykonywalnego w trakcie kompilacji
Biblioteka statyczna jest dołączana do pliku wykonywalnego podczas procesu kompilacji. Oznacza to, że jej kod staje się integralną częścią aplikacji, co eliminuje konieczność ładowania jej w czasie wykonywania programu. Tego typu biblioteki charakteryzują się większym rozmiarem pliku wynikowego, ale oferują wyższą wydajność, ponieważ wszystkie funkcje są dostępne lokalnie, bez dodatkowych operacji ładowania. Przykładami bibliotek statycznych są pliki .lib w C/C++.

Pytanie 37

Jakie czynniki powinny być brane pod uwagę podczas organizacji zasobów ludzkich w projekcie?

A. Jedynie dostępność technologii
B. Budżet projektu, bez uwzględnienia kompetencji zespołu
C. Umiejętności oraz doświadczenie członków zespołu
D. Wyłącznie techniczne wymagania projektu
Podczas planowania zasobów ludzkich w projekcie kluczowe jest uwzględnienie umiejętności i doświadczenia członków zespołu. Odpowiednie dopasowanie kompetencji do wymagań projektu ma ogromny wpływ na jakość i tempo realizacji zadań. Zespół o różnorodnych umiejętnościach jest bardziej elastyczny i lepiej radzi sobie z napotkanymi wyzwaniami. Analiza umiejętności pozwala na efektywne przydzielanie zadań, co zwiększa produktywność i redukuje ryzyko opóźnień.

Pytanie 38

W jaki sposób procesor nawiązuje komunikację z pamięcią podręczną (cache)?

A. Bezpośrednio, omijając mostki systemowe
B. Za pomocą systemu przerwań
C. Używając wyłącznie pamięci RAM
D. Poprzez linie danych w magistrali systemowej
Komunikacja między procesorem a pamięcią podręczną nie odbywa się poprzez system przerwań, ponieważ przerwania są mechanizmem umożliwiającym procesorowi reagowanie na zdarzenia zewnętrzne, a nie transfer danych między pamięcią a procesorem. Przerwania są używane głównie do komunikacji z urządzeniami peryferyjnymi, które informują procesor o konieczności przetworzenia danych, a nie do bezpośredniej interakcji z pamięcią podręczną. Ponadto stwierdzenie, że procesor komunikuje się z pamięcią podręczną, wykorzystując jedynie pamięć RAM, jest błędne, ponieważ pamięć RAM i pamięć podręczna to różne typy pamięci, o różnych szybkościach i funkcjach. Pamięć podręczna jest znacznie szybsza i działa jako pośrednik między procesorem a wolniejszą pamięcią RAM, co oznacza, że procesor nie korzysta z pamięci RAM do komunikacji z pamięcią podręczną. Warto również zaznaczyć, że komunikacja bezpośrednia z pominięciem mostków systemowych jest niepraktyczna i technicznie niemożliwa. Mostki systemowe są niezbędne do zarządzania ruchem danych między różnymi komponentami w architekturze komputerowej, a ich pominięcie mogłoby prowadzić do chaosu w komunikacji oraz znacznie obniżyć wydajność systemu.

Pytanie 39

Diagram Gantta, który został zaprezentowany, odnosi się do projektu IT. Przyjmując, że każdy członek zespołu posiada odpowiednie kompetencje do realizacji każdego z zadań, a każde zadanie może być przypisane tylko jednej osobie, która poświęca na nie pełen dzień pracy, to minimalna liczba osób w zespole wynosi

Ilustracja do pytania
A. 2 osoby
B. 4 osoby
C. 1 osobę
D. 5 osób
W przypadku planowania zadań projektowych kluczowe jest zrozumienie jak zadania mogą się nakładać w czasie co jest istotą diagramów Gantta. Wybór błędnej odpowiedzi często wynika z niedostatecznej analizy informacji przedstawionych na wykresie. Zadania można realizować równolegle co oznacza że kluczowe jest zidentyfikowanie które z nich wymagają jednoczesnego zaangażowania pracowników. Wybór odpowiedzi że potrzeba jednej osoby jest błędny ponieważ w danym tygodniu istnieją momenty gdzie dwa zadania nakładają się co wyklucza możliwość ich realizacji przez jedną osobę. Podobnie odpowiedź że potrzeba pięciu osób nie uwzględnia efektywnego przydzielania zasobów co prowadzi do niepotrzebnego zwiększenia kosztów i nadmiernej liczby pracowników. Odpowiedź trzy osoby jest również niepoprawna ponieważ ignoruje możliwość efektywnego wykorzystania dostępnych zasobów przez rotację. Najczęstszym błędem jest nieuwzględnienie że zadania można efektywnie planować i przypisywać tak aby maksymalnie wykorzystywać zasoby czasowe i ludzkie co jest podstawą w zarządzaniu projektami informatycznymi. Rozumienie tych zasad jest kluczowe dla skutecznego planowania projektów i zarządzania zespołami co jest istotnym elementem profesjonalnej praktyki w branży IT. Umiejętność prawidłowego analizowania takich informacji jest nieoceniona w praktyce zawodowej.

Pytanie 40

Aby tworzyć aplikacje desktopowe w języku Java, można wybrać jedno z poniższych środowisk

A. NetBeans
B. Ms Visual Studio
C. SharpDevelop
D. PyCharm
NetBeans to środowisko IDE dedykowane do programowania aplikacji desktopowych w języku Java. Obsługuje różne projekty, w tym aplikacje graficzne, serwisy sieciowe i narzędzia analityczne.