Wyniki egzaminu

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

Egzamin niezdany

Wynik: 1/40 punktów (2,5%)

Wymagane minimum: 20 punktów (50%)

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

Jakie są różnice między kompilatorem a interpretem?

A. Interpreter konwertuje kod źródłowy na język maszynowy przed jego kompilacją
B. Kompilator przekształca kod źródłowy na język maszynowy przed uruchomieniem aplikacji
C. Interpreter tworzy plik wykonywalny, który funkcjonuje niezależnie od otoczenia
D. Kompilator przetwarza kod na język maszynowy w momencie jego wykonywania
Kompilator nie tłumaczy kodu w trakcie jego działania, bo to już zadanie interpretera. Interpreter przetwarza kod linijka po linijce podczas działania programu. Z tego powodu nie tworzy plików wykonywalnych, program po prostu działa w czasie rzeczywistym, a to sprawia, że działa wolniej. Mówiąc krótko, tłumaczenie kodu przed kompilacją to nie jest to, co się robi – kompilacja to proces, który tworzy plik wykonywalny z kodu źródłowego. Dlatego interpreter nie generuje żadnych niezależnych plików, tylko analizuje i wykonuje kod od razu.

Pytanie 2

Programista może wykorzystać framework Angular do realizacji aplikacji

A. typu front-end
B. desktopowej
C. mobilnej
D. typu back-end
Angular to naprawdę fajny framework, stworzony przez Google, który głównie skupia się na tworzeniu aplikacji webowych po stronie klienta, czyli na front-endzie. Umożliwia programistom tworzenie dynamicznych i interaktywnych interfejsów użytkownika. Dzięki tej modularnej budowie, można łatwo zarządzać różnymi częściami aplikacji, co jest super przydatne. Z własnego doświadczenia mogę powiedzieć, że Angular świetnie nadaje się do aplikacji jednoekranowych (SPA), bo pozwala na ładowanie danych asynchronicznie. Przykładem może być aplikacja do zarządzania projektami, gdzie użytkownik może dodawać, edytować i usuwać zadania bez przeładowywania strony. Angular integruje się też z RxJS, co sprawia, że zarządzanie zdarzeniami i strumieniami danych staje się efektywniejsze. Warto również dodać, że Angular CLI pozwala szybko generować komponenty i inne elementy aplikacji, co przyspiesza cały proces tworzenia i pomaga utrzymać spójność projektu.

Pytanie 3

Jaki jest kluczowy zamysł wzorca "Kompozyt" (Composite)?

A. Umożliwienie klientom obsługi obiektów oraz ich zbiorów w spójny sposób
B. Danie możliwości dynamicznej zmiany zachowania obiektu
C. Stworzenie jednej klasy do zarządzania wieloma obiektami tego samego rodzaju
D. Określenie interfejsu komunikacji pomiędzy składnikami systemu

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wzorzec Kompozyt (Composite) pozwala na obsługę zarówno pojedynczych obiektów, jak i ich grup w jednolity sposób. Jest to szczególnie przydatne w przypadku hierarchicznych struktur danych, takich jak drzewa. Dzięki temu klienci mogą traktować pojedynczy element i grupę elementów identycznie, co upraszcza kod i eliminuje potrzebę pisania oddzielnych metod dla różnych poziomów hierarchii. Composite często znajduje zastosowanie w systemach GUI (graficzne interfejsy użytkownika), gdzie komponenty interfejsu (np. przyciski, panele, okna) mogą być organizowane w zagnieżdżone struktury.

Pytanie 4

W przypadku przedstawionego fragmentu kodu Java, wyjątek zostanie zgłoszony, gdy wartość zmiennej index wyniesie:

Ilustracja do pytania
A. 0
B. 5
C. 7
D. 1

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W podanym kodzie Java mamy do czynienia z tablicą o nazwie liczby zawierającą sześć elementów: {1 2 3 4 5 6}. Indeksy tablicy w Javie zaczynają się od 0 a kończą na n-1 gdzie n to długość tablicy. W tym przypadku tablica ma długość 6 a więc jej indeksy to 0 1 2 3 4 i 5. Kiedy próbujemy uzyskać dostęp do elementu tablicy za pomocą indeksu równego długości tablicy lub większego np. 6 w tym przypadku otrzymujemy wyjątek ArrayIndexOutOfBoundsException. Jest to standardowe zachowanie w języku Java mające na celu ochronę przed błędami związanymi z nieprawidłowym dostępem do pamięci. Tego rodzaju błędy mogą prowadzić do nieprzewidywalnych zachowań programów dlatego obsługa takich wyjątków jest dobrą praktyką programistyczną. Kod zawiera blok try-catch który przechwytuje wszelkie wyjątki w tym przypadku i drukuje komunikat aby poinformować użytkownika o błędzie. Takie podejście jest zgodne z zasadami bezpiecznego programowania oraz ułatwia debugging i zarządzanie błędami w aplikacjach produkcyjnych.

Pytanie 5

Metodyka zwinna (ang. agile) opiera się na

A. dekompozycji przedsięwzięcia na elementy, które są niezależnie projektowane, wytwarzane i testowane w krótkich iteracjach
B. podzieleniu projektu na kolejne etapy: planowanie, programowanie, testowanie, z ciągłym oszacowaniem ryzyka projektu
C. zaplanowaniu całej aplikacji na początku projektu i jej tworzeniu na przemian z testowaniem
D. przygotowaniu testów dla całego projektu, a następnie wprowadzaniu kolejnych jego fragmentów

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Metodyka zwinna (agile) polega na podziale projektu na mniejsze części (iteracje), które są projektowane, implementowane i testowane w krótkich cyklach. Takie podejście pozwala na szybkie reagowanie na zmieniające się wymagania klientów i wprowadzanie poprawek na bieżąco. Agile promuje bliską współpracę z klientem, co minimalizuje ryzyko nieporozumień i zwiększa szanse na stworzenie produktu spełniającego jego oczekiwania. Zamiast czekać na zakończenie całego projektu, poszczególne części aplikacji są dostarczane i testowane stopniowo, co skraca czas wdrożenia i umożliwia szybkie wykrycie błędów. Popularnymi frameworkami bazującymi na Agile są Scrum i Kanban, które organizują pracę zespołu w iteracyjne sprinty lub zadania wizualizowane na tablicach Kanban.

Pytanie 6

Która z metod zarządzania projektami jest najbardziej odpowiednia, gdy w początkowej fazie projektu zakres nie jest w pełni określony, wymagania mogą zmieniać się podczas realizacji, a także mogą wystąpić nowe potrzeby?

A. Model kaskadowy
B. Agile
C. Model V
D. PRINCE2

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Metodyka Agile jest najbardziej optymalna w przypadku niejasnych wymagań na początku projektu. Agile pozwala na iteracyjne wprowadzanie zmian, dostosowując się do nowych wymagań w trakcie trwania projektu. Jest to elastyczne podejście, które sprzyja szybkiemu reagowaniu na potrzeby klienta.

Pytanie 7

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

Ilustracja do pytania
A. OEM
B. Open Source
C. Shareware
D. Freeware

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 8

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

A. Angular
B. ASP.NET Core
C. jQuery
D. Django

Brak odpowiedzi na to pytanie.

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

Pytanie 9

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

A. Nieaktualizowanie oprogramowania przeglądarki
B. Weryfikowanie certyfikatów SSL na stronach zajmujących się transakcjami
C. Udostępnianie informacji o karcie kredytowej w e-mailach
D. Zastosowanie publicznego Wi-Fi do logowania się na konto bankowe

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 10

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

A. DMCA
B. Creative Commons
C. Open Source Initiative
D. GDPR (RODO)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 11

Które z wymienionych narzędzi najlepiej chroni dane na urządzeniach mobilnych?

A. Zainstalowanie aplikacji rozrywkowych
B. Nieaktualne oprogramowanie
C. Hasło ustawione na urządzeniu
D. Szyfrowanie danych na urządzeniu

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Szyfrowanie danych na urządzeniu przenośnym to jedna z najskuteczniejszych metod zabezpieczania poufnych informacji. Szyfrowanie przekształca dane w formę, która jest nieczytelna dla osób nieposiadających odpowiedniego klucza deszyfrującego. Dzięki temu, nawet jeśli urządzenie zostanie zgubione lub skradzione, dane pozostają zabezpieczone przed nieautoryzowanym dostępem. Szyfrowanie to standardowa praktyka stosowana przez największe firmy technologiczne i jest zalecana we wszystkich urządzeniach przenośnych, takich jak laptopy i smartfony.

Pytanie 12

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

A. Realizacja instrukcji (Execution)
B. Rozkodowanie rozkazu (Decode)
C. Pobranie rozkazu z pamięci (Fetch)
D. Zapis wyników do pamięci (Write Back)

Brak odpowiedzi na to pytanie.

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

Pytanie 13

Który z wymienionych elementów można zdefiniować jako psychofizyczny?

A. Stres i monotonia pracy
B. Nadmiar światła w miejscu pracy
C. Zanieczyszczenie powietrza
D. Promieniowanie elektromagnetyczne

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Czynniki psychofizyczne w środowisku pracy obejmują takie elementy jak stres, monotonia pracy oraz nadmierne obciążenie organizmu. Są to zagrożenia, które mogą prowadzić do wypalenia zawodowego, depresji, spadku koncentracji i zwiększonego ryzyka popełniania błędów. Stres i monotonia pracy to jedne z najczęstszych psychofizycznych zagrożeń, które mogą wpływać nie tylko na zdrowie psychiczne, ale również na fizyczne samopoczucie pracownika. W celu ich minimalizacji organizacje wdrażają programy wsparcia psychologicznego, zapewniają przerwy, rotację obowiązków i dbają o dobrą atmosferę w pracy. Kluczowe jest także odpowiednie zarządzanie czasem pracy i eliminowanie monotonnych zadań na rzecz bardziej zróżnicowanych obowiązków.

Pytanie 14

Początkowym celem środowisk IDE takich jak: lntellij IDEA, Eclipse, NetBeans jest programowanie w języku

A. C++
B. Java
C. C#
D. Python

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Środowiska IDE, takie jak IntelliJ IDEA, Eclipse oraz NetBeans, zostały zaprojektowane z myślą o programowaniu w języku Java, który jest jednym z najpopularniejszych języków programowania na świecie. Te zintegrowane środowiska deweloperskie oferują szereg narzędzi i funkcji, które znacznie ułatwiają proces tworzenia aplikacji w Java. Przykładowo, IntelliJ IDEA, stworzony przez firmę JetBrains, dostarcza wsparcie dla automatycznego uzupełniania kodu, refaktoryzacji oraz analizy statycznej, co przyspiesza cykl rozwoju oprogramowania. Eclipse, będący otwartym oprogramowaniem, umożliwia rozszerzanie swoich funkcji poprzez wtyczki, co czyni go elastycznym narzędziem dla programistów. NetBeans, z kolei, zapewnia łatwe w użyciu interfejsy oraz wsparcie dla wielu technologii związanych z Java, takich jak JavaFX czy Java EE, co czyni go idealnym wyborem dla rozwoju aplikacji webowych i desktopowych. Zgodnie z przyjętymi standardami w branży, Java jest językiem obiektowym, który charakteryzuje się wysoką przenośnością oraz bezpieczeństwem, co czyni go atrakcyjnym wyborem dla wielu projektów komercyjnych oraz edukacyjnych.

Pytanie 15

Które z wymienionych poniżej błędów podczas wykonywania programu można obsłużyć poprzez zastosowanie wyjątków?

A. Błąd kompilacyjny
B. Błąd dzielenia przez zero
C. Błąd w składni
D. Niekompatybilność typów danych w kodzie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W języku C++ wyjątki pozwalają na obsługę błędów wykonania, takich jak dzielenie przez zero. Jest to klasyczny przykład błędu, który może prowadzić do nieprzewidywalnych rezultatów lub awarii programu. Dzięki użyciu wyjątków można zapobiec katastrofalnym skutkom takich błędów, przekierowując sterowanie do odpowiedniego bloku 'catch', gdzie można podjąć działania naprawcze lub zakończyć program w kontrolowany sposób. Obsługa błędów takich jak dzielenie przez zero jest kluczowa w programowaniu niskopoziomowym i aplikacjach wymagających wysokiej niezawodności.

Pytanie 16

Które z podejść do tworzenia aplikacji najlepiej uwzględnia przyszłe zmiany w funkcjonalności?

A. Tworzenie bez wcześniejszej specyfikacji technicznej
B. Pisanie kodu bez jakiejkolwiek dokumentacji
C. Skupienie się tylko na estetce aplikacji
D. Zastosowanie modularnej architektury aplikacji

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Użycie modularnej architektury aplikacji to najlepsze podejście do projektowania systemów, które muszą uwzględniać przyszłe modyfikacje funkcjonalności. Modularność pozwala na podział aplikacji na mniejsze, niezależne komponenty, które mogą być rozwijane, testowane i aktualizowane niezależnie od siebie. Takie podejście zwiększa elastyczność, ułatwia zarządzanie kodem i pozwala na szybkie wdrażanie nowych funkcji bez konieczności ingerencji w cały system. Architektura modularna jest szczególnie przydatna w dużych projektach, gdzie zmiany są częste, a wymagania dynamicznie się zmieniają.

Pytanie 17

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

A. zmiennoprzecinkowy
B. logiczny
C. łańcuchowy
D. stałoprzecinkowy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ DECIMAL w języku MySQL jest używany do przechowywania liczb dziesiętnych z określoną precyzją. Przy definiowaniu tego typu danych wymagane jest określenie dwóch głównych parametrów: długości całkowitej liczby, czyli liczby cyfr przed przecinkiem, oraz długości części dziesiętnej, czyli liczby cyfr po przecinku. Taki zapis ma postać DECIMAL(M, D), gdzie M to maksymalna liczba cyfr, a D to liczba cyfr po przecinku. Przykład zastosowania to: DECIMAL(10, 2), co oznacza, że liczba może mieć maksymalnie 10 cyfr, z czego 2 cyfry będą po przecinku. Typ DECIMAL jest szczególnie przydatny w aplikacjach finansowych, gdzie precyzja obliczeń jest kluczowa, aby uniknąć błędów zaokrągleń, które mogą występować w przypadku typów zmiennoprzecinkowych. Standardy dotyczące typów danych w SQL, takie jak SQL:2008, również uznają znaczenie precyzyjnych reprezentacji liczbowych, co sprawia, że DECIMAL jest preferowany w wielu zastosowaniach. Warto dodać, że MySQL pozwala na elastyczność w definiowaniu długości, co umożliwia optymalne dostosowanie do specyficznych wymagań aplikacji.

Pytanie 18

Która z poniższych deklaracji w języku C++ poprawnie opisuje tablicę dwuwymiarową?

A. int matrix[];
B. int matrix[3][3];
C. int matrix[3];
D. int matrix[3][3][3];

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Deklaracja 'int matrix[3][3];' poprawnie definiuje tablicę dwuwymiarową w języku C++. Tablice dwuwymiarowe to kluczowe narzędzie do przechowywania macierzy i danych tabelarycznych. Każdy element macierzy jest dostępny poprzez dwa indeksy, co umożliwia łatwe odwzorowanie układów współrzędnych lub plansz w grach. Tablice tego rodzaju są wykorzystywane w algorytmach obliczeniowych, grafice komputerowej oraz analizie danych. Struktura 'matrix[3][3]' tworzy siatkę 3x3, która może przechowywać 9 elementów, co czyni ją efektywnym rozwiązaniem dla problemów wymagających przestrzennych danych.

Pytanie 19

Wskaż typy numeryczne o stałej precyzji

A. int, short, long
B. float, double
C. long long, long double
D. bool char, string

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typy stałoprzecinkowe, takie jak int, short i long, przechowują liczby całkowite bez części ułamkowej. Są to podstawowe typy danych w wielu językach programowania, używane do przechowywania liczb całkowitych różnej wielkości.

Pytanie 20

Jakie są główne różnice między środowiskiem RAD (Rapid Application Development) a klasycznymi IDE w odniesieniu do aplikacji mobilnych?

A. RAD koncentruje się wyłącznie na procesie debugowania aplikacji
B. RAD działa tylko na urządzeniach z systemem iOS
C. RAD nie obsługuje interfejsu użytkownika
D. RAD pozwala na szybsze budowanie aplikacji dzięki narzędziom do wizualnego designu i automatycznego generowania kodu

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
RAD (Rapid Application Development) umożliwia szybsze tworzenie aplikacji mobilnych dzięki narzędziom do wizualnego projektowania i automatycznego generowania kodu. RAD koncentruje się na iteracyjnym podejściu do rozwoju oprogramowania, w którym prototypy są budowane i testowane w krótkich cyklach, co pozwala na szybkie dostosowywanie aplikacji do zmieniających się wymagań użytkowników. W kontekście aplikacji mobilnych, RAD skraca czas tworzenia poprzez graficzne narzędzia do budowy interfejsów, gotowe komponenty oraz integrację z backendem. Frameworki RAD, takie jak OutSystems, Mendix czy Flutter, pozwalają na szybkie wdrażanie i modyfikację aplikacji mobilnych, co znacząco zwiększa efektywność programistów.

Pytanie 21

Jakie jest główne zadanie debuggera w środowisku programowania?

A. Generowanie plików wykonywalnych
B. Analiza i usuwanie błędów w kodzie
C. Tworzenie kodu źródłowego
D. Kompilowanie kodu źródłowego

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Debugger to narzędzie programistyczne służące do analizy i usuwania błędów w kodzie źródłowym. Pozwala na krokowe wykonywanie programu, śledzenie wartości zmiennych i identyfikowanie miejsc, w których występują błędy logiczne lub składniowe. Debugger umożliwia zatrzymanie wykonania programu w dowolnym miejscu, ustawienie tzw. breakpointów (punktów przerwania) i monitorowanie przepływu sterowania. Dzięki temu programista może dokładnie przeanalizować, dlaczego program nie działa zgodnie z oczekiwaniami i szybko znaleźć przyczynę problemu. Debuggery są dostępne w większości zintegrowanych środowisk programistycznych (IDE), takich jak Visual Studio, PyCharm czy IntelliJ IDEA.

Pytanie 22

W programie stworzonym w języku C++ trzeba zadeklarować zmienną, która będzie przechowywać wartość rzeczywistą. Jakiego typu powinna być ta zmienna?

A. numeric
B. number
C. int
D. double

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Typ zmiennej 'double' przechowuje liczby rzeczywiste (zmiennoprzecinkowe) w języku C++. Jest to najczęściej używany typ do operacji wymagających precyzji, takich jak obliczenia matematyczne czy fizyczne. Double oferuje większą dokładność niż 'float' i jest standardem w większości aplikacji.

Pytanie 23

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

A. Gorączka oraz dreszcze
B. Ból brzucha po spożyciu posiłku
C. Spadek nastroju
D. Intensywny ból w klatce piersiowej promieniujący do lewej ręki

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 24

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

Ilustracja do pytania
A. 4
B. 2 lub 3
C. 3
D. 1 lub 5

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Algorytm numer 4 w tabeli złożoności obliczeniowej działa najszybciej, co wynika z jego niskiej złożoności czasowej. Algorytmy o niższej złożoności są bardziej efektywne przy dużych zbiorach danych.

Pytanie 25

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

A. HDD 7200 RPM, SATA III, 64 MB Cache
B. SSD SATA III, prędkość odczytu do 550 MB/s
C. HDD 5400 RPM, SATA II, 32 MB Cache
D. SSD NVMe PCIe 3.0, prędkość odczytu do 3500 MB/s

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 26

Co oznacza walidacja kodu programu?

A. Czynnością polegającą na kompilowaniu kodu
B. Czynnością związaną z tworzeniem dokumentacji kodu
C. Czynnością weryfikującą poprawność i zgodność kodu z założeniami
D. Czynnością dotyczącą publikacji aplikacji w sklepie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Walidacja kodu programu to proces sprawdzania jego poprawności i zgodności z założeniami projektowymi oraz standardami programistycznymi. Celem walidacji jest wykrycie błędów logicznych, składniowych i zgodności kodu z wymaganiami aplikacji. Walidacja może obejmować analizę statyczną kodu (bez jego wykonywania) oraz testy jednostkowe i integracyjne, które sprawdzają funkcjonalność aplikacji. Dzięki walidacji programiści mogą uniknąć błędów na późniejszych etapach rozwoju projektu, co znacząco zwiększa niezawodność i stabilność aplikacji. Proces ten jest nieodzowny w metodykach Agile i Continuous Integration, gdzie regularne testowanie kodu stanowi podstawę dostarczania wysokiej jakości oprogramowania.

Pytanie 27

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

A. Microsoft Teams
B. Google Drive
C. Notion
D. Slack

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 28

Które z wymienionych atrybutów klasy mogą być dostępne wyłącznie w obrębie tej klasy oraz jej klas potomnych?

A. Static
B. Private
C. Protected
D. Public

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Modyfikator `protected` pozwala na dostęp do pól i metod klasy w ramach tej samej klasy oraz w klasach dziedziczących. Jest to pośredni poziom dostępu między `private` i `public`. Pola `protected` są ukryte przed innymi klasami spoza hierarchii dziedziczenia, ale pozostają dostępne w klasach pochodnych. Dzięki temu dziedziczenie staje się bardziej elastyczne, umożliwiając klasom potomnym korzystanie z chronionych elementów klasy bazowej. Przykład w C++: `class Pojazd { protected: int predkosc; }`. Klasy dziedziczące po `Pojazd` mogą używać `predkosc`, ale obiekty nie mają bezpośredniego dostępu do tego pola.

Pytanie 29

Jakie są kluczowe różnice pomiędzy strukturą (struct) a unią (union) w języku C?

A. Struktura wymaga więcej miejsca w pamięci niż unia
B. Struktura przechowuje wiele wartości równocześnie, unia tylko jedną
C. Unia umożliwia dynamiczne przypisywanie typów danych, struktura natomiast nie
D. Unia nie jest obsługiwana przez kompilatory współczesnych języków

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Główna różnica między strukturą ('struct') a unią ('union') w języku C polega na sposobie przechowywania danych. Struktura przechowuje wszystkie pola jednocześnie, przydzielając każdemu z nich osobne miejsce w pamięci, natomiast unia używa wspólnej przestrzeni pamięci dla wszystkich swoich pól – w danym momencie można przechowywać tylko jedną wartość. Unia jest bardziej efektywna pod względem pamięci, ale mniej wszechstronna, ponieważ zmiana wartości jednego pola nadpisuje pozostałe. Struktury są powszechnie wykorzystywane w aplikacjach, gdzie konieczne jest przechowywanie wielu niezależnych danych, podczas gdy unie są używane do oszczędzania pamięci.

Pytanie 30

Która z wymienionych bibliotek pozwala na obsługę zdarzeń związanych z myszą w aplikacjach desktopowych?

A. Numpy
B. TensorFlow
C. Qt
D. Django

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Qt to jedna z najpopularniejszych bibliotek, która umożliwia obsługę zdarzeń myszy i klawiatury w aplikacjach desktopowych. Dzięki Qt możliwe jest tworzenie interaktywnych aplikacji, które reagują na kliknięcia, przesunięcia kursora oraz inne zdarzenia generowane przez urządzenia wejściowe. Qt oferuje obszerną dokumentację i gotowe klasy, takie jak QPushButton, QLabel czy QSlider, które mogą nasłuchiwać zdarzeń i dynamicznie zmieniać stan aplikacji. Co więcej, Qt pozwala na implementację niestandardowych zdarzeń i tworzenie zaawansowanych interfejsów graficznych, które są w pełni interaktywne i responsywne.

Pytanie 31

Jakie rezultaty pojawią się po uruchomieniu poniższego kodu napisanego w języku C++?

Ilustracja do pytania
A. Pochodna. Pochodna.
B. Bazowa. Bazowa.
C. Bazowa. Pochodna.
D. Pochodna. Bazowa.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kod wyświetla 'Pochodna. Pochodna.', co wskazuje, że metody klasy pochodnej przejęły kontrolę nad tymi z klasy bazowej. To fajny przykład polimorfizmu, jaki mamy w C++. Tutaj metoda w klasie pochodnej jest lepsza od metody w klasie bazowej. To, jakie wywołanie się wykona, zależy od konkretnego obiektu, a nie od tego, jaką metodę zdefiniowaliśmy w klasie bazowej.

Pytanie 32

Przykład wywołania funkcji zamien w języku C++ może wyglądać w następujący sposób

Ilustracja do pytania
A. zamien(m,n); //m,n - zmienne całkowite
B. zamien(&a, &b); //x,y - zmienne całkowite
C. zamien(*a, *b); //a,b - zmienne całkowite
D. zamien(12, 34)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wywołanie funkcji 'zamien' w formie zamien(&a, &b) jest poprawne, ponieważ przekazuje adresy zmiennych jako argumenty, co pozwala na modyfikację ich wartości w funkcji. Jest to standardowa technika używana w języku C++ do przekazywania parametrów przez wskaźniki lub referencje.

Pytanie 33

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. Model przyrostowy
B. Metodyki zwinne (Agile)
C. Model spiralny
D. Model kaskadowy (waterfall)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Model kaskadowy (Waterfall) zakłada, że każda faza projektu jest realizowana sekwencyjnie, bez możliwości powrotu do wcześniejszych etapów. Każda faza musi zostać zakończona przed rozpoczęciem kolejnej, co sprawia, że model ten jest przewidywalny i dobrze nadaje się do projektów o jasno określonych wymaganiach. Dzięki temu ryzyko błędów jest minimalizowane na wczesnym etapie, co zwiększa stabilność projektu. Waterfall jest często stosowany w projektach infrastrukturalnych i rządowych, gdzie istotna jest dokładność i zgodność z pierwotnym planem.

Pytanie 34

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

A. iOS: utworzyć katalogi hdpi, lhpi, xhpi i dodać do nich grafiki. Android: utworzyć katalogi 32x32, 64x64, 96x96 i dodać do nich grafiki
B. iOS: dodać do nazw plików sufiksy @2x, @3x. Android: umieścić grafikę w odpowiednich folderach drawable: -hdpi, -xhpi, xxhdpi
C. iOS: dodać do nazw sufiksy #2x, #3x. Android: dodać do nazw sufiks rozdzielczości: -32x32, -64x64, -96x96
D. iOS: dodać do nazw sufiksy oznaczające rozdzielczość, np. 32ppi. Android: umieścić grafikę w odpowiednich katalogach: 32ppi, 64ppi, 96ppi

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kiedy chcemy, żeby grafiki w aplikacjach mobilnych wyglądały dobrze na różnych ekranach, musimy zastosować odpowiednie strategie, które zależą od platformy. Na iOS używa się przyrostków @2x lub @3x, co oznacza, że grafiki są przygotowane dla ekranów Retina, które mają wyższą gęstość pikseli. Na Androidzie z kolei, grafiki umieszcza się w folderach drawable z takimi nazwami jak -hdpi, -xhdpi czy -xxhdpi. Dzięki temu system wie, jaką wersję grafiki wybrać w zależności od rozdzielczości urządzenia. Moim zdaniem, taki system pozwala na super jakość obrazów i lepszą wydajność aplikacji.

Pytanie 35

Algorytm zaprezentowany w zadaniu można zrealizować w języku Java wykorzystując instrukcję

Ilustracja do pytania
A. while
B. if
C. try
D. switch

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Pętla while w języku Java jest idealna do implementacji algorytmów, które wymagają wielokrotnego wykonywania bloku kodu dopóki określony warunek logiczny pozostaje prawdziwy. W przedstawionym schemacie blokowym widzimy iteracyjny proces, który zaczyna się od przypisania wartości 2 do zmiennej number, a następnie kontynuuje dodawanie 2 do tej zmiennej tak długo, jak długo jej wartość nie osiągnie 10. Struktura ta jest typowym przykładem problemu, który najlepiej rozwiązać za pomocą pętli while. Wyrażenie warunkowe number != 10 jest sprawdzane przed każdą iteracją pętli, co umożliwia zakończenie pętli w momencie, gdy warunek przestaje być prawdziwy. To podejście jest zgodne z dobrymi praktykami programistycznymi, które zalecają minimalizowanie niepotrzebnych obliczeń i zwiększanie czytelności kodu. Pętle while są często stosowane w sytuacjach, gdy liczba iteracji nie jest z góry znana i zależy od dynamicznie zmieniających się warunków, co czyni je wszechstronnym narzędziem w wielu aplikacjach, od przetwarzania danych po kontrolę przepływu w symulacjach komputerowych. Praktyczna znajomość pętli pozwala na efektywne rozwiązywanie problemów w złożonych projektach informatycznych.

Pytanie 36

Jakie narzędzie można wykorzystać do stworzenia mobilnej aplikacji cross-platform w języku C#?

A. bibliotekę React Native
B. platformę Xamarin
C. środowisko Android Studio
D. środowisko XCode

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Xamarin to platforma umożliwiająca tworzenie aplikacji mobilnych typu cross-platform w języku C#. Umożliwia programistom tworzenie aplikacji działających na Androidzie i iOS z wykorzystaniem jednego kodu źródłowego. Xamarin integruje się z Visual Studio, co pozwala na efektywne budowanie aplikacji mobilnych w ekosystemie Microsoftu.

Pytanie 37

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

A. Jedną wartość
B. Wartość logiczną true lub false
C. Wiele wartości pod tym samym indeksem
D. Wiele wartości pod różnymi indeksami

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 38

Która z poniższych informacji o pojęciu obiekt jest prawdziwa?

A. obiekt jest instancją klasy
B. obiekt to typ złożony
C. obiekt pozwala na zdefiniowanie klasy
D. obiekt oraz klasa są identyczne

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Obiekt to instancja klasy, co oznacza, że klasa działa jako szablon lub plan, a obiekt jest jej konkretnym przykładem. W programowaniu obiektowym klasa definiuje właściwości i metody, które mogą być wykorzystywane przez obiekty. Obiekty są podstawą manipulacji danymi i interakcji w aplikacjach obiektowych, co umożliwia enkapsulację, dziedziczenie i polimorfizm. Każdy obiekt ma swoją unikalną tożsamość, stan i zachowanie, co pozwala na modelowanie rzeczywistych bytów w kodzie.

Pytanie 39

Jaką kategorię reprezentuje typ danych "array"?

A. Typ danych złożony
B. Typ wskaźników
C. Typ logiczny
D. Typ danych prosty

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Tablica ('array') jest przykładem złożonego typu danych, który pozwala na przechowywanie wielu wartości tego samego typu pod wspólną nazwą. Każdy element tablicy jest dostępny za pomocą indeksu, co umożliwia szybkie i efektywne operacje na dużych zbiorach danych. Tablice są szeroko wykorzystywane w programowaniu do przechowywania list, macierzy i innych struktur, gdzie konieczne jest przechowywanie dużych ilości danych tego samego rodzaju. Dzięki tablicom można zorganizować dane w sposób uporządkowany, co ułatwia ich przetwarzanie, sortowanie i wyszukiwanie.

Pytanie 40

Jakie jest zadanie interpretera?

A. wykonywanie skryptu krok po kroku
B. analiza składni całego programu przed jego uruchomieniem
C. optymalizacja większej części kodu, aby przyspieszyć jego wykonanie
D. tłumaczenie kodu na kod maszynowy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Interpreter to takie narzędzie, które wykonuje kod linijka po linijce. Działa to tak, że odczytuje program napisany w języku wysokiego poziomu, weryfikuje co tam w nim siedzi i od razu realizuje polecenia, co sprawia, że można fajnie testować kod. Na przykład w Pythonie można łatwo sprawdzić różne fragmenty kodu, co jest mega pomocne przy pisaniu i poprawianiu oprogramowania. Wiesz, od kompilatora różni się tym, że kompilator przetwarza cały kod od razu, tworząc kod maszynowy, który później działa na komputerze. Dzięki temu interpreter jest bardziej elastyczny, można szybko przetestować nowe pomysły, ale z drugiej strony, czasami nie działa tak efektywnie jak skompilowane programy, bo każda linia kodu jest analizowana na bieżąco. Więc w przypadku dużych i wymagających aplikacji lepiej sprawdzają się kompilatory, ale interpreter to skarb, zwłaszcza w nauce i prototypowaniu.