Wyniki egzaminu

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

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

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

Jaki typ złośliwego oprogramowania funkcjonuje w tle, zbierając dane o wprowadzanych hasłach?

A. Spyware
B. Keylogger
C. Adware
D. Trojan
Keylogger to takie złośliwe oprogramowanie, które działa w tle i rejestruje wszystkie naciśnięcia klawiszy. To naprawdę niebezpieczne, bo może przechwytywać hasła i inne ważne dane osobowe. Keyloggery mogą się dostawać na komputer na różne sposoby, na przykład przez zainfekowane pliki, złośliwe reklamy albo w ramach innych niebezpiecznych programów. Przykładami takich keyloggerów są Spyrix czy Perfect Keylogger, które mogą monitorować, co robisz na komputerze. Z punktu widzenia bezpieczeństwa, standardy takie jak ISO/IEC 27001 mówią, jak ważna jest ochrona informacji. Dlatego tak istotne jest, żeby użytkownicy mieli świadomość zagrożeń, jakie niosą keyloggery i używali dobrego oprogramowania antywirusowego, żeby chronić swoje urządzenia i dane.

Pytanie 2

Jaką rolę odgrywa program Jira?

A. Planowanie, śledzenie oraz raportowanie zadań projektowych
B. Produkcja grafik 3D
C. Modyfikowanie arkuszy kalkulacyjnych
D. Zarządzanie edycjami systemu operacyjnego
Jira to jedno z najpopularniejszych narzędzi do zarządzania projektami, wykorzystywane głównie w metodykach Agile i Scrum. Umożliwia planowanie, monitorowanie i raportowanie zadań projektowych na różnych etapach ich realizacji. Dzięki elastycznym tablicom kanban i sprintom, Jira pozwala zespołom programistycznym śledzić postępy, zarządzać backlogiem oraz efektywnie przydzielać zasoby. Funkcjonalności takie jak automatyzacja procesów, śledzenie błędów (bug tracking) i integracja z innymi narzędziami (np. GitHub, Bitbucket) sprawiają, że Jira jest wszechstronnym rozwiązaniem do zarządzania nawet najbardziej złożonymi projektami. Dzięki generowanym raportom i wykresom burndown, menedżerowie mogą dokładnie analizować tempo pracy i podejmować decyzje w oparciu o dane.

Pytanie 3

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

A. Destruktor
B. Funkcja zaprzyjaźniona
C. Konstruktor
D. Metoda statyczna
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 4

Zapis w języku C# przedstawia definicję klasy Car, która:

Ilustracja do pytania
A. używa pól prywatnych klasy Vehicle
B. jest klasą podstawową (nie dziedziczy po innej klasie)
C. odziedzicza po Vehicle
D. jest zaprzyjaźniona z klasą Vehicle
Klasa Car dziedziczy po klasie Vehicle w języku C#. Dziedziczenie pozwala na wykorzystanie funkcji i właściwości klasy bazowej (Vehicle) w klasie pochodnej (Car). Umożliwia to wielokrotne użycie kodu i rozszerzanie funkcjonalności bez konieczności powielania kodu. Jest to fundamentalny mechanizm programowania obiektowego.

Pytanie 5

Jakie jest główne zadanie portali społecznościowych?

A. Udostępnianie informacji i interakcja między użytkownikami
B. Tworzenie kopii zapasowych plików
C. Analiza rezultatów działalności gospodarczej
D. Zarządzanie handlem produktami i usługami
Główna funkcja portali społecznościowych polega na umożliwieniu użytkownikom tworzenia, udostępniania oraz wymiany treści, a także komunikacji w czasie rzeczywistym. Portale takie jak Facebook, Twitter czy Instagram pozwalają na interakcję poprzez posty, komentarze, polubienia oraz wiadomości prywatne. Użytkownicy mogą dzielić się zdjęciami, filmami, artykułami lub osobistymi przemyśleniami, co sprzyja budowaniu społeczności i nawiązywaniu relacji. Funkcjonalności te są zgodne z najlepszymi praktykami UX/UI, które kładą nacisk na intuicyjność i łatwość obsługi. W kontekście SEO, portale społecznościowe są także ważne ze względu na możliwość generowania ruchu na zewnętrzne strony internetowe poprzez linki i udostępnienia. Przykładem może być wykorzystanie platformy Instagram do promocji produktów, gdzie użytkownicy mogą kliknąć w linki do sklepu. Takie działania zwiększają widoczność marki w Internecie oraz angażują odbiorców, co jest kluczowe dla efektywnej strategii marketingowej.

Pytanie 6

Jaki jest wymagany sposób do realizacji algorytmu sortowania bąbelkowego na n-elementowej tablicy?

A. jedna pętla operująca na 2n elementach oraz warunek
B. dwie pętle funkcjonujące na co najmniej (n+1) elementach każda
C. dwie pętle działające na najwyżej n-elementach każda
D. n-liczby warunków
Jedna pętla nie jest wystarczająca do zaimplementowania sortowania bąbelkowego, ponieważ proces porównywania i zamiany miejscami elementów wymaga wielokrotnego przechodzenia przez tablicę. Pętle działające na (n+1) elementach są błędnym założeniem – algorytm działa na n-elementowej tablicy, a każda iteracja zmniejsza liczbę elementów do porównania. Liczba warunków nie ma kluczowego znaczenia w sortowaniu bąbelkowym – najważniejsza jest struktura iteracyjna, która umożliwia porównywanie elementów w parach, aż do momentu pełnego posortowania tablicy.

Pytanie 7

Zaznaczone elementy w przedstawionych obramowaniach mają na celu

Ilustracja do pytania
A. uzyskanie nazwy obiektu obrazującego okno aplikacji
B. zapisanie tytułu okna do obiektu Tekst
C. przypisanie nazwy obiektu obrazującego okno aplikacji
D. ustawienie tytułu okna na "Tekst"
Elementy w ramkach ustawiają tytuł okna na 'Tekst'. Jest to operacja zmiany właściwości okna, która pozwala użytkownikowi na dostosowanie tytułu wyświetlanego na pasku aplikacji.

Pytanie 8

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

A. Karta graficzna
B. Kontroler DMA
C. Zasilacz
D. Mostek północny (Northbridge)
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 jest podstawowe zadanie wykorzystania frameworka Node.js w aplikacjach internetowych?

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

Pytanie 10

Rozpoczęcie tworzenia procedury składowej o nazwie dodajUsera w MS SQL wymaga użycia poleceń

A. create procedure dodajUsera
B. add dodajUsera procedure
C. create dodajUsera procedure
D. add procedure dodajUsera
W MS SQL procedury składowe tworzy się za pomocą polecenia 'CREATE PROCEDURE'. Jest to standardowa składnia używana do definiowania procedur, które mogą przechowywać złożone operacje SQL i być wielokrotnie wywoływane. Procedury pozwalają na automatyzację zadań, optymalizację kodu oraz zwiększenie wydajności poprzez zmniejszenie liczby zapytań przesyłanych do serwera.

Pytanie 11

Które słowo kluczowe w C++ służy do definiowania klasy nadrzędnej?

A. base
B. virtual
C. public
D. class
Słowo kluczowe 'public' nie definiuje klasy – określa jedynie modyfikator dostępu, umożliwiający dostęp do pól i metod z zewnątrz klasy. 'Virtual' służy do deklarowania metod wirtualnych i wskazuje, że dana metoda może być przesłonięta w klasie pochodnej. 'Base' nie jest słowem kluczowym w C++ – w niektórych językach programowania oznacza klasę bazową, ale nie jest używane do definiowania klasy w C++.

Pytanie 12

Wartości składowych RGB koloru #AA41FF zapisane w systemie szesnastkowym po przekształceniu na system dziesiętny są odpowiednio

A. 170, 64, 255
B. 160, 65, 255
C. 160, 64, 255
D. 170, 65, 255
Kolor #AA41FF w formacie RGB składa się z trzech komponentów: czerwony (AA - 170), zielony (41 - 65) i niebieski (FF - 255). Przekształcenie wartości szesnastkowych na dziesiętne pozwala na precyzyjne odwzorowanie koloru w różnych aplikacjach graficznych. Tego typu konwersje są kluczowe w projektowaniu stron internetowych i aplikacji, gdzie kolorystyka ma istotne znaczenie dla UX/UI.

Pytanie 13

Który z poniższych aspektów najlepiej definiuje działanie e-sklepu?

A. System obsługi koszyka oraz realizacji zamówień
B. Dostęp do bazy danych klientów
C. Zarządzanie serwerem e-mail
D. Mechanizm generowania grafiki 3D
System zarządzania koszykiem i realizacją zamówień to kluczowy element każdej aplikacji e-commerce (sklepu internetowego). Umożliwia użytkownikom dodawanie produktów do koszyka, zarządzanie ich ilością, a następnie finalizację transakcji poprzez proces realizacji zamówienia i płatności. Tego typu funkcjonalność wymaga integracji z bazą danych oraz systemami płatności online, co zapewnia bezpieczeństwo i wygodę użytkownika. Systemy koszyków zakupowych często oferują zaawansowane funkcje, takie jak kupony rabatowe, kody promocyjne czy integracje z magazynami i systemami logistycznymi. Realizacja zamówienia obejmuje procesy takie jak autoryzacja płatności, generowanie faktur oraz śledzenie zamówień, co jest podstawą funkcjonowania nowoczesnych platform e-commerce.

Pytanie 14

Który framework jest powszechnie wykorzystywany do tworzenia aplikacji internetowych w języku Python?

A. ASP.NET Core
B. Django
C. Angular
D. React.js
Django to framework stworzony specjalnie do budowy aplikacji webowych w języku Python. Jest jednym z najbardziej popularnych i zaawansowanych frameworków typu full-stack, który oferuje szeroki wachlarz narzędzi umożliwiających szybkie i efektywne tworzenie aplikacji internetowych. Django pozwala na tworzenie aplikacji zgodnych z zasadą DRY (Don't Repeat Yourself), co oznacza minimalizację powtarzalnego kodu. Posiada wbudowany panel administracyjny, system ORM (Object-Relational Mapping) oraz zabezpieczenia przed atakami CSRF i XSS. Dzięki Django programiści mogą skupić się na rozwijaniu logiki biznesowej, a nie na konfiguracji podstawowych funkcji aplikacji, co znacznie skraca czas wdrożenia gotowego produktu.

Pytanie 15

Który z poniższych problemów jest najczęściej rozwiązywany z zastosowaniem algorytmu rekurencyjnego?

A. Generowanie ciągu Fibonacciego
B. Wyszukiwanie binarne w uporządkowanej tablicy
C. Sortowanie za pomocą metody QuickSort
D. Obliczanie sumy elementów w tablicy
Generowanie ciągu Fibonacciego to klasyczny przykład problemu, który najczęściej rozwiązuje się za pomocą algorytmu rekurencyjnego. Algorytm rekurencyjny wywołuje sam siebie, dzieląc problem na mniejsze podproblemy, aż do osiągnięcia przypadku bazowego. W przypadku Fibonacciego każda liczba jest sumą dwóch poprzednich, a algorytm rekurencyjny odwzorowuje to wprost poprzez wywołania fib(n-1) + fib(n-2). Rekurencja jest intuicyjna i często stosowana w zadaniach matematycznych, takich jak obliczanie silni czy rozwiązywanie problemów związanych z przeszukiwaniem drzew. Choć rekurencja jest elegancka, dla dużych n może prowadzić do nadmiarowych obliczeń, dlatego często optymalizuje się ją za pomocą pamięci podręcznej (memoizacji) lub iteracyjnych wersji algorytmu.

Pytanie 16

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

A. RAD funkcjonuje tylko w systemach operacyjnych Linux
B. RAD pozwala na szybkie tworzenie prototypów i rozwijanie aplikacji przy minimalnej ilości kodu
C. RAD nie oferuje żadnych narzędzi do debugowania
D. RAD koncentruje się tylko na testowaniu programów
RAD (Rapid Application Development) to metodologia tworzenia oprogramowania, która kładzie nacisk na szybkie prototypowanie i iteracyjne podejście do rozwoju aplikacji, minimalizując czas poświęcany na pisanie kodu od podstaw. Kluczowym aspektem RAD jest możliwość szybkiego dostosowywania aplikacji do zmieniających się wymagań biznesowych oraz ciągła interakcja z klientem. Narzędzia RAD, takie jak Visual Studio, Delphi czy OutSystems, pozwalają na budowanie aplikacji przy użyciu graficznych interfejsów, gotowych komponentów i automatycznego generowania kodu, co znacząco skraca czas wprowadzenia produktu na rynek. RAD doskonale sprawdza się w przypadku projektów o krótkim cyklu życia i wymagających szybkich zmian.

Pytanie 17

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

A. TensorFlow
B. Qt
C. Numpy
D. Django
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 18

Jaką funkcję spełniają atrybuty klasy w programowaniu obiektowym?

A. Zawierają informacje opisujące stan obiektu
B. Umożliwiają przeprowadzanie operacji na obiektach
C. Określają globalne stałe programu
D. Zapisują wartości lokalne w funkcjach
Zmienne lokalne w metodach przechowują wartości tymczasowe i są usuwane po zakończeniu wykonywania metody, co odróżnia je od pól klasy, które istnieją tak długo, jak istnieje obiekt. Stałe globalne programu są dostępne z każdego miejsca w kodzie, ale nie są związane z konkretną instancją obiektu – ich wartość nie zmienia się dla różnych obiektów. Operacje wykonywane na obiektach są definiowane przez metody klasy, a nie przez pola – pola jedynie przechowują dane, natomiast metody określają zachowanie obiektów i umożliwiają interakcję z nimi.

Pytanie 19

Który z frameworków bazuje na budowaniu komponentów przy użyciu języka JavaScript?

A. Node.js
B. Django
C. ASP.NET Core
D. React.js
React.js to popularna biblioteka JavaScript, która opiera się na komponencie jako podstawowym elemencie budowy interfejsu użytkownika. Framework ten umożliwia tworzenie dynamicznych i interaktywnych aplikacji webowych, które cechują się wysoką wydajnością. Dzięki wykorzystaniu komponentów, programiści mogą wielokrotnie wykorzystywać te same elementy interfejsu, co znacznie upraszcza zarządzanie kodem i poprawia jego czytelność. React jest szeroko stosowany w budowie Single Page Applications (SPA) i wspiera technologię Virtual DOM, co minimalizuje liczbę operacji na rzeczywistym DOM i zwiększa szybkość renderowania stron. React jest szczególnie polecany do tworzenia nowoczesnych aplikacji webowych o dynamicznych interfejsach, co czyni go jednym z liderów na rynku frontendowym.

Pytanie 20

Który z wymienionych elementów NIE stanowi części instrukcji dla użytkownika programu?

A. Opis metody instalacji aplikacji
B. Instrukcje dotyczące obsługi poszczególnych funkcji aplikacji
C. Opis testów jednostkowych
D. Rozwiązywanie problemów związanych z użytkowaniem aplikacji
Instrukcja użytkownika programu zawiera opisy dotyczące sposobu instalacji aplikacji, konfiguracji oraz obsługi poszczególnych funkcji. Jest to kluczowy dokument pomagający użytkownikom w szybkim wdrożeniu się w pracę z oprogramowaniem. Zawiera również sekcje dotyczące rozwiązywania typowych problemów oraz wskazówki, jak efektywnie korzystać z narzędzi i funkcji aplikacji. Instrukcja użytkownika może być dostępna w formie elektronicznej (PDF, strony WWW) lub papierowej, a jej celem jest uproszczenie procesu wdrażania oraz ograniczenie liczby zgłoszeń do działu wsparcia technicznego. Dokumentacja tego typu stanowi również ważny element budowania pozytywnego doświadczenia użytkownika (UX).

Pytanie 21

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 w składni
B. Błąd dzielenia przez zero
C. Błąd kompilacyjny
D. Niekompatybilność typów danych w kodzie
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 22

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

A. do zmiennej typu int przypisano wartość 243
B. funkcja oczekuje całkowitej jako argumentu, a została wywołana z napisem jako parametrem
C. w trakcie deklaracji zmiennej wystąpił błąd, zastosowano nieistniejący typ
D. funkcja zwraca typ void, a w momencie wywołania nie jest przypisana do żadnej zmiennej
Błąd 'incompatible types' to dość powszechny problem, kiedy przypisujesz coś do zmiennej, ale typ się nie zgadza. Na przykład, jeśli próbujesz wstawić tekst do miejsca, gdzie oczekiwana jest liczba całkowita, to właśnie wtedy pojawia się ten błąd. W językach jak Java, gdzie typy są mocno zdefiniowane, musisz uważać na takie rzeczy.

Pytanie 23

Jak nazywa się wzorzec projektowy, do którego odnosi się ta definicja?

Ilustracja do pytania
A. Fasada
B. Dekorator
C. Kompozyt
D. Prototyp
Prototyp to wzorzec kreacyjny, który koncentruje się na tworzeniu nowych obiektów poprzez klonowanie istniejących. Różni się od fasady, ponieważ nie zajmuje się uproszczeniem interfejsów, lecz optymalizacją procesu tworzenia obiektów. Jest używany, gdy klasy instancji mają podobne stany i konieczne jest szybkie ich generowanie z zachowaniem pewnych właściwości. Dekorator natomiast to wzorzec strukturalny umożliwiający dynamiczne dodawanie nowych funkcjonalności do obiektów, bez modyfikacji ich struktury bazowej. Podstawowym celem dekoratora jest rozszerzenie możliwości obiektów, co odróżnia go od fasady, która skupia się na upraszczaniu dostępu do złożonych systemów. Dekorator działa na poziomie pojedynczych komponentów, gdzie fasada dotyczy całego systemu. Kompozyt umożliwia tworzenie hierarchicznych struktur obiektowych, pozwalając na jednolite traktowanie indywidualnych obiektów i ich złożonych struktur. Umożliwia pracę z drzewiastymi strukturami danych, co czyni go bardziej odpowiednim do zastosowań, gdzie istotna jest praca z kolekcjami obiektów jako całością. Wszystkie te wzorce mają odmienne założenia i zastosowania, a błąd w ich rozpoznaniu może wynikać z braku zrozumienia ich specyficznych ról i miejsc w architekturze oprogramowania. Wybór odpowiedniego wzorca wymaga zrozumienia zarówno wymagań systemowych, jak i ich długoterminowych implikacji na projekt i utrzymanie oprogramowania. Każdy z tych wzorców wnosi unikalne wartości, ale ich zastosowanie powinno być zgodne z konkretnymi potrzebami projektowymi i architektonicznymi systemu, nad którym się pracuje.

Pytanie 24

Jaką wartość ma zmienna b po wykonaniu poniższego kodu?

Ilustracja do pytania
A. 20
B. 2
C. 11
D. 5
Powszechnym błędem w rozwiązywaniu tego typu zadań jest nieuwzględnienie wszystkich kroków pętli oraz niepoprawne obliczenie liczby iteracji. Można łatwo przeoczyć fakt jak często pętla się wykonuje i w jaki sposób zmieniają się wartości zmiennych. W przypadku przedstawionego kodu zmienna a początkowo wynosi 1 i zwiększa się o 2 w każdej iteracji aż do przekroczenia wartości 10. To oznacza że pętla wykona się pięć razy. Każdy przebieg pętli zmniejsza wartość b o 3 z powodu operacji b = b - c gdzie c jest równe 3. Jeśli nie uwzględni się wszystkich pięciu iteracji można błędnie wywnioskować inną wartość końcową b. Poprawne zrozumienie działania pętli while i operacji arytmetycznych w niej zawartych jest kluczowe w programowaniu. Takie pomyłki pokazują znaczenie czytelności i precyzji w analizie kodu oraz przypominają o konieczności dokładnego śledzenia zmian w zmiennych w czasie trwania pętli aby poprawnie przewidzieć wynik końcowy. Kluczowym standardem w branży jest testowanie kodu i ręczne śledzenie jego działania zwłaszcza w kontekście algorytmów iteracyjnych co pozwala na uniknięcie błędnych założeń i wyników.

Pytanie 25

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

Ilustracja do pytania
A. Text, Cursor, BackColor
B. (Name), UseWaitCursor, BackgroundImage
C. Text, UseWaitCursor, BackColor
D. (Name), Cursor, BackgroundImage
Pole 'UseWaitCursor' dotyczy kursora, jak sobie czekasz na coś, a 'BackgroundImage' ustawia tło, czyli nie kolor, a obrazek. A '(Name)' to wewnętrzna nazwa komponentu, a nie to, co widzisz na górnej belce.

Pytanie 26

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

A. sortowanie bąbelkowe
B. sortowanie szybkie
C. sortowanie przez zliczanie
D. sortowanie przez wstawianie
Sortowanie szybkie (QuickSort) jest algorytmem niestabilnym, co oznacza, że nie zachowuje kolejności elementów o tej samej wartości. Jego główną zaletą jest efektywność, jednak brak stabilności może być istotny w aplikacjach wymagających zachowania oryginalnej kolejności danych.

Pytanie 27

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

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

Pytanie 28

Jakie funkcje realizuje polecenie "git clone"?

A. Tworzy lokalną kopię już istniejącego repozytorium
B. Rejestruje zmiany w historii repozytorium
C. Usuwa zdalne repozytorium
D. Łączy dwa branche w repozytorium
Polecenie 'git clone' tworzy kopię lokalną istniejącego repozytorium, co pozwala programistom na szybkie rozpoczęcie pracy z projektem. Proces ten pobiera całą historię commitów oraz wszystkie gałęzie repozytorium, dzięki czemu użytkownik posiada pełną wersję projektu na swoim komputerze. Jest to podstawowe polecenie podczas rozpoczynania pracy nad nowym projektem, który znajduje się na platformach takich jak GitHub, GitLab czy Bitbucket. 'git clone' umożliwia również sklonowanie repozytoriów prywatnych, pod warunkiem posiadania odpowiednich uprawnień dostępu.

Pytanie 29

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

A. Promieniowanie elektromagnetyczne
B. Nadmiar światła w miejscu pracy
C. Stres i monotonia pracy
D. Zanieczyszczenie powietrza
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 30

Celem mechanizmu obietnic (ang. promises) w języku JavaScript jest

A. ulepszenie czytelności kodu synchronicznego
B. zarządzanie funkcjonalnością związaną z kodem asynchronicznym
C. zarządzanie przechwytywaniem błędów aplikacji
D. zastąpienie mechanizmu dziedziczenia w programowaniu obiektowym
Mechanizm obietnic (Promises) w JavaScript umożliwia obsługę kodu asynchronicznego. Pozwala na efektywne zarządzanie operacjami, które mogą się zakończyć sukcesem lub błędem w przyszłości, np. pobieranie danych z API. Promisy umożliwiają unikanie tzw. 'callback hell' i poprawiają czytelność kodu.

Pytanie 31

W zaprezentowanym kodzie stworzono abstrakcyjną klasę figura oraz klasę prostokąta, która dziedziczy po niej, zawierającą zdefiniowane pola i konstruktory. Wskaż minimalną wersję implementacji sekcji /* metody klasy */ dla klasy Prostokat:

Ilustracja do pytania
A. C
B. B
C. A
D. D
Inne implementacje albo pomijają wymagane metody, co prowadzi do błędów kompilacji, albo zawierają niepotrzebne rozszerzenia, które wykraczają poza minimalny zakres. Pomijanie wymaganych konstruktorów powoduje, że klasa nie dziedziczy poprawnie po klasie nadrzędnej.

Pytanie 32

Zaprezentowany diagram ilustruje wyniki przeprowadzonych testów:

Ilustracja do pytania
A. ochrony
B. użyteczności
C. funkcjonalności
D. wydajnościowych
Wykres obrazuje wyniki testów wydajnościowych, które pokazują, jak system lub aplikacja radzi sobie pod dużym obciążeniem. Testy te pomagają zidentyfikować wąskie gardła i umożliwiają optymalizację wydajności.

Pytanie 33

Sposób deklaracji Klasa2 wskazuje, że

Ilustracja do pytania
A. Klasa2 stanowi klasę bazową
B. Klasa1 jest dzieckiem Klasy2
C. Klasa2 dziedziczy od Klasa1
D. Klasa1 dziedziczy od Klasa2
Deklaracja Klasa2 jako klasy dziedziczącej po Klasa1 oznacza, że Klasa2 przejmuje wszystkie publiczne i chronione (protected) pola oraz metody klasy bazowej (Klasa1). Dziedziczenie to jeden z filarów programowania obiektowego, który umożliwia ponowne wykorzystanie kodu i rozszerzanie funkcjonalności istniejących klas. Dzięki temu Klasa2 może nie tylko korzystać z metod Klasa1, ale także nadpisywać je, co jest kluczowe dla implementacji polimorfizmu. Dziedziczenie pozwala na budowanie hierarchii klas, co prowadzi do lepszego zarządzania kodem i ułatwia jego skalowalność. Przykładem może być klasa Pojazd, z której dziedziczy klasa Samochod, rozszerzając jej funkcjonalność o dodatkowe cechy i metody specyficzne dla samochodów.

Pytanie 34

Który fragment kodu ilustruje zastosowanie rekurencji?

Ilustracja do pytania
A. Blok 4
B. Blok 2
C. Blok 3
D. Blok 1
Blok 2, 3 i 4 mogą zawierać iteracyjne pętle lub inne struktury sterujące, ale nie posiadają wywołań funkcji wewnątrz własnej definicji. Iteracja różni się od rekurencji, ponieważ nie korzysta z wywołań zwrotnych funkcji, co stanowi główną cechę rekurencji.

Pytanie 35

Definicja konstruktora dla zaprezentowanej klasy w języku C++ może być sformułowana jak w

Ilustracja do pytania
A. Deklaracji 2
B. Deklaracji 3
C. Deklaracji 1
D. Deklaracji 4
Deklaracja 1 przedstawia poprawną definicję konstruktora w języku C++. Konstruktor jest specjalną metodą, która ma taką samą nazwę jak klasa i nie posiada wartości zwracanej. Służy do inicjalizacji obiektów klasy i może być przeciążany, co pozwala na tworzenie różnych wersji konstruktora.

Pytanie 36

Jakie operacje na plikach można uznać za podstawowe?

A. Usuwanie oraz tworzenie nowych plików
B. Jedynie otwieranie oraz zamykanie plików
C. Otwieranie, zapisywanie, odczytywanie, zamykanie
D. Zmiana rozszerzenia plików podczas działania programu
Podstawowe operacje na plikach obejmują otwieranie, zapisywanie, odczytywanie i zamykanie. Te cztery operacje są fundamentem zarządzania plikami w programowaniu i pozwalają na efektywne przechowywanie oraz przetwarzanie danych. Otwarcie pliku umożliwia dostęp do jego zawartości, zapis pozwala na modyfikację lub tworzenie nowych plików, odczyt umożliwia pobieranie danych, a zamknięcie pliku zapewnia integralność danych i zwalnia zasoby systemowe. W wielu językach, takich jak C++, Java czy Python, operacje te są realizowane za pomocą dedykowanych funkcji i klas, co ułatwia ich implementację w kodzie.

Pytanie 37

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. Kompilator przetwarza kod na język maszynowy w momencie jego wykonywania
D. Interpreter tworzy plik wykonywalny, który funkcjonuje niezależnie od otoczenia
Kompilator zamienia kod źródłowy na język maszynowy zanim program się uruchomi. W efekcie dostajemy plik wykonywalny, taki jak .exe w Windowsie. To fajne, bo po skompilowaniu aplikacja działa samodzielnie i nie potrzeba jej tłumaczyć od nowa. Dzięki temu programy, które są skompilowane, są zazwyczaj dużo szybsze i lepiej zoptymalizowane niż te, które są interpretowane. Warto wiedzieć, że kompilatory są wykorzystywane w językach takich jak C, C++ czy Java. Kompilacja ma też tę zaletę, że można wykrywać błędy jeszcze przed uruchomieniem programu, co jest naprawdę przydatne.

Pytanie 38

W jakim języku został stworzony framework Angular?

A. Typescript
B. PHP
C. Postscript
D. C#
Angular został napisany w TypeScript, który jest nadzbiorem JavaScriptu i wprowadza statyczne typowanie. TypeScript pozwala na lepszą organizację kodu, co czyni Angular bardziej stabilnym i efektywnym narzędziem do tworzenia aplikacji webowych.

Pytanie 39

Który z etapów umożliwia zwiększenie efektywności aplikacji przed jej wydaniem?

A. Tworzenie interfejsu graficznego
B. Testowanie jednostkowe
C. Optymalizacja kodu
D. Dodawanie komentarzy do kodu
Testowanie jednostkowe pozwala na wykrycie błędów w poszczególnych komponentach aplikacji, ale samo w sobie nie prowadzi do optymalizacji kodu. Tworzenie interfejsu graficznego (GUI) jest istotne dla atrakcyjności aplikacji, ale nie wpływa bezpośrednio na jej wydajność. Dodawanie komentarzy do kodu poprawia jego dokumentację i czytelność, ale nie ma wpływu na szybkość działania aplikacji.

Pytanie 40

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

Ilustracja do pytania
A. brak konstruktora w definicji klasy
B. inicjacja obiektu została błędnie zapisana
C. argumenty konstruktora powinny być przekazane podczas inicjacji obiektu
D. pole autor jest niedostępne z tego poziomu
Błąd związany z polem 'autor' wynika z problemu dostępu do pól prywatnych w klasie. W programowaniu obiektowym, pola prywatne (oznaczone jako private) są dostępne tylko wewnątrz danej klasy i nie mogą być bezpośrednio modyfikowane lub odczytywane z zewnątrz. Aby umożliwić dostęp do takich pól, programista powinien utworzyć odpowiednie metody dostępowe – tzw. gettery i settery. Jest to przykład hermetyzacji (encapsulation), jednego z filarów programowania obiektowego, który pozwala na kontrolę nad tym, jak dane są przechowywane i modyfikowane. Hermetyzacja zwiększa bezpieczeństwo aplikacji i zapobiega przypadkowym zmianom wartości pól obiektu.