Wyniki egzaminu

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

Egzamin zdany!

Wynik: 32/40 punktów (80,0%)

Wymagane minimum: 20 punktów (50%)

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

Który z elementów interfejsu użytkownika pozwala użytkownikowi wprowadzać dane tekstowe?

A. Dialog wyboru pliku
B. Pasek narzędziowy
C. Przycisk
D. Pole tekstowe
Pole tekstowe to element interfejsu użytkownika, który pozwala użytkownikowi na wprowadzanie danych tekstowych. Jest to jeden z najczęściej używanych komponentów UI w aplikacjach desktopowych, mobilnych i webowych. Pole tekstowe umożliwia wprowadzanie haseł, adresów e-mail, wiadomości i innych danych. W nowoczesnych aplikacjach często zawiera walidację, która sprawdza poprawność wpisywanych danych w czasie rzeczywistym. Dzięki swojej elastyczności, pola tekstowe mogą być wykorzystywane w różnorodnych formularzach, ankietach i systemach rejestracji użytkowników, co czyni je nieodzownym elementem aplikacji o dowolnym przeznaczeniu.

Pytanie 2

Jakie zadanie pełni pamięć operacyjna (RAM) w systemie komputerowym?

A. Zarządzanie przepływem danych między urządzeniami wejścia/wyjścia
B. Zapewnianie kopii zapasowej danych użytkownika
C. Tymczasowe przechowywanie danych i instrukcji dla procesora
D. Stałe przechowywanie systemu operacyjnego
Pamięć operacyjna, znana jako RAM (Random Access Memory), odgrywa kluczową rolę w funkcjonowaniu systemu komputerowego. Jej głównym zadaniem jest tymczasowe przechowywanie danych i instrukcji, które są niezbędne dla procesora w trakcie wykonywania programów. Kiedy uruchamiamy aplikację, jej kod oraz dane są ładowane z pamięci masowej (np. dysku twardego) do pamięci RAM, co umożliwia szybki dostęp do nich przez procesor. Dzięki dużej prędkości działania pamięć operacyjna znacząco przyspiesza procesy obliczeniowe, ponieważ operacje na danych przechowywanych w RAM są wielokrotnie szybsze niż na danych znajdujących się na dysku twardym. Współczesne komputery często wyposażone są w kilka gigabajtów pamięci RAM, co pozwala na efektywne zarządzanie wieloma uruchomionymi aplikacjami jednocześnie. Standardy takie jak DDR4 i DDR5 określają nie tylko wydajność, ale również szybkość przesyłania danych, co ma kluczowe znaczenie w kontekście wydajności systemu komputerowego. W efekcie, pamięć operacyjna jest niezbędna do płynnego działania systemu operacyjnego oraz aplikacji, a jej pojemność i szybkość mają bezpośredni wpływ na ogólną wydajność komputera.

Pytanie 3

Co jest podstawowym celem ochrony danych osobowych?

A. Zapewnienie anonimowości użytkownikom internetu
B. Utrudnienie pracy organom ścigania
C. Publikowanie danych osobowych w celach marketingowych
D. Ochrona danych osobowych przed nieuprawnionym dostępem i wykorzystaniem
Ochrona danych osobowych przed nieuprawnionym dostępem i wykorzystaniem to podstawowy cel ochrony danych osobowych. Zasady ochrony prywatności, takie jak RODO (GDPR), zapewniają użytkownikom prawo do kontroli nad swoimi danymi i decydowania, kto może je przetwarzać. Firmy i organizacje muszą wdrażać środki techniczne oraz organizacyjne, aby zabezpieczyć dane przed wyciekiem, kradzieżą i nadużyciami. Przestrzeganie tych zasad nie tylko chroni jednostki, ale również buduje zaufanie klientów do przedsiębiorstw.

Pytanie 4

Które z poniższych typów sortowania jest najbardziej efektywne dla dużych zbiorów danych w większości przypadków?

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

Pytanie 5

Reguła zaangażowania i konsekwencji jako jedna z reguł wywierania wpływu wiąże się

A. z doprowadzeniem spraw do końca
B. z odwdzięczeniem się osobie, która wyświadczyła nam przysługę
C. z posłuszeństwem wobec autorytetów
D. z sugerowaniem się opinią danej społeczności
Reguła zaangażowania i konsekwencji odnosi się do potrzeby doprowadzenia spraw do końca. Kiedy ktoś podejmie decyzję lub działanie, jest bardziej skłonny kontynuować, aby zachować spójność wewnętrzną i unikać dysonansu poznawczego.

Pytanie 6

Na obrazie przedstawiono fragment emulacji systemu iOS z prostą aplikacją. Górna część strony zachodzi na belkę ze stanem baterii. Który z zapisów należy zastosować w miejscu znaków zapytania, aby wprowadzić tylko marginesy górne wyłącznie dla platformy iOS?

Ilustracja do pytania
A. x:TypeArguments="Thickness"<br/> iOS= "0, 20, 0, 0"<br/> Android= "0, 0, 0, 0"<br/> WinPhone= "0, 0, 0, 0"
B. x:TypeArguments="Thickness"<br/> iOS= 20
C. x:TypeArguments="Thickness"<br/> iOS= "0, 0, 0, 0"<br/> Android= "0, 20, 0, 0"<br/> WinPhone= "0, 0, 0, 0"
D. x:TypeArguments="Thickness" <br/> (0, 20, 0, 0)
Odpowiedź czwarta jest prawidłowa, ponieważ prawidłowo wykorzystuje mechanizm OnPlatform w XAML do zastosowania specyficznych ustawień dla różnych platform. W przypadku iOS zastosowano margines górny wynoszący 20 jednostek, co jest konieczne, aby uwzględnić przestrzeń zajmowaną przez status bar systemowy. Takie podejście jest zgodne z dobrymi praktykami projektowania aplikacji wieloplatformowych, gdzie różne platformy mogą wymagać różnych ustawień interfejsu użytkownika. Przykładowo, w aplikacjach tworzonych przy użyciu Xamarin.Forms, korzystanie z OnPlatform pozwala na dynamiczne dostosowywanie interfejsu w zależności od platformy, co zwiększa elastyczność i poprawia doświadczenie użytkownika. Dodatkowo, zastosowanie marginesów tylko dla platformy iOS pozwala na zachowanie spójności i pełną kontrolę nad wyglądem aplikacji na innych platformach takich jak Android czy Windows Phone, gdzie takie dostosowanie nie jest konieczne. Uwzględnienie tych różnic jest kluczowe dla tworzenia aplikacji, które wyglądają i działają dobrze na wszystkich docelowych urządzeniach.

Pytanie 7

Jedną z chorób, która występuje u programistów na skutek długotrwałej pracy z myszą komputerową lub klawiaturą, charakteryzującą się bólami, drętwieniem i zaburzeniami czucia w obszarze 1-3 palca ręki jest

A. zespól cieśni kanału nadgarstka
B. Dyskopatia
C. zespół suchego oka
D. kifoza
Zespół cieśni kanału nadgarstka to schorzenie, które powstaje w wyniku ucisku na nerw pośrodkowy w kanale nadgarstka. Jest to wąski tunel utworzony przez kości nadgarstka oraz więzadła, przez który przechodzą ścięgna oraz nerwy odpowiedzialne za czucie i ruch w dłoni. Objawy zespołu cieśni kanału nadgarstka obejmują bóle, drętwienie oraz zaburzenia czucia, szczególnie w obszarze pierwszych trzech palców ręki. Praca z myszą komputerową i klawiaturą przez długi czas, szczególnie w niewłaściwej ergonomicznej pozycji, może prowadzić do nadmiernego obciążenia i zapalenia tkanek otaczających nerw pośrodkowy. W praktyce, osoby cierpiące na to schorzenie często skarżą się na problemy z chwytaniem przedmiotów, a także na osłabienie siły uchwytu. W leczeniu zespołu cieśni kanału nadgarstka zaleca się m.in. unikanie czynników przyczynowych, stosowanie ortez, fizjoterapię oraz w niektórych przypadkach leczenie chirurgiczne. Należy również zwrócić uwagę na ergonomię stanowiska pracy, co może znacząco zredukować ryzyko wystąpienia tej dolegliwości. Zarządzanie czasem spędzanym przy komputerze oraz regularne przerwy są kluczowe w prewencji tego schorzenia.

Pytanie 8

Mechanizm programowania obiektowego w C++, wykorzystujący funkcje wirtualne (z ang. Virtual), który przy wywołaniu metod zwalnia programistę z obowiązku sprawdzenia jaką klasę pochodną aktualnie obsługuje, np. przez wskaźnik nosi nazwę

A. hermetyzacji
B. dziedziczenia
C. przeciążenia
D. polimorfizmu
Dziedziczenie pozwala na przejmowanie metod i właściwości z klasy bazowej, ale samo w sobie nie umożliwia dynamicznego wyboru metody w czasie działania programu. Przeciążenie (overloading) polega na definiowaniu wielu metod o tej samej nazwie, ale różnych parametrach, co nie jest równoznaczne z polimorfizmem. Hermetyzacja (encapsulation) koncentruje się na ukrywaniu szczegółów implementacyjnych i dostępie do danych tylko przez interfejs klasy, ale nie dotyczy mechanizmu wyboru metody w trakcie działania aplikacji.

Pytanie 9

Który modyfikator pozwala na dostęp do składowej klasy z dowolnego miejsca w programie?

A. Private
B. Static
C. Protected
D. Public
Modyfikator 'Public' umożliwia dostęp do składowych klasy z dowolnego miejsca w programie, zarówno w ramach tej samej klasy, jak i poza nią. To najbardziej otwarty modyfikator dostępu, który pozwala na tworzenie interfejsów API, umożliwiających korzystanie z publicznych metod i właściwości przez inne klasy oraz moduły. W praktyce oznacza to, że publiczne metody są widoczne globalnie, co pozwala na ich wywoływanie bez ograniczeń. Jest to przydatne w przypadkach, gdy dana funkcjonalność musi być dostępna w różnych częściach programu lub aplikacji.

Pytanie 10

Który z etapów cyklu życia projektu polega na określeniu wymagań użytkownika?

A. Testowanie
B. Implementacja
C. Analiza
D. Planowanie
Planowanie koncentruje się na ustaleniu harmonogramu, budżetu i alokacji zasobów, ale nie obejmuje dogłębnej analizy wymagań użytkownika. Implementacja to faza, w której kod jest tworzony na podstawie wcześniejszych ustaleń, ale nie jest to etap zbierania wymagań. Testowanie odbywa się po implementacji i służy wykrywaniu błędów, a nie definiowaniu oczekiwań użytkownika wobec produktu.

Pytanie 11

Co należy zrobić, aby obsłużyć zdarzenie kliknięcia przycisku w aplikacji desktopowej?

A. Podłączyć zdarzenie kliknięcia do odpowiedniej metody w kodzie
B. Zmodyfikować plik XAML
C. Stworzyć nowy dialog modalny
D. Zdefiniować metodę w systemie menu
Podłączenie zdarzenia kliknięcia do odpowiedniej metody w kodzie to podstawowy krok w obsłudze interakcji użytkownika z przyciskiem w aplikacjach desktopowych. W środowiskach takich jak WPF (Windows Presentation Foundation), WinForms czy Qt, każda kontrolka (np. przycisk) może posiadać przypisaną metodę, która zostanie wywołana w momencie kliknięcia. Dzięki temu możliwe jest wykonywanie operacji, takich jak otwieranie nowych okien, przetwarzanie danych lub aktualizacja interfejsu użytkownika. Prawidłowa implementacja zdarzeń jest kluczowa dla funkcjonalności aplikacji i umożliwia dynamiczne reagowanie na działania użytkownika. W środowiskach takich jak Visual Studio, proces ten jest intuicyjny i często realizowany przez mechanizm 'kliknij i przeciągnij', a następnie przypisanie kodu do wygenerowanego szkieletu funkcji.

Pytanie 12

Jakie jest główne zadanie narzędzia do zarządzania projektami?

A. Optymalizacja kodu programu
B. Tworzenie bazy danych dla projektu
C. Tworzenie animacji komputerowych
D. Zarządzanie zadaniami i czasem w projekcie
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 13

Jak procesor komunikuje się z pamięcią podręczną (cache)?

A. Poprzez system przerwań
B. Bezpośrednio, z pominięciem mostków systemowych
C. Za pomocą linii danych w magistrali systemowej
D. Wykorzystując jedynie pamięć 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 14

Metoda poszukiwań w tablicach posortowanych, która polega na podzieleniu tablicy na kilka bloków i wyszukaniu liniowym tylko w tym bloku, w którym docelowy element może się znajdować, w języku angielskim nosi nazwę

A. Exponential search.
B. Binary search.
C. Jump search.
D. Ternary 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 15

Przedstawiony fragment kodu w języku Java wypełnia tablicę wartościami:

Ilustracja do pytania
A. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
B. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
C. 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
D. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
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 16

Co oznacza "operacja wejścia" w programowaniu?

A. Usuwanie błędów w kodzie programu
B. Dodawanie nowych funkcji do programu
C. Przekazywanie danych do programu z zewnętrznego źródła
D. Modyfikowanie wartości zmiennych globalnych
Operacja wejścia w programowaniu polega na przekazywaniu danych do programu z zewnętrznego źródła, takiego jak klawiatura, plik lub strumień danych. W języku C++ typowym przykładem operacji wejścia jest `cin >> zmienna;`, która pobiera dane od użytkownika i przypisuje je do zmiennej. Operacje wejścia są niezbędne w interaktywnych aplikacjach, które wymagają danych od użytkownika w czasie rzeczywistym, umożliwiając dynamiczne przetwarzanie informacji.

Pytanie 17

Który z poniższych parametrów dysku twardego ma największy wpływ na jego szybkość?

A. Rodzaj złącza (SATA/PCIe)
B. Ilość pamięci podręcznej (Cache)
C. Prędkość obrotowa talerzy (RPM)
D. Pojemność dysku
Pojemność dysku jest istotnym parametrem, ale nie wpływa bezpośrednio na jego szybkość działania. Większa pojemność oznacza, że na dysku można przechowywać więcej danych, jednak nie przyspiesza to operacji odczytu i zapisu. Wydajność jest bardziej związana z tym, jak szybko dane mogą być przesyłane do i z dysku, co nie jest bezpośrednio związane z jego pojemnością. Rodzaj złącza, takiego jak SATA czy PCIe, również ma swoje znaczenie, ale w przypadku dysków HDD to prędkość obrotowa jest kluczowa dla szybkości pracy. Złącza PCIe, które są znacznie szybsze od SATA, są bardziej relevantne w kontekście dysków SSD, gdzie czas dostępu i szybkość transferu są znacznie wyższe niż w przypadku talerzowych dysków HDD. Na koniec, ilość pamięci podręcznej (Cache) dysku, choć ma znaczenie w usprawnieniu operacji odczytu i zapisu, to jej wpływ jest marginalny w porównaniu do prędkości obrotowej. Cache działa jako bufor, ale nie zastąpi wyższej prędkości obrotowej talerzy, która decyduje o tym, jak быстро można uzyskać dostęp do danych przechowywanych na dysku.

Pytanie 18

Przedstawiony cytat jest opisem metodyki RAD. Rozwinięcie tego skrótu można przetłumaczyć na język polski jako:

Ilustracja do pytania
A. prototypowanie wsparte testami jednostkowymi
B. środowisko refaktoryzacji aplikacji
C. środowisko szybkiego rozwoju aplikacji
D. zintegrowane środowisko programistyczne
RAD (Rapid Application Development) to metodyka szybkiego rozwoju aplikacji, kładąca nacisk na szybkie prototypowanie, minimalizację dokumentacji i bliską współpracę z klientem. Celem RAD jest skrócenie czasu potrzebnego na dostarczenie działającego oprogramowania poprzez iteracyjne tworzenie i testowanie prototypów. Taka metodologia jest często stosowana w dynamicznych projektach, gdzie wymagania mogą się zmieniać.

Pytanie 19

Klasie o nazwie samochod nadano cechy: marka, rocznik, parametry[]. Cechy te należy zdefiniować jako

A. funckje
B. interfejsy
C. metody
D. pola
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 20

Aby programować aplikacje desktopowe za pomocą języka Java można wybrać środowisko

A. SharpDevelop
B. Ms Visual Studio
C. NetBeans
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.

Pytanie 21

W programie napisanym w języku C++ należy utworzyć zmienną, która przechowa liczbę rzeczywistą. Określ typ tej zmiennej

A. double
B. numeric
C. int
D. number
Typ 'int' przechowuje liczby całkowite, co czyni go nieodpowiednim do przechowywania liczb zmiennoprzecinkowych. Typ 'number' nie jest prawidłowym typem danych w C++. 'Numeric' nie jest natywnym typem w C++, a jego użycie może prowadzić do błędów kompilacji.

Pytanie 22

Którą nazwę kontrolki należy zapisać w pierwszej linii kodu, w miejscu &lt;???, aby została ona wyrenderowana w przedstawiony sposób?

Ilustracja do pytania
A. Spinner
B. SeekBar
C. Switch
D. RatinoBar
Switch to kontrolka używana w Androidzie do stworzenia elementu interfejsu użytkownika, który pozwala użytkownikowi przełączać się między dwoma stanami. Domyślnie stany te są identyfikowane jako włączone i wyłączone, co jest szczególnie przydatne w przypadku funkcji wymagających prostego wyboru binarnego, jak na przykład włączanie lub wyłączanie ustawień. Kod XML użyty w pytaniu zawiera atrybuty android:textOff i android:textOn, które są typowe dla klasy Switch i pozwalają zdefiniować tekst, jaki ma być wyświetlany w stanie wyłączonym i włączonym. W praktyce Switch jest często stosowany w aplikacjach mobilnych do kontroli ustawień użytkownika, co pozwala na łatwą i intuicyjną obsługę. Dobrymi praktykami jest używanie Switch w kontekście jednoznacznego wyboru, aby nie wprowadzać użytkownika w błąd. Warto również zadbać o dostępność i odpowiednie etykietowanie kontrolki, co zapewnia jej zrozumiałość dla wszystkich użytkowników.

Pytanie 23

Przedstawiony zapis w języku C# oznacza definicję klasy Car, która:

Ilustracja do pytania
A. jest zaprzyjaźniona z klasą Vehicle
B. jest klasą bazową (nie dziedziczy po żadnej klasie)
C. korzysta z pól prywatnych klasy Vehicle
D. dziedziczy po Vehicle
Klasa Car dziedziczy po klasie Vehicle w języku C#. Dziedziczenie pozwala na wykorzystanie funkcji i właściwości klasy bazowej (Vehicle) w klasie pochodnej (Car). Umożliwia to wielokrotne użycie kodu i rozszerzanie funkcjonalności bez konieczności powielania kodu. Jest to fundamentalny mechanizm programowania obiektowego.

Pytanie 24

Szkodliwe oprogramowanie, zaprojektowane w celu zapewnienia hakerom uprawnień administracyjnych do komputera ofiary bez jej wiedzy, to

A. rootkit
B. wirus
C. keylogger
D. robak
Rootkit to rodzaj szkodliwego oprogramowania, które ukrywa swoją obecność i zapewnia hakerom uprawnienia administracyjne do systemu ofiary. Jest trudny do wykrycia i stanowi poważne zagrożenie bezpieczeństwa.

Pytanie 25

Które z poniższych zastosowań najlepiej opisuje bibliotekę jQuery?

A. Ułatwianie manipulacji DOM i obsługi zdarzeń w JavaScript
B. Tworzenie interfejsów w aplikacjach desktopowych
C. Projektowanie struktur baz danych
D. Tworzenie aplikacji mobilnych
jQuery to popularna biblioteka JavaScript, która ułatwia manipulację DOM (Document Object Model), obsługę zdarzeń oraz wykonywanie animacji na stronach internetowych. Dzięki jQuery programiści mogą znacznie skrócić ilość kodu potrzebnego do realizacji operacji na elementach HTML. Biblioteka ta zapewnia również wygodny sposób na wykonywanie asynchronicznych żądań HTTP (AJAX), co pozwala na dynamiczne pobieranie danych z serwera bez konieczności przeładowywania całej strony. jQuery jest szeroko stosowane w projektach, które wymagają interaktywności oraz lekkich efektów wizualnych. Choć w ostatnich latach jego popularność spadła na rzecz bardziej zaawansowanych frameworków takich jak React czy Angular, jQuery nadal jest cenione za prostotę, wydajność oraz bogaty ekosystem gotowych wtyczek i rozszerzeń.

Pytanie 26

Które określenie najlepiej opisuje złożoność obliczeniową algorytmy quicksort?

A. jest wyższa niż złożoność sortowania bąbelkowego
B. jest wyższa niż O(n2).
C. jest różna w zależności od wyboru elementu rozdzielającego
D. jest zawsze niższa niż złożoność każdego innego algorytmy sortowania
Quicksort to jeden z najszybszych i najczęściej stosowanych algorytmów sortowania, ale jego złożoność obliczeniowa nie jest stała i zależy od wyboru elementu rozdzielającego (pivot). W najgorszym przypadku, gdy pivot wybierany jest niefortunnie (np. największy lub najmniejszy element), złożoność quicksort wynosi O(n²). W przypadku optymalnym (pivot dzieli zbiór na dwie równe części), złożoność to O(n log n). Algorytm ten działa w sposób rekurencyjny, dzieląc tablicę na mniejsze podzbiory, co czyni go bardzo efektywnym dla dużych zbiorów danych. W praktyce quicksort jest często szybszy niż sortowanie przez scalanie (merge sort) ze względu na mniejszą liczbę operacji przesuwania danych, mimo że oba algorytmy mają podobną średnią złożoność obliczeniową.

Pytanie 27

W firmie IT obowiązują przedstawione wytyczne dotyczące zarządzania projektami, Wynika z nich, że firma stosuje model zarządzania

Ilustracja do pytania
A. kaskadowy
B. prototypowy
C. zwinny
D. spiralny
Model zarządzania projektami opisany w pytaniu to model zwinny (Agile). Opiera się na iteracyjnych i inkrementalnych podejściach do tworzenia oprogramowania, umożliwiając szybkie dostosowanie do zmieniających się wymagań klienta.

Pytanie 28

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

A. Oprogramowanie wspierające wyłącznie zarządzanie danymi osobowymi
B. Zespół urządzeń technicznych wykorzystywanych do pracy biurowej
C. Zespół ludzi, procedur, oprogramowania i sprzętu służący do przetwarzania danych
D. Sieć komputerowa umożliwiająca komunikację między użytkownikami
Pierwsza z niepoprawnych odpowiedzi definiuje system informatyczny jedynie jako zespół urządzeń technicznych używanych do pracy biurowej. Tego rodzaju podejście jest zbyt wąskie i nie obejmuje istotnych elementów, takich jak ludzie i procedury, które są kluczowe w kontekście przetwarzania danych. Oprogramowanie i procedury są równie ważne, ponieważ stanowią podstawę dla skutecznego działania systemu informatycznego. Kolejna odpowiedź ogranicza się wyłącznie do oprogramowania wspierającego zarządzanie danymi osobowymi, co również jest nieprawidłowe. Systemy informatyczne są zdecydowanie bardziej złożone i obejmują szereg funkcjonalności, takich jak zarządzanie procesami, analizę biznesową czy integrację z innymi systemami. Ostatnia odpowiedź odnosi się do sieci komputerowej, co jest tylko jednym z komponentów systemu informatycznego. Sieć komputerowa może być wykorzystywana do komunikacji, ale nie definiuje całego systemu, ponieważ brak w niej odniesienia do ludzi, procedur i oprogramowania, które są kluczowe dla pełnego zrozumienia roli systemu informatycznego w organizacji.

Pytanie 29

Który z poniższych rodzajów testów najlepiej sprawdza odporność aplikacji na duże obciążenie?

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

Pytanie 30

Jaka jest główna cecha algorytmów szyfrowania symetrycznego?

A. Użycie tego samego klucza do szyfrowania i deszyfrowania
B. Działanie bez użycia klucza
C. Użycie różnych kluczy do szyfrowania i deszyfrowania
D. Szyfrowanie tylko plików tekstowych
Algorytmy szyfrowania symetrycznego to takie, które używają tego samego klucza do szyfrowania i deszyfrowania danych. To jedna z najstarszych metod i, co ważne, bardzo często stosowanych, bo działa dość szybko i nie wymaga wielkich zasobów. Przykłady, które na pewno słyszałeś, to AES i DES. Symetryki są super w komunikacji sieciowej, przy przechowywaniu danych, a także w różnych protokołach bezpieczeństwa. Fajnie, że są szybkie, ale z drugiej strony trzeba pamiętać o tym, żeby klucz był bezpiecznie przechowywany, bo to może stanowić nie lada problem.

Pytanie 31

Co stanie się po wykonaniu przedstawionego fragmentu kodu napisanego w języku C++?

Ilustracja do pytania
A. do tablicy liczby, na jej końcu, dodawane są kolejne wartości
B. z tablicy liczby usuwane są elementy, za każdym obiegiem pętli usuwany jest element z jej początku
C. z tablicy liczby usuwane są elementy, za każdym obiegiem pętli usuwany jest element z jej końca
D. do tablicy liczby, na jej początku, dodawane są kolejne wartości
Usuwanie elementów z początku tablicy wymaga zastosowania mechanizmu przesunięcia pozostałych elementów, co nie jest częścią tego kodu. Usuwanie elementów z końca tablicy wymaga użycia funkcji pop_back() lub podobnych metod, ale nie jest to pokazane w tym fragmencie kodu. Dodawanie elementów na początku tablicy wymaga użycia funkcji insert() lub innego mechanizmu, co różni się od przedstawionego algorytmu.

Pytanie 32

Który z poniższych przykładów przedstawia poprawną deklarację zmiennej typu całkowitego w języku C++?

A. bool liczba;
B. char liczba;
C. float liczba;
D. int 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 33

Jakie jest główne zastosowanie metod wirtualnych?

A. Umożliwienie korzystania z metod bezpośrednio z klasy bazowej
B. Zapewnienie, że metoda działa wyłącznie na danych statycznych
C. Umożliwienie dynamicznego wiązania metod w czasie wykonania
D. Umożliwienie wielokrotnego dziedziczenia
Metody wirtualne umożliwiają dynamiczne wiązanie metod w czasie wykonywania programu (ang. runtime). Oznacza to, że wywołanie metody zależy od rzeczywistego typu obiektu, a nie od typu wskaźnika lub referencji, za pomocą której został on wywołany. Mechanizm ten pozwala na implementację polimorfizmu, który jest jednym z kluczowych filarów programowania obiektowego. Dzięki metodom wirtualnym można uzyskać elastyczność i rozszerzalność kodu, umożliwiając klasom pochodnym dostarczanie własnych wersji metod zdefiniowanych w klasie bazowej. To prowadzi do bardziej zorganizowanego i skalowalnego kodu, ponieważ nowe funkcjonalności można dodawać, rozszerzając istniejące klasy, zamiast modyfikować kod bazowy.

Pytanie 34

Jaka jest funkcja instrukcji throw w języku C++?

A. Kończy działanie programu, jeśli wystąpi wyjątek
B. Tworzy nowy wyjątek w trakcie działania programu
C. Ogranicza zakres zmiennych w bloku try
D. Zgłasza wyjątek, który może być przechwycony przez blok catch
Instrukcja 'throw' w C++ służy do zgłaszania wyjątków, które mogą być następnie przechwycone i obsłużone przez blok 'catch'. Mechanizm ten pozwala na przerwanie normalnego przepływu programu w przypadku wystąpienia błędu i skierowanie sterowania do odpowiedniego miejsca obsługi wyjątków. 'Throw' jest kluczowym elementem obsługi błędów i umożliwia propagowanie informacji o błędach na wyższe poziomy programu, co pozwala na ich efektywną obsługę. Używanie wyjątków poprawia czytelność kodu, umożliwiając oddzielenie logiki biznesowej od logiki obsługi błędów.

Pytanie 35

Przedstawiony symbol ochrony przeciwpożarowej oznacza

Ilustracja do pytania
A. wyłącznik prądu
B. alarm pożarowy
C. tablicę rozdzielczą
D. stanowisko zdalnego uwalniania
Ten symbol to alarm pożarowy. Jest naprawdę ważny w systemach przeciwpożarowych, bo pozwala szybko dać znać o zagrożeniu. Dzięki temu można dużo szybciej zadbać o bezpieczeństwo w różnych budynkach.

Pytanie 36

Co to jest własność intelektualna?

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

Pytanie 37

Oprogramowaniem do śledzenia błędów oraz do zarządzania projektami jest:

A. Git
B. Jira
C. Jasmine
D. Bugzilla
Jira to świetne narzędzie, które pomaga w śledzeniu błędów i zarządzaniu projektami. Dzięki niemu można łatwo prowadzić dokumentację i organizować zadania w zespole. Dlatego wiele zespołów IT wybiera właśnie to rozwiązanie, bo ułatwia pracę i poprawia komunikację.

Pytanie 38

Który z poniższych komponentów UI aplikacji mobilnych odpowiada za nawigację między ekranami?

A. ListView
B. Navigation Drawer
C. Pasek narzędziowy
D. Przycisk
Przycisk (Button) jest podstawowym elementem interfejsu użytkownika, ale nie spełnia funkcji nawigacyjnej na poziomie strukturalnym – jego zastosowanie ogranicza się do wywoływania pojedynczych akcji po kliknięciu. ListView to komponent wyświetlający listę elementów, ale nie odpowiada za nawigację pomiędzy ekranami aplikacji, a jedynie za prezentację danych. Pasek narzędziowy (Toolbar) to element, który zwykle znajduje się na górze ekranu i umożliwia dostęp do opcji takich jak wyszukiwanie lub ustawienia, ale nie pełni funkcji bocznego menu nawigacyjnego, jak Navigation Drawer.

Pytanie 39

Co należy zrobić po znalezieniu błędu w kodzie podczas testowania?

A. Usunąć moduł zawierający błąd
B. Poprawić błąd i ponownie przetestować aplikację
C. Zignorować błąd, jeśli aplikacja działa poprawnie
D. Zgłosić błąd do użytkownika końcowego
Po znalezieniu błędu w kodzie podczas testowania kluczowym krokiem jest poprawienie błędu i ponowne przetestowanie aplikacji. Taki cykl iteracyjny pozwala na eliminację błędów i zapewnienie, że aplikacja działa zgodnie z oczekiwaniami. Testowanie po każdej poprawce jest niezbędne, aby upewnić się, że wprowadzone zmiany nie wpłynęły negatywnie na inne części aplikacji. Taka praktyka jest integralną częścią Continuous Integration (CI) i Continuous Deployment (CD), które zakładają częste wdrażanie i testowanie kodu. Poprawienie błędów na wczesnym etapie rozwoju minimalizuje koszty i czas potrzebny na naprawę błędów w fazie produkcyjnej, co przyczynia się do stabilności i wysokiej jakości końcowego produktu.

Pytanie 40

W języku Java wyjątek ArrayIndexOutOfBoundsException może pojawić się w sytuacji odwołania się do elementu tablicy, którego

A. indeks jest z przedziału od 0 do n-1, gdzie n jest rozmiarem tablicy
B. indeks jest równy lub większy od rozmiaru tablicy
C. wartość jest większa niż rozmiar tablicy
D. wartość jest większa niż jego indeks
Indeks większy niż rozmiar – Indeks równy rozmiarowi również powoduje błąd. Indeks w przedziale 0 do n-1 – To poprawny zakres, nie generujący błędu. Wartość większa niż indeks – Nie wpływa na wystąpienie wyjątku, błąd wynika z odwołania się do nieistniejącego indeksu.