Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 14 stycznia 2025 15:46
  • Data zakończenia: 14 stycznia 2025 15:54

Egzamin zdany!

Wynik: 36/40 punktów (90,0%)

Wymagane minimum: 20 punktów (50%)

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

Jakie jest znaczenie klasy abstrakcyjnej?

A. Klasa, która nie może posiadać żadnych metod
B. Klasa, która zawsze dziedziczy z klasy bazowej
C. Klasa, która może być dziedziczona, ale nie można jej instancjonować
D. Klasa, która może zawierać zarówno metody zdefiniowane, jak i niezdefiniowane (czysto wirtualne)
Klasa abstrakcyjna to klasa, która może zawierać zarówno metody zdefiniowane, jak i niezdefiniowane (czysto wirtualne). Jest to kluczowy element programowania obiektowego, który pozwala na tworzenie hierarchii klas i wymuszanie implementacji określonych metod w klasach pochodnych. Klasy abstrakcyjne nie mogą być instancjonowane – służą jedynie jako szablony dla innych klas. Przykładem jest klasa 'Figura', która zawiera metodę 'ObliczPole()', ale konkretna implementacja tej metody jest dostarczana przez klasy pochodne, takie jak 'Kwadrat' czy 'Koło'.

Pytanie 2

Jakie są główne cechy architektury klient-serwer?

A. Serwer pełni rolę pasywnego odbiorcy danych od klientów
B. Komunikacja odbywa się bezpośrednio między urządzeniami klienckimi
C. Dane są przechowywane i przetwarzane na serwerze, a klient wysyła żądania i odbiera odpowiedzi
D. Każdy klient funkcjonuje niezależnie od pozostałych
Architektura klient-serwer to model, w którym dane są przechowywane i przetwarzane na serwerze, a klient wysyła żądania i odbiera odpowiedzi. Model ten umożliwia centralizację zasobów, co prowadzi do łatwiejszego zarządzania aplikacjami i zwiększonego bezpieczeństwa. Klient-serwer jest podstawą działania aplikacji webowych, usług sieciowych oraz baz danych. Dzięki temu architektura ta umożliwia wielu użytkownikom jednoczesny dostęp do tych samych danych, co czyni ją wydajnym rozwiązaniem dla rozproszonych systemów informatycznych. Serwery mogą obsługiwać różne rodzaje klientów, takie jak przeglądarki, aplikacje mobilne czy urządzenia IoT, co sprawia, że jest to wszechstronny model stosowany w wielu branżach.

Pytanie 3

Jakie będzie działanie przedstawionych dwóch równoważnych fragmentów kodu źródłowego?

Ilustracja do pytania
A. wyświetlony na stronie tekst w nagłówku: "Egzamin zawodowy"
B. wyświetlony na stronie tekst w akapicie: "Egzamin zawodowy"
C. nadany tytuł strony: "Egzamin zawodowy"
D. nadany tytuł każdego elementu HTML: "Egzamin zawodowy"
Twój kod rzeczywiście sprawia, że w nagłówku strony pojawia się tekst 'Egzamin zawodowy' (tak jak w

). To ważne, bo nagłówki HTML są kluczowe dla struktury strony i pomagają w lepszym pozycjonowaniu treści w wyszukiwarkach. Z mojego doświadczenia, dobrze zrobiony nagłówek może znacznie poprawić czytelność strony.


Pytanie 4

Jakie są kluczowe etapy resuscytacji krążeniowo-oddechowej?

A. 30 uciśnięć klatki piersiowej na przemian z 2 wdechami ratowniczymi
B. 10 uciśnięć klatki piersiowej bez wdechów
C. 20 uciśnięć klatki piersiowej na przemian z 5 wdechami ratowniczymi
D. 30 wdechów ratowniczych bez uciśnięć
30 uciśnięć klatki piersiowej na przemian z 2 wdechami ratowniczymi to standardowy protokół resuscytacji krążeniowo-oddechowej (RKO) zgodny z wytycznymi Europejskiej Rady Resuscytacji (ERC). Uciśnięcia wykonywane są na głębokość około 5-6 cm w tempie 100-120 uciśnięć na minutę. Po 30 uciśnięciach wykonuje się 2 wdechy ratownicze, które powinny być wykonywane z odpowiednią siłą, aby unieść klatkę piersiową poszkodowanego. Taka sekwencja jest podstawą pierwszej pomocy i może uratować życie osoby, u której doszło do zatrzymania akcji serca. Resuscytację należy kontynuować do momentu przybycia służb ratunkowych lub odzyskania przytomności przez poszkodowanego.

Pytanie 5

Jakie jest wymagane minimalne natężenie światła w biurze na stanowisku pracy?

A. 500 lx
B. 100 lx
C. 200 lx
D. 800 lx
Minimalne natężenie oświetlenia, jakie powinno być w biurze, to 500 lx (luksów). To taki standard, który ustalono w normach BHP i ergonomii. Dzięki temu lepiej się pracuje przy komputerze i łatwiej robić zadania, które wymagają dobrego wzroku. Odpowiednie oświetlenie zdecydowanie zmniejsza zmęczenie oczu i poprawia koncentrację, co jest istotne, żeby uniknąć bólów głowy i być bardziej efektywnym w pracy. Ważne, żeby światło było równomierne i nie odbijało się na monitorze, bo to może rozpraszać. Warto dbać o takie warunki, bo to zmniejsza ryzyko problemów ze wzrokiem, a komfort pracy jest mega ważny, zwłaszcza gdy ktoś spędza dużo czasu przed komputerem.

Pytanie 6

Który z poniższych przykładów ilustruje deklarację złożonego typu w języku C++?

A. float ocena = 4.5;
B. bool status;
C. class Student {};
D. int wynik = 100;
Deklaracja `class Student {};` w języku C++ przedstawia przykład tworzenia typu złożonego w postaci klasy. Klasa to podstawowy element programowania obiektowego, który pozwala na łączenie danych (pól) i funkcji (metod) w jednej strukturze. Klasy umożliwiają modelowanie rzeczywistych obiektów i ich zachowań, co prowadzi do bardziej zorganizowanego i skalowalnego kodu. Klasy mogą być rozszerzane przez dziedziczenie, co jest kluczową zaletą programowania obiektowego.

Pytanie 7

Jakie narzędzie programowe jest odpowiedzialne za konwersję kodu źródłowego na formę zrozumiałą dla maszyny, weryfikuje wszystkie polecenia pod kątem ewentualnych błędów, a następnie generuje moduł do wykonania?

A. dekompilator
B. interpreter
C. debugger
D. kompilator
Interpreter tłumaczy kod linia po linii, co oznacza, że nie tworzy pliku wykonywalnego i nie wykrywa wszystkich błędów przed uruchomieniem programu. Debugger jest narzędziem służącym do testowania i wykrywania błędów w kodzie podczas jego wykonywania. Dekompilator przekształca kod binarny na kod źródłowy, co jest procesem odwrotnym do kompilacji, lecz nie tworzy plików wykonywalnych.

Pytanie 8

Który z przedstawionych poniżej przykładów ilustruje prawidłową deklarację zmiennej typu całkowitego w języku C++?

A. int liczba;
B. char liczba;
C. bool liczba;
D. float liczba;
W języku C++ zmienna typu całkowitego jest deklarowana za pomocą słowa kluczowego `int`. Przykładowa poprawna deklaracja to `int liczba;`, co oznacza, że `liczba` jest zmienną, która może przechowywać wartości całkowite, takie jak 1, 42 lub -15. Deklarowanie zmiennych w C++ pozwala na statyczne typowanie, co oznacza, że każda zmienna ma określony typ i nie może przechowywać wartości innego typu. Dzięki temu kod jest bardziej przejrzysty i mniej podatny na błędy związane z niezgodnością typów.

Pytanie 9

Jedną z dolegliwości, która pojawia się u programistów w wyniku długotrwałego korzystania z myszki komputerowej lub klawiatury, objawiającą się bólem, drętwieniem oraz zaburzeniami czucia w rejonie 1-3 palca ręki jest

A. zespół cieśni kanału nadgarstka
B. kifoza
C. dyskopatia
D. zespół suchego oka
Zespół cieśni kanału nadgarstka to schorzenie występujące często u programistów i innych osób pracujących przy komputerze. Objawia się bólem, mrowieniem i drętwieniem palców, co wynika z ucisku nerwu pośrodkowego w nadgarstku. Długotrwałe korzystanie z klawiatury i myszy bez ergonomicznych przerw może prowadzić do tego schorzenia. Profilaktyka obejmuje ćwiczenia rozciągające, stosowanie ergonomicznych urządzeń oraz regularne przerwy w pracy.

Pytanie 10

Które z poniższych stwierdzeń najlepiej charakteryzuje tablicę asocjacyjną?

A. Tablica, która przechowuje wartości, do których można uzyskać dostęp tylko za pomocą indeksów numerycznych
B. Tablica, która przechowuje wyłącznie dane tekstowe
C. Tablica przechowująca dane w formie par klucz-wartość
D. Tablica, która zmienia swoje wymiary w trakcie działania programu
A więc zwykła tablica działa na zasadzie numerów, nie ma kluczy tekstowych, więc nie ma mowy o parach klucz-wartość. Co prawda, tablice dynamiczne potrafią zmieniać rozmiar, ale mimo to, nie dadzą rady zorganizować danych w taki sposób. Tekst czy inne typy danych w tablicach są po prostu przechowywane jak inne. Kluczowa różnica jest taka, że tablice asocjacyjne pozwalają na użycie kluczy, co czyni je bardziej elastycznymi. Trochę się zgubiłeś w tym wszystkim.

Pytanie 11

W aplikacji mobilnej, aby określić warianty grafiki w zależności od wielkości ekranu, należy (uwaga: odpowiedzi wariantowe dla dwóch systemów - sugerować się systemem omawianym na zajęciach)

A. iOS: dodać do nazw sufiksy oznaczające rozdzielczość, np. 32ppi. Android: umieścić grafikę w odpowiednich katalogach: 32ppi, 64ppi, 96ppi
B. iOS: dodać do nazw plików sufiksy @2x, @3x. Android: umieścić grafikę w odpowiednich folderach drawable: -hdpi, -xhpi, xxhdpi
C. iOS: utworzyć katalogi hdpi, lhpi, xhpi i dodać do nich grafiki. Android: utworzyć katalogi 32x32, 64x64, 96x96 i dodać do nich grafiki
D. iOS: dodać do nazw sufiksy #2x, #3x. Android: dodać do nazw sufiks rozdzielczości: -32x32, -64x64, -96x96
Kiedy chcemy, żeby grafiki w aplikacjach mobilnych wyglądały dobrze na różnych ekranach, musimy zastosować odpowiednie strategie, które zależą od platformy. Na iOS używa się przyrostków @2x lub @3x, co oznacza, że grafiki są przygotowane dla ekranów Retina, które mają wyższą gęstość pikseli. Na Androidzie z kolei, grafiki umieszcza się w folderach drawable z takimi nazwami jak -hdpi, -xhdpi czy -xxhdpi. Dzięki temu system wie, jaką wersję grafiki wybrać w zależności od rozdzielczości urządzenia. Moim zdaniem, taki system pozwala na super jakość obrazów i lepszą wydajność aplikacji.

Pytanie 12

Jaki numer telefonu należy wybrać, aby skontaktować się z pogotowiem ratunkowym w Polsce?

A. 113
B. 112
C. 997
D. 998
Numer 112 to europejski numer alarmowy, który działa we wszystkich krajach Unii Europejskiej, w tym w Polsce. Jego wybór pozwala na natychmiastowe połączenie się z dyspozytorem służb ratunkowych (pogotowie ratunkowe, straż pożarna, policja). Jest to uniwersalny numer, który można wybrać z dowolnego telefonu komórkowego lub stacjonarnego, nawet jeśli urządzenie nie ma karty SIM. Dzięki tej uniwersalności jest to najczęściej rekomendowany numer w nagłych wypadkach.

Pytanie 13

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

A. C++
B. Java
C. Python
D. C#
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 14

Jakie informacje można uzyskać na temat metod w klasie Point?

Ilustracja do pytania
A. Są przeciążone.
B. Służą jako konstruktory w zależności od liczby argumentów.
C. Zawierają błąd, ponieważ nazwy metod powinny być różne.
D. Zawierają przeciążenie operatora.
Metody klasy Point są przeciążone, co oznacza, że mogą mieć tę samą nazwę, ale różnią się liczbą lub typem parametrów. Przeciążenie metod to jedna z podstawowych technik programowania obiektowego, która pozwala na bardziej elastyczne projektowanie kodu. Dzięki temu programista może tworzyć metody dostosowane do różnych sytuacji, zachowując spójność nazw i intuicyjność użycia. To zwiększa czytelność i utrzymanie kodu, ponieważ wywołania metod o tej samej nazwie, ale różnych parametrach, są łatwe do zrozumienia i odnalezienia.

Pytanie 15

Na ilustracji pokazano fragment emulacji iOS z elementem kontrolnym. Który fragment kodu XAML opisuje ten element?

Ilustracja do pytania
A.
B.
C.
D.
Kontrolkaw XAML to taki przełącznik. Ma dwa stany: włączony (true) i wyłączony (false). Można to porównać do zwykłego włącznika, tylko że w aplikacjach. Fajnie się z tego korzysta, bo pozwala szybko zmieniać ustawienia, nie trzeba nic więcej wpisywać. To jest dosyć intuicyjne dla użytkowników, więc można nim łatwo zarządzać funkcjami aplikacji.

Pytanie 16

Resuscytacja krążeniowo-oddechowa polega na realizowaniu

A. 10 ucisków klatki piersiowej oraz 5 oddechów ratunkowych
B. 30 ucisków klatki piersiowej oraz 2 oddechy ratunkowe
C. 15 ucisków klatki piersiowej oraz 3 oddechy ratunkowe
D. 20 ucisków klatki piersiowej oraz 1 oddech ratunkowy
Resuscytacja krążeniowo-oddechowa (RKO) obejmuje 30 uciśnięć klatki piersiowej i 2 oddechy ratownicze. Jest to standardowy schemat stosowany w celu przywrócenia funkcji życiowych u osoby nieoddychającej.

Pytanie 17

Jakie jest wyjście działania kompilatora?

A. Plik źródłowy w języku o wyższym poziomie
B. Kolekcja instrukcji w języku pośrednim
C. Zestaw błędów występujących w kodzie
D. Plik maszynowy gotowy do uruchomienia
Plik maszynowy gotowy do uruchomienia jest wynikiem działania kompilatora. Po przekształceniu kodu źródłowego na język maszynowy tworzony jest plik binarny, który może być uruchomiony na komputerze bez konieczności ponownej kompilacji. Pliki te są szybkie i efektywne, ponieważ kod został wcześniej zoptymalizowany i przetworzony na instrukcje rozumiane przez procesor. Przykłady takich plików to .exe w systemie Windows lub pliki binarne w systemach Linux. Plik maszynowy to ostateczna forma programu, gotowa do dystrybucji i użytkowania.

Pytanie 18

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

A. Przeglądarka internetowa
B. Edytor graficzny
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 19

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. operator
C. virtual
D. static
Słowo kluczowe 'static' w językach takich jak Java, C++ czy C# oznacza, że dane pole należy do klasy, a nie do konkretnego obiektu. Dzięki temu pole 'static' jest współdzielone przez wszystkie instancje klasy i może być wykorzystywane do śledzenia liczby obiektów utworzonych na podstawie tej klasy. Static to nieodzowny element przy implementacji liczników instancji.

Pytanie 20

Która z wymienionych aplikacji stanowi przykład prostego rozwiązania mobilnego?

A. Aplikacja typu zegar
B. Aplikacja do monitorowania użycia pamięci RAM
C. Aplikacja z rozbudowanym systemem zarządzania projektami
D. Aplikacja do analizy danych finansowych
Aplikacja typu zegar to jeden z najprostszych przykładów aplikacji mobilnej. Jej podstawowa funkcjonalność polega na wyświetlaniu aktualnego czasu oraz alarmów, a dodatkowo może zawierać funkcje takie jak minutnik czy stoper. Tego rodzaju aplikacje charakteryzują się niewielką liczbą funkcji, przejrzystym interfejsem i minimalnym zapotrzebowaniem na zasoby sprzętowe. Dzięki swojej prostocie, aplikacje typu zegar są doskonałym przykładem na to, jak przy użyciu niewielkiej liczby komponentów można stworzyć przydatne narzędzie dla użytkownika.

Pytanie 21

Narzędzie przeznaczone do rozwijania aplikacji w systemie WPf (ang. Windows Presentation Foundation) to

A. NetBeans
B. Visual Studio
C. XamarinStudio
D. PyCharm
Visual Studio jest dedykowanym narzędziem do implementacji aplikacji w środowisku WPF (Windows Presentation Foundation). Umożliwia projektowanie interfejsów użytkownika i zarządzanie projektami opartymi na XAML.

Pytanie 22

Która z wymienionych reguł należy do netykiety?

A. Udostępnianie treści bez zgody właścicieli
B. Stosowanie nieformalnego języka w każdej rozmowie
C. Unikanie używania dużych liter w komunikacji
D. Zaniechanie odpowiadania na wiadomości od innych użytkowników
Unikanie pisania wielkimi literami w wiadomościach jest kluczowym elementem netykiety, ponieważ tekst pisany dużymi literami w internecie jest powszechnie interpretowany jako krzyk. To zasada, która ma na celu utrzymanie kultury komunikacji online oraz zapewnienie komfortu odbiorcy. Gdy użytkownik korzysta z wielkich liter, może to być odbierane jako agresywne lub dominujące, co może prowadzić do nieporozumień oraz negatywnych reakcji. Przykładem może być sytuacja, w której osoba, pisząc do grupy na forum internetowym, używa wyłącznie wielkich liter, co może zniechęcić innych do interakcji. Dobrą praktyką jest pisanie w sposób przystępny i zrozumiały, co sprzyja pozytywnej atmosferze w komunikacji. Standardy netykiety, takie jak te przedstawione w dokumentach związanych z etyką w internecie, podkreślają znaczenie szacunku i zrozumienia w interakcjach online, co obejmuje również sposób formułowania wiadomości. Warto także pamiętać o tym, że różne platformy społecznościowe mają swoje zasady, które podkreślają unikanie pisania krzykiem, co potwierdza ogólne podejście do netykiety.

Pytanie 23

Który z wymienionych elementów interfejsu użytkownika jest charakterystyczny dla aplikacji działającej na komputerze?

A. Strona HTML
B. Routing
C. API REST
D. Przycisk (Button)
Przycisk, czyli ten mały element, co go klikamy w aplikacjach, to naprawdę ważna część interfejsu. Używamy go, żeby coś zainicjować, na przykład zapisać dane czy wywołać jakąś funkcję. Fajnie, że można go dowolnie ustawiać – zmieniać wygląd, rozmiar, a nawet to, jak się zachowuje. Dzięki temu pasuje do każdej aplikacji. W dzisiejszych programach, jak WPF, te przyciski mogą mieć różne kolorowe ikony albo nawet animacje, co sprawia, że aplikacja wygląda super. Generalnie, bez przycisków użytkownik by się w aplikacji nie połapał, bo to dzięki nim możemy nawigować, zatwierdzać formularze czy otwierać nowe okna dialogowe.

Pytanie 24

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

A. Angular
B. ASP.NET Core
C. jQuery
D. Django
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 25

Jak określa się proces, w trakcie którego klasa przejmuje właściwości innej klasy w programowaniu obiektowym?

A. Polimorfizm
B. Abstrakcja
C. Hermetyzacja
D. Dziedziczenie
Dziedziczenie to kluczowa cecha programowania obiektowego (OOP), która pozwala jednej klasie (klasie pochodnej) przejmować cechy i zachowania innej klasy (klasy bazowej). Dzięki dziedziczeniu można wielokrotnie wykorzystywać kod, co prowadzi do większej modularności i zmniejszenia redundancji. Dziedziczenie umożliwia rozszerzanie funkcjonalności klas bazowych poprzez dodawanie nowych metod lub modyfikowanie istniejących, bez konieczności ingerencji w oryginalny kod. Przykład w C++: `class Pojazd { ... }; class Samochod : public Pojazd { ... };` – `Samochod` dziedziczy wszystkie publiczne i chronione (protected) elementy klasy `Pojazd`.

Pytanie 26

W jakiej fazie cyklu życia projektu informatycznego następuje integracja oraz testowanie wszystkich modułów systemu?

A. Etap planowania
B. Faza wdrożenia
C. Faza analizy
D. Etap implementacji
Faza implementacji to etap cyklu życia projektu informatycznego, w którym następuje integracja i testowanie wszystkich modułów systemu. Po zakończeniu fazy projektowania i programowania, elementy aplikacji są łączone w jeden spójny system. Integracja polega na połączeniu komponentów, co umożliwia sprawdzenie ich współpracy oraz poprawności przepływu danych. Następnie przeprowadzane są testy integracyjne i systemowe, których celem jest wykrycie błędów w interakcji między modułami. Proces ten jest niezbędny, aby zapewnić stabilność aplikacji przed wdrożeniem do środowiska produkcyjnego. Skuteczna integracja minimalizuje ryzyko awarii i zwiększa niezawodność systemu.

Pytanie 27

Który z poniższych przypadków stanowi test niefunkcjonalny?

A. Weryfikacja poprawności logowania użytkownika
B. Testowanie wydajności aplikacji pod dużym obciążeniem
C. Sprawdzenie obsługi formularza rejestracji
D. Sprawdzenie działania przycisku
Testowanie wydajności aplikacji pod dużym obciążeniem to przykład testu niefunkcjonalnego. Jego celem jest ocena, jak aplikacja zachowuje się przy dużej liczbie użytkowników lub operacji jednocześnie. Testy te pozwalają na identyfikację wąskich gardeł i optymalizację kodu oraz infrastruktury serwerowej. W ramach testów obciążeniowych analizowane są parametry takie jak czas odpowiedzi, zużycie zasobów (CPU, RAM) oraz stabilność aplikacji w warunkach skrajnego obciążenia. Testowanie wydajności jest kluczowe w aplikacjach webowych, e-commerce oraz systemach o dużej liczbie transakcji, gdzie każdy przestój może generować straty finansowe i negatywnie wpływać na doświadczenia użytkownika.

Pytanie 28

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. sformułowania klasy bardziej szczegółowej niż już stworzona
B. określenia zasięgu dostępności metod i pól danej klasy
C. asynchronicznej realizacji długotrwałych zadań
D. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
Dziedziczenie to fajna sprawa, bo pozwala nam tworzyć nowe klasy na bazie tych, które już mamy. Dzięki temu możemy zaoszczędzić dużo czasu na pisaniu kodu i jednocześnie dodawać nowe funkcje do tych klas. To naprawdę kluczowy element programowania obiektowego.

Pytanie 29

Programista pragnie wybrać algorytm, który najszybciej przetwarza dane w jego aplikacji. Na podstawie złożoności obliczeniowej przedstawionej w tabeli, należy wskazać algorytm numer

Ilustracja do pytania
A. 1 lub 5
B. 2 lub 3
C. 4
D. 3
Algorytm numer 4 w tabeli złożoności obliczeniowej działa najszybciej, co wynika z jego niskiej złożoności czasowej. Algorytmy o niższej złożoności są bardziej efektywne przy dużych zbiorach danych.

Pytanie 30

W jaki sposób procesor nawiązuje komunikację z pamięcią podręczną (cache)?

A. Bezpośrednio, omijając mostki systemowe
B. Używając wyłącznie pamięci RAM
C. Poprzez linie danych w magistrali systemowej
D. Za pomocą systemu przerwań
Komunikacja między procesorem a pamięcią podręczną nie odbywa się poprzez system przerwań, ponieważ przerwania są mechanizmem umożliwiającym procesorowi reagowanie na zdarzenia zewnętrzne, a nie transfer danych między pamięcią a procesorem. Przerwania są używane głównie do komunikacji z urządzeniami peryferyjnymi, które informują procesor o konieczności przetworzenia danych, a nie do bezpośredniej interakcji z pamięcią podręczną. Ponadto stwierdzenie, że procesor komunikuje się z pamięcią podręczną, wykorzystując jedynie pamięć RAM, jest błędne, ponieważ pamięć RAM i pamięć podręczna to różne typy pamięci, o różnych szybkościach i funkcjach. Pamięć podręczna jest znacznie szybsza i działa jako pośrednik między procesorem a wolniejszą pamięcią RAM, co oznacza, że procesor nie korzysta z pamięci RAM do komunikacji z pamięcią podręczną. Warto również zaznaczyć, że komunikacja bezpośrednia z pominięciem mostków systemowych jest niepraktyczna i technicznie niemożliwa. Mostki systemowe są niezbędne do zarządzania ruchem danych między różnymi komponentami w architekturze komputerowej, a ich pominięcie mogłoby prowadzić do chaosu w komunikacji oraz znacznie obniżyć wydajność systemu.

Pytanie 31

Który z podanych algorytmów można zrealizować zarówno w sposób iteracyjny, jak i rekurencyjny?

A. Algorytm sortowania bąbelkowego
B. Algorytm wyszukiwania binarnego
C. Algorytm mapowania kluczy w tablicach asocjacyjnych
D. Algorytm generowania liczb losowych
Sortowanie bąbelkowe to algorytm iteracyjny i nie ma naturalnej wersji rekurencyjnej, ponieważ jego działanie opiera się na powtarzających się pętlach. Algorytm mapowania kluczy w tablicach asocjacyjnych nie korzysta z rekurencji – jest to proces przypisywania wartości do odpowiednich kluczy, który realizowany jest w sposób iteracyjny. Algorytm generowania liczb losowych nie wymaga rekurencji ani iteracji – jest to operacja oparta na wywołaniu odpowiednich funkcji w zależności od użytej biblioteki i języka programowania.

Pytanie 32

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

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

Pytanie 33

W języku C++, zakładając, że przedstawiony fragment kodu poprawnie się skompiluje i zostanie wykonany, to zmiennej liczba przypisana zostanie wartość

Ilustracja do pytania
A. pseudolosowa nie większa niż 999
B. dowolna pseudolosowa z przedziału typu int
C. równa 1OOO
D. rzeczywista podzielna przez 1OOO
Linia kodu int liczba = rand() % 1000; w języku C++ używa funkcji rand() do generowania liczby pseudolosowej. Funkcja ta zwraca liczbę całkowitą z zakresu od 0 do RAND_MAX zdefiniowanego w standardowej bibliotece C++. Obliczenie rand() % 1000 wykonuje operację modulo na wygenerowanej liczbie, co oznacza, że wynik zawsze będzie liczbą z zakresu od 0 do 999. Jest to powszechna technika używana do ograniczenia zakresu wartości zwracanych przez funkcję rand() do konkretnego przedziału. Takie podejście jest często wykorzystywane do generowania pseudolosowych wartości całkowitych w określonym zakresie, co jest przydatne w wielu zastosowaniach, od prostych programów testowych po bardziej złożone aplikacje symulacyjne. Należy pamiętać, że funkcja rand() generuje liczby pseudolosowe, co oznacza, że sekwencja liczb będzie się powtarzać przy każdym uruchomieniu programu, chyba że zostanie zainicjowana za pomocą funkcji srand() z unikalnym ziarnem. Jest to zgodne z dobrymi praktykami, aby zapewnić różnorodność w generowanych liczbach pseudolosowych, zwłaszcza w kontekście testowania i symulacji komputerowych.

Pytanie 34

Wskaż programowanie, w którym możliwe jest stworzenie aplikacji mobilnej dla systemu Android?

A. Java
B. C++
C. Obiective-C
D. Swift
Java jest jednym z najważniejszych języków programowania wykorzystywanych do tworzenia aplikacji mobilnych na platformę Android. Został stworzony przez firmę Sun Microsystems i obecnie jest rozwijany przez Oracle. Java jest językiem obiektowym, co oznacza, że umożliwia programistom tworzenie aplikacji w sposób modularny i zorganizowany. W kontekście Androida, Java jest podstawowym językiem, w którym bazowe API (Application Programming Interface) zostało opracowane. Wysoka wydajność, bogata biblioteka klas oraz wsparcie dla programowania wielowątkowego sprawiają, że Java jest idealnym wyborem dla deweloperów aplikacji mobilnych. Przykładowo, do stworzenia prostego interfejsu użytkownika w aplikacji Android, programista może wykorzystać takie elementy jak TextView czy Button, które są częścią frameworka Android SDK. Współczesne praktyki wskazują również na wykorzystanie Java w połączeniu z Kotlinem, co pozwala na osiągnięcie lepszych rezultatów i zwiększa efektywność w pracy nad projektami mobilnymi.

Pytanie 35

Który z wymienionych etapów w procesie przetwarzania instrukcji przez procesor odbywa się jako pierwszy?

A. Pobranie rozkazu z pamięci (Fetch)
B. Realizacja instrukcji (Execution)
C. Zapis wyników do pamięci (Write Back)
D. Rozkodowanie rozkazu (Decode)
Pierwszą rzeczą, jaką robi procesor, jest pobranie rozkazu z pamięci, co nazywamy Fetch. To bardzo ważny etap w budowie komputera. Normalnie cykl wykonywania instrukcji składa się z trzech głównych kroków: pobierania, dekodowania i wykonania. W fazie Fetch procesor dobiera się do pamięci i ściąga instrukcję, którą zaraz wykona. Do tego używa rejestru wskaźnika instrukcji, czyli Instruction Pointer, który pokazuje, gdzie w pamięci jest następna instrukcja. Jak to działa w praktyce? Można to zobaczyć na przykładzie procesora x86, gdzie CPU na początku cyklu sprawdza pamięć RAM, szukając instrukcji według adresu, który podaje wskaźnik. Standardy takie jak ISA (Instruction Set Architecture) mówią, że ten krok to podstawa, bo to właśnie od niego zaczyna się wszystko, co robi procesor.

Pytanie 36

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

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

Pytanie 37

W przypadku przedstawionych kodów źródłowych, które są funkcjonalnie równoważne, wartość, która zostanie zapisana w zmiennej b po wykonaniu operacji, to

Ilustracja do pytania
A. 5
B. 596
C. 5.96
D. 6
W tym zadaniu mamy do czynienia z fajnym przykładem konwersji liczby 5.96 na liczbę całkowitą w różnych językach, takich jak Python czy C++. Kiedy robimy rzutowanie, to po prostu odcinamy część ułamkową, co daje nam 5 w zmiennej b. To jest trochę klasyczne rzutowanie albo konwersja typu, gdzie w większości języków po prostu się to robi. Ciekawostką jest, że w Pythonie działa to przez funkcję int(), która zawsze zaokrągla w dół. A w C++ czy Javie używasz po prostu (int) i efekt jest ten sam. Warto też zwrócić uwagę, że przy liczbach ujemnych rzutowanie działa inaczej, bo zawsze zmierza w stronę zera. Z doświadczenia wiem, że warto być świadomym użycia takich konwersji, bo w niektórych przypadkach, jak operacje finansowe, nawet małe różnice mogą się okazać bardzo istotne.

Pytanie 38

Jakie znaczenie ma termin "przesłanianie metody" w kontekście programowania obiektowego?

A. Tworzenie nowej metody w klasie bazowej
B. Zmiana metody prywatnej na metodę publiczną
C. Zastosowanie tej samej nazwy metody w klasie bazowej i pochodnej, ale z inną implementacją w klasie pochodnej
D. Przenoszenie metod z jednej klasy do drugiej
Przesłanianie metody to mechanizm, w którym metoda w klasie pochodnej ma taką samą nazwę, typ zwracany i listę parametrów jak metoda w klasie bazowej, ale zawiera inną implementację. To kluczowy element polimorfizmu, umożliwiający dostosowanie zachowania klasy pochodnej do jej specyficznych potrzeb, przy zachowaniu spójnego interfejsu. Przesłanianie metod pozwala na elastyczne projektowanie kodu i jest szeroko stosowane w dużych projektach, aby umożliwić rozszerzalność oraz ponowne wykorzystanie istniejącej logiki. W C++ przesłanianie osiąga się za pomocą słowa kluczowego 'virtual' w klasie bazowej, a następnie redefinicji metody w klasie pochodnej.

Pytanie 39

Która z wymienionych sytuacji stanowi naruszenie praw autorskich?

A. Udostępnianie filmu objętego prawami autorskimi bez zgody właściciela
B. Nabycie licencji na oprogramowanie
C. Tworzenie kopii zapasowej legalnie zakupionego programu
D. Używanie programu typu open-source zgodnie z warunkami licencji
Publikowanie filmu chronionego prawami autorskimi bez zgody właściciela jest naruszeniem praw autorskich. Prawa autorskie chronią twórców przed nieuprawnionym kopiowaniem, dystrybucją i rozpowszechnianiem ich dzieł. W przypadku filmów, muzyki czy oprogramowania, każde użycie bez odpowiednich licencji lub zgody właściciela jest niezgodne z prawem. Twórcy mają prawo do wynagrodzenia za swoją pracę, a naruszenia mogą skutkować wysokimi grzywnami, a nawet postępowaniem sądowym. Przestrzeganie praw autorskich wspiera rozwój kultury i technologii, chroniąc interesy twórców.

Pytanie 40

Aplikacje funkcjonujące w systemach Android do komunikacji z użytkownikiem wykorzystują klasę

A. Activity
B. Fragments
C. Screens
D. Windows
W systemach Android do interakcji z użytkownikiem wykorzystywana jest klasa Activity, która reprezentuje pojedynczy ekran aplikacji. Activity zarządza cyklem życia aplikacji i pozwala na obsługę zdarzeń użytkownika, co jest kluczowym elementem w budowie aplikacji mobilnych.
Strona wykorzystuje pliki cookies do poprawy doświadczenia użytkownika oraz analizy ruchu. Szczegóły