Wyniki egzaminu

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

Egzamin zdany!

Wynik: 35/40 punktów (87,5%)

Wymagane minimum: 20 punktów (50%)

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

Który z wymienionych parametrów dysku twardego ma największy wpływ na jego wydajność?

A. Ilość pamięci podręcznej (Cache)
B. Pojemność dysku
C. Prędkość obrotowa talerzy (RPM)
D. Rodzaj złącza (SATA/PCIe)
Prędkość obrotowa talerzy (RPM) jest kluczowym parametrem wpływającym na szybkość dysku twardego. Wyrażana w obrotach na minutę, RPM definiuje, jak szybko talerze dysku mogą obracać się, co z kolei wpływa na czas dostępu do danych. Dyski HDD o wyższej prędkości obrotowej, takie jak 7200 RPM w porównaniu do 5400 RPM, zazwyczaj oferują lepszą wydajność, co przekłada się na szybsze odczyty i zapisy danych. Przykładowo, w zastosowaniach wymagających intensywnego przetwarzania danych, takich jak gry komputerowe czy edycja wideo, wybór dysku o wyższej prędkości obrotowej może znacznie poprawić ogólne wrażenia użytkownika. Warto również zauważyć, że chociaż złącze SATA i PCIe wpływają na szybkość transferu, to w kontekście dysków HDD, RPM pozostaje jednym z najważniejszych czynników. Standardy takie jak SATA III oferują transfery do 6 Gb/s, ale jeśli talerze nie obracają się wystarczająco szybko, potencjał transferu nie zostanie w pełni wykorzystany. Z tego powodu, RPM jest kluczowym wskaźnikiem wydajności w kontekście dysków twardych.

Pytanie 2

Jakie znaczenie ma krajowa normalizacja dla produktów i usług?

A. Restrukcjonuje innowacje technologiczne
B. Gwarantuje lepszą zgodność oraz jakość
C. Ogranicza liczbę dostępnych towarów
D. Usuwa konieczność przeprowadzania kontroli jakości
Normalizacja krajowa to świetny sposób na to, żeby produkty i usługi były bardziej spójne i lepszej jakości. Kiedy mamy standardy, to producenci mogą robić rzeczy, które są zgodne z wymaganiami technicznymi. To z kolei sprawia, że konsumenci mogą bardziej ufać produktom, a ryzyko, że coś będzie wadliwe, spada. Dzięki normalizacji zwiększa się bezpieczeństwo, poprawia interoperacyjność, a to wszystko wspiera rozwój technologiczny. No i jest jeszcze to, że łatwiej jest wymieniać produkty między różnymi rynkami, co ma pozytywny wpływ na całą gospodarkę.

Pytanie 3

Który z poniższych przykładów stanowi aplikację mobilną wykorzystującą bazę danych?

A. Aplikacja wyświetlająca lokalny czas
B. Aplikacja do robienia zdjęć
C. Aplikacja kalkulator
D. Aplikacja gromadząca listę kontaktów użytkownika
Aplikacja przechowująca listę kontaktów użytkownika korzysta z bazy danych do przechowywania, odczytywania i zarządzania danymi. Tego typu aplikacje mobilne muszą efektywnie zarządzać dużą ilością danych i zapewniać ich szybki dostęp. Bazy danych, takie jak SQLite czy Firebase, są szeroko stosowane w aplikacjach mobilnych, umożliwiając przechowywanie kontaktów, wiadomości, notatek i innych informacji użytkownika. Dzięki bazom danych możliwe jest także synchronizowanie danych pomiędzy urządzeniami i przechowywanie ich w chmurze.

Pytanie 4

W programie stworzonym w języku C++ trzeba zadeklarować zmienną, która będzie przechowywać wartość rzeczywistą. Jakiego typu powinna być ta zmienna?

A. number
B. numeric
C. int
D. double
Typ zmiennej 'double' przechowuje liczby rzeczywiste (zmiennoprzecinkowe) w języku C++. Jest to najczęściej używany typ do operacji wymagających precyzji, takich jak obliczenia matematyczne czy fizyczne. Double oferuje większą dokładność niż 'float' i jest standardem w większości aplikacji.

Pytanie 5

Zamieszczony kawałek kodu w języku C# tworzy hasło. Wskaż prawdziwe stwierdzenie dotyczące cech tego hasła?

Ilustracja do pytania
A. Może zawierać małe oraz wielkie litery, cyfry i znaki specjalne
B. Ma maksymalną długość 7 znaków, co ustala zmienna i
C. Może zawierał małe i wielkie litery oraz cyfry
D. Ma 8 znaków lub więcej i zawiera małe oraz wielkie litery, a także cyfry
Fragment programu w języku C# generuje hasło, które zawiera małe i wielkie litery oraz cyfry. W kodzie widzimy, że zmienna pulaZnakow zawiera wszystkie małe litery alfabetu, wszystkie wielkie litery oraz cyfry od 0 do 9. Zmienna dlPuli przechowuje długość ciągu znaków, co umożliwia losowe wybieranie znaków z pełnego zakresu dostępnych znaków. W pętli for odbywa się iteracja 8 razy, co oznacza, że każde generowane hasło ma długość 8 znaków. Każdy znak jest losowo wybierany z puli, co zapewnia różnorodność i brak uprzedzeń w doborze znaków. Warto również zwrócić uwagę na praktyczne użycie klasy Random, która jest standardem w przypadkowej generacji danych w C#. Takie podejście jest zgodne z najlepszymi praktykami, gdzie hasła powinny mieć różnorodne znaki, co zwiększa ich siłę i trudność złamania. Dobrym pomysłem jest również dodanie symboli specjalnych dla jeszcze większego bezpieczeństwa, co można łatwo zaimplementować modyfikując pule dostępnych znaków.

Pytanie 6

Jakie będą skutki wykonania podanego fragmentu kodu w języku C++?

Ilustracja do pytania
A. z tablicy liczby usuwane są elementy, z każdym obiegiem pętli eliminowany jest element z jej początku
B. z tablicy liczby usuwane są elementy, z każdym obiegiem pętli eliminowany jest element z jej końca
C. do tablicy liczby, na jej początku, dodawane są nowe wartości
D. do tablicy liczby, na jej końcu, dodawane są nowe wartości
Kod w języku C++ dodaje kolejne wartości na końcu tablicy 'liczby' podczas każdej iteracji pętli. Operacja ta jest realizowana poprzez użycie wskaźnika lub iteratora wskazującego na ostatnią pozycję tablicy, co umożliwia efektywne dodawanie elementów bez konieczności przestawiania istniejących danych.

Pytanie 7

Jakie aspekty powinny być brane pod uwagę przy tworzeniu struktury danych dla aplikacji?

A. Złożoność obróbki danych oraz ich efektywną organizację
B. Nie ma związku pomiędzy strukturą danych a efektywnością aplikacji
C. Tylko typ języka programowania
D. Tylko wymagania sprzętowe
Złożoność przetwarzania danych i ich optymalna organizacja to kluczowe elementy podczas projektowania struktury danych dla aplikacji. Dobrze zaprojektowana struktura danych wpływa na wydajność aplikacji, redukuje czas dostępu do informacji oraz minimalizuje zużycie zasobów. Optymalizacja algorytmów oraz wybór odpowiednich struktur danych, takich jak listy, drzewa czy tablice hashujące, ma bezpośredni wpływ na szybkość działania aplikacji.

Pytanie 8

Jaki framework jest powszechnie wykorzystywany do rozwijania aplikacji desktopowych w języku C++?

A. Qt
B. WPF
C. Flutter
D. Node.js
Node.js to środowisko uruchomieniowe dla języka JavaScript, przeznaczone do tworzenia aplikacji serwerowych i skryptów backendowych, a nie aplikacji desktopowych. WPF (Windows Presentation Foundation) jest frameworkiem dla języka C#, a nie C++. Flutter to framework stworzony przez Google, który służy do budowy aplikacji mobilnych i webowych, wykorzystując język Dart, co sprawia, że nie jest narzędziem pierwszego wyboru dla programistów C++.

Pytanie 9

Jakie znaczenie ma określenie "klasa zaprzyjaźniona" w kontekście programowania obiektowego?

A. Klasa, która może być dziedziczona przez inne klasy
B. Klasa, która ma dostęp do prywatnych i chronionych elementów innej klasy
C. Klasa, która nie ma możliwości zawierania metod statycznych
D. Klasa, w której wszystkie komponenty są publiczne
Klasa zaprzyjaźniona (ang. 'friend class') to klasa, która ma dostęp do prywatnych i chronionych składowych innej klasy, dzięki specjalnej deklaracji 'friend' wewnątrz tej klasy. Jest to kluczowe narzędzie w programowaniu obiektowym, które umożliwia ściślejszą współpracę między klasami, jednocześnie zapewniając hermetyzację kodu w miejscach, gdzie jest to wymagane. Używanie klas zaprzyjaźnionych umożliwia bardziej efektywne zarządzanie zależnościami między klasami, co jest istotne w dużych projektach programistycznych. Klasy zaprzyjaźnione są często stosowane w bibliotekach standardowych i frameworkach, pozwalając na eleganckie rozwiązania problemów związanych z ukrywaniem implementacji i udostępnianiem tylko niezbędnych fragmentów kodu innym komponentom systemu.

Pytanie 10

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
Debugger umożliwia analizę działania programu krok po kroku, co jest kluczowe dla wykrywania i usuwania błędów logicznych oraz programistycznych. Debugowanie pozwala na śledzenie wartości zmiennych w czasie rzeczywistym, analizowanie przepływu programu i zatrzymywanie go w określonych punktach (breakpoints). Dzięki temu programista może znaleźć i naprawić błędy przed finalnym wdrożeniem aplikacji. Debuggery są nieodłącznym elementem środowisk IDE (Integrated Development Environment), takich jak Visual Studio, PyCharm czy Eclipse, i stanowią fundamentalne narzędzie w procesie programowania.

Pytanie 11

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 4
C. Zdarzenie 3
D. Zdarzenie 2
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 12

Jakie narzędzie można wykorzystać do stworzenia mobilnej aplikacji cross-platform w języku C#?

A. środowisko Android Studio
B. środowisko XCode
C. bibliotekę React Native
D. platformę Xamarin
React Native jest oparty na JavaScript, a Xcode to narzędzie do natywnego programowania na iOS. Android Studio służy do tworzenia aplikacji na Androida, ale nie jest narzędziem cross-platformowym dla C#.

Pytanie 13

Cytat przedstawia charakterystykę metodyki RAD. Pełne znaczenie tego skrótu można przetłumaczyć na język polski jako:

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

Pytanie 14

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

Ilustracja do pytania
A. while
B. switch
C. if
D. try
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 15

Jaką rolę odgrywa pamięć operacyjna (RAM) w komputerowym systemie?

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

Pytanie 16

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

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

Pytanie 17

Który z wymienionych wzorców projektowych jest najbardziej odpowiedni do uproszczenia interfejsu złożonego systemu?

A. Metoda szablonowa (Template method)
B. Kompozyt (Composite)
C. Singleton (Singleton)
D. Fasada (Facade)
Wzorzec projektowy Fasada (Facade) upraszcza interfejs do złożonego systemu poprzez dostarczenie jednolitego punktu dostępu do wielu podsystemów. Dzięki temu klienci mogą korzystać z funkcji systemu za pomocą prostego interfejsu, co zwiększa czytelność kodu i ułatwia jego utrzymanie. Fasada jest szczególnie przydatna w dużych aplikacjach, gdzie wiele modułów wymaga skomplikowanej konfiguracji lub współdziałania. Wprowadzenie fasady ukrywa złożoność wewnętrzną systemu, jednocześnie zapewniając dostęp do niezbędnych funkcjonalności. To rozwiązanie jest często stosowane w systemach z wieloma interfejsami API, w architekturze mikroserwisów oraz przy integracji zewnętrznych bibliotek.

Pytanie 18

Jaki tekst zostanie wyświetlony po uruchomieniu jednego z poniższych fragmentów kodu?

Ilustracja do pytania
A. {4}
B. {{2+2}}
C. {2+2}
D. 4
Kod zwraca liczbę 4, ponieważ {2+2} jest interpretowane jako wyrażenie matematyczne, a nie ciąg znaków. W frameworkach React czy Angular operacje matematyczne wykonywane są automatycznie w miejscach, gdzie oczekiwany jest wynik obliczenia.

Pytanie 19

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

A. na końcu analizowanego zbioru należy dodać wartownika
B. zbiór danych wejściowych musi być uporządkowany
C. szukany element powinien wystąpić wielokrotnie w zbiorze
D. zbiór ma zawsze 100 elementów
Algorytm sekwencyjnego wyszukiwania elementu z wartownikiem jest techniką optymalizacji procesu wyszukiwania w strukturach danych, która znacząco zwiększa efektywność operacji w przypadkach, gdy zbiór danych jest duży. Wartownik to specjalny element, który jest dodawany na końcu przeszukiwanego zbioru, co pozwala na uproszczenie warunków zakończenia pętli przeszukiwania. Kiedy algorytm przeszukuje zbiór, porównuje każdy element z poszukiwanym, a gdy znajdzie element, może zakończyć działanie. Dodanie wartownika pozwala uniknąć potrzeby sprawdzania, czy aktualnie przeszukiwany element jest ostatnim z oryginalnego zbioru, co z kolei zmniejsza liczbę porównań i przyspiesza proces wyszukiwania. W praktyce algorytm ten jest szczególnie użyteczny w przypadku niewielkich zbiorów danych, gdzie efektywność jest kluczowa. Przykładem zastosowania może być edytor tekstu, w którym użytkownik wyszukuje konkretne słowa w dokumencie, a dodanie wartownika usprawnia ten proces. Zgodnie z zasadami wydajnego programowania, ta technika stanowi jeden z podstawowych mechanizmów stosowanych w algorytmice, co czyni ją fundamentalnym konceptem w nauce o komputerach.

Pytanie 20

Na zaprezentowanych ilustracjach znajduje się okno aplikacji w wersji początkowej oraz po wprowadzeniu danych. Przyjmując, że pole "Dostępne środki" służy do wprowadzania wartości typu rzeczywistego, wskaż elementy struktury, które najlepiej odpowiadają tym danym?

Ilustracja do pytania
A. Kod 1
B. Kod 4
C. Kod 3
D. Kod 2
Dla pola 'Dostępne środki', które powinno przechowywać wartości rzeczywiste, odpowiednią strukturą jest ta zawierająca typ danych float lub double. Są to typy zmiennoprzecinkowe umożliwiające przechowywanie liczb z częścią ułamkową, co jest kluczowe przy operacjach finansowych i precyzyjnych obliczeniach. Wybór odpowiedniej struktury danych gwarantuje dokładność i minimalizuje ryzyko błędów związanych z zaokrągleniami.

Pytanie 21

Która z wymienionych metod najlepiej chroni komputer przed złośliwym oprogramowaniem?

A. Unikanie używania publicznych sieci Wi-Fi
B. Cykliczne wykonywanie kopii zapasowych
C. Stosowanie mocnych haseł
D. Właściwie zaktualizowany program antywirusowy
Tworzenie kopii zapasowych to niewątpliwie ważny krok w zabezpieczaniu danych, ale pamiętaj, że to nie pomaga w aktywnej ochronie przed wirusami. Możesz oczywiście odzyskać dane po ataku, ale lepiej jest zapobiegać niż leczyć, prawda? Unikanie publicznych sieci Wi-Fi zmniejsza ryzyko przechwycenia danych, ale nie zabezpiecza twojego komputera przed złośliwym oprogramowaniem. Silne hasła, no jasne, są ważne, ale nie zapobiegają przedostawaniu się wirusów do systemu.

Pytanie 22

Jakie słowa kluczowe są stosowane w języku C++ do zarządzania wyjątkami?

A. throw i handle
B. try i catch
C. except i finally
D. try i raise
Słowa kluczowe 'try' i 'catch' są podstawą obsługi wyjątków w języku C++. Umożliwiają one przechwytywanie i obsługę błędów, które mogą wystąpić podczas wykonywania programu. Blok 'try' zawiera kod, który jest monitorowany pod kątem błędów, a blok 'catch' przechwytuje i przetwarza zgłoszony wyjątek, zapobiegając nieoczekiwanemu zakończeniu programu. Mechanizm ten jest kluczowy dla tworzenia niezawodnego i odpornego na błędy oprogramowania. Dzięki 'try' i 'catch' programista może implementować logikę naprawczą lub logować błędy, co zwiększa stabilność i bezpieczeństwo aplikacji.

Pytanie 23

Kod w bibliotece React.js oraz w frameworku Angular, który został zaprezentowany, ma na celu wyświetlenie

Ilustracja do pytania
A. wartości 0 po naciśnięciu przycisku
B. liczby kliknięć przycisku
C. tylko napisu BTN_1
D. wyłącznie przycisku oraz obsłużenie zdarzenia click, które ono generuje
Kod w bibliotece React.js i Angular wyświetla liczbę kliknięć przycisku. Każde kliknięcie zwiększa wartość licznika, co jest standardowym przypadkiem użycia w interaktywnych aplikacjach webowych.

Pytanie 24

Jakie są cechy biblioteki statycznej w zestawieniu z dynamiczną?

A. Nie potrzebuje obecności pliku wykonywalnego
B. Zostaje dodana do pliku wykonywalnego w trakcie kompilacji
C. Może być zmieniana w czasie działania programu
D. Jest wczytywana do pamięci podczas działania aplikacji
Biblioteka statyczna jest dołączana do pliku wykonywalnego podczas procesu kompilacji. Oznacza to, że jej kod staje się integralną częścią aplikacji, co eliminuje konieczność ładowania jej w czasie wykonywania programu. Tego typu biblioteki charakteryzują się większym rozmiarem pliku wynikowego, ale oferują wyższą wydajność, ponieważ wszystkie funkcje są dostępne lokalnie, bez dodatkowych operacji ładowania. Przykładami bibliotek statycznych są pliki .lib w C/C++.

Pytanie 25

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

Ilustracja do pytania
A. przez wybór
B. bąbelkowe
C. przez wstawianie
D. szybkie (Quicksort)
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 26

Jakie znaczenie ma termin "hierarchia dziedziczenia" w kontekście programowania obiektowego?

A. Układ klas w strukturę, w której klasy pochodne dziedziczą cechy od klas bazowych
B. Zespół metod i pól posiadających ten sam modyfikator dostępu
C. Zbiór klas, które nie mają wspólnych powiązań
D. Układ klas, który ogranicza występowanie dziedziczenia wielokrotnego
Hierarchia dziedziczenia to fundamentalna koncepcja programowania obiektowego, polegająca na organizacji klas w strukturę, w której klasy pochodne dziedziczą właściwości (pola i metody) od klas bazowych. Pozwala to na wielokrotne wykorzystanie kodu, co zwiększa jego modularność i zmniejsza redundancję. Klasa bazowa dostarcza ogólne cechy i metody, podczas gdy klasy pochodne rozszerzają lub modyfikują tę funkcjonalność, dostosowując ją do bardziej specyficznych wymagań. Przykładem jest klasa 'Pojazd', po której mogą dziedziczyć klasy 'Samochód' i 'Motocykl', zachowując wspólne atrybuty, takie jak 'maksymalna prędkość' czy 'masa'.

Pytanie 27

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

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

Pytanie 28

Który 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

Pętla przedstawiona w zadaniu działa na zmiennej typu string o nazwie ciąg. Jej celem jest

Ilustracja do pytania
A. od każdego znaku w ciągu, który nie jest równy 0, odjąć kod 32
B. zamienić w ciągu wielkie litery na małe
C. zamienić w ciągu małe litery na wielkie
D. od każdego znaku w ciągu odjąć kod 32
Pętla, która zamienia małe litery na wielkie, to naprawdę fajny przykład tego, jak można operować na tekstach. W zasadzie każdy znak w napisie jest przeszukiwany, a jeśli to litera, to modyfikujemy jej kod ASCII. W praktyce dodajemy lub odejmujemy 32, żeby uzyskać odpowiednią wielką literę. Tego typu operacje wykorzystuje się w wielu miejscach, jak na przykład przy filtrowaniu danych czy normalizacji tekstu. No i oczywiście w systemach wyszukujących, gdzie wielkość liter ma znaczenie. Warto umieć zaimplementować taką pętlę, bo przydaje się w różnych aplikacjach, szczególnie tam, gdzie tekst jest kluczowy.

Pytanie 30

Celem zastosowania wzorca Obserwator w tworzeniu aplikacji WEB jest

A. zarządzanie funkcjami synchronicznymi w kodzie aplikacji
B. dostosowanie interfejsu użytkownika do różnych typów odbiorców
C. monitorowanie interakcji użytkownika i wysyłanie wyjątków
D. informowanie obiektów o modyfikacji stanu innych obiektów
Wzorzec Obserwator, znany również jako Observer, jest fundamentem programowania związanego z aplikacjami webowymi, szczególnie w kontekście architektury MVC (Model-View-Controller). Jego głównym celem jest umożliwienie obiektom (zwanym obserwatorami) subskrybowania zmian stanu innych obiektów (zwanych obserwowanymi). Kiedy stan obiektu obserwowanego ulega zmianie, wszystkie powiązane obiekty obserwujące są automatycznie powiadamiane o tej zmianie. Takie podejście jest szczególnie użyteczne w aplikacjach, gdzie interfejs użytkownika musi być dynamicznie aktualizowany w odpowiedzi na zmiany danych, na przykład w przypadku aplikacji do zarządzania danymi w czasie rzeczywistym. Przykładem może być aplikacja czatu, w której nowe wiadomości są automatycznie wyświetlane użytkownikom, gdy tylko są dodawane przez innych. Wzorzec ten jest również zgodny z zasadami SOLID, zwłaszcza z zasadą otwarte-zamknięte, umożliwiając rozwijanie aplikacji bez konieczności modyfikowania istniejących klas. W różnych technologiach webowych, takich jak JavaScript z użyciem frameworków takich jak React czy Angular, wzorzec Obserwator jest implementowany przez mechanizmy takie jak stany komponentów, co przyczynia się do lepszej organizacji kodu i zachowania jego czytelności.

Pytanie 31

Jakie metody pozwalają na przesłanie danych z serwera do aplikacji front-end?

A. formatu JSON
B. metody POST
C. biblioteki jQuery
D. protokołu SSH
Format JSON (JavaScript Object Notation) jest powszechnie używany do przesyłania danych z serwera do aplikacji front-end. Jest lekki, czytelny i łatwy do przetwarzania w większości języków programowania, co czyni go standardem w komunikacji API. JSON pozwala na efektywne przesyłanie złożonych struktur danych i ich łatwe mapowanie na obiekty w aplikacji.

Pytanie 32

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

A. przeprowadzane przez grupę docelowych użytkowników aplikacji
B. przeprowadzane na podstawie dokumentu zawierającego przypadki testowe
C. podzielone na testy funkcjonalne, wydajnościowe oraz skalowalności
D. realizowane przez zespół testerów zatrudnionych przez firmę Google
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 33

Który z poniższych składników NIE jest konieczny do stworzenia klasy w C++?

A. Zastosowanie słowa kluczowego class
B. Definicja funkcji członkowskich klasy
C. Deklaracja atrybutów klasy
D. Definicja destruktora
Do utworzenia klasy w C++ nie jest wymagana definicja destruktora. Destruktor to specjalna metoda klasy, która jest wywoływana automatycznie w momencie zniszczenia obiektu, ale jego obecność jest opcjonalna. Klasy, które nie operują bezpośrednio na zasobach zewnętrznych, takich jak dynamiczna pamięć lub pliki, często nie potrzebują destruktora, ponieważ domyślny destruktor generowany przez kompilator jest wystarczający. Aby utworzyć klasę, wystarczy deklaracja pól i metod oraz użycie słowa kluczowego 'class'. To sprawia, że C++ pozwala na szybkie definiowanie prostych klas, które można później rozwijać w miarę potrzeby.

Pytanie 34

W klasie pracownik zdefiniowano opisane metody. Która z nich jest odpowiednia do dodania elementu diagnostycznego o treści: cout << "Obiekt został usunięty";

Ilustracja do pytania
A. ~pracownik
B. wypisz
C. operator==
D. pracownik
Destruktor to specjalna metoda w języku C++ oznaczona tyldą przed nazwą klasy która jest wywoływana automatycznie w momencie usuwania obiektu danego typu z pamięci. Dlatego dodanie elementu diagnostycznego cout<<Obiekt został usunięty; jest najbardziej sensowne w destruktorze ponieważ pozwala na śledzenie momentu w którym obiekt przestaje istnieć. Takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ pomaga w debugowaniu i zarządzaniu zasobami w programie. Warto zauważyć że destruktory są kluczowe w kontekście zarządzania pamięcią szczególnie gdy klasa dynamicznie alokuje zasoby. Wówczas destruktor powinien zawierać kod zwalniający te zasoby aby uniknąć wycieków pamięci. Dodawanie diagnostycznych komunikatów może pomóc programistom w identyfikacji potencjalnych błędów związanych z zarządzaniem cyklem życia obiektów i poprawić ogólną stabilność i czytelność kodu. Praktyka ta jest szczególnie ważna w dużych projektach gdzie ręczne śledzenie wszystkich obiektów byłoby trudne i czasochłonne. Warto stosować taką diagnostykę w połączeniu z nowoczesnymi narzędziami do profilowania i analizy pamięci co zwiększa efektywność procesu programistycznego.

Pytanie 35

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

A. centralizacji zarządzania wieloma instancjami obiektów
B. gromadzenia obiektów w jednorodnej kolekcji
C. określenia szkieletu algorytmu i pozostawienia szczegółów implementacji dla podklas
D. organizowania obiektów w hierarchiczne struktury drzewiaste
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 36

Który z warunków logicznych weryfikuje, czy zmienna całkowita x jest dodatnią liczbą składającą się z dwóch cyfr i jest podzielna przez 4?

A. (x > 0 && x < 100) || (x / 4 == 0)
B. (x > 9 && x < 100) && (x % 4 == 0)
C. (x > 9 || x < 100) && (x / 4 == 0)
D. (x > 9 && x < 100) || (x % 4 == 0)
Warunek (x > 9 && x < 100) && (x % 4 == 0) sprawdza, czy zmienna x jest dodatnią liczbą dwucyfrową podzielną przez 4. Dzięki operatorom logicznym && programista może precyzyjnie określić, czy liczba mieści się w odpowiednim zakresie i spełnia wymagania dotyczące podzielności. Tego typu warunki są niezbędne przy filtrowaniu danych i walidacji użytkowych wejść.

Pytanie 37

W pokazanych fragmentach kodu zdefiniowano funkcję pod nazwą fun1. W tej funkcji należy zaimplementować obsługę

Ilustracja do pytania
A. aplikacji po wystąpieniu zdarzenia utraty focusa przez pole opcji
B. inicjacji elementów interfejsu użytkownika
C. usunięcia kontrolek z pamięci RAM
D. naciśnięcia przycisku zatwierdzającego dialog
Obsługa zdarzeń związanych z przyciskami zatwierdzającymi dialogi jest kluczową częścią interakcji użytkownika z aplikacją. W wielu środowiskach programistycznych, takich jak JavaScript, C# czy Java, przyciski te wywołują funkcje obsługi zdarzeń (event handlers), które mogą walidować dane, przetwarzać informacje lub wykonywać inne działania po naciśnięciu przycisku. Implementacja funkcji obsługującej przycisk jest nieodzowna w aplikacjach graficznych, gdzie interakcja z użytkownikiem wymaga dynamicznego reagowania na jego działania. Dzięki temu aplikacje stają się bardziej interaktywne i responsywne, co zwiększa komfort użytkownika i poprawia ogólną użyteczność oprogramowania.

Pytanie 38

Która z dokumentacji funkcji odpowiada przedstawionemu kodowi źródłowemu?

Ilustracja do pytania
A. Dokumentacja 1
B. Dokumentacja 4
C. Dokumentacja 2
D. Dokumentacja 3
Dokumentacja 2 jest prawidłowa i precyzyjnie opisuje funkcję, jej parametry oraz wartość zwracaną. Zgodność dokumentacji z kodem jest kluczowa dla późniejszego utrzymania oraz rozszerzania aplikacji.

Pytanie 39

Która z wymienionych zasad jest istotna dla bezpiecznego użytkowania portali społecznościowych?

A. Udostępnianie jak największej ilości informacji osobowych
B. Regularne kontrolowanie ustawień prywatności
C. Zgłaszanie treści, które naruszają regulamin
D. Unikanie stosowania silnych haseł do konta
Udostępnianie jak największej ilości danych osobowych jest jedną z najniebezpieczniejszych praktyk w kontekście korzystania z portali społecznościowych. Takie działanie naraża użytkowników na różne formy cyberprzestępczości, w tym kradzież tożsamości czy oszustwa. Im więcej informacji osoba udostępnia, tym łatwiej dla przestępców zbudować profil potencjalnej ofiary i wykorzystać go do oszustw. Kolejnym błędem jest unikanie ustawiania silnych haseł do konta. Słabe hasła, które są łatwe do odgadnięcia lub uzyskania, stają się powodem wielu nieautoryzowanych dostępu do kont. Przykłady prostych haseł, jak '123456' czy 'hasło', są powszechnie używane przez wiele osób, co czyni je niezwykle podatnymi na ataki brute force. Wreszcie, zgłaszanie postów, które nie są zgodne z regulaminem, choć jest to działanie pozytywne, nie wpływa bezpośrednio na bezpieczeństwo użytkownika. Zgłaszanie niewłaściwych treści jest ważne dla utrzymania zdrowego środowiska w sieci, ale nie chroni użytkownika przed zagrożeniami związanymi z prywatnością i bezpieczeństwem danych. Wspólnie, te praktyki mogą prowadzić do poważnych naruszeń bezpieczeństwa i nie powinny być stosowane przez świadomych użytkowników portali społecznościowych.

Pytanie 40

Zaprezentowany diagram Gantta odnosi się do projektu IT. Przy założeniu, że każdy członek zespołu dysponuje wystarczającymi umiejętnościami do realizacji każdego z zadań oraz że do każdego zadania można przypisać jedynie jedną osobę, która poświęci na zadanie pełny dzień pracy, to minimalna liczba członków zespołu powinna wynosić:

Ilustracja do pytania
A. 5 osób
B. 2 osoby
C. 1 osobę
D. 4 osoby
Diagram Gantta przedstawia harmonogram projektu, gdzie poszczególne zadania są przypisane do konkretnych dni. W sytuacji, gdy każdy członek zespołu jest w stanie wykonać dowolne zadanie, minimalna liczba osób potrzebna do realizacji projektu to liczba równoczesnych zadań w najbardziej wymagającym momencie. Kluczowe jest tu równomierne rozłożenie pracy i unikanie przestojów, co zapewnia efektywne wykorzystanie zasobów.