Wyniki egzaminu

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

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

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 4
B. Zdarzenie 2
C. Zdarzenie 1
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 2

Która z operacji logicznych zwróci wartość "true", gdy obie zmienne są sobie równe?

A. x == y
B. x || y
C. x && y
D. x != y
Operator `==` w języku C++ i wielu innych językach programowania (np. Python, Java, JavaScript) służy do porównywania dwóch wartości. Zwraca `true`, jeśli obie wartości są sobie równe, oraz `false`, jeśli są różne. Przykład: `if (x == y)` sprawdza, czy zmienna `x` jest równa zmiennej `y`. Operator ten jest kluczowy w instrukcjach warunkowych oraz pętlach, gdzie konieczne jest porównywanie wartości w celu podejmowania decyzji na podstawie wyniku tego porównania.

Pytanie 3

Błędy w interpretacji kodu stworzonego za pomocą React.js lub Angular można wykryć dzięki

A. kompilatorowi języka JavaScript
B. narzędziom zainstalowanym po stronie serwera aplikacji
C. wbudowanemu debuggerowi w danym środowisku
D. konsoli przeglądarki internetowej
Konsola przeglądarki to naprawdę super narzędzie do śledzenia błędów w JavaScript, a szczególnie przydatna jest, gdy piszemy coś w React.js albo Angular. Dzięki niej możesz łatwo sprawdzać logi i błędy, a nawet na żywo testować różne fragmenty swojego kodu. To naprawdę szybki sposób, żeby znaleźć problemy, bez potrzeby grzebania w całym kodzie aplikacji.

Pytanie 4

Który z wymienionych aktów prawnych odnosi się do ochrony danych osobowych w krajach Unii Europejskiej?

A. Open Source Initiative
B. GDPR (RODO)
C. DMCA
D. Creative Commons
GDPR (RODO) to akt prawny dotyczący ochrony danych osobowych w Unii Europejskiej. Wprowadza on jednolite zasady przetwarzania danych, zwiększając ochronę prywatności obywateli. RODO daje użytkownikom prawo do dostępu do swoich danych, ich poprawiania, a także żądania ich usunięcia (prawo do bycia zapomnianym). Firmy muszą transparentnie informować o celach przetwarzania danych oraz zapewniać odpowiedni poziom zabezpieczeń. Niezastosowanie się do przepisów RODO skutkuje wysokimi karami finansowymi.

Pytanie 5

Zapisany kod w języku Python ilustruje

Ilustracja do pytania
A. strukturę
B. stos
C. kolejkę (LIFO)
D. tablicę asocjacyjną (słownik)
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 6

Użycie typu DECIMAL w SQL wymaga wcześniejszego określenia liczby cyfr przed przecinkiem oraz ilości cyfr za przecinkiem. Jest to zapis:

A. logicznym
B. zmiennoprzecinkowy
C. stałoprzecinkowy
D. łańcuchowym
Typ DECIMAL w języku SQL to typ zmiennoprzecinkowy, który umożliwia przechowywanie liczb z określoną liczbą miejsc po przecinku. Jest szeroko stosowany w finansach i innych dziedzinach wymagających dużej precyzji, ponieważ unika błędów zaokrągleń, które mogą wystąpić przy użyciu typów FLOAT lub REAL. Przechowywanie danych liczbowych w dokładny sposób ma kluczowe znaczenie w aplikacjach związanych z walutami i statystyką.

Pytanie 7

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

A. C#
B. C++
C. Java
D. Python
IntelliJ IDEA, Eclipse i NetBeans to środowiska programistyczne (IDE) stworzone przede wszystkim z myślą o programowaniu w języku Java. Każde z nich oferuje wsparcie dla kompilacji, debugowania oraz narzędzi do budowy aplikacji desktopowych, webowych i mobilnych. Popularność Javy w środowisku korporacyjnym sprawia, że te IDE są powszechnie używane do tworzenia dużych systemów i aplikacji biznesowych.

Pytanie 8

Wskaż fragment kodu, który stanowi realizację przedstawionego algorytmu w języku C++

Ilustracja do pytania
A. kod 2
B. kod 3
C. kod 1
D. kod 4
Jak się przyjrzysz innym opcjom, można zauważyć sporo problemów, które mogą wprowadzać w błąd przy implementacji algorytmu związanym z schematem blokowym. Opcja Kod 2 stosuje instrukcję if-else, co już jest dużym błędem. W związku z tym operacje dodawania i zwiększania zmiennej `i` wykonają się tylko raz, jeśli początkowy warunek jest spełniony. Z tego wynika brak powtarzalności, co ważne w algorytmach, gdzie trzeba coś robić wielokrotnie, aż warunek będzie spełniony. Z kolei Kod 3 używa pętli for, która lepiej nadaje się do przypadków, gdzie liczba powtórzeń jest znana. Ale tutaj zmienna `i` jest źle umiejscowiona i nie pasuje do logiki algorytmu. Dodatkowo, sama konstrukcja pętli for nie pokazuje, że musimy coś zrobić przynajmniej raz, zanim sprawdzimy warunek. Kod 4 chociaż używa pętli while, to i tak nie spełnia warunku, że operacja musi się wykonać przynajmniej raz przed sprawdzeniem tego warunku. Pętla while najpierw weryfikuje warunek, więc jeśli na początku jest nieprawdziwy, to nie wejdzie w żadną iterację, co jest sprzeczne z logiką algorytmu. Dlatego tylko Kod 1 jest naprawdę zgodny z wymaganiami algorytmu i może być traktowany jako poprawna implementacja według tego schematu.

Pytanie 9

Jakie są kluczowe etapy realizacji projektu programistycznego?

A. Planowanie, projektowanie, debugowanie, konserwacja
B. Planowanie, analiza, implementacja, wdrożenie
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 10

Przedstawiono funkcjonalnie równoważne fragmenty kodu aplikacji Angular oraz React.js.

Ilustracja do pytania
A. obsługę zdarzenia przesłania formularza
B. funkcję, która wypełnia dane w formularzu podczas jego inicjalizacji
C. wyświetlanie w konsoli przeglądarki danych pobranych z pól formularza w czasie rzeczywistym, gdy użytkownik je wypełnia
D. funkcję, która zapisuje do zmiennych f lub e dane z polaformularza
Oba fragmenty kodu, zarówno w Angularze jak i React.js, pokazują obsługę zdarzenia zatwierdzenia formularza. W Angularze zdarzenie submit jest obsługiwane poprzez przypisanie funkcji submit do atrybutu ngSubmit. Ta funkcja otrzymuje jako argument obiekt formularza, a następnie wypisuje jego wartość w konsoli za pomocą f.value. Jest to zgodne z dobrymi praktykami Angulara, gdzie korzysta się z dwukierunkowego wiązania danych i obiektu formularza do zarządzania danymi wejściowymi. W przypadku React.js funkcja handleSubmit jest przypisywana do zdarzenia onSubmit formularza. W tej funkcji nie tylko logujemy dane wejściowe, ale również używamy e.preventDefault(), aby zapobiec domyślnemu działaniu formularza, co jest standardową praktyką w React.js, gdzie zarządzamy stanem komponentów samodzielnie. W obu przypadkach kluczową czynnością jest reakcja na zdarzenie wysłania formularza, co pozwala na dalsze przetwarzanie danych wejściowych, walidację lub wysyłanie ich do serwera.

Pytanie 11

W jaki sposób można zmniejszyć liczbę danych zbieranych przez aplikacje mobilne?

A. Używać aplikacji bez sprawdzania ich źródła
B. Weryfikować i regulować uprawnienia aplikacji w ustawieniach
C. Nie blokować aplikacjom dostępu do lokalizacji oraz kontaktów
D. Udostępniać aplikacjom wszystkie niezbędne informacje
Dostosowanie uprawnień aplikacji w ustawieniach swojego telefonu to naprawdę dobry sposób na ograniczenie tego, co aplikacje mogą o nas wiedzieć. Wiele z nich, jak np. te do robienia zdjęć, prosi o dostęp do lokalizacji czy kontaktów, ale nie zawsze jest to potrzebne. Warto co jakiś czas sprawdzić, czy jakieś aplikacje nie mają za dużo uprawnień. Dzięki temu lepiej zabezpieczymy swoją prywatność i zmniejszymy ryzyko, że nasze dane wyciekną. Lepiej też unikać aplikacji z nieznanych źródeł, bo mogą one zbierać więcej informacji, niż byśmy chcieli.

Pytanie 12

Który rodzaj kolekcji pozwala na dostęp do elementów w porządku FIFO (First In First Out)?

A. Kolekcja LIFO
B. Tablica
C. Sekwencja
D. Kolejka
Kolejka to struktura danych, która działa na zasadzie FIFO (First In First Out), co oznacza, że element dodany jako pierwszy zostaje usunięty jako pierwszy. Kolejki są szeroko wykorzystywane w zarządzaniu zadaniami, buforowaniu danych oraz w implementacji algorytmów, takich jak BFS (przeszukiwanie wszerz). Struktura ta jest idealna do obsługi zadań w kolejności ich przybycia, co jest kluczowe w aplikacjach takich jak systemy operacyjne, sieci komputerowe i przetwarzanie danych.

Pytanie 13

Który z wymienionych programów jest przeznaczony do zarządzania projektami przy pomocy tablic kanban?

A. Word
B. Trello
C. Photoshop
D. Jira
Trello to narzędzie do zarządzania projektami, które wykorzystuje tablice kanban do organizacji i monitorowania zadań. Użytkownicy mogą tworzyć karty reprezentujące poszczególne zadania, które następnie są przenoszone między kolumnami odzwierciedlającymi etapy realizacji. Dzięki swojej prostocie i intuicyjności Trello jest szeroko stosowane zarówno w małych zespołach, jak i dużych organizacjach. Umożliwia efektywne zarządzanie projektami, planowanie sprintów oraz monitorowanie bieżącego statusu prac. Tablice kanban pomagają wizualizować przepływ pracy, co ułatwia identyfikację wąskich gardeł i zarządzanie priorytetami.

Pytanie 14

Który z faz cyklu życia projektu wiąże się z identyfikacją wymagań użytkownika?

A. Przeprowadzanie testów
B. Etap planowania
C. Wdrażanie
D. Analiza
Analiza to etap cyklu życia projektu, podczas którego określane są wymagania użytkownika. W tej fazie zespół projektowy przeprowadza badania, konsultacje i warsztaty, aby zrozumieć potrzeby klienta i użytkowników końcowych. Wynikiem analizy jest szczegółowa specyfikacja funkcjonalna i niefunkcjonalna, która stanowi podstawę do projektowania i implementacji. Prawidłowo przeprowadzona analiza minimalizuje ryzyko nieporozumień oraz zapewnia, że finalny produkt będzie odpowiadał na realne potrzeby użytkowników.

Pytanie 15

W jaki sposób definiuje się konstruktor kopiujący w ramach klasy?

A. Tworzy nowy obiekt jako wierną kopię innego obiektu
B. Generuje nowy obiekt i usuwa wcześniejszy
C. Generuje nowy obiekt klasy bez przypisywania wartości
D. Inicjuje obiekt klasy na podstawie klasy dziedziczącej
Konstruktor kopiujący to specjalny typ konstruktora, który tworzy nowy obiekt będący dokładną kopią innego obiektu tej samej klasy. Jest to niezwykle przydatne, gdy chcemy zduplikować istniejący obiekt, zachowując jego stan i wartości wszystkich składowych. Konstruktor kopiujący przyjmuje jako argument referencję do obiektu tej samej klasy, co pozwala na kopiowanie zarówno podstawowych typów danych, jak i dynamicznie alokowanych zasobów. Jego zastosowanie jest kluczowe w sytuacjach, gdy musimy pracować z obiektami dynamicznymi lub kopiować obiekty zarządzające wskaźnikami, aby uniknąć problemów związanych z wielokrotnym zwalnianiem tej samej pamięci.

Pytanie 16

Jaką strukturę danych obrazuje zamieszczony kod w języku C#?

Ilustracja do pytania
A. stos
B. listę
C. tablicę dwuwymiarową
D. tablicę jednowymiarową
Kod w języku C# reprezentuje tablicę dwuwymiarową, która jest deklarowana za pomocą podwójnych nawiasów kwadratowych. Tablica taka pozwala na przechowywanie danych w formie macierzy.

Pytanie 17

Do implementacji w aplikacji jednokierunkowej funkcji skrótu, zwanej funkcją haszującą, można wykorzystać algorytm

A. MD5
B. AES
C. RSA
D. DES
MD5 to popularny algorytm haszujący, który generuje skróty (hash) dla danych wejściowych. Jest stosowany w kryptografii do tworzenia sum kontrolnych i weryfikacji integralności danych, choć obecnie jest uważany za podatny na kolizje.

Pytanie 18

Która z wymienionych topologii sieci wykazuje cechę, że wszystkie urządzenia są połączone jednym kablem?

A. Topologia gwiazdy
B. Topologia siatki
C. Topologia magistrali
D. Topologia pierścienia
Topologia gwiazdy, w przeciwieństwie do magistrali, charakteryzuje się tym, że wszystkie urządzenia są podłączone do centralnego urządzenia, zazwyczaj switcha lub koncentratora. W tej konfiguracji, jeżeli wystąpi awaria jednego z urządzeń, pozostałe nadal mogą funkcjonować, co czyni tę topologię bardziej niezawodną. Topologia pierścienia polega na połączeniu wszystkich urządzeń w formie zamkniętego pierścienia, gdzie dane przekazywane są z jednego urządzenia do drugiego w określonym kierunku. W tej topologii każda awaria jednego z urządzeń lub kabla powoduje zakłócenia w całej sieci, co czyni ją mniej odporną na błędy. Z kolei topologia siatki, w której każde urządzenie jest połączone z wieloma innymi, zapewnia najwyższy poziom redundancji i niezawodności, ponieważ nawet w przypadku awarii jednego lub kilku połączeń, dane mogą nadal być przesyłane przez inne dostępne trasy. W przeciwieństwie do magistrali, siatka wymaga znacznie większej ilości kabli i jest bardziej skomplikowana w konfiguracji i zarządzaniu, co zwiększa koszty implementacji. Każda z tych topologii ma swoje unikalne właściwości i zastosowania, co sprawia, że wybór odpowiedniej topologii zależy od specyficznych wymagań danego projektu sieciowego.

Pytanie 19

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

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

Pytanie 20

Która z wymienionych bibliotek pozwala na obsługę zdarzeń związanych z myszą w aplikacjach desktopowych?

A. Numpy
B. Qt
C. TensorFlow
D. Django
Numpy to biblioteka do obliczeń numerycznych w języku Python i nie posiada narzędzi do obsługi zdarzeń graficznych w aplikacjach desktopowych. Django to framework do budowy aplikacji webowych w Pythonie, koncentrujący się na backendzie, a nie na tworzeniu GUI czy interakcji z myszą. TensorFlow to biblioteka do uczenia maszynowego i przetwarzania danych, nieprzystosowana do tworzenia aplikacji desktopowych obsługujących zdarzenia myszki i klawiatury.

Pytanie 21

Podaj wspólną cechę wszystkich kontrolek umieszczonych w ramce

Ilustracja do pytania
A. mają identyczny kolor czcionki
B. mają tło w tym samym kolorze
C. wszystkie są widoczne
D. są w nich ustawione te same wartości domyślne
Wszystkie kontrolki w ramce mają tło tego samego koloru. Jest to kluczowy aspekt projektowania interfejsu użytkownika, który zapewnia spójność wizualną i ułatwia nawigację.

Pytanie 22

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 23

Jaki typ testów ocenia funkcjonalność aplikacji z punktu widzenia użytkownika końcowego?

A. Testy użyteczności
B. Testy zgodności
C. Testy obciążeniowe
D. Testy funkcjonalne
Testy użyteczności to kluczowy element w procesie tworzenia aplikacji, który koncentruje się na analizie i ocenie interakcji użytkownika z produktem. Celem testów użyteczności jest sprawdzenie, jak łatwa i intuicyjna w obsłudze jest aplikacja, czy użytkownik jest w stanie efektywnie osiągnąć swoje cele oraz jakie są potencjalne bariery w korzystaniu z aplikacji. Testy te dostarczają cennych informacji na temat UX (User Experience) i pozwalają na wczesne wykrycie problemów związanych z designem oraz funkcjonalnością.

Pytanie 24

Jakie narzędzie umożliwia testowanie API w aplikacjach internetowych?

A. Microsoft Excel
B. Blender
C. Node.js
D. Postman
Postman to jedno z najczęściej wykorzystywanych narzędzi do testowania API aplikacji webowych. Umożliwia wysyłanie żądań HTTP, testowanie endpointów oraz monitorowanie odpowiedzi serwera. Dzięki Postmanowi programiści mogą w łatwy sposób analizować dane przesyłane między frontendem a backendem, co jest kluczowe w trakcie budowania nowoczesnych aplikacji opartych na architekturze REST lub GraphQL. Narzędzie oferuje możliwość automatyzacji testów, co przyspiesza proces wykrywania błędów i zwiększa jakość dostarczanych aplikacji. Postman pozwala także na tworzenie skryptów pre-request i testowych, umożliwiając weryfikację poprawności danych oraz sprawdzanie integralności aplikacji na różnych etapach jej rozwoju.

Pytanie 25

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

Ilustracja do pytania
A. liczby kliknięć przycisku
B. wartości 0 po naciśnięciu 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 26

Prezentowana metoda jest realizacją algorytmu

Ilustracja do pytania
A. sprawdzającego, czy dany ciąg jest palindromem
B. wyszukującego literę w ciągu
C. sortującego ciąg od znaku o najniższym kodzie ASCII do znaku o najwyższym kodzie
D. odwracającego ciąg
Fajnie, że zajmujesz się algorytmami! W tym przypadku chodzi o odwracanie napisu, czyli taki myk, żeby ostatni znak stał się pierwszym, a pierwszy ostatnim. To jedna z tych podstawowych rzeczy, które są przydatne w programowaniu. Wiesz, takie operacje na tekstach są przydatne w różnych sytuacjach, jak szyfrowanie czy nawet analiza danych. Trochę jak układanie puzzli, tylko z literami!

Pytanie 27

Jakie są kluczowe różnice pomiędzy strukturą (struct) a unią (union) w języku C?

A. Unia umożliwia dynamiczne przypisywanie typów danych, struktura natomiast nie
B. Struktura wymaga więcej miejsca w pamięci niż unia
C. Unia nie jest obsługiwana przez kompilatory współczesnych języków
D. Struktura przechowuje wiele wartości równocześnie, unia tylko jedną
Główna różnica między strukturą ('struct') a unią ('union') w języku C polega na sposobie przechowywania danych. Struktura przechowuje wszystkie pola jednocześnie, przydzielając każdemu z nich osobne miejsce w pamięci, natomiast unia używa wspólnej przestrzeni pamięci dla wszystkich swoich pól – w danym momencie można przechowywać tylko jedną wartość. Unia jest bardziej efektywna pod względem pamięci, ale mniej wszechstronna, ponieważ zmiana wartości jednego pola nadpisuje pozostałe. Struktury są powszechnie wykorzystywane w aplikacjach, gdzie konieczne jest przechowywanie wielu niezależnych danych, podczas gdy unie są używane do oszczędzania pamięci.

Pytanie 28

Jaką jednostkę zaleca się stosować przy projektowaniu interfejsu aplikacji?

A. mm
B. dp
C. px
D. pt
Jednostką zalecaną przy tworzeniu układów interfejsów w aplikacjach mobilnych jest dp (density-independent pixels). Pozwala to na zachowanie proporcji elementów interfejsu niezależnie od rozdzielczości urządzenia.

Pytanie 29

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

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

Wynikiem wykonania poniższego fragmentu kodu jest wyświetlenie liczb z zakresu od 2 do 20, które są

Ilustracja do pytania
A. parzyste.
B. podzielne przez wartość zmiennej check.
C. pierwsze.
D. podzielne przez wartość zmiennej test.
Kod wypisuje liczby pierwsze, czyli takie, które mają dokładnie dwa dzielniki: 1 i samą siebie. Liczby pierwsze są podstawą w wielu dziedzinach matematyki i informatyki, szczególnie w kryptografii i algorytmach. Wyszukiwanie liczb pierwszych w danym przedziale to popularne zadanie, które pozwala na lepsze zrozumienie iteracji, pętli i warunków logicznych w programowaniu. Algorytm ten jest również wykorzystywany w optymalizacji algorytmów szyfrowania i generowania kluczy.

Pytanie 31

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

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

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

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

Pytanie 33

W klasie o nazwie samochod przypisano atrybuty: marka, rocznik, parametry[]. Atrybuty te powinny zostać zdefiniowane jako

A. metody
B. pola
C. funkcje
D. interfejsy
Pola klasy to jej atrybuty, które przechowują dane dotyczące obiektów. Definiują one stan obiektu i mogą przyjmować różne wartości w zależności od instancji klasy. W przypadku klasy samochod cechy takie jak marka, rocznik czy parametry to właśnie pola, które odzwierciedlają właściwości poszczególnych obiektów.

Pytanie 34

Które z wymienionych środowisk programistycznych jest rekomendowane do developing aplikacji w języku Python z użyciem frameworka Django?

A. Unity
B. Android Studio
C. XCode
D. PyCharm
PyCharm to jedno z najbardziej zaawansowanych środowisk programistycznych (IDE) dedykowanych do tworzenia aplikacji w języku Python. Jest to narzędzie preferowane przez programistów korzystających z frameworka Django, który jest popularnym rozwiązaniem do budowy aplikacji webowych. PyCharm oferuje rozbudowane wsparcie dla Django, umożliwiając szybkie tworzenie projektów, integrację z bazami danych oraz wygodne debugowanie aplikacji. IDE zapewnia również możliwość uruchamiania serwerów deweloperskich, podglądu zmian w czasie rzeczywistym oraz automatyczne uzupełnianie kodu, co znacząco zwiększa efektywność pracy nad aplikacjami webowymi. Dzięki PyCharm programiści mogą łatwo zarządzać migracjami bazy danych, tworzyć modele i szablony, co sprawia, że jest to narzędzie nieocenione w ekosystemie Django.

Pytanie 35

Jakie jest główne zadanie ochrony danych osobowych?

A. Zabezpieczenie danych osobowych przed nieautoryzowanym dostępem i ich wykorzystaniem
B. Udostępnianie danych osobowych w celach marketingowych
C. Gwarantowanie anonimowości dla internautów
D. Utrudnianie działalności organom ścigania
Zapewnienie anonimowości użytkownikom internetu nie jest celem ochrony danych osobowych – anonimowość dotyczy innych dziedzin, takich jak prywatność w sieci. Utrudnianie pracy organom ścigania jest nielegalne i nie jest celem ochrony danych. Publikowanie danych osobowych w celach marketingowych bez zgody użytkownika narusza przepisy i prowadzi do sankcji, a ochrona danych osobowych ma za zadanie zapobiegać takim sytuacjom.

Pytanie 36

Jaki będzie rezultat operacji logicznej AND dla wartości binarnych 1010 oraz 1100?

A. 1100
B. 1110
C. 1010
D. 1000
Wynik logicznej operacji AND dla liczb binarnych 1010 i 1100 uzyskuje się poprzez porównywanie odpowiadających sobie bitów obu liczb. W systemie binarnym, operacja AND zwraca 1 tylko wtedy, gdy oba bity są równe 1. W przypadku liczb 1010 (co w systemie dziesiętnym odpowiada 10) oraz 1100 (co w systemie dziesiętnym odpowiada 12), analizujemy każdy bit od prawej do lewej. Pierwszy bit: 0 AND 0 = 0, drugi bit: 1 AND 0 = 0, trzeci bit: 0 AND 1 = 0, czwarty bit: 1 AND 1 = 1. Zatem wynik operacji AND to 1000 (co w systemie dziesiętnym odpowiada 8). Takie operacje logiczne są podstawą działania systemów cyfrowych i stosowane są w programowaniu oraz w projektowaniu układów cyfrowych, gdzie logika binarna jest niezbędna. Operacje AND są również używane w bazach danych oraz w językach programowania, gdzie umożliwiają filtrowanie danych na podstawie logicznych warunków. W kontekście standardów, operacje logiczne są definiowane przez różne normy, takie jak IEEE 754 dla arytmetyki zmiennoprzecinkowej, co podkreśla ich fundamentalne znaczenie w informatyce.

Pytanie 37

Programista może wykorzystać framework Angular do realizacji aplikacji

A. desktopowej
B. typu front-end
C. mobilnej
D. typu back-end
Angular to naprawdę fajny framework, stworzony przez Google, który głównie skupia się na tworzeniu aplikacji webowych po stronie klienta, czyli na front-endzie. Umożliwia programistom tworzenie dynamicznych i interaktywnych interfejsów użytkownika. Dzięki tej modularnej budowie, można łatwo zarządzać różnymi częściami aplikacji, co jest super przydatne. Z własnego doświadczenia mogę powiedzieć, że Angular świetnie nadaje się do aplikacji jednoekranowych (SPA), bo pozwala na ładowanie danych asynchronicznie. Przykładem może być aplikacja do zarządzania projektami, gdzie użytkownik może dodawać, edytować i usuwać zadania bez przeładowywania strony. Angular integruje się też z RxJS, co sprawia, że zarządzanie zdarzeniami i strumieniami danych staje się efektywniejsze. Warto również dodać, że Angular CLI pozwala szybko generować komponenty i inne elementy aplikacji, co przyspiesza cały proces tworzenia i pomaga utrzymać spójność projektu.

Pytanie 38

Dlaczego w wyniku działania tego kodu w języku C++ na ekranie pojawiła się wartość O zamiast 50?

Ilustracja do pytania
A. Zmienna x powinna być inicjowana wartością równą 1, a nie O
B. Niepoprawnie zdefiniowano działanie wewnątrz funkcji
C. Argument funkcji został przekazany przez wartość, a nie przez referencję
D. Funkcja zwraca wartość, chociaż nie powinna jej zwracać
W C++ funkcje standardowo dostają argumenty przez wartość, co znaczy, że dostają kopię tego, co do nich wysyłamy. W tym kodzie, jak widzisz, zmienna x idzie do funkcji oblicz jako kopia. To sprawia, że jakiekolwiek zmiany w x w tej funkcji nie mają wpływu na x w funkcji main. Dlatego po wywołaniu oblicz(x) wartość x w main zostaje taka sama. Jeśli chcesz, żeby zmiany wewnątrz funkcji były widoczne w funkcji, która ją wywołuje, to musisz użyć przekazywania przez referencję. Robisz to, dodając & w deklaracji parametru funkcji, czyli robisz to tak: void oblicz(int &x). Przekazywanie przez referencję to dobra praktyka, gdy chcesz, aby funkcja mogła zmieniać wartość argumentu. A dodatkowo jest to efektywniejsze, bo unikasz kopiowania danych, co bywa kosztowne, szczególnie przy dużych strukturach danych.

Pytanie 39

W zaprezentowanym kodzie stworzono abstrakcyjną klasę figura oraz klasę prostokąta, która dziedziczy po niej, zawierającą zdefiniowane pola i konstruktory. Wskaż minimalną wersję implementacji sekcji /* metody klasy */ dla klasy Prostokat:

Ilustracja do pytania
A. B
B. A
C. C
D. D
Minimalna implementacja klasy Prostokat wymaga zaimplementowania podstawowych metod określonych w klasie abstrakcyjnej figura. Implementacja zawiera niezbędne pola i metody, które muszą być obecne, aby klasa mogła być skompilowana i działała poprawnie.

Pytanie 40

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

A. DFS (przeszukiwanie w głąb)
B. BubbleSort
C. QuickSort
D. Fibonacci (rekurencyjnie)
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.