Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 1 kwietnia 2025 09:43
  • Data zakończenia: 1 kwietnia 2025 09:59

Egzamin niezdany

Wynik: 13/40 punktów (32,5%)

Wymagane minimum: 20 punktów (50%)

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

Który z wymienionych mechanizmów pozwala na monitorowanie stanu użytkownika w trakcie sesji w aplikacji internetowej?

A. Sesje (Sessions)
B. HTTP Headers
C. HTML Forms
D. CSS Selectors
Nagłówki HTTP (HTTP Headers) przesyłają podstawowe informacje między klientem a serwerem, ale nie przechowują długoterminowych danych użytkownika ani nie pozwalają na zarządzanie stanem sesji. Formularze HTML (HTML Forms) służą do przesyłania danych na serwer, ale nie zarządzają stanem użytkownika w aplikacji. CSS Selectors to narzędzie służące do stylizacji elementów interfejsu, a nie mechanizm do śledzenia sesji użytkownika, co oznacza, że nie mają zastosowania w zarządzaniu stanem użytkownika w aplikacji webowej.

Pytanie 2

Jakie są kluczowe różnice między typami stałoprzecinkowymi a zmiennoprzecinkowymi?

A. Typy zmiennoprzecinkowe przechowują wyłącznie liczby ujemne
B. Typy stałoprzecinkowe wymagają większej ilości pamięci niż typy zmiennoprzecinkowe
C. Typy stałoprzecinkowe przechowują liczby całkowite, a typy zmiennoprzecinkowe przechowują liczby z ułamkami dziesiętnymi
D. Typy stałoprzecinkowe obsługują liczby ujemne, natomiast typy zmiennoprzecinkowe tylko dodatnie
Stałoprzecinkowe typy obsługują zarówno liczby dodatnie, jak i ujemne – stwierdzenie, że obsługują tylko liczby dodatnie, jest błędne. Stałoprzecinkowe typy danych nie wymagają więcej pamięci niż zmiennoprzecinkowe – wręcz przeciwnie, typy takie jak 'float' zajmują więcej miejsca ze względu na możliwość przechowywania części ułamkowych. Zmiennoprzecinkowe nie przechowują wyłącznie liczb ujemnych – mogą przechowywać zarówno liczby dodatnie, jak i ujemne, co czyni je bardziej wszechstronnymi w niektórych aplikacjach.

Pytanie 3

Jaki framework umożliwia tworzenie interaktywnych interfejsów użytkownika w języku TypeScript?

A. jQuery
B. Django
C. Angular
D. ASP.NET Core
Angular to popularny framework oparty na TypeScript, który umożliwia tworzenie dynamicznych i rozbudowanych interfejsów użytkownika. Jest rozwijany przez Google i używany do budowy aplikacji typu Single Page Applications (SPA), które cechują się płynnością działania i interaktywnością. Angular oferuje bogaty ekosystem narzędzi wspierających programistów, takich jak Angular CLI, który pozwala na szybkie generowanie komponentów, serwisów i modułów. Wsparcie dla TypeScript oznacza, że Angular pozwala na wykorzystywanie typów, interfejsów oraz zaawansowanych narzędzi do refaktoryzacji kodu, co przekłada się na większą czytelność i bezpieczeństwo aplikacji. Dzięki modularnej architekturze Angular wspiera tworzenie aplikacji, które są łatwe w utrzymaniu i skalowaniu. Jego dwukierunkowe wiązanie danych (two-way data binding) oraz możliwość dynamicznej aktualizacji widoków czynią go jednym z liderów na rynku frameworków frontendowych.

Pytanie 4

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

A. AMD Radeon R7 240 - 2GB GDDR5, 64-bit
B. AMD Radeon RX 580 - 8GB GDDR5, 256-bit
C. Intel UHD Graphics 630 - zintegrowana
D. NVIDIA GeForce GTX 1050 Ti - 4GB GDDR5, 128-bit
AMD Radeon RX 580 to karta graficzna, która zapewnia wyższą wydajność w grach komputerowych w porównaniu do innych wymienionych opcji. Wyposażona w 8GB pamięci GDDR5 oraz 256-bitową szynę danych, karta ta jest w stanie obsługiwać bardziej złożone tekstury oraz większe rozdzielczości. Jej architektura Polaris pozwala na lepsze zarządzanie energią oraz wydajność w grach, co czyni ją idealnym wyborem dla graczy. Dzięki obsłudze technologii DirectX 12 i Vulkan, RX 580 jest w stanie wykorzystać najnowsze osiągnięcia w dziedzinie grafiki, co przekłada się na wyższą jakość obrazu oraz płynność animacji. Przykłady gier, w których RX 580 sprawdza się najlepiej to 'Far Cry 5' czy 'Shadow of the Tomb Raider', gdzie karta umożliwia granie w wysokich ustawieniach graficznych z zachowaniem wysokiej liczby klatek na sekundę. Standardy, takie jak PCIe 3.0, zapewniają pełną kompatybilność z nowoczesnymi płytami głównymi, co czyni tę kartę doskonałym wyborem dla entuzjastów gier komputerowych.

Pytanie 5

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

A. Zastosować iterację zamiast rekurencji
B. Rozszerzyć zakres zmiennych globalnych
C. Dodać warunek zakończenia w funkcji
D. Wykorzystać automatyczny debugger w kompilatorze
Zwiększanie zmiennych globalnych nie naprawi nieskończonej rekurencji – tu chodzi o to, że musisz mieć warunek zakończenia, a nie tylko więcej pamięci. Można zastąpić rekurencję iteracją, ale to nie rozwiąże problemu samej idei rekurencji. Wiadomo, że iteracja i rekurencja to różne sposoby podchodzenia do problemów. I nawet jak masz debuggera, to on nie naprawi błędów rekurencji, to ty musisz sam o to zadbać i dobrze zaimplementować warunek stopu.

Pytanie 6

Zaprezentowane oznaczenie praw Creative Commons umożliwia bezpłatne wykorzystywanie utworu

Ilustracja do pytania
A. w celu dokonywania zmian lub remiksowania
B. w celach komercyjnych
C. pod warunkiem zachowania go w pierwotnej formie
D. pod warunkiem udostępnienia go na takiej samej licencji
Pozostałe odpowiedzi zawierają błędne interpretacje dotyczące warunków licencji Creative Commons. Licencje takie jak CC BY-NC jasno określają, że utwory nie mogą być wykorzystywane w celach komercyjnych, co wyklucza możliwość zarabiania na nich bez zgody autora. To ograniczenie jest istotnym elementem licencji i zapewnia, że twórcy zachowują kontrolę nad komercyjnymi aspektami swojego dzieła. Przekonanie, że można swobodnie używać utworu w celach komercyjnych, jest częstym błędem wynikającym z niepełnego zrozumienia oznaczeń licencyjnych. Dodatkowo, sugerowanie że utwór musi być zostawiony w oryginalnej postaci jest charakterystyczne dla licencji NoDerivs (ND), która nie jest tu zastosowana. Taki wymóg ogranicza możliwość modyfikacji, co nie dotyczy licencji umożliwiających remiksowanie. Co więcej, niektóre licencje wymagają udostępniania dzieł pochodnych na tej samej licencji (ShareAlike), jednak nie jest to regułą dla wszystkich typów licencji i nie dotyczy bezpośrednio analizowanego przypadku. Pomyłki te często wynikają z niewłaściwego zapoznania się z symboliką i opisami licencji Creative Commons, co podkreśla potrzebę dokładnej analizy warunków przed ich zastosowaniem. Właściwe zrozumienie zasad i ograniczeń każdej licencji jest kluczowe, aby uniknąć nieintentionalnych naruszeń praw autorskich i promować odpowiedzialne podejście do wykorzystania zawartości twórczej w zróżnicowanych projektach i inicjatywach twórczych. Zrozumienie tych zasad nie tylko wspiera prawidłowe stosowanie licencji, ale także promuje etyczne zachowania wśród twórców i użytkowników zasobów cyfrowych.

Pytanie 7

Jakie są cechy testów interfejsu?

A. Weryfikują zgodność aplikacji z przepisami prawnymi
B. Ulepszają kod aplikacji
C. Analizują wydajność aplikacji w czasie rzeczywistym
D. Sprawdzają prawidłowość pracy elementów graficznych oraz interakcji użytkownika z aplikacją
Testy wydajnościowe oceniają szybkość i stabilność aplikacji, ale nie dotyczą wyglądu i interakcji z użytkownikiem. Testy zgodności sprawdzają zgodność aplikacji z przepisami i standardami, ale nie analizują graficznych aspektów interfejsu. Optymalizacja kodu dotyczy poprawy efektywności działania aplikacji, ale nie wpływa bezpośrednio na elementy graficzne i interakcje użytkownika.

Pytanie 8

Które z poniższych twierdzeń najlepiej charakteryzuje metodę wirtualną?

A. Metoda, która może być przesłonięta w klasie dziedziczącej
B. Metoda, która działa wyłącznie dla statycznych pól danej klasy
C. Metoda, która może być wywoływana tylko przez klasę nadrzędną
D. Metoda, która jest zawsze stosowana w konstruktorach danej klasy
Wirtualna metoda to taka, która jest zdefiniowana w klasie bazowej i można ją nadpisać w klasie pochodnej. Fajna sprawa z tą metodą wirtualną jest taka, że działa na zasadzie dynamicznego wiązania, co w praktyce oznacza, że program decyduje w czasie działania, którą wersję metody wywołać. Dzięki temu mamy polimorfizm – możemy użyć różnych wersji tej samej metody, w zależności od typu obiektu, na którym pracujemy. To naprawdę ważny aspekt programowania obiektowego, bo pozwala na większą elastyczność i łatwiejsze rozwijanie kodu. W hierarchiach klas to się sprawdza, bo klasa bazowa ma ogólne metody, a klasy pochodne mogą je dostosować do swoich potrzeb.

Pytanie 9

Który z wymienionych typów stanowi przykład typu znakowego?

A. boolean
B. float
C. char
D. string
Typ 'char' to przykład typu znakowego, który przechowuje pojedynczy znak (litera, cyfra, symbol). W językach takich jak C++, Java czy C, typ 'char' zajmuje jeden bajt pamięci i jest podstawą do obsługi operacji tekstowych oraz przetwarzania danych wejściowych. Typy znakowe są często wykorzystywane do manipulacji łańcuchami tekstowymi, przechowywania kodów ASCII i pracy z danymi wejściowymi. Znaki są podstawowym elementem budowy tekstów i mogą być łączone w tablice (ciągi znaków) lub przetwarzane indywidualnie.

Pytanie 10

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 2
B. Rysunek 3
C. Rysunek 4
D. Rysunek 1
Komponent Chip w bibliotece Angular Material to interaktywny element, który reprezentuje fragment informacji, tag lub wybór. Może zawierać tekst, ikonę lub być klikalny, co czyni go niezwykle użytecznym w projektowaniu nowoczesnych interfejsów użytkownika. Komponenty tego typu często wykorzystywane są w formularzach lub systemach tagowania, umożliwiając użytkownikowi intuicyjne dodawanie lub usuwanie elementów. Wyróżnia się swoją minimalistyczną formą i możliwością dostosowania do różnych potrzeb projektowych.

Pytanie 11

Przedstawiony fragment dotyczy funkcji resize w języku C++. Ta funkcja obniży długość elementu string, gdy wartość parametru

Ilustracja do pytania
A. c jest większa od aktualnej długości łańcucha
B. c jest mniejsza od aktualnej długości łańcucha
C. n jest mniejsza od aktualnej długości łańcucha
D. n jest większa od aktualnej długości łańcucha
Parametr c nie ma bezpośredniego wpływu na długość łańcucha. Zwiększenie długości nie powoduje skrócenia, a parametr n większy od długości łańcucha prowadzi do wypełnienia go dodatkowymi znakami, a nie skrócenia.

Pytanie 12

Jakie środowisko deweloperskie jest powszechnie wykorzystywane do produkcji aplikacji webowych w języku Java?

A. Android Studio
B. PyCharm
C. Eclipse
D. XCode
Eclipse to jedno z najpopularniejszych środowisk programistycznych (IDE) wykorzystywanych do tworzenia aplikacji webowych w języku Java. Jest to potężne narzędzie, które wspiera zarówno tworzenie aplikacji desktopowych, jak i rozbudowanych systemów backendowych. Eclipse oferuje wiele wtyczek i rozszerzeń umożliwiających integrację z narzędziami do zarządzania bazami danych, serwerami aplikacji oraz systemami kontroli wersji. Dzięki temu programiści mogą efektywnie budować i testować aplikacje webowe napisane w Javie.

Pytanie 13

Jakiego kwalifikatora powinno się użyć dla metody, aby umożliwić do niej dostęp jedynie z wnętrza tej klasy oraz klas dziedziczących, a także, by metoda ta nie była dostępna w żadnej funkcji?

A. private
B. public
C. protected
D. reinterpret_cast
Public – Umożliwia dostęp do metody z dowolnego miejsca, co nie jest zgodne z wymaganiami pytania. Private – Ogranicza dostęp wyłącznie do klasy, nie pozwalając na dostęp z klas dziedziczących. reinterpret_cast – To operator rzutowania, nie mający związku z dostępnością metod w klasie.

Pytanie 14

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

A. poziomu optymalizacji kodu aplikacji
B. bezpieczeństwa aplikacji
C. poprawności wyświetlanych elementów aplikacji
D. wydajności 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 15

Jakie czynności należy wykonać, aby zrealizować zdarzenie kliknięcia na przycisk w aplikacji desktopowej?

A. Utworzyć metodę w systemie menu
B. Powiązać zdarzenie kliknięcia z odpowiednią metodą w kodzie
C. Zaprojektować nowy dialog modalny
D. Zmienić plik XAML
Podłączenie zdarzenia kliknięcia do odpowiedniej metody w kodzie to podstawowy krok w obsłudze interakcji użytkownika z przyciskiem w aplikacjach desktopowych. W środowiskach takich jak WPF (Windows Presentation Foundation), WinForms czy Qt, każda kontrolka (np. przycisk) może posiadać przypisaną metodę, która zostanie wywołana w momencie kliknięcia. Dzięki temu możliwe jest wykonywanie operacji, takich jak otwieranie nowych okien, przetwarzanie danych lub aktualizacja interfejsu użytkownika. Prawidłowa implementacja zdarzeń jest kluczowa dla funkcjonalności aplikacji i umożliwia dynamiczne reagowanie na działania użytkownika. W środowiskach takich jak Visual Studio, proces ten jest intuicyjny i często realizowany przez mechanizm 'kliknij i przeciągnij', a następnie przypisanie kodu do wygenerowanego szkieletu funkcji.

Pytanie 16

Jakie środowisko deweloperskie jest najczęściej wykorzystywane do budowy aplikacji na platformę Android?

A. Visual Studio
B. Android Studio
C. PyCharm
D. XCode
Android Studio to oficjalne środowisko programistyczne (IDE) do tworzenia aplikacji na system Android. Zostało opracowane przez Google i zapewnia pełne wsparcie dla języków takich jak Java, Kotlin oraz C++. Android Studio oferuje narzędzia do projektowania interfejsu użytkownika (UI), emulatory urządzeń, a także debugger i profiler, które pozwalają na testowanie i optymalizację aplikacji. IDE to jest zintegrowane z Android SDK, co ułatwia dostęp do API systemu Android oraz narzędzi takich jak ADB (Android Debug Bridge). Android Studio to kluczowe narzędzie dla deweloperów mobilnych, umożliwiające szybkie wdrażanie aplikacji na różne urządzenia oraz publikację w Google Play Store.

Pytanie 17

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

A. Ogranicza liczbę dostępnych towarów
B. Gwarantuje lepszą zgodność oraz jakość
C. Usuwa konieczność przeprowadzania kontroli jakości
D. Restrukcjonuje innowacje technologiczne
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 18

Z podanej definicji pola licznik można wywnioskować, iż

Ilustracja do pytania
A. bieżąca wartość pola jest wspólna dla wszystkich instancji klasy i nie może być zmieniana
B. pole nie może być zmieniane w kodzie klasy
C. bieżąca wartość pola jest wspólna dla wszystkich instancji klasy
D. pole jest związane z określoną instancją klasy i jego wartość jest unikalna tylko dla tej instancji
Pole charakterystyczne dla jednej instancji klasy oznacza, że jest to pole niestatyczne (instancyjne). Jeśli pole nie może być modyfikowane, jest oznaczone jako final (w Java) lub const (w C#), co nie jest równoznaczne z polem statycznym. Brak możliwości modyfikacji nie oznacza współdzielenia wartości przez wszystkie instancje klasy.

Pytanie 19

Jak wygląda kod uzupełnienia do dwóch dla liczby -5 w formacie binarnym przy użyciu 8 bitów?

A. 00000101
B. 11111011
C. 11111101
D. 10000101
Pierwsza z niepoprawnych odpowiedzi, która przedstawia wartość 00000101, jest błędna, ponieważ jest to binarna reprezentacja liczby 5, a nie -5. Kod uzupełnieniowy do dwóch wymaga przedstawienia liczby ujemnej poprzez inwersję bitów i dodanie jedynki. Ta odpowiedź nie ma zastosowania przy obliczaniu liczb ujemnych, stąd jest niewłaściwa. Kolejna odpowiedź, 11111101, również jest nieprawidłowa. W przypadku tej liczby, zainwersowanie bitów liczby 5 dawałoby 11111010, a dodanie 1 do tej wartości prowadziłoby do 11111011, co wskazuje, że ta odpowiedź nie jest zgodna z zasadą uzupełnienia do dwóch. Ostatnia z niepoprawnych odpowiedzi, 10000101, jest również błędna, ponieważ nie odpowiada żadnej z reprezentacji liczby -5. Gdybyśmy spróbowali konwertować ją z powrotem na wartość dziesiętną, otrzymalibyśmy 133, co jest zdecydowanie niepoprawne. Warto zauważyć, że każda z tych niepoprawnych odpowiedzi wskazuje na brak zrozumienia zasad konwersji liczb ujemnych w systemie binarnym, co jest kluczowe w informatyce i programowaniu, a ich użycie w praktycznych aplikacjach mogłoby prowadzić do poważnych błędów w obliczeniach.

Pytanie 20

Na podstawie treści zawartej w ramce, określ, który z rysunków ilustruje element odpowiadający klasie Badge zdefiniowanej w bibliotece Bootstrap?

Ilustracja do pytania
A. Rysunek 4
B. Rysunek 3
C. Rysunek 1
D. Rysunek 2
Wybór Rysunku 2 jest poprawny ponieważ przedstawia on elementy badge zdefiniowane w bibliotece Bootstrap Badge to niewielkie oznaczenia wizualne zazwyczaj zawierające liczby lub krótkie informacje które można umieścić obok linków lub innych elementów interfejsu użytkownika W Bootstrapie badge są implementowane za pomocą klasy .badge i można je stosować na przykład do wskazywania liczby nowych wiadomości lub powiadomień w aplikacjach webowych Dzięki temu użytkownik ma natychmiastowy dostęp do ważnych informacji bez konieczności wykonywania dodatkowych działań Przykładem zastosowania badge może być ikonka koperty z liczbą nieprzeczytanych wiadomości w skrzynce odbiorczej Co więcej badge można stylować za pomocą dodatkowych klas kolorystycznych takich jak .bg-primary .bg-success itd co pozwala na dostosowanie ich wyglądu do stylistyki całej aplikacji To praktyczne narzędzie w tworzeniu intuicyjnych interfejsów użytkownika które poprawia użyteczność i estetykę strony internetowej Zastosowanie badge zgodnie z dobrymi praktykami projektowania UX/UI wspiera lepszą organizację i dostępność informacji w aplikacjach internetowych

Pytanie 21

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

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

Pytanie 22

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

A. Funkcja, która wywołuje destruktor danej klasy
B. Metoda z dostępem ograniczonym tylko do tej samej klasy
C. Zmienna lokalna wewnątrz danej klasy
D. Pole lub metoda, która jest przypisana do klasy, a nie do jej instancji
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 23

Jaką wartość ma zmienna b po wykonaniu poniższego kodu?

Ilustracja do pytania
A. 2
B. 20
C. 11
D. 5
Powszechnym błędem w rozwiązywaniu tego typu zadań jest nieuwzględnienie wszystkich kroków pętli oraz niepoprawne obliczenie liczby iteracji. Można łatwo przeoczyć fakt jak często pętla się wykonuje i w jaki sposób zmieniają się wartości zmiennych. W przypadku przedstawionego kodu zmienna a początkowo wynosi 1 i zwiększa się o 2 w każdej iteracji aż do przekroczenia wartości 10. To oznacza że pętla wykona się pięć razy. Każdy przebieg pętli zmniejsza wartość b o 3 z powodu operacji b = b - c gdzie c jest równe 3. Jeśli nie uwzględni się wszystkich pięciu iteracji można błędnie wywnioskować inną wartość końcową b. Poprawne zrozumienie działania pętli while i operacji arytmetycznych w niej zawartych jest kluczowe w programowaniu. Takie pomyłki pokazują znaczenie czytelności i precyzji w analizie kodu oraz przypominają o konieczności dokładnego śledzenia zmian w zmiennych w czasie trwania pętli aby poprawnie przewidzieć wynik końcowy. Kluczowym standardem w branży jest testowanie kodu i ręczne śledzenie jego działania zwłaszcza w kontekście algorytmów iteracyjnych co pozwala na uniknięcie błędnych założeń i wyników.

Pytanie 24

Która z wymienionych właściwości odnosi się do klasy pochodnej?

A. Nie ma możliwości dodawania nowych metod
B. Jest automatycznie usuwana po zakończeniu działania programu
C. Nie może być zastosowana w strukturze dziedziczenia
D. Dziedziczy atrybuty i metody z klasy bazowej
Cechą klasy pochodnej jest dziedziczenie pól i metod z klasy bazowej, co oznacza, że klasa pochodna automatycznie uzyskuje dostęp do wszystkich publicznych i chronionych składowych klasy nadrzędnej. Dzięki temu programista może rozwijać i modyfikować funkcjonalność istniejących klas, tworząc bardziej wyspecjalizowane obiekty. Dziedziczenie to kluczowy mechanizm umożliwiający wielokrotne użycie kodu, co prowadzi do zmniejszenia duplikacji i zwiększenia efektywności w zarządzaniu projektem. Klasa pochodna może również nadpisywać metody klasy bazowej, dostosowując ich działanie do swoich specyficznych potrzeb.

Pytanie 25

Programista może wykorzystać framework Angular do realizacji aplikacji:

A. rodzaju back-end
B. mobilnej
C. rodzaju front-end
D. na komputerze
Aplikacje back-endowe zazwyczaj pisze się w innych frameworkach, jak na przykład Express.js albo Django. Wiadomo, że Angular zajmuje się warstwą kliencką. A jak mówimy o aplikacjach mobilnych czy desktopowych, to częściej korzysta się z takich rzeczy jak Flutter, React Native czy Electron. Więc to już nie jest to samo co Angular.

Pytanie 26

Który z algorytmów ma złożoność O(n2)?

A. Dijkstra
B. Merge Sort
C. Binary Search
D. Bubble Sort
Bubble Sort to algorytm o złożoności O(n²), co oznacza, że jego czas wykonania rośnie kwadratowo wraz ze wzrostem liczby elementów wejściowych. Algorytm porównuje sąsiadujące elementy i zamienia je miejscami, jeśli są w złej kolejności. Proces ten powtarza się wielokrotnie, aż do uzyskania pełnego posortowania tablicy. Ze względu na swoją prostotę, Bubble Sort jest często wykorzystywany do nauki podstaw algorytmiki, ale w praktyce rzadko stosuje się go do sortowania dużych zbiorów danych, ponieważ jest nieefektywny w porównaniu do bardziej zaawansowanych algorytmów, takich jak QuickSort czy Merge Sort.

Pytanie 27

Jaki rodzaj ataku hakerskiego polega na bombardowaniu serwera ogromną ilością żądań, co prowadzi do jego przeciążenia?

A. DDoS
B. Phishing
C. Man-in-the-Middle
D. SQL Injection
Phishing to technika, która polega na oszukiwaniu użytkowników w celu uzyskania poufnych informacji, takich jak hasła czy numery kart kredytowych, poprzez podszywanie się pod zaufane źródła. Atakujący często wykorzystują fałszywe e-maile lub strony internetowe, które wyglądają jak oryginalne, aby nakłonić ofiary do ujawnienia swoich danych. Ta metoda nie ma nic wspólnego z przeciążaniem serwerów, lecz raczej z manipulacją ludzką. Man-in-the-Middle (MitM) to atak, w którym haker przechwytuje komunikację pomiędzy dwoma stronami, umożliwiając mu podsłuchiwanie lub nawet modyfikowanie przesyłanych danych. W tym przypadku celem nie jest przeciążenie serwera, ale raczej kradzież informacji lub wprowadzenie złośliwego kodu. SQL Injection jest techniką, w której atakujący wprowadza złośliwe zapytania SQL do aplikacji internetowej, co pozwala mu na dostęp do bazy danych i wykonanie nieautoryzowanych operacji. Ta metoda również nie dotyczy przeciążenia serwera, lecz naruszenia integralności danych. Wszystkie te techniki różnią się znacznie od ataku DDoS, który koncentruje się na zakłóceniu dostępności serwisu poprzez jego przeciążenie.

Pytanie 28

Wykorzystanie typu DECIMAL w MySQL wymaga wcześniejszego określenia długości (liczby cyfr) przed oraz po przecinku. Jak należy to zapisać?

A. łańcuchowy
B. logiczny
C. zmiennoprzecinkowy
D. stałoprzecinkowy
Typ łańcuchowy w MySQL odnosi się do przechowywania danych tekstowych, takich jak VARCHAR czy CHAR, które są używane do przechowywania łańcuchów znaków. W przeciwieństwie do typu DECIMAL, nie ma on zastosowania do reprezentacji wartości numerycznych, co sprawia, że nie nadaje się do obliczeń matematycznych wymagających precyzji. Typ zmiennoprzecinkowy (FLOAT, DOUBLE) z kolei jest używany do przechowywania liczb, które mogą obejmować wartości z przecinkiem dziesiętnym, ale mogą cierpieć na problemy z precyzją, ponieważ są reprezentowane w formie binarnej. Ze względu na sposób przechowywania, liczby zmiennoprzecinkowe mogą prowadzić do niezamierzonych błędów zaokrągleń, co czyni je mniej odpowiednimi w kontekście finansowym. Typ logiczny (BOOLEAN) ma na celu przechowywanie wartości prawda/fałsz i nie jest dostosowany do przechowywania wartości liczbowych. Podsumowując, wszystkie trzy wymienione typy są nieodpowiednie do przechowywania liczb dziesiętnych z określoną precyzją, co stanowi kluczową cechę typu DECIMAL, który oferuje większą kontrolę nad dokładnością obliczeń.

Pytanie 29

Co oznacza akronim IDE w kontekście programowania?

A. Integrated Development Environment
B. Interaktywny Edytor Debugowania
C. Zintegrowane Środowisko Debugowania
D. Interaktywny Silnik Programistyczny
Rozszyfrowanie IDE jako Integrated Debugging Environment to duży błąd. To środowisko daje nam o wiele więcej niż tylko debuggowanie. Interactive Development Engine to też nietrafione określenie. Tak naprawdę IDE to bardziej rozbudowane narzędzie, niż tylko silnik do programowania. A sugerowanie, że IDE ogranicza się do edytora debugowania, jest całkowicie nieprawdziwe, bo to środowisko oferuje naprawdę szeroki wachlarz funkcji, które są potrzebne na każdym etapie życia aplikacji.

Pytanie 30

Jak zrealizować definiowanie własnego wyjątku w języku C++?

A. Skorzystać z domyślnej metody obsługi błędów
B. Utworzyć klasę, która dziedziczy po std::exception
C. Wykorzystać blok try z pustym blokiem catch
D. Automatycznie wywołać funkcję throw
Użycie standardowej funkcji obsługi błędów, takiej jak 'perror()', nie pozwala na zdefiniowanie własnego wyjątku – 'perror()' wyświetla komunikat o błędzie, ale nie zgłasza wyjątku. Blok 'try' z pustym blokiem 'catch' nie tworzy nowego wyjątku, lecz jedynie przechwytuje istniejące wyjątki. Wywołanie 'throw' automatycznie nie definiuje nowego wyjątku – 'throw' służy do zgłaszania istniejącego wyjątku, ale definicja własnego wyjątku wymaga utworzenia nowej klasy dziedziczącej po 'std::exception'.

Pytanie 31

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

A. Bo pozwalają na sortowanie danych bez dodatkowych działań
B. Ponieważ struktury danych typu mapa zajmują mniej pamięci niż tablice
C. Gdyż nie potrzebują znajomości wielkości danych przed kompilacją
D. Z powodu szybkiego uzyskiwania dostępu do elementów przy użyciu klucza
Tablice faktycznie zajmują mniej pamięci, ale nie mają takiego sposobu dostępu do danych jak mapa, bo korzystamy z indeksów. Mapa nie jest od tego, żeby sortować dane, chociaż da się to jakoś obejść, na przykład z TreeMap. Jest też taka kwestia, że jeśli nie znamy rozmiaru danych przed kompilacją, to to jest typowe dla list i wektorów, a mapa w sumie się w tym nie sprawdzi. No i HashMap działa na zasadzie dynamicznej alokacji, więc sama się powiększa, gdy dodajemy nowe elementy.

Pytanie 32

Która zasada zwiększa bezpieczeństwo w sieci?

A. Zaniedbywanie aktualizacji systemu operacyjnego
B. Dzielnie się hasłami z przyjaciółmi
C. Pobieranie plików z niepewnych źródeł
D. Korzystanie z mocnych, unikalnych haseł
Udostępnianie haseł wśród znajomych osłabia bezpieczeństwo konta, ponieważ zwiększa ryzyko, że hasło dostanie się w niepowołane ręce. Każda osoba, która ma dostęp do hasła, może nieświadomie wprowadzić złośliwe oprogramowanie lub zostać ofiarą phishingu, co naraża dane na wyciek. Unikanie aktualizacji systemu operacyjnego jest kolejnym poważnym błędem w kontekście bezpieczeństwa. Aktualizacje często zawierają łaty dla znanych luk w zabezpieczeniach, które są wykorzystywane przez cyberprzestępców. Ignorowanie ich stwarza łatwe cele dla ataków. Pobieranie plików z niezaufanych źródeł również stwarza poważne zagrożenie, ponieważ może prowadzić do zainstalowania złośliwego oprogramowania, które może przejąć kontrolę nad systemem, wykradać dane lub wprowadzać inne zagrożenia. W każdym z tych przypadków, zamiast wzmacniać bezpieczeństwo, podejmowane działania mogą prowadzić do poważnych konsekwencji, w tym utraty danych, złośliwych ataków oraz usunięcia poufnych informacji.

Pytanie 33

Zaprezentowany fragment kodu w języku C# tworzy hasło. Wskaż zdanie PRAWDZIWE dotyczące charakterystyki tego hasła:

Ilustracja do pytania
A. Może zawierać zarówno małe, jak i wielkie litery, cyfry oraz symbole
B. Jest maksymalnie 7-znakowe, co wynika z wartości zmiennej i
C. Może zawierać małe i wielkie litery oraz cyfry
D. Ma co najmniej 8 znaków oraz zawiera małe i wielkie litery oraz cyfry
Algorytm generowania hasła w języku C# może zawierać małe i wielkie litery oraz cyfry, co zapewnia większe bezpieczeństwo hasła. Tworzenie haseł w taki sposób zwiększa ich odporność na ataki brute-force i umożliwia spełnienie wymagań dotyczących złożoności. Dobrze skonstruowane hasło powinno zawierać różne typy znaków, by maksymalnie utrudnić jego złamanie.

Pytanie 34

Klasa Mieszkaniec zawiera atrybuty: imie, nazwisko, ulica, nrDomu, rokUrodzenia. W tej klasie umieszczono opisane poniżej konstruktory (zapisano jedynie typy argumentów). Do tworzenia obiektu za pomocą konstruktora kopiującego wykorzystany będzie konstruktor określony w punkcie

Ilustracja do pytania
A. 4
B. 3
C. 2
D. 1
Zwykłe konstruktory bez parametrów to tak naprawdę nie to samo, co konstruktor kopiujący. One tylko inicjują nową instancję, a kopii to one nie robią. Konstruktory, które dostają typy proste, służą tylko do ustawiania początkowych wartości pól, a więc też nie kopiują nic. Metody, które inicjalizują, są do przypisywania wartości po stworzeniu obiektu, ale to też nie to samo co konstruktor kopiujący.

Pytanie 35

Do zadań widoku w architekturze MVVM (Model_View-Viewmodel) należy

A. przekazywanie danych do widoku oraz wymiana informacji z modelem
B. zarządzanie logiką aplikacji - obejmuje wdrażanie algorytmów
C. przechowywanie ściągniętych i przetworzonych informacji
D. obsługa interakcji użytkownika, stworzenie UI
Logika aplikacji – To zadanie modelu lub ViewModel. Udostępnianie danych – To rola ViewModel, a nie widoku. Przechowywanie danych – Jest związane z modelem, nie widokiem, który zajmuje się prezentacją danych użytkownikowi.

Pytanie 36

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. Ewa
C. Krzysztof
D. Patryk
Patryk i Anna mogą mieć doświadczenie w programowaniu, ale ich specjalizacja może dotyczyć innych obszarów, np. back-end lub baz danych. Ewa może być ekspertem w innej dziedzinie, ale brak doświadczenia w front-end może prowadzić do wydłużenia czasu realizacji projektu lub błędów w interfejsie użytkownika.

Pytanie 37

Zaprezentowany kod zawiera pola danej klasy. Które pole (pola) mogą być osiągnięte z poziomu głównego programu poprzez odwołanie się w formie nazwaObiektu.nazwaPola?

Ilustracja do pytania
A. wyłącznie p3, p4, p5
B. p3 i p4
C. p1
D. jedynie p3
A tu mamy pola p1 i p4, które mogą być prywatne albo chronione, co w praktyce oznacza, że nie możesz ich tak po prostu wywołać w programie głównym. Żeby je zobaczyć, musisz skorzystać z metod publicznych albo refleksji. Poza tym pole p5 też nie jest dostępne, jeśli nie jest publiczne.

Pytanie 38

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

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

Pytanie 39

Jakie znaczenie ma framework w kontekście programowania?

A. Moduł do zarządzania systemami baz danych
B. Zbiór gotowych bibliotek, narzędzi i zasad ułatwiających tworzenie aplikacji
C. Program do graficznego projektowania interfejsów użytkownika
D. System operacyjny, który umożliwia uruchamianie aplikacji
System operacyjny nie jest frameworkiem, ponieważ jego głównym zadaniem jest zarządzanie zasobami sprzętowymi i umożliwianie uruchamiania aplikacji. Edytor graficzny do projektowania interfejsów użytkownika to narzędzie wspomagające tworzenie GUI, ale nie jest frameworkiem, ponieważ nie dostarcza komponentów aplikacyjnych ani reguł dotyczących architektury aplikacji. Moduł do zarządzania bazami danych to narzędzie wykorzystywane do przechowywania i zarządzania danymi, ale nie dostarcza gotowych rozwiązań w zakresie budowy całej aplikacji – w przeciwieństwie do frameworków, które integrują wiele narzędzi i bibliotek w spójną całość.

Pytanie 40

Jaką liczbę warstw zawiera model TCP/IP?

A. 2
B. 7
C. 4
D. 5
Odpowiedzi wskazujące na 2, 5 i 7 warstw w modelu TCP/IP są niepoprawne z kilku powodów. Pierwsza z nich sugeruje, że model TCP/IP miałby jedynie dwie warstwy, co znacznie upraszczałoby jego złożoność i nie oddawałoby rzeczywistego podziału funkcji. W rzeczywistości, połączenie krótkometrażowych protokołów z różnych obszarów komunikacji wymaga bardziej rozbudowanego systemu, który może obsłużyć różnorodne aplikacje oraz środowiska sieciowe. Drugie podejście, zakładające pięć warstw, mogłoby sugerować dodatkową warstwę, taką jak warstwa sesji, znana z modelu OSI. Jednak model TCP/IP nie definiuje wyraźnie tej warstwy, zatem dodawanie jej do struktury modelu TCP/IP wprowadzałoby zamieszanie. Natomiast odpowiedź, która wskazuje na siedem warstw, jest jeszcze bardziej nieadekwatna, ponieważ nie ma takiego uznawania w kontekście standardów TCP/IP. Taki podział może wynikać z pomylenia z modelem OSI, który rzeczywiście posiada siedem warstw, ale jego złożoność nie znajduje odzwierciedlenia w prostocie modelu TCP/IP. Zrozumienie różnic między tymi modelami jest kluczowe dla osób pracujących w dziedzinie technologii informacyjnej oraz telekomunikacji.