Wyniki egzaminu

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

Egzamin zdany!

Wynik: 38/40 punktów (95,0%)

Wymagane minimum: 20 punktów (50%)

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

Które z wymienionych działań zwiększa bezpieczeństwo transakcji online?

A. Udostępnianie informacji o karcie kredytowej w e-mailach
B. Zastosowanie publicznego Wi-Fi do logowania się na konto bankowe
C. Weryfikowanie certyfikatów SSL na stronach zajmujących się transakcjami
D. Nieaktualizowanie oprogramowania przeglądarki
Sprawdzanie certyfikatów SSL na stronach transakcyjnych to jeden z najważniejszych kroków w zapewnieniu bezpieczeństwa transakcji internetowych. Certyfikat SSL szyfruje dane przesyłane między użytkownikiem a serwerem, chroniąc je przed przechwyceniem przez osoby trzecie. Adresy stron z certyfikatem SSL zaczynają się od 'https', co wskazuje na bezpieczne połączenie. Certyfikaty SSL zapewniają integralność danych i są podstawą dla każdej strony internetowej obsługującej płatności lub przechowującej dane użytkowników. Zignorowanie tej kwestii naraża użytkowników na ataki typu man-in-the-middle i phishing.

Pytanie 2

Jaką wartość jest w stanie przechować tablica jednowymiarowa?

A. Wiele wartości pod tym samym indeksem
B. Wartość logiczną true lub false
C. Jedną wartość
D. Wiele wartości pod różnymi indeksami
Tablica jednowymiarowa przechowuje wiele wartości pod różnymi indeksami. Każdy element tablicy jest dostępny za pomocą indeksu, co pozwala na szybkie i efektywne przechowywanie oraz przetwarzanie danych. W programowaniu tablice jednowymiarowe są podstawą do implementacji algorytmów sortowania, wyszukiwania oraz przechowywania sekwencji danych. Tego rodzaju tablice są niezwykle użyteczne w organizowaniu danych o powtarzalnej strukturze, takich jak listy imion, wyniki testów czy współrzędne.

Pytanie 3

Która z funkcji powinna zostać zrealizowana w warstwie back-end aplikacji webowej?

A. sprawdzanie formularzy w czasie rzeczywistym
B. wyświetlanie danych z formularza w przeglądarce
C. zarządzanie bazą danych
D. zarządzanie zdarzeniami elementów
Obsługa bazy danych jest fundamentalną częścią warstwy back-end w aplikacjach internetowych. Backend odpowiada za przetwarzanie logiki biznesowej, przechowywanie i zarządzanie danymi, a także komunikację z bazą danych. Dane przesyłane z front-endu (interfejsu użytkownika) są walidowane i przetwarzane po stronie serwera, zanim trafią do bazy danych lub zostaną zwrócone użytkownikowi. W przypadku aplikacji dynamicznych, serwer pobiera informacje z bazy danych, przekształca je zgodnie z wymogami aplikacji i przesyła z powrotem na front-end. Właściwe zarządzanie danymi i bezpieczeństwo operacji na bazie danych to kluczowe zadania back-endu. Równie ważne jest zapobieganie wstrzykiwaniu SQL (SQL Injection) i zapewnienie integralności danych, co stanowi podstawę skalowalnych i bezpiecznych aplikacji.

Pytanie 4

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

Jaką strukturę danych obrazuje zamieszczony kod w języku C#?

Ilustracja do pytania
A. tablicę jednowymiarową
B. listę
C. tablicę dwuwymiarową
D. stos
Kod w języku C# reprezentuje tablicę dwuwymiarową, która jest deklarowana za pomocą podwójnych nawiasów kwadratowych. Tablica taka pozwala na przechowywanie danych w formie macierzy.

Pytanie 6

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

A. px
B. pt
C. mm
D. dp
Jednostką zalecaną przy tworzeniu układów interfejsów w aplikacjach mobilnych jest dp (density-independent pixels). Pozwala to na zachowanie proporcji elementów interfejsu niezależnie od rozdzielczości urządzenia.

Pytanie 7

Który z wymienionych programów jest przeznaczony do zarządzania projektami przy pomocy tablic kanban?

A. Trello
B. Photoshop
C. Word
D. Jira
Jira to zaawansowane narzędzie do zarządzania projektami, ale jest bardziej skoncentrowane na metodykach Agile i Scrum, a nie wyłącznie na tablicach kanban. Photoshop to narzędzie do edycji grafiki i tworzenia projektów wizualnych, które nie ma funkcji zarządzania projektami. Word jest edytorem tekstu i służy do tworzenia dokumentów, ale nie jest używany jako narzędzie do zarządzania zadaniami i projektami w sposób, w jaki robi to Trello.

Pytanie 8

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

A. Google Drive
B. Slack
C. Notion
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 9

Który z wymienionych wzorców projektowych jest najbardziej odpowiedni do uproszczenia interfejsu złożonego systemu?

A. Metoda szablonowa (Template method)
B. Singleton (Singleton)
C. Fasada (Facade)
D. Kompozyt (Composite)
Wzorzec projektowy Fasada (Facade) upraszcza interfejs do złożonego systemu poprzez dostarczenie jednolitego punktu dostępu do wielu podsystemów. Dzięki temu klienci mogą korzystać z funkcji systemu za pomocą prostego interfejsu, co zwiększa czytelność kodu i ułatwia jego utrzymanie. Fasada jest szczególnie przydatna w dużych aplikacjach, gdzie wiele modułów wymaga skomplikowanej konfiguracji lub współdziałania. Wprowadzenie fasady ukrywa złożoność wewnętrzną systemu, jednocześnie zapewniając dostęp do niezbędnych funkcjonalności. To rozwiązanie jest często stosowane w systemach z wieloma interfejsami API, w architekturze mikroserwisów oraz przy integracji zewnętrznych bibliotek.

Pytanie 10

Zapisany fragment w Pythonie ilustruje:

Ilustracja do pytania
A. stos
B. strukturę danych
C. kolejkę (LIFO)
D. tablicę asocjacyjną (słownik)
Przedstawiony kod w Pythonie opisuje słownik (tablicę asocjacyjną), czyli strukturę danych przechowującą pary klucz-wartość. Słowniki są niezwykle elastyczne i efektywne, pozwalają na szybki dostęp do wartości na podstawie unikalnego klucza. Są szeroko wykorzystywane w analizie danych, przechowywaniu konfiguracji i implementacji różnorodnych algorytmów.

Pytanie 11

Jakie jest zastosowanie iteratora w zbiorach?

A. Do zmiany rodzaju zbioru w trakcie działania aplikacji
B. Do usuwania elementów ze zbioru
C. Do generowania kopii zbiorów
D. Do iterowania po elementach zbioru
Iterator w kolekcjach umożliwia przechodzenie przez elementy kolekcji w określonym porządku. Jest to abstrakcyjny obiekt, który pozwala na iterowanie po różnych strukturach danych, takich jak listy, wektory czy zbiory, bez konieczności znajomości ich wewnętrznej implementacji. Iteratory umożliwiają wykonywanie operacji na elementach kolekcji, takich jak odczyt, modyfikacja lub usuwanie, co czyni je niezwykle użytecznymi w programowaniu obiektowym. Dzięki iteratorom kod staje się bardziej czytelny i mniej podatny na błędy.

Pytanie 12

Jaką nazwę elementu interfejsu należy wprowadzić w pierwszej linii kodu, na miejscu <??? aby został on wyświetlony w podany sposób?

Ilustracja do pytania
A. Spinner
B. Switch
C. SeekBar
D. RatingBar
Kontrolka 'Switch' to taki przycisk, który służy do zmiany stanu, na przykład włączania i wyłączania czegoś. W Androidzie mamy klasę Switch, która często jest używana do aktywacji lub dezaktywacji różnych funkcji w ustawieniach aplikacji. Moim zdaniem, to bardzo przydatne narzędzie, bo pozwala użytkownikom łatwo zarządzać opcjami.

Pytanie 13

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

A. Opis procedur testowych oraz rezultaty wykonanych testów
B. Specyfikacje techniczne serwera
C. Zalecenia dotyczące optymalizacji kodu
D. Harmonogram wdrożenia aplikacji
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 14

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

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

Pytanie 15

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

A. Creative Commons
B. DMCA
C. Open Source Initiative
D. GDPR (RODO)
GDPR (RODO) to akt prawny dotyczący ochrony danych osobowych w Unii Europejskiej. Wprowadza on jednolite zasady przetwarzania danych, zwiększając ochronę prywatności obywateli. RODO daje użytkownikom prawo do dostępu do swoich danych, ich poprawiania, a także żądania ich usunięcia (prawo do bycia zapomnianym). Firmy muszą transparentnie informować o celach przetwarzania danych oraz zapewniać odpowiedni poziom zabezpieczeń. Niezastosowanie się do przepisów RODO skutkuje wysokimi karami finansowymi.

Pytanie 16

Zaproponowany fragment kodu w języku Java wypełnia tablicę elementami:

Ilustracja do pytania
A. 2, 4, 6, 8, 10, 12, 14, 16, 18, 20
B. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
C. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
D. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
Kod w języku Java wypełnia tablicę liczbami parzystymi od 2 do 20. W pętli inkrementacja wynosi 2, co skutkuje dodawaniem kolejnych parzystych liczb. To popularne rozwiązanie przy iteracji po wartościach, które mają spełniać określone warunki, np. podzielność przez 2.

Pytanie 17

W metodach klasy GoldCustomer dostępne są tylko pola

Ilustracja do pytania
A. GoldPoints, Name, Id, Age
B. GoldPoints, Name, Id
C. GoldPoints
D. GoldPoints, Name
W metodach klasy GoldCustomer widoczne są pola GoldPoints, Name i Id, co oznacza, że są one dziedziczone lub publiczne i mogą być bezpośrednio dostępne w obrębie tej klasy.

Pytanie 18

Który z wymienionych parametrów określa prędkość procesora?

A. Częstotliwość taktowania
B. Rodzaj złącza
C. Liczba rdzeni
D. Wielkość pamięci podręcznej
Częstotliwość taktowania procesora, wyrażana najczęściej w gigahercach (GHz), jest kluczowym parametrem opisującym szybkość działania jednostki centralnej. Określa, ile cykli zegara procesor jest w stanie wykonać w ciągu jednej sekundy. Wyższa częstotliwość oznacza większą ilość operacji, które procesor może przetworzyć w danym czasie, co bezpośrednio wpływa na jego wydajność. Przykładowo, procesor o częstotliwości 3,0 GHz może wykonać 3 miliardy cykli na sekundę, co sprawia, że jest w stanie przeprowadzać bardziej skomplikowane obliczenia i efektywniej zarządzać zadaniami. W praktyce jednak sama częstotliwość nie jest jedynym wskaźnikiem wydajności; istotne są też inne czynniki, takie jak architektura procesora, liczba rdzeni czy szybkość pamięci RAM. Standardy, takie jak Intel Core i9 czy AMD Ryzen 5000, dostarczają informacji na temat maksymalnej częstotliwości taktowania, co pozwala konsumentom lepiej dobierać sprzęt do swoich potrzeb. Warto również zauważyć, że wielu nowoczesnych procesorów stosuje technologię Turbo Boost, która pozwala na chwilowe zwiększenie częstotliwości w celu uzyskania lepszej wydajności przy intensywnych obciążeniach.

Pytanie 19

Jednym z kroków publikacji aplikacji mobilnej w Google Play są testy Beta, które charakteryzują się tym, że są:

A. podzielone na testy dotyczące funkcjonalności, wydajności i skalowalności
B. przeprowadzane przez grupę docelowych użytkowników aplikacji
C. realizowane przez zespół zatrudnionych testerów z Google
D. prowadzone w oparciu o dokument zawierający przypadki testowe
Testy Beta w Google Play są wykonywane przez rzeczywistych użytkowników, którzy zgłaszają błędy i proponują zmiany. Jest to kluczowy etap testowania, który pozwala na ocenę aplikacji w warunkach zbliżonych do rzeczywistego użytkowania przed oficjalną premierą. Testy te pomagają wykrywać błędy, które mogły zostać pominięte podczas testów wewnętrznych.

Pytanie 20

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

A. API REST
B. Strona HTML
C. Routing
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 21

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

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

Pytanie 22

Jakiego kodu dotyczy treść wygenerowana w trakcie działania programu Java?

Ilustracja do pytania
A. Kodu 3
B. Kodu 1
C. Kodu 4
D. Kodu 2
W przypadku kodu 4 mamy do czynienia z operatorem modulo zastosowanym na zmiennych x i y. Wiąże się to z próbą podziału przez zero co w języku Java skutkuje wygenerowaniem wyjątku java.lang.ArithmeticException. Przykładowo jeśli y wynosi zero to operacja x % y jest niedozwolona i spowoduje wyjątek. Rozumienie jak bezpiecznie wykonywać operacje arytmetyczne w Javie jest kluczowe dla unikania takich błędów. Zgodnie z dobrymi praktykami należy zawsze sprawdzać wartości zmiennych przed wykonaniem operacji matematycznych które mogą prowadzić do błędów wykonania programu. Ważne jest aby stosować techniki obsługi wyjątków try-catch które pozwalają na przechwycenie i odpowiednie zarządzanie błędami. Używanie odpowiednich testów jednostkowych może pomóc w wcześniejszym wykryciu takich problemów co jest standardem w branży programistycznej. Zrozumienie obsługi błędów w programowaniu pozwala na tworzenie bardziej niezawodnych i odpornych na błędy aplikacji co jest istotnym aspektem pracy profesjonalnego programisty.

Pytanie 23

Wykorzystując jeden z dwóch zaprezentowanych sposobów inkrementacji w językach z rodziny C lub Java, można zauważyć, że

Ilustracja do pytania
A. wartość zmiennej b będzie wyższa po użyciu drugiego zapisu w porównaniu do pierwszego
B. drugi zapis nie jest zgodny ze składnią, co doprowadzi do błędów kompilacji
C. tylko przy użyciu pierwszego zapisu, zmienna a zostanie zwiększona o 1
D. bez względu na zastosowany sposób, w zmiennej b zawsze uzyskamy ten sam rezultat
W językach programowania z rodziny C (w tym C++ i Java) istnieją dwie formy inkrementacji: preinkrementacja (++x) i postinkrementacja (x++). Preinkrementacja zwiększa wartość zmiennej przed jej użyciem w wyrażeniu, natomiast postinkrementacja zwiększa ją dopiero po zakończeniu aktualnej operacji. Oznacza to, że w przypadku postinkrementacji, wartość zmiennej przed zwiększeniem zostanie użyta w bieżącym wyrażeniu, a dopiero potem następuje jej zwiększenie o 1. Ta subtelna różnica ma istotne znaczenie, zwłaszcza w pętlach i wyrażeniach logicznych, gdzie każda iteracja wpływa na wynik. W praktyce preinkrementacja jest nieco bardziej efektywna, ponieważ nie wymaga przechowywania kopii pierwotnej wartości zmiennej, co przekłada się na minimalnie lepszą wydajność w niektórych przypadkach.

Pytanie 24

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

A. NetBeans
B. PyCharm
C. Visual Studio
D. XamarinStudio
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 25

Wskaż język programowania, który pozwala na stworzenie aplikacji mobilnej w środowisku Android Studio?

A. C++
B. Objective-C
C. Swift
D. Java
Java to jeden z podstawowych języków programowania używanych do tworzenia aplikacji mobilnych na platformę Android. Jest to język, który został stworzony przez firmę Sun Microsystems, a jego pierwsza wersja została wydana w 1995 roku. Java charakteryzuje się silnym typowaniem, obiektowością oraz wsparciem dla programowania wielowątkowego, co czyni go idealnym do tworzenia wydajnych aplikacji mobilnych. Android Studio, oficjalne zintegrowane środowisko programistyczne (IDE) dla Androida, oferuje pełne wsparcie dla Javy, w tym możliwość korzystania z bibliotek Android SDK. Dzięki temu programiści mogą łatwo tworzyć interfejsy użytkownika, zarządzać zasobami oraz implementować logikę aplikacji. Przykładowo, pisząc aplikację do zarządzania zadaniami, programista może użyć Javy do stworzenia klas modelujących zadania oraz do obsługi interfejsu graficznego z wykorzystaniem XML i Java. Ponadto, Java jest zgodna z zasadami programowania obiektowego, co pozwala na łatwe zarządzanie kodem i jego ponowne wykorzystanie. Warto również zaznaczyć, że Java jest wspierana przez dużą społeczność, co zapewnia bogaty ekosystem bibliotek oraz narzędzi, ułatwiających rozwój aplikacji na Androida.

Pytanie 26

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

A. Cyberstalking
B. Nadmierne korzystanie z mediów społecznościowych
C. Przesyłanie niezaszyfrowanych plików
D. Zła postawa podczas pracy przy komputerze
Cyberstalking to groźne zjawisko polegające na uporczywym prześladowaniu, nękaniu lub groźbach w przestrzeni internetowej. Może prowadzić do poważnych problemów emocjonalnych, takich jak lęki, depresja, a nawet zespół stresu pourazowego (PTSD). Cyberstalking narusza prywatność ofiary, wywołując poczucie zagrożenia i bezradności. Walka z tym zjawiskiem obejmuje zgłaszanie przypadków organom ścigania, blokowanie prześladowców i korzystanie z narzędzi ochrony prywatności.

Pytanie 27

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

A. Budowanie aplikacji mobilnych
B. Zarządzanie aplikacjami serwerowymi i realizacja przetwarzania asynchronicznego
C. Weryfikacja API
D. Kreowanie graficznego interfejsu użytkownika
Node.js to w zasadzie takie środowisko, które pozwala na uruchamianie JavaScriptu na serwerze. Dzięki temu można budować różne aplikacje serwerowe i radzić sobie z asynchronicznym przetwarzaniem. Fajnie, że Node.js może obsługiwać wiele połączeń jednocześnie, co sprawia, że nadaje się do aplikacji, które mają dużo użytkowników, jak czaty czy różne API. Jest to dość wydajne rozwiązanie dzięki architekturze opartej na zdarzeniach, więc nie zajmuje za dużo zasobów. Co ciekawe, używając Node.js, można pisać kod zarówno na serwerze, jak i na kliencie, co jest naprawdę dużą oszczędnością czasu.

Pytanie 28

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

A. Zastosować iterację zamiast rekurencji
B. Wykorzystać automatyczny debugger w kompilatorze
C. Dodać warunek zakończenia w funkcji
D. Rozszerzyć zakres zmiennych globalnych
Warunek stopu to taki kluczowy element w rekurencji, który właściwie mówi, kiedy funkcja powinna przestać się wywoływać. Jak masz ten warunek, to funkcja wraca z wynikiem zamiast kręcić się w kółko, co mogłoby prowadzić do jakiegoś szaleństwa, tzn. przepełnienia stosu. Myślę, że warto zwrócić uwagę, że dodanie tego warunku to naprawdę podstawowa sprawa w programowaniu, bo bez niego wszystko może się posypać i przestanie działać tak, jak powinno.

Pytanie 29

Jakie elementy zostaną wyświetlone w przeglądarce po wykonaniu kodu źródłowego stworzonego za pomocą dwóch funkcjonalnie równoważnych fragmentów?

Ilustracja do pytania
A. jeden paragraf zawierający wszystkie elementy tablicy tags w kolejności
B. jeden paragraf z pierwszym elementem tablicy tags
C. Trzy paragrafy, każdy odpowiadający kolejnemu elementowi tablicy tags
D. trzy paragrafy, w każdym z nich tekst o treści: {tag}
Kod generuje trzy paragrafy, każdy z kolejnym elementem tablicy tags. Jest to standardowy sposób iteracji po elementach tablicy i renderowania ich jako oddzielnych elementów HTML. W praktyce, takie podejście jest szeroko stosowane w aplikacjach frontendowych, gdzie dynamicznie tworzone elementy interfejsu użytkownika są generowane na podstawie tablic lub list danych. Każdy element tablicy jest iterowany i osobno przekształcany w znacznik HTML, co pozwala na łatwe zarządzanie i aktualizowanie treści strony w czasie rzeczywistym. To podejście jest zgodne z najlepszymi praktykami dotyczącymi manipulacji DOM i zapewnia wysoką wydajność aplikacji.

Pytanie 30

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

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

Pytanie 31

W środowisku IDE przeznaczonym do tworzenia aplikacji okienkowych zdefiniowano okno Form1. Aby wprowadzić zmiany w ustawieniach, w kolejności: tytuł okna na górnym pasku, standardowy kursor na strzałkę oraz kolor tła okna, należy dostosować następujące pola w oknie Properties:

Ilustracja do pytania
A. Text, Cursor, BackColor
B. (Name), UseWaitCursor, BackgroundImage
C. Text, UseWaitCursor, BackColor
D. (Name), Cursor, BackgroundImage
Jak chcesz zmienić nazwę okna, kursor czy kolor tła w IDE, to trzeba popracować nad polami, czyli 'Text' (to jest nazwa), 'Cursor' (czyli kursor) i 'BackColor' (to kolor tła). Te ustawienia są kluczowe, bo dzięki nim możesz nadać swojemu oknu wygląd, który ci odpowiada, albo taki, który pasuje do wymagań projektu.

Pytanie 32

Jakie jest poprawne określenie interfejsu (szablonu klasy) w języku Java?

Ilustracja do pytania
A. Definicja 3
B. Definicja 4
C. Definicja 2
D. Definicja 1
W języku Java interfejs określa zbiór abstrakcyjnych metod, które klasa implementująca musi zaimplementować. Poprawna definicja interfejsu nie zawiera zmiennych instancji ani konstruktorów, co jest błędem w pierwszej definicji. Interfejsy służą do deklarowania metod, które są automatycznie publiczne i abstrakcyjne. W czwartej definicji, interfejs IMyInterface zawiera dwie metody mth1 i mth2 bez implementacji, co jest zgodne z zasadami Javy. Metody w interfejsie nie mają ciał, co wskazuje, że są przeznaczone do implementacji w klasie, która zadeklaruje się jako implementująca ten interfejs. Interfejsy są kluczowe dla polimorfizmu w Javie, pozwalając na tworzenie kodu, który może pracować z obiektami różnych klas w jednolity sposób, o ile klasy te implementują wspólny interfejs. Zastosowanie interfejsów zwiększa spójność i elastyczność kodu, umożliwiając łatwe dodawanie nowych funkcjonalności bez ingerencji w istniejącą strukturę kodu. Interfejsy są także wykorzystywane do tworzenia klasycznych wzorców projektowych jak Adapter, Strategia czy Obserwator, co jest dobrą praktyką w programowaniu obiektowym.

Pytanie 33

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="navbar-nav" > ... < /ul>
B. < ol class="a, .nav-item" > ... < /ol>
C. < ul class="a, .nav-item" > ... < /ul>
D. < ol class="navbar-nav" > ... < /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 34

W zaprezentowanym fragmencie kodu występuje błąd logiczny. Na czym on polega?

Ilustracja do pytania
A. nieprawidłowym warunku pętli, który sprawia, że pętla jest nieskończona
B. niepoprawnym użyciu funkcji cout, co skutkuje tym, że zmienna jest wczytywana w pętli
C. braku zainicjowania zmiennej x, co powoduje, że zmienna nie ma wartości początkowej
D. niewłaściwym warunku pętli, co powoduje, że pętla nigdy się nie wykona
Nieprawidłowy warunek pętli powoduje, że staje się ona nieskończona, co jest częstym problemem w programowaniu. W tym przypadku warunek while(x != 0 || x != 5) jest zawsze prawdziwy, ponieważ dla każdej wartości x, która nie jest jednocześnie równa 0 i 5, pętla nigdy się nie zakończy. To logiczny błąd, ponieważ zmienna x nigdy nie osiągnie stanu, w którym oba warunki będą jednocześnie fałszywe. W praktyce powinno się stosować warunki logiczne, które mogą stać się fałszywe dla jakiegoś stanu zmiennych, co pozwala pętli zakończyć działanie. Częstym wzorcem jest użycie operatora && zamiast ||, aby sprawdzić, czy zmienna osiągnęła konkretny zakres wartości. W ten sposób można zagwarantować, że program nie wejdzie w nieskończoną pętlę. Tego typu błędy są często wykrywane podczas testowania i debugowania kodu, a ich unikanie jest kluczowe w zapewnieniu poprawnego działania aplikacji. Dobre praktyki obejmują dokładne przemyślenie warunków pętli i testowanie ich w różnych scenariuszach.

Pytanie 35

W wyniku realizacji zaprezentowanego kodu na ekranie pojawią się

Ilustracja do pytania
A. elementy z indeksów tablicy, które są podzielne przez 3
B. elementy tablicy o indeksach: 1, 2, 4, 5, 7, 8
C. wszystkie elementy tablicy, które mają wartość nieparzystą
D. wszystkie elementy tablicy, które są wielokrotnością 3
Kod pokazuje elementy tablicy, które mają konkretne indeksy, takie jak 1, 2, 4, 5, 7 i 8. To efekt przechodzenia przez tablicę i wybierania tylko tych elementów, które spełniają określone warunki. Filtrowanie tablic w ten sposób jest dość powszechne w programowaniu, więc to całkiem popularna technika.

Pytanie 36

Który z wymienionych objawów może sugerować nagłe zagrożenie dla zdrowia?

A. Intensywne pocenie się w gorącym otoczeniu
B. Zwiększona efektywność pracy
C. Ostry ból w klatce piersiowej
D. Obniżony nastrój w ciągu dnia
Ostry ból w klatce piersiowej to jeden z najbardziej alarmujących objawów wskazujących na nagłe zagrożenie zdrowotne, takie jak zawał serca lub zatorowość płucna. Tego rodzaju ból jest często opisywany jako gniotący, ściskający lub rozlewający się na inne części ciała, takie jak ramię, szyja czy żuchwa. W takich przypadkach kluczowe jest szybkie wezwanie pomocy medycznej, ponieważ każda minuta opóźnienia może zwiększyć ryzyko powikłań lub śmierci. Edukacja w zakresie rozpoznawania tego objawu może uratować życie, dlatego tak ważne jest rozróżnianie go od innych mniej groźnych objawów.

Pytanie 37

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

A. delete[]
B. sizeof()
C. free()
D. malloc()
Funkcja 'free()' służy do zwalniania pamięci zaalokowanej dynamicznie przez 'malloc()', ale nie alokuje pamięci. Funkcja 'sizeof()' zwraca rozmiar typu lub obiektu, ale nie alokuje pamięci dynamicznie – jest wykorzystywana do określania ilości pamięci potrzebnej dla danego typu. 'Delete[]' jest operatorem w C++, który usuwa tablicę dynamicznie zaalokowaną przy użyciu 'new[]', ale nie alokuje pamięci – jest to mechanizm zwalniania pamięci, a nie jej przydzielania.

Pytanie 38

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

A. Aplikacja do monitorowania użycia pamięci RAM
B. Aplikacja do analizy danych finansowych
C. Aplikacja z rozbudowanym systemem zarządzania projektami
D. Aplikacja typu zegar
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 39

Który z algorytmów ma złożoność O(n<sup>2</sup>)?

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

Pytanie 40

Jaki framework jest powszechnie wykorzystywany do rozwijania aplikacji desktopowych w języku C++?

A. Flutter
B. Node.js
C. WPF
D. Qt
Qt to jeden z najczęściej używanych frameworków do tworzenia aplikacji desktopowych w języku C++. Dzięki Qt programiści mogą budować aplikacje wieloplatformowe (Windows, macOS, Linux) z jednolitym interfejsem użytkownika. Qt oferuje szeroką gamę narzędzi do tworzenia graficznych interfejsów użytkownika (GUI), obsługi baz danych, aplikacji sieciowych oraz animacji. Framework ten jest ceniony za wydajność, stabilność i możliwość pisania kodu raz, a następnie kompilowania go na różne platformy. Qt umożliwia również tworzenie aplikacji mobilnych i wbudowanych, co czyni go niezwykle uniwersalnym narzędziem dla programistów C++.