Wyniki egzaminu

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

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

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

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

Ilustracja do pytania
A. 115
B. 0
C. 108
D. 73
Liczba 108 może wynikać z błędnej operacji lub niepełnego obliczenia. Wynik 73 sugeruje pominięcie części danych lub niepełne przetworzenie wejściowych wartości. Wynik 0 oznacza, że operacja mogła zakończyć się błędem lub algorytm nie przeprowadził żadnych operacji na danych wejściowych.

Pytanie 2

Co to jest wzorzec projektowy Singleton?

A. Metoda zabezpieczania aplikacji przed atakami typu SQL Injection
B. Technika optymalizacji kodu poprzez minimalizację liczby obiektów
C. Wzorzec do zarządzania komunikacją między komponentami aplikacji
D. Wzorzec zapewniający istnienie tylko jednej instancji klasy w całej aplikacji
Wzorzec projektowy Singleton to jeden z fundamentalnych wzorców, który zapewnia, że w trakcie działania aplikacji istnieje tylko jedna instancja danej klasy. Przydaje się to w sytuacjach, gdy musimy zarządzać zasobami, które nie powinny być wielokrotnie instancjonowane, na przykład połączenia z bazą danych czy logika globalnych ustawień. Implementacja tego wzorca zakłada zastosowanie prywatnego konstruktora oraz metody statycznej, która odpowiada za utworzenie instancji. Przykładem zastosowania Singletona mogą być klasy zarządzające konfiguracją aplikacji, gdzie zmiana w jednym miejscu może wpłynąć na cały system. Często jest on krytykowany za to, że wprowadza globalny stan, co może prowadzić do trudności w testowaniu i zarządzaniu stanem aplikacji. Dlatego ważne jest, aby stosować go świadomie i tam, gdzie rzeczywiście przynosi korzyści, zgodnie z najlepszymi praktykami inżynieryjnymi.

Pytanie 3

Co to jest ESLint?

A. System zarządzania zależnościami w projektach Node.js
B. Framework do testowania aplikacji napisanych w JavaScript
C. Kompilator kodu ECMAScript do starszych wersji JavaScript
D. Narzędzie do statycznej analizy kodu i identyfikacji problemów w kodzie JavaScript
Wybór odpowiedzi, która nie odnosi się do statycznej analizy kodu, wskazuje na pewne nieporozumienia dotyczące roli różnych narzędzi w ekosystemie JavaScript. Na przykład, kompilatory kodu ECMAScript, które są używane do przekształcania nowoczesnego JavaScriptu na jego wcześniejsze wersje, nie są odpowiednikiem narzędzi analitycznych, takich jak ESLint. Kompilacja to proces, który syntaktycznie przekształca kod, co odgrywa kluczową rolę w utrzymaniu kompatybilności z różnymi środowiskami wykonawczymi, ale nie pomaga w ocenie jakości i stylu kodu. Również frameworks do testowania aplikacji, takie jak Jest czy Mocha, służą do weryfikacji poprawności działania kodu poprzez pisanie testów jednostkowych, a nie do analizy samego kodu. Z drugiej strony, systemy zarządzania zależnościami, takie jak npm czy Yarn, koncentrują się na kontroli i instalacji zewnętrznych bibliotek wykorzystywanych w projektach, co również jest odrębnym zagadnieniem od analizy statycznej. Często można natknąć się na błędne przekonanie, że wszystkie te technologie mają podobny cel, co prowadzi do mylnego postrzegania ich funkcji. W rzeczywistości, każde z tych narzędzi pełni swoją unikalną rolę i zrozumienie ich specyfiki jest kluczowe dla efektywnego korzystania z ekosystemu JavaScript. Właściwe podejście do wyboru narzędzi pomaga w opracowaniu bardziej wydajnych, czytelnych i łatwych w utrzymaniu aplikacji.

Pytanie 4

Która z dokumentacji funkcji odpowiada przedstawionemu kodowi źródłowemu?

Ilustracja do pytania
A. Dokumentacja 3
B. Dokumentacja 4
C. Dokumentacja 1
D. Dokumentacja 2
Dokumentacja 2 jest prawidłowa i precyzyjnie opisuje funkcję, jej parametry oraz wartość zwracaną. Zgodność dokumentacji z kodem jest kluczowa dla późniejszego utrzymania oraz rozszerzania aplikacji.

Pytanie 5

Jaki będzie rezultat operacji logicznej AND dla wartości binarnych 1010 oraz 1100?

A. 1110
B. 1000
C. 1010
D. 1100
Wszystkie inne proponowane odpowiedzi są nieprawidłowe z różnych powodów. Odpowiedź 1110 jest niepoprawna, ponieważ wynikiem operacji AND nie może być 1 na pozycji bitu, gdzie przynajmniej jeden z porównywanych bitów wynosi 0. W tej operacji, gdy bierzemy pod uwagę drugi i trzeci bit, oba są odpowiednio 0 i 1, co daje wynik 0, a nie 1. Kolejna nieprawidłowość dotyczy odpowiedzi 1100. W tej odpowiedzi otrzymujemy 1 w pierwszym i drugim bicie, co jest sprzeczne z zasadą operacji AND, gdzie jeden z porównywanych bitów również musi być 0. W związku z tym, operacja AND dla tych bitów powinna również zwrócić 0 w tych pozycjach. Ostatnią niepoprawną odpowiedzią jest 1010. Choć ta liczba jest jedną z operowanych i rzeczywiście zawiera bity 1 i 0, wynik operacji AND nie powinien być równy któremuś z oryginalnych operandów, ale rezultatem zgodnym z zasadami logiki binarnej. To pokazuje, że niektóre odpowiedzi mogą zawierać bity, które są zgodne z jednym z operandów, jednak nie są wynikiem właściwej operacji AND. W kontekście systemów logicznych oraz algorytmów cyfrowych, zrozumienie tych zasad jest kluczowe dla prawidłowego manipulowania danymi i projektowania układów cyfrowych.

Pytanie 6

W sekcji, która odpowiada za obsługę wyjątku wygenerowanego przez aplikację, należy to zdefiniować

A. catch
B. throw
C. finally
D. try
Sekcja 'catch' w programowaniu obsługuje wyjątki, które mogą zostać wygenerowane podczas wykonywania programu. Pozwala to na przechwycenie błędów i odpowiednie zareagowanie, co zapobiega nieoczekiwanym awariom. Mechanizm try-catch jest fundamentalny dla zapewnienia stabilności aplikacji i minimalizacji błędów krytycznych.

Pytanie 7

Który z wymienionych elementów może stanowić część menu w aplikacji desktopowej?

A. ScrollBar
B. MenuItem
C. CheckBox
D. Canvas
CheckBox to komponent, który umożliwia wybór jednej lub wielu opcji, ale nie jest częścią systemu menu – zwykle znajduje się w formularzach lub ustawieniach aplikacji. ScrollBar to element interfejsu umożliwiający przewijanie treści w oknie aplikacji, ale nie jest elementem menu. Canvas to kontener do rysowania elementów graficznych i obiektów, ale nie pełni funkcji w kontekście tworzenia menu aplikacji desktopowych.

Pytanie 8

Jaką wartość dziesiętną reprezentuje liczba binarna 1010?

A. 10
B. 14
C. 12
D. 8
Liczba binarna 1010 to wartość dziesiętna, która wynosi 10. Aby dokonać konwersji liczby binarnej na system dziesiętny, należy zrozumieć, że każda cyfra w systemie binarnym reprezentuje potęgę liczby 2, zaczynając od prawej strony, gdzie najniższa pozycja ma wartość 2^0. W przypadku 1010, mamy następujące pozycje: 1 * 2^3 (co daje 8), 0 * 2^2 (co daje 0), 1 * 2^1 (co daje 2) oraz 0 * 2^0 (co daje 0). Sumując te wartości: 8 + 0 + 2 + 0, otrzymujemy 10. W praktyce konwersja z systemu binarnego na dziesiętny jest niezwykle przydatna w programowaniu i elektronice, gdzie liczby binarne są powszechnie stosowane. Przykładowo, w obliczeniach komputerowych oraz w projektowaniu układów cyfrowych, znajomość tych konwersji jest kluczowa. Odnosi się to również do standardów, takich jak IEEE 754, które definiują reprezentację liczb zmiennoprzecinkowych w formatach binarnych.

Pytanie 9

Jaki typ testów ocenia funkcjonalność aplikacji z punktu widzenia użytkownika końcowego?

A. Testy funkcjonalne
B. Testy zgodności
C. Testy użyteczności
D. Testy obciążeniowe
Testy obciążeniowe skupiają się na sprawdzaniu, jak aplikacja działa pod dużym ruchem lub obciążeniem, co pozwala ocenić jej wydajność, ale nie dotyczy to bezpośrednio doświadczeń użytkownika. Testy funkcjonalne mają na celu sprawdzenie, czy poszczególne funkcje aplikacji działają zgodnie z założeniami, ale nie badają wygody użytkowania. Testy zgodności natomiast weryfikują, czy aplikacja spełnia określone normy i standardy, co ma niewiele wspólnego z oceną użyteczności aplikacji przez użytkownika końcowego.

Pytanie 10

Na zaprezentowanych ilustracjach znajduje się okno aplikacji w wersji początkowej oraz po wprowadzeniu danych. Przyjmując, że pole "Dostępne środki" służy do wprowadzania wartości typu rzeczywistego, wskaż elementy struktury, które najlepiej odpowiadają tym danym?

Ilustracja do pytania
A. Kod 1
B. Kod 3
C. Kod 2
D. Kod 4
Dla pola 'Dostępne środki', które powinno przechowywać wartości rzeczywiste, odpowiednią strukturą jest ta zawierająca typ danych float lub double. Są to typy zmiennoprzecinkowe umożliwiające przechowywanie liczb z częścią ułamkową, co jest kluczowe przy operacjach finansowych i precyzyjnych obliczeniach. Wybór odpowiedniej struktury danych gwarantuje dokładność i minimalizuje ryzyko błędów związanych z zaokrągleniami.

Pytanie 11

Który z wymienionych poniżej przykładów stanowi system informacji przetwarzany przez system informatyczny?

A. System PESEL
B. System do monitorowania temperatury serwerów
C. System wentylacyjny w biurowcach
D. System zarządzania oświetleniem drogowym
System wentylacji w biurowcach, system monitorowania temperatury serwerów oraz system sterowania światłami drogowymi, chociaż są przykładami systemów inżynieryjnych, nie stanowią systemów informacji przetwarzanych przez systemy informatyczne w tradycyjnym rozumieniu. System wentylacji w biurowcach to mechanizm regulujący przepływ powietrza, który działa na podstawie fizycznych zasad termodynamiki i wymiany ciepła. W tym przypadku dane są zbierane i przetwarzane w sposób, który nie angażuje intensywnego zarządzania informacjami osobowymi ani gromadzenia danych w skali, jaką obserwuje się w systemach informacyjnych. Z kolei system monitorowania temperatury serwerów służy do zapewnienia odpowiednich warunków pracy sprzętu komputerowego. Choć wykorzystuje technologię informatyczną do zbierania danych, jego funkcjonalność koncentruje się na diagnostyce i bezpieczeństwie sprzętu, a nie na przetwarzaniu informacji o osobach czy instytucjach. Ostatecznie system sterowania światłami drogowymi, mimo że operuje na podstawie zebranych danych o ruchu drogowym, w istocie nie prowadzi złożonych operacji przetwarzania informacji w sensie administracyjnym ani nie gromadzi danych osobowych. Jego działanie opiera się na algorytmach, które reagują na ruch uliczny, a nie na zarządzaniu informacjami w sposób, który jest charakterystyczny dla systemów takich jak PESEL.

Pytanie 12

W jakiej metodzie zarządzania projektami nacisk kładzie się na ograniczenie marnotrawstwa?

A. Waterfall
B. Scrum
C. Kanban
D. Prototypowy
Scrum to inna metodologia zwinna, ale jej celem jest iteracyjne dostarczanie produktów w ramach określonych sprintów, a nie minimalizacja marnotrawstwa. Waterfall to tradycyjny model sekwencyjny, który nie koncentruje się na eliminacji marnotrawstwa, lecz na dokładnym zaplanowaniu projektu na etapie początkowym. Model prototypowy opiera się na iteracyjnym tworzeniu i testowaniu prototypów, ale jego głównym celem jest uzyskanie feedbacku od użytkowników, a nie optymalizacja przepływu pracy.

Pytanie 13

Jakie są różnice między testami funkcjonalnymi a niefunkcjonalnymi?

A. Testy funkcjonalne koncentrują się na interfejsie, a niefunkcjonalne na backendzie aplikacji
B. Testy funkcjonalne są realizowane tylko przez końcowych użytkowników, natomiast niefunkcjonalne przez programistów
C. Testy funkcjonalne oceniają wydajność aplikacji, podczas gdy niefunkcjonalne weryfikują poprawność kodu
D. Testy funkcjonalne oceniają zgodność działania aplikacji z założeniami, a niefunkcjonalne analizują aspekty wydajności, bezpieczeństwa i użyteczności
Twierdzenie, że testy funkcjonalne sprawdzają wydajność aplikacji, a niefunkcjonalne poprawność kodu, jest błędne – testy funkcjonalne dotyczą zgodności aplikacji z wymaganiami, natomiast wydajność jest domeną testów niefunkcjonalnych. Testy funkcjonalne nie są przeprowadzane wyłącznie przez użytkowników końcowych – najczęściej są realizowane przez zespoły QA i testerów manualnych lub automatycznych. Podział testów na interfejsowe i backendowe nie jest synonimem podziału na testy funkcjonalne i niefunkcjonalne – oba typy mogą dotyczyć zarówno interfejsu, jak i zaplecza aplikacji.

Pytanie 14

Do implementacji w aplikacji jednokierunkowej funkcji skrótu, zwanej funkcją haszującą, można wykorzystać algorytm

A. RSA
B. DES
C. AES
D. MD5
DES to algorytm szyfrowania symetrycznego, nie funkcja haszująca. RSA to algorytm asymetryczny wykorzystywany do szyfrowania i podpisów cyfrowych. AES to zaawansowany standard szyfrowania blokowego, ale nie jest funkcją skrótu.

Pytanie 15

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

Ilustracja do pytania
A. brak konstruktora w definicji klasy
B. inicjacja obiektu została błędnie zapisana
C. pole autor jest niedostępne z tego poziomu
D. argumenty konstruktora powinny być przekazane podczas inicjacji obiektu
Błąd związany z polem 'autor' wynika z problemu dostępu do pól prywatnych w klasie. W programowaniu obiektowym, pola prywatne (oznaczone jako private) są dostępne tylko wewnątrz danej klasy i nie mogą być bezpośrednio modyfikowane lub odczytywane z zewnątrz. Aby umożliwić dostęp do takich pól, programista powinien utworzyć odpowiednie metody dostępowe – tzw. gettery i settery. Jest to przykład hermetyzacji (encapsulation), jednego z filarów programowania obiektowego, który pozwala na kontrolę nad tym, jak dane są przechowywane i modyfikowane. Hermetyzacja zwiększa bezpieczeństwo aplikacji i zapobiega przypadkowym zmianom wartości pól obiektu.

Pytanie 16

Który z przedstawionych poniżej przykładów ilustruje prawidłową deklarację zmiennej typu całkowitego w języku C++?

A. char liczba;
B. int liczba;
C. float liczba;
D. bool liczba;
W języku C++ zmienna typu całkowitego jest deklarowana za pomocą słowa kluczowego `int`. Przykładowa poprawna deklaracja to `int liczba;`, co oznacza, że `liczba` jest zmienną, która może przechowywać wartości całkowite, takie jak 1, 42 lub -15. Deklarowanie zmiennych w C++ pozwala na statyczne typowanie, co oznacza, że każda zmienna ma określony typ i nie może przechowywać wartości innego typu. Dzięki temu kod jest bardziej przejrzysty i mniej podatny na błędy związane z niezgodnością typów.

Pytanie 17

Jaka jest podstawowa funkcja narzędzia do zarządzania projektami?

A. Produkcja animacji komputerowych
B. Zarządzanie zadaniami i czasem w projekcie
C. Poprawa wydajności kodu programu
D. Opracowanie bazy danych dla projektu
Zarządzanie zadaniami i czasem to naprawdę kluczowa sprawa w projektach. Dzięki narzędziom takim jak Microsoft Project, Jira, Trello, czy Monday, zespoły mogą lepiej planować, przydzielać role i śledzić, co się dzieje. Możliwości tych narzędzi pozwalają ustalać deadline’y, priorytety, a nawet automatycznie przypominają o zbliżających się terminach. To super pomaga w unikaniu opóźnień i pozwala lepiej zorganizować pracę. Wizualizacja projektu w formie osi czasu czy tablicy kanban też jest mega przydatna, bo wszystko staje się bardziej czytelne.

Pytanie 18

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

A. malloc()
B. free()
C. sizeof()
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 19

Co to jest CORS (Cross-Origin Resource Sharing)?

A. Mechanizm bezpieczeństwa, który określa, które domeny mogą uzyskiwać dostęp do zasobów na serwerze
B. Protokół komunikacji między różnymi bazami danych
C. Technika optymalizacji ładowania zasobów statycznych
D. Metoda udostępniania API dla aplikacji mobilnych
Odpowiedzi sugerujące, że CORS to protokół komunikacji między różnymi bazami danych, metoda udostępniania API dla aplikacji mobilnych, czy technika optymalizacji ładowania zasobów statycznych, nie oddają rzeczywistego znaczenia i zastosowania tego mechanizmu. CORS nie ma nic wspólnego z bazami danych jako takimi; jest to struktura regulująca, które domeny mogą uzyskiwać dostęp do zasobów serwera. To nie jest protokół, lecz zestaw zasad, które są interpretowane przez przeglądarki internetowe. Ponadto, CORS nie ma też związku z udostępnianiem API dla aplikacji mobilnych, ponieważ aplikacje mobilne mogą wykorzystywać CORS tylko w kontekście interakcji z serwerami, a nie są bezpośrednio związane z tym mechanizmem. Techniki optymalizacji ładowania zasobów statycznych również nie mają związku z CORS, gdyż ten mechanizm nie dotyczy samego procesu ładowania zasobów, lecz reguł dotyczących ich dostępności w różnych kontekstach pochodzenia. Często mylone są podstawowe pojęcia związane z bezpieczeństwem aplikacji webowych, co prowadzi do nieporozumień oraz błędnego rozumienia działania samych technologii sieciowych.

Pytanie 20

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

A. Undefined
B. Method
C. Object
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 21

Jaką wartość zwróci poniższa funkcja dla argumentu n = 5?

function silnia(n) { if (n <= 1) return 1; return n * silnia(n - 1); }
A. 120
B. 5
C. 24
D. 60

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja silnia(n) oblicza wartość silni z liczby n, co jest matematyczną operacją polegającą na mnożeniu wszystkich liczb całkowitych dodatnich od 1 do n. Dla argumentu n = 5, obliczamy silnię w następujący sposób: silnia(5) = 5 * silnia(4). Następnie, silnia(4) = 4 * silnia(3), a silnia(3) = 3 * silnia(2), gdzie silnia(2) = 2 * silnia(1), a silnia(1) zwraca 1, ponieważ jest to warunek bazowy. Teraz możemy podstawić wartości: silnia(2) = 2 * 1 = 2, silnia(3) = 3 * 2 = 6, silnia(4) = 4 * 6 = 24, a na końcu silnia(5) = 5 * 24 = 120. Tak więc, wartość zwrócona przez funkcję dla n = 5 to 120. W praktyce, obliczanie silni jest przydatne w różnych dziedzinach, takich jak kombinatoryka, statystyka czy analiza danych. Zrozumienie tej koncepcji jest kluczowe w programowaniu, ponieważ często wykorzystuje się rekurencję do rozwiązywania problemów, które można podzielić na mniejsze podproblemy. Korzystając z rekurencyjnych funkcji, warto pamiętać o podstawowych warunkach, które kończą wywołania rekurencyjne, aby uniknąć nieskończonych pętli.

Pytanie 22

Jak w CSS definiuje się element, który ma reagować na najechanie kursorem?

A. :click
B. :hover
C. :mouse
D. :over
Odpowiedź :hover jest poprawna, ponieważ w CSS pseudo-klasa :hover jest używana do definiowania stylów elementu, gdy kursor myszy znajduje się nad tym elementem. Jest to niezwykle przydatne w tworzeniu interaktywnych stron internetowych, ponieważ umożliwia twórcom zwiększenie responsywności elementów, takich jak przyciski, linki czy obrazy. Przykładowo, można zastosować :hover do zmiany koloru tła przycisku, co wskazuje użytkownikom, że dany element jest aktywny i gotowy do interakcji. Zastosowanie tej pseudo-klasy nie tylko poprawia estetykę strony, ale również zwiększa jej użyteczność oraz dostępność, co jest zgodne z dobrymi praktykami w projektowaniu UI/UX. Należy pamiętać, że :hover działa tylko w przeglądarkach obsługujących CSS, a efekty związane z tą pseudo-klasą są natychmiastowe, co sprawia, że są one bardzo efektywne w zastosowaniu. Warto również zaznaczyć, że w przypadku urządzeń dotykowych, takich jak smartfony, reakcja na najechanie może być symulowana poprzez dotknięcie ekranu, co sprawia, że ta technika jest uniwersalna.

Pytanie 23

Co zostanie wyświetlone po wykonaniu poniższego kodu JavaScript?

const promise = new Promise((resolve, reject) => { setTimeout(() => { resolve('success'); }, 1000); }); promise .then(res => { console.log(res); return 'first then'; }) .then(res => { console.log(res); });
A. success
B. first then, success
C. success, first then
D. first then
W przypadku błędnych odpowiedzi można zauważyć kilka typowych nieporozumień dotyczących działania obietnic w JavaScript. Odpowiedzi sugerujące, że najpierw zostanie wyświetlony 'first then' lub że będzie tylko jeden wynik, są wynikiem niezrozumienia, jak działa asynchroniczność oraz jak obietnice przetwarzają wyniki. Obietnice w JavaScript są zaprojektowane tak, aby zarządzać operacjami asynchronicznymi, co oznacza, że kod wewnątrz obietnicy nie blokuje wykonania innych operacji. W momencie, gdy obietnica jest utworzona, kod wykonuje się dalej, a funkcja `setTimeout` działa w tle. Gdy po upływie określonego czasu obietnica jest spełniona, następuje przekazanie wyniku do łańcucha `then`, a nie jakiegokolwiek innego miejsca w kodzie. To oznacza, że wyniki są zwracane w kolejności, w jakiej są zadeklarowane, co w tym przypadku prowadzi do wyświetlenia najpierw 'success', a potem 'first then'. Takie podejście do asynchroniczności jest fundamentalne w JavaScript, a jego zrozumienie jest kluczowe dla każdego programisty. Błędne odpowiedzi pochodzą często z mylnego przekonania, że wyniki obietnic są natychmiastowe lub że działają w tej samej kolejności, co kod synchroniczny. Dlatego ważne jest, aby zrozumieć, że asynchroniczność zmienia sposób, w jaki operacje są wykonywane i jak wyniki są zwracane.

Pytanie 24

Jakie z wymienionych funkcji są typowe dla narzędzi służących do zarządzania projektami?

A. Nadzorowanie postępu realizacji
B. Przeprowadzanie analizy statystycznej
C. Opracowywanie diagramów przepływu
D. Tworzenie interfejsu użytkownika
Monitorowanie postępu prac to jedna z kluczowych funkcji narzędzi do zarządzania projektami. Dzięki temu zespoły mogą śledzić realizację zadań, identyfikować opóźnienia oraz efektywnie alokować zasoby. Narzędzia takie jak Jira, Trello czy Asana pozwalają na wizualizację postępów, co ułatwia kontrolowanie harmonogramu oraz planowanie kolejnych etapów projektu. Monitorowanie postępu prac pomaga także w wykrywaniu wąskich gardeł i umożliwia szybkie podejmowanie decyzji, co znacząco zwiększa efektywność całego zespołu. Funkcja ta jest szczególnie istotna w zarządzaniu projektami IT, budowlanymi i kreatywnymi, gdzie koordynacja wielu zadań jest kluczowa dla sukcesu projektu.

Pytanie 25

Jaką wartość przyjmie etykieta label po wykonaniu podanego kodu, gdy zostanie on uruchomiony po naciśnięciu przycisku w aplikacji?

Ilustracja do pytania
A. liczby parzyste z przedziału od 0 do 100
B. suma liczb parzystych z przedziału od 0 do 100
C. liczby z przedziału od 0 do 100
D. suma liczb z przedziału od 0 do 100
Kod oblicza i zapisuje sumę liczb parzystych z przedziału od 0 do 100. Pętla iteruje przez kolejne liczby i dodaje te, które spełniają warunek parzystości, zapewniając poprawne wyniki.

Pytanie 26

Ergonomiczną oraz właściwą pozycję do pracy przy komputerze zapewni fotel, którego

A. podłokietniki znajdują się 20 cm poniżej blatu
B. podłokietniki są 30 cm powyżej blatu
C. oparcie w rejonie szyi jest nachylone do przodu o 40<sup>o</sup>
D. oparcie wspiera lordozę w dolnym odcinku pleców
Prawidłowa i ergonomiczna pozycja pracy przy komputerze jest kluczowa dla zdrowia i komfortu użytkownika. Oparcie krzesła, które zapewnia lordozę w odcinku lędźwiowym, jest niezbędne, ponieważ pozwala na zachowanie naturalnej krzywizny kręgosłupa. Lordoza lędźwiowa to naturalne wygięcie kręgosłupa w dolnej części pleców, które wspiera prawidłowe ułożenie ciała podczas siedzenia. Krzesło powinno być zaprojektowane tak, aby oparcie przylegało do krzywizny ciała, co minimalizuje ryzyko bólu pleców oraz przeciążeń. Praktycznym przykładem ergonomicznej pozycji jest ustawienie oparcia w taki sposób, aby jego dolna część była dostosowana do odcinka lędźwiowego. Zgodnie z normami ISO 9241, które dotyczą ergonomii miejsc pracy przy komputerze, krzesło powinno umożliwiać użytkownikowi przyjęcie wygodnej pozycji z podparciem dla dolnej części pleców. W odpowiedniej pozycji stopy powinny spoczywać płasko na podłodze, a kolana powinny być na poziomie bioder, co wspiera prawidłowe krążenie krwi oraz redukuje napięcia mięśniowe.

Pytanie 27

Jakie działania należy podjąć, aby uniknąć nieskończonej rekurencji w danej funkcji?

A. Dodać warunek zakończenia w funkcji
B. Wykorzystać automatyczny debugger w kompilatorze
C. Rozszerzyć zakres zmiennych globalnych
D. Zastosować iterację zamiast rekurencji
Warunek stopu to taki kluczowy element w rekurencji, który właściwie mówi, kiedy funkcja powinna przestać się wywoływać. Jak masz ten warunek, to funkcja wraca z wynikiem zamiast kręcić się w kółko, co mogłoby prowadzić do jakiegoś szaleństwa, tzn. przepełnienia stosu. Myślę, że warto zwrócić uwagę, że dodanie tego warunku to naprawdę podstawowa sprawa w programowaniu, bo bez niego wszystko może się posypać i przestanie działać tak, jak powinno.

Pytanie 28

Co zostanie wyświetlone po wykonaniu poniższego kodu?

function Person(name) { this.name = name; } Person.prototype.sayHello = function() { return `Hello, ${this.name}!`; }; const person = new Person('John'); console.log(person.sayHello());
A. Hello, undefined!
B. Hello, John!
C. Hello, [object Object]!
D. TypeError: person.sayHello is not a function
Wynik działania podanego kodu to 'Hello, John!'. Dzieje się tak, ponieważ tworzony jest obiekt 'person' z konstruktora 'Person', który przypisuje wartość 'John' do właściwości 'name'. Metoda 'sayHello' zdefiniowana w prototypie klasy 'Person' wykorzystuje szablon literowy (template literal), aby zwrócić powitanie, wstawiając wartość 'name' obiektu. To podejście jest zgodne z dobrymi praktykami programowania w JavaScript, ponieważ wykorzystuje prototypy do dzielenia się metodami pomiędzy instancjami obiektów. W praktyce, takie rozwiązania pozwalają na oszczędność pamięci i zwiększają wydajność, gdyż wszystkie instancje korzystają z tej samej metody, a nie mają osobnych kopii. Przykładowo, jeśli chcielibyśmy dodać więcej osób, wystarczy utworzyć nowe instancje 'Person' bez konieczności powielania kodu metody 'sayHello'.

Pytanie 29

Który z poniższych opisów najlepiej charakteryzuje Node.js?

A. Środowisko uruchomieniowe JavaScript poza przeglądarką, używające silnika V8 z Chrome
B. System zarządzania bazami danych NoSQL
C. Biblioteka do tworzenia interfejsów użytkownika w aplikacjach webowych
D. Framework do budowania aplikacji mobilnych przy użyciu JavaScript
Każda z pozostałych opcji opisuje inne technologie, które nie mają związku z Node.js. Opis sugerujący, że Node.js jest frameworkiem do budowania aplikacji mobilnych z użyciem JavaScript, jest mylny, ponieważ Node.js jest narzędziem serwerowym, a nie środowiskiem do tworzenia aplikacji mobilnych. W rzeczywistości, do tworzenia aplikacji mobilnych najczęściej wykorzystuje się frameworki takie jak React Native czy Ionic, które pozwalają na tworzenie interfejsów użytkownika w JavaScript, ale operują w zupełnie innym kontekście. Kolejnym błędnym podejściem jest traktowanie Node.js jako biblioteki do tworzenia interfejsów użytkownika w aplikacjach webowych. Interfejsy użytkownika są zwykle tworzone z użyciem frameworków takich jak Angular, Vue.js lub React, które współpracują z Node.js w celu budowy pełnych aplikacji webowych. Ostatnia z ofert, czyli system zarządzania bazami danych NoSQL, jest jeszcze jednym błędnym podejściem. Node.js nie jest bazą danych; zamiast tego, może współdziałać z bazami danych NoSQL, takimi jak MongoDB, ale jego główną rolą jest obsługa logiki serwera. Typowe nieporozumienia, które prowadzą do tych błędnych koncepcji, obejmują mylenie kontekstu zastosowania oraz funkcjonalności różnych technologii, co może skutkować nieprawidłowym zrozumieniem ich ról w architekturze aplikacji.

Pytanie 30

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

A. Niekompatybilność typów danych w kodzie
B. Błąd dzielenia przez zero
C. Błąd w składni
D. Błąd kompilacyjny
Błędy składniowe są wykrywane na etapie kompilacji i nie mogą być obsługiwane za pomocą wyjątków – kompilator generuje komunikat o błędzie, zanim program zostanie uruchomiony. Błędy kompilacji, takie jak niezgodność typów danych, również są wychwytywane na etapie kompilacji i wymagają poprawienia kodu źródłowego. Wyjątki są przeznaczone do obsługi błędów, które występują w czasie wykonywania programu, a nie błędów wykrywanych przez kompilator. Dlatego obsługa błędów składniowych i kompilacyjnych wymaga innego podejścia niż mechanizm wyjątków.

Pytanie 31

Jaką nazwę kontrolki powinno się umieścić w początkowej linii kodu, w miejscu <???, aby została ona wyświetlona w podany sposób?

Ilustracja do pytania
A. SeekBar
B. Spinner
C. RatinoBar
D. Switch
SeekBar to element interfejsu użytkownika, który pozwala użytkownikowi wybierać wartości w określonym przedziale, przeciągając uchwyt w lewo lub w prawo, co sprawia, że nadaje się do regulacji parametrów takich jak głośność czy jasność. Mimo że również jest to element interaktywny, jego użycie w kontekście binarnych decyzji byłoby niewłaściwe, ponieważ wymaga od użytkownika wyboru wartości w zakresie zamiast prostego włączania lub wyłączania. Spinner, z kolei, jest używany do prezentacji listy rozwijanej, z której użytkownik może wybrać jedną z dostępnych opcji. Jest to bardziej odpowiednie w kontekście, w którym jest wiele alternatyw do wyboru, a nie tylko dwa stany, jak w przypadku kontrolki Switch. RatinoBar wydaje się być literówką lub nieprawidłową nazwą, prawdopodobnie mylącą z RadioButton, który umożliwia wybór jednej opcji z grupy, podobnie jak Spinner, ale w zupełnie inny sposób. RadioButton nie posiada jednak mechanizmu przełączania w kontekście włączania i wyłączania funkcji, jak to ma miejsce w przypadku Switch. Zrozumienie różnic między tymi kontrolkami jest kluczowe dla projektowania intuicyjnych i efektywnych interfejsów użytkownika, a błędne przypisanie funkcjonalności może prowadzić do dezorientacji użytkownika i obniżenia jakości doświadczenia użytkownika w aplikacji.

Pytanie 32

Który wzorzec projektowy jest najlepszy do zarządzania tworzeniem obiektów?

A. Adapter
B. Observer
C. Factory Method
D. Decorator
Wybór wzorców projektowych w kontekście zarządzania tworzeniem obiektów jest kluczowy, jednak nie wszystkie wzorce są odpowiednie dla tego celu. Wzorzec Observer, na przykład, jest zaprojektowany do zarządzania powiązaniami między obiektami, umożliwiając jednemu obiektowi informowanie innych o zmianach stanu. Jego zastosowanie w kontekście tworzenia obiektów jest nieadekwatne, ponieważ nie rozwiązuje problemu instancjonowania obiektów, a jedynie komunikacji między nimi. Kolejnym błędnym podejściem jest wzorzec Decorator, który ma na celu dynamiczne dodawanie funkcjonalności do obiektów. Choć może być użyty w kontekście modyfikacji obiektów, nie zajmuje się tworzeniem ich instancji, co czyni go nieodpowiednim w tej sytuacji. Wzorzec Adapter może być mylony z Factory Method, ponieważ również pozwala na współpracę różnych interfejsów, jednak jego główną rolą jest umożliwienie komunikacji pomiędzy niekompatybilnymi interfejsami. Adapter koncentruje się na przekształcaniu interfejsów, a nie na tworzeniu obiektów. W rezultacie, wybór niewłaściwego wzorca może prowadzić do nieefektywnego projektowania, co utrudnia rozwój i utrzymanie aplikacji. Warto zatem dokładnie rozróżniać role poszczególnych wzorców i stosować je w odpowiednich kontekstach, aby unikać typowych pułapek myślowych związanych z ich zastosowaniem.

Pytanie 33

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

A. Do zarządzania bazami danych
B. Do projektowania graficznego interfejsu użytkownika
C. Do optymalizacji działania aplikacji
D. Do obsługi zdarzeń klawiatury
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 34

Które stwierdzenie dotyczące interfejsu w Java jest prawdziwe?

A. Wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne
B. Interfejs może zawierać pola z dostępem protected
C. W interfejsie można definiować implementacje metod statycznych
D. Interfejs może dziedziczyć po wielu klasach jednocześnie
Interfejsy w języku Java są fundamentalnym elementem programowania obiektowego, pozwalającym na definiowanie kontraktów, które muszą być implementowane przez klasy. Stwierdzenie, że wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne, jest całkowicie zgodne z zasadami języka Java. Oznacza to, że nie trzeba jawnie deklarować tych modyfikatorów dostępu, ponieważ metody zdefiniowane w interfejsie są zawsze dostępne dla klas implementujących ten interfejs. To podejście promuje luźne powiązania między kodem oraz ułatwia testowanie i utrzymanie aplikacji. Przykładem praktycznym może być interfejs Comparable, który definiuje metodę compareTo. Klasy, które implementują ten interfejs, muszą dostarczyć konkretnej logiki porównywania obiektów, co pozwala na ujednolicenie sposobu, w jaki obiekty są porównywane w kolekcjach. Warto również zauważyć, że od Javy 8 interfejsy mogą zawierać metody domyślne z implementacją, ale nawet te metody są publiczne. Poprawne zrozumienie roli interfejsów jest kluczowe w projektowaniu systemów z zastosowaniem wzorców projektowych, takich jak MVC czy strategia.

Pytanie 35

Jaką jednostkę zaleca się stosować przy projektowaniu interfejsu aplikacji?

A. dp
B. mm
C. px
D. pt
Jednostką zalecaną przy tworzeniu układów interfejsów w aplikacjach mobilnych jest dp (density-independent pixels). Pozwala to na zachowanie proporcji elementów interfejsu niezależnie od rozdzielczości urządzenia.

Pytanie 36

W klasie o nazwie samochod przypisano atrybuty: marka, rocznik, parametry[]. Atrybuty te powinny zostać zdefiniowane jako

A. funkcje
B. metody
C. pola
D. interfejsy
Pola klasy to jej atrybuty, które przechowują dane dotyczące obiektów. Definiują one stan obiektu i mogą przyjmować różne wartości w zależności od instancji klasy. W przypadku klasy samochod cechy takie jak marka, rocznik czy parametry to właśnie pola, które odzwierciedlają właściwości poszczególnych obiektów.

Pytanie 37

W zaprezentowanym wideo przedstawiono narzędzie do tworzenia interfejsu użytkownika, dla którego automatycznie generuje się

A. obsługa wciśniętego przycisku
B. kod Java
C. obsługa przycisku ekranu dotykowego
D. kod XML
Kod Java jest generowany, ale nie bezpośrednio z kreatora interfejsu. Obsługa przycisków i ekranów dotykowych jest tworzona na poziomie logiki aplikacji i nie jest wynikiem samego kreatora interfejsu, który skupia się na warstwie wizualnej (UI).

Pytanie 38

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

A. Gdy poszkodowany jest świadomy, lecz ma uraz kończyny
B. Gdy poszkodowany nie oddycha
C. Gdy poszkodowany cierpi na krwotok zewnętrzny
D. Gdy poszkodowany jest nieprzytomny, ale 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 39

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. zapewnienia odpowiedniego czasu na zapoznanie się i przetworzenie informacji
C. prezentacji elementów interfejsu użytkownika
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 40

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

A. is
B. in
C. ==
D. and
Operator `in` w języku Python służy do sprawdzania, czy element należy do listy, zbioru, krotki lub innego obiektu iterowalnego. Przykład: `if 5 in lista` sprawdza, czy liczba 5 znajduje się w liście. Operator `in` jest niezwykle przydatny w przeszukiwaniu danych, a jego zastosowanie skraca kod i zwiększa jego czytelność. W Pythonie jest on szeroko stosowany do iteracji i filtrowania danych, co czyni go jednym z najbardziej intuicyjnych operatorów języka.