Wyniki egzaminu

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

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Teoria wyznaczania celów definiuje właściwie sformułowany cel jako SMART, od pierwszych liter słów: specyficzny, Mierzalny, Ambitny, Realny oraz Terminowy. Wskaź, który cel wymaga wysiłku i stanowi wyzwanie dla pracownika?

A. Terminowy
B. Ambitny
C. Specyficzny
D. Mierzalny
Cel ambitny (Achievable) w kontekście teorii SMART oznacza taki, który wymaga wysiłku i stanowi wyzwanie, ale jednocześnie jest osiągalny. Cele ambitne motywują pracowników do działania i podnoszenia swoich kwalifikacji, co prowadzi do rozwoju zawodowego.

Pytanie 2

Co należy do zadań interpretera?

A. ulepszanie większej części kodu, aby przyspieszyć jego wykonanie
B. przekładanie kodu na kod maszynowy
C. sprawdzanie składni całego programu przed jego uruchomieniem
D. wykonanie skryptu instrukcja po instrukcji
Kompilatory tłumaczą cały kod na język maszynowy przed uruchomieniem, a optymalizowanie kodu to zadanie kompilatora, nie interpretera. Analiza składni całego programu jest również cechą kompilatorów, a nie interpreterów.

Pytanie 3

W przedstawionej ramce znajduje się fragment opisu metody compile języka Java wykorzystywanej w kontekście wyrażeń regularnych. Który symbol powinien być użyty, aby znaleźć dopasowanie na końcu tekstu?

Ilustracja do pytania
A. .
B. |
C. $
D. ^
Znak dolara $ w wyrażeniach regularnych w języku Java jest używany do oznaczenia końca ciągu znaków. Jeśli chcemy sprawdzić, czy konkretny wzorzec występuje na końcu danego tekstu, używamy właśnie tego metaznaku. Przykładowo, wyrażenie regularne World$ dopasuje tekst, w którym słowo World pojawia się na samym końcu. Jest to przydatne w wielu scenariuszach, takich jak walidacja struktury tekstu czy filtrowanie logów, gdzie ważna jest pozycja występowania wzorca. Konwencja ta jest zgodna z ogólnymi standardami regex, co czyni ją intuicyjną i uniwersalną w zastosowaniu. Dolar pełni kluczową rolę w automatyzacji procesów w przetwarzaniu tekstu, umożliwiając efektywne dopasowywanie końcowych wzorców w aplikacjach Java. Użycie $ jest zgodne z dobrymi praktykami kodowania, szczególnie w kontekście walidacji danych wejściowych, gdzie określenie końca ciągu jest często wymagane. Jest to także popularne w analizie danych, gdzie dane muszą spełniać określone kryteria co do ich zakończenia, takie jak rozszerzenia plików czy określone etykiety tekstowe.

Pytanie 4

W jaki sposób określa się wypadek związany z pracą?

A. Każde zdarzenie, które wymaga interwencji technicznej w miejscu zatrudnienia
B. Każde zdarzenie, które prowadzi do opóźnienia w wykonaniu obowiązków
C. Każdy incydent wynikający z działania osób trzecich
D. Nagłe zdarzenie związane z pracą, powodujące uraz lub śmierć
Wypadek przy pracy to nagłe zdarzenie związane z wykonywaną pracą, które powoduje uraz lub śmierć pracownika. Wypadki te mogą być wynikiem zaniedbań, nieprzestrzegania zasad BHP lub nieodpowiedniego zabezpieczenia stanowiska pracy. Przykładami wypadków przy pracy są upadki z wysokości, porażenia prądem, oparzenia chemiczne lub uszkodzenia ciała przez maszyny. Pracodawca jest zobowiązany do zgłaszania każdego wypadku przy pracy, prowadzenia dochodzenia w celu ustalenia przyczyn i wdrażania działań zapobiegających powtórzeniu się podobnych sytuacji. Wypadki przy pracy są jedną z głównych przyczyn absencji oraz roszczeń pracowniczych, dlatego prewencja i edukacja w zakresie BHP są niezwykle istotne.

Pytanie 5

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

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

Pytanie 6

Tworząc aplikację opartą na obiektach, należy założyć, że program będzie zarządzany przez

A. pętlę dyspozytora, która w zależności od zdarzenia wywoła właściwą funkcję
B. definicję warunków końcowego rozwiązania
C. moduły zawierające funkcje oraz zmienne globalne
D. zbiór instancji klas współpracujących ze sobą
W programowaniu obiektowym aplikacje są sterowane za pomocą instancji klas, które współpracują ze sobą. Obiekty reprezentują elementy rzeczywistego świata i komunikują się, co pozwala na większą elastyczność i modułowość kodu.

Pytanie 7

W środowisku do tworzenia aplikacji, gdzie przedstawiono menu, aby usunąć wszystkie pliki tymczasowe oraz wyniki projektu, należy wybrać opcję

Ilustracja do pytania
A. Run Code Analysis on Solution
B. Batch Build
C. Build Solution
D. Clean Solution
Opcja Clean Solution usuwa wszystkie pliki pośrednie i wyjściowe projektu, pozostawiając czysty kod źródłowy. Jest to przydatne przed ponownym kompilowaniem, aby uniknąć konfliktów i błędów wynikających z nieaktualnych plików.

Pytanie 8

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

A. Konstruktor można wywołać bez konieczności tworzenia obiektu
B. Konstruktor zawsze nosi tę samą nazwę co klasa i nie zwraca wartości
C. Konstruktor jest uruchamiany jedynie przez destruktor
D. Konstruktor powinien zwracać jakąś wartość
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 9

Jakie środowisko jest natywne do tworzenia aplikacji desktopowych w języku C#?

A. MS Visual Studio
B. PyCharm
C. Eclipse
D. NetBeans
MS Visual Studio to środowisko natywne do programowania aplikacji desktopowych w języku C#. To jedno z najczęściej używanych IDE do programowania w ekosystemie Microsoftu, oferujące wsparcie dla debugowania, projektowania interfejsu użytkownika i integracji z .NET. Visual Studio posiada również zaawansowane narzędzia do refaktoryzacji kodu, analizy oraz tworzenia aplikacji webowych i mobilnych.

Pytanie 10

Jakie jest oznaczenie normy międzynarodowej?

A. ISO
B. CE
C. PN
D. EN
ISO (International Organization for Standardization) to międzynarodowa organizacja zajmująca się opracowywaniem i wdrażaniem standardów technicznych. Oznaczenie ISO wskazuje, że produkt lub usługa spełnia międzynarodowe normy jakości i bezpieczeństwa, co ułatwia handel oraz współpracę na arenie międzynarodowej. Normy ISO obejmują szeroki zakres dziedzin, takich jak zarządzanie jakością (ISO 9001), zarządzanie środowiskowe (ISO 14001) czy bezpieczeństwo informacji (ISO 27001). Certyfikacja ISO buduje zaufanie klientów i zwiększa konkurencyjność firmy na rynku globalnym.

Pytanie 11

W C++ mechanizm programowania obiektowego, który wykorzystuje funkcje wirtualne (ang. Virtual) i umożliwia programiście pominięcie kontroli klasy pochodnej podczas wywoływania metod, nazywa się

A. przeciążeniem
B. dziedziczeniem
C. polimorfizmem
D. hermetyzacją
Dziedziczenie pozwala na przejmowanie metod i właściwości z klasy bazowej, ale samo w sobie nie umożliwia dynamicznego wyboru metody w czasie działania programu. Przeciążenie (overloading) polega na definiowaniu wielu metod o tej samej nazwie, ale różnych parametrach, co nie jest równoznaczne z polimorfizmem. Hermetyzacja (encapsulation) koncentruje się na ukrywaniu szczegółów implementacyjnych i dostępie do danych tylko przez interfejs klasy, ale nie dotyczy mechanizmu wyboru metody w trakcie działania aplikacji.

Pytanie 12

Która metoda wyszukiwania potrzebuje posortowanej listy do prawidłowego działania?

A. Wyszukiwanie binarne
B. Wyszukiwanie z hashem
C. Wyszukiwanie liniowe
D. Wyszukiwanie sekwencyjne
Wyszukiwanie binarne wymaga posortowanej tablicy do działania, co pozwala na dzielenie tablicy na pół przy każdym kroku, redukując liczbę operacji do O(log n). Algorytm ten działa poprzez porównanie poszukiwanego elementu ze środkowym elementem tablicy – jeśli element jest mniejszy, wyszukiwanie kontynuuje w lewej części tablicy, a jeśli większy, w prawej. Dzięki tej efektywności, wyszukiwanie binarne jest szeroko stosowane w bazach danych, systemach plików oraz aplikacjach, które operują na dużych zbiorach danych. Wyszukiwanie binarne jest prostym, ale potężnym algorytmem, który znacząco skraca czas przeszukiwania dużych zbiorów.

Pytanie 13

W programie desktopowym stworzono rozwijaną listę oraz przypisano cztery funkcje do obsługi zdarzeń tej kontrolki. Jaki komunikat pojawi się po dokonaniu wyboru w tej liście?

Ilustracja do pytania
A. Zdarzenie 3
B. Zdarzenie 4
C. Zdarzenie 2
D. Zdarzenie 1
W momencie wyboru elementu z listy rozwijanej zostanie wyświetlone 'Zdarzenie 1', co wskazuje na przypisanie odpowiedniej funkcji obsługującej interakcję użytkownika z kontrolką.

Pytanie 14

Jaki jest zasadniczy cel ataku phishingowego?

A. Uniemożliwienie dostępu do usług internetowych
B. Zakłócanie pracy sieci przez nadmiarowe zapytania
C. Zbieranie danych osobowych za pomocą podszywających się stron lub wiadomości
D. Kradzież haseł z pamięci operacyjnej urządzenia
Atak phishingowy różni się od innych form cyberataków, które również mogą mieć na celu uzyskanie danych, lecz realizowane są w inny sposób. Zakłócenie działania sieci poprzez nadmiar zapytań, znane jako atak DDoS, polega na przesyłaniu ogromnej ilości zapytań do serwera, co skutkuje jego przeciążeniem i niedostępnością dla użytkowników. Tego typu ataki są ukierunkowane na infrastrukturę, a nie na pojedyncze dane osobowe użytkowników. W przypadku wykradania haseł z pamięci operacyjnej urządzenia, technika ta wymaga stosowania złośliwego oprogramowania, które potrafi skanować pamięć RAM i wyłuskiwać informacje. Jest to bardziej złożony proces, który wymaga bezpośredniego dostępu do systemu ofiary, co różni się od prostoty i zasięgu ataku phishingowego. Ostatnia z wymienionych możliwości, blokowanie dostępu do usług online, często jest związana z ransomware, które szyfruje pliki użytkownika i żąda okupu za ich odblokowanie. W przeciwieństwie do phishingu, tego typu ataki są bardziej destrukcyjne i mają na celu zaszkodzenie systemowi, a nie kradzież danych osobowych przez oszustwa. Dlatego też, mimo że wszystkie wymienione metody są niebezpieczne, to jednak ich mechanizmy i cele są zupełnie inne niż w przypadku ataku phishingowego.

Pytanie 15

Na schemacie widoczny jest fragment diagramu blokowego pewnego algorytmu. Ile razy zostanie zweryfikowany warunek n<7?

Ilustracja do pytania
A. 5
B. 6
C. 7
D. 8
Warunek 'n < 7' będzie sprawdzany dokładnie 6 razy. To dlatego, że w klasycznej pętli for czy while liczba powtórzeń jest zawsze o jeden mniejsza niż wartość graniczna. Jak widzisz, w takich schematach liczba porównań idzie w parze z liczbą iteracji, a pętla zatrzymuje się, jak tylko warunek zostanie spełniony.

Pytanie 16

Jakie zagrożenie związane z użytkowaniem cyberprzestrzeni ma wpływ na zdrowie fizyczne?

A. Problemy z kręgosłupem wynikające z długotrwałego siedzenia
B. Depresja spowodowana cyberprzemocą
C. Uzależnienie od gier komputerowych
D. Rozpowszechnianie nieprawdziwych informacji
Wiesz, problemy z kręgosłupem przez zbyt długie siedzenie to naprawdę coś, na co trzeba zwrócić uwagę. To może prowadzić do bólu pleców, a nawet do wad postawy. Dobrze, że o tym mówimy! Fajnie jest robić przerwy na rozciąganie czy parę ćwiczeń. I pamiętaj, że ergonomiczne biurko i krzesło, które dobrze podpiera plecy, to klucz do zdrowia przy pracy z komputerem.

Pytanie 17

Co następuje, gdy błąd nie zostanie uchwycony przez blok catch?

A. Program kontynuuje działanie, pomijając błąd
B. Instrukcja throw zostanie automatycznie wykreślona
C. Błąd zostanie zignorowany przez kompilator
D. Program zakończy działanie z błędem
Jeśli wyjątek nie zostanie przechwycony przez blok 'catch', program zakończy działanie z błędem i wygeneruje komunikat o nieobsłużonym wyjątku. Jest to domyślne zachowanie w C++ i innych językach obsługujących wyjątki, co ma na celu zapobieganie dalszemu wykonywaniu kodu, który mógłby prowadzić do nieprzewidywalnych rezultatów. Obsługa wyjątków jest kluczowym elementem zapewniania stabilności i bezpieczeństwa aplikacji – brak jej implementacji może prowadzić do awarii programu. Dlatego zaleca się, aby zawsze stosować odpowiednie bloki 'try-catch' wokół kodu, który może generować wyjątki.

Pytanie 18

Algorytmy, które są wykorzystywane do rozwiązywania problemów przybliżonych lub takich, które nie mogą być opisane za pomocą algorytmu dokładnego, na przykład w prognozowaniu pogody czy identyfikacji nowych wirusów komputerowych, to algorytmy.

A. iteracyjne
B. heurystyczne
C. liniowe
D. rekurencyjne
Algorytmy heurystyczne są metodami rozwiązywania problemów, które są stosowane w sytuacjach, gdy nie ma jednoznacznego algorytmu dokładnego lub gdy problem jest zbyt skomplikowany, aby można go było rozwiązać w rozsądnym czasie. Przykłady zastosowań algorytmów heurystycznych obejmują przewidywanie pogody, gdzie różne modele atmosferyczne mogą być łączone w celu uzyskania lepszej prognozy, oraz rozpoznawanie nowych wirusów komputerowych, gdzie algorytmy heurystyczne pozwalają na identyfikację wzorców i anomalii w zachowaniu oprogramowania. Algorytmy te różnią się od tradycyjnych algorytmów liniowych, które działają na podstawie z góry określonych kroków oraz algorytmów rekurencyjnych, które polegają na rozwiązywaniu problemu poprzez dzielenie go na mniejsze podproblemy. Heurystyki są bardziej elastyczne, ponieważ pozwalają na zastosowanie intuicji i doświadczenia w procesie rozwiązywania. W praktyce algorytmy heurystyczne często łączą różne podejścia, aby uzyskać wyniki, które są wystarczająco dobre w krótkim czasie, co czyni je idealnymi do zastosowania w dynamicznie zmieniających się dziedzinach, takich jak analiza danych i sztuczna inteligencja.

Pytanie 19

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

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

Pytanie 20

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

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

Pytanie 21

Wskaż termin, który w języku angielskim odnosi się do "testów wydajnościowych"?

A. performance testing
B. security testing
C. integration testing
D. unit testing
Testy wydajnościowe, czyli performance testing, to coś, co naprawdę warto mieć na uwadze. Dzięki nim możemy sprawdzić, jak nasza aplikacja działa pod dużym obciążeniem i jak szybko odpowiada na różne żądania. Moim zdaniem, to kluczowy aspekt, zwłaszcza jeśli planujemy, żeby nasza aplikacja miała wielu użytkowników. W końcu, nikt nie lubi czekać, aż coś się załaduje!

Pytanie 22

Programista tworzy system zarządzania buforem drukowania dokumentów. Najnowsze zlecenie drukowania dodawane jest na koniec kolejki, a najstarsze z nich są przekazywane do drukarki. Jaką strukturę danych najłatwiej zastosować w tej sytuacji?

A. FIFO
B. Sterta
C. Stos
D. LIFO
Stos (LIFO - Last In, First Out) działa odwrotnie – najnowsze zadanie jest przetwarzane jako pierwsze, co nie odpowiada kolejności drukowania. Sterta to inna struktura danych używana głównie do dynamicznej alokacji pamięci, a nie do zarządzania kolejkami zadań. LIFO nie nadaje się do implementacji kolejki wydruku, ponieważ najstarsze zadania mogą pozostawać nieprzetworzone, co prowadzi do nieefektywności i dezorganizacji procesów drukowania.

Pytanie 23

Jaki typ pamięci RAM powinno się wybrać do efektywnego komputera do gier?

A. LPDDR4
B. DDR3
C. DDR4
D. DDR5
Wybór odpowiedniego rodzaju pamięci RAM jest kluczowy dla osiągnięcia maksymalnej wydajności w komputerze gamingowym. DDR5, najnowszy standard pamięci dynamicznej RAM, oferuje znaczące ulepszenia w porównaniu do swoich poprzedników. Główne różnice dotyczą prędkości, efektywności energetycznej oraz pojemności. DDR5 może oferować prędkości sięgające 8400 MT/s, co przyczynia się do szybszego transferu danych, co ma bezpośredni wpływ na wydajność gier i aplikacji wymagających wysokiej przepustowości. Ponadto, DDR5 wprowadza architekturę, która pozwala na zwiększenie ilości pamięci w jednym module, co umożliwia konfiguracje do 128 GB na pojedynczy moduł, co jest niezwykle korzystne dla graczy korzystających z bardziej wymagających tytułów. Przykłady gier, które potrafią w pełni wykorzystać możliwości DDR5 to Cyberpunk 2077 czy Call of Duty: Warzone, gdzie wydajność pamięci jest kluczowym elementem w uzyskiwaniu płynności rozgrywki. Stosowanie DDR5 nie tylko poprawia wydajność, ale również zwiększa przyszłościowość sprzętu, co sprawia, że jest to najlepszy wybór na dzisiejszym rynku komputerów gamingowych.

Pytanie 24

Jakie narzędzie wspiera tworzenie aplikacji desktopowych?

A. Angular
B. Symfony
C. WPF
D. Xamarin
WPF (Windows Presentation Foundation) to framework umożliwiający tworzenie aplikacji desktopowych na platformie Windows. Umożliwia projektowanie interfejsów użytkownika przy użyciu XAML.

Pytanie 25

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

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

Pytanie 26

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

A. Chronione pole
B. Static pole
C. Publiczne pole
D. Prywatne pole
Pole statyczne można zainicjować przed utworzeniem obiektu klasy, ponieważ należy ono do samej klasy, a nie do jej instancji. Statyczne pola są inicjalizowane tylko raz, w momencie pierwszego użycia klasy lub jej statycznych metod. Dzięki temu można przechowywać dane wspólne dla wszystkich obiektów danej klasy, co jest kluczowe w optymalizacji pamięci i kodu. Przykładem może być licznik instancji klasy, który zwiększa swoją wartość za każdym razem, gdy tworzony jest nowy obiekt.

Pytanie 27

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. D
B. A
C. B
D. C
Minimalna implementacja klasy Prostokat wymaga zaimplementowania podstawowych metod określonych w klasie abstrakcyjnej figura. Implementacja zawiera niezbędne pola i metody, które muszą być obecne, aby klasa mogła być skompilowana i działała poprawnie.

Pytanie 28

Co to jest wskaźnik w języku C?

A. Funkcja do dynamicznej alokacji pamięci
B. Typ danych do zapisywania tekstów
C. Zmienna przechowująca adres pamięci
D. Zmienna przechowująca wartość logiczną
Wskaźnik w języku C to zmienna przechowująca adres pamięci innej zmiennej. Umożliwia bezpośrednią manipulację pamięcią, co czyni wskaźniki niezwykle potężnym narzędziem w programowaniu niskopoziomowym. Dzięki wskaźnikom można dynamicznie alokować pamięć, przekazywać duże struktury danych do funkcji bez ich kopiowania oraz implementować struktury danych, takie jak listy, drzewa czy grafy. Wskaźniki umożliwiają także iterowanie po tablicach i efektywne zarządzanie zasobami systemowymi, co czyni je kluczowym elementem w programowaniu systemowym.

Pytanie 29

Jak określa się proces transferu danych z lokalnego komputera na serwer?

A. Wysyłanie danych
B. Pobieranie danych
C. Przesyłanie danych
D. Streaming
Pojęcia takie jak pobieranie danych, przesyłanie danych oraz streaming są często mylone z wysyłaniem danych, jednak każde z nich ma swoją unikalną definicję i zastosowanie. Pobieranie danych odnosi się do procesu ściągania informacji z serwera na komputer lokalny. Jest to operacja odwrotna do wysyłania danych i jest kluczowa dla użytkowników, którzy chcą uzyskać dostęp do plików lub zasobów umieszczonych na serwerze. Przykładowo, podczas przeglądania internetu, przeglądarka pobiera dane z serwerów, aby wyświetlić stronę użytkownikowi. Przesyłanie danych, z kolei, to termin ogólny, który można wykorzystać do opisania dowolnej wymiany informacji między lokalnym a zdalnym systemem. Obejmuje zarówno wysyłanie, jak i pobieranie danych, co sprawia, że użycie go w kontekście konkretnej operacji może być mylące. Wreszcie, streaming odnosi się do strumieniowego przesyłania danych, które umożliwia użytkownikom nieprzerwaną transmisję multimediów, takich jak filmy czy muzyka, w czasie rzeczywistym. W tym przypadku, dane są przesyłane w małych partiach, co pozwala na ich natychmiastowe odtwarzanie, a nie przechowywanie lokalnie. W związku z tym, choć wszystkie te procesy dotyczą transferu danych, to tylko wysyłanie danych odnosi się do przesyłania informacji z komputera lokalnego na serwer.

Pytanie 30

W obrębie klasy pracownik zdefiniowano przedstawione metody. Którą z nich można zgodnie z jej funkcją rozszerzyć o element diagnostyczny o treści: cout << "Obiekt został usunięty";

Ilustracja do pytania
A. ~pracownik
B. wypisz
C. pracownik
D. operator==
Destruktor (~pracownik) to metoda wywoływana automatycznie podczas usuwania obiektu. To idealne miejsce na dodanie komunikatu diagnostycznego informującego o usunięciu obiektu. Destruktory są kluczowe w zarządzaniu pamięcią i zasobami, zapewniając zwolnienie zasobów po zakończeniu działania obiektu.

Pytanie 31

Wskaż programowanie, w którym możliwe jest stworzenie aplikacji mobilnej dla systemu Android?

A. Swift
B. C++
C. Obiective-C
D. Java
C++ to język programowania ogólnego przeznaczenia, który jest często stosowany do tworzenia zaawansowanych aplikacji, gier oraz oprogramowania systemowego. Mimo że można go używać w kontekście aplikacji mobilnych, nie jest on preferowany dla platformy Android, ponieważ wymaga znacznie większej wiedzy technicznej dotyczącej zarządzania pamięcią i złożoności kodu. C++ może być używany w Androidzie, jednak tylko w kontekście tworzenia natywnych bibliotek, które następnie są wywoływane z kodu napisanego w Javie. Objective-C to język programowania używany głównie do tworzenia aplikacji na systemy operacyjne Apple, takie jak iOS. Nie jest on kompatybilny z systemem Android, co czyni go nieodpowiednim wyborem do tworzenia aplikacji mobilnych na tę platformę. Dodatkowo, Objective-C, jako język oparty na C, ma swoje unikalne właściwości, które nie są optymalne w kontekście aplikacji Android. Swift to nowoczesny język programowania stworzony przez Apple, który zastąpił Objective-C w rozwoju aplikacji na iOS. Podobnie jak Objective-C, Swift nie jest kompatybilny z Androidem, co oznacza, że programiści nie mogą go używać do tworzenia aplikacji na tę platformę. Zastosowanie Swifta ogranicza się głównie do ekosystemu Apple, co czyni go nieodpowiednim dla deweloperów, którzy chcą dotrzeć do użytkowników systemu Android.

Pytanie 32

Który z wymienionych frameworków służy do budowy aplikacji webowych w C#?

A. ASP.NET Core
B. React.js
C. Angular
D. Django
ASP.NET Core to nowoczesny, wydajny i skalowalny framework opracowany przez Microsoft, który jest przeznaczony do budowy aplikacji webowych w języku C#. ASP.NET Core umożliwia tworzenie dynamicznych stron internetowych, API oraz aplikacji mikroserwisowych. Jego modularność i wsparcie dla kontenerów (Docker) oraz chmury sprawiają, że jest to jeden z najczęściej wybieranych frameworków w środowiskach enterprise. ASP.NET Core obsługuje zarówno aplikacje serwerowe, jak i aplikacje klient-serwer, a dzięki technologii Razor Pages i Blazor pozwala na budowanie aplikacji, w których logika biznesowa jest ściśle zintegrowana z warstwą prezentacji. Dodatkowo ASP.NET Core oferuje wbudowane mechanizmy do zarządzania tożsamością użytkowników, autoryzacji i autentykacji, co czyni go doskonałym wyborem do tworzenia aplikacji biznesowych oraz korporacyjnych.

Pytanie 33

Z jakiego obiektu można skorzystać, aby stworzyć kontrolkę wskazaną strzałką na ilustracji?

Ilustracja do pytania
A. Box - dla biblioteki WPF; JField - dla biblioteki Swing
B. Text - dla biblioteki WPF; JText - dla biblioteki Swing
C. Windows - dla biblioteki WPF; JFrame - dla biblioteki Swing
D. TextBox - dla biblioteki WPF; JTextField - dla biblioteki Swing
TextBox w WPF oraz JTextField w Swing to kontrolki umożliwiające wprowadzanie tekstu przez użytkownika. Są one szeroko stosowane w aplikacjach desktopowych do tworzenia formularzy i interaktywnych interfejsów użytkownika.

Pytanie 34

Jaką rolę odgrywa destruktor w definicji klasy?

A. Realizuje testy jednostkowe klasy
B. Ustawia wartości pól klasy
C. Generuje nowe instancje klasy
D. Usuwa instancje i zwalnia pamięć
Destruktor to specjalna metoda klasy, która jest automatycznie wywoływana w momencie, gdy obiekt przestaje być używany. Jego zadaniem jest zwalnianie zasobów, takich jak pamięć dynamiczna, uchwyty do plików lub połączenia sieciowe. Destruktor ma tę samą nazwę co klasa, poprzedzoną symbolem `~` w C++ (`~Samochod()`). Destruktor zapobiega wyciekom pamięci i zapewnia, że wszystkie zasoby są poprawnie zwalniane po zakończeniu pracy obiektu. Jest to kluczowy element zarządzania cyklem życia obiektu w językach takich jak C++.

Pytanie 35

Jaki model zarządzania projektami przewiduje, że wszystkie etapy są realizowane jeden po drugim, bez możliwości wrócenia do wcześniejszych faz?

A. Model przyrostowy
B. Metodyki zwinne (Agile)
C. Model spiralny
D. Model kaskadowy (waterfall)
Model spiralny pozwala na wielokrotne przechodzenie przez różne fazy projektu, co daje większą elastyczność. Model przyrostowy umożliwia realizację projektu w etapach, co pozwala na dostarczanie częściowych wersji produktu. Metodyki zwinne (Agile) opierają się na iteracjach i umożliwiają powrót do poprzednich etapów, w zależności od potrzeb i informacji zwrotnych od klienta.

Pytanie 36

Jakie zdarzenie jest wywoływane, gdy kliknięta zostaje myszą nieaktywna kontrolka lub okno?

A. blur
B. validating
C. focus
D. keyup
Zdarzenie 'blur' jest przeciwieństwem 'focus' i oznacza utratę aktywności elementu po kliknięciu poza nim. 'keyup' to zdarzenie wywoływane po zwolnieniu klawisza klawiatury, nie związane z klikaniem myszą. 'validating' dotyczy walidacji danych, co ma miejsce podczas sprawdzania poprawności, a nie przy kliknięciu nieaktywnego okna.

Pytanie 37

Który z wymienionych przykładów przedstawia typ rekordowy?

A. struct w języku C++
B. float w języku C
C. int w języku Python
D. bool w języku Java
Typ 'struct' w języku C++ jest przykładem typu rekordowego, który pozwala na grupowanie zmiennych różnego typu pod jedną nazwą. Struktury pozwalają na przechowywanie powiązanych danych, np. informacji o pracowniku (imię, nazwisko, wiek) w jednym obiekcie. Struktury są kluczowe w programowaniu proceduralnym i obiektowym, umożliwiając efektywne zarządzanie danymi złożonymi. Typy rekordowe pozwalają na budowanie bardziej złożonych i zorganizowanych aplikacji, co zwiększa ich czytelność i ułatwia zarządzanie kodem.

Pytanie 38

Która z wymienionych właściwości najlepiej charakteryzuje biblioteki dynamiczne?

A. Są statycznie dołączane do pliku wykonywalnego
B. Zawierają kod źródłowy aplikacji
C. Są ładowane w trakcie działania aplikacji
D. Są ładowane podczas kompilacji
Jak mówimy o ładowaniu bibliotek w czasie kompilacji, to mamy na myśli biblioteki statyczne. One są wplecione w plik wykonywalny. Z kolei biblioteki dynamiczne, to jakby zewnętrzne funkcje, które nie są częścią źródłowego kodu programu. Przy statycznym dołączaniu wszelkie potrzebne zasoby są w jednym pliku, a to odróżnia je od tych dynamicznych, które wchodzą w grę dopiero, gdy program działa.

Pytanie 39

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

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

Pytanie 40

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

A. Diagram Gantta
B. Backlog sprintu
C. Product backlog
D. Harmonogram projektu
Product backlog to dokument zawierający listę funkcjonalności produktu uporządkowanych według priorytetów. Jest to jedno z głównych narzędzi w metodykach Agile, szczególnie w Scrumie, gdzie backlog stanowi podstawę do planowania sprintów. Zawiera on wszystkie elementy, które muszą zostać zaimplementowane, w tym nowe funkcje, poprawki błędów oraz zadania techniczne. Priorytety są ustalane przez właściciela produktu (Product Ownera) i dostosowywane na bieżąco w zależności od zmieniających się wymagań i potrzeb biznesowych. Dzięki backlogowi zespół może skupić się na dostarczaniu najważniejszych funkcji, co pozwala na szybkie reagowanie na feedback i rozwój aplikacji zgodnie z oczekiwaniami klienta.