Wyniki egzaminu

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

Egzamin niezdany

Wynik: 19/40 punktów (47,5%)

Wymagane minimum: 20 punktów (50%)

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

Do stworzenia zbioru danych potrzebnego do uruchomienia algorytmu sortowania bąbelkowego tablicy, wymagane są przynajmniej następujące typy:

A. dwa tablicowe, jeden liczbowy do nadzorowania pętli
B. jeden tablicowy, jeden liczbowy do nadzorowania pętli, dwa do zamiany miejscami elementów
C. dwa tablicowe, dwa do zamiany miejscami elementów
D. jeden tablicowy, dwa liczbowe do nadzorowania pętli, jeden do zamiany miejscami elementów
Do implementacji algorytmu sortowania bąbelkowego potrzebny jest jeden typ tablicowy, dwa liczbowe do kontroli iteracji pętli oraz jeden do zamiany elementów miejscami. Dwa liczniki pętli są niezbędne, aby iterować po tablicy wielokrotnie, zmniejszając zakres w każdej iteracji.

Pytanie 2

Które z wymienionych narzędzi nie znajduje zastosowania w tworzeniu aplikacji desktopowych?

A. Kompilator
B. Debugger
C. Edytor graficzny
D. Przeglądarka internetowa
Kompilator to podstawowe narzędzie, które jest niezbędne w procesie tworzenia aplikacji – bez niego kod źródłowy nie mógłby zostać przekształcony w plik wykonywalny. Debugger odgrywa kluczową rolę w identyfikacji i eliminowaniu błędów w kodzie, co jest niezbędne do prawidłowego działania aplikacji. Edytor graficzny może być używany w tworzeniu interfejsów graficznych aplikacji desktopowych (GUI), zwłaszcza w środowiskach takich jak Visual Studio, WPF czy Qt, co czyni go integralną częścią procesu programistycznego.

Pytanie 3

Jakie metody pozwalają na przesłanie danych z serwera do aplikacji front-end?

A. formatu JSON
B. protokołu SSH
C. biblioteki jQuery
D. metody POST
Biblioteka jQuery umożliwia manipulację DOM i wykonywanie zapytań AJAX, ale nie jest formatem przesyłania danych. Protokół SSH służy do bezpiecznej komunikacji z serwerem, natomiast metoda POST to część protokołu HTTP, wykorzystywana do przesyłania danych, ale nie jest formatem danych samym w sobie.

Pytanie 4

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

A. Własność przemysłowa
B. Prawa pokrewne
C. Dobra niematerialne
D. Autorskie prawa majątkowe
Znaki towarowe należą do kategorii własności przemysłowej. Ochrona znaków towarowych pozwala firmom na zabezpieczenie ich brandingu, logotypów oraz nazw produktów przed nieuprawnionym wykorzystaniem przez konkurencję. Rejestracja znaku towarowego daje właścicielowi prawo do wyłącznego używania go w celach komercyjnych i przeciwdziałania naruszeniom. Własność przemysłowa obejmuje także patenty, wzory przemysłowe i oznaczenia geograficzne, stanowiąc kluczowy element strategii ochrony marki oraz wartości firmy na rynku międzynarodowym.

Pytanie 5

Który z wymienionych poniżej typów danych stanowi przykład typu stałoprzecinkowego?

A. decimal
B. double
C. int
D. float
Typ 'float' przechowuje liczby zmiennoprzecinkowe, co oznacza, że może reprezentować wartości z częściami dziesiętnymi, ale nie jest to typ stałoprzecinkowy. Typ 'double' to również typ zmiennoprzecinkowy, charakteryzujący się większą precyzją niż 'float'. Typ 'decimal' służy do przechowywania liczb zmiennoprzecinkowych z dużą dokładnością, głównie w aplikacjach finansowych, gdzie precyzja jest kluczowa, ale nie zalicza się do typów stałoprzecinkowych.

Pytanie 6

Który z komponentów interfejsu użytkownika umożliwia użytkownikowi wprowadzanie danych tekstowych?

A. Dialog wyboru pliku
B. Pole tekstowe
C. Przycisk
D. Pasek narzędziowy
Pole tekstowe to element interfejsu użytkownika, który pozwala użytkownikowi na wprowadzanie danych tekstowych. Jest to jeden z najczęściej używanych komponentów UI w aplikacjach desktopowych, mobilnych i webowych. Pole tekstowe umożliwia wprowadzanie haseł, adresów e-mail, wiadomości i innych danych. W nowoczesnych aplikacjach często zawiera walidację, która sprawdza poprawność wpisywanych danych w czasie rzeczywistym. Dzięki swojej elastyczności, pola tekstowe mogą być wykorzystywane w różnorodnych formularzach, ankietach i systemach rejestracji użytkowników, co czyni je nieodzownym elementem aplikacji o dowolnym przeznaczeniu.

Pytanie 7

Jakie narzędzie wspiera tworzenie aplikacji desktopowych?

A. Symfony
B. Angular
C. Xamarin
D. WPF
Symfony to framework PHP do tworzenia aplikacji webowych, a nie desktopowych. Xamarin służy do tworzenia aplikacji mobilnych na platformy iOS i Android. Angular to framework JavaScript do tworzenia aplikacji front-endowych, głównie webowych, a nie desktopowych.

Pytanie 8

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

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

Pytanie 9

Jaką technologię stosuje się do powiązania aplikacji internetowej z systemem baz danych?

A. CSS
B. SQL
C. JavaScript
D. HTTP
SQL, czyli język do zarządzania danymi, to mega ważna rzecz, jeśli chodzi o relacyjne bazy danych. Dzięki niemu można tworzyć, modyfikować, a nawet usuwać tabele. To taki most, który łączy aplikacje webowe z bazą danych. Dzięki SQL programiści mogą łatwo przechowywać i przetwarzać różne informacje na serwerze. Przykłady? Można generować listy produktów, ogarniać użytkowników czy analizować dane z transakcji. Właściwie bez SQL-a nie dałoby się zbudować solidnych aplikacji, na przykład tych, które działają na MySQL, PostgreSQL czy Microsoft SQL Server. Chociaż pewnie o tym wiesz, ale warto to zaznaczyć.

Pytanie 10

Jakie z wymienionych narzędzi służy do testowania aplikacji?

A. Photoshop
B. Selenium
C. WordPress
D. Git
Selenium to potężne narzędzie do automatycznego testowania aplikacji webowych. Umożliwia ono symulowanie działań użytkownika na stronie internetowej, takich jak klikanie przycisków, wypełnianie formularzy czy nawigowanie po witrynie. Dzięki Selenium programiści mogą automatyzować testy funkcjonalne i regresyjne, co pozwala na szybkie wykrywanie błędów i sprawdzanie zgodności aplikacji z wymaganiami. Selenium obsługuje wiele języków programowania, takich jak Python, Java, C# czy JavaScript, co czyni je wszechstronnym narzędziem do testowania aplikacji webowych na różnych platformach i przeglądarkach. Jest to jedno z najważniejszych narzędzi w arsenale testerów oprogramowania i deweloperów dbających o jakość swoich produktów.

Pytanie 11

Jakie jest źródło błędu w podanym kodzie przez programistę?

Ilustracja do pytania
A. pole autor jest niedostępne z tego poziomu
B. inicjacja obiektu została błędnie zapisana
C. argumenty konstruktora powinny być przekazane podczas inicjacji obiektu
D. brak konstruktora w definicji klasy
Brak konstruktora w definicji klasy nie jest błędem – jeśli konstruktor nie zostanie jawnie zdefiniowany, kompilator wygeneruje domyślny konstruktor bez parametrów. Błędna inicjalizacja obiektu lub brak argumentów w wywołaniu konstruktora mogą prowadzić do błędów kompilacji, ale nie mają związku z dostępem do prywatnych pól klasy. Problem polega na naruszeniu zasad dostępu do pól prywatnych, co jest rozwiązane poprzez odpowiednie mechanizmy dostępowe i stosowanie konwencji programistycznych, takich jak wzorzec projektowy getter-setter.

Pytanie 12

Który z podanych algorytmów operujących na jednowymiarowej tablicy posiada złożoność obliczeniową O(n2)?

A. Sortowanie bąbelkowe
B. Wypisanie elementów
C. Sortowanie szybkie
D. Wyszukiwanie binarne
Sortowanie bąbelkowe, znane również jako bubble sort, to prosty algorytm sortowania, który działa na zasadzie wielokrotnego przechodzenia przez tablicę i porównywania sąsiadujących ze sobą elementów. Algorytm ten ma złożoność obliczeniową O(n^2), co oznacza, że w najgorszym przypadku liczba operacji porównania wzrasta kwadratowo wraz ze wzrostem liczby elementów w tablicy. Przykładowo, dla tablicy o 5 elementach algorytm może wykonać do 10 porównań. W praktyce sortowanie bąbelkowe jest rzadko stosowane w dużych zbiorach danych ze względu na swoją niską efektywność, jednak jest to dobry przykład do nauki podstaw algorytmów sortujących. Standardy algorytmów sortujących, takie jak te zawarte w podręcznikach algorytmiki, często używają sortowania bąbelkowego jako przykładu do omówienia prostych koncepcji związanych z sortowaniem. Warto zauważyć, że chociaż algorytm ten jest prosty do zrozumienia, jego złożoność czasowa sprawia, że nie jest on praktyczny do stosowania w produkcyjnych rozwiązaniach, gdyż bardziej optymalne algorytmy, jak sortowanie szybkie czy sortowanie przez scalanie, osiągają złożoność O(n log n).

Pytanie 13

Jakie zasady stosuje programowanie obiektowe?

A. Rozwiązywanie problemów poprzez modelowanie ich przy pomocy klas i obiektów
B. Tworzenie aplikacji z wykorzystaniem relacyjnych baz danych
C. Zastosowanie wyłącznie algorytmów heurystycznych
D. Podział kodu na funkcje i procedury
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 14

Zaprezentowany kod zawiera pola danej klasy. Które pole (pola) mogą być osiągnięte z poziomu głównego programu poprzez odwołanie się w formie nazwaObiektu.nazwaPola?

Ilustracja do pytania
A. jedynie p3
B. p3 i p4
C. p1
D. wyłącznie p3, p4, p5
A tu mamy pola p1 i p4, które mogą być prywatne albo chronione, co w praktyce oznacza, że nie możesz ich tak po prostu wywołać w programie głównym. Żeby je zobaczyć, musisz skorzystać z metod publicznych albo refleksji. Poza tym pole p5 też nie jest dostępne, jeśli nie jest publiczne.

Pytanie 15

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

A. Rozkodowanie rozkazu (Decode)
B. Realizacja instrukcji (Execution)
C. Zapis wyników do pamięci (Write Back)
D. Pobranie rozkazu z pamięci (Fetch)
Dekodowanie rozkazu, czyli Decode, jest drugim krokiem w całym cyklu wykonywania instrukcji. I nie można go zrobić, zanim procesor nie pobierze rozkazu z pamięci. W tej fazie procesor zaczyna analizować, co to jest za instrukcja, żeby wiedzieć, co ma zrobić. To znaczy, że identyfikuje, jakie operacje są potrzebne i co jest w składnikach, jak operandy. Gdyby dekodowanie miało być robione na początku, procesor nie miałby żadnych wskazówek, co ma dekodować, co zupełnie nie ma sensu. A potem jest jeszcze ten etap zapisu wyników do pamięci, czyli Write Back. Też nie może się zdarzyć przed pobraniem rozkazu, bo wymaga wykonania wcześniej instrukcji, wynikających z rozkazu. Ten etap jest ważny, bo tu wyniki operacji muszą być odpowiednio zapisane w pamięci lub rejestrach. W kontekście architektury komputerowej, to wszystko jest naprawdę istotne, bo bez pierwszego kroku, czyli pobrania rozkazu, reszta byłaby bez sensu.

Pytanie 16

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

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

Pytanie 17

Co to jest dokumentacja instruktażowa programu?

A. Kolekcją testów jednostkowych oraz ich wyników
B. Instrukcją opisującą, jak używać funkcji programu
C. Zbiorem szczegółów technicznych dotyczących kodu źródłowego
D. Dokumentem przedstawiającym plany rozwoju oprogramowania
Dokument zawierający szczegóły techniczne kodu źródłowego to część dokumentacji dla programistów, a nie instrukcja pomocy skierowana do użytkownika końcowego. Zbiór testów jednostkowych i wyników to część procesu testowania aplikacji, mająca na celu weryfikację poprawności działania kodu, ale nie wyjaśnia użytkownikom końcowym, jak korzystać z programu. Dokumenty związane z planami rozwoju aplikacji są istotne z punktu widzenia zarządzania projektem, ale nie zawierają instrukcji dotyczących bieżącej obsługi i użytkowania oprogramowania.

Pytanie 18

Jakie środowisko deweloperskie jest najczęściej używane do programowania w C#?

A. Visual Studio
B. NetBeans
C. Eclipse
D. PyCharm
Visual Studio to najczęściej wykorzystywane środowisko programistyczne (IDE) do tworzenia aplikacji w języku C#. Oferuje pełne wsparcie dla platformy .NET i umożliwia szybkie tworzenie aplikacji desktopowych, webowych i mobilnych. Visual Studio jest wyposażone w zaawansowane narzędzia do debugowania, projektowania interfejsów oraz integrację z systemami kontroli wersji. Dzięki rozbudowanemu ekosystemowi wtyczek i rozszerzeń Visual Studio jest idealnym rozwiązaniem zarówno dla początkujących, jak i zaawansowanych programistów, którzy tworzą aplikacje na system Windows oraz inne platformy.

Pytanie 19

Jakie elementy powinny być uwzględnione w scenariuszu testów aplikacji?

A. Dokładne wytyczne dotyczące realizacji kodu
B. Dokumentacja techniczna oprogramowania
C. Zestaw kroków do testowania, oczekiwanych rezultatów oraz warunków początkowych
D. Strategia wdrożenia aplikacji w środowisku produkcyjnym
Szczegółowe instrukcje dotyczące implementacji kodu to element dokumentacji technicznej dla deweloperów, a nie część scenariusza testowego. Dokumentacja techniczna aplikacji opisuje architekturę, interfejsy API oraz szczegóły implementacyjne, ale nie dostarcza informacji na temat testów. Plan wdrożenia aplikacji dotyczy przenoszenia oprogramowania na środowisko produkcyjne i zarządzania etapami tego procesu, co jest istotne po zakończeniu testów, a nie w trakcie ich przygotowania.

Pytanie 20

Błędy w interpretacji kodu stworzonego za pomocą React.js lub Angular można wykryć dzięki

A. wbudowanemu debuggerowi w danym środowisku
B. kompilatorowi języka JavaScript
C. konsoli przeglądarki internetowej
D. narzędziom zainstalowanym po stronie serwera aplikacji
Wbudowany debugger w IDE jest całkiem pomocny, zwłaszcza w debugowaniu, ale czasami może nie zauważać błędów, które wybuchają później, jak działasz w przeglądarce. Narzędzia serwerowe są bardziej nastawione na błędy backendu, a więc nie pomogą, gdy zamierzasz analizować, co się dzieje w frontendzie. No i tak, JavaScript jest interpretowany, nie kompilowany, więc nie ma tradycyjnego kompilatora.

Pytanie 21

Kompilator może wygenerować błąd "incompatible types", gdy

A. funkcja zwraca typ void, a w momencie wywołania nie jest przypisana do żadnej zmiennej
B. funkcja oczekuje całkowitej jako argumentu, a została wywołana z napisem jako parametrem
C. do zmiennej typu int przypisano wartość 243
D. w trakcie deklaracji zmiennej wystąpił błąd, zastosowano nieistniejący typ
Zła deklaracja zmiennej raczej spowoduje inne komunikaty o błędach, jak 'cannot find symbol', a nie 'incompatible types'. Jak przypisujesz liczbę do zmiennej typu int, to jest wszystko w porządku, więc błędu nie będzie. Pamiętaj, że funkcje typu void nie zwracają wartości, ale jeśli próbujesz coś przypisać, to dostaniesz raczej komunikat 'void type not allowed here'. To różne sprawy.

Pytanie 22

Który z paradygmatów programowania najbardziej akcentuje dziedziczenie oraz polimorfizm?

A. Programowanie obiektowe
B. Programowanie proceduralne
C. Programowanie strukturalne
D. Programowanie funkcyjne
Programowanie obiektowe (OOP) to paradygmat, który kładzie największy nacisk na dziedziczenie i polimorfizm. Dziedziczenie pozwala na tworzenie nowych klas na podstawie już istniejących, co umożliwia ponowne wykorzystanie kodu i jego rozszerzanie. Polimorfizm umożliwia definiowanie metod o tej samej nazwie, ale z różnym zachowaniem w zależności od kontekstu lub obiektu, co zwiększa elastyczność i modularność kodu. Programowanie obiektowe jest szeroko stosowane w językach takich jak Java, C++, Python czy C#, ponieważ pozwala na budowanie skalowalnych i łatwych w utrzymaniu aplikacji.

Pytanie 23

Który z faz cyklu życia projektu wiąże się z identyfikacją wymagań użytkownika?

A. Wdrażanie
B. Etap planowania
C. Przeprowadzanie testów
D. Analiza
Planowanie koncentruje się na ustaleniu harmonogramu, budżetu i alokacji zasobów, ale nie obejmuje dogłębnej analizy wymagań użytkownika. Implementacja to faza, w której kod jest tworzony na podstawie wcześniejszych ustaleń, ale nie jest to etap zbierania wymagań. Testowanie odbywa się po implementacji i służy wykrywaniu błędów, a nie definiowaniu oczekiwań użytkownika wobec produktu.

Pytanie 24

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

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

Pytanie 25

Jak określa się proces, w trakcie którego klasa przejmuje właściwości innej klasy w programowaniu obiektowym?

A. Hermetyzacja
B. Dziedziczenie
C. Polimorfizm
D. Abstrakcja
Dziedziczenie to kluczowa cecha programowania obiektowego (OOP), która pozwala jednej klasie (klasie pochodnej) przejmować cechy i zachowania innej klasy (klasy bazowej). Dzięki dziedziczeniu można wielokrotnie wykorzystywać kod, co prowadzi do większej modularności i zmniejszenia redundancji. Dziedziczenie umożliwia rozszerzanie funkcjonalności klas bazowych poprzez dodawanie nowych metod lub modyfikowanie istniejących, bez konieczności ingerencji w oryginalny kod. Przykład w C++: `class Pojazd { ... }; class Samochod : public Pojazd { ... };` – `Samochod` dziedziczy wszystkie publiczne i chronione (protected) elementy klasy `Pojazd`.

Pytanie 26

Jaką rolę pełni element statyczny w klasie?

A. Zachowuje wspólną wartość dla wszystkich instancji tej klasy
B. Pozwala na dynamiczne dodawanie nowych metod
C. Automatycznie likwiduje obiekty klasy po zakończeniu działania programu
D. Ogranicza dostęp do metod publicznych w klasie
Dynamiczne tworzenie nowych metod to zadanie metaprogramowania lub refleksji, a nie funkcjonalność składników statycznych. Ograniczenie dostępu do metod publicznych jest realizowane za pomocą modyfikatorów dostępu, takich jak 'private' czy 'protected', a nie przez składniki statyczne. Automatyczne usuwanie obiektów klasy jest zadaniem destruktora i mechanizmu garbage collection (GC), a nie cechą składnika statycznego.

Pytanie 27

Wskaż typy numeryczne o stałej precyzji

A. long long, long double
B. int, short, long
C. float, double
D. bool char, string
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 28

Jednym z elementów, które mają zostać zaimplementowane w aplikacji, jest możliwość cofnięcia ostatnich działań do 20 operacji wstecz (undo). Struktura danych, która jest odpowiednia do tego celu i pozwala na dostęp tylko do ostatnio dodanego elementu, to:

A. tablica
B. drzewo
C. stos
D. kolejka
Kolejka to struktura danych działająca na zasadzie FIFO (First In, First Out), co oznacza, że pierwszy dodany element jest pierwszym, który zostaje usunięty. Tego rodzaju organizacja danych nie nadaje się do implementacji funkcji cofania, ponieważ nie umożliwia łatwego dostępu do ostatnich operacji. W kontekście aplikacji umożliwiającej cofnięcie działań, kolejka nie zaspokaja potrzeb użytkownika, gdyż nie pozwala na usunięcie najnowszej operacji. Drzewo, jako bardziej złożona struktura, jest używane głównie do organizacji danych w hierarchicznej formie. Chociaż drzewa mogą być skuteczne w wyszukiwaniu i porządkowaniu danych, nie są odpowiednie do realizacji funkcji cofania ostatnich operacji, ponieważ nie oferują prostego dostępu do ostatnio dodanych elementów. Wreszcie, tablica jest statyczną strukturą danych, która przechowuje elementy w sekwencyjnej kolejności. Mimo że można by używać tablicy do przechowywania operacji, ich ograniczenia dotyczące rozmiaru i elastyczności sprawiają, że są mniej efektywne w porównaniu do stosu w kontekście cofania operacji. W związku z tym, ani kolejka, ani drzewo, ani tablica nie są odpowiednimi wyborami dla funkcjonalności cofania w aplikacji, co czyni stos jedynym logicznym rozwiązaniem.

Pytanie 29

Przedstawiono funkcjonalnie równoważne fragmenty kodu aplikacji Angular oraz React.js.

Ilustracja do pytania
A. obsługę zdarzenia przesłania formularza
B. funkcję, która wypełnia dane w formularzu podczas jego inicjalizacji
C. funkcję, która zapisuje do zmiennych f lub e dane z polaformularza
D. wyświetlanie w konsoli przeglądarki danych pobranych z pól formularza w czasie rzeczywistym, gdy użytkownik je wypełnia
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia, jak działa obsługa zdarzeń w obu frameworkach. W przypadku Angulara i React.js, kluczową rolą przedstawionego kodu jest obsługa zdarzenia zatwierdzenia formularza, a nie wypisywanie danych w czasie rzeczywistym. Odpowiedzi sugerujące wypisywanie danych w konsoli w czasie rzeczywistym mylnie interpretują mechanizm działania komponentów. Takie działanie wymagałoby implementacji dodatkowych funkcji, które nasłuchiwałyby na zmiany wprowadzane do pól formularza, np. za pomocą zdarzenia onChange w React.js. Kolejna błędna idea to przypisanie danych do zmiennych f lub e. W przedstawionych fragmentach kodu zmienne te służą do przechwytywania zdarzenia submit lub referencji formularza, a nie do przypisywania danych. Zrozumienie, że zmienne te są istotne dla obsługi zdarzeń, jest kluczowe. Ponadto zakładanie, że funkcje wypełniają dane podczas inicjacji formularza, jest niepoprawne. Takie działanie wiązałoby się z inicjalizacją wartości formularza, co w ukazanych przykładach nie ma miejsca, ponieważ celem jest przetwarzanie danych w momencie zatwierdzenia formularza. To typowy błąd wynikający z niepełnego zrozumienia przepływu danych i cyklu życia komponentów w nowoczesnych frameworkach JavaScriptowych.

Pytanie 30

W przedsiębiorstwie IT obowiązują określone zasady dotyczące zarządzania projektami, co wskazuje, że firma wykorzystuje model zarządzania

Ilustracja do pytania
A. prototypowy
B. zwinny
C. kaskadowy
D. spiralny
Prototypowy – Skupia się na szybkim tworzeniu prototypów, a nie iteracyjnym rozwoju. Kaskadowy – Charakteryzuje się sztywną, liniową strukturą, bez elastyczności. Spiralny – Łączy prototypowanie i analizę ryzyka, ale nie jest bezpośrednio modelem zwinnym.

Pytanie 31

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. PRINCE2
B. Model kaskadowy
C. Model V
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 32

Jakie działania można podjąć, aby uniknąć pogorszenia wzroku podczas korzystania z komputera?

A. Korzytać ze słuchawek tłumiących dźwięki
B. Stosować ergonomiczne podkładki pod ręce
C. Zachować stałą temperaturę w biurze
D. Używać filtrów przeciwodblaskowych na ekranie
Stosowanie filtrów przeciwodblaskowych na monitorze to skuteczny sposób na zapobieganie pogorszeniu wzroku podczas pracy przy komputerze. Filtry te redukują odbicia światła, zmniejszając zmęczenie oczu i poprawiając komfort pracy. Długotrwała praca przy komputerze bez odpowiedniej ochrony może prowadzić do zespołu suchego oka, bólu głowy i problemów z widzeniem. Filtry przeciwodblaskowe to prosty, ale bardzo efektywny sposób na poprawę ergonomii stanowiska pracy. W połączeniu z odpowiednim ustawieniem monitora, regularnymi przerwami oraz ćwiczeniami wzrokowymi, pomagają one w utrzymaniu zdrowia oczu.

Pytanie 33

Diagram Gantta, który został zaprezentowany, odnosi się do projektu IT. Przyjmując, że każdy członek zespołu posiada odpowiednie kompetencje do realizacji każdego z zadań, a każde zadanie może być przypisane tylko jednej osobie, która poświęca na nie pełen dzień pracy, to minimalna liczba osób w zespole wynosi

Ilustracja do pytania
A. 5 osób
B. 2 osoby
C. 1 osobę
D. 4 osoby
Diagram Gantta to narzędzie wizualne używane do planowania i zarządzania projektami. Pokazuje harmonogram zadań w czasie. Na przedstawionym diagramie mamy pięć zadań projektowych: Projekt aplikacji Grafika Strona WWW Aplikacja front-end i Aplikacja back-end. Aby określić minimalną liczbę osób potrzebnych do realizacji projektu należy zidentyfikować które zadania mogą być realizowane równocześnie. Z diagramu wynika że w pierwszym tygodniu (1.02 - 7.02) realizowane są zadania Projekt aplikacji i Grafika które wymagają dwóch osób. W kolejnych tygodniach zadania są ułożone tak by unikać nakładania się co oznacza że w każdej kolejnej fazie projektu można kontynuować prace przydzielając jedną osobę do każdego zadania. Dlatego minimalna liczba osób wymagana do realizacji tego projektu to dwie. Taki sposób planowania jest zgodny z zasadami efektywnego zarządzania zasobami w projektach informatycznych co pozwala na optymalne wykorzystanie czasu i umiejętności zespołu. Zastosowanie metody diagramu Gantta jest powszechną praktyką w branży IT pozwalającą na lepsze zobrazowanie zależności i potrzeb kadrowych w projektach.

Pytanie 34

Który z wymienionych algorytmów sortujących posiada średnią złożoność obliczeniową równą O(n log n)?

A. Sortowanie przez wybór
B. Sortowanie szybkie (QuickSort)
C. Sortowanie przez wstawianie
D. Sortowanie bąbelkowe
Sortowanie przez wstawianie jest dość powolne, z tą złożonością O(n²). W zasadzie fajnie sprawdza się tylko w małych zbiorach lub gdy tablica już jest mniej więcej posortowana. A jeśli chodzi o sortowanie bąbelkowe, to chyba nie ma co się łudzić, jest jednym z najgorszych algorytmów, też O(n²). I sortowanie przez wybór? Tutaj też nie ma rewelacji, bo porównuje się i wybiera najmniejszy element w każdej iteracji, co znacznie spowalnia działanie, zwłaszcza przy dużych tablicach. Tak że generalnie, lepiej unikać tych algorytmów, jeśli to możliwe.

Pytanie 35

Jaką rolę odgrywa destruktor w definicji klasy?

A. Ustawia wartości pól klasy
B. Usuwa instancje i zwalnia pamięć
C. Generuje nowe instancje klasy
D. Realizuje testy jednostkowe klasy
Tworzenie nowych obiektów to zadanie konstruktora, a nie destruktora. Inicjalizacja pól klasy odbywa się w konstruktorze lub metodach, które są wywoływane w trakcie życia obiektu. Testy jednostkowe klasy nie są związane z destruktorem – są one częścią procesu walidacji i testowania kodu, ale nie zarządzają cyklem życia obiektu. Destruktor jest odpowiedzialny za usuwanie obiektów i zwalnianie zasobów, co odróżnia go od metod inicjalizujących lub testujących klasę.

Pytanie 36

Jakie czynniki powinny być brane pod uwagę podczas organizacji zasobów ludzkich w projekcie?

A. Umiejętności oraz doświadczenie członków zespołu
B. Wyłącznie techniczne wymagania projektu
C. Budżet projektu, bez uwzględnienia kompetencji zespołu
D. Jedynie dostępność technologii
Podczas planowania zasobów ludzkich w projekcie kluczowe jest uwzględnienie umiejętności i doświadczenia członków zespołu. Odpowiednie dopasowanie kompetencji do wymagań projektu ma ogromny wpływ na jakość i tempo realizacji zadań. Zespół o różnorodnych umiejętnościach jest bardziej elastyczny i lepiej radzi sobie z napotkanymi wyzwaniami. Analiza umiejętności pozwala na efektywne przydzielanie zadań, co zwiększa produktywność i redukuje ryzyko opóźnień.

Pytanie 37

Jakie są różnice między typem łańcuchowym a typem znakowym?

A. Typ łańcuchowy przechowuje pojedyncze znaki, a znakowy długie ciągi znaków
B. Typ łańcuchowy obsługuje liczby całkowite, a znakowy liczby zmiennoprzecinkowe
C. Typ znakowy przechowuje pojedyncze znaki, a łańcuchowy ciągi znaków
D. Typ znakowy przechowuje dane logiczne, a łańcuchowy tekst
Typ znakowy (char) przechowuje pojedyncze znaki, natomiast typ łańcuchowy (string) przechowuje ciągi znaków. Różnica ta ma kluczowe znaczenie w programowaniu, ponieważ typ 'char' jest używany do operacji na pojedynczych literach, cyfrze lub symbolu, podczas gdy 'string' umożliwia przechowywanie i manipulowanie całymi wyrazami lub zdaniami. W wielu językach 'string' to bardziej złożona struktura danych, która zawiera tablicę znaków (array of characters), co pozwala na efektywną pracę z tekstem i budowanie interaktywnych aplikacji.

Pytanie 38

Jakie ma znaczenie "operacja wejścia" w kontekście programowania?

A. Zmiana wartości zmiennych globalnych
B. Naprawianie błędów w kodzie aplikacji
C. Wprowadzanie nowych funkcji do aplikacji
D. Przekazywanie danych do programu z zewnętrznych źródeł
Operacja wejścia w programowaniu polega na przekazywaniu danych do programu z zewnętrznego źródła, takiego jak klawiatura, plik lub strumień danych. W języku C++ typowym przykładem operacji wejścia jest `cin >> zmienna;`, która pobiera dane od użytkownika i przypisuje je do zmiennej. Operacje wejścia są niezbędne w interaktywnych aplikacjach, które wymagają danych od użytkownika w czasie rzeczywistym, umożliwiając dynamiczne przetwarzanie informacji.

Pytanie 39

Która z dokumentacji funkcji odpowiada przedstawionemu kodowi źródłowemu?

Ilustracja do pytania
A. Dokumentacja 2
B. Dokumentacja 3
C. Dokumentacja 1
D. Dokumentacja 4
Dokumentacje 1, 3 i 4 mogą zawierać błędy, nieścisłości lub brakujące elementy. Prawidłowa dokumentacja powinna zawierać opis funkcji, parametry oraz przykład użycia, co jest kluczowe dla programistów korzystających z kodu.

Pytanie 40

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

Ilustracja do pytania
A. stepper
B. przełącznik
C. listę rozwijaną
D. suwak
Kod XML/XAML definiuje przełącznik (Switch), który jest standardową kontrolką używaną do reprezentowania dwustanowego wyboru (włącz/wyłącz). Jest to często stosowane w aplikacjach mobilnych i desktopowych do aktywowania i dezaktywowania funkcji. W XAML przełącznik jest łatwy do skonfigurowania za pomocą atrybutu 'IsToggled', co umożliwia programistom szybkie zarządzanie stanem kontrolki.