Wyniki egzaminu

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

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

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

Który z podanych terminów najlepiej odnosi się do składnika statycznego w klasie?

A. Zmienna lokalna wewnątrz danej klasy
B. Funkcja, która wywołuje destruktor danej klasy
C. Pole lub metoda, która jest przypisana do klasy, a nie do jej instancji
D. Metoda z dostępem ograniczonym tylko do tej samej klasy
Metoda z dostępem ograniczonym do tej samej klasy to przykład modyfikatora `private`, a nie cecha składnika statycznego. Funkcja wywołująca destruktor nie jest statycznym składnikiem klasy – destruktory są specyficzne dla każdej instancji obiektu. Zmienna lokalna wewnątrz klasy to zmienna zadeklarowana w metodzie klasy i istnieje tylko w czasie jej wykonywania, co różni się od pól statycznych, które są trwałe i współdzielone przez wszystkie obiekty danej klasy. Składniki statyczne odnoszą się do klasy jako całości, a nie do pojedynczych instancji.

Pytanie 2

Jaką rolę pełni instrukcja throw w języku C++?

A. Ogranicza zasięg zmiennych w bloku try
B. Przerywa działanie programu, gdy wystąpi wyjątek
C. Zgłasza wyjątek, który można przechwycić za pomocą bloku catch
D. Inicjuje nowy wyjątek podczas działania aplikacji
Tworzenie nowego wyjątku to nieco inne zastosowanie – 'throw' zgłasza wyjątek, ale jego utworzenie odbywa się wcześniej (np. przez wywołanie 'new Exception()'). Kończenie działania programu to skutek nieprzechwyconego wyjątku, ale samo 'throw' nie kończy programu – pozwala na jego kontynuację, jeśli wyjątek zostanie przechwycony. Ograniczenie zakresu zmiennych w bloku 'try' nie jest funkcją instrukcji 'throw' – to raczej wynik działania samego bloku 'try', który wprowadza ograniczony zakres zmiennych do czasu obsługi wyjątku.

Pytanie 3

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

A. A0 FB A0
B. 98 FE 98
C. 98 FB 98
D. A0 FE A0
Kolor 'Pale Green' w systemie RGB ma wartości (152, 251, 152). W zapisie szesnastkowym odpowiada to #98FB98. Jest to istotne przy projektowaniu interfejsów i stron internetowych, gdzie kolory są definiowane w formacie hex. Prawidłowe przeliczanie wartości RGB na hex jest kluczowe w zapewnieniu spójnej kolorystyki.

Pytanie 4

Który z komponentów interfejsu użytkownika umożliwia użytkownikowi wprowadzanie danych tekstowych?

A. Przycisk
B. Pasek narzędziowy
C. Dialog wyboru pliku
D. Pole tekstowe
Pole tekstowe to element interfejsu użytkownika, który pozwala użytkownikowi na wprowadzanie danych tekstowych. Jest to jeden z najczęściej używanych komponentów UI w aplikacjach desktopowych, mobilnych i webowych. Pole tekstowe umożliwia wprowadzanie haseł, adresów e-mail, wiadomości i innych danych. W nowoczesnych aplikacjach często zawiera walidację, która sprawdza poprawność wpisywanych danych w czasie rzeczywistym. Dzięki swojej elastyczności, pola tekstowe mogą być wykorzystywane w różnorodnych formularzach, ankietach i systemach rejestracji użytkowników, co czyni je nieodzownym elementem aplikacji o dowolnym przeznaczeniu.

Pytanie 5

Który aspekt projektu aplikacji jest kluczowy dla zabezpieczenia danych użytkowników?

A. Zastosowanie zaawansowanych systemów ochrony
B. Koncentracja na wyglądzie interfejsu użytkownika
C. Tworzenie prostych formularzy do rejestracji
D. Pominięcie testowania aplikacji w etapie produkcji
Stosowanie zaawansowanych mechanizmów bezpieczeństwa jest kluczowe dla ochrony danych użytkowników w aplikacjach. Wdrożenie technologii takich jak szyfrowanie, autoryzacja dwuskładnikowa (2FA), firewalle oraz regularne testy penetracyjne pozwala na minimalizację ryzyka ataków i naruszeń danych. Mechanizmy te nie tylko zabezpieczają dane, ale również budują zaufanie użytkowników do aplikacji, co jest niezwykle istotne w branżach takich jak bankowość, medycyna czy e-commerce.

Pytanie 6

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

A. Sortowanie za pomocą metody QuickSort
B. Obliczanie sumy elementów w tablicy
C. Generowanie ciągu Fibonacciego
D. Wyszukiwanie binarne w uporządkowanej tablicy
Obliczanie sumy elementów tablicy jest zadaniem liniowym i najczęściej realizowane za pomocą prostych pętli iteracyjnych, co czyni rekurencję nieefektywnym wyborem dla tego problemu. Wyszukiwanie binarne w posortowanej tablicy można zaimplementować zarówno iteracyjnie, jak i rekurencyjnie, jednak bardziej efektywną metodą jest iteracja, ponieważ rekurencja może prowadzić do większego zużycia pamięci stosu. Sortowanie metodą QuickSort to przykład rekurencyjnego algorytmu, ale nie jest to klasyczny przykład tak intuicyjny jak Fibonacciego – QuickSort rozbija tablicę na mniejsze podzbiory i sortuje je niezależnie, co różni się od prostego obliczania ciągu liczb.

Pytanie 7

W zestawieniu przedstawiono doświadczenie zawodowe członków zespołu IT. Osobą odpowiedzialną za stworzenie aplikacji front-end powinna być:

Ilustracja do pytania
A. Anna
B. Patryk
C. Ewa
D. Krzysztof
Do zbudowania aplikacji front-end najlepiej przydzielić Krzysztofa, który posiada największe doświadczenie w tej dziedzinie. Tworzenie interfejsu użytkownika wymaga znajomości technologii front-endowych, takich jak HTML, CSS i JavaScript, a także frameworków takich jak React czy Angular. Wykwalifikowany programista front-endowy zapewnia, że aplikacja będzie responsywna, intuicyjna i dostosowana do różnych urządzeń.

Pytanie 8

Celem mechanizmu obietnic (ang. promises) w języku JavaScript jest

A. ulepszenie czytelności kodu synchronicznego
B. zastąpienie mechanizmu dziedziczenia w programowaniu obiektowym
C. zarządzanie funkcjonalnością związaną z kodem asynchronicznym
D. zarządzanie przechwytywaniem błędów aplikacji
Mechanizm obietnic (Promises) w JavaScript umożliwia obsługę kodu asynchronicznego. Pozwala na efektywne zarządzanie operacjami, które mogą się zakończyć sukcesem lub błędem w przyszłości, np. pobieranie danych z API. Promisy umożliwiają unikanie tzw. 'callback hell' i poprawiają czytelność kodu.

Pytanie 9

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

Ilustracja do pytania
A. mają tło w tym samym kolorze
B. mają identyczny kolor czcionki
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 10

Z analizy złożoności obliczeniowej różnych algorytmów sortowania na dużych zbiorach danych (przekraczających 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania

Ilustracja do pytania
A. kubełkowego
B. bąbelkowego
C. przez scalanie
D. przez zliczanie
Sortowanie przez zliczanie jest jedną z najszybszych metod sortowania w przypadku określonych typów danych wejściowych. W szczególności działa ono efektywnie, gdy znamy ograniczenia co do zakresu wartości w zbiorze danych, ponieważ jego złożoność obliczeniowa wynosi O(n+k), gdzie n to liczba elementów do posortowania, a k to zakres wartości. Dzięki temu, w przeciwieństwie do metod sortowania porównawczego, takich jak sortowanie przez scalanie czy bąbelkowe, sortowanie przez zliczanie może osiągnąć liniową złożoność czasową, jeśli k jest stosunkowo małe w porównaniu do n. Algorytm ten działa poprzez zliczanie wystąpień każdego elementu, co pozwala na szybkie umieszczenie go w odpowiedniej pozycji w posortowanej tablicy. Przykładowe zastosowania sortowania przez zliczanie to sortowanie wyników egzaminów czy organizacja danych liczbowych w określonym przedziale, co jest często spotykane w analizach statystycznych. Standardy branżowe często korzystają z tej metody, gdy operujemy na dużych zbiorach danych o ograniczonym zakresie, co jest zgodne z najlepszymi praktykami efektywnego przetwarzania danych.

Pytanie 11

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. naciśnięcia przycisku zatwierdzającego dialog
C. inicjacji elementów interfejsu użytkownika
D. usunięcia kontrolek z pamięci RAM
Obsługa zdarzeń utraty focusa dotyczy pól tekstowych i formularzy, a nie przycisków zatwierdzających dialog. Inicjalizacja elementów interfejsu użytkownika jest wykonywana na etapie ładowania aplikacji, a nie w odpowiedzi na interakcję z przyciskiem. Usuwanie kontrolek z pamięci jest ważnym elementem zarządzania zasobami, ale nie ma związku z obsługą zdarzeń przycisków dialogowych. Każda z tych operacji dotyczy innego etapu cyklu życia aplikacji i nie odnosi się bezpośrednio do zatwierdzania danych przez użytkownika.

Pytanie 12

Na podstawie definicji zamieszczonej w ramce, wskaż, który z rysunków ilustruje komponent Chip zdefiniowany w bibliotece Angular Material?

Ilustracja do pytania
A. Rysunek 1
B. Rysunek 3
C. Rysunek 2
D. Rysunek 4
Rysunek 1 i 2 mogą przedstawiać inne komponenty, takie jak przyciski lub pola tekstowe, które nie pełnią funkcji interaktywnych znaczników. Rysunek 3 najprawdopodobniej reprezentuje suwak lub inny element nawigacyjny, który nie posiada cech charakterystycznych dla komponentu Chip. Komponenty Chip mają specyficzną strukturę, która odróżnia je od standardowych kontrolek interfejsu użytkownika.

Pytanie 13

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

A. 11101
B. 10001
C. 10101
D. 11001
W analizie błędnych odpowiedzi, pierwsza niepoprawna odpowiedź 11001 wynika z błędu w dodawaniu ostatniej kolumny. Osoba, która udzieliła tej odpowiedzi, mogła popełnić pomyłkę, nie uwzględniając przeniesienia z drugiej kolumny. W systemie binarnym nie można uzyskać wyniku 11001, ponieważ suma 0 + 1 w ostatnich kolumnach prowadzi do przeniesienia, a nie do dodania wartości. Druga propozycja, 10101, może być efektem pomylenia wartości i przeniesień w trakcie dodawania. Wartości w odpowiednich kolumnach są zinterpretowane niepoprawnie. Tutaj również brakuje uwzględnienia przeniesienia, co prowadzi do wyniku, który nie odzwierciedla rzeczywistego sumowania w systemie binarnym. Ostatnia niepoprawna odpowiedź, 11101, zawiera błąd związany z dodawaniem wartości bez przeniesienia. Sumowanie 1 + 1 w drugiej kolumnie prowadzi do 0 z przeniesieniem, co zostało pominięte. W każdej z tych odpowiedzi występuje zrozumienie błędów w arytmetyce binarnej, które są fundamentalne dla prawidłowego obliczania w systemach cyfrowych.

Pytanie 14

Jakie są różnice między dialogiem modalnym a niemodalnym?

A. Dialog modalny umożliwia interakcję z innymi oknami aplikacji, a dialog niemodalny tego nie pozwala
B. Dialog modalny jest ograniczony wyłącznie do aplikacji konsolowych
C. Dialog modalny wymaga zamknięcia, aby powrócić do głównego okna aplikacji, natomiast dialog niemodalny tego nie wymaga
D. Dialog modalny działa w tle, podczas gdy dialog niemodalny jest zawsze wyświetlany na pierwszym planie
Dialog modalny to okno dialogowe, które wymaga interakcji użytkownika przed powrotem do głównego okna aplikacji. Tego rodzaju okna są często wykorzystywane do wyświetlania komunikatów, potwierdzeń lub formularzy wymagających danych wejściowych. Modalność zapewnia, że użytkownik nie może przejść do innej części aplikacji bez uprzedniego zamknięcia okna dialogowego. To rozwiązanie pomaga w wymuszeniu ważnych akcji, takich jak potwierdzenie usunięcia pliku lub zatwierdzenie płatności. Dialog niemodalny natomiast pozwala na interakcję z resztą aplikacji nawet wtedy, gdy okno dialogowe jest otwarte, co sprawdza się w mniej krytycznych sytuacjach, np. podczas wyświetlania dodatkowych opcji.

Pytanie 15

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

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

Pytanie 16

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

A. mm
B. px
C. pt
D. dp
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 17

W jakim języku został stworzony framework Angular?

A. PHP
B. Typescript
C. C#
D. Postscript
Angular został napisany w TypeScript, który jest nadzbiorem JavaScriptu i wprowadza statyczne typowanie. TypeScript pozwala na lepszą organizację kodu, co czyni Angular bardziej stabilnym i efektywnym narzędziem do tworzenia aplikacji webowych.

Pytanie 18

Działania przedstawione w filmie korzystają z narzędzia

A. generatora kodu java
B. debuggera analizującego wykonujący kod
C. kompilatora dla interfejsu graficznego
D. generatora GUI przekształcającego kod do języka XAML
Debugger analizuje wykonywany kod, ale nie zajmuje się tworzeniem interfejsów graficznych. Kreator kodu Java jest narzędziem wspomagającym generowanie kodu aplikacji, a nie GUI. Kompilator interfejsu graficznego odpowiada za przekształcanie gotowego kodu, ale nie za tworzenie interaktywnych elementów wizualnych w czasie rzeczywistym.

Pytanie 19

Jakie środowisko developerskie służy do tworzenia aplikacji na platformę iOS?

A. Visual Studio Code
B. XCode
C. Eclipse
D. Studio Androida
Android Studio to środowisko przeznaczone do tworzenia aplikacji na system Android, a nie iOS. Visual Studio Code to wieloplatformowe IDE, ale jego natywne wsparcie dla aplikacji iOS jest ograniczone w porównaniu do XCode. Eclipse jest używane głównie do programowania w językach Java i C++, ale nie jest narzędziem pierwszego wyboru dla aplikacji iOS, które wymagają XCode do kompilacji i wdrożenia na urządzenia Apple.

Pytanie 20

Które z wymienionych poniżej błędów podczas wykonywania programu można obsłużyć poprzez zastosowanie wyjątków?

A. Błąd w składni
B. Błąd dzielenia przez zero
C. Niekompatybilność typów danych w kodzie
D. Błąd kompilacyjny
W języku C++ wyjątki pozwalają na obsługę błędów wykonania, takich jak dzielenie przez zero. Jest to klasyczny przykład błędu, który może prowadzić do nieprzewidywalnych rezultatów lub awarii programu. Dzięki użyciu wyjątków można zapobiec katastrofalnym skutkom takich błędów, przekierowując sterowanie do odpowiedniego bloku 'catch', gdzie można podjąć działania naprawcze lub zakończyć program w kontrolowany sposób. Obsługa błędów takich jak dzielenie przez zero jest kluczowa w programowaniu niskopoziomowym i aplikacjach wymagających wysokiej niezawodności.

Pytanie 21

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

A. Zarządzanie transferem danych pomiędzy urządzeniami wejścia/wyjścia
B. Umożliwienie tworzenia kopii zapasowej danych użytkownika
C. Trwałe przechowywanie systemu operacyjnego
D. Tymczasowe magazynowanie danych i instrukcji dla procesora
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 22

Jednym z rodzajów testów funkcjonalnych, które można przeprowadzić na aplikacji webowej, jest ocena

A. wydajności aplikacji
B. bezpieczeństwa aplikacji
C. poziomu optymalizacji kodu aplikacji
D. poprawności wyświetlanych elementów aplikacji
Bezpieczeństwo aplikacji to sprawa testów penetracyjnych, a nie funkcjonalnych. Wiesz, to trochę jak sprawdzenie, czy można się włamać do systemu, a nie sprawdzanie, czy przyciski działają. Co do optymalizacji kodu, to tam są testy wydajnościowe, ale nie związane bezpośrednio z tym, co testujemy w funkcjonalności. Zresztą, wydajność aplikacji to z kolei obszar testów obciążeniowych i stresowych. W skrócie, chodzi o to, jak system działa pod dużym obciążeniem, a nie jakie ma funkcje.

Pytanie 23

Zaproponowany fragment kodu w Android Studio realizuje metodę nasłuchującą do obsługi wydarzenia

Ilustracja do pytania
A. naciśnięcia przycisku
B. zmiany stanu kontrolki Switch
C. zmiany w polu tekstowym
D. wybór daty
Metoda OnClickListener, to coś, co na pewno warto znać, gdy pracujesz z aplikacjami na Androida. Gdy użytkownik klika przycisk, wywoływana jest metoda onClick. I tu możesz zrobić różne rzeczy, jak na przykład przejść do innego ekranu, zapisać dane albo uruchomić jakąś akcję w tle. To jest dobry przykład wzorca projektowego zwanego Delegacja, który pomaga oddzielić to, co widzisz w interfejsie, od tego, co dzieje się w aplikacji. Dzięki temu łatwiej zarządzać kodem i wprowadzać zmiany. Fajnie jest, gdy logikę umieszczasz w osobnych metodach, bo wtedy testowanie całej aplikacji staje się prostsze. Przykłady? Możesz na przykład użyć OnClickListenera, żeby zrobić logowanie po kliknięciu przycisku lub wysłać formularz. Pamiętaj też, żeby unikać ciężkich operacji w metodzie onClick, żeby aplikacja działała płynnie.

Pytanie 24

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 4
B. Kod 2
C. Kod 3
D. Kod 1
Struktury zawierające typy całkowite, takie jak int, nie są odpowiednie do przechowywania wartości pieniężnych lub zmiennoprzecinkowych, ponieważ tracą dokładność w przypadku wartości ułamkowych. Struktury oparte na typach string są przeznaczone do tekstu, a nie danych numerycznych. Użycie struktury tablicowej nie jest optymalne, gdyż wartości zmiennoprzecinkowe powinny być przechowywane jako pojedyncza zmienna, a nie w postaci listy.

Pytanie 25

Na schemacie widoczny jest fragment diagramu blokowego pewnego algorytmu. Ile razy zostanie zweryfikowany warunek n<7?

Ilustracja do pytania
A. 5
B. 7
C. 8
D. 6
Wartość 8 pokazuje, że chyba źle zrozumiałeś, jak działa liczba iteracji. Pojawiły się dodatkowe porównania, które nie powinny się zdarzyć w pętli. A wynik 5 może być przez to, że pętla zakończyła się za szybko, albo myślałeś, że zmienna zaczyna się z innej wartości. Z kolei 7 to już za dużo iteracji, co nie pasuje do standardowego działania pętli warunkowej.

Pytanie 26

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ą
Unia nie pozwala na dynamiczne typowanie danych – typ każdego pola jest zdefiniowany w czasie kompilacji, podobnie jak w strukturze. Struktura nie zajmuje więcej pamięci niż unia – zajmuje dokładnie tyle miejsca, ile potrzeba na przechowywanie wszystkich pól jednocześnie. Twierdzenie, że unia nie jest wspierana przez nowoczesne kompilatory, jest błędne – unie są integralną częścią standardu C i są szeroko wspierane we współczesnych środowiskach programistycznych.

Pytanie 27

Jakie z wymienionych narzędzi pozwala na jednoczesne korzystanie z systemów BIN, DEC i HEX?

A. Przeglądarka grafów
B. GIMP
C. Kalkulator systemowy
D. Microsoft Word
Kalkulator systemowy to narzędzie, które umożliwia użytkownikom pracę z różnymi systemami liczbowymi, takimi jak system dziesiętny (DEC), binarny (BIN) oraz szesnastkowy (HEX). Jego funkcjonalność pozwala na konwersję wartości liczbowych pomiędzy tymi systemami, co jest niezwykle przydatne w kontekście programowania, inżynierii komputerowej oraz nauk przyrodniczych. Dzięki kalkulatorowi systemowemu, użytkownicy mogą wprowadzać liczby w jednym systemie, a następnie uzyskiwać ich odpowiedniki w pozostałych systemach, co znacznie ułatwia analizę danych. Na przykład, wpisując liczbę w systemie binarnym, można natychmiast zobaczyć jej reprezentację w systemie dziesiętnym i szesnastkowym, co jest kluczowe w zadaniach związanych z konwersją kodów czy obliczeniami w architekturze komputerowej. Ponadto, kalkulatory systemowe często zawierają funkcje umożliwiające przeprowadzanie bardziej skomplikowanych operacji, takich jak dodawanie czy odejmowanie w różnych systemach liczbowych, co czyni je nieocenionym narzędziem w programowaniu i obliczeniach naukowych. Narzędzia te są zgodne z powszechnie przyjętymi standardami, takimi jak IEEE 754 dla reprezentacji liczb zmiennoprzecinkowych, co zapewnia ich wysoką dokładność i niezawodność w obliczeniach.

Pytanie 28

Jaką strukturę danych można zrealizować, korzystając jedynie z wymienionych metod?

Ilustracja do pytania
A. tablica
B. stos
C. kolejka FIFO
D. drzewo binarne
Stos (stack) to struktura danych działająca na zasadzie LIFO (Last In, First Out), co oznacza, że ostatnio dodany element jest usuwany jako pierwszy. Do jego implementacji wystarczą podstawowe metody: dodawania (push) i usuwania (pop) elementów, co czyni go jedną z najprostszych struktur danych.

Pytanie 29

Który z wymienionych elementów stanowi przykład złożonego typu danych?

A. int
B. bool
C. struct
D. char
Typ 'struct' w C++ to super sprawa, bo pozwala na trzymanie różnych danych pod jedną nazwą. Dzięki temu można łatwo zorganizować zmienne, które różnią się typami. Wyobraź sobie, że możesz stworzyć strukturę, która będzie reprezentować na przykład samochód z jego marką, rocznikiem i ceną. To naprawdę ułatwia pracę z danymi! Każde pole w strukturze może mieć inny typ, co czyni 'struct' bardzo uniwersalnym narzędziem do modelowania różnych obiektów, jak ludzie czy produkty. W zasadzie, to takie logiczne pudełko, do którego wrzucasz różne informacje i masz do nich szybki dostęp.

Pytanie 30

Jakie jest wyjście działania kompilatora?

A. Plik maszynowy gotowy do uruchomienia
B. Kolekcja instrukcji w języku pośrednim
C. Plik źródłowy w języku o wyższym poziomie
D. Zestaw błędów występujących w kodzie
Plik źródłowy w języku wyższego poziomu to kod napisany przez programistę, który dopiero musi zostać przetworzony przez kompilator. Lista błędów występujących w kodzie to wynik kompilacji z błędami, ale nie jest to produkt końcowy. Zestaw instrukcji w języku pośrednim to kod generowany przez kompilatory JIT (Just-In-Time) lub maszyny wirtualne, takie jak JVM, ale nie jest to bezpośredni plik maszynowy gotowy do uruchomienia.

Pytanie 31

Jak nazywa się wzorzec projektowy, do którego odnosi się ta definicja?

Ilustracja do pytania
A. Dekorator
B. Prototyp
C. Kompozyt
D. Fasada
Prototyp to wzorzec kreacyjny, który koncentruje się na tworzeniu nowych obiektów poprzez klonowanie istniejących. Różni się od fasady, ponieważ nie zajmuje się uproszczeniem interfejsów, lecz optymalizacją procesu tworzenia obiektów. Jest używany, gdy klasy instancji mają podobne stany i konieczne jest szybkie ich generowanie z zachowaniem pewnych właściwości. Dekorator natomiast to wzorzec strukturalny umożliwiający dynamiczne dodawanie nowych funkcjonalności do obiektów, bez modyfikacji ich struktury bazowej. Podstawowym celem dekoratora jest rozszerzenie możliwości obiektów, co odróżnia go od fasady, która skupia się na upraszczaniu dostępu do złożonych systemów. Dekorator działa na poziomie pojedynczych komponentów, gdzie fasada dotyczy całego systemu. Kompozyt umożliwia tworzenie hierarchicznych struktur obiektowych, pozwalając na jednolite traktowanie indywidualnych obiektów i ich złożonych struktur. Umożliwia pracę z drzewiastymi strukturami danych, co czyni go bardziej odpowiednim do zastosowań, gdzie istotna jest praca z kolekcjami obiektów jako całością. Wszystkie te wzorce mają odmienne założenia i zastosowania, a błąd w ich rozpoznaniu może wynikać z braku zrozumienia ich specyficznych ról i miejsc w architekturze oprogramowania. Wybór odpowiedniego wzorca wymaga zrozumienia zarówno wymagań systemowych, jak i ich długoterminowych implikacji na projekt i utrzymanie oprogramowania. Każdy z tych wzorców wnosi unikalne wartości, ale ich zastosowanie powinno być zgodne z konkretnymi potrzebami projektowymi i architektonicznymi systemu, nad którym się pracuje.

Pytanie 32

Jakie z wymienionych narzędzi jest szeroko stosowane do debugowania aplikacji internetowych?

A. Git
B. Blender
C. Postman
D. Chrome DevTools
Chrome DevTools to potężne narzędzie wbudowane w przeglądarkę Google Chrome, które umożliwia debugowanie aplikacji webowych. Umożliwia ono analizowanie struktury DOM, monitorowanie sieci, profilowanie wydajności oraz inspekcję kodu JavaScript. Chrome DevTools pozwala na śledzenie błędów w czasie rzeczywistym, edytowanie stylów CSS oraz modyfikowanie HTML bezpośrednio w przeglądarce, co znacznie przyspiesza proces rozwoju i testowania aplikacji webowych.

Pytanie 33

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

A. Program łączący dynamiczne biblioteki z kodem źródłowym
B. Narzędzie do analizy kodu w czasie rzeczywistym
C. Narzędzie przekształcające kod źródłowy na plik wykonywalny
D. System monitorujący zmiany w kodzie źródłowym
Analiza kodu w czasie rzeczywistym to zadanie debuggera, który umożliwia śledzenie i analizowanie działania programu na bieżąco, a nie kompilatora. Program łączący dynamiczne biblioteki to linker, który działa po skompilowaniu kodu źródłowego i łączy pliki obiektowe oraz biblioteki w jeden program wykonywalny. System śledzący zmiany w kodzie źródłowym to system kontroli wersji, jak Git, który monitoruje zmiany w plikach projektu, ale nie zajmuje się tłumaczeniem kodu na język maszynowy.

Pytanie 34

Które z wymienionych narzędzi nie znajduje zastosowania w tworzeniu aplikacji desktopowych?

A. Edytor graficzny
B. Przeglądarka internetowa
C. Debugger
D. Kompilator
Przeglądarka internetowa nie jest narzędziem wykorzystywanym bezpośrednio w procesie tworzenia aplikacji desktopowych. Chociaż może służyć do przeszukiwania dokumentacji lub testowania aplikacji webowych, jej funkcjonalność nie wspiera bezpośredniego tworzenia aplikacji desktopowych. W tworzeniu aplikacji desktopowych kluczowe są narzędzia takie jak kompilatory, debugery i edytory kodu. Kompilatory przekształcają kod źródłowy na kod wykonywalny, debugery pozwalają na śledzenie błędów, a edytory kodu umożliwiają pisanie i edytowanie aplikacji.

Pytanie 35

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

A. DMCA
B. GDPR (RODO)
C. Open Source Initiative
D. Creative Commons
DMCA (Digital Millennium Copyright Act) dotyczy praw autorskich i ochrony własności intelektualnej, a nie danych osobowych. Creative Commons to system licencji umożliwiający twórcom dzielenie się swoimi dziełami, ale nie reguluje ochrony danych osobowych. Open Source Initiative promuje otwarte oprogramowanie i licencje, ale nie zajmuje się ochroną prywatności i danych użytkowników.

Pytanie 36

Programista może wykorzystać framework Angular do realizacji aplikacji

A. typu back-end
B. desktopowej
C. typu front-end
D. mobilnej
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 37

Jakie kroki należy podjąć, aby skutecznie zabezpieczyć dane na komputerze?

A. Dzielić się hasłami do plików z współpracownikami
B. Przechowywać dane na niezabezpieczonych nośnikach przenośnych
C. Systematycznie aktualizować oprogramowanie i wykonywać kopie zapasowe
D. Nie używać kopii zapasowych
Regularne aktualizowanie oprogramowania oraz tworzenie kopii zapasowych to kluczowe działania zapewniające bezpieczeństwo danych na komputerze. Aktualizacje łatają luki w zabezpieczeniach i eliminują błędy, które mogą zostać wykorzystane przez hakerów. Kopie zapasowe chronią dane przed utratą spowodowaną awarią sprzętu, atakiem ransomware lub przypadkowym usunięciem. Najlepszą praktyką jest przechowywanie kopii zapasowych w różnych miejscach – lokalnie i w chmurze – co dodatkowo zwiększa poziom zabezpieczenia przed nieprzewidzianymi sytuacjami.

Pytanie 38

Kod XAML zaprezentowany powyżej zostanie wyświetlony jako:

Ilustracja do pytania
A. A
B. C
C. D
D. B
Kod XAML zostanie wyrenderowany jako element D, co oznacza, że spełnia wszystkie warunki formatowania i układu graficznego zgodne z przedstawionym rysunkiem. XAML to język znaczników do projektowania interfejsów użytkownika w aplikacjach WPF, UWP i Xamarin.

Pytanie 39

Jakie wartości może przyjąć zmienna typu boolean?

A. true, false
B. trzy dowolne liczby naturalne
C. 1, -1
D. O oraz każdą liczbę całkowitą
Zmienna typu logicznego (boolowskiego) w językach programowania, takich jak C++, Java czy Python, może przyjmować tylko dwie wartości: true (prawda) oraz false (fałsz). Te wartości są fundamentalne w logice komputerowej, ponieważ umożliwiają podejmowanie decyzji oraz kontrolowanie przepływu programu poprzez struktury warunkowe, takie jak instrukcje if, while czy for. Na przykład, w języku Python, tworząc zmienną logiczną, możemy użyć operatorów porównania, aby określić, czy dwie wartości są równe: is_equal = (5 == 5), co ustawia is_equal na true. Zmienne logiczne są zdefiniowane w standardach programowania, takich jak IEEE 754 dla reprezentacji liczb zmiennoprzecinkowych, gdzie wartość logiczna jest kluczowa dla operacji porównawczych. Dobrze zrozumiana logika boolowska jest niezbędna dla programistów, ponieważ stanowi podstawę algorytmu decyzyjnego oraz wpływa na efektywność kodu.

Pytanie 40

Gdzie są przechowywane informacje w sytuacji korzystania z chmury obliczeniowej?

A. Na lokalnym serwerze użytkownika
B. Na dysku twardym użytkownika
C. Na zdalnych serwerach dostawcy usług
D. Na nośnikach optycznych użytkownika
Przechowywanie danych na serwerze lokalnym użytkownika, na dysku twardym lub na dyskach optycznych jest w kontekście chmury obliczeniowej nieodpowiednie i nieefektywne. Serwer lokalny użytkownika, mimo że może przechowywać dane, nie oferuje takich samych korzyści jak zdalne serwery dostawcy usług chmurowych. W przypadku awarii, usunięcia danych lub kradzieży, użytkownik może stracić wszystkie informacje bez możliwości ich odzyskania, co jest minimalizowane w modelu chmurowym dzięki automatycznym kopiom zapasowym i redundancji. Dysk twardy użytkownika ma ograniczoną pojemność i nie jest w stanie zapewnić elastyczności w zarządzaniu dużymi zbiorami danych, co jest kluczowe w dzisiejszym świecie big data. Przechowywanie danych na dyskach optycznych również nie jest praktycznym rozwiązaniem, ponieważ wymaga manualnej obsługi i nie oferuje natychmiastowego dostępu do danych. Ostatecznie, wszystkie te metody przechowywania są ułomne w porównaniu z korzyściami, jakie niesie za sobą korzystanie z zdalnych serwerów dostawcy usług, które są nie tylko bardziej wydajne, ale również zapewniają większe bezpieczeństwo i łatwość dostępu do danych.