Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 14 stycznia 2025 15:57
  • Data zakończenia: 14 stycznia 2025 16:12

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

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

Jaki język programowania został stworzony z myślą o tworzeniu aplikacji na system Android?

A. Java
B. Python
C. Swift
D. Objective-C
Swift? To język, który Apple wymyśliło dla swoich aplikacji na iOS i macOS, więc nie ma go w Androidzie. Objective-C też jest używany do aplikacji Apple, ale na Androida nie zadziała. Python jest super i bardzo uniwersalny, ale nie jest językiem, który na Androidzie działa natywnie – są co prawda frameworki, jak Kivy, które pozwalają na pisanie aplikacji w Pythonie, ale to nie jest standard dla Androida.

Pytanie 2

Jaką funkcję pełnią okna dialogowe niemodalne?

A. wstrzymywania działania aplikacji w czasie wprowadzania oraz zatwierdzania danych
B. zarządzania stanem aplikacji za pomocą systemów menu
C. zarządzania ustawieniami aplikacji, jako okno, które pozostaje widoczne na ekranie przez cały czas trwania aplikacji
D. prezentowania komunikatów, które wymagają potwierdzenia, aby kontynuować działanie aplikacji
Okna dialogowe niemodalne umożliwiają interakcję z innymi elementami aplikacji nawet wtedy, gdy są otwarte. Są często wykorzystywane w ustawieniach aplikacji, pozwalając użytkownikowi na wprowadzanie zmian i jednoczesne korzystanie z innych funkcji programu.

Pytanie 3

Zaprezentowany wykres ilustruje wyniki przeprowadzonych testów

Ilustracja do pytania
A. funkcjonalności
B. użyteczności
C. ochrony
D. wydajności
Wykres przedstawia czasy odpowiedzi strony internetowej co jest kluczowe w kontekście testów wydajnościowych. Testy wydajnościowe mają na celu zmierzenie jak system radzi sobie pod określonym obciążeniem i jak szybko potrafi odpowiedzieć na zapytania użytkowników. Tego typu analiza pomaga zidentyfikować potencjalne wąskie gardła w infrastrukturze IT. Przykładowo jeżeli czasy odpowiedzi DNS lub połączenia są zbyt długie może to wskazywać na potrzebę optymalizacji serwerów DNS lub infrastruktury sieciowej. Testy te są nieodłącznym elementem zapewnienia jakości oprogramowania a ich prawidłowe wykonanie wpływa na doświadczenia użytkowników końcowych. Dobra praktyka w branży IT zakłada regularne przeprowadzanie testów wydajnościowych w celu monitorowania stabilności systemu w warunkach zbliżonych do rzeczywistych. Warto również zauważyć że narzędzia takie jak JMeter czy LoadRunner są powszechnie używane do przeprowadzania takich testów co umożliwia symulację różnorodnych scenariuszy obciążenia i analizę wyników w czasie rzeczywistym.

Pytanie 4

Zaprezentowany diagram ilustruje wyniki przeprowadzonych testów:

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

Pytanie 5

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. stałoprzecinkowy
B. łańcuchowym
C. zmiennoprzecinkowy
D. logicznym
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 6

Jakiego kodu dotyczy treść wygenerowana w trakcie działania programu Java?

Ilustracja do pytania
A. Kodu 2
B. Kodu 1
C. Kodu 3
D. Kodu 4
W przypadku kodu 4 mamy do czynienia z operatorem modulo zastosowanym na zmiennych x i y. Wiąże się to z próbą podziału przez zero co w języku Java skutkuje wygenerowaniem wyjątku java.lang.ArithmeticException. Przykładowo jeśli y wynosi zero to operacja x % y jest niedozwolona i spowoduje wyjątek. Rozumienie jak bezpiecznie wykonywać operacje arytmetyczne w Javie jest kluczowe dla unikania takich błędów. Zgodnie z dobrymi praktykami należy zawsze sprawdzać wartości zmiennych przed wykonaniem operacji matematycznych które mogą prowadzić do błędów wykonania programu. Ważne jest aby stosować techniki obsługi wyjątków try-catch które pozwalają na przechwycenie i odpowiednie zarządzanie błędami. Używanie odpowiednich testów jednostkowych może pomóc w wcześniejszym wykryciu takich problemów co jest standardem w branży programistycznej. Zrozumienie obsługi błędów w programowaniu pozwala na tworzenie bardziej niezawodnych i odpornych na błędy aplikacji co jest istotnym aspektem pracy profesjonalnego programisty.

Pytanie 7

Który z frameworków pozwala na tworzenie aplikacji z graficznym interfejsem użytkownika oraz obsługą wydarzeń?

A. TensorFlow
B. Qt
C. Django
D. Express.js
Qt to framework umożliwiający projektowanie aplikacji z graficznym interfejsem użytkownika (GUI) oraz obsługą zdarzeń. Qt oferuje narzędzia takie jak Qt Designer, które umożliwiają tworzenie interfejsów metodą 'przeciągnij i upuść'. Jest to jedno z najbardziej wszechstronnych narzędzi do budowy aplikacji wieloplatformowych, umożliwiające tworzenie oprogramowania dla Windows, macOS, Linux oraz urządzeń mobilnych. Qt obsługuje zdarzenia użytkownika, animacje, grafikę 3D i inne zaawansowane funkcjonalności, co czyni go idealnym narzędziem do budowy nowoczesnych aplikacji desktopowych i mobilnych.

Pytanie 8

Początkowym celem środowisk IDE takich jak: lntellij IDEA, Eclipse, NetBeans jest programowanie w języku

A. Python
B. C#
C. Java
D. C++
Środowiska IDE, takie jak IntelliJ IDEA, Eclipse oraz NetBeans, zostały zaprojektowane z myślą o programowaniu w języku Java, który jest jednym z najpopularniejszych języków programowania na świecie. Te zintegrowane środowiska deweloperskie oferują szereg narzędzi i funkcji, które znacznie ułatwiają proces tworzenia aplikacji w Java. Przykładowo, IntelliJ IDEA, stworzony przez firmę JetBrains, dostarcza wsparcie dla automatycznego uzupełniania kodu, refaktoryzacji oraz analizy statycznej, co przyspiesza cykl rozwoju oprogramowania. Eclipse, będący otwartym oprogramowaniem, umożliwia rozszerzanie swoich funkcji poprzez wtyczki, co czyni go elastycznym narzędziem dla programistów. NetBeans, z kolei, zapewnia łatwe w użyciu interfejsy oraz wsparcie dla wielu technologii związanych z Java, takich jak JavaFX czy Java EE, co czyni go idealnym wyborem dla rozwoju aplikacji webowych i desktopowych. Zgodnie z przyjętymi standardami w branży, Java jest językiem obiektowym, który charakteryzuje się wysoką przenośnością oraz bezpieczeństwem, co czyni go atrakcyjnym wyborem dla wielu projektów komercyjnych oraz edukacyjnych.

Pytanie 9

Jakie metody można wykorzystać do przechowywania informacji o użytkownikach w aplikacji mobilnej na systemie Android?

A. W rejestrze systemu
B. Wyłącznie w zewnętrznych bazach danych
C. Za pomocą plików SharedPreferences
D. Tylko w pamięci RAM
Przechowywanie danych w rejestrze systemu jest typowe dla aplikacji desktopowych działających na systemach Windows i nie znajduje zastosowania w środowisku Android. Zewnętrzne bazy danych są używane do przechowywania dużych ilości danych, ale nie są optymalnym rozwiązaniem dla prostych preferencji użytkownika, ponieważ wymagają bardziej skomplikowanej konfiguracji. Przechowywanie danych wyłącznie w pamięci RAM jest rozwiązaniem tymczasowym – dane te są tracone po zamknięciu aplikacji lub ponownym uruchomieniu urządzenia, co czyni je niepraktycznymi do przechowywania trwałych ustawień użytkownika.

Pytanie 10

Jaki rodzaj testów można scharakteryzować przedstawionym opisem?

Ilustracja do pytania
A. testy jednostkowe
B. testy wydajnościowe
C. testy funkcjonalne
D. testy zgodności
Testy funkcjonalne (functional testing) oceniają, czy aplikacja działa zgodnie z założeniami, testując jej poszczególne funkcjonalności. Są kluczowym etapem w procesie testowania oprogramowania, ponieważ potwierdzają poprawność implementacji.

Pytanie 11

Jakie są kluczowe korzyści z wykorzystania frameworków podczas programowania aplikacji desktopowych?

A. Skracają czas tworzenia aplikacji dzięki gotowym komponentom i narzędziom
B. Gwarantują dostęp do niskopoziomowego kodu systemowego
C. Ułatwiają kontrolę nad wersjami systemu operacyjnego
D. Redukują zapotrzebowanie na pamięć operacyjną aplikacji
Jedną z głównych zalet stosowania frameworków w programowaniu aplikacji desktopowych jest znaczne skrócenie czasu tworzenia oprogramowania dzięki gotowym komponentom i narzędziom. Frameworki dostarczają struktury, która standaryzuje rozwój aplikacji i minimalizuje konieczność pisania kodu od podstaw. Frameworki takie jak WPF, Qt czy Electron umożliwiają szybkie tworzenie interfejsów użytkownika, obsługę zdarzeń oraz integrację z bazami danych i API. Ponadto frameworki wspierają modularność i umożliwiają łatwe zarządzanie dużymi projektami, co przekłada się na lepszą organizację kodu i wyższą jakość oprogramowania.

Pytanie 12

Jaką strukturę danych stosuje się w algorytmie BFS (przeszukiwanie wszerz)?

A. Graf
B. Zbiór
C. Tablica
D. Kolejka
Stos jest używany w algorytmie DFS (przeszukiwanie w głąb), a nie w BFS, ponieważ DFS eksploruje możliwie najgłębiej dany graf, zanim wróci do poprzedniego poziomu. Lista jest używana jako struktura ogólnego przeznaczenia, ale nie jest podstawowym narzędziem w algorytmie BFS. Drzewa są strukturą danych, którą BFS może przeszukiwać, ale sama struktura drzewa nie jest narzędziem używanym w algorytmie BFS – to kolejka pełni tę funkcję, przechowując wierzchołki do odwiedzenia.

Pytanie 13

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

A. O(n2)
B. O(n)
C. O(log n)
D. O(1)
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 14

Które z wymienionych działań stanowi zagrożenie dla emocjonalnego dobrostanu człowieka w sieci?

A. Zła postawa podczas pracy przy komputerze
B. Przesyłanie niezaszyfrowanych plików
C. Nadmierne korzystanie z mediów społecznościowych
D. Cyberstalking
Cyberstalking to groźne zjawisko polegające na uporczywym prześladowaniu, nękaniu lub groźbach w przestrzeni internetowej. Może prowadzić do poważnych problemów emocjonalnych, takich jak lęki, depresja, a nawet zespół stresu pourazowego (PTSD). Cyberstalking narusza prywatność ofiary, wywołując poczucie zagrożenia i bezradności. Walka z tym zjawiskiem obejmuje zgłaszanie przypadków organom ścigania, blokowanie prześladowców i korzystanie z narzędzi ochrony prywatności.

Pytanie 15

Podejście obiektowe w rozwiązywaniu problemów obejmuje między innymi:

A. klasy, obiekty oraz hermetyzację
B. zmienne, procedury oraz funkcje
C. wyzwalacze i polimorfizm
D. pola, metody, rekurencję oraz kwerendy
Pola, metody i rekurencja to elementy programowania proceduralnego lub funkcjonalnego, ale nie odnoszą się bezpośrednio do obiektowego podejścia. Wyzwalacze i polimorfizm są elementami programowania, ale wyzwalacze nie są częścią podstaw obiektowości. Zmienne, procedury i funkcje to charakterystyczne dla podejścia proceduralnego, nie obiektowego.

Pytanie 16

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

A. Narzędzie do analizy kodu w czasie rzeczywistym
B. Narzędzie przekształcające kod źródłowy na plik wykonywalny
C. System monitorujący zmiany w kodzie źródłowym
D. Program łączący dynamiczne biblioteki z kodem źródłowym
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 17

Jakie rezultaty pojawią się po uruchomieniu poniższego kodu napisanego w języku C++?

Ilustracja do pytania
A. Bazowa. Bazowa.
B. Pochodna. Pochodna.
C. Pochodna. Bazowa.
D. Bazowa. Pochodna.
Kod wyświetla 'Pochodna. Pochodna.', co wskazuje, że metody klasy pochodnej przejęły kontrolę nad tymi z klasy bazowej. To fajny przykład polimorfizmu, jaki mamy w C++. Tutaj metoda w klasie pochodnej jest lepsza od metody w klasie bazowej. To, jakie wywołanie się wykona, zależy od konkretnego obiektu, a nie od tego, jaką metodę zdefiniowaliśmy w klasie bazowej.

Pytanie 18

Jaki modyfikator umożliwia dostęp do elementu klasy z każdego miejsca w kodzie?

A. Protected
B. Static
C. Private
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 19

Która z wymienionych kart graficznych oferuje lepszą wydajność w grach komputerowych?

A. Intel UHD Graphics 630 - zintegrowana
B. AMD Radeon R7 240 - 2GB GDDR5, 64-bit
C. AMD Radeon RX 580 - 8GB GDDR5, 256-bit
D. NVIDIA GeForce GTX 1050 Ti - 4GB GDDR5, 128-bit
AMD Radeon RX 580 to karta graficzna, która zapewnia wyższą wydajność w grach komputerowych w porównaniu do innych wymienionych opcji. Wyposażona w 8GB pamięci GDDR5 oraz 256-bitową szynę danych, karta ta jest w stanie obsługiwać bardziej złożone tekstury oraz większe rozdzielczości. Jej architektura Polaris pozwala na lepsze zarządzanie energią oraz wydajność w grach, co czyni ją idealnym wyborem dla graczy. Dzięki obsłudze technologii DirectX 12 i Vulkan, RX 580 jest w stanie wykorzystać najnowsze osiągnięcia w dziedzinie grafiki, co przekłada się na wyższą jakość obrazu oraz płynność animacji. Przykłady gier, w których RX 580 sprawdza się najlepiej to 'Far Cry 5' czy 'Shadow of the Tomb Raider', gdzie karta umożliwia granie w wysokich ustawieniach graficznych z zachowaniem wysokiej liczby klatek na sekundę. Standardy, takie jak PCIe 3.0, zapewniają pełną kompatybilność z nowoczesnymi płytami głównymi, co czyni tę kartę doskonałym wyborem dla entuzjastów gier komputerowych.

Pytanie 20

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

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

Pytanie 21

Który z wymienionych składników wchodzi w skład podstawowego wyposażenia środowiska IDE?

A. Edytor graficzny, przeglądarka kodu, narzędzia analityczne
B. Kompilator, edytor kodu, debugger
C. Edytor tekstowy, przeglądarka internetowa, translator
D. Kompilator, serwer webowy, system kontroli wersji
Kompilator, edytor kodu i debugger to podstawowe narzędzia, które stanowią fundament każdego środowiska IDE (Integrated Development Environment). Kompilator tłumaczy kod źródłowy na pliki wykonywalne, edytor kodu umożliwia tworzenie i modyfikowanie kodu, a debugger pomaga w analizowaniu i eliminowaniu błędów. Współdziałanie tych narzędzi pozwala programiście na pełny cykl tworzenia aplikacji – od pisania kodu, przez testowanie, aż po finalne wdrożenie. Dzięki integracji tych narzędzi w jednym środowisku, praca staje się bardziej efektywna i intuicyjna.

Pytanie 22

Wzorzec projektowy "Metoda szablonowa" (Template method) stosuje się do:

A. gromadzenia obiektów w jednorodnej kolekcji
B. centralizacji zarządzania wieloma instancjami obiektów
C. organizowania obiektów w hierarchiczne struktury drzewiaste
D. określenia szkieletu algorytmu i pozostawienia szczegółów implementacji dla podklas
Wzorzec Metoda Szablonowa (Template Method) umożliwia zdefiniowanie szkieletu algorytmu w klasie bazowej, natomiast szczegółowa implementacja poszczególnych kroków jest pozostawiona podklasom. Dzięki temu wzorzec promuje zasadę ponownego użycia kodu i zapewnia spójność w strukturze algorytmów. Template Method jest często stosowany w przypadku procesów, które mają stałą strukturę, ale mogą wymagać różnej implementacji w zależności od specyficznych potrzeb. Przykładem może być klasa obsługująca różne formaty dokumentów, gdzie metody parsowania lub walidacji są różne, ale ogólny proces ich przetwarzania pozostaje taki sam.

Pytanie 23

Który z poniższych przypadków stanowi test niefunkcjonalny?

A. Weryfikacja poprawności logowania użytkownika
B. Sprawdzenie działania przycisku
C. Sprawdzenie obsługi formularza rejestracji
D. Testowanie wydajności aplikacji pod dużym obciążeniem
Testowanie wydajności aplikacji pod dużym obciążeniem to przykład testu niefunkcjonalnego. Jego celem jest ocena, jak aplikacja zachowuje się przy dużej liczbie użytkowników lub operacji jednocześnie. Testy te pozwalają na identyfikację wąskich gardeł i optymalizację kodu oraz infrastruktury serwerowej. W ramach testów obciążeniowych analizowane są parametry takie jak czas odpowiedzi, zużycie zasobów (CPU, RAM) oraz stabilność aplikacji w warunkach skrajnego obciążenia. Testowanie wydajności jest kluczowe w aplikacjach webowych, e-commerce oraz systemach o dużej liczbie transakcji, gdzie każdy przestój może generować straty finansowe i negatywnie wpływać na doświadczenia użytkownika.

Pytanie 24

Który z poniższych elementów UI umożliwia graficzną nawigację pomiędzy różnymi sekcjami aplikacji?

A. Przycisk opcji
B. Obszar tekstowy
C. Rozwijana lista
D. Menu
Pasek menu to kluczowy element interfejsu użytkownika, który umożliwia wizualną nawigację pomiędzy różnymi sekcjami aplikacji. Paski menu są powszechnie stosowane w aplikacjach desktopowych i mobilnych, ponieważ pozwalają na szybki dostęp do różnych funkcji oraz ustawień. Dzięki ich hierarchicznej strukturze użytkownicy mogą łatwo odnaleźć potrzebne narzędzia i opcje, co zwiększa intuicyjność i wygodę korzystania z aplikacji.

Pytanie 25

Jakie jest przeznaczenie komentarzy w kodzie źródłowym programu?

A. Do dokumentowania działania kodu i ułatwienia jego zrozumienia
B. Do definiowania zmiennych globalnych
C. Do uruchamiania kodu w trybie debugowania
D. Do optymalizacji wydajności kodu
Komentarze w kodzie źródłowym programu pełnią kluczową rolę w dokumentowaniu działania aplikacji. Dzięki nim programiści mogą opisywać, co robią poszczególne fragmenty kodu, jakie funkcje realizują oraz jakie są zależności między modułami. Komentarze nie wpływają na działanie programu, ale znacząco ułatwiają pracę nad nim w przyszłości, zwłaszcza gdy projekt jest rozwijany przez wielu programistów lub po dłuższej przerwie. Komentarze poprawiają czytelność kodu, minimalizując ryzyko błędów wynikających z niejasności lub złej interpretacji działania aplikacji. W dobrze napisanym kodzie komentarze są używane strategicznie – opisują kluczowe algorytmy, niestandardowe rozwiązania oraz obszary wymagające szczególnej uwagi. Przejrzysty i dobrze udokumentowany kod to fundament skalowalnych i łatwych w utrzymaniu aplikacji.

Pytanie 26

Jaką funkcję pełni operator "|" w języku C++?

A. Bitowe "lub"
B. Logiczne "lub"
C. Bitowe "xor"
D. Operację przesunięcia bitów w prawo
Operator `||` to operator logiczny `OR`, który działa na wartościach logicznych i zwraca `true`, jeśli przynajmniej jeden z operandów jest prawdziwy, ale nie operuje na poziomie bitów. Operator `^` to operator `XOR` (exclusive or), który zwraca `1` tylko wtedy, gdy jeden z operandów ma wartość `1`, a drugi `0`. Operator `>>` to operator przesunięcia bitowego w prawo, który przesuwa bity liczby w prawo o określoną liczbę miejsc, co skutkuje podzieleniem liczby przez potęgę dwójki. Każdy z tych operatorów działa inaczej niż `|`, który jest operatorem bitowego `OR`.

Pytanie 27

Który z wymienionych algorytmów sortujących posiada średnią złożoność obliczeniową równą O(n log n)?

A. Sortowanie bąbelkowe
B. Sortowanie przez wybór
C. Sortowanie szybkie (QuickSort)
D. Sortowanie przez wstawianie
Sortowanie przez wstawianie jest dość powolne, z tą złożonością O(n²). W zasadzie fajnie sprawdza się tylko w małych zbiorach lub gdy tablica już jest mniej więcej posortowana. A jeśli chodzi o sortowanie bąbelkowe, to chyba nie ma co się łudzić, jest jednym z najgorszych algorytmów, też O(n²). I sortowanie przez wybór? Tutaj też nie ma rewelacji, bo porównuje się i wybiera najmniejszy element w każdej iteracji, co znacznie spowalnia działanie, zwłaszcza przy dużych tablicach. Tak że generalnie, lepiej unikać tych algorytmów, jeśli to możliwe.

Pytanie 28

Która metoda w obrębie klasy jest uruchamiana automatycznie podczas tworzenia kopii obiektu?

A. Destruktor
B. Metoda zaprzyjaźniona
C. Konstruktor kopiujący
D. Metoda statyczna
Metoda statyczna jest związana z klasą, a nie z jej obiektami, więc nie wywołuje się automatycznie, gdy kopiujemy obiekt. Destruktor to kolejna metoda, która odpowiada za usuwanie obiektu i zwalnianie zasobów, ale jego rola pojawia się dopiero na końcu życia obiektu, a nie podczas samego kopiowania. Co do metody zaprzyjaźnionej, to ona ma dostęp do prywatnych i chronionych elementów klasy, ale też nie jest wywoływana automatycznie w procesie kopiowania. Tylko konstruktor kopiujący robi to właściwie, tworząc kopie obiektów.

Pytanie 29

Narzędzie przeznaczone do rozwijania aplikacji w systemie WPf (ang. Windows Presentation Foundation) to

A. PyCharm
B. NetBeans
C. XamarinStudio
D. Visual Studio
Visual Studio jest dedykowanym narzędziem do implementacji aplikacji w środowisku WPF (Windows Presentation Foundation). Umożliwia projektowanie interfejsów użytkownika i zarządzanie projektami opartymi na XAML.

Pytanie 30

Który z podanych algorytmów operujących na jednowymiarowej tablicy posiada złożoność obliczeniową O(n2)?

A. Sortowanie bąbelkowe
B. Wypisanie elementów
C. Wyszukiwanie binarne
D. Sortowanie szybkie
Sortowanie szybkie, znane jako quicksort, to jeden z najbardziej efektywnych algorytmów sortujących, który w przeciętnych przypadkach ma złożoność O(n log n), a w najgorszym przypadku O(n^2) tylko w przypadku, gdy tablica jest już posortowana w sposób odwrotny. Wyszukiwanie binarne jest algorytmem, który wymaga posortowanej tablicy i działa w czasie O(log n), co czyni go znacznie bardziej wydajnym niż sortowanie bąbelkowe. Wypisanie elementów tablicy to operacja o złożoności O(n), gdzie n oznacza liczbę elementów w tablicy. W tej operacji algorytm przegląda każdy element tablicy tylko raz, co czyni ją bardzo efektywną w porównaniu do algorytmów sortujących. Wszelkie złożoności O(log n) oraz O(n) są bardziej optymalne w kontekście operacji na tablicach jednowymiarowych. W związku z tym, jedynie sortowanie bąbelkowe w tej grupie algorytmów charakteryzuje się złożonością O(n^2), co czyni je jedynym właściwym wyborem w kontekście zadanego pytania.

Pytanie 31

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

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

Pytanie 32

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

A. Typ łańcuchowy przechowuje pojedyncze znaki, a znakowy długie ciągi znaków
B. Typ znakowy przechowuje pojedyncze znaki, a łańcuchowy 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 33

Jednym z kroków przy publikacji aplikacji mobilnej w sklepie Google Play są testy Beta, które charakteryzują się tym, że są one

A. podzielone na testy funkcjonalne, wydajnościowe oraz skalowalności
B. realizowane przez zespół testerów zatrudnionych przez firmę Google
C. przeprowadzane przez grupę docelowych użytkowników aplikacji
D. przeprowadzane na podstawie dokumentu zawierającego przypadki testowe
Testy Beta są kluczowym etapem w procesie publikacji aplikacji mobilnej w sklepie Google Play, ponieważ pozwalają na uzyskanie cennych informacji zwrotnych od rzeczywistych użytkowników aplikacji. W tej fazie aplikacja jest udostępniana ograniczonej grupie docelowych użytkowników, którzy są zainteresowani testowaniem oprogramowania przed jego oficjalnym wydaniem. Użytkownicy ci mają możliwość zgłaszania błędów, proponowania ulepszeń oraz oceny funkcjonalności, co jest niezwykle ważne, aby zapewnić, że produkt spełnia wymagania rynku. Przykładem zastosowania testów Beta może być aplikacja społecznościowa, która w pierwszej fazie testowania pozwala wybranej grupie użytkowników na dzielenie się swoimi doświadczeniami. Otrzymane dane są następnie analizowane w celu wprowadzenia niezbędnych poprawek przed pełnym wprowadzeniem aplikacji na rynek. Ponadto, przeprowadzanie testów Beta jest zgodne z najlepszymi praktykami w branży oprogramowania, zgodnie z metodykami Agile, które podkreślają znaczenie interakcji z użytkownikami oraz ich wkładu w rozwój produktów.

Pytanie 34

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

A. Prototypowy
B. Waterfall
C. Kanban
D. Scrum
Kanban to metodologia zarządzania projektem, która koncentruje się na minimalizacji marnotrawstwa i optymalizacji przepływu pracy. Kluczowym elementem Kanbanu jest wizualizacja procesu za pomocą tablicy, na której znajdują się zadania w różnych fazach realizacji. Dzięki temu zespół może łatwo identyfikować wąskie gardła i eliminować zbędne procesy. Kanban promuje ciągłe doskonalenie (kaizen) i pozwala na dostosowywanie się do zmieniających się priorytetów bez konieczności reorganizacji całego projektu. Ta metodologia jest szeroko stosowana w branży IT, produkcji oraz w zespołach operacyjnych, które wymagają dużej elastyczności.

Pytanie 35

Jakie jest zadanie interpretera?

A. wykonywanie skryptu krok po kroku
B. analiza składni całego programu przed jego uruchomieniem
C. optymalizacja większej części kodu, aby przyspieszyć jego wykonanie
D. tłumaczenie kodu na kod maszynowy
Zobacz, dlaczego niektóre odpowiedzi były błędne w przypadku interpretera. Przede wszystkim, optymalizacja kodu nie jest jego głównym zadaniem. Choć można powiedzieć, że interpreter czasem poprawia wydajność, to nie o to tutaj chodzi. I pamiętaj, tłumaczenie kodu na kod maszynowy to zadanie kompilatora. Kompilatory biorą cały program i przetwarzają go przed uruchomieniem, a interpreter działa trochę inaczej – wykonuje kod krok po kroku. Dlatego nie tworzy oddzielnego pliku do uruchomienia. Co więcej, mówiąc o analizie składni, to jasne, że interpreter to robi, ale nie jest to jego główny cel. Chodzi o to, żeby wykonać kod od razu, a nie analizować wszystko przed. Te różnice są ważne i pokazują, jak bardzo się różnią kompilatory od interpreterów oraz gdzie każdy z nich ma swoje miejsce.

Pytanie 36

Która z wymienionych reguł należy do netykiety?

A. Zaniechanie odpowiadania na wiadomości od innych użytkowników
B. Udostępnianie treści bez zgody właścicieli
C. Unikanie używania dużych liter w komunikacji
D. Stosowanie nieformalnego języka w każdej rozmowie
Pierwsza odpowiedź, dotycząca ignorowania wiadomości od innych użytkowników, jest całkowicie sprzeczna z duchem netykiety. Efektywna komunikacja w środowisku online zakłada aktywne uczestnictwo oraz reagowanie na wiadomości, co sprzyja budowaniu relacji oraz wspólnoty. Ignorowanie wiadomości może prowadzić do frustracji i poczucia odrzucenia, co jest niezgodne z podstawowymi zasadami współżycia w internecie. Kolejny aspekt dotyczy używania nieformalnego języka w każdej rozmowie. Choć wiele platform internetowych sprzyja luźniejszej komunikacji, to nie każda sytuacja wymaga takiego podejścia. W kontekście profesjonalnym czy w bardziej formalnych dyskusjach, nieformalny język może być źródłem nieporozumień oraz braku szacunku. Użycie właściwego tonu oraz formy jest istotne, aby zachować właściwy kontekst dyskusji. Ostatnia z niepoprawnych odpowiedzi, dotycząca publikowania treści bez zgody autorów, narusza podstawowe zasady etyki w internecie, w tym prawa autorskie. Publikowanie cudzych treści bez zgody jest nie tylko niezgodne z netykietą, ale również może prowadzić do konsekwencji prawnych. Szacunek dla pracy innych użytkowników oraz ich własności intelektualnej jest fundamentem zdrowych interakcji w sieci. W związku z powyższym, każda z wymienionych odpowiedzi nie wpisuje się w zasady netykiety, a ich stosowanie może prowadzić do negatywnych skutków w komunikacji online.

Pytanie 37

Które urządzenie komputerowe jest najbardziej odpowiednie do graficznego projektowania w aplikacjach CAD?

A. Serwer dysponujący dużą ilością pamięci RAM
B. Laptop z zintegrowanym układem graficznym
C. Laptop z interfejsem dotykowym
D. Komputer stacjonarny z kartą graficzną NVIDIA Quadro
W kontekście projektowania graficznego w programach typu CAD, kluczowym elementem jest wybór odpowiedniego sprzętu, który zapewni nie tylko stabilność, ale także wydajność. Komputer stacjonarny wyposażony w kartę graficzną NVIDIA Quadro jest najlepszym rozwiązaniem, ponieważ te karty są specjalnie zaprojektowane do obsługi złożonych obliczeń i renderowania grafiki 3D. Dzięki zaawansowanej architekturze oraz optymalizacji pod kątem aplikacji inżynieryjnych i projektowych, karty NVIDIA Quadro oferują znacznie wyższą wydajność w porównaniu do standardowych kart graficznych. Dodatkowo, stacjonarne komputery pozwalają na łatwiejszą rozbudowę, co może być kluczowe w przypadku rosnących wymagań projektowych. W praktyce, użytkownicy CAD często muszą radzić sobie z dużymi i złożonymi modelami, które wymagają nie tylko odpowiedniej mocy obliczeniowej, ale także dużej ilości pamięci wideo, co zapewnia NVIDIA Quadro. Warto dodać, że standardy branżowe, takie jak OpenGL i DirectX, są w pełni wspierane przez te karty, co przekłada się na ich niezawodność i efektywność w profesjonalnym środowisku projektowym.

Pytanie 38

Resuscytacja krążeniowo-oddechowa polega na realizowaniu

A. 15 ucisków klatki piersiowej oraz 3 oddechy ratunkowe
B. 10 ucisków klatki piersiowej oraz 5 oddechów ratunkowych
C. 20 ucisków klatki piersiowej oraz 1 oddech ratunkowy
D. 30 ucisków klatki piersiowej oraz 2 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 39

Który z wymienionych sposobów może przyczynić się do optymalizacji kodu źródłowego?

A. Zamiana zmiennych globalnych na lokalne
B. Dodanie większej liczby komentarzy w kodzie
C. Eliminacja nieużywanych zmiennych oraz funkcji
D. Zwiększenie ilości instrukcji warunkowych
Usunięcie nieużywanych zmiennych i funkcji to jedna z najskuteczniejszych metod optymalizacji kodu źródłowego. Nadmiarowe zmienne i niepotrzebne funkcje mogą spowalniać aplikację, zwiększać jej zużycie pamięci i powodować problemy z czytelnością kodu. Ich eliminacja upraszcza kod, zmniejsza ryzyko błędów i poprawia wydajność programu. Oczyszczanie kodu to kluczowy element procesu refaktoryzacji, który pozwala na utrzymanie wysokiej jakości oprogramowania oraz lepszą organizację projektu. Dodatkowo, minimalizacja kodu pomaga w szybszym ładowaniu aplikacji webowych, co ma bezpośredni wpływ na doświadczenie użytkownika (UX) oraz pozycjonowanie w wyszukiwarkach (SEO).

Pytanie 40

Rozpoczęcie tworzenia procedury składowej o nazwie dodajUsera w MS SQL wymaga użycia poleceń

A. create procedure dodajUsera
B. add procedure dodajUsera
C. add dodajUsera procedure
D. create dodajUsera procedure
W MS SQL procedury składowe tworzy się za pomocą polecenia 'CREATE PROCEDURE'. Jest to standardowa składnia używana do definiowania procedur, które mogą przechowywać złożone operacje SQL i być wielokrotnie wywoływane. Procedury pozwalają na automatyzację zadań, optymalizację kodu oraz zwiększenie wydajności poprzez zmniejszenie liczby zapytań przesyłanych do serwera.