Wyniki egzaminu

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

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

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

Użycie typu DECIMAL w SQL wymaga wcześniejszego określenia liczby cyfr przed przecinkiem oraz ilości cyfr za przecinkiem. Jest to zapis:

A. logicznym
B. stałoprzecinkowy
C. zmiennoprzecinkowy
D. łańcuchowym
Typ DECIMAL w języku SQL to typ zmiennoprzecinkowy, który umożliwia przechowywanie liczb z określoną liczbą miejsc po przecinku. Jest szeroko stosowany w finansach i innych dziedzinach wymagających dużej precyzji, ponieważ unika błędów zaokrągleń, które mogą wystąpić przy użyciu typów FLOAT lub REAL. Przechowywanie danych liczbowych w dokładny sposób ma kluczowe znaczenie w aplikacjach związanych z walutami i statystyką.

Pytanie 2

Prezentowana metoda jest realizacją algorytmu

Ilustracja do pytania
A. sprawdzającego, czy dany ciąg jest palindromem
B. wyszukującego literę w ciągu
C. odwracającego ciąg
D. sortującego ciąg od znaku o najniższym kodzie ASCII do znaku o najwyższym kodzie
Sprawdzanie palindromów to coś innego, bo tu porównujesz napis z jego odwróconą wersją. A jeśli chodzi o szukanie znaków, to raczej iterujesz przez napis. Sortowanie według kodów ASCII też ma swoje zadania, ale nie ma tu nic wspólnego z odwracaniem napisu. Także wiesz, to trochę inny temat.

Pytanie 3

Wskaż właściwość charakterystyczną dla metody abstrakcyjnej?

A. zawsze jest prywatna
B. jest pusta w klasie nadrzędnej
C. jest pusta w klasach dziedziczących
D. nie ma implementacji w klasie bazowej
Metoda abstrakcyjna to metoda zadeklarowana w klasie bazowej, ale nieposiadająca implementacji. Wymusza ona na klasach dziedziczących zaimplementowanie tej metody. Taki mechanizm pozwala na tworzenie szkieletów klas, gdzie szczegóły implementacyjne są delegowane do klas potomnych. Dzięki temu można stosować polimorfizm i ujednolicić interfejs dla różnych obiektów.

Pytanie 4

Kompilator może wygenerować błąd "incompatible types", gdy

A. funkcja zwraca typ void, a w momencie wywołania nie jest przypisana do żadnej zmiennej
B. do zmiennej typu int przypisano wartość 243
C. funkcja oczekuje całkowitej jako argumentu, a została wywołana z napisem jako parametrem
D. w trakcie deklaracji zmiennej wystąpił błąd, zastosowano nieistniejący typ
Błąd 'incompatible types' to dość powszechny problem, kiedy przypisujesz coś do zmiennej, ale typ się nie zgadza. Na przykład, jeśli próbujesz wstawić tekst do miejsca, gdzie oczekiwana jest liczba całkowita, to właśnie wtedy pojawia się ten błąd. W językach jak Java, gdzie typy są mocno zdefiniowane, musisz uważać na takie rzeczy.

Pytanie 5

Jakie zadanie wykonuje debugger?

A. Przekładanie kodu źródłowego na język maszynowy
B. Identyfikowanie błędów składniowych podczas kompilacji
C. Umożliwianie analizy działania programu krok po kroku
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 6

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

Ilustracja do pytania
A. Shareware
B. OEM
C. Freeware
D. Open Source
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 7

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

A. HDD 7200 RPM, SATA III, 64 MB Cache
B. SSD SATA III, prędkość odczytu do 550 MB/s
C. HDD 5400 RPM, SATA II, 32 MB Cache
D. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s
Pozostałe odpowiedzi nie są właściwe z kilku kluczowych powodów. HDD o prędkości 7200 RPM, mimo że jest szybszy od wariantu 5400 RPM, wciąż opiera się na technologii mechanicznej, co oznacza, że jego prędkość odczytu danych jest ograniczona przez fizyczne ruchy talerzy oraz głowic. Typowe prędkości odczytu dla HDD 7200 RPM wahają się w granicach 80-160 MB/s, co jest znacznie poniżej osiągów dysków SSD. HDD 5400 RPM, będący najwolniejszym w tej grupie, osiąga prędkości odczytu rzędu 50-120 MB/s, co sprawia, że jest najmniej efektywnym rozwiązaniem w kontekście wydajności. Z kolei SSD SATA III, chociaż znacznie szybszy od HDD, oferuje prędkość odczytu do 550 MB/s, co również jest dalekie od możliwości, jakie daje technologia NVMe. Dyski SSD SATA mają ograniczone interfejsy, co wpływa na ich wydajność, pomimo że korzystają z pamięci flash. W rezultacie, wszystkie te opcje nie są w stanie konkurować z prędkościami oferowanymi przez SSD NVMe PCIe 3.0, które zadziwiająco przewyższają je pod względem wydajności, co czyni je najefektywniejszym wyborem do intensywnych zadań obliczeniowych i transferu danych.

Pytanie 8

Algorytm wyszukiwania sekwencyjnego z wykorzystaniem wartownika opiera się na założeniu, że

A. zbiór ma zawsze 100 elementów
B. szukany element powinien wystąpić wielokrotnie w zbiorze
C. zbiór danych wejściowych musi być uporządkowany
D. na końcu analizowanego zbioru należy dodać wartownika
Zbiór wejściowy musi być posortowany to błędna informacja, ponieważ algorytm sekwencyjnego wyszukiwania działającego z wartownikiem nie wymaga sortowania danych. W rzeczywistości przeszukiwany zbiór może być w dowolnej kolejności, co jest jedną z jego zalet w porównaniu do bardziej złożonych algorytmów, takich jak wyszukiwanie binarne, które rzeczywiście wymaga posortowanych danych. Kolejna nieprawidłowa opcja odnosi się do założenia, że zbiór jest zawsze 100 elementowy. Algorytm sekwencyjnego wyszukiwania działa na zbiorach o dowolnej wielkości, co czyni go elastycznym rozwiązaniem w różnych kontekstach aplikacyjnych. Ostatnim niepoprawnym stwierdzeniem jest to, że szukany element musi powtórzyć się kilkakrotnie w zbiorze. Algorytm ten jest w stanie zidentyfikować element, który występuje w zbiorze jednorazowo, jak i taki, który występuje wielokrotnie. Jego głównym celem jest zlokalizowanie przynajmniej jednego wystąpienia poszukiwanego elementu, niezależnie od jego ilości w zbiorze. Dlatego każda z tych odpowiedzi jest nieprawidłowa i nie oddaje rzeczywistej natury funkcjonowania algorytmu sekwencyjnego wyszukiwania z wartownikiem.

Pytanie 9

Przedstawiony fragment dotyczy funkcji resize w języku C++. Ta funkcja obniży długość elementu string, gdy wartość parametru

Ilustracja do pytania
A. n jest mniejsza od aktualnej długości łańcucha
B. c jest mniejsza od aktualnej długości łańcucha
C. c jest większa od aktualnej długości łańcucha
D. n jest większa od aktualnej długości łańcucha
Funkcja resize zmniejsza długość elementu string, gdy wartość parametru n jest mniejsza niż bieżąca długość łańcucha. Pozwala to na skrócenie ciągu znaków, zachowując jedynie jego część początkową.

Pytanie 10

Metoda przeszukiwania w uporządkowanych tablicach, która polega na podzieleniu tablicy na kilka części i wykonywaniu wyszukiwania liniowego tylko w tej części, gdzie może znajdować się poszukiwany element, w języku angielskim jest określana jako

A. Ternary search
B. Binary search
C. Exponential search
D. Jump search
Jump Search to metoda wyszukiwania w posortowanych tablicach, polegająca na przeskakiwaniu o określoną liczbę elementów. Jeśli przeskok prowadzi do wartości większej niż szukana, wyszukiwanie kontynuowane jest liniowo od poprzedniego przeskoku. Jest to bardziej efektywne niż liniowe przeszukiwanie, ale mniej efektywne niż wyszukiwanie binarne.

Pytanie 11

Która z poniższych struktur danych jest najbardziej odpowiednia do przechowywania unikalnych elementów?

A. Sekwencja
B. Kolejka priorytetowa
C. Zbiór (Set)
D. Tablica
Lista pozwala na dodawanie powtarzających się elementów, więc nie daje ci unikalności. Tablica działa podobnie, bo też trzyma duplikaty, bez jakiegoś mechanizmu, który by je automatycznie usuwał. Kolejka priorytetowa przechowuje rzeczy według określonej kolejności, ale tu znowu nie jest mowa o unikalności. Każda z tych struktur ma swoje zadania, ale żadna nie jest tak dobra jak zbiór, jeśli chodzi o trzymanie unikalnych danych. Dziwne, nie?

Pytanie 12

Przykład wywołania funkcji zamien w języku C++ może wyglądać w następujący sposób

Ilustracja do pytania
A. zamien(m,n); //m,n - zmienne całkowite
B. zamien(&a, &b); //x,y - zmienne całkowite
C. zamien(*a, *b); //a,b - zmienne całkowite
D. zamien(12, 34)
Wywołanie funkcji 'zamien' w formie zamien(&a, &b) jest poprawne, ponieważ przekazuje adresy zmiennych jako argumenty, co pozwala na modyfikację ich wartości w funkcji. Jest to standardowa technika używana w języku C++ do przekazywania parametrów przez wskaźniki lub referencje.

Pytanie 13

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

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

Pytanie 14

Który z wymienionych typów kolekcji pozwala na dostęp do ostatnio dodanego elementu w pierwszej kolejności?

A. Lista
B. Stos
C. Kolejka
D. Tablica dwuwymiarowa
Lista to struktura liniowa, która umożliwia dostęp do dowolnego elementu, ale nie działa na zasadzie LIFO. Kolejka działa zgodnie z zasadą FIFO (First In First Out) i przechowuje elementy w kolejności ich dodania. Tablica dwuwymiarowa to struktura do przechowywania danych w postaci macierzy, ale nie działa na zasadzie LIFO ani FIFO, lecz umożliwia dostęp do danych za pomocą indeksów.

Pytanie 15

Jakie są różnice między typem łańcuchowym a typem znakowym?

A. Typ znakowy przechowuje pojedyncze znaki, a łańcuchowy ciągi znaków
B. Typ łańcuchowy przechowuje pojedyncze znaki, a znakowy długie ciągi znaków
C. Typ łańcuchowy obsługuje liczby całkowite, a znakowy liczby zmiennoprzecinkowe
D. Typ znakowy przechowuje dane logiczne, a łańcuchowy tekst
Typ znakowy (char) przechowuje pojedyncze znaki, natomiast typ łańcuchowy (string) przechowuje ciągi znaków. Różnica ta ma kluczowe znaczenie w programowaniu, ponieważ typ 'char' jest używany do operacji na pojedynczych literach, cyfrze lub symbolu, podczas gdy 'string' umożliwia przechowywanie i manipulowanie całymi wyrazami lub zdaniami. W wielu językach 'string' to bardziej złożona struktura danych, która zawiera tablicę znaków (array of characters), co pozwala na efektywną pracę z tekstem i budowanie interaktywnych aplikacji.

Pytanie 16

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

A. Zoptymalizowuje wydajność aplikacji w środowisku produkcyjnym
B. Przekłada kod źródłowy na język maszynowy w trakcie działania programu
C. Łączy kod źródłowy z zewnętrznymi bibliotekami
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 17

Jakie jest rozwiązanie dla dodawania binarnego liczb 1011 oraz 110?

A. 11001
B. 10001
C. 11101
D. 10101
W analizie błędnych odpowiedzi, pierwsza niepoprawna odpowiedź 11001 wynika z błędu w dodawaniu ostatniej kolumny. Osoba, która udzieliła tej odpowiedzi, mogła popełnić pomyłkę, nie uwzględniając przeniesienia z drugiej kolumny. W systemie binarnym nie można uzyskać wyniku 11001, ponieważ suma 0 + 1 w ostatnich kolumnach prowadzi do przeniesienia, a nie do dodania wartości. Druga propozycja, 10101, może być efektem pomylenia wartości i przeniesień w trakcie dodawania. Wartości w odpowiednich kolumnach są zinterpretowane niepoprawnie. Tutaj również brakuje uwzględnienia przeniesienia, co prowadzi do wyniku, który nie odzwierciedla rzeczywistego sumowania w systemie binarnym. Ostatnia niepoprawna odpowiedź, 11101, zawiera błąd związany z dodawaniem wartości bez przeniesienia. Sumowanie 1 + 1 w drugiej kolumnie prowadzi do 0 z przeniesieniem, co zostało pominięte. W każdej z tych odpowiedzi występuje zrozumienie błędów w arytmetyce binarnej, które są fundamentalne dla prawidłowego obliczania w systemach cyfrowych.

Pytanie 18

Metoda tworzenia algorytmu polegająca na dzieleniu go na dwa lub więcej mniejszych podproblemów, aż do momentu, gdy ich rozwiązanie stanie się proste, jest techniką

A. komiwojażera
B. najkrótszej ścieżki
C. dziel i zwyciężaj
D. heurystyczną
Strategia znana jako 'dziel i zwyciężaj' to sposób, w jaki można podejść do rozwiązywania problemów w algorytmice. Chodzi o to, żeby rozdzielić większy problem na mniejsze kawałki, które są już łatwiejsze do ogarnięcia. Robimy to, aż każdy z tych kawałków da się rozwiązać bez większego trudu. Jak już mamy rozwiązania tych mniejszych problemów, to je łączymy, żeby uzyskać odpowiedź na nasz pierwotny problem. Przykłady? No to mamy algorytm sortowania szybkiego (Quicksort) oraz Mergesort, które świetnie sobie radzą z porządkowaniem danych, dzieląc je na mniejsze części. Jak patrzy się na to z perspektywy analizy algorytmów, to ta strategia często prowadzi do lepszej złożoności obliczeniowej, co sprawia, że jest naprawdę przydatna w praktyce, zwłaszcza w informatyce. W książce Cormena i innych, 'Introduction to Algorithms', można znaleźć sporo informacji na temat tych metod i ich zastosowań, co czyni je naprawdę istotnymi w obszarze programowania i analizy danych.

Pytanie 19

Jakie jest podstawowe zadanie firewalla w systemie komputerowym?

A. Zarządzanie ruchem sieciowym i blokowanie nieautoryzowanego dostępu
B. Zapobieganie wyciekom informacji na skutek awarii systemu
C. Ochrona danych na poziomie aplikacji internetowych
D. Szyfrowanie danych przesyłanych w sieci
Firewall to narzędzie, które zarządza ruchem sieciowym i blokuje nieautoryzowane połączenia. Jego głównym celem jest ochrona przed nieuprawnionym dostępem do systemu poprzez analizę i filtrowanie pakietów danych. Firewall działa na poziomie sieciowym i aplikacyjnym, co pozwala na skuteczne zatrzymywanie prób włamań, ataków DDoS oraz złośliwego oprogramowania próbującego komunikować się z serwerami zewnętrznymi. To niezbędny element ochrony każdej infrastruktury IT.

Pytanie 20

Które z wymienionych oznaczeń wskazuje na liniową złożoność algorytmu?

A. O(n)
B. O(1)
C. O(log n)
D. O(n2)
Złożoność O(n) oznacza liniową zależność czasu wykonania algorytmu od rozmiaru danych wejściowych. Oznacza to, że dla każdego dodatkowego elementu algorytm wykonuje jedną dodatkową operację. Algorytmy liniowe są jednymi z najczęściej stosowanych w praktyce, ponieważ oferują dobrą równowagę między szybkością a złożonością implementacji. Przykłady algorytmów o złożoności O(n) to przeszukiwanie liniowe (Linear Search), sumowanie elementów tablicy oraz niektóre algorytmy sortowania, takie jak Counting Sort dla określonych warunków. Liniowa złożoność czyni te algorytmy bardzo efektywnymi przy przetwarzaniu dużych zbiorów danych.

Pytanie 21

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

A. Protected
B. Public
C. Private
D. Static
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 22

Która zasada zwiększa bezpieczeństwo w sieci?

A. Zaniedbywanie aktualizacji systemu operacyjnego
B. Dzielnie się hasłami z przyjaciółmi
C. Korzystanie z mocnych, unikalnych haseł
D. Pobieranie plików z niepewnych źródeł
Używanie silnych, unikalnych haseł jest fundamentalną zasadą poprawiającą bezpieczeństwo w sieci. Silne hasło to takie, które składa się z co najmniej 12 znaków, zawiera wielkie i małe litery, cyfry oraz znaki specjalne. Takie hasła są trudne do złamania przez ataki brute force, które wykorzystują algorytmy do próbowania różnych kombinacji znaków. Przykładem silnego hasła może być 'P@ssw0rd!2023', które łączy różnorodne typy znaków. Używanie unikalnych haseł dla różnych kont jest równie ważne, ponieważ w przypadku naruszenia bezpieczeństwa jednego konta, inne pozostają zabezpieczone. Standardy takie jak NIST (National Institute of Standards and Technology) zalecają tworzenie haseł w sposób, który ogranicza ich przewidywalność. Narzędzia do zarządzania hasłami, takie jak LastPass czy 1Password, mogą pomóc w generowaniu i przechowywaniu silnych haseł, co dodatkowo redukuje ryzyko. Stosowanie tej zasady jest kluczowe w kontekście ochrony danych osobowych oraz zapobiegania kradzieży tożsamości.

Pytanie 23

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 24

Przyjmując, że opisana hierarchia klas właściwie odzwierciedla figury geometryczne i każda figura ma zdefiniowaną metodę do obliczania pola, to w której klasie można znaleźć deklarację metody liczPole()?

Ilustracja do pytania
A. czworokąt
B. trójkąt
C. trapez
D. figura
Metoda liczPole() znajduje się w klasie 'figura', ponieważ jest to klasa bazowa reprezentująca wspólne cechy dla wszystkich figur geometrycznych. Dziedziczenie tej metody przez klasy pochodne pozwala na zachowanie spójności kodu.

Pytanie 25

Metodyka zwinna (ang. agile) opiera się na

A. dekompozycji przedsięwzięcia na elementy, które są niezależnie projektowane, wytwarzane i testowane w krótkich iteracjach
B. przygotowaniu testów dla całego projektu, a następnie wprowadzaniu kolejnych jego fragmentów
C. podzieleniu projektu na kolejne etapy: planowanie, programowanie, testowanie, z ciągłym oszacowaniem ryzyka projektu
D. zaplanowaniu całej aplikacji na początku projektu i jej tworzeniu na przemian z testowaniem
Metodyka zwinna (agile) polega na podziale projektu na mniejsze części (iteracje), które są projektowane, implementowane i testowane w krótkich cyklach. Takie podejście pozwala na szybkie reagowanie na zmieniające się wymagania klientów i wprowadzanie poprawek na bieżąco. Agile promuje bliską współpracę z klientem, co minimalizuje ryzyko nieporozumień i zwiększa szanse na stworzenie produktu spełniającego jego oczekiwania. Zamiast czekać na zakończenie całego projektu, poszczególne części aplikacji są dostarczane i testowane stopniowo, co skraca czas wdrożenia i umożliwia szybkie wykrycie błędów. Popularnymi frameworkami bazującymi na Agile są Scrum i Kanban, które organizują pracę zespołu w iteracyjne sprinty lub zadania wizualizowane na tablicach Kanban.

Pytanie 26

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

Ilustracja do pytania
A. 108
B. 115
C. 73
D. 0
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 27

Jakie z wymienionych czynności może zagrażać cyfrowej tożsamości?

A. Klikanie w podejrzane linki w wiadomościach e-mail
B. Tworzenie unikalnych oraz mocnych haseł
C. Cykliczna zmiana haseł do kont
D. Aktywacja uwierzytelniania dwuskładnikowego
Klikanie w podejrzane linki w wiadomościach e-mail to jedno z najczęstszych źródeł infekcji i naruszenia cyfrowej tożsamości. Cyberprzestępcy często wykorzystują phishing, czyli technikę polegającą na wysyłaniu fałszywych wiadomości, które wyglądają na autentyczne. Kliknięcie w link może prowadzić do zainstalowania złośliwego oprogramowania lub przekierowania na stronę wyłudzającą dane logowania. Aby uniknąć tego zagrożenia, zaleca się sprawdzanie adresu nadawcy, unikanie otwierania załączników z nieznanych źródeł i korzystanie z filtrów antyphishingowych.

Pytanie 28

Który z wymienionych elementów stanowi przykład zbiorowej ochrony?

A. Zatyczki do uszu
B. Ekran akustyczny
C. Okulary ochronne
D. Kask ochronny
Ekran akustyczny to przykład środka ochrony zbiorowej, który redukuje poziom hałasu w miejscu pracy, chroniąc większą grupę pracowników jednocześnie. Środki ochrony zbiorowej mają na celu eliminowanie zagrożeń u źródła i zabezpieczanie całego środowiska pracy, a nie pojedynczych osób. Ekrany akustyczne są często stosowane w zakładach produkcyjnych, gdzie hałas maszyn może przekraczać dopuszczalne normy. Dzięki nim można zmniejszyć poziom hałasu i poprawić komfort pracy, bez konieczności wyposażania każdego pracownika w ochronniki słuchu. Środki ochrony zbiorowej są bardziej efektywne w długoterminowej perspektywie, ponieważ zmniejszają ryzyko dla wszystkich pracowników na danym stanowisku.

Pytanie 29

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

A. Narzędzie do analizy kodu w czasie rzeczywistym
B. System monitorujący zmiany w kodzie źródłowym
C. Program łączący dynamiczne biblioteki z kodem źródłowym
D. Narzędzie przekształcające kod źródłowy na plik wykonywalny
Analiza kodu w czasie rzeczywistym to zadanie debuggera, który umożliwia śledzenie i analizowanie działania programu na bieżąco, a nie kompilatora. Program łączący dynamiczne biblioteki to linker, który działa po skompilowaniu kodu źródłowego i łączy pliki obiektowe oraz biblioteki w jeden program wykonywalny. System śledzący zmiany w kodzie źródłowym to system kontroli wersji, jak Git, który monitoruje zmiany w plikach projektu, ale nie zajmuje się tłumaczeniem kodu na język maszynowy.

Pytanie 30

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

A. Za pomocą systemu przerwań
B. Poprzez linie danych w magistrali systemowej
C. Bezpośrednio, omijając mostki systemowe
D. Używając wyłącznie pamięci RAM
Procesor komunikuje się z pamięcią podręczną (cache) za pomocą linii danych w magistrali systemowej, co jest kluczowym elementem architektury komputerowej. Magistrala systemowa to zestaw ścieżek, które umożliwiają przesyłanie danych pomiędzy różnymi komponentami systemu, w tym procesorem, pamięcią RAM oraz pamięcią podręczną. Pamięć podręczna działa jako bufor, który przechowuje najczęściej używane dane, co pozwala na znaczne zwiększenie szybkości operacji, ponieważ dostęp do pamięci cache jest znacznie szybszy niż dostęp do pamięci RAM. W standardach takich jak Intel's QuickPath Interconnect (QPI) czy AMD's HyperTransport, linie danych odgrywają kluczową rolę w efektywnej komunikacji, co przekłada się na ogólną wydajność systemu. Przykładowo, w nowoczesnych procesorach wielordzeniowych, każda rdzeń może mieć własną pamięć podręczną, a komunikacja za pomocą magistrali pozwala na synchronizację danych pomiędzy tymi rdzeniami oraz współdzielenie zasobów. Efektywne zarządzanie pamięcią podręczną i magistralą jest kluczowe dla osiągnięcia wysokiej wydajności w obliczeniach oraz przetwarzaniu danych.

Pytanie 31

Która z niżej wymienionych pozycji jest ekwiwalentem biblioteki jQuery?

A. Bootstrap
B. Lodash
C. Express.js
D. TypeScript
Bootstrap to framework CSS, który służy do stylizacji i tworzenia responsywnych interfejsów użytkownika, ale nie oferuje narzędzi do manipulacji danymi jak Lodash. TypeScript to język programowania, który rozszerza JavaScript o statyczne typowanie, ale nie pełni roli biblioteki do manipulacji obiektami i tablicami. Express.js to minimalny framework do budowy serwerów w Node.js i nie ma zastosowania w kontekście manipulacji danymi na poziomie frontendowym, jak ma to miejsce w przypadku Lodash.

Pytanie 32

Jak najlepiej przełożyć oczekiwania klienta na dokumentację techniczną dla programistów?

A. Pomijając szczegółowe wymagania techniczne
B. Opracowując wizualne makiety bez dokładnych opisów
C. Tworząc szczegółowy dokument z funkcjami oraz wymaganiami technicznymi
D. Rozmawiając wyłącznie z zespołem programistów
Sporządzenie szczegółowego dokumentu z funkcjami i wymaganiami technicznymi to najlepszy sposób na przełożenie wymagań klienta na specyfikację techniczną. Dokumentacja techniczna jest podstawą do stworzenia aplikacji zgodnej z oczekiwaniami klienta i pozwala na precyzyjne określenie zakresu prac. Zawiera ona opisy funkcjonalności, diagramy architektury, wymagania dotyczące wydajności oraz harmonogram wdrożenia, co minimalizuje ryzyko błędów i nieporozumień podczas realizacji projektu.

Pytanie 33

Resuscytacja krążeniowo-oddechowa polega na realizowaniu

A. 30 ucisków klatki piersiowej oraz 2 oddechy ratunkowe
B. 20 ucisków klatki piersiowej oraz 1 oddech ratunkowy
C. 10 ucisków klatki piersiowej oraz 5 oddechów ratunkowych
D. 15 ucisków klatki piersiowej oraz 3 oddechy ratunkowe
Resuscytacja krążeniowo-oddechowa (RKO) obejmuje 30 uciśnięć klatki piersiowej i 2 oddechy ratownicze. Jest to standardowy schemat stosowany w celu przywrócenia funkcji życiowych u osoby nieoddychającej.

Pytanie 34

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

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

Pytanie 35

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

Ilustracja do pytania
A. suma liczb 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. liczby parzyste z przedziału od 0 do 100
Liczby parzyste – Kod oblicza sumę, a nie wyświetla konkretne liczby. Suma liczb – Nie ogranicza się do liczb parzystych. Liczby z przedziału – To wyświetlenie pełnego zakresu, a nie obliczenie sumy parzystych.

Pytanie 36

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

A. free()
B. delete[]
C. sizeof()
D. malloc()
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 37

Który z podanych terminów najlepiej odnosi się do składnika statycznego w klasie?

A. Pole lub metoda, która jest przypisana do klasy, a nie do jej instancji
B. Metoda z dostępem ograniczonym tylko do tej samej klasy
C. Zmienna lokalna wewnątrz danej klasy
D. Funkcja, która wywołuje destruktor danej klasy
Składnik statyczny klasy to pole lub metoda, która należy do klasy jako całości, a nie do konkretnego obiektu. Oznacza to, że istnieje tylko jedna kopia składnika statycznego współdzielona przez wszystkie obiekty tej klasy. Przykład w C++: `class Licznik { public: static int liczbaObiektow; }`. Zmienna `liczbaObiektow` przechowuje liczbę utworzonych instancji klasy i jest wspólna dla wszystkich obiektów. Składniki statyczne są często używane do implementacji liczników, zarządzania zasobami lub przechowywania danych globalnych w obrębie klasy.

Pytanie 38

Kolor Pale Green w modelu RGB przedstawia się jako RGB(152, 251, 152). Jaki jest szesnastkowy kod tego koloru?

A. 98 FB 98
B. 98 FE 98
C. A0 FE A0
D. A0 FB A0
Błędne odpowiedzi wynikają z błędnej konwersji jednej z wartości RGB na system szesnastkowy. Drobna pomyłka w jednej wartości może skutkować zupełnie innym kolorem, dlatego dokładność w przeliczaniu jest bardzo ważna w projektowaniu graficznym.

Pytanie 39

Jakie są cechy testów interfejsu?

A. Ulepszają kod aplikacji
B. Sprawdzają prawidłowość pracy elementów graficznych oraz interakcji użytkownika z aplikacją
C. Analizują wydajność aplikacji w czasie rzeczywistym
D. Weryfikują zgodność aplikacji z przepisami prawnymi
Testy interfejsu użytkownika (UI) mają na celu sprawdzenie, czy elementy graficzne aplikacji są prawidłowo wyświetlane i czy interakcje użytkownika z aplikacją przebiegają zgodnie z założeniami. Testy UI pozwalają na wykrycie błędów w układzie, responsywności oraz dostępności aplikacji. Dzięki tym testom możliwe jest zapewnienie, że aplikacja jest intuicyjna i estetyczna, co bezpośrednio wpływa na satysfakcję użytkownika.

Pytanie 40

Testy mające na celu identyfikację błędów w interfejsach między modułami bądź systemami nazywane są testami

A. jednostkowymi
B. bezpieczeństwa
C. integracyjnymi
D. wydajnościowymi
Testy wydajnościowe koncentrują się na ocenie szybkości działania aplikacji pod obciążeniem, a nie na integracji komponentów. Testy bezpieczeństwa analizują podatności aplikacji na zagrożenia zewnętrzne, takie jak ataki hakerskie, i nie zajmują się bezpośrednią współpracą modułów. Testy jednostkowe sprawdzają pojedyncze funkcje lub klasy w izolacji, co oznacza, że nie wychwytują błędów w komunikacji między różnymi częściami systemu. Brak testów integracyjnych może prowadzić do problemów w działaniu aplikacji, mimo że jej poszczególne komponenty przeszły testy jednostkowe bez błędów.