Wyniki egzaminu

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

Egzamin zdany!

Wynik: 33/40 punktów (82,5%)

Wymagane minimum: 20 punktów (50%)

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

Który system informatyczny powinien być zastosowany do zarządzania sprzedażą w e-sklepie?

A. System e-commerce
B. System CMS
C. System CRM
D. System ERP
System e-commerce to takie fajne rozwiązanie, które naprawdę ułatwia sprzedaż przez internet. Znajdziesz w nim wszystko, co potrzebne do zarządzania produktami, zamówieniami, a nawet płatnościami. Dzięki temu przedsiębiorcy mogą szybko zakładać i prowadzić sklepy online, co daje super doświadczenie dla klientów. Warto wspomnieć o popularnych systemach, jak Shopify czy WooCommerce – z nich korzystają tysiące sklepów na całym świecie. Te systemy mają też fajne narzędzia, dzięki którym można monitorować sprzedaż czy analizować, co klienci lubią. A bezpieczeństwo? To też ważna sprawa, bo standardy, takie jak PCI DSS, dbają o to, żeby dane klientów były dobrze chronione. W czasach rosnącej konkurencji w internecie, wybór odpowiedniego systemu e-commerce to klucz do sukcesu.

Pytanie 2

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

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

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

A. bool status;
B. float ocena = 4.5;
C. int wynik = 100;
D. class Student {};
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 4

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

Ilustracja do pytania
A. szybkie (Quicksort)
B. przez wybór
C. przez wstawianie
D. bąbelkowe
Przedstawiona dokumentacja opisuje algorytm sortowania bąbelkowego (Bubble Sort), który działa poprzez wielokrotne porównywanie sąsiednich elementów i zamianę ich miejscami, jeśli są w złej kolejności. Algorytm ten ma prostą implementację, ale charakteryzuje się niską efektywnością dla dużych zbiorów danych (złożoność O(n^2)).

Pytanie 5

Która metoda wyszukiwania potrzebuje posortowanej listy do prawidłowego działania?

A. Wyszukiwanie z hashem
B. Wyszukiwanie binarne
C. Wyszukiwanie liniowe
D. Wyszukiwanie sekwencyjne
Wyszukiwanie liniowe (sekwencyjne) działa niezależnie od tego, czy tablica jest posortowana, ale ma złożoność O(n), co czyni je mniej efektywnym dla dużych zbiorów danych. Wyszukiwanie z hashem (hashing) nie wymaga posortowania tablicy, ponieważ działa na zasadzie mapowania kluczy do wartości i ma złożoność O(1) w najlepszym przypadku. Przeszukiwanie sekwencyjne (Linear Search) działa liniowo i nie wykorzystuje sortowania, co sprawia, że jest mniej wydajne dla dużych tablic.

Pytanie 6

Jaką właściwość ma sieć synchroniczna?

A. Nie jest konieczna synchronizacja zegarów
B. Przekazywanie danych zachodzi w sposób niesystematyczny
C. Transmisja danych odbywa się w wyznaczonych interwałach czasowych
D. Gwarantuje większą elastyczność w przesyłaniu danych
Sieć synchroniczna charakteryzuje się tym, że transmisja danych odbywa się w ustalonych odstępach czasu, co oznacza, że wszystkie urządzenia w sieci są zsynchronizowane do jednego zegara. Taki sposób przesyłania danych pozwala na precyzyjne określenie momentu, w którym dane są wysyłane i odbierane, co redukuje opóźnienia i błędy w komunikacji. Przykładem sieci synchronicznej jest system TDM (Time Division Multiplexing), który dzieli czas na różne sloty, przydzielając każdy slot konkretnemu użytkownikowi lub urządzeniu. Dzięki temu każdy uczestnik sieci ma gwarancję, że w swoim czasie dostanie dostęp do medium transmisyjnego. Standardy takie jak SONET (Synchronous Optical Network) i SDH (Synchronous Digital Hierarchy) są przykładami technologii, które wykorzystują synchronizację do efektywnego przesyłania danych na dużych odległościach. Takie podejście jest powszechnie stosowane w telekomunikacji, gdzie wysoka wydajność i niezawodność transmisji są kluczowe dla jakości usług.

Pytanie 7

Jaki rodzaj testów można scharakteryzować przedstawionym opisem?

Ilustracja do pytania
A. testy wydajnościowe
B. testy zgodności
C. testy jednostkowe
D. testy funkcjonalne
Testy funkcjonalne (functional testing) oceniają, czy aplikacja działa zgodnie z założeniami, testując jej poszczególne funkcjonalności. Są kluczowym etapem w procesie testowania oprogramowania, ponieważ potwierdzają poprawność implementacji.

Pytanie 8

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. dowolna pseudolosowa z przedziału typu int
B. rzeczywista podzielna przez 1OOO
C. równa 1OOO
D. pseudolosowa nie większa niż 999
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 9

Zawarty w ramce opis licencji sugeruje, że mamy do czynienia z licencją

Ilustracja do pytania
A. Freeware
B. OEM
C. Open Source
D. Shareware
Opis licencji wskazuje na licencję Open Source, która umożliwia użytkownikom przeglądanie, modyfikowanie i dystrybucję kodu źródłowego. Oprogramowanie open source sprzyja innowacji, współpracy i elastyczności, pozwalając na dostosowanie aplikacji do własnych potrzeb. Licencje takie jak GPL, MIT czy Apache są popularnymi przykładami licencji open source.

Pytanie 10

Jakie są różnice między procesem kompilacji a interpretacją kodu?

A. Kompilacja jest stosowana jedynie w programowaniu obiektowym
B. Kompilacja przekształca cały kod źródłowy przed jego wykonaniem, podczas gdy interpretacja tłumaczy kod na bieżąco
C. Kompilacja wymaga użycia debuggera, natomiast interpretacja tego nie potrzebuje
D. Interpretacja umożliwia tworzenie bibliotek dynamicznych, a kompilacja bibliotek statycznych
Kompilacja i interpretacja to dwa różne sposoby, żeby uruchomić kod. Kiedy kompilujesz, to cały kod jest zamieniany na język maszynowy przed uruchomieniem programu, a na końcu dostajesz plik, który można odpalić. Z kolei w interpretacji, kod jest analizowany i wykonywany linia po linii „na żywo”. Kompilacja jest bardziej typowa dla języków takich jak C czy C++, a interpretacja jest popularna w językach skryptowych jak Python czy JavaScript. Kompilacja daje większą wydajność, ale musisz poczekać, aż cały kod się skompiluje, a interpretacja pozwala na szybkie testowanie i łatwiejsze znajdowanie błędów.

Pytanie 11

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. jedynie p3
C. p3 i p4
D. p1
To pole p3 jest publiczne, co oznacza, że możesz je użyć w programie głównym, wywołując nazwaObiektu.p3. Fajne jest to, że pola prywatne i chronione są niewidoczne poza klasą, więc musisz użyć odpowiednich metod, takich jak gettery i settery, żeby się do nich dostać.

Pytanie 12

Na jakim etapie cyklu życia projektu tworzony jest szczegółowy opis wymagań funkcjonalnych oraz niefunkcjonalnych?

A. Weryfikacja
B. Wdrożenie
C. Analiza
D. Planowanie
Implementacja to proces tworzenia kodu na podstawie wymagań, ale same wymagania powstają w fazie analizy. Testowanie to etap weryfikacji poprawności aplikacji, a nie moment zbierania wymagań. Planowanie koncentruje się na budżecie i harmonogramie, ale nie obejmuje dogłębnego opisu funkcjonalności i niefunkcjonalnych aspektów produktu.

Pytanie 13

Fragment kodu w języku JavaScript to

Ilustracja do pytania
A. definicja zmiennej typu tablicowego
B. prototyp metody klasy
C. definicja funkcji strzałkowej
D. prototyp interfejsu
Kod w JavaScript opisuje definicję funkcji strzałkowej, która jest nowoczesnym i bardziej zwięzłym sposobem definiowania funkcji. Funkcje strzałkowe mają też specyficzne zachowanie w kontekście 'this', co czyni je często preferowanymi przy pracy z obiektami i metodami callback.

Pytanie 14

W języku C# szablon List zapewnia funkcjonalność listy. Z tworzenia obiektu typu List wynika, że jego składnikami są

Ilustracja do pytania
A. liczby całkowite
B. elementy typu List
C. elementy o nieokreślonym typie
D. liczby rzeczywiste
Szablon List<int> w języku C# implementuje listę, której elementami są liczby całkowite. Jest to przykład zastosowania kolekcji generycznych, które wprowadzają typowanie silne w czasie kompilacji, co pozwala na uniknięcie błędów typowych dla kolekcji niegenerycznych. Definiując List<int> deklarujesz, że lista będzie przechowywać tylko liczby całkowite. Dzięki temu kompilator może wykrywać błędy związane z typowaniem już podczas pisania kodu, co zwiększa jego niezawodność i bezpieczeństwo. Typ generyczny T w List<T> umożliwia tworzenie kolekcji przechowujących dowolny typ, co ułatwia ponowne wykorzystanie kodu i zgodność z zasadą DRY (Don't Repeat Yourself). W praktyce List<int> jest szeroko stosowany w scenariuszach wymagających dynamicznie rozwijanych kolekcji, które nie ograniczają się do statycznej liczby elementów, takich jak tablice. Listy generyczne są wydajniejsze i bardziej elastyczne dzięki metodom takim jak Add, Remove czy Contains, które operują na elementach określonego typu. Dzięki implementacji IEnumerable/Listy są również zgodne z LINQ, co umożliwia stosowanie złożonych zapytań i operacji na danych, takich jak filtrowanie i sortowanie, w sposób czytelny i efektywny.

Pytanie 15

Które z wymienionych stanowi przykład zagrożenia fizycznego w miejscu pracy?

A. Promieniowanie UV
B. Obciążenie psychiczne
C. Brak ergonomicznych miejsc pracy
D. Nieodpowiednie relacje w zespole
Zagrożenia fizyczne w środowisku pracy obejmują czynniki, które mogą prowadzić do obrażeń ciała lub problemów zdrowotnych. Przykładem takiego zagrożenia jest promieniowanie UV, które może powodować oparzenia skóry, uszkodzenia oczu oraz zwiększać ryzyko nowotworów skóry. Ochrona przed promieniowaniem UV jest kluczowa w zawodach wymagających pracy na zewnątrz lub przy urządzeniach emitujących intensywne światło UV. Stosowanie odpowiednich środków ochrony, takich jak okulary przeciwsłoneczne z filtrem UV, odzież ochronna i kremy z filtrem, jest niezbędne do minimalizacji ryzyka. Pracodawcy są zobowiązani do wdrażania procedur bezpieczeństwa i zapewniania odpowiednich środków ochrony pracowników narażonych na działanie promieniowania UV.

Pytanie 16

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

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

Pytanie 17

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

A. Typy stałoprzecinkowe przechowują liczby całkowite, a typy zmiennoprzecinkowe przechowują liczby z ułamkami dziesiętnymi
B. Typy stałoprzecinkowe obsługują liczby ujemne, natomiast typy zmiennoprzecinkowe tylko dodatnie
C. Typy zmiennoprzecinkowe przechowują wyłącznie liczby ujemne
D. Typy stałoprzecinkowe wymagają większej ilości pamięci niż typy zmiennoprzecinkowe
Główna różnica między typami stałoprzecinkowymi a zmiennoprzecinkowymi polega na tym, że stałoprzecinkowe przechowują liczby całkowite, podczas gdy zmiennoprzecinkowe przechowują liczby z częściami dziesiętnymi. Stałoprzecinkowe typy, takie jak 'int', są bardziej efektywne pod względem wydajności i zajmują mniej pamięci, co czyni je idealnym rozwiązaniem w przypadkach, gdzie precyzja dziesiętna nie jest wymagana. Z kolei typy zmiennoprzecinkowe, takie jak 'float' i 'double', umożliwiają dokładne reprezentowanie wartości niecałkowitych, co jest niezbędne w aplikacjach matematycznych i graficznych. Każdy z tych typów ma swoje zastosowanie w zależności od wymagań projektu.

Pytanie 18

Jakie jest podstawowe zadanie wykorzystania frameworka Node.js w aplikacjach internetowych?

A. Budowanie aplikacji mobilnych
B. Weryfikacja API
C. Zarządzanie aplikacjami serwerowymi i realizacja przetwarzania asynchronicznego
D. Kreowanie graficznego interfejsu użytkownika
Aplikacje mobilne to raczej domena takich narzędzi jak Android Studio czy React Native, które są zaprojektowane do tworzenia aplikacji na smartfony. Projektowanie interfejsów użytkownika raczej robimy w Adobe XD, Sketch czy Figma, a nie w Node.js, bo to nie do końca jego zadanie. Testowanie API to już inna bajka i zazwyczaj korzysta się z Postmana, a Node.js to bardziej środowisko do uruchamiania kodu, a nie do testów.

Pytanie 19

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

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

Pytanie 20

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

A. generatora kodu java
B. kompilatora dla interfejsu graficznego
C. generatora GUI przekształcającego kod do języka XAML
D. debuggera analizującego wykonujący kod
Narzędzie przedstawione w filmie to kreator GUI tłumaczący kod do języka XAML, co pozwala na szybkie projektowanie interfejsów użytkownika w aplikacjach opartych na Windows Presentation Foundation (WPF). Jest to wygodne rozwiązanie umożliwiające dynamiczne tworzenie elementów wizualnych.

Pytanie 21

Na przedstawionym obrazie widać fragment emulacji systemu iOS z prostą aplikacją. Górna część ekranu nachodzi na pasek stanu baterii. Który z poniższych zapisów powinien zostać użyty w miejscu znaków zapytania, aby ustawić jedynie marginesy górne tylko dla systemu iOS?

Ilustracja do pytania
A. x:TypeArguments="Thickness"<br/> iOS= 20
B. x:TypeArguments="Thickness" <br/> (0, 20, 0, 0)
C. x:TypeArguments="Thickness"<br/> iOS= "0, 0, 0, 0"<br/> Android= "0, 20, 0, 0"<br/> WinPhone= "0, 0, 0, 0"
D. x:TypeArguments="Thickness"<br/> iOS= "0, 20, 0, 0"<br/> Android= "0, 0, 0, 0"<br/> WinPhone= "0, 0, 0, 0"
Odpowiedź czwarta jest prawidłowa, ponieważ prawidłowo wykorzystuje mechanizm OnPlatform w XAML do zastosowania specyficznych ustawień dla różnych platform. W przypadku iOS zastosowano margines górny wynoszący 20 jednostek, co jest konieczne, aby uwzględnić przestrzeń zajmowaną przez status bar systemowy. Takie podejście jest zgodne z dobrymi praktykami projektowania aplikacji wieloplatformowych, gdzie różne platformy mogą wymagać różnych ustawień interfejsu użytkownika. Przykładowo, w aplikacjach tworzonych przy użyciu Xamarin.Forms, korzystanie z OnPlatform pozwala na dynamiczne dostosowywanie interfejsu w zależności od platformy, co zwiększa elastyczność i poprawia doświadczenie użytkownika. Dodatkowo, zastosowanie marginesów tylko dla platformy iOS pozwala na zachowanie spójności i pełną kontrolę nad wyglądem aplikacji na innych platformach takich jak Android czy Windows Phone, gdzie takie dostosowanie nie jest konieczne. Uwzględnienie tych różnic jest kluczowe dla tworzenia aplikacji, które wyglądają i działają dobrze na wszystkich docelowych urządzeniach.

Pytanie 22

W zaprezentowanym kodzie stworzono abstrakcyjną klasę Figura oraz klasę Prostokąt, która po niej dziedziczy, zawierającą określone pola i konstruktory. Wskaż najprostszą implementację sekcji /* metody klasy */ dla klasy Prostokąt

Ilustracja do pytania
A. Kod 4
B. Kod 3
C. Kod 1
D. Kod 2
Kod 1 jest prawidłowy ponieważ zapewnia implementację abstrakcyjnych metod Pole i Obwod z klasy Figura co jest wymagane dla każdej klasy dziedziczącej po klasie abstrakcyjnej W Javie kiedy klasa dziedziczy po klasie abstrakcyjnej musi zaimplementować wszystkie jej abstrakcyjne metody Kod 1 definiuje metodę Pole która oblicza pole prostokąta jako iloczyn długości boków a i b oraz metodę Obwod która oblicza obwód jako sumę dwóch razy długości a i dwóch razy długości b Jest to zgodne z konwencjami programowania obiektowego które promują enkapsulację i polimorfizm Kod odnosi się bezpośrednio do konkretnego zastosowania jakim jest obliczanie parametrów prostokąta co jest częstym przypadkiem w programowaniu graficznym oraz w aplikacjach matematycznych Implementacja metod w ten sposób zapewnia prostotę oraz czytelność kodu co jest zgodne z dobrymi praktykami w inżynierii oprogramowania Ponadto dzięki poprawnej implementacji można z powodzeniem rozszerzać funkcjonalność obiektową programu umożliwiając jego łatwiejsze modyfikowanie i rozwijanie w przyszłości

Pytanie 23

Jakie jest kluczowe działanie przy opracowywaniu zbiorów danych do rozwiązania problemu programistycznego?

A. Weryfikacja zbiorów danych przed ich zastosowaniem
B. Wybór odpowiednich struktur danych
C. Zmiana języka programowania na bardziej wydajny
D. Realizacja algorytmu sortującego
Implementacja algorytmu sortującego jest ważna, ale to właśnie nie jest ten najważniejszy moment w pracy z danymi – raczej końcowy etap. Zmiana języka programowania oczywiście może wpłynąć na wydajność, ale pamiętaj, że to struktury danych są kluczowe dla efektywności programu, niezależnie od wybranego języka. Testowanie zestawów danych to istotna część sprawdzania projektu, ale samo testowanie nie zastąpi dobrze przemyślanego doboru struktur danych na początku całego procesu. Bez tego trudno o dobry efekt.

Pytanie 24

Na podstawie zamieszczonego fragmentu kodu można stwierdzić, że element o nazwie rysunek jest

Ilustracja do pytania
A. obiektem
B. konstruktorem
C. polem w klasie
D. metodą w klasie
Zobacz, 'rysunek' w tym kodzie to metoda klasy. Skąd to wiem? Po tym, że mamy nawiasy. Metody klasy są super przydatne, bo pozwalają na robienie różnych rzeczy z obiektami albo zwracanie wyników na zewnątrz.

Pytanie 25

Szablon MojaTablica oferuje funkcjonalność tablicy z indeksami oraz elementami różnych typów. W oparciu o pokazany kod, który wykorzystuje ten szablon do tworzenia tablicy asocjacyjnej, wskaż definicję, która posługuje się szablonem do zainicjowania tablicy, gdzie indeksami są liczby całkowite, a elementami są napisy?

Ilustracja do pytania
A. MojaTablica tab2 = MOjaTablica()
B. int tab2 = new MojaTablica()
C. int tab2[] = new MojaTablica()
D. MojaTablica tab2 = new MojaTablica()
Aby utworzyć tablicę asocjacyjną w oparciu o szablon, należy zainicjalizować ją przy użyciu właściwej składni: MojaTablica tab2 = new MojaTablica();. Tego typu deklaracja tworzy obiekt tablicy, gdzie klucze są liczbami całkowitymi, a wartości przechowywane w tablicy to napisy. Tablice asocjacyjne to potężne narzędzie pozwalające na szybkie wyszukiwanie i przechowywanie danych, bazujące na unikalnych kluczach, co umożliwia efektywne zarządzanie złożonymi strukturami danych.

Pytanie 26

Jakie elementy powinny być uwzględnione w dokumentacji testowej aplikacji?

A. Specyfikacje techniczne serwera
B. Harmonogram wdrożenia aplikacji
C. Zalecenia dotyczące optymalizacji kodu
D. Opis procedur testowych oraz rezultaty wykonanych testów
Opis procedur testowych i wyników przeprowadzonych testów to kluczowy element dokumentacji testów aplikacji. Tego rodzaju dokumentacja obejmuje szczegółowe instrukcje dotyczące metod testowania, użytych narzędzi oraz kroków niezbędnych do przeprowadzenia testów jednostkowych, integracyjnych i systemowych. W dokumentacji znajdują się również raporty z wynikami testów, które wskazują, czy aplikacja działa zgodnie z wymaganiami oraz jakie błędy zostały wykryte. Testy pozwalają na wczesne wychwycenie problemów i eliminację błędów przed wdrożeniem aplikacji na produkcję, co znacząco zwiększa jakość oprogramowania. Dokumentacja testowa jest także nieocenionym źródłem informacji dla zespołów QA (Quality Assurance), umożliwiając śledzenie historii testów i zapewnienie, że wszystkie elementy aplikacji zostały przetestowane zgodnie z procedurami.

Pytanie 27

Który z objawów może sugerować zawał serca?

A. Spadek nastroju
B. Ból brzucha po spożyciu posiłku
C. Intensywny ból w klatce piersiowej promieniujący do lewej ręki
D. Gorączka oraz dreszcze
Silny ból w klatce piersiowej promieniujący do lewej ręki to klasyczny objaw zawału serca (ostrego zespołu wieńcowego). Ból ten często pojawia się nagle, jest intensywny, gniotący lub piekący i może towarzyszyć mu duszność, zawroty głowy, zimne poty i nudności. Zawał serca wynika z zablokowania jednej z tętnic wieńcowych, co prowadzi do niedokrwienia mięśnia sercowego. Szybka reakcja i wezwanie pomocy medycznej mogą uratować życie i zminimalizować uszkodzenia serca. Każda minuta jest kluczowa – nie należy czekać na ustąpienie objawów, lecz natychmiast zadzwonić na numer alarmowy 112 lub udać się do najbliższego szpitala.

Pytanie 28

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 2
B. Rysunek 4
C. Rysunek 1
D. Rysunek 3
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 29

Podczas programowania kontrolki stepper przedstawionej na ilustracji w aplikacji mobilnej, należy zarządzać zmienną, która zawsze przechowuje jej bieżącą wartość. Jakie zdarzenie można wykorzystać do osiągnięcia tej funkcjonalności?

Ilustracja do pytania
A. DescendantAdded
B. Unfocused
C. ValueChanged
D. SizeChanged
Zdarzenie ValueChanged jest kluczowe w kontekście programowania kontrolek takich jak stepper w aplikacjach mobilnych. To zdarzenie jest wywoływane zawsze, gdy wartość kontrolki zostaje zmieniona przez użytkownika, co umożliwia natychmiastowe przetwarzanie tej zmiany i aktualizację interfejsu użytkownika lub innych powiązanych komponentów. W praktyce, użycie zdarzenia ValueChanged to dobry przykład reaktywnego programowania, gdzie aplikacja reaguje na akcje użytkownika w czasie rzeczywistym. Przy implementacji takiego zdarzenia należy zadbać o poprawne sprawdzanie zakresu wartości, aby uniknąć błędów logicznych. Warto również pamiętać o optymalizacji wydajności takiej obsługi, zwłaszcza w aplikacjach złożonych z wielu komponentów zależnych od wartości steppera. Praktyczne zastosowanie tego zdarzenia można znaleźć w aplikacjach e-commerce, gdzie steppery mogą być używane do wyboru ilości produktów w koszyku, a zmiana wartości natychmiast wpływa na obliczenie ceny całkowitej. Używanie zdarzeń takich jak ValueChanged jest zgodne z dobrymi praktykami projektowania interfejsów użytkownika, poprawiając ich responsywność i interaktywność.

Pytanie 30

Jaka jest podstawowa funkcja narzędzia do zarządzania projektami?

A. Poprawa wydajności kodu programu
B. Produkcja animacji komputerowych
C. Zarządzanie zadaniami i czasem w projekcie
D. Opracowanie bazy danych dla projektu
Zarządzanie zadaniami i czasem to naprawdę kluczowa sprawa w projektach. Dzięki narzędziom takim jak Microsoft Project, Jira, Trello, czy Monday, zespoły mogą lepiej planować, przydzielać role i śledzić, co się dzieje. Możliwości tych narzędzi pozwalają ustalać deadline’y, priorytety, a nawet automatycznie przypominają o zbliżających się terminach. To super pomaga w unikaniu opóźnień i pozwala lepiej zorganizować pracę. Wizualizacja projektu w formie osi czasu czy tablicy kanban też jest mega przydatna, bo wszystko staje się bardziej czytelne.

Pytanie 31

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. operator
B. static
C. register
D. virtual
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 32

Wskaź kod, który spowoduje wyświetlenie okna dialogowego przedstawionego na ilustracji. Dla uproszczenia kodu, zrezygnowano z atrybutów znaczników

Ilustracja do pytania
A. kod 4
B. kod 1
C. kod 3
D. kod 2
Odpowiedź, którą wybrałeś, to kod 2, i nie ma co do tego wątpliwości. Dobrze, że zauważyłeś wszystkie elementy, które były w oknie dialogowym. W tym kodzie masz TextBox na górze, który pozwala na wpisanie tekstu. Dwa CheckBoxy po lewej stronie to te typowe pola wyboru, które też były widoczne. Po prawej stronie masz trzy RadioButtony, które tworzą grupę przycisków - to jest właśnie to, co powinno być. Na dole widoczny jest przycisk Button z napisem Test, co też jest zgodne z obrazkiem. Takie rozmieszczenie to klucz do stworzenia dobrego interfejsu. Wiesz, w praktyce w wielu aplikacjach używa się właśnie tych elementów do prostych formularzy. Jeżeli rozumiesz, jak te komponenty działają i jak je ze sobą łączyć, to naprawdę dobrze ci to pójdzie w przyszłości w tworzeniu ładnych i funkcjonalnych interfejsów.

Pytanie 33

Zapisany fragment w C# wskazuje na definicję klasy Car, która

Ilustracja do pytania
A. używa prywatnych pól klasy Vehicle
B. stanowi klasę bazową (nie dziedziczy z żadnej klasy)
C. dziedziczy po Vehicle
D. jest przywiązana do klasy Vehicle
W przedstawionym kodzie w języku C# mamy definicję klasy Car, która dziedziczy po klasie Vehicle. Dziedziczenie to fundamentalny mechanizm programowania obiektowego, pozwalający jednej klasie przejąć właściwości i metody innej klasy. W praktyce oznacza to, że klasa Car automatycznie zyskuje dostęp do metod i właściwości publicznych oraz chronionych klasy Vehicle, co umożliwia ponowne użycie kodu i zwiększa jego przejrzystość. Dziedziczenie jest kluczowe w projektowaniu skalowalnych systemów, gdzie umożliwia tworzenie bardziej specyficznych klas na podstawie klas ogólnych, co jest zgodne z zasadą DRY (Don't Repeat Yourself). Przykładowo, jeżeli klasa Vehicle zawiera metody takie jak Start() i Stop(), klasa Car może je wykorzystać bez konieczności ponownego definiowania. Dobre praktyki w programowaniu obiektowym zalecają wykorzystywanie dziedziczenia do tworzenia hierarchii klas, które logicznie odwzorowują relacje „jest-a” pomiędzy obiektami w systemie. Ważne jest też unikanie zbyt głębokiego dziedziczenia, co może prowadzić do skomplikowanego i trudnego w utrzymaniu kodu. Zrozumienie dziedziczenia jest kluczowe dla efektywnego wykorzystania wzorców projektowych, takich jak wzorzec projektowy Adapter czy Dekorator.

Pytanie 34

Który z wymienionych dysków oferuje najszybszy dostęp do danych?

A. SSD SATA III, prędkość odczytu do 550 MB/s
B. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s
C. HDD 5400 RPM, SATA II, 32 MB Cache
D. HDD 7200 RPM, SATA III, 64 MB Cache
Odpowiedź wskazująca na SSD NVMe PCIe 3.0 jako najszybszy dysk do odczytu danych jest zgodna z obecnymi standardami technologii przechowywania. Dyski SSD (Solid State Drive) korzystają z pamięci flash, co pozwala na znacznie szybszy dostęp do danych w porównaniu do tradycyjnych dysków HDD (Hard Disk Drive), które działają na zasadzie mechanicznych ruchomych elementów. Dyski NVMe (Non-Volatile Memory Express) są szczególnie wydajne, ponieważ wykorzystują interfejs PCIe (Peripheral Component Interconnect Express), co umożliwia znacznie wyższe prędkości transferu danych. W przypadku SSD NVMe PCIe 3.0, prędkość odczytu może osiągać do 3500 MB/s, co jest znaczącą różnicą w porównaniu do prędkości odczytu w dyskach HDD i SSD SATA. Przykładowo, w zastosowaniach takich jak edycja wideo, renderowanie grafiki 3D czy gry komputerowe, wyższa prędkość odczytu przekłada się na szybsze ładowanie danych i lepszą wydajność systemu. Standardy SATA III dla HDD również mają swoje ograniczenia, ponieważ maksymalna teoretyczna prędkość transferu wynosi 6 Gb/s, co jest dalekie od osiągów oferowanych przez NVMe. Dlatego SSD NVMe PCIe 3.0 jest zdecydowanym liderem w kontekście wydajności odczytu danych w porównaniu do pozostałych opcji.

Pytanie 35

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

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

Pytanie 36

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

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

Pytanie 37

Którą funkcję w C++ można zastosować do dynamicznego przydzielania pamięci dla tablicy?

A. free()
B. malloc()
C. delete[]
D. sizeof()
Funkcja 'malloc()' w języku C i C++ służy do dynamicznego alokowania pamięci dla tablic i innych struktur danych. Jest to kluczowa funkcja pozwalająca na przydzielenie określonej ilości bajtów w czasie wykonywania programu, co zwiększa elastyczność zarządzania pamięcią. Używając 'malloc()', programista może utworzyć tablicę o zmiennym rozmiarze, który nie musi być znany w czasie kompilacji. Dynamiczne alokowanie pamięci jest powszechnie stosowane w aplikacjach wymagających dużych ilości danych lub wtedy, gdy konieczne jest efektywne wykorzystanie zasobów systemowych.

Pytanie 38

Jakie jest podstawowe zadanie funkcji zaprzyjaźnionej w danej klasie?

A. Generowanie kopii pól obiektu w innej klasie
B. Ograniczenie widoczności atrybutów klasy
C. Umożliwienie funkcji dostępu do prywatnych atrybutów klasy
D. Dodawanie nowych instancji do klasy
Dodawanie nowych obiektów do klasy to zadanie konstruktorów, a nie funkcji zaprzyjaźnionych. Tworzenie kopii pól obiektu w innej klasie może być realizowane za pomocą mechanizmów kopiujących lub metod publicznych, ale nie jest to funkcja zaprzyjaźniona. Ograniczenie zakresu widoczności pól klasy to efekt zastosowania modyfikatorów dostępu, takich jak private, protected lub public, a nie przyjaźni klasowej.

Pytanie 39

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

A. Przesyłanie niezaszyfrowanych plików
B. Zła postawa podczas pracy przy komputerze
C. Cyberstalking
D. Nadmierne korzystanie z mediów społecznościowych
Nadmierne korzystanie z mediów społecznościowych może negatywnie wpływać na samopoczucie i prowadzić do uzależnienia, ale samo w sobie nie stanowi formy prześladowania. Zła postawa podczas pracy przy komputerze prowadzi do problemów zdrowotnych, takich jak bóle pleców i karku, a nie wpływa na sferę emocjonalną. Przesyłanie niezaszyfrowanych plików zwiększa ryzyko naruszenia danych, ale nie oddziałuje na psychikę użytkownika.

Pytanie 40

Jakie znaczenie ma poziom dostępności AAA w WCAG 2.0?

A. Najnizszy poziom dostępności
B. Najwyższy poziom dostępności
C. Dostosowanie tylko do użytkowników mobilnych
D. Średni standard dostępności
Poziom dostępności AAA w WCAG 2.0 oznacza najwyższy standard dostępności, który ma na celu zapewnienie, że treści internetowe są dostępne dla wszystkich użytkowników, w tym osób z różnymi rodzajami niepełnosprawności. WCAG, czyli Wytyczne dotyczące dostępności treści internetowych, są międzynarodowym standardem, który definiuje, jak tworzyć dostępne treści. Poziom AAA obejmuje wszystkie wytyczne z poziomów A i AA oraz dodatkowe wymagania, które są bardziej rygorystyczne. Przykładem może być konieczność zapewnienia alternatywnych opisów dla wszystkich mediów, w tym dla materiałów wideo i audio, a także użycie odpowiednich kontrastów kolorystycznych. W praktyce oznacza to, że strony internetowe muszą być projektowane z myślą o właściwej nawigacji, dostępnym oprogramowaniu czytającym oraz dostosowanych formatach tekstowych, które są łatwe do przetwarzania przez osoby z różnymi ograniczeniami. Wdrożenie poziomu AAA jest wyzwaniem, ale przyczynia się do bardziej inkluzywnego środowiska online.