Wyniki egzaminu

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

Egzamin niezdany

Wynik: 14/40 punktów (35,0%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

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

A. HDD 5400 RPM, SATA II, 32 MB Cache
B. SSD SATA III, prędkość odczytu do 550 MB/s
C. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s
D. HDD 7200 RPM, SATA III, 64 MB Cache
Odpowiedź wskazująca na SSD NVMe PCIe 3.0 jako najszybszy dysk do odczytu danych jest zgodna z obecnymi standardami technologii przechowywania. Dyski SSD (Solid State Drive) korzystają z pamięci flash, co pozwala na znacznie szybszy dostęp do danych w porównaniu do tradycyjnych dysków HDD (Hard Disk Drive), które działają na zasadzie mechanicznych ruchomych elementów. Dyski NVMe (Non-Volatile Memory Express) są szczególnie wydajne, ponieważ wykorzystują interfejs PCIe (Peripheral Component Interconnect Express), co umożliwia znacznie wyższe prędkości transferu danych. W przypadku SSD NVMe PCIe 3.0, prędkość odczytu może osiągać do 3500 MB/s, co jest znaczącą różnicą w porównaniu do prędkości odczytu w dyskach HDD i SSD SATA. Przykładowo, w zastosowaniach takich jak edycja wideo, renderowanie grafiki 3D czy gry komputerowe, wyższa prędkość odczytu przekłada się na szybsze ładowanie danych i lepszą wydajność systemu. Standardy SATA III dla HDD również mają swoje ograniczenia, ponieważ maksymalna teoretyczna prędkość transferu wynosi 6 Gb/s, co jest dalekie od osiągów oferowanych przez NVMe. Dlatego SSD NVMe PCIe 3.0 jest zdecydowanym liderem w kontekście wydajności odczytu danych w porównaniu do pozostałych opcji.

Pytanie 2

Jak zostanie przedstawiony poniższy kod XAML?

Ilustracja do pytania
A. Rysunek 3
B. Rysunek 1
C. Rysunek 4
D. Rysunek 2
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 3

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

Ilustracja do pytania
A. Freeware
B. OEM
C. Open Source
D. Shareware
Opis licencji wskazuje na licencję Open Source, która umożliwia użytkownikom przeglądanie, modyfikowanie i dystrybucję kodu źródłowego. Oprogramowanie open source sprzyja innowacji, współpracy i elastyczności, pozwalając na dostosowanie aplikacji do własnych potrzeb. Licencje takie jak GPL, MIT czy Apache są popularnymi przykładami licencji open source.

Pytanie 4

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

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

Pytanie 5

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. określenia zasięgu dostępności metod i pól danej klasy
B. sformułowania klasy bardziej szczegółowej niż już stworzona
C. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
D. asynchronicznej realizacji długotrwałych zadań
Asynchroniczna obsługa operacji nie jest związana z dziedziczeniem, raczej chodzi tu o programowanie współbieżne. A jeśli chodzi o stałe, to definiuje się je jako stałe (const), a dziedziczenie to zupełnie inna bajka. Pamiętaj, że widoczność metod i pól kontrolują modyfikatory dostępu, takie jak private, protected i public, więc to też jest ważne.

Pytanie 6

Jakie informacje przedstawia diagram Gantta?

A. Model przepływu danych
B. Relacje między różnymi projektami
C. Strukturę plików w projekcie
D. Plan działań w projekcie
Hierarchia plików w projekcie to struktura katalogów i plików organizująca kod źródłowy, ale nie przedstawia harmonogramu zadań. Powiązania między różnymi projektami mogą być zarządzane na poziomie systemów ERP lub narzędzi do zarządzania portfelami projektów, ale diagram Gantta skupia się na pojedynczym projekcie. Schemat przepływu danych to narzędzie inżynierii oprogramowania, które opisuje sposób przesyłania informacji między komponentami systemu, ale nie pełni funkcji harmonogramu projektowego.

Pytanie 7

Jakiego typu funkcja jest tworzona poza klasą, ale ma dostęp do jej prywatnych i chronionych elementów?

A. Destruktor
B. Funkcja zaprzyjaźniona
C. Konstruktor
D. Metoda statyczna
Konstruktor jest specjalnym typem metody klasy, który służy do inicjalizacji obiektów i nie ma dostępu do prywatnych składowych innej klasy, chyba że jest ona klasą zaprzyjaźnioną. Metoda statyczna należy do klasy jako całości i może być wywoływana bez tworzenia instancji obiektu, ale nie posiada dostępu do prywatnych lub chronionych składowych klasy, ponieważ działa w kontekście klasy, a nie instancji. Destruktor, z kolei, jest odpowiedzialny za czyszczenie zasobów po zniszczeniu obiektu i nie posiada funkcjonalności pozwalającej na dostęp do prywatnych danych innej klasy, o ile nie jest ona zaprzyjaźniona.

Pytanie 8

Zapisany fragment w Pythonie ilustruje:

Ilustracja do pytania
A. tablicę asocjacyjną (słownik)
B. stos
C. kolejkę (LIFO)
D. strukturę danych
Stos (LIFO) i kolejka (FIFO) to struktury, które działają na zasadzie dodawania i usuwania elementów, ale nie obsługują dostępu poprzez klucz. Zwykłe tablice (listy) przechowują elementy w określonej kolejności i odwołują się do nich przez indeksy liczbowe, a nie klucze tekstowe.

Pytanie 9

Jakie elementy powinny być zawarte w instrukcji dla użytkownika danej aplikacji?

A. Informacje o narzędziach programistycznych zastosowanych w procesie tworzenia aplikacji
B. Wyjaśnienie struktur danych wykorzystywanych w kodzie
C. Harmonogram realizacji projektu
D. Opis instalacji, konfiguracji oraz obsługi oprogramowania
W instrukcji użytkownika aplikacji warto, żeby był opis tego, jak zainstalować, skonfigurować i korzystać z programu. Taka dokumentacja, pisana krok po kroku, pomaga użytkownikowi przejść przez wszystkie etapy, od pobrania oprogramowania, przez instalację, aż po to, żeby w pełni wykorzystać wszystkie funkcje. Dobrze, żeby były tam też info o wymaganiach systemowych, sposobach radzenia sobie z problemami czy aktualizacjach oprogramowania. Moim zdaniem, taka dokładna instrukcja jest mega ważna, bo zmniejsza szanse na napotkanie kłopotów podczas korzystania z aplikacji i sprawia, że łatwiej jest wdrożyć ją w pracy. Jak użytkownicy mają porządnie napisaną instrukcję, to są bardziej zadowoleni i szybciej przyzwyczajają się do nowego narzędzia.

Pytanie 10

Który z wymienionych algorytmów jest algorytmem opartym na iteracji?

A. Fibonacci (rekurencyjnie)
B. DFS (przeszukiwanie w głąb)
C. QuickSort
D. BubbleSort
QuickSort to algorytm rekurencyjny wykorzystujący podejście 'dziel i zwyciężaj' i działa znacznie szybciej niż Bubble Sort. Rekurencyjna wersja algorytmu obliczania Fibonacciego jest klasycznym przykładem rekurencji, a nie iteracji. DFS (Depth First Search) to algorytm przeszukiwania grafów, który może być zarówno rekurencyjny, jak i iteracyjny, ale nie jest algorytmem sortowania, co odróżnia go od Bubble Sort.

Pytanie 11

Aby zdefiniować zmienną, która będzie działała jako licznik instancji danej klasy, należy wprowadzenie takiego zmiennej poprzedzić słowem kluczowym

A. virtual
B. register
C. static
D. operator
Słowo 'register' oznacza zmienną przechowywaną w rejestrze procesora, ale nie jest używane do deklarowania pól klasowych. 'Operator' odnosi się do przeciążania operatorów, co nie ma związku z liczeniem instancji klasy. 'Virtual' dotyczy metod wirtualnych i polimorfizmu, a nie liczenia obiektów klasy.

Pytanie 12

Które z wymienionych pól klasy można zainicjalizować przed stworzeniem obiektu?

A. Prywatne pole
B. Static pole
C. Publiczne pole
D. Chronione pole
Pola prywatne i chronione są związane z konkretnymi instancjami klasy, co oznacza, że nie mogą być inicjalizowane przed utworzeniem obiektu. Inicjalizacja takich pól następuje w konstruktorze klasy lub w trakcie tworzenia instancji. Publiczne pola, choć dostępne z dowolnego miejsca w programie, także wymagają istnienia konkretnej instancji obiektu, aby mogły zostać zainicjowane i użyte. Statyczność jest kluczowym czynnikiem pozwalającym na inicjalizację pola niezależnie od istnienia obiektu.

Pytanie 13

Jaką funkcję pełnią mechanizmy ciasteczek w aplikacjach internetowych?

A. Do generowania dynamicznych interfejsów dla użytkowników
B. Do zapisywania danych użytkownika w przeglądarce
C. Do zapisywania danych użytkownika na serwerze
D. Do przechowywania informacji w bazie danych
Przechowywanie danych użytkownika po stronie serwera odbywa się przy użyciu baz danych SQL lub NoSQL, a nie za pomocą ciasteczek, które operują po stronie klienta. Tworzenie dynamicznych interfejsów użytkownika odbywa się przy pomocy technologii frontendowych, takich jak JavaScript, React lub Vue.js, natomiast cookies przechowują dane, a nie generują interfejsów. Bazy danych służą do długoterminowego przechowywania dużych ilości informacji i nie są tożsame z mechanizmem ciasteczek, które przechowują dane tymczasowe po stronie klienta.

Pytanie 14

Definicja konstruktora dla zaprezentowanej klasy w języku C++ może być sformułowana jak w

Ilustracja do pytania
A. Deklaracji 3
B. Deklaracji 4
C. Deklaracji 2
D. Deklaracji 1
Deklaracja 2 może zawierać błędną składnię lub brak odpowiedniej definicji, co prowadzi do błędów kompilacji. Deklaracja 3 może używać nieprawidłowych modyfikatorów dostępu. Deklaracja 4 może zawierać błędne parametry lub brak wymaganej inicjalizacji zmiennych, co czyni ją niepoprawną jako konstruktor.

Pytanie 15

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

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

Pytanie 16

Który z etapów umożliwia zwiększenie efektywności aplikacji przed jej wydaniem?

A. Tworzenie interfejsu graficznego
B. Dodawanie komentarzy do kodu
C. Optymalizacja kodu
D. Testowanie jednostkowe
Testowanie jednostkowe pozwala na wykrycie błędów w poszczególnych komponentach aplikacji, ale samo w sobie nie prowadzi do optymalizacji kodu. Tworzenie interfejsu graficznego (GUI) jest istotne dla atrakcyjności aplikacji, ale nie wpływa bezpośrednio na jej wydajność. Dodawanie komentarzy do kodu poprawia jego dokumentację i czytelność, ale nie ma wpływu na szybkość działania aplikacji.

Pytanie 17

Przedstawione kody zawierają realizację funkcji oraz jeden zdefiniowany test automatyczny, który weryfikuje działanie funkcji w przypadku, gdy argumentem jest liczba ujemna. W miejscu kropek trzeba dodać drugi test, który sprawdzi funkcjonalność funkcji, kiedy argumentem jest liczba dodatnia. Który z poniższych kodów jest odpowiedni do tego testu?

Ilustracja do pytania
A. Odpowiedź D
B. Odpowiedź B
C. Odpowiedź A
D. Odpowiedź C
Błędne odpowiedzi A B oraz D wynikają z niepoprawnego zrozumienia działania funkcji fun1 która przekształca wartość ujemną na dodatnią ale nie zmienia wartości dodatnich Odpowiedź A sugeruje że funkcja powinna dodać 1 do wartości co nie jest zgodne z jej definicją Funkcja nie wykonuje operacji arytmetycznych poza mnożeniem ujemnych liczb przez -1 co w odpowiedzi A nie ma zastosowania Wynik testu oczekiwany jako result+1 nie odzwierciedla poprawnego działania funkcji Odpowiedź B natomiast błędnie zakłada że funkcja przekształca dodatnie liczby w ujemne co nie jest prawdą Funkcja jedynie zmienia znak dla ujemnych wartości więc test oczekujący że 2 przekształci się w -2 jest niepoprawny Odpowiedź D z kolei zakłada że funkcja zmienia znak liczby dodatniej 1 do wartości -1 co również nie jest zgodne z założeniami funkcji Fun1 powinna zwracać tę samą wartość dla liczby dodatniej Funkcje jednostkowe są kluczowym narzędziem do zapewnienia niezawodności kodu i ich prawidłowe zrozumienie jest niezbędne do skutecznego testowania oprogramowania W kontekście tego pytania jedynie odpowiedź C prawidłowo odzwierciedla poprawne zachowanie funkcji dla wartości dodatnich co jest zgodne z jej implementacją

Pytanie 18

Jakie informacje zawiera zestaw instrukcji (ISA) danego procesora?

A. Instrukcje, które procesor jest w stanie wykonać
B. Typy danych, które są trzymane w pamięci
C. Metodę obsługi pamięci podręcznej
D. Układ połączeń między procesorem a innymi elementami
Rodzaje danych, które są trzymane w pamięci, nie są bezpośrednio powiązane z zestawem instrukcji procesora. ISA skupia się bardziej na tym, co procesor może zrobić, a nie na tym, jak dane są zorganizowane w pamięci. Przechowywanie danych to bardziej kwestia zarządzania pamięcią, a nie samej architektury instrukcji. A jeśli chodzi o pamięć podręczną, to już całkiem inna sprawa, bo to dotyczy tego, jak przechowujemy i uzyskujemy dostęp do danych. W tym przypadku mówi się o algorytmach i strategiach, które działają w architekturze procesora, ale nie są częścią zestawu instrukcji. I jeszcze schemat połączeń między procesorem a innymi częściami komputera też nie wchodzi w skład ISA. To już dotyczy całej architektury systemu i tego, jak różne elementy, jak pamięć czy urządzenia wejścia/wyjścia, współpracują ze sobą. Wszystko to jest istotne dla działania systemu komputerowego, ale nie definiuje zestawu instrukcji, który jest kluczowy, żeby procesor mógł przetwarzać dane i robić obliczenia.

Pytanie 19

Co to jest dokumentacja instruktażowa programu?

A. Zbiorem szczegółów technicznych dotyczących kodu źródłowego
B. Instrukcją opisującą, jak używać funkcji programu
C. Dokumentem przedstawiającym plany rozwoju oprogramowania
D. Kolekcją testów jednostkowych oraz ich wyników
Dokument zawierający szczegóły techniczne kodu źródłowego to część dokumentacji dla programistów, a nie instrukcja pomocy skierowana do użytkownika końcowego. Zbiór testów jednostkowych i wyników to część procesu testowania aplikacji, mająca na celu weryfikację poprawności działania kodu, ale nie wyjaśnia użytkownikom końcowym, jak korzystać z programu. Dokumenty związane z planami rozwoju aplikacji są istotne z punktu widzenia zarządzania projektem, ale nie zawierają instrukcji dotyczących bieżącej obsługi i użytkowania oprogramowania.

Pytanie 20

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

A. Wyszukiwanie binarne w uporządkowanej tablicy
B. Generowanie ciągu Fibonacciego
C. Obliczanie sumy elementów w tablicy
D. Sortowanie za pomocą metody QuickSort
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 21

Jakie jest podstawowe użycie metod wirtualnych?

A. Umożliwienie wielokrotnego dziedziczenia
B. Umożliwienie dynamicznego wiązania metod w czasie wykonania
C. Zapewnienie, że metoda działa wyłącznie na danych statycznych
D. Umożliwienie korzystania z metod bezpośrednio z klasy bazowej
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 22

W języku Java wyjątek ArrayIndexOutOfBoundsException występuje, gdy następuje próba dostępu do elementu tablicy, którego

A. indeks jest równy lub większy od rozmiaru tablicy
B. indeks mieści się w zakresie od 0 do n-1, gdzie n oznacza rozmiar tablicy
C. wartość przekracza rozmiar tablicy
D. wartość przewyższa 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.

Pytanie 23

W programie desktopowym stworzono rozwijaną listę oraz przypisano cztery funkcje do obsługi zdarzeń tej kontrolki. Jaki komunikat pojawi się po dokonaniu wyboru w tej liście?

Ilustracja do pytania
A. Zdarzenie 1
B. Zdarzenie 2
C. Zdarzenie 4
D. Zdarzenie 3
W momencie wyboru elementu z listy rozwijanej zostanie wyświetlone 'Zdarzenie 1', co wskazuje na przypisanie odpowiedniej funkcji obsługującej interakcję użytkownika z kontrolką.

Pytanie 24

Wartości składowych RGB koloru #AA41FF zapisane w systemie szesnastkowym po przekształceniu na system dziesiętny są odpowiednio

A. 170, 65, 255
B. 160, 65, 255
C. 170, 64, 255
D. 160, 64, 255
Niektóre błędne odpowiedzi wynikają z błędnej konwersji wartości szesnastkowych. Na przykład AA w szesnastkowym to 170, a nie 160. Poprawna interpretacja kolorów jest istotna w pracy grafików i programistów front-end.

Pytanie 25

Które z wymienionych działań, które są częścią procesu kreowania prostej galerii zdjęć w formie aplikacji mobilnej, powinno być realizowane przez zespół?

A. Stworzenie dokumentacji kodu aplikacji
B. Wdrożenie funkcji dodajZdjecie()
C. Przygotowanie i konfiguracja repozytorium dla projektu
D. Przygotowanie testu jednostkowego dla funkcji przegladajZdjecia()
Pozostałe odpowiedzi są zadaniami, które w większości przypadków mogą być realizowane indywidualnie, co czyni je zadaniami jednostkowymi. Implementacja funkcji dodajZdjecie() dotyczy konkretnego aspektu programistycznego, który może być wykonany przez jednego dewelopera. Wymaga ona znajomości języka programowania oraz logiki potrzebnej do dodawania zdjęć do galerii, co zazwyczaj nie wymaga współpracy z innymi członkami zespołu. Przygotowanie i skonfigurowanie repozytorium dla projektu natomiast to techniczny proces, który również najczęściej realizuje jedna osoba, odpowiedzialna za ustawienie środowiska pracy. Tworzenie testu jednostkowego dla funkcji przegladajZdjecia() to kolejny krok, który można wykonać samodzielnie, koncentrując się na testowaniu konkretnej funkcji w izolacji, bez potrzeby angażowania innych programistów. W przypadku tych zadań, choć mogą one być częścią większego projektu, to ich realizacja nie wymaga współpracy zespołowej, co sprawia, że nie są to zadania zespołowe.

Pytanie 26

Podstawowym celem środowisk IDE takich jak: IntelliJ IDEA, Eclipse, NetBeans jest programowanie w języku:

A. Java
B. C++
C. C#
D. Python
Eclipse i NetBeans mogą wspierać inne języki (np. C/C++), ale ich głównym przeznaczeniem jest Java. PyCharm jest natomiast środowiskiem dedykowanym programowaniu w Pythonie, a Visual Studio jest najczęściej używane do C# i .NET, a nie do Javy.

Pytanie 27

Kod zaprezentowany w filmie w języku C++ nie przechodzi kompilacji. Co należy zmodyfikować w tym kodzie, aby kompilacja odbyła się bez błędów?

A. dodać deklarację funkcji sprawdz przed funkcją main
B. poprawnie zapisać warunek w instrukcji if w linii 11, np. sprawdz(x)==true
C. zadeklarować zmienną sprawdz przed jej wykorzystaniem w linii 11
D. naprawić błąd w funkcji sprawdz, który polega na braku nawiasów {} w pętli for
Błąd warunku if – Choć poprawny, nie jest przyczyną problemu z kompilacją. Brak nawiasów – Może prowadzić do błędów logicznych, ale nie uniemożliwia kompilacji. Deklaracja zmiennej – Brak zmiennej to inny rodzaj błędu, który może pojawić się na późniejszym etapie.

Pytanie 28

Który komponent systemu komputerowego zajmuje się transferem danych pomiędzy procesorem a pamięcią RAM?

A. Karta graficzna
B. Kontroler DMA
C. Mostek północny (Northbridge)
D. Zasilacz
Kontroler DMA (Direct Memory Access) to komponent, który umożliwia transfer danych pomiędzy urządzeniami peryferyjnymi a pamięcią RAM bez bezpośredniego zaangażowania procesora. Choć odgrywa on istotną rolę w wydajności systemu, nie jest odpowiedzialny za bezpośrednią komunikację pomiędzy procesorem a pamięcią RAM. Jego zadaniem jest odciążenie procesora, ale nie zastępuje funkcji mostka północnego. Karta graficzna, z kolei, jest odpowiedzialna za renderowanie grafiki i przetwarzanie obrazów, a jej działanie jest ściśle związane z zadaniami wizualnymi, a nie z przesyłaniem danych pomiędzy CPU a RAM. Zasilacz natomiast jest komponentem, który dostarcza energię elektryczną do wszystkich części komputera. Choć niezbędny do funkcjonowania systemu, zasilacz nie ma żadnego wpływu na przesyłanie danych czy komunikację pomiędzy procesorem a pamięcią. W związku z tym, żaden z wymienionych elementów nie może pełnić roli mostka północnego, co czyni je niewłaściwymi odpowiedziami na to pytanie.

Pytanie 29

W C++ mechanizm programowania obiektowego, który wykorzystuje funkcje wirtualne (ang. Virtual) i umożliwia programiście pominięcie kontroli klasy pochodnej podczas wywoływania metod, nazywa się

A. dziedziczeniem
B. przeciążeniem
C. hermetyzacją
D. polimorfizmem
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 30

W jakim modelu Cyklu Życia Projektu Informatycznego znajduje się etap analizy ryzyka?

A. W spiralnym
B. W modelu z prototypem
C. W modelu Fry’ego
D. W kaskadowym
Model kaskadowy nie uwzględnia formalnej analizy ryzyka, a projekt jest realizowany liniowo. Model z prototypem koncentruje się na szybkim tworzeniu działających wersji produktu, ale analiza ryzyka nie jest jego istotnym elementem. Model Fry’ego to starszy model, który nie kładzie nacisku na analizę ryzyka w każdej fazie projektu.

Pytanie 31

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

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

Pytanie 32

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

A. Poprawa wydajności kodu programu
B. Zarządzanie zadaniami i czasem w projekcie
C. Opracowanie bazy danych dla projektu
D. Produkcja animacji komputerowych
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 33

Który element dokumentacji technicznej jest istotny dla ustalenia metod ochrony danych w aplikacji?

A. Koncepcja interfejsu użytkownika
B. System ochrony aplikacji
C. Opis architektury klient-serwer
D. Harmonogram zarządzania zadaniami
System zabezpieczeń aplikacji to kluczowy element specyfikacji technicznej, który określa metody ochrony danych. Obejmuje on takie elementy jak szyfrowanie, kontrola dostępu, uwierzytelnianie oraz autoryzacja. Prawidłowo zaprojektowany system zabezpieczeń zapewnia ochronę przed atakami hakerskimi, nieautoryzowanym dostępem oraz utratą danych. W aplikacjach webowych i mobilnych systemy zabezpieczeń obejmują również techniki takie jak dwuskładnikowe uwierzytelnianie (2FA), zabezpieczenia API oraz regularne audyty bezpieczeństwa. Implementacja solidnych mechanizmów zabezpieczeń jest niezbędna, aby zapewnić zgodność z regulacjami prawnymi i zyskać zaufanie użytkowników.

Pytanie 34

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

A. Bitowe "lub"
B. Operację przesunięcia bitów w prawo
C. Logiczne "lub"
D. Bitowe "xor"
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 35

Który z poniższych procesów jest wyłącznie związany z kompilowaniem kodu?

A. Executing code step by step
B. Detection of logical errors during program execution
C. Generating an executable file
D. Real-time translation of instructions
Generowanie pliku wykonywalnego to jeden z najważniejszych kroków w kompilacji. Kiedy kod źródłowy zostaje przetworzony na język maszynowy, kompilator tworzy plik binarny, który można uruchomić na odpowiednim systemie operacyjnym. Taki plik jest samodzielny, więc nie trzeba go za każdym razem kompilować od nowa przy uruchamianiu. Dzięki kompilacji można też zoptymalizować kod, co jest mega ważne, zwłaszcza przy większych projektach. W przeciwieństwie do interpretacji, gdzie kod działa na bieżąco, kompilacja pozwala wyłapać błędy wcześniej i poprawić wydajność aplikacji. Moim zdaniem, to naprawdę spora zaleta!

Pytanie 36

Jakie zadanie wykonuje debugger?

A. Generowanie pliku wykonywalnego programu
B. Przekładanie kodu źródłowego na język maszynowy
C. Umożliwianie analizy działania programu krok po kroku
D. Identyfikowanie błędów składniowych podczas kompilacji
Tłumaczenie kodu źródłowego na język maszynowy to zadanie kompilatora, a nie debuggera. Wykrywanie błędów składniowych odbywa się podczas procesu kompilacji lub analizy statycznej, ale debugger zajmuje się błędami występującymi w trakcie wykonywania programu. Tworzenie pliku wykonywalnego jest funkcją kompilatora, nie debuggera. Debugger nie generuje kodu – jego zadaniem jest monitorowanie i analizowanie kodu, który już został skompilowany lub interpretowany.

Pytanie 37

Jakie wyrażenie logiczne powinno być użyte, aby zweryfikować, czy zmienna x zawiera wartości ujemne lub znajduje się w zakresie (10, 100)?

A. (x > 10 && x < 100) || x < 0
B. (x > 10 || x < 100) && x < 0
C. x > 10 || x < 100 || x < 0
D. x > 10 || x < 100 || x < 0
x > 10 || x < 100 || x < 0 – To błędne wyrażenie, które dopuszcza wartości większe niż 100 lub dowolnie mniejsze niż 10, co nie jest zgodne z warunkiem. x > 10 || x < 100 || x < 0 – Duplikat błędnego warunku. (x > 10 || x < 100) && x < 0 – Warunek ten dopuszcza wyłącznie liczby ujemne, ignorując przedział (10, 100).

Pytanie 38

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

A. C++
B. Objective-C
C. Swift
D. Java
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 39

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

A. Destruktor
B. Metoda statyczna
C. Metoda zaprzyjaźniona
D. Konstruktor kopiujący
Konstruktor kopiujący to taka specyficzna metoda w klasie, która działa, kiedy robimy nowy obiekt jako kopię już istniejącego. Dzięki temu możemy skopiować wartości pól z jednego obiektu do drugiego. To naprawdę ważne, zwłaszcza gdy mówimy o zarządzaniu pamięcią. Na przykład w C++ może to wyglądać tak: `Samochod(const Samochod &inny) { marka = inny.marka; przebieg = inny.przebieg; }`. Konstruktor kopiujący ma na celu uniknięcie problemów związanych z tzw. płytkim kopiowaniem, co może prowadzić do różnych błędów, jak wielokrotne zwolnienie tej samej pamięci. Generalnie mówiąc, jest to kluczowy mechanizm, który pomaga utrzymać bezpieczeństwo i poprawność działania naszej aplikacji.

Pytanie 40

Jakie narzędzie może zostać wykorzystane do automatyzacji testów aplikacji internetowych?

A. Postman
B. Blender
C. Selenium
D. Visual Studio Code
Postman to narzędzie do testowania API, umożliwiające wysyłanie zapytań HTTP i analizowanie odpowiedzi serwera, ale nie jest narzędziem do testowania interfejsów użytkownika w przeglądarce. Blender to narzędzie do modelowania 3D i animacji, które nie ma zastosowania w testowaniu aplikacji webowych. Visual Studio Code to edytor kodu źródłowego, który może być używany do pisania i debugowania kodu, ale samo w sobie nie jest narzędziem do automatycznego testowania aplikacji webowych, jak Selenium.