Wyniki egzaminu

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

Egzamin zdany!

Wynik: 37/40 punktów (92,5%)

Wymagane minimum: 20 punktów (50%)

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

Jakie informacje można uzyskać na temat metod w klasie Point?

Ilustracja do pytania
A. Są przeciążone.
B. Zawierają przeciążenie operatora.
C. Służą jako konstruktory w zależności od liczby argumentów.
D. Zawierają błąd, ponieważ nazwy metod powinny być różne.
Metody klasy Point są przeciążone, co oznacza, że mogą mieć tę samą nazwę, ale różnią się liczbą lub typem parametrów. Przeciążenie metod to jedna z podstawowych technik programowania obiektowego, która pozwala na bardziej elastyczne projektowanie kodu. Dzięki temu programista może tworzyć metody dostosowane do różnych sytuacji, zachowując spójność nazw i intuicyjność użycia. To zwiększa czytelność i utrzymanie kodu, ponieważ wywołania metod o tej samej nazwie, ale różnych parametrach, są łatwe do zrozumienia i odnalezienia.

Pytanie 2

Jakie jest zastosowanie iteratora w zbiorach?

A. Do zmiany rodzaju zbioru w trakcie działania aplikacji
B. Do usuwania elementów ze zbioru
C. Do generowania kopii zbiorów
D. Do iterowania po elementach zbioru
Iterator w kolekcjach umożliwia przechodzenie przez elementy kolekcji w określonym porządku. Jest to abstrakcyjny obiekt, który pozwala na iterowanie po różnych strukturach danych, takich jak listy, wektory czy zbiory, bez konieczności znajomości ich wewnętrznej implementacji. Iteratory umożliwiają wykonywanie operacji na elementach kolekcji, takich jak odczyt, modyfikacja lub usuwanie, co czyni je niezwykle użytecznymi w programowaniu obiektowym. Dzięki iteratorom kod staje się bardziej czytelny i mniej podatny na błędy.

Pytanie 3

Jakie są różnice między procesem kompilacji a interpretacją kodu?

A. Interpretacja umożliwia tworzenie bibliotek dynamicznych, a kompilacja bibliotek statycznych
B. Kompilacja wymaga użycia debuggera, natomiast interpretacja tego nie potrzebuje
C. Kompilacja przekształca cały kod źródłowy przed jego wykonaniem, podczas gdy interpretacja tłumaczy kod na bieżąco
D. Kompilacja jest stosowana jedynie w programowaniu obiektowym
Kompilacja i interpretacja to dwa różne sposoby, żeby uruchomić kod. Kiedy kompilujesz, to cały kod jest zamieniany na język maszynowy przed uruchomieniem programu, a na końcu dostajesz plik, który można odpalić. Z kolei w interpretacji, kod jest analizowany i wykonywany linia po linii „na żywo”. Kompilacja jest bardziej typowa dla języków takich jak C czy C++, a interpretacja jest popularna w językach skryptowych jak Python czy JavaScript. Kompilacja daje większą wydajność, ale musisz poczekać, aż cały kod się skompiluje, a interpretacja pozwala na szybkie testowanie i łatwiejsze znajdowanie błędów.

Pytanie 4

Wskaż język programowania, który pozwala na stworzenie aplikacji mobilnej w środowisku Android Studio?

A. C++
B. Java
C. Objective-C
D. Swift
Java to jeden z podstawowych języków programowania używanych do tworzenia aplikacji mobilnych na platformę Android. Jest to język, który został stworzony przez firmę Sun Microsystems, a jego pierwsza wersja została wydana w 1995 roku. Java charakteryzuje się silnym typowaniem, obiektowością oraz wsparciem dla programowania wielowątkowego, co czyni go idealnym do tworzenia wydajnych aplikacji mobilnych. Android Studio, oficjalne zintegrowane środowisko programistyczne (IDE) dla Androida, oferuje pełne wsparcie dla Javy, w tym możliwość korzystania z bibliotek Android SDK. Dzięki temu programiści mogą łatwo tworzyć interfejsy użytkownika, zarządzać zasobami oraz implementować logikę aplikacji. Przykładowo, pisząc aplikację do zarządzania zadaniami, programista może użyć Javy do stworzenia klas modelujących zadania oraz do obsługi interfejsu graficznego z wykorzystaniem XML i Java. Ponadto, Java jest zgodna z zasadami programowania obiektowego, co pozwala na łatwe zarządzanie kodem i jego ponowne wykorzystanie. Warto również zaznaczyć, że Java jest wspierana przez dużą społeczność, co zapewnia bogaty ekosystem bibliotek oraz narzędzi, ułatwiających rozwój aplikacji na Androida.

Pytanie 5

Algorytm zaprezentowany w zadaniu można zrealizować w języku Java wykorzystując instrukcję

Ilustracja do pytania
A. switch
B. try
C. if
D. while
Pętla while w języku Java jest idealna do implementacji algorytmów, które wymagają wielokrotnego wykonywania bloku kodu dopóki określony warunek logiczny pozostaje prawdziwy. W przedstawionym schemacie blokowym widzimy iteracyjny proces, który zaczyna się od przypisania wartości 2 do zmiennej number, a następnie kontynuuje dodawanie 2 do tej zmiennej tak długo, jak długo jej wartość nie osiągnie 10. Struktura ta jest typowym przykładem problemu, który najlepiej rozwiązać za pomocą pętli while. Wyrażenie warunkowe number != 10 jest sprawdzane przed każdą iteracją pętli, co umożliwia zakończenie pętli w momencie, gdy warunek przestaje być prawdziwy. To podejście jest zgodne z dobrymi praktykami programistycznymi, które zalecają minimalizowanie niepotrzebnych obliczeń i zwiększanie czytelności kodu. Pętle while są często stosowane w sytuacjach, gdy liczba iteracji nie jest z góry znana i zależy od dynamicznie zmieniających się warunków, co czyni je wszechstronnym narzędziem w wielu aplikacjach, od przetwarzania danych po kontrolę przepływu w symulacjach komputerowych. Praktyczna znajomość pętli pozwala na efektywne rozwiązywanie problemów w złożonych projektach informatycznych.

Pytanie 6

Jakie znaczenie ma termin "przesłanianie metody" w kontekście programowania obiektowego?

A. Zastosowanie tej samej nazwy metody w klasie bazowej i pochodnej, ale z inną implementacją w klasie pochodnej
B. Tworzenie nowej metody w klasie bazowej
C. Zmiana metody prywatnej na metodę publiczną
D. Przenoszenie metod z jednej klasy do drugiej
Przesłanianie metody to mechanizm, w którym metoda w klasie pochodnej ma taką samą nazwę, typ zwracany i listę parametrów jak metoda w klasie bazowej, ale zawiera inną implementację. To kluczowy element polimorfizmu, umożliwiający dostosowanie zachowania klasy pochodnej do jej specyficznych potrzeb, przy zachowaniu spójnego interfejsu. Przesłanianie metod pozwala na elastyczne projektowanie kodu i jest szeroko stosowane w dużych projektach, aby umożliwić rozszerzalność oraz ponowne wykorzystanie istniejącej logiki. W C++ przesłanianie osiąga się za pomocą słowa kluczowego 'virtual' w klasie bazowej, a następnie redefinicji metody w klasie pochodnej.

Pytanie 7

Jakie składniki powinien mieć plan projektu?

A. Etapy projektu, ramy czasowe, zasoby i zadania
B. Wyłącznie etapy projektu
C. Terminy i zasoby ludzkie
D. Tylko czas wykonania i budżet
Harmonogram projektu powinien zawierać etapy projektu, ramy czasowe, zasoby oraz zadania. Taka kompleksowa struktura umożliwia skuteczne zarządzanie projektem i pozwala na śledzenie postępów. Każdy etap harmonogramu powinien być dokładnie opisany, a zadania powinny być przypisane do odpowiednich członków zespołu. Uwzględnienie zasobów i ram czasowych pozwala na precyzyjne planowanie i minimalizuje ryzyko opóźnień. Harmonogram stanowi nieodłączny element projektów zarządzanych zarówno w modelu Waterfall, jak i Agile, dostarczając przejrzystość na każdym etapie realizacji.

Pytanie 8

Która z wymienionych właściwości najlepiej charakteryzuje biblioteki dynamiczne?

A. Są statycznie dołączane do pliku wykonywalnego
B. Są ładowane w trakcie działania aplikacji
C. Są ładowane podczas kompilacji
D. Zawierają kod źródłowy aplikacji
Jak mówimy o ładowaniu bibliotek w czasie kompilacji, to mamy na myśli biblioteki statyczne. One są wplecione w plik wykonywalny. Z kolei biblioteki dynamiczne, to jakby zewnętrzne funkcje, które nie są częścią źródłowego kodu programu. Przy statycznym dołączaniu wszelkie potrzebne zasoby są w jednym pliku, a to odróżnia je od tych dynamicznych, które wchodzą w grę dopiero, gdy program działa.

Pytanie 9

Który z poniższych problemów jest najczęściej rozwiązywany z zastosowaniem algorytmu rekurencyjnego?

A. Obliczanie sumy elementów w tablicy
B. Wyszukiwanie binarne w uporządkowanej tablicy
C. Sortowanie za pomocą metody QuickSort
D. Generowanie ciągu Fibonacciego
Generowanie ciągu Fibonacciego to klasyczny przykład problemu, który najczęściej rozwiązuje się za pomocą algorytmu rekurencyjnego. Algorytm rekurencyjny wywołuje sam siebie, dzieląc problem na mniejsze podproblemy, aż do osiągnięcia przypadku bazowego. W przypadku Fibonacciego każda liczba jest sumą dwóch poprzednich, a algorytm rekurencyjny odwzorowuje to wprost poprzez wywołania fib(n-1) + fib(n-2). Rekurencja jest intuicyjna i często stosowana w zadaniach matematycznych, takich jak obliczanie silni czy rozwiązywanie problemów związanych z przeszukiwaniem drzew. Choć rekurencja jest elegancka, dla dużych n może prowadzić do nadmiarowych obliczeń, dlatego często optymalizuje się ją za pomocą pamięci podręcznej (memoizacji) lub iteracyjnych wersji algorytmu.

Pytanie 10

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

A. AMD Radeon RX 580 - 8GB GDDR5, 256-bit
B. NVIDIA GeForce GTX 1050 Ti - 4GB GDDR5, 128-bit
C. AMD Radeon R7 240 - 2GB GDDR5, 64-bit
D. Intel UHD Graphics 630 - zintegrowana
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 11

Który z wymienionych frameworków jest charakterystyczny dla aplikacji komputerowych pisanych w C#?

A. Spring
B. Qt
C. WPF (Windows Presentation Foundation)
D. React
WPF (Windows Presentation Foundation) to framework firmy Microsoft, który jest powszechnie wykorzystywany do tworzenia aplikacji desktopowych w języku C#. WPF pozwala na projektowanie zaawansowanych interfejsów użytkownika (UI) z wykorzystaniem XAML (Extensible Application Markup Language), co umożliwia oddzielenie logiki aplikacji od warstwy prezentacyjnej. WPF wspiera grafikę wektorową, animacje oraz różne efekty wizualne, co czyni go idealnym narzędziem do budowy nowoczesnych, estetycznych aplikacji dla systemu Windows. Integracja z .NET i Visual Studio umożliwia szybkie tworzenie aplikacji oraz korzystanie z bogatych bibliotek i gotowych komponentów UI. WPF jest szczególnie ceniony za elastyczność, obsługę danych i możliwość tworzenia aplikacji responsywnych.

Pytanie 12

Jak zostanie przedstawiony poniższy kod XAML?

Ilustracja do pytania
A. Rysunek 2
B. Rysunek 4
C. Rysunek 1
D. Rysunek 3
W przedstawionym kodzie XAML widoczna jest struktura składająca się z kilku elementów UI ułożonych w pionowym StackLayout co skutkuje wyświetleniem ich w pionowej kolejności. Pierwszym elementem jest Entry z placeholderem Imię a kolejnym Entry z placeholderem Nazwisko co determinuje obecność dwóch pól tekstowych tak jak w Rysunku 4. Następnie w kodzie znajduje się poziomy StackLayout z etykietą Zgoda RODO i przełącznikiem ustawionym na wartość true co oznacza że przełącznik jest domyślnie włączony. To również odpowiada widokowi na Rysunku 4. Kolejny element to Slider z ustawionymi kolorami MinimumTrackColor i MaximumTrackColor co pozwala na zmianę koloru paska suwaka co również jest widoczne w Rysunku 4. Na końcu znajduje się Button z tekstem Zapisz i jest to jedyny przycisk w całym układzie co także zgadza się z Rysunkiem 4. Rozumienie kodu XAML i jego renderowania jest kluczowe w tworzeniu aplikacji mobilnych ponieważ pozwala na precyzyjne określenie wyglądu i funkcjonalności interfejsu użytkownika i jest zgodne z najlepszymi praktykami w projektowaniu UI.

Pytanie 13

Jakie jest oznaczenie komentarza wieloliniowego w języku Java?

A. """ ... """
B. // ... //
C. /* ... */
D. <!-- ... -->
Komentarze wieloliniowe w języku Java są oznaczane za pomocą /* ... */. Pozwalają na komentowanie większych fragmentów kodu, co jest przydatne podczas tymczasowego wyłączania kodu lub dodawania obszernych opisów do funkcji i klas.

Pytanie 14

Który z wymienionych algorytmów sortowania jest najskuteczniejszy w przypadku dużych zbiorów danych w przeważającej liczbie sytuacji?

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 15

Jakie są różnice pomiędzy środowiskiem RAD a klasycznym IDE w kontekście aplikacji webowych?

A. RAD funkcjonuje tylko w systemach Windows
B. RAD koncentruje się wyłącznie na budowie frontendu aplikacji
C. RAD umożliwia szybsze prototypowanie i rozwój aplikacji dzięki narzędziom wizualnym
D. RAD nie wspiera żadnych języków backendowych
Rapid Application Development (RAD) to metodologia, która koncentruje się na szybkim prototypowaniu i iteracyjnym tworzeniu aplikacji. Dzięki narzędziom wizualnym RAD umożliwia programistom i projektantom szybkie budowanie interfejsów użytkownika oraz testowanie funkcjonalności aplikacji na wczesnym etapie rozwoju. RAD skraca czas potrzebny na dostarczenie gotowego produktu, co czyni go idealnym rozwiązaniem w dynamicznie zmieniających się projektach webowych. Narzędzia RAD umożliwiają także automatyczne generowanie kodu, co znacznie przyspiesza proces programowania.

Pytanie 16

Jakie działanie powinno się wykonać w pierwszym kroku, oceniając stan osoby poszkodowanej?

A. Zadbać o własne bezpieczeństwo
B. Sprawdzić, czy występuje krwawienie
C. Wezwać ambulans
D. Rozpocząć resuscytację krążeniowo-oddechową
Bezpieczeństwo to naprawdę ważna sprawa, kiedy oceniamy stan kogoś, kto uległ wypadkowi. Jak nie zadbamy o siebie, to możemy się sami narazić i to jeszcze bardziej skomplikować całą akcję ratunkową. Ruch uliczny, prąd, jakieś toksyczne substancje... to wszystko może być niebezpieczne. Dopiero jak mamy pewność, że jest ok w okolicy, możemy zająć się poszkodowanym i myśleć o dalszych krokach ratunkowych.

Pytanie 17

Jakie oprogramowanie służy jako przykład programu do komunikacji audio-wideo?

A. Google Drive
B. Notion
C. Slack
D. Microsoft Teams
Microsoft Teams to naprawdę fajne narzędzie do komunikacji. Łączy w sobie czat, wideo i audio, więc wszystko masz w jednym miejscu. Zostało stworzone przez Microsoft, żeby ułatwić współpracę w zespołach. To idealne, gdy trzeba prowadzić spotkania online z kilkoma osobami. Myślę, że to super rozwiązanie dla firm, które pracują zdalnie. Dzięki WebRTC jakość transmisji audio i wideo jest naprawdę wysoka. Można w nim organizować spotkania, webinary, a nawet stworzyć przestrzeń dla zespołów projektowych, gdzie można dzielić się plikami i prowadzić dyskusje. A jak jeszcze połączysz go z innymi aplikacjami Microsoft 365, jak OneNote czy SharePoint, to masz pełny zestaw do zarządzania projektami. Dobrze też, że Microsoft Teams dba o ochronę danych osobowych, więc jest bezpieczny dla różnych organizacji.

Pytanie 18

W języku C# szablon List umożliwia korzystanie z listy. Z definicji obiektu kolekcji wynika, że jego elementami mogą być:

Ilustracja do pytania
A. elementy o nieokreślonym typie
B. liczby rzeczywiste
C. elementy typu List
D. liczby całkowite
Inicjalizacja listy w C# (List<int>) wskazuje, że jej elementami są liczby całkowite (int). Szablony (generics) w C# umożliwiają tworzenie list o określonym typie, co zapobiega błędom podczas dodawania elementów. Listy w C# są dynamiczne, co oznacza, że ich rozmiar może być zmieniany w trakcie działania programu, a elementy mogą być dowolnie dodawane lub usuwane.

Pytanie 19

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

A. Za pomocą plików SharedPreferences
B. W rejestrze systemu
C. Wyłącznie w zewnętrznych bazach danych
D. Tylko w pamięci RAM
SharedPreferences to jedno z najprostszych i najczęściej stosowanych narzędzi do przechowywania danych użytkownika w aplikacjach mobilnych na Androidzie. SharedPreferences umożliwia zapisywanie małych porcji danych w postaci par klucz-wartość. Jest to idealne rozwiązanie do przechowywania ustawień użytkownika, preferencji aplikacji oraz stanów interfejsu. Dane przechowywane w SharedPreferences są zapisywane w plikach XML i pozostają na urządzeniu nawet po zamknięciu aplikacji, co czyni je doskonałym narzędziem do przechowywania trwałych informacji. Deweloperzy cenią SharedPreferences za prostotę implementacji i wydajność, co sprawia, że jest to jedno z najbardziej uniwersalnych narzędzi do lokalnego przechowywania danych w aplikacjach mobilnych.

Pytanie 20

Tworząc aplikację opartą na obiektach, należy założyć, że program będzie zarządzany przez

A. moduły zawierające funkcje oraz zmienne globalne
B. definicję warunków końcowego rozwiązania
C. pętlę dyspozytora, która w zależności od zdarzenia wywoła właściwą funkcję
D. zbiór instancji klas współpracujących ze sobą
W programowaniu obiektowym aplikacje są sterowane za pomocą instancji klas, które współpracują ze sobą. Obiekty reprezentują elementy rzeczywistego świata i komunikują się, co pozwala na większą elastyczność i modułowość kodu.

Pytanie 21

Który z wymienionych poniżej przykładów ilustruje prawidłowy szkielet zarządzania wyjątkami w języku C++?

A. try { kod } finally { obsługa }
B. try { kod } except { obsługa }
C. try { kod } handle { obsługa }
D. try { kod } catch { obsługa }
Jak to wygląda w C++? Kluczowym elementem jest szkielet z blokami 'try' i 'catch'. W bloku 'try' piszesz kod, który może spowodować błąd, a 'catch' zajmuje się sytuacjami, kiedy coś pójdzie nie tak. Dzięki temu nie musisz się martwić, że program nagle przestanie działać, bo masz kontrolę nad tym, jak reagować w trudnych momentach. Obsługa wyjątków to naprawdę ważna sprawa w programowaniu, bo pomaga wyłapać różne problemy, czy to z danymi, z pamięcią, czy z plikami. Z mojego doświadczenia, to po prostu sprawia, że aplikacje są bardziej stabilne i działa to na korzyść zarówno programisty, jak i użytkownika.

Pytanie 22

Które z wymienionych stwierdzeń najtrafniej charakteryzuje WPF?

A. Framework umożliwiający zarządzanie urządzeniami IoT
B. Framework przeznaczony do budowy aplikacji internetowych
C. Framework przeznaczony do budowy aplikacji stacjonarnych w systemie Windows
D. Biblioteka do obróbki danych w Pythonie
No dobra, WPF to framework, którego używamy, żeby robić aplikacje na Windowsa. Jest częścią platformy .NET i super się nadaje do tworzenia ładnych interfejsów z użyciem XAML, co jest takim językiem, który pozwala na zaprojektowanie interfejsu. Dzięki WPF możemy korzystać z fajnych animacji i ogólnie mieć niezłe wizualizacje. W dodatku, wspiera model MVVM, co ułatwia rozdzielenie logiki aplikacji od tego, co widzi użytkownik. Także w wielu firmach, gdzie potrzebna jest zaawansowana grafika, WPF jest chętnie wykorzystywane.

Pytanie 23

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

A. 10101
B. 11101
C. 11001
D. 10001
Dodawanie binarne to podstawowa operacja w systemie liczbowym, który używa tylko dwóch cyfr: 0 i 1. W przypadku dodawania liczb binarnych, proces ten przypomina dodawanie w systemie dziesiętnym, jednak z pewnymi różnicami ze względu na ograniczony zestaw cyfr. Gdy dodajemy liczby 1011 i 110, należy ustawić je w kolumnach, podobnie jak w dodawaniu dziesiętnym. Zaczynamy od najmniej znaczącej cyfry. W pierwszej kolumnie mamy 1 + 0, co daje 1. W drugiej kolumnie mamy 1 + 1, co daje 0, ale musimy przenieść 1 do następnej kolumny (przeniesienie jest kluczowym elementem w dodawaniu binarnym). W trzeciej kolumnie dodajemy 1 (przeniesienie) + 0 + 1, co daje 0 i przenosimy 1 do następnej kolumny. W czwartej kolumnie dodajemy przeniesienie 1 + 1 (z liczby 1011), co daje 10 w systemie binarnym, co oznacza 0 i przeniesienie 1. Końcowym wynikiem dodawania daje 10001 w systemie binarnym. To podejście jest zgodne z zasadami arytmetyki binarnej, które są fundamentem działania komputerów i systemów cyfrowych, w których operacje na danych są realizowane w systemie binarnym.

Pytanie 24

Jakie cechy posiada kod dopełniający do dwóch?

A. Służy do przekształcania liczb binarnych na dziesiętne
B. Umożliwia reprezentację liczb ujemnych w systemie binarnym
C. Umożliwia konwersję systemu binarnego na szesnastkowy
D. Reprezentuje liczbę w odwrotnej formie binarnej
Kod uzupełnieniowy do dwóch jest powszechnie stosowany w systemach komputerowych do reprezentacji liczb całkowitych, w tym liczb ujemnych. W tym systemie najstarsza cyfra (bit) określa znak liczby, gdzie 0 oznacza liczbę dodatnią, a 1 liczbę ujemną. Aby uzyskać reprezentację liczby ujemnej w systemie binarnym, należy najpierw przedstawić jej wartość bezwzględną w postaci binarnej, a następnie odwrócić wszystkie bity i dodać 1 do wyniku, co daje nam liczbę w kodzie uzupełnieniowym do dwóch. Na przykład, aby uzyskać -5 w systemie 8-bitowym, zaczynamy od 5, co w postaci binarnej to 00000101. Następnie odwracamy bity, co daje 11111010, a dodając 1 uzyskujemy 11111011, co stanowi -5 w kodzie uzupełnieniowym do dwóch. Ta metoda umożliwia łatwe wykonywanie arytmetyki, ponieważ dodawanie i odejmowanie liczb ujemnych i dodatnich można realizować z użyciem tych samych operacji binarnych. Kod uzupełnieniowy do dwóch stał się standardem w większości architektur komputerowych, takich jak x86 czy ARM, dzięki swojej efektywności i prostocie.

Pytanie 25

Jakie ma znaczenie operator "==" w języku C++?

A. Negacja logiczna
B. Porównanie dwóch wartości
C. Przypisanie wartości do zmiennej
D. Zwiększenie wartości zmiennej o 1
Operator `==` w języku C++ oraz w wielu innych językach programowania, takich jak Java, Python czy JavaScript, jest używany do porównywania dwóch wartości. Jeśli wartości są równe, zwracana jest wartość logiczna `true`, w przeciwnym razie `false`. Operator ten jest niezbędny w instrukcjach warunkowych i pętlach, umożliwiając programowi podejmowanie decyzji na podstawie porównań. Przykładem użycia jest `if (a == b)`, co oznacza: jeśli zmienna `a` jest równa zmiennej `b`, wykonaj określony blok kodu.

Pytanie 26

Który z poniższych aspektów najdokładniej określa cel realizacji projektu?

A. Ocena postępów w czasie realizacji projektu
B. Zidentyfikowanie technologii, które mogą być zastosowane
C. Stworzenie harmonogramu działań
D. Określenie problemu i metody jego rozwiązania
Określenie problemu i sposobu jego rozwiązania to fundamentalny cel każdego projektu. Bez jasno zdefiniowanego problemu i sprecyzowanej metody jego rozwiązania, projekt może stać się chaotyczny i nieefektywny. Precyzyjna analiza problemu pozwala na wyznaczenie celów, które prowadzą do stworzenia wartościowego produktu lub usługi. Dzięki temu zespół może skupić się na kluczowych zadaniach i efektywnie zarządzać zasobami. Określenie problemu to pierwszy krok w metodykach Agile i Waterfall, który warunkuje sukces całego przedsięwzięcia.

Pytanie 27

Które z poniższych twierdzeń najlepiej charakteryzuje bibliotekę w kontekście programowania?

A. Plik wykonywalny, który funkcjonuje jako odrębny program
B. Zbiór kodu źródłowego, który jest stosowany wyłącznie w fazie kompilacji aplikacji
C. Zestaw funkcji i klas, które mogą być wykorzystywane w aplikacjach
D. Zbiór zmiennych globalnych, które są dostępne w trakcie działania aplikacji
Biblioteka w programowaniu to taka paczka różnych funkcji i klas, które można wykorzystać w wielu projektach. Dzięki nim programiści mają łatwiej, bo korzystają z gotowych rozwiązań, co oszczędza czas na pisanie aplikacji. W bibliotekach można znaleźć przeróżne moduły – od prostych funkcji matematycznych po skomplikowane narzędzia do obsługi grafiki, sieci czy baz danych. Znam parę popularnych bibliotek, takich jak React.js w JavaScript, NumPy w Pythonie czy STL w C++. Używanie bibliotek sprawia, że praca programisty jest efektywniejsza, a tworzenie bardziej złożonych aplikacji idzie szybciej, bo nie musisz wszystkiego pisać od podstaw.

Pytanie 28

Jakie są kluczowe etapy realizacji projektu programistycznego?

A. Planowanie, analiza, implementacja, wdrożenie
B. Planowanie, projektowanie, debugowanie, konserwacja
C. Analiza, implementacja, testowanie, aktualizacja
D. Projektowanie, testowanie, aktualizacja, implementacja
Podstawowe fazy realizacji projektu programistycznego to: planowanie, analiza, implementacja i wdrożenie. Planowanie pozwala na ustalenie celów i zasobów, analiza definiuje wymagania, implementacja to właściwy proces tworzenia kodu, a wdrożenie polega na uruchomieniu produktu w środowisku produkcyjnym. Ten klasyczny podział jest stosowany zarówno w tradycyjnych modelach, takich jak Waterfall, jak i w nowoczesnych metodach Agile, gdzie fazy mogą być bardziej iteracyjne. Odpowiednie zarządzanie każdą z tych faz minimalizuje ryzyko błędów i zwiększa efektywność zespołu.

Pytanie 29

Który z poniższych aspektów najlepiej definiuje działanie e-sklepu?

A. Dostęp do bazy danych klientów
B. Mechanizm generowania grafiki 3D
C. System obsługi koszyka oraz realizacji zamówień
D. Zarządzanie serwerem e-mail
System zarządzania koszykiem i realizacją zamówień to kluczowy element każdej aplikacji e-commerce (sklepu internetowego). Umożliwia użytkownikom dodawanie produktów do koszyka, zarządzanie ich ilością, a następnie finalizację transakcji poprzez proces realizacji zamówienia i płatności. Tego typu funkcjonalność wymaga integracji z bazą danych oraz systemami płatności online, co zapewnia bezpieczeństwo i wygodę użytkownika. Systemy koszyków zakupowych często oferują zaawansowane funkcje, takie jak kupony rabatowe, kody promocyjne czy integracje z magazynami i systemami logistycznymi. Realizacja zamówienia obejmuje procesy takie jak autoryzacja płatności, generowanie faktur oraz śledzenie zamówień, co jest podstawą funkcjonowania nowoczesnych platform e-commerce.

Pytanie 30

Które z wymienionych stwierdzeń najcelniej opisuje proces uruchamiania aplikacji?

A. Przetwarzanie kodu źródłowego przez kompilator
B. Wykonywanie programu na podstawie przetłumaczonego kodu maszynowego
C. Tłumaczenie kodu źródłowego na język pośredni
D. Generowanie pliku źródłowego
Uruchomienie programu to naprawdę ważny moment, bo w tym czasie procesor zaczyna działać na kodzie maszynowym. Ten kod powstaje podczas kompilacji, która zamienia kod źródłowy na coś, co komputer rozumie. W tym etapie program trafia do pamięci, a także przygotowywane są różne dane do działania. Tak więc, to jest kluczowy krok w całej historii programu, bo decyduje, jak dobrze będzie działać.

Pytanie 31

Dokumentacja, która została przedstawiona, dotyczy algorytmu sortowania

Ilustracja do pytania
A. szybkie (Quicksort)
B. bąbelkowe
C. przez wybór
D. przez wstawianie
Przedstawiona dokumentacja opisuje algorytm sortowania bąbelkowego (Bubble Sort), który działa poprzez wielokrotne porównywanie sąsiednich elementów i zamianę ich miejscami, jeśli są w złej kolejności. Algorytm ten ma prostą implementację, ale charakteryzuje się niską efektywnością dla dużych zbiorów danych (złożoność O(n^2)).

Pytanie 32

W jakiej fazie cyklu życia projektu informatycznego następuje integracja oraz testowanie wszystkich modułów systemu?

A. Faza wdrożenia
B. Etap implementacji
C. Etap planowania
D. Faza analizy
Planowanie to faza początkowa, w której określane są cele projektu, harmonogram i zasoby, ale nie jest to etap integracji systemu. Analiza skupia się na zbieraniu wymagań i definiowaniu specyfikacji technicznej, ale nie obejmuje łączenia modułów ani testowania gotowego produktu. Wdrożenie to końcowy etap cyklu życia projektu, który następuje po pełnej integracji i testowaniu – polega na uruchomieniu systemu w środowisku produkcyjnym i udostępnieniu go użytkownikom końcowym.

Pytanie 33

Zapisany kod w języku Python ilustruje

Ilustracja do pytania
A. tablicę asocjacyjną (słownik)
B. stos
C. strukturę
D. kolejkę (LIFO)
W tym zadaniu mamy do czynienia z tablicą asocjacyjną, która w Pythonie nazywa się słownikiem. Słownik to taki fajny sposób na przechowywanie par klucz-wartość, co jest naprawdę przydatne. W naszym przypadku kluczami są symbole chemiczne, jak N czy O, a wartościami ich pełne nazwy, czyli Azot oraz Tlen. Dzięki tej strukturze można szybko sięgnąć po konkretne dane, co jest bardzo pomocne w różnych sytuacjach. Na przykład, można używać ich do przechowywania konfiguracji albo do prostych baz danych. Warto też dodać, że słowniki świetnie pasują do obiektów JSON, co jest ważne w tworzeniu aplikacji webowych. Dają nam dużą elastyczność i robią to w bardzo efektywny sposób, dlatego są jednym z kluczowych elementów Pythona. Ułatwiają pisanie kodu, który jest zarówno czytelny, jak i funkcjonalny.

Pytanie 34

Jakie znaczenie ma pojęcie "debugowanie" w kontekście programowania?

A. Wdrażanie aplikacji w środowisku produkcyjnym
B. Wyszukiwanie i usuwanie błędów w kodzie
C. Tworzenie nowych funkcjonalności aplikacji
D. Przygotowywanie dokumentacji kodu
Debugowanie to proces wyszukiwania i eliminowania błędów (bugów) w kodzie źródłowym programu. Polega na analizowaniu działania aplikacji linia po linii, śledzeniu wartości zmiennych, analizie stosu wywołań i wykrywaniu miejsc, w których program działa niezgodnie z oczekiwaniami. Debugowanie umożliwia programistom szybkie odnajdywanie błędów logicznych, składniowych oraz problemów z wydajnością aplikacji. Narzędzia takie jak Visual Studio, PyCharm, IntelliJ IDEA czy Chrome DevTools oferują zaawansowane funkcje debugowania, takie jak punkty przerwań (breakpoints), krokowe wykonywanie kodu i podgląd pamięci. Proces debugowania jest kluczowy w każdym etapie rozwoju oprogramowania, ponieważ znacząco wpływa na stabilność i jakość finalnego produktu.

Pytanie 35

Który z wymienionych kroków wchodzi w skład testowania aplikacji?

A. Opracowywanie interfejsu graficznego
B. Projektowanie bazy danych
C. Debugowanie kodu w celu znalezienia błędów
D. Kompilowanie aplikacji
Debugowanie kodu w celu znalezienia błędów to jeden z kluczowych etapów testowania aplikacji. Proces ten polega na uruchamianiu programu w trybie debugowania, co pozwala na śledzenie jego działania linijka po linijce i identyfikowanie miejsc, w których występują błędy. Debugowanie umożliwia analizowanie wartości zmiennych, śledzenie przepływu programu i wykrywanie nieoczekiwanych zachowań, co jest niezbędne do usunięcia błędów i poprawy wydajności aplikacji. Narzędzia do debugowania, takie jak Visual Studio, PyCharm czy Chrome DevTools, pozwalają na dokładne testowanie kodu na różnych etapach jego rozwoju, co znacząco skraca czas naprawy błędów i zwiększa jakość oprogramowania.

Pytanie 36

Po uruchomieniu podanego kodu w języku C++ na konsoli zobaczymy następujący tekst:

Ilustracja do pytania
A. Wynik dodawania: 5+5.12=10.123450
B. "%s dodawania: %d + %.2f = %f", "Wynik", 5, 5.12345, 10.123450
C. "%s dodawania: %d + %.2f=%f", "Wynik", a, b, w
D. dodawania: 5+5.12345=10.123450 Wynik
Kod w C++ wyświetla 'Wynik dodawania: 5+5.12=10.123450'. Formatowanie tekstu i liczb zmiennoprzecinkowych jest kluczowe dla poprawnego wyświetlania danych w konsoli.

Pytanie 37

Jakie są korzyści z wykorzystania struktur danych typu mapa (np. HashMap w Javie) w kontekście tworzenia zbiorów danych?

A. Ponieważ struktury danych typu mapa zajmują mniej pamięci niż tablice
B. Bo pozwalają na sortowanie danych bez dodatkowych działań
C. Z powodu szybkiego uzyskiwania dostępu do elementów przy użyciu klucza
D. Gdyż nie potrzebują znajomości wielkości danych przed kompilacją
Mapa, na przykład HashMap w Javie, to taka fajna struktura, która trzyma pary klucz-wartość. Dzięki temu szybko możemy znaleźć dane, korzystając z unikalnego klucza. HashMap jest super, bo pozwala nam na błyskawiczne dodawanie, usuwanie i wyszukiwanie elementów w czasie O(1). To naprawdę przydaje się, gdy pracujemy z dużymi zbiorami danych. Używamy jej często w aplikacjach wymagających szybkiego dostępu do informacji, jak różne bazy danych czy strony internetowe. No i jeszcze jej elastyczność – można ją łatwo dostosować do zmieniających się zestawów danych, co jest dużym plusem.

Pytanie 38

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

A. klasy, obiekty oraz hermetyzację
B. wyzwalacze i polimorfizm
C. zmienne, procedury oraz funkcje
D. pola, metody, rekurencję oraz kwerendy
Obiektowe podejście obejmuje klasy, obiekty i hermetyzację. Te trzy elementy stanowią podstawę programowania obiektowego, umożliwiając organizację kodu i ochronę danych przed nieautoryzowanym dostępem.

Pytanie 39

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

A. Rozwijana lista
B. Przycisk opcji
C. Menu
D. Obszar tekstowy
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 40

Jak określa się proces transferu danych z lokalnego komputera na serwer?

A. Streaming
B. Wysyłanie danych
C. Przesyłanie danych
D. Pobieranie danych
Pojęcia takie jak pobieranie danych, przesyłanie danych oraz streaming są często mylone z wysyłaniem danych, jednak każde z nich ma swoją unikalną definicję i zastosowanie. Pobieranie danych odnosi się do procesu ściągania informacji z serwera na komputer lokalny. Jest to operacja odwrotna do wysyłania danych i jest kluczowa dla użytkowników, którzy chcą uzyskać dostęp do plików lub zasobów umieszczonych na serwerze. Przykładowo, podczas przeglądania internetu, przeglądarka pobiera dane z serwerów, aby wyświetlić stronę użytkownikowi. Przesyłanie danych, z kolei, to termin ogólny, który można wykorzystać do opisania dowolnej wymiany informacji między lokalnym a zdalnym systemem. Obejmuje zarówno wysyłanie, jak i pobieranie danych, co sprawia, że użycie go w kontekście konkretnej operacji może być mylące. Wreszcie, streaming odnosi się do strumieniowego przesyłania danych, które umożliwia użytkownikom nieprzerwaną transmisję multimediów, takich jak filmy czy muzyka, w czasie rzeczywistym. W tym przypadku, dane są przesyłane w małych partiach, co pozwala na ich natychmiastowe odtwarzanie, a nie przechowywanie lokalnie. W związku z tym, choć wszystkie te procesy dotyczą transferu danych, to tylko wysyłanie danych odnosi się do przesyłania informacji z komputera lokalnego na serwer.