Wyniki egzaminu

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

Egzamin niezdany

Wynik: 13/40 punktów (32,5%)

Wymagane minimum: 20 punktów (50%)

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

Przedstawiony fragment dotyczy funkcji resize w języku C++. Ta funkcja obniży długość elementu string, gdy wartość parametru

Ilustracja do pytania
A. n jest mniejsza od aktualnej długości łańcucha
B. c jest większa od aktualnej długości łańcucha
C. n jest większa od aktualnej długości łańcucha
D. c jest mniejsza od aktualnej długości łańcucha
Parametr c nie ma bezpośredniego wpływu na długość łańcucha. Zwiększenie długości nie powoduje skrócenia, a parametr n większy od długości łańcucha prowadzi do wypełnienia go dodatkowymi znakami, a nie skrócenia.

Pytanie 2

Który z wymienionych typów danych należy do typu logicznego?

A. int
B. char
C. float
D. bool
Typ 'char' przechowuje pojedyncze znaki i nie jest typem logicznym – jest używany do reprezentacji liter, cyfr i symboli. Typ 'float' przechowuje liczby zmiennoprzecinkowe i nie ma związku z logiką warunkową. Typ 'int' przechowuje liczby całkowite, ale nie może przechowywać wartości 'true' lub 'false' w sposób natywny, choć często można go użyć jako alternatywy (np. 1 oznacza 'true', 0 oznacza 'false').

Pytanie 3

Jaką kategorię własności intelektualnej reprezentują znaki towarowe?

A. Dobra niematerialne
B. Własność przemysłowa
C. Autorskie prawa majątkowe
D. Prawa pokrewne
Dobra niematerialne to szersza kategoria obejmująca różne aspekty własności intelektualnej, ale znaki towarowe są formalnie klasyfikowane jako własność przemysłowa. Autorskie prawa majątkowe dotyczą utworów literackich, muzycznych i filmowych, ale nie obejmują znaków towarowych. Prawa pokrewne chronią wykonawców i producentów nagrań, lecz nie odnoszą się do znaków towarowych i brandingu firm.

Pytanie 4

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

Ilustracja do pytania
A. suma liczb z przedziału od 0 do 100
B. liczby parzyste z przedziału od 0 do 100
C. suma liczb parzystych z przedziału od 0 do 100
D. liczby z przedziału od 0 do 100
Liczby parzyste – Kod oblicza sumę, a nie wyświetla konkretne liczby. Suma liczb – Nie ogranicza się do liczb parzystych. Liczby z przedziału – To wyświetlenie pełnego zakresu, a nie obliczenie sumy parzystych.

Pytanie 5

Jakie ma znaczenie operator "==" w języku C++?

A. Negacja logiczna
B. Porównanie dwóch wartości
C. Przypisanie wartości do zmiennej
D. Zwiększenie wartości zmiennej o 1
Operator `==` w języku C++ oraz w wielu innych językach programowania, takich jak Java, Python czy JavaScript, jest używany do porównywania dwóch wartości. Jeśli wartości są równe, zwracana jest wartość logiczna `true`, w przeciwnym razie `false`. Operator ten jest niezbędny w instrukcjach warunkowych i pętlach, umożliwiając programowi podejmowanie decyzji na podstawie porównań. Przykładem użycia jest `if (a == b)`, co oznacza: jeśli zmienna `a` jest równa zmiennej `b`, wykonaj określony blok kodu.

Pytanie 6

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. trzy paragrafy, w każdym z nich tekst o treści: {tag}
B. jeden paragraf zawierający wszystkie elementy tablicy tags w kolejności
C. Trzy paragrafy, każdy odpowiadający kolejnemu elementowi tablicy tags
D. jeden paragraf z pierwszym elementem tablicy tags
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 7

Które z wymienionych pól klasy można zainicjalizować przed stworzeniem obiektu?

A. Prywatne pole
B. Chronione pole
C. Static pole
D. Publiczne pole
Pola prywatne i chronione są związane z konkretnymi instancjami klasy, co oznacza, że nie mogą być inicjalizowane przed utworzeniem obiektu. Inicjalizacja takich pól następuje w konstruktorze klasy lub w trakcie tworzenia instancji. Publiczne pola, choć dostępne z dowolnego miejsca w programie, także wymagają istnienia konkretnej instancji obiektu, aby mogły zostać zainicjowane i użyte. Statyczność jest kluczowym czynnikiem pozwalającym na inicjalizację pola niezależnie od istnienia obiektu.

Pytanie 8

Który komponent systemu komputerowego zajmuje się transferem danych pomiędzy procesorem a pamięcią RAM?

A. Mostek północny (Northbridge)
B. Zasilacz
C. Kontroler DMA
D. Karta graficzna
Mostek północny, znany również jako Northbridge, jest kluczowym elementem architektury komputerowej, który odpowiada za komunikację pomiędzy procesorem a pamięcią RAM. Jego głównym zadaniem jest koordynowanie przepływu danych w systemie oraz zapewnienie szybkiego dostępu do pamięci, co jest niezbędne dla wydajności całego systemu. Mostek północny jest odpowiedzialny za zarządzanie magistralami danych, a także interfejsami, takimi jak PCI Express, które łączą różne komponenty. Dzięki zastosowaniu standardów, takich jak DDR (Double Data Rate), mostek północny umożliwia efektywne przesyłanie danych w wysokiej prędkości. Praktycznym przykładem działania mostka północnego jest sytuacja, kiedy procesor potrzebuje załadować dane z pamięci RAM do rejestrów – mostek północny zarządza tym procesem, minimalizując opóźnienia i maksymalizując wydajność. W nowoczesnych systemach komputerowych mostek północny jest często zintegrowany z procesorem, co dodatkowo zwiększa efektywność komunikacji oraz zmniejsza czas dostępu do danych.

Pytanie 9

Jakie zasady stosuje programowanie obiektowe?

A. Podział kodu na funkcje i procedury
B. Tworzenie aplikacji z wykorzystaniem relacyjnych baz danych
C. Zastosowanie wyłącznie algorytmów heurystycznych
D. Rozwiązywanie problemów poprzez modelowanie ich przy pomocy klas i obiektów
Dzielenie kodu na funkcje i procedury to cecha programowania strukturalnego, a nie obiektowego. Tworzenie aplikacji opartych na relacyjnych bazach danych to domena SQL i programowania bazodanowego, ale samo w sobie nie jest modelem obiektowym. Stosowanie algorytmów heurystycznych to technika optymalizacji, ale nie odnosi się bezpośrednio do programowania obiektowego. Główną ideą OOP jest modelowanie problemów za pomocą klas i obiektów, co umożliwia bardziej intuicyjne i efektywne zarządzanie złożonymi systemami.

Pytanie 10

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

A. Etap implementacji
B. Faza wdrożenia
C. Etap planowania
D. Faza analizy
Planowanie to faza początkowa, w której określane są cele projektu, harmonogram i zasoby, ale nie jest to etap integracji systemu. Analiza skupia się na zbieraniu wymagań i definiowaniu specyfikacji technicznej, ale nie obejmuje łączenia modułów ani testowania gotowego produktu. Wdrożenie to końcowy etap cyklu życia projektu, który następuje po pełnej integracji i testowaniu – polega na uruchomieniu systemu w środowisku produkcyjnym i udostępnieniu go użytkownikom końcowym.

Pytanie 11

Który z operatorów w języku C++ służy do pobierania adresu zmiennej?

A. >
B. delete
C. &
D. *
Wielka sprawa, że wiesz, że operator '&' w C++ jest do przypisywania adresów zmiennych. Dzięki temu możesz stworzyć wskaźnik, który wskazuje na konkretne miejsce w pamięci, co daje ci dużą moc do manipulowania wartościami. Używając tego operatora, możesz naprawdę dobrze zarządzać pamięcią i poprawić wydajność swojego kodu. Jest to kluczowe, zwłaszcza, gdy pracujesz z dynamiczną alokacją pamięci, albo kiedy iterujesz przez tablice czy tworzysz takie struktury jak listy czy drzewa. To narzędzie jest po prostu super ważne w programowaniu!

Pytanie 12

Jakiego typu funkcja jest tworzona poza klasą, ale ma dostęp do jej prywatnych i chronionych elementów?

A. Metoda statyczna
B. Konstruktor
C. Funkcja zaprzyjaźniona
D. Destruktor
Funkcja zaprzyjaźniona to specjalny typ funkcji, który jest deklarowany jako 'friend' w ciele klasy, co pozwala jej na dostęp do prywatnych i chronionych składowych tej klasy. Chociaż funkcja zaprzyjaźniona jest definiowana poza klasą, może operować na jej wewnętrznych danych, co czyni ją bardzo użytecznym narzędziem w programowaniu obiektowym. Tego rodzaju funkcje są często wykorzystywane w przypadkach, gdy konieczne jest współdziałanie dwóch klas lub funkcji narzędziowych, które muszą manipulować danymi wewnętrznymi klasy, ale nie powinny być jej metodami członkowskimi. Dzięki funkcjom zaprzyjaźnionym można zapewnić elastyczność w dostępie do danych przy jednoczesnym zachowaniu hermetyzacji klasy. Przykładem może być przeciążenie operatorów, np. operator +, który musi mieć dostęp do prywatnych składowych obu operandów.

Pytanie 13

Cytat zaprezentowany powyżej dotyczy metodyki RAD. Co oznacza ten skrót w języku polskim?

Ilustracja do pytania
A. szybki rozwój aplikacji
B. środowisko błyskawicznego programowania
C. zintegrowane środowisko deweloperskie
D. środowisko do tworzenia aplikacji
RAD czyli Rapid Application Development to podejście do tworzenia oprogramowania które skupia się na szybkim wytwarzaniu aplikacji. Kluczowym elementem tej metodyki jest minimalizacja czasu spędzanego na planowaniu i projektowaniu na rzecz szybkiego prototypowania i elastycznego dostosowywania się do zmieniających się wymagań. W praktyce RAD wykorzystuje krótkie cykle rozwoju oraz intensywną współpracę z użytkownikami końcowymi co pozwala na szybkie reagowanie na ich potrzeby. W porównaniu do tradycyjnych metod RAD zapewnia większą elastyczność i skrócenie czasu dostarczenia produktu co jest szczególnie wartościowe w dynamicznie zmieniających się środowiskach biznesowych. Dobre praktyki w RAD obejmują użycie narzędzi do szybkiego prototypowania oraz zaangażowanie użytkowników w proces testowania co pozwala na bieżące wprowadzanie zmian i udoskonaleń. Dzięki temu uzyskuje się produkt lepiej dopasowany do oczekiwań użytkowników co zwiększa jego użyteczność i satysfakcję końcową. RAD jest często stosowany w projektach gdzie czas dostarczenia jest krytycznym czynnikiem sukcesu co odzwierciedla jego praktyczne zastosowanie w wielu branżach

Pytanie 14

Jakie narzędzie można wykorzystać do tworzenia aplikacji mobilnych typu cross-platform w C#?

A. platformę React Native
B. platformę Xamarin
C. środowisko Android Studio
D. środowisko XCode
XCode to zintegrowane środowisko programistyczne stworzone przez Apple, które służy głównie do tworzenia aplikacji na platformy iOS oraz macOS. Jego użycie ogranicza się do systemów operacyjnych Apple, co wyklucza możliwość tworzenia aplikacji cross-platform. W kontekście programowania w C#, XCode nie oferuje wsparcia ani funkcji, które umożliwiałyby rozwój aplikacji mobilnych na różne platformy. React Native jest frameworkiem stworzonym przez Facebook, który umożliwia tworzenie aplikacji mobilnych w JavaScript, a nie w C#. Choć React Native wspiera wiele platform, to jednak nie jest to technologia zgodna z C#, co czyni ją nieodpowiednią dla deweloperów preferujących ten język. Android Studio to z kolei oficjalne IDE dla systemu Android, oparte na Javie oraz Kotlinie, co również eliminuje możliwość wykorzystania C#. Tak więc, ani XCode, ani React Native, ani Android Studio nie są odpowiednie do tworzenia aplikacji mobilnych w języku C#, co czyni je niepoprawnymi odpowiedziami w kontekście tego pytania.

Pytanie 15

Jakie jest zadanie interpretera?

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

Pytanie 16

Który z dokumentów stosowanych w metodologii Agile zawiera listę funkcjonalności produktu uporządkowanych według ich ważności?

A. Harmonogram projektu
B. Product backlog
C. Diagram Gantta
D. Backlog sprintu
Backlog sprintu zawiera jedynie zadania przypisane do aktualnego sprintu i jest podzbiorem całego backlogu produktu, co oznacza, że nie zawiera całości funkcjonalności. Diagram Gantta to narzędzie do planowania harmonogramu projektów, ale nie służy do zarządzania wymaganiami czy funkcjonalnościami produktu. Harmonogram projektu określa czas realizacji poszczególnych etapów, ale nie odnosi się do listy funkcji, jakie muszą zostać wdrożone, co jest celem backlogu.

Pytanie 17

Jakie środowisko jest przeznaczone do tworzenia aplikacji mobilnych dla urządzeń Apple, wykorzystujące różne języki programowania, takie jak Java i Objective C?

A. React Native
B. Android Studio
C. NetBeans
D. XCode
Android Studio – Służy do tworzenia aplikacji na system Android. NetBeans – Jest używany głównie do tworzenia aplikacji w języku Java, ale nie dla urządzeń Apple. React Native – To framework umożliwiający tworzenie aplikacji na wiele platform, ale nie jest natywnym środowiskiem dla Apple.

Pytanie 18

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

A. Metoda szablonowa (Template method)
B. Kompozyt (Composite)
C. Fasada (Facade)
D. Singleton (Singleton)
Wzorzec Kompozyt (Composite) umożliwia traktowanie pojedynczych obiektów i ich grup w jednakowy sposób, co ułatwia zarządzanie hierarchicznymi strukturami. Metoda szablonowa (Template Method) definiuje szkielet algorytmu w klasie bazowej, pozwalając podklasom na dostosowanie poszczególnych kroków. Singleton to wzorzec zapewniający istnienie tylko jednej instancji klasy, co jest użyteczne w zarządzaniu zasobami systemowymi, ale nie służy do upraszczania interfejsu do złożonego systemu.

Pytanie 19

Wskaż poprawny pod względem składniowym kod dla formatu JSON, który jest używany do wymiany danych między backendem a frontendem aplikacji.

Ilustracja do pytania
A. Kod4
B. Kod3
C. Kod2
D. Kod1
Kod1 niestety jest błędny. W JSON klucze i wartości muszą być w podwójnych cudzysłowach, a nie w pojedynczych. Pojedyncze cudzysłowy tutaj nie działają i będą powodować błąd podczas próby parsowania. Kod3 to nie JSON, tylko przykład XML, który używa znaczników do oznaczania danych, ale w kontekście JSON nie pasuje. Kod4 z kolei przypomina bardziej zapis w jakimś języku programowania, na przykład C. Używasz składni, której parsery JSON nie rozpoznają, bo brakuje nawiasów klamrowych i podwójnych cudzysłowów. Często błędy w JSON wynikają z niewłaściwego użycia znaków interpunkcyjnych i złego formatowania, co może prowadzić do problemów z działaniem aplikacji. Dlatego naprawdę warto zadbać o poprawną składnię JSON, żeby wszystko działało bez zarzutów.

Pytanie 20

Jakie wartości jest w stanie przechować zmienna o typie logicznym?

A. Dowolną liczbę rzeczywistą
B. Jedną z dwóch opcji: true lub false
C. Wartość w reprezentacji binarnej
D. Tylko ciąg znaków
Zmienna typu logicznego (boolean) może przechowywać jedną z dwóch wartości: 'true' lub 'false'. Są to podstawowe wartości wykorzystywane w operacjach warunkowych i pętlach, które decydują o przepływie sterowania w programach. Wartości logiczne są kluczowe w konstrukcjach takich jak 'if-else', pętlach 'while' oraz w porównaniach. W wielu językach programowania 'true' jest równoznaczne z 1, a 'false' z 0, co pozwala na łatwą integrację z typami całkowitymi. Typ boolean jest niezbędny w programowaniu, umożliwiając implementację decyzji, walidacji danych i automatyzacji procesów.

Pytanie 21

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

Ilustracja do pytania
A. dowolna pseudolosowa z przedziału typu int
B. rzeczywista podzielna przez 1OOO
C. pseudolosowa nie większa niż 999
D. równa 1OOO
Błędne odpowiedzi wynikają z niezrozumienia mechaniki działania funkcji rand() i operatora modulo w języku C++. Pierwsza koncepcja, że liczba mogłaby być równa 1000, jest błędna, ponieważ operator modulo ogranicza wynik do wartości mniejszych niż dzielnik, w tym przypadku 1000. Dlatego wynik nigdy nie osiągnie wartości 1000. Drugą błędną koncepcją jest przypisanie dowolnej liczby pseudolosowej w zakresie typu int. Funkcja rand() bez operacji modulo generuje liczby w zakresie od 0 do RAND_MAX, ale zastosowanie modulo 1000 zawęża ten zakres do wartości od 0 do 999. Trzecia koncepcja, że wynik musi być liczbą rzeczywistą podzielną przez 1000, wynika z błędnego założenia o typie danych i działaniach matematycznych. W kontekście języka C++ kod operuje na liczbach całkowitych, a nie rzeczywistych, i wynik modulo nie może być podzielny przez 1000, gdyż wartości te nigdy nie osiągną 1000. Kluczowe jest zrozumienie, że operacja modulo ogranicza zakres wyników i zapobiega wyjściu poza określoną wartość maksymalną, co jest fundamentalnym aspektem generowania liczb pseudolosowych w kontrolowanych zakresach. Dzięki temu podejściu można bezpiecznie i efektywnie wykorzystywać generowane wyniki w wielu zastosowaniach informatycznych, unikając typowych błędów logicznych i zakresowych w programowaniu.

Pytanie 22

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

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

Pytanie 23

Jakie kwestie związane z percepcją są uwzględnione w rekomendacjach standardu WCAG 2.0?

A. prezentacji elementów interfejsu użytkownika
B. umożliwienia interakcji między elementami użytkownika za pomocą klawiatury
C. zapewnienia odpowiedniego czasu na zapoznanie się i przetworzenie informacji
D. jasności i dokładności w dostarczonych treściach na stronie
Inne zasady WCAG, takie jak obsługa klawiatury czy zrozumiałość treści, dotyczą odpowiednio nawigacji i struktury informacji. Elementy percepcyjne koncentrują się na warstwie wizualnej i słuchowej, umożliwiając użytkownikom z różnymi ograniczeniami percepcyjnymi dostęp do pełnej funkcjonalności strony.

Pytanie 24

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

A. Ból brzucha po spożyciu posiłku
B. Gorączka oraz dreszcze
C. Intensywny ból w klatce piersiowej promieniujący do lewej ręki
D. Spadek nastroju
Ból brzucha po zjedzeniu posiłku jest częstym objawem problemów trawiennych, takich jak refluks żołądkowy, niestrawność lub wrzody, ale nie wskazuje na zawał serca. Gorączka i dreszcze mogą być oznaką infekcji lub grypy, a nie problemów kardiologicznych. Obniżenie nastroju jest objawem psychologicznym, związanym z depresją lub zmęczeniem, ale nie wskazuje na nagłe zagrożenie zdrowotne związane z sercem. Rozpoznanie i rozróżnienie tych objawów jest kluczowe dla szybkiej diagnozy i leczenia.

Pytanie 25

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

Ilustracja do pytania
A. Są przeciążone.
B. Zawierają błąd, ponieważ nazwy metod powinny być różne.
C. Służą jako konstruktory w zależności od liczby argumentów.
D. Zawierają przeciążenie operatora.
Metody przeciążone mogą mieć tę samą nazwę – różnią się sygnaturą, czyli liczbą i typami argumentów, co jest zgodne z zasadami programowania obiektowego. Przeciążenie metod to nie to samo co przeciążenie operatorów, które polega na definiowaniu nowego sposobu działania operatorów (np. +, -, *). Pełnienie funkcji konstruktorów to inny mechanizm i dotyczy głównie klas i ich instancjonowania, nie przeciążania metod.

Pytanie 26

Który z wymienionych elementów UI w aplikacjach mobilnych jest odpowiedzialny za przechodzenie pomiędzy ekranami?

A. Przycisk
B. Pasek narzędziowy
C. ListView
D. Navigation Drawer
Przycisk (Button) jest podstawowym elementem interfejsu użytkownika, ale nie spełnia funkcji nawigacyjnej na poziomie strukturalnym – jego zastosowanie ogranicza się do wywoływania pojedynczych akcji po kliknięciu. ListView to komponent wyświetlający listę elementów, ale nie odpowiada za nawigację pomiędzy ekranami aplikacji, a jedynie za prezentację danych. Pasek narzędziowy (Toolbar) to element, który zwykle znajduje się na górze ekranu i umożliwia dostęp do opcji takich jak wyszukiwanie lub ustawienia, ale nie pełni funkcji bocznego menu nawigacyjnego, jak Navigation Drawer.

Pytanie 27

Użycie modyfikatora abstract w definicji metody w klasie wskazuje, że

A. trzeba zaimplementować tę metodę w tej klasie
B. dziedziczenie po tej klasie jest niedozwolone
C. klasa ta stanowi podstawę dla innych klas
D. klasy pochodne nie mogą implementować tej metody
Modyfikator 'abstract' nie wymusza implementacji metod w tej samej klasie, lecz przenosi to wymaganie na klasy dziedziczące. Dziedziczenie po klasie abstrakcyjnej jest możliwe, co pozwala na rozszerzanie jej funkcjonalności. Klasy dziedziczące muszą implementować metody abstrakcyjne, co jest ich obowiązkiem, a nie zakazem.

Pytanie 28

Które z wymienionych stwierdzeń najtrafniej charakteryzuje WPF?

A. Framework umożliwiający zarządzanie urządzeniami IoT
B. Biblioteka do obróbki danych w Pythonie
C. Framework przeznaczony do budowy aplikacji internetowych
D. Framework przeznaczony do budowy aplikacji stacjonarnych w systemie Windows
No i tutaj jest mały błąd. Frameworki do aplikacji webowych, to na przykład Angular czy React, a WPF służy do aplikacji desktopowych. Jak mówimy o przetwarzaniu danych w Pythonie, to raczej wspominamy np. o NumPy czy Pandas, ale one nie mają nic wspólnego z interfejsami. Jeśli chodzi o IoT, to nie używamy WPF, bo on jest bardziej związany z Windows, a do sprzętu raczej sięga się po Arduino IDE czy PlatformIO.

Pytanie 29

Kod przedstawiony w języku XML/XAML określa

Ilustracja do pytania
A. suwak
B. listę rozwijaną
C. przełącznik
D. stepper
Stepper to kontrolka umożliwiająca zwiększanie lub zmniejszanie wartości w określonych krokach. Lista rozwijana (combobox) służy do wyboru jednego elementu z listy, a suwak (slider) umożliwia wybór wartości w przedziale. Żadna z tych kontrolek nie oferuje funkcji przełączania pomiędzy dwoma stanami, co odróżnia je od Switch.

Pytanie 30

Użycie typu DECIMAL w SQL wymaga wcześniejszego określenia liczby cyfr przed przecinkiem oraz ilości cyfr za przecinkiem. Jest to zapis:

A. logicznym
B. zmiennoprzecinkowy
C. łańcuchowym
D. stałoprzecinkowy
Typy stałoprzecinkowe są mniej elastyczne, a typy logiczne (BOOLEAN) przechowują tylko wartości prawda/fałsz. Łańcuchy znaków (STRING) służą do przechowywania tekstu i nie nadają się do operacji matematycznych na liczbach dziesiętnych.

Pytanie 31

Jakie znaczenie ma pojęcie "debugowanie" w kontekście programowania?

A. Wyszukiwanie i usuwanie błędów w kodzie
B. Przygotowywanie dokumentacji kodu
C. Tworzenie nowych funkcjonalności aplikacji
D. Wdrażanie aplikacji w środowisku produkcyjnym
Tworzenie dokumentacji kodu to proces opisywania funkcji, klas i modułów w celu ułatwienia przyszłych modyfikacji i współpracy, ale nie wiąże się bezpośrednio z usuwaniem błędów. Opracowywanie nowych funkcji aplikacji dotyczy etapu programowania i dodawania kolejnych komponentów, ale nie jest tożsame z eliminacją błędów już istniejących w kodzie. Publikowanie aplikacji w środowisku produkcyjnym oznacza wdrożenie gotowego oprogramowania, co jest ostatnim etapem cyklu życia aplikacji i nie obejmuje aktywnego wyszukiwania błędów, jak ma to miejsce podczas debugowania.

Pytanie 32

W klasie o nazwie samochod przypisano atrybuty: marka, rocznik, parametry[]. Atrybuty te powinny zostać zdefiniowane jako

A. pola
B. metody
C. funkcje
D. interfejsy
Funkcje służą do wykonywania operacji, nie do przechowywania danych. Interfejsy definiują kontrakty dla klas, ale nie opisują bezpośrednio stanu obiektów. Metody to operacje, które mogą modyfikować lub odczytywać pola, ale same nie są odpowiedzialne za przechowywanie danych obiektu.

Pytanie 33

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

A. Przenoszenie metod z jednej klasy do drugiej
B. Zmiana metody prywatnej na metodę publiczną
C. Tworzenie nowej metody w klasie bazowej
D. Zastosowanie tej samej nazwy metody w klasie bazowej i pochodnej, ale z inną implementacją w klasie pochodnej
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 34

Jakie metody umożliwiają przesyłanie danych z serwera do aplikacji front-end?

A. formatu JSON
B. metody POST
C. biblioteki jQuery
D. protokołem SSH
Jest taka sprawa z jQuery – chociaż to super narzędzie do manipulacji DOM i pracy z asynchronicznymi żądaniami HTTP, to jednak nie jest formatem danych. Tak, jQuery świetnie działa z AJAX-em, ale nie definiuje, jak dane powinny być przesyłane. Jak już używasz jQuery do przesyłania danych, to potrzebujesz formatu, na przykład JSON. Dlatego ta odpowiedź jest niepoprawna. Metoda POST umożliwia przesyłanie danych do serwera w protokole HTTP, ale sama w sobie nie mówi, w jakim formacie te dane będą przesyłane. Można używać różnych formatów, w tym JSON, ale sama metoda POST to za mało. A SSH, czyli Secure Shell, to protokół do bezpiecznego logowania i zdalnego zarządzania systemami, a nie do przesyłania danych między aplikacjami webowymi a serwerem. Dlatego tu też mamy błąd. Wszystkie te technologie są ważne, ale nie mówią o przesyłaniu danych w kontekście front-endu tak, jak robi to JSON.

Pytanie 35

Który z poniższych opisów najlepiej definiuje kompilator?

A. Narzędzie do analizy kodu w czasie rzeczywistym
B. Program łączący dynamiczne biblioteki z kodem źródłowym
C. System monitorujący zmiany w kodzie źródłowym
D. Narzędzie przekształcające kod źródłowy na plik wykonywalny
Kompilator to narzędzie, które przekształca kod źródłowy napisany w języku programowania na plik wykonywalny (binarny), który może być uruchomiony bez potrzeby ponownej kompilacji. Proces ten obejmuje kilka etapów, takich jak analiza leksykalna, analiza składniowa, optymalizacja kodu oraz generowanie kodu maszynowego. Kompilator jest nieodzownym elementem w językach takich jak C, C++ czy Java. Generowany plik wykonywalny może działać szybciej niż kod interpretowany, ponieważ nie wymaga tłumaczenia w czasie rzeczywistym.

Pytanie 36

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

Ilustracja do pytania
A. testy zgodności
B. testy wydajnościowe
C. testy jednostkowe
D. testy funkcjonalne
Testy wydajnościowe oceniają szybkość i stabilność aplikacji pod obciążeniem. Testy jednostkowe sprawdzają działanie pojedynczych fragmentów kodu (np. funkcji). Testy kompatybilności oceniają, czy aplikacja działa poprawnie na różnych urządzeniach lub systemach operacyjnych.

Pytanie 37

Mobilna aplikacja przedstawia listę, w której każdy element można dotknąć palcem, aby zobaczyć jego detale. Zdarzenie, które odpowiada tej czynności, to

A. tapped.
B. toggled.
C. value changed.
D. button clicked.
Zdarzenie 'tapped' oznacza, że stuknęliśmy w coś na liście na naszym telefonie. To takie podstawowe zdarzenie, które przydaje się w aplikacjach mobilnych. Dzięki temu możemy wchodzić w interakcje z różnymi elementami, na przykład, gdy klikniemy na coś w liście, pojawią się dodatkowe szczegóły. Ta obsługa zdarzeń 'tap' jest naprawdę ważna w aplikacjach mobilnych, bo to w zasadzie główny sposób, w jaki poruszamy się po interfejsie.

Pytanie 38

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

A. WPF
B. Flutter
C. Qt
D. Node.js
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++.

Pytanie 39

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 V
B. PRINCE2
C. Model kaskadowy
D. Agile
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 40

Który z wymienionych dokumentów jest najczęściej stosowany w zarządzaniu pracą zespołu Scrum?

A. Diagram Gantta
B. Specyfikacja techniczna
C. Lista zasobów ludzkich
D. Product backlog
Diagram Gantta jest fajnym narzędziem do pokazywania harmonogramu, ale nie ma go w zarządzaniu backlogiem. Specyfikacja techniczna to co innego – tam są szczegóły implementacyjne, a nie priorytety funkcji. Lista zasobów ludzkich to temat o zarządzaniu personelem, a nie o zadaniach i priorytetach w Scrumie. Więc tu bardziej musisz uważać na to, co do czego pasuje.