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:36

Egzamin zdany!

Wynik: 34/40 punktów (85,0%)

Wymagane minimum: 20 punktów (50%)

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

Który z poniższych kodów realizuje przedstawiony fragment algorytmu?

Ilustracja do pytania
A. Kod 2
B. Kod 1
C. Kod 3
D. Kod 4
Kod 3 jest poprawną implementacją przedstawionego algorytmu. Jego struktura i sposób działania odpowiadają założeniom algorytmu, co prowadzi do uzyskania prawidłowego wyniku.

Pytanie 2

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. 6
B. 596
C. 5.96
D. 5
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 3

Jaką wartość przyjmie etykieta label po wykonaniu podanego kodu, gdy zostanie on uruchomiony po naciśnięciu przycisku w aplikacji?

Ilustracja do pytania
A. liczby z przedziału od 0 do 100
B. suma liczb parzystych z przedziału od 0 do 100
C. liczby parzyste z przedziału od 0 do 100
D. suma liczb z przedziału od 0 do 100
Kod oblicza i zapisuje sumę liczb parzystych z przedziału od 0 do 100. Pętla iteruje przez kolejne liczby i dodaje te, które spełniają warunek parzystości, zapewniając poprawne wyniki.

Pytanie 4

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

A. System e-commerce
B. System CMS
C. System ERP
D. System CRM
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 5

Jaki kod może być związany z treścią wygenerowaną w trakcie działania programu Java?

Ilustracja do pytania
A. Kodu 4
B. Kodu 2
C. Kodu 3
D. Kodu 1
Kod 4 jest prawidłowym rozwiązaniem generującym przedstawioną treść. Prawidłowo wykorzystuje składnię i logikę języka Java, co skutkuje poprawnym działaniem programu i zgodnym wynikiem w konsoli.

Pytanie 6

Jakie cechy posiada model prototypowy w zakresie zarządzania projektami?

A. Przygotowaniem wersji systemu w ograniczonym zakresie w celu uzyskania opinii od użytkownika
B. Szczegółowym planowaniem każdego etapu projektu przed jego realizacją
C. Rozwojem produktu w sposób iteracyjny w krótkich cyklach
D. Realizowaniem pełnej wersji produktu przed przeprowadzeniem testów
Model prototypowy w zarządzaniu projektami to taka sprytna technika, gdzie tworzymy coś w rodzaju wczesnej wersji systemu, czyli prototypu. To nam pozwala zebrać opinie od użytkowników i przetestować różne pomysły zanim w ogóle weźmiemy się za pełną wersję. Fajną sprawą jest to, że gdy mamy ten prototyp, to łatwiej wyłapać błędy, zanim wszystko zostanie w pełni zbudowane. Największa zaleta? Możemy dostosować i poprawiać aplikację na podstawie tego, co mówią użytkownicy. Dzięki temu ryzyko, że stworzymy coś, co nie spełnia ich oczekiwań, jest znacznie mniejsze. Prototypy to często chleb powszedni w projektach UX/UI, aplikacjach webowych czy oprogramowaniu dla firm, gdzie tak istotne jest, by dobrze trafiać w potrzeby końcowych użytkowników.

Pytanie 7

Jaki model zarządzania projektami przewiduje, że wszystkie etapy są realizowane jeden po drugim, bez możliwości wrócenia do wcześniejszych faz?

A. Metodyki zwinne (Agile)
B. Model spiralny
C. Model kaskadowy (waterfall)
D. Model przyrostowy
Model spiralny pozwala na wielokrotne przechodzenie przez różne fazy projektu, co daje większą elastyczność. Model przyrostowy umożliwia realizację projektu w etapach, co pozwala na dostarczanie częściowych wersji produktu. Metodyki zwinne (Agile) opierają się na iteracjach i umożliwiają powrót do poprzednich etapów, w zależności od potrzeb i informacji zwrotnych od klienta.

Pytanie 8

Do form komunikacji werbalnej zalicza się

A. mówienie
B. pozycja ciała
C. gestykulacja
D. wyraz twarzy
Mówienie jest formą komunikacji werbalnej, która obejmuje przekazywanie informacji za pomocą słów. Jest to podstawowy sposób wyrażania myśli, instrukcji i emocji w bezpośredniej interakcji z innymi osobami.

Pytanie 9

Jakie z wymienionych narzędzi służy do emulacji mobilnych urządzeń podczas developowania aplikacji?

A. Genymotion
B. Numpy
C. TensorFlow
D. Postman
TensorFlow to biblioteka do uczenia maszynowego i analizy danych, ale nie jest narzędziem do emulacji urządzeń mobilnych. Postman to narzędzie do testowania API i komunikacji z serwerami, co jest przydatne w kontekście backendu, ale nie służy do emulacji urządzeń mobilnych. Numpy to biblioteka do obliczeń numerycznych w Pythonie, która nie ma związku z testowaniem aplikacji mobilnych na różnych urządzeniach. Genymotion wyróżnia się jako dedykowane narzędzie do symulacji środowiska mobilnego, umożliwiające testowanie w czasie rzeczywistym na wielu wirtualnych urządzeniach.

Pytanie 10

Który z wymienionych algorytmów najczęściej wykorzystuje rekurencję?

A. Sortowanie przez wstawianie
B. Wyszukiwanie liniowe
C. Sortowanie bąbelkowe
D. Obliczanie liczb Fibonacciego
Algorytmy obliczania liczb Fibonacciego są jednym z najbardziej klasycznych przykładów rekurencji. Algorytm ten polega na wywoływaniu funkcji, która sama odwołuje się do siebie, aby obliczyć kolejne liczby w sekwencji. Rekurencyjna natura obliczeń Fibonacciego sprawia, że algorytm jest prosty i intuicyjny w implementacji, choć może być mniej wydajny niż wersje iteracyjne. Rekurencja jest szeroko stosowana w problemach matematycznych i algorytmicznych, gdzie rozwiązanie większego problemu można uzyskać poprzez rozwiązywanie mniejszych, podobnych podproblemów.

Pytanie 11

Modyfikator dostępu znajdujący się przed definicją metody Dodaj() w klasie Kalkulator sprawia, że:

Ilustracja do pytania
A. jest ona możliwa do wykorzystania w programie głównym i można ją wywołać na instancji klasy Kalkulator
B. nie jest ona osiągalna w klasach, które dziedziczą po klasie Kalkulator
C. jest ona dostępna zarówno w samej klasie, jak i w klasach dziedziczących po klasie Kalkulator
D. nie jest ona dostępna z poziomu klas, które są zaprzyjaźnione z klasą Kalkulator
Modyfikator dostępu w C# to taki fajny element, który pozwala, żeby metoda Dodaj() była dostępna nie tylko w klasie Kalkulator, ale też w klasach, które dziedziczą po niej. To naprawdę ważne w programowaniu obiektowym, bo dzięki temu możesz rozbudowywać funkcje klasy bazowej, nie grzebiąc w jej kodzie. To w sumie daje większą elastyczność i ułatwia ponowne wykorzystywanie fragmentów kodu w różnych częściach aplikacji.

Pytanie 12

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

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

Pytanie 13

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

Ilustracja do pytania
A. Shareware
B. Freeware
C. OEM
D. Open Source
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 14

Aplikacje webowe stworzone z użyciem frameworka Angular lub biblioteki React, działające na standardowych portach, można uruchomić na lokalnym serwerze, wpisując w przeglądarkę

A. localhost:3000 (React) lub localhost:4200 (Angular)
B. localhost:8080 (React) lub localhost:8000 (Angular)
C. localhost:5001 (React) lub localhost:8080 (Angular)
D. localhost:8000 (React) lub localhost:49887 (Angular)
Domyślne porty dla aplikacji tworzonych w React to localhost:3000, a dla Angular to localhost:4200. Te ustawienia pozwalają na szybkie uruchomienie aplikacji na lokalnym serwerze podczas fazy deweloperskiej. React i Angular to popularne technologie do budowy nowoczesnych aplikacji webowych, a korzystanie z domyślnych portów upraszcza proces testowania i wdrażania.

Pytanie 15

Z analizy złożoności obliczeniowej algorytmów sortowania dla dużych zbiorów danych (powyżej 100 elementów) wynika, że najefektywniejszą metodą jest algorytm sortowania:

Ilustracja do pytania
A. przez zliczanie
B. przez scalanie
C. kubełkowego
D. bąbelkowego
Sortowanie przez zliczanie (Counting Sort) to jeden z najszybszych algorytmów sortowania dla dużych zbiorów danych, jeśli zakres wartości jest ograniczony. Algorytm działa w czasie O(n+k), gdzie n to liczba elementów, a k to zakres wartości. Jest to algorytm stabilny, co oznacza, że zachowuje kolejność elementów o tej samej wartości. Counting Sort jest szczególnie efektywny w przypadku danych numerycznych o ograniczonym przedziale wartości, co czyni go idealnym rozwiązaniem do sortowania dużych zbiorów danych w krótkim czasie.

Pytanie 16

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

A. Klikanie w podejrzane linki w wiadomościach e-mail
B. Aktywacja uwierzytelniania dwuskładnikowego
C. Cykliczna zmiana haseł do kont
D. Tworzenie unikalnych oraz mocnych haseł
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 17

Podana deklaracja zmiennych w języku JAVA zawiera

Ilustracja do pytania
A. dwie zmienne typu tekstowego, dwie całkowite oraz jedną logiczną
B. jedną zmienną typu tekstowego, dwie całkowite, jedną znakową i jedną logiczną
C. dwie zmienne o typie strukturalnym
D. jedną zmienną typu tekstowego, jedną rzeczywistą, jedną całkowitą, jedną znakową oraz jedną logiczną
Deklaracja obejmuje jedną zmienną typu napisowego (String), dwie typu całkowitego (int), jedną znakowego (char) oraz jedną logiczną (boolean). Takie zróżnicowanie pozwala na przechowywanie różnych rodzajów danych w jednej klasie lub metodzie.

Pytanie 18

Jakie znaczenie ma określenie "klasa zaprzyjaźniona" w kontekście programowania obiektowego?

A. Klasa, która nie ma możliwości zawierania metod statycznych
B. Klasa, która może być dziedziczona przez inne klasy
C. Klasa, która ma dostęp do prywatnych i chronionych elementów innej klasy
D. Klasa, w której wszystkie komponenty są publiczne
Klasa zaprzyjaźniona (ang. 'friend class') to klasa, która ma dostęp do prywatnych i chronionych składowych innej klasy, dzięki specjalnej deklaracji 'friend' wewnątrz tej klasy. Jest to kluczowe narzędzie w programowaniu obiektowym, które umożliwia ściślejszą współpracę między klasami, jednocześnie zapewniając hermetyzację kodu w miejscach, gdzie jest to wymagane. Używanie klas zaprzyjaźnionych umożliwia bardziej efektywne zarządzanie zależnościami między klasami, co jest istotne w dużych projektach programistycznych. Klasy zaprzyjaźnione są często stosowane w bibliotekach standardowych i frameworkach, pozwalając na eleganckie rozwiązania problemów związanych z ukrywaniem implementacji i udostępnianiem tylko niezbędnych fragmentów kodu innym komponentom systemu.

Pytanie 19

Aby tworzyć aplikacje desktopowe w języku Java, można wybrać jedno z poniższych środowisk

A. Ms Visual Studio
B. NetBeans
C. PyCharm
D. SharpDevelop
NetBeans to środowisko IDE dedykowane do programowania aplikacji desktopowych w języku Java. Obsługuje różne projekty, w tym aplikacje graficzne, serwisy sieciowe i narzędzia analityczne.

Pytanie 20

Jakie informacje przedstawia diagram Gantta?

A. Model przepływu danych
B. Plan działań w projekcie
C. Strukturę plików w projekcie
D. Relacje między różnymi projektami
Diagram Gantta to narzędzie używane do wizualizacji harmonogramu zadań w projekcie. Przedstawia on zadania w układzie osi czasu, co pozwala na łatwe śledzenie terminów, zależności i etapów realizacji projektu. Diagram Gantta jest niezwykle przydatny w dużych projektach, ponieważ ułatwia planowanie zasobów i umożliwia identyfikowanie potencjalnych opóźnień. Dzięki czytelnej formie, managerowie mogą szybko ocenić, które zadania są w trakcie realizacji, a które są opóźnione. Diagramy Gantta są szeroko stosowane w zarządzaniu projektami budowlanymi, IT oraz w planowaniu kampanii marketingowych.

Pytanie 21

Co to jest framework?

A. narzędzie przeznaczone do opracowywania, edytowania, testowania i uruchamiania oprogramowania
B. platforma programistyczna oferująca określone komponenty oraz narzucająca szkielet lub metodologię tworzenia aplikacji
C. zbiór procedur, danych oraz złożonych typów danych używanych w kodzie źródłowym aplikacji
D. oprogramowanie, które za pomocą metody drag and drop pozwala na stworzenie interfejsu aplikacji
Framework to platforma programistyczna, która dostarcza gotowe komponenty i narzuca określony sposób tworzenia aplikacji. Ułatwia rozwój oprogramowania, eliminując potrzebę pisania kodu od zera.

Pytanie 22

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ół suchego oka
B. dyskopatia
C. kifoza
D. zespół cieśni kanału nadgarstka
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 23

Który z wymienionych składników jest charakterystyczny dla środowiska IDE przeznaczonego do tworzenia aplikacji mobilnych?

A. Kompilator, debugger, emulator urządzenia mobilnego
B. Narzędzia do analizy danych, serwer webowy, przeglądarka internetowa
C. Edytor graficzny, narzędzia analityczne, klient FTP
D. Edytor tekstowy, przeglądarka internetowa, system kontroli wersji
Kompilator, debugger i emulator urządzenia mobilnego to podstawowe narzędzia w każdym środowisku IDE przeznaczonym do tworzenia aplikacji mobilnych. Kompilator jest odpowiedzialny za przekształcenie kodu źródłowego na plik wykonywalny, co pozwala na uruchomienie aplikacji na urządzeniu. Debugger umożliwia wykrywanie i eliminowanie błędów, co jest kluczowe dla prawidłowego działania aplikacji. Emulator pozwala na symulowanie działania aplikacji na różnych urządzeniach i systemach, co ułatwia testowanie bez potrzeby fizycznego dostępu do wielu modeli telefonów czy tabletów. Taki zestaw narzędzi jest standardem w Android Studio, XCode oraz Visual Studio, co umożliwia pełen cykl tworzenia aplikacji mobilnych – od kodowania, przez testowanie, aż po wdrażanie.

Pytanie 24

W zamieszczonej ramce znajdują się notatki testera dotyczące przeprowadzanych testów aplikacji. Jakiego typu testy planuje przeprowadzić tester?

Ilustracja do pytania
A. Wydajnościowe
B. Jednostkowe
C. Interfejsu
D. Bezpieczeństwa
Testy wydajnościowe są kluczowe dla zapewnienia, że system działa sprawnie pod różnym obciążeniem. Są one wykonywane, aby zrozumieć, jak aplikacja zachowuje się w warunkach rzeczywistych, kiedy wiele użytkowników korzysta z niej jednocześnie. W pytaniu wymienione zostały zadania takie jak mierzenie czasu logowania się użytkowników oraz sprawdzanie, czy czas ten wzrasta wraz ze wzrostem liczby użytkowników. To typowe aspekty testów wydajnościowych. Takie testy pomagają określić limity skalowalności i zapewniają, że aplikacja może obsługiwać oczekiwaną liczbę użytkowników bez spadku wydajności. Standardy branżowe, takie jak ISO/IEC 25010, zwracają uwagę na konieczność testowania wydajności, by zidentyfikować potencjalne wąskie gardła i zapewnić satysfakcjonujące doświadczenia użytkownikom. Dobrymi praktykami są używanie narzędzi takich jak JMeter czy LoadRunner, które umożliwiają symulację obciążenia i analizę wyników w celu optymalizacji kodu i infrastruktury. Tego typu testy są nieodzowne przed wdrożeniem aplikacji produkcyjnej, aby zapewnić jej niezawodne działanie.

Pytanie 25

Jakie z wymienionych czynności można zrealizować przy pomocy składnika statycznego danej klasy?

A. Wywołanie destruktora klasy bez jej usuwania
B. Tworzenie prywatnych kopii pól dla każdej instancji
C. Zachowanie wartości wspólnych dla wszystkich instancji klasy
D. Umożliwienie dzielenia pól klasy pomiędzy zaprzyjaźnione klasy
Tworzenie prywatnych kopii pól dla każdego obiektu to cecha pól niestatycznych – każda instancja klasy ma swoją własną kopię takich pól. Dzielenie pól klasy pomiędzy zaprzyjaźnione klasy nie odnosi się do mechanizmu statycznego – przyjaźń między klasami pozwala na dostęp do prywatnych składowych, ale nie oznacza współdzielenia pól między instancjami. Destruktory nie mogą być wywoływane w sposób statyczny – są one automatycznie uruchamiane w momencie usunięcia obiektu, a nie przez klasę jako całość.

Pytanie 26

Jaką istotną właściwość ma algorytm rekurencyjny?

A. Jest podzielony na wiele niezwiązanych funkcji
B. Funkcjonuje tylko w przypadku tablic dynamicznych
C. Wywołuje się wielokrotnie w jednej iteracji
D. Zawiera wywołanie samego siebie
Kluczową cechą algorytmu rekurencyjnego jest to, że zawiera on wywołanie samego siebie. Rekurencja pozwala na eleganckie i zwięzłe rozwiązanie problemów, które można podzielić na mniejsze, powtarzające się podproblemy. Każde wywołanie rekurencyjne zmniejsza złożoność problemu, aż do osiągnięcia przypadku bazowego, który kończy dalsze wywołania i rozpoczyna proces zwracania wyników w górę stosu wywołań. Rekurencja znajduje zastosowanie w algorytmach takich jak DFS (przeszukiwanie w głąb), sortowanie szybkie (QuickSort) oraz algorytmy obliczające wartości liczb Fibonacciego i silni.

Pytanie 27

Która z wymienionych metod jest najodpowiedniejsza do wizualizacji procesu podejmowania decyzji?

A. Lista kroków
B. Schemat blokowy
C. Drzewo decyzyjne
D. Pseudokod
Schemat blokowy to jedna z najlepszych metod wizualnego przedstawienia procesu decyzyjnego. Umożliwia graficzne odwzorowanie przepływu operacji i decyzji, co czyni go niezwykle przydatnym narzędziem w analizie i projektowaniu algorytmów. Dzięki użyciu różnych kształtów (np. prostokątów dla operacji, rombów dla decyzji) schemat blokowy pozwala jasno i czytelnie przedstawić logikę działania programu lub systemu. Jest szeroko stosowany w inżynierii oprogramowania, zarządzaniu projektami oraz nauczaniu podstaw algorytmiki. Pozwala zidentyfikować potencjalne błędy i optymalizować procesy jeszcze przed rozpoczęciem implementacji.

Pytanie 28

Co następuje, gdy błąd nie zostanie uchwycony przez blok catch?

A. Instrukcja throw zostanie automatycznie wykreślona
B. Program kontynuuje działanie, pomijając błąd
C. Błąd zostanie zignorowany przez kompilator
D. Program zakończy działanie z błędem
Jeśli wyjątek nie zostanie przechwycony przez blok 'catch', program zakończy działanie z błędem i wygeneruje komunikat o nieobsłużonym wyjątku. Jest to domyślne zachowanie w C++ i innych językach obsługujących wyjątki, co ma na celu zapobieganie dalszemu wykonywaniu kodu, który mógłby prowadzić do nieprzewidywalnych rezultatów. Obsługa wyjątków jest kluczowym elementem zapewniania stabilności i bezpieczeństwa aplikacji – brak jej implementacji może prowadzić do awarii programu. Dlatego zaleca się, aby zawsze stosować odpowiednie bloki 'try-catch' wokół kodu, który może generować wyjątki.

Pytanie 29

Zgodnie z dokumentacją dotyczącą menu Navbar z biblioteki Bootstrap 4, w celu stworzenia menu należy zdefiniować listę

Ilustracja do pytania
A. < ul class="a, .nav-item" > ... < /ul>
B. < ul class="navbar-nav" > ... < /ul>
C. < ol class="navbar-nav" > ... < /ol>
D. < ol class="a, .nav-item" > ... < /ol>
Aby utworzyć menu nawigacyjne w Bootstrap 4, należy użyć listy <ul class="navbar-nav">. Tego typu struktura pozwala na tworzenie dynamicznych i responsywnych pasków nawigacyjnych, które automatycznie dostosowują się do różnych rozdzielczości ekranu.

Pytanie 30

Które z wymienionych działań, które są częścią procesu kreowania prostej galerii zdjęć w formie aplikacji mobilnej, powinno być realizowane przez zespół?

A. Stworzenie dokumentacji kodu aplikacji
B. Wdrożenie funkcji dodajZdjecie()
C. Przygotowanie testu jednostkowego dla funkcji przegladajZdjecia()
D. Przygotowanie i konfiguracja repozytorium dla projektu
Utworzenie dokumentacji kodu aplikacji jest zadaniem zespołowym, gdyż wymaga współpracy kilku osób, które muszą zrozumieć ogólną architekturę projektu oraz zasady, jakie powinny zostać zastosowane w dokumentacji. Dokumentacja kodu jest kluczowa dla przyszłej konserwacji i rozwoju aplikacji, a jej przygotowanie powinno obejmować nie tylko opis funkcji i klas, ale także konwencje nazewnictwa, style kodowania oraz strategie testowania. Przykładem może być zastosowanie standardu JSDoc, który pozwala na generowanie dokumentacji z komentarzy w kodzie, co ułatwia zrozumienie struktury i funkcjonowania aplikacji. Dobra dokumentacja zapewnia, że nowi członkowie zespołu będą mogli szybko odnaleźć się w projekcie. Zespołowa praca nad dokumentacją gwarantuje, że wszystkie aspekty projektu zostaną uwzględnione i odpowiednio udokumentowane, co jest niezbędne dla efektywności projektu.

Pytanie 31

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

A. Zastosowanie tej samej nazwy metody w klasie bazowej i pochodnej, ale z inną implementacją w klasie pochodnej
B. Tworzenie nowej metody w klasie bazowej
C. Przenoszenie metod z jednej klasy do drugiej
D. Zmiana metody prywatnej na metodę publiczną
Definiowanie nowej metody w klasie bazowej to zwykła deklaracja metody i nie jest to przesłanianie. Zamiana metody prywatnej na publiczną to zmiana modyfikatora dostępu, a nie przesłanianie. Kopiowanie metod z jednej klasy do innej nie jest związane z przesłanianiem – kopiowanie kodu narusza zasadę DRY (Don't Repeat Yourself) i jest rzadko stosowane w dobrze zaprojektowanych aplikacjach obiektowych.

Pytanie 32

Wskaż algorytm sortowania, który nie jest stabilny?

A. sortowanie przez zliczanie
B. sortowanie szybkie
C. sortowanie bąbelkowe
D. sortowanie przez wstawianie
Sortowanie bąbelkowe (Bubble Sort) jest stabilne, ponieważ nie zmienia kolejności elementów o równej wartości. Sortowanie przez wstawianie (Insertion Sort) również zachowuje stabilność. Sortowanie przez zliczanie (Counting Sort) to algorytm stabilny, szczególnie efektywny dla danych o ograniczonym zakresie wartości.

Pytanie 33

Jaką rolę pełni debugger w trakcie programowania?

A. Do wykrywania błędów w czasie działania programu
B. Do kontrolowania wersji kodu źródłowego
C. Do automatycznego generowania dokumentacji projektu
D. Do konwersji kodu źródłowego na język maszynowy
Debugger to takie narzędzie, które pomaga programistom w znajdowaniu błędów i śledzeniu, co się dzieje z programem, kiedy go uruchamiamy. Można go zatrzymać w dowolnym momencie, co nazywamy breakpoints, i wtedy można zobaczyć, jakie zmienne mają jakie wartości. Dzięki temu można łatwiej dostrzegać błędy logiczne czy składniowe. Wydaje mi się, że to naprawdę ważne narzędzie w pracy każdego programisty, bo ułatwia życie!

Pytanie 34

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

A. Algorytm wyszukiwania binarnego
B. Algorytm sortowania bąbelkowego
C. Algorytm generowania liczb losowych
D. Algorytm mapowania kluczy w tablicach asocjacyjnych
Algorytm wyszukiwania binarnego może być zaimplementowany zarówno iteracyjnie, jak i rekurencyjnie. Wyszukiwanie binarne polega na podzieleniu przeszukiwanej tablicy na dwie części i porównaniu elementu środkowego z wartością, której szukamy. Jeśli element nie zostanie znaleziony, algorytm przeszukuje jedną z połówek tablicy. Rekurencyjna wersja tego algorytmu jest często bardziej elegancka i prostsza w implementacji, natomiast iteracyjna bywa bardziej wydajna pod względem zużycia pamięci.

Pytanie 35

Jakie są różnice między konstruktorem a zwykłą metodą w klasie?

A. Konstruktor można wywołać bez konieczności tworzenia obiektu
B. Konstruktor zawsze nosi tę samą nazwę co klasa i nie zwraca wartości
C. Konstruktor jest uruchamiany jedynie przez destruktor
D. Konstruktor powinien zwracać jakąś wartość
Konstruktor różni się od zwykłych metod klasy tym, że nosi taką samą nazwę jak klasa i nie zwraca żadnej wartości, nawet `void`. Konstruktor jest wywoływany automatycznie podczas tworzenia obiektu i nie można go wywołać ręcznie jak zwykłą metodę. Jego zadaniem jest inicjalizacja pól obiektu i przygotowanie go do działania. Przykład w C++: `class Samochod { public: Samochod() { marka = "Ford"; } }`. W przeciwieństwie do innych metod konstruktor nie wymaga deklaracji typu zwracanego, co jest jedną z jego najbardziej charakterystycznych cech.

Pytanie 36

W standardzie dokumentacji testów oprogramowania IEEE 829-1998 opisany jest dokument, który zawiera dane o tym, jakie przypadki testowe były wykorzystane, przez kogo i czy zakończyły się sukcesem. Co to jest?

A. Plan Testów
B. Dziennik Testów
C. Raport Podsumowujący Testy
D. Specyfikacja Procedury Testowej
Test Plan to dokument opisujący strategię i zakres testów, ale nie zawiera bieżących logów z wykonania testów. Test Procedure Specification definiuje kroki wykonania testów, ale nie przechowuje informacji o ich wynikach. Test Summary Report to podsumowanie testów, ale powstaje po ich zakończeniu, a nie w trakcie wykonywania.

Pytanie 37

Jakie zastosowanie ma język Swift w zakresie aplikacji mobilnych?

A. Do tworzenia aplikacji na system iOS
B. Do tworzenia aplikacji na system Android
C. Do przeprowadzania testów aplikacji mobilnych
D. Do zarządzania bazami danych w aplikacjach mobilnych
Swift to język programowania stworzony przez Apple, który służy do tworzenia aplikacji na system iOS, macOS, watchOS i tvOS. Swift został zaprojektowany z myślą o nowoczesnym i bezpiecznym programowaniu, eliminując wiele typowych błędów spotykanych w Objective-C, takich jak null pointer exceptions. Dzięki swojej wydajności, przejrzystej składni i integracji z XCode, Swift stał się standardem w ekosystemie Apple. Język wspiera interaktywną platformę Playground, co umożliwia szybkie testowanie kodu, a także pełną integrację z narzędziami Apple, co czyni go niezbędnym narzędziem dla deweloperów aplikacji na iPhone'y i iPady.

Pytanie 38

Zaprezentowany diagram Gantta odnosi się do projektu IT. Przy założeniu, że każdy członek zespołu dysponuje wystarczającymi umiejętnościami do realizacji każdego z zadań oraz że do każdego zadania można przypisać jedynie jedną osobę, która poświęci na zadanie pełny dzień pracy, to minimalna liczba członków zespołu powinna wynosić:

Ilustracja do pytania
A. 5 osób
B. 1 osobę
C. 2 osoby
D. 4 osoby
Diagram Gantta przedstawia harmonogram projektu, gdzie poszczególne zadania są przypisane do konkretnych dni. W sytuacji, gdy każdy członek zespołu jest w stanie wykonać dowolne zadanie, minimalna liczba osób potrzebna do realizacji projektu to liczba równoczesnych zadań w najbardziej wymagającym momencie. Kluczowe jest tu równomierne rozłożenie pracy i unikanie przestojów, co zapewnia efektywne wykorzystanie zasobów.

Pytanie 39

Jakie oprogramowanie służy jako przykład programu do komunikacji audio-wideo?

A. Notion
B. Slack
C. Google Drive
D. Microsoft Teams
Microsoft Teams to naprawdę fajne narzędzie do komunikacji. Łączy w sobie czat, wideo i audio, więc wszystko masz w jednym miejscu. Zostało stworzone przez Microsoft, żeby ułatwić współpracę w zespołach. To idealne, gdy trzeba prowadzić spotkania online z kilkoma osobami. Myślę, że to super rozwiązanie dla firm, które pracują zdalnie. Dzięki WebRTC jakość transmisji audio i wideo jest naprawdę wysoka. Można w nim organizować spotkania, webinary, a nawet stworzyć przestrzeń dla zespołów projektowych, gdzie można dzielić się plikami i prowadzić dyskusje. A jak jeszcze połączysz go z innymi aplikacjami Microsoft 365, jak OneNote czy SharePoint, to masz pełny zestaw do zarządzania projektami. Dobrze też, że Microsoft Teams dba o ochronę danych osobowych, więc jest bezpieczny dla różnych organizacji.

Pytanie 40

Przyjmując, że opisana hierarchia klas właściwie odzwierciedla figury geometryczne i każda figura ma zdefiniowaną metodę do obliczania pola, to w której klasie można znaleźć deklarację metody liczPole()?

Ilustracja do pytania
A. trójkąt
B. trapez
C. figura
D. czworokąt
Metoda liczPole() znajduje się w klasie 'figura', ponieważ jest to klasa bazowa reprezentująca wspólne cechy dla wszystkich figur geometrycznych. Dziedziczenie tej metody przez klasy pochodne pozwala na zachowanie spójności kodu.