Wyniki egzaminu

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

Egzamin zdany!

Wynik: 38/40 punktów (95,0%)

Wymagane minimum: 20 punktów (50%)

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

Jakie funkcje realizuje polecenie "git clone"?

A. Łączy dwa branche w repozytorium
B. Usuwa zdalne repozytorium
C. Rejestruje zmiany w historii repozytorium
D. Tworzy lokalną kopię już istniejącego 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 2

Wskaż kod, który jest funkcjonalnie równy zaprezentowanemu

Ilustracja do pytania
A. Kod 4
B. Kod 3
C. Kod 1
D. Kod 2
Kod 2 jest funkcjonalnie równorzędny do przedstawionego. Zawiera te same operacje i instrukcje, co zapewnia identyczne wyniki dla tych samych danych wejściowych.

Pytanie 3

Jakie składniki powinien mieć plan projektu?

A. Tylko czas wykonania i budżet
B. Terminy i zasoby ludzkie
C. Etapy projektu, ramy czasowe, zasoby i zadania
D. Wyłącznie etapy projektu
Harmonogram projektu powinien zawierać etapy projektu, ramy czasowe, zasoby oraz zadania. Taka kompleksowa struktura umożliwia skuteczne zarządzanie projektem i pozwala na śledzenie postępów. Każdy etap harmonogramu powinien być dokładnie opisany, a zadania powinny być przypisane do odpowiednich członków zespołu. Uwzględnienie zasobów i ram czasowych pozwala na precyzyjne planowanie i minimalizuje ryzyko opóźnień. Harmonogram stanowi nieodłączny element projektów zarządzanych zarówno w modelu Waterfall, jak i Agile, dostarczając przejrzystość na każdym etapie realizacji.

Pytanie 4

Jakie jest zadanie interpretera?

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

Pytanie 5

Jakie są różnice między testami funkcjonalnymi a niefunkcjonalnymi?

A. Testy funkcjonalne są realizowane tylko przez końcowych użytkowników, natomiast niefunkcjonalne przez programistów
B. Testy funkcjonalne oceniają zgodność działania aplikacji z założeniami, a niefunkcjonalne analizują aspekty wydajności, bezpieczeństwa i użyteczności
C. Testy funkcjonalne oceniają wydajność aplikacji, podczas gdy niefunkcjonalne weryfikują poprawność kodu
D. Testy funkcjonalne koncentrują się na interfejsie, a niefunkcjonalne na backendzie aplikacji
Testy funkcjonalne sprawdzają, czy aplikacja działa zgodnie z założeniami i spełnia określone wymagania użytkownika. Obejmują one testowanie interfejsu, przepływu pracy oraz funkcji kluczowych dla działania oprogramowania. Testy niefunkcjonalne koncentrują się na aspektach takich jak wydajność, skalowalność, bezpieczeństwo i użyteczność. Różnica polega na tym, że testy funkcjonalne oceniają 'co' robi aplikacja, podczas gdy testy niefunkcjonalne oceniają 'jak dobrze' aplikacja działa w różnych warunkach. Testy niefunkcjonalne obejmują testy obciążeniowe (load testing), testy penetracyjne oraz analizy UX. Oba typy testów są niezbędne dla zapewnienia wysokiej jakości oprogramowania i jego niezawodności w środowisku produkcyjnym.

Pytanie 6

Który z wymienionych parametrów dysku twardego ma największy wpływ na jego wydajność?

A. Rodzaj złącza (SATA/PCIe)
B. Pojemność dysku
C. Ilość pamięci podręcznej (Cache)
D. Prędkość obrotowa talerzy (RPM)
Prędkość obrotowa talerzy (RPM) jest kluczowym parametrem wpływającym na szybkość dysku twardego. Wyrażana w obrotach na minutę, RPM definiuje, jak szybko talerze dysku mogą obracać się, co z kolei wpływa na czas dostępu do danych. Dyski HDD o wyższej prędkości obrotowej, takie jak 7200 RPM w porównaniu do 5400 RPM, zazwyczaj oferują lepszą wydajność, co przekłada się na szybsze odczyty i zapisy danych. Przykładowo, w zastosowaniach wymagających intensywnego przetwarzania danych, takich jak gry komputerowe czy edycja wideo, wybór dysku o wyższej prędkości obrotowej może znacznie poprawić ogólne wrażenia użytkownika. Warto również zauważyć, że chociaż złącze SATA i PCIe wpływają na szybkość transferu, to w kontekście dysków HDD, RPM pozostaje jednym z najważniejszych czynników. Standardy takie jak SATA III oferują transfery do 6 Gb/s, ale jeśli talerze nie obracają się wystarczająco szybko, potencjał transferu nie zostanie w pełni wykorzystany. Z tego powodu, RPM jest kluczowym wskaźnikiem wydajności w kontekście dysków twardych.

Pytanie 7

Po uruchomieniu podanego kodu w języku C++ w konsoli pojawi się ciąg liczb

Ilustracja do pytania
A. 1 2 3 4 5
B. 2 3 4 5 6
C. 1 2 3 4 5 6
D. 2 3 4 5 6 7
Kod w C++ wyświetla ciąg liczb '2 3 4 5 6', co wynika z iteracyjnego zwiększania wartości początkowej w pętli. Algorytm startuje od wartości 2 i zatrzymuje się przed osiągnięciem 7, co skutkuje wyświetleniem kolejnych liczb.

Pytanie 8

Do implementacji w aplikacji jednokierunkowej funkcji skrótu, zwanej funkcją haszującą, można wykorzystać algorytm

A. AES
B. DES
C. MD5
D. RSA
MD5 to popularny algorytm haszujący, który generuje skróty (hash) dla danych wejściowych. Jest stosowany w kryptografii do tworzenia sum kontrolnych i weryfikacji integralności danych, choć obecnie jest uważany za podatny na kolizje.

Pytanie 9

Jakie z następujących skutków może wystąpić w przypadku naruszenia prawa autorskiego?

A. Unieważnienie umowy licencyjnej użytkownika końcowego
B. Nałożenie grzywny lub kary więzienia
C. Obowiązek zamieszczenia publicznych przeprosin
D. Zakaz korzystania z oprogramowania open-source
Naruszenie prawa autorskiego może skutkować nałożeniem grzywny lub karą więzienia. W zależności od skali naruszenia oraz obowiązujących przepisów, osoba odpowiedzialna za naruszenie może zostać pociągnięta do odpowiedzialności karnej lub cywilnej. Kary mogą obejmować nie tylko grzywny finansowe, ale także konieczność wypłaty odszkodowań na rzecz twórcy lub właściciela praw autorskich. W niektórych przypadkach naruszenie praw autorskich na dużą skalę może prowadzić do kary pozbawienia wolności, co podkreśla wagę przestrzegania przepisów o ochronie własności intelektualnej.

Pytanie 10

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

A. Sortowanie bąbelkowe
B. Sortowanie szybkie (QuickSort)
C. Sortowanie przez wstawianie
D. Sortowanie przez wybór
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 11

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. wypisz
B. operator==
C. ~pracownik
D. pracownik
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 12

Jakie znaczenie ma przystosowanie interfejsu użytkownika do różnych platform?

A. Usuwa konieczność testowania na różnych platformach
B. Gwarantuje optymalne korzystanie z aplikacji na każdym urządzeniu
C. Pozwala na unifikację kodu niezależnie od używanej platformy
D. Umożliwia skoncentrowanie się wyłącznie na funkcjonalności aplikacji
Dostosowanie interfejsu do różnych urządzeń to naprawdę ważna sprawa, żeby wszystko działało jak należy. Aplikacje, które dobrze się przystosowują do różnych ekranów czy systemów, dają lepsze doświadczenie użytkownikom. Użycie takich technik jak responsywny design czy elastyczne układy, jak flexbox czy grid, to super pomysł. Dzięki temu elementy interfejsu same się skalują, a aplikacja wygląda spójnie na telefonach, tabletach i komputerach. Nie ma nic gorszego niż chaotyczny interfejs na różnych urządzeniach, więc to naprawdę kluczowa kwestia.

Pytanie 13

Jakie zastosowanie ma język Swift w zakresie aplikacji mobilnych?

A. Do zarządzania bazami danych w aplikacjach mobilnych
B. Do tworzenia aplikacji na system iOS
C. Do przeprowadzania testów aplikacji mobilnych
D. Do tworzenia aplikacji na system Android
Swift to język programowania stworzony przez Apple, który służy do tworzenia aplikacji na system iOS, macOS, watchOS i tvOS. Swift został zaprojektowany z myślą o nowoczesnym i bezpiecznym programowaniu, eliminując wiele typowych błędów spotykanych w Objective-C, takich jak null pointer exceptions. Dzięki swojej wydajności, przejrzystej składni i integracji z XCode, Swift stał się standardem w ekosystemie Apple. Język wspiera interaktywną platformę Playground, co umożliwia szybkie testowanie kodu, a także pełną integrację z narzędziami Apple, co czyni go niezbędnym narzędziem dla deweloperów aplikacji na iPhone'y i iPady.

Pytanie 14

Jakie działania należy podjąć, aby uniknąć nieskończonej rekurencji w danej funkcji?

A. Zastosować iterację zamiast rekurencji
B. Wykorzystać automatyczny debugger w kompilatorze
C. Rozszerzyć zakres zmiennych globalnych
D. Dodać warunek zakończenia w funkcji
Warunek stopu to taki kluczowy element w rekurencji, który właściwie mówi, kiedy funkcja powinna przestać się wywoływać. Jak masz ten warunek, to funkcja wraca z wynikiem zamiast kręcić się w kółko, co mogłoby prowadzić do jakiegoś szaleństwa, tzn. przepełnienia stosu. Myślę, że warto zwrócić uwagę, że dodanie tego warunku to naprawdę podstawowa sprawa w programowaniu, bo bez niego wszystko może się posypać i przestanie działać tak, jak powinno.

Pytanie 15

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

A. Dialog wyboru pliku
B. Pole tekstowe
C. Pasek narzędziowy
D. Przycisk
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 16

Jaki jest podstawowy cel przystosowania aplikacji do publikacji w sklepie mobilnym?

A. Dostosowanie kodu aplikacji w celu zwiększenia jej wydajności
B. Dostosowanie aplikacji do wymogów platformy oraz regulacji sklepu
C. Zmniejszenie rozmiaru aplikacji poniżej 10 MB
D. Zapewnienie, że aplikacja działa jedynie w trybie offline
Dostosowanie aplikacji do wymagań platformy i przepisów sklepu mobilnego (np. Google Play lub App Store) to kluczowy krok w procesie publikacji aplikacji. Sklepy mobilne wymagają, aby aplikacje spełniały określone standardy dotyczące bezpieczeństwa, dostępności, wydajności oraz zgodności z wytycznymi interfejsu użytkownika. Proces ten obejmuje testowanie aplikacji pod kątem stabilności, optymalizację grafik i ikon, a także dostosowanie opisów i metadanych aplikacji, co zwiększa jej widoczność i atrakcyjność dla użytkowników. Przestrzeganie wytycznych App Store lub Google Play jest niezbędne, aby aplikacja mogła zostać zatwierdzona i udostępniona do pobrania.

Pytanie 17

Wskaź rodzaj testowania, które realizuje się w trakcie tworzenia kodu źródłowego?

A. testy wydajnościowe
B. testy kompatybilności
C. testy wdrożeniowe
D. testy jednostkowe
Testy jednostkowe są przeprowadzane podczas fazy tworzenia kodu źródłowego. Pozwalają one na sprawdzenie poprawności działania poszczególnych funkcji i modułów w izolacji, co pomaga wcześnie wykrywać błędy.

Pytanie 18

Kod zaprezentowany w filmie w języku C++ nie przechodzi kompilacji. Co należy zmodyfikować w tym kodzie, aby kompilacja odbyła się bez błędów?

A. poprawnie zapisać warunek w instrukcji if w linii 11, np. sprawdz(x)==true
B. naprawić błąd w funkcji sprawdz, który polega na braku nawiasów {} w pętli for
C. dodać deklarację funkcji sprawdz przed funkcją main
D. zadeklarować zmienną sprawdz przed jej wykorzystaniem w linii 11
Błąd kompilacji wynika z braku deklaracji funkcji przed jej użyciem. Dodanie deklaracji funkcji 'sprawdz' przed funkcją main eliminuje ten problem i umożliwia prawidłowe skompilowanie programu.

Pytanie 19

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

A. C++
B. Swift
C. Java
D. Obiective-C
Java jest jednym z najważniejszych języków programowania wykorzystywanych do tworzenia aplikacji mobilnych na platformę Android. Został stworzony przez firmę Sun Microsystems i obecnie jest rozwijany przez Oracle. Java jest językiem obiektowym, co oznacza, że umożliwia programistom tworzenie aplikacji w sposób modularny i zorganizowany. W kontekście Androida, Java jest podstawowym językiem, w którym bazowe API (Application Programming Interface) zostało opracowane. Wysoka wydajność, bogata biblioteka klas oraz wsparcie dla programowania wielowątkowego sprawiają, że Java jest idealnym wyborem dla deweloperów aplikacji mobilnych. Przykładowo, do stworzenia prostego interfejsu użytkownika w aplikacji Android, programista może wykorzystać takie elementy jak TextView czy Button, które są częścią frameworka Android SDK. Współczesne praktyki wskazują również na wykorzystanie Java w połączeniu z Kotlinem, co pozwala na osiągnięcie lepszych rezultatów i zwiększa efektywność w pracy nad projektami mobilnymi.

Pytanie 20

Podaj przykład incydentu w miejscu pracy?

A. złe samopoczucie spowodowane przewlekłą chorobą zatrudnionego, które wystąpiło w biurze
B. kontuzja stawu skokowego, która zdarzyła się w trakcie bezpośredniej drogi do miejsca zatrudnienia
C. oparzenie dłoni, które miało miejsce podczas nieobowiązkowego szkolenia w czasie prywatnym pracownika
D. złamanie nogi w trakcie urlopu wypoczynkowego przyznanego przez pracodawcę
Jak dla mnie, to uraz stawu skokowego w drodze do pracy jak najbardziej można uznać za wypadek przy pracy. Wiesz, nawet jeśli to się wydarzy poza firmą, to jeśli szedłeś prosto do niej, to masz prawo do ochrony i świadczeń z ubezpieczenia. To ważne, żeby to wiedzieć.

Pytanie 21

W zaprezentowanym fragmencie kodu występuje błąd logiczny. Na czym on polega?

Ilustracja do pytania
A. nieprawidłowym warunku pętli, który sprawia, że pętla jest nieskończona
B. niewłaściwym warunku pętli, co powoduje, że pętla nigdy się nie wykona
C. braku zainicjowania zmiennej x, co powoduje, że zmienna nie ma wartości początkowej
D. niepoprawnym użyciu funkcji cout, co skutkuje tym, że zmienna jest wczytywana w pętli
Nieprawidłowy warunek pętli powoduje, że staje się ona nieskończona, co jest częstym problemem w programowaniu. W tym przypadku warunek while(x != 0 || x != 5) jest zawsze prawdziwy, ponieważ dla każdej wartości x, która nie jest jednocześnie równa 0 i 5, pętla nigdy się nie zakończy. To logiczny błąd, ponieważ zmienna x nigdy nie osiągnie stanu, w którym oba warunki będą jednocześnie fałszywe. W praktyce powinno się stosować warunki logiczne, które mogą stać się fałszywe dla jakiegoś stanu zmiennych, co pozwala pętli zakończyć działanie. Częstym wzorcem jest użycie operatora && zamiast ||, aby sprawdzić, czy zmienna osiągnęła konkretny zakres wartości. W ten sposób można zagwarantować, że program nie wejdzie w nieskończoną pętlę. Tego typu błędy są często wykrywane podczas testowania i debugowania kodu, a ich unikanie jest kluczowe w zapewnieniu poprawnego działania aplikacji. Dobre praktyki obejmują dokładne przemyślenie warunków pętli i testowanie ich w różnych scenariuszach.

Pytanie 22

Zgodnie z informacjami zawartymi w ramce, wskaż, który z rysunków ilustruje element przypisany do klasy Badge określonej w bibliotece Bootstrap?

Ilustracja do pytania
A. D
B. B
C. C
D. A
Klasa 'Badge' w Bootstrap jest używana do wyświetlania małych etykietek lub liczników, często w kontekście przycisków lub elementów nawigacyjnych. Badge pomaga wskazać np. liczbę nieprzeczytanych wiadomości, powiadomień lub status danego elementu. Jest to kluczowy element UI, który poprawia przejrzystość interfejsu użytkownika.

Pytanie 23

Technika konstruowania algorytmu polegająca na rozbiciu na dwa lub więcej mniejszych podproblemów, aż do momentu, gdy ich części będą wystarczająco proste do bezpośredniego rozwiązania, nosi nazwę:

A. najkrótszej trasy
B. komiwojażera
C. dziel i zwyciężaj
D. heurystycznej
Metoda 'dziel i zwyciężaj' polega na podziale problemu na mniejsze podproblemy, aż do osiągnięcia najprostszych przypadków, które można łatwo rozwiązać. To podejście jest stosowane w algorytmach takich jak Merge Sort czy QuickSort.

Pytanie 24

Zaprezentowany fragment kodu w języku C# tworzy hasło. Wskaż zdanie PRAWDZIWE dotyczące charakterystyki tego hasła:

Ilustracja do pytania
A. Może zawierać małe i wielkie litery oraz cyfry
B. Ma co najmniej 8 znaków oraz zawiera małe i wielkie litery oraz cyfry
C. Jest maksymalnie 7-znakowe, co wynika z wartości zmiennej i
D. Może zawierać zarówno małe, jak i wielkie litery, cyfry oraz symbole
Niektóre odpowiedzi błędnie sugerują, że hasło może zawierać mniej niż 8 znaków lub ogranicza się do liter i cyfr, co zmniejsza poziom bezpieczeństwa. Symbole dodatkowe i różna długość haseł wpływają na jego siłę, ale w tym przypadku skupiamy się na podstawowych zasadach budowy haseł.

Pytanie 25

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

A. Backlog sprintu
B. Diagram Gantta
C. Harmonogram projektu
D. Product backlog
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.

Pytanie 26

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 27

Która z właściwości przycisków typu Radio-button opisanych w przedstawionym fragmencie dokumentacji jest poprawna?

Ilustracja do pytania
A. Właściwość labelPosition może przyjmować jedną z dwóch opcji
B. Etykieta (label) może być umieszczona wyłącznie po przycisku radio-button
C. Przyciski radio-button są organizowane w elemencie o nazwie
D. Wartość właściwości value grupy radio przechowuje tekst etykiety dla każdego radio-button
Właściwość 'labelPosition' przyjmuje jedną z dwóch wartości, co pozwala na ustawienie pozycji etykiety po lewej lub prawej stronie przycisku radio-button. Jest to kluczowa funkcjonalność, która wpływa na układ i dostępność interfejsu użytkownika.

Pytanie 28

Jaką funkcję pełni operator "|" w języku C++?

A. Logiczne "lub"
B. Bitowe "lub"
C. Operację przesunięcia bitów w prawo
D. Bitowe "xor"
Operator `|` w języku C++ jest operatorem bitowym `OR`, który porównuje bity dwóch liczb i zwraca `1` w pozycji bitu, jeśli przynajmniej jeden z odpowiadających sobie bitów jest `1`. Przykład: `5 | 3` (w notacji binarnej `0101 | 0011`) zwróci `0111`, co odpowiada liczbie `7`. Operatory bitowe są często używane w programowaniu systemowym, kryptografii oraz manipulacji danymi na poziomie bitowym.

Pytanie 29

Wynik dodawania liczb binarnych 1101 i 1001 to

A. 10111
B. 1110
C. 10110
D. 1001
Sumą liczb binarnych 1101 i 1001 jest 10110. Dodawanie binarne odbywa się analogicznie do dodawania dziesiętnego, z przeniesieniem jedności na kolejny bit, co prowadzi do poprawnego wyniku.

Pytanie 30

Który z podanych terminów najlepiej odnosi się do składnika statycznego w klasie?

A. Metoda z dostępem ograniczonym tylko do tej samej klasy
B. Zmienna lokalna wewnątrz danej klasy
C. Funkcja, która wywołuje destruktor danej klasy
D. Pole lub metoda, która jest przypisana do klasy, a nie do jej instancji
Składnik statyczny klasy to pole lub metoda, która należy do klasy jako całości, a nie do konkretnego obiektu. Oznacza to, że istnieje tylko jedna kopia składnika statycznego współdzielona przez wszystkie obiekty tej klasy. Przykład w C++: `class Licznik { public: static int liczbaObiektow; }`. Zmienna `liczbaObiektow` przechowuje liczbę utworzonych instancji klasy i jest wspólna dla wszystkich obiektów. Składniki statyczne są często używane do implementacji liczników, zarządzania zasobami lub przechowywania danych globalnych w obrębie klasy.

Pytanie 31

Jaki numer telefonu należy wybrać, aby skontaktować się z pogotowiem ratunkowym w Polsce?

A. 998
B. 113
C. 112
D. 997
Numer 112 to europejski numer alarmowy, który działa we wszystkich krajach Unii Europejskiej, w tym w Polsce. Jego wybór pozwala na natychmiastowe połączenie się z dyspozytorem służb ratunkowych (pogotowie ratunkowe, straż pożarna, policja). Jest to uniwersalny numer, który można wybrać z dowolnego telefonu komórkowego lub stacjonarnego, nawet jeśli urządzenie nie ma karty SIM. Dzięki tej uniwersalności jest to najczęściej rekomendowany numer w nagłych wypadkach.

Pytanie 32

Jakie znaczenie ma termin "hierarchia dziedziczenia" w kontekście programowania obiektowego?

A. Układ klas w strukturę, w której klasy pochodne dziedziczą cechy od klas bazowych
B. Zbiór klas, które nie mają wspólnych powiązań
C. Zespół metod i pól posiadających ten sam modyfikator dostępu
D. Układ klas, który ogranicza występowanie dziedziczenia wielokrotnego
Hierarchia dziedziczenia to fundamentalna koncepcja programowania obiektowego, polegająca na organizacji klas w strukturę, w której klasy pochodne dziedziczą właściwości (pola i metody) od klas bazowych. Pozwala to na wielokrotne wykorzystanie kodu, co zwiększa jego modularność i zmniejsza redundancję. Klasa bazowa dostarcza ogólne cechy i metody, podczas gdy klasy pochodne rozszerzają lub modyfikują tę funkcjonalność, dostosowując ją do bardziej specyficznych wymagań. Przykładem jest klasa 'Pojazd', po której mogą dziedziczyć klasy 'Samochód' i 'Motocykl', zachowując wspólne atrybuty, takie jak 'maksymalna prędkość' czy 'masa'.

Pytanie 33

Który z wymienionych typów stanowi przykład typu znakowego?

A. string
B. float
C. boolean
D. char
Typ 'char' to przykład typu znakowego, który przechowuje pojedynczy znak (litera, cyfra, symbol). W językach takich jak C++, Java czy C, typ 'char' zajmuje jeden bajt pamięci i jest podstawą do obsługi operacji tekstowych oraz przetwarzania danych wejściowych. Typy znakowe są często wykorzystywane do manipulacji łańcuchami tekstowymi, przechowywania kodów ASCII i pracy z danymi wejściowymi. Znaki są podstawowym elementem budowy tekstów i mogą być łączone w tablice (ciągi znaków) lub przetwarzane indywidualnie.

Pytanie 34

Na zaprezentowanych ilustracjach znajduje się okno aplikacji w wersji początkowej oraz po wprowadzeniu danych. Przyjmując, że pole "Dostępne środki" służy do wprowadzania wartości typu rzeczywistego, wskaż elementy struktury, które najlepiej odpowiadają tym danym?

Ilustracja do pytania
A. Kod 4
B. Kod 1
C. Kod 2
D. Kod 3
Dla pola 'Dostępne środki', które powinno przechowywać wartości rzeczywiste, odpowiednią strukturą jest ta zawierająca typ danych float lub double. Są to typy zmiennoprzecinkowe umożliwiające przechowywanie liczb z częścią ułamkową, co jest kluczowe przy operacjach finansowych i precyzyjnych obliczeniach. Wybór odpowiedniej struktury danych gwarantuje dokładność i minimalizuje ryzyko błędów związanych z zaokrągleniami.

Pytanie 35

W zamieszczonym fragmencie kodu Java wskaż nazwę zmiennej, która może przechować wartość 'T'

int zm1;
float zm2;
char zm3;
boolean zm4;

A. zm2
B. zm3
C. zm4
D. zm1
W przedstawionym kodzie zmienna 'zm3' jest zdolna przechowywać wartość 'T', co sugeruje, że jest to typ znakowy (char) lub string o odpowiedniej długości. To standardowa praktyka przy przechowywaniu pojedynczych znaków w języku Java.

Pytanie 36

Jaką rolę odgrywa program Jira?

A. Zarządzanie edycjami systemu operacyjnego
B. Modyfikowanie arkuszy kalkulacyjnych
C. Produkcja grafik 3D
D. Planowanie, śledzenie oraz raportowanie zadań projektowych
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 37

Jakie narzędzie programowe jest odpowiedzialne za konwersję kodu źródłowego na formę zrozumiałą dla maszyny, weryfikuje wszystkie polecenia pod kątem ewentualnych błędów, a następnie generuje moduł do wykonania?

A. dekompilator
B. kompilator
C. interpreter
D. debugger
Kompilator to narzędzie, które tłumaczy kod źródłowy na kod maszynowy lub bajtowy, umożliwiając jego późniejsze wykonanie przez komputer. Kompilator analizuje cały kod przed jego uruchomieniem, identyfikując błędy składniowe i logiczne, co pozwala na generowanie pliku wykonywalnego.

Pytanie 38

Który z języków programowania jest najczęściej wykorzystywany do budowania aplikacji internetowych po stronie serwera?

A. CSS
B. HTML
C. JavaScript
D. PHP
PHP to jeden z najczęściej używanych języków programowania do tworzenia aplikacji webowych po stronie serwera. Jest to język skryptowy, który umożliwia dynamiczne generowanie treści stron internetowych, zarządzanie sesjami użytkowników, obsługę formularzy oraz integrację z bazami danych. PHP napędza popularne systemy zarządzania treścią (CMS), takie jak WordPress, Joomla czy Drupal. Dzięki swojej prostocie, szerokiemu wsparciu społeczności oraz dużej liczbie gotowych bibliotek i frameworków (np. Laravel), PHP pozostaje jednym z czołowych języków backendowych. PHP pozwala również na szybkie wdrażanie aplikacji i jest kompatybilny z wieloma serwerami WWW, co czyni go uniwersalnym wyborem w budowie aplikacji webowych.

Pytanie 39

Który z wymienionych algorytmów najczęściej wykorzystuje rekurencję?

A. Sortowanie bąbelkowe
B. Sortowanie przez wstawianie
C. Obliczanie liczb Fibonacciego
D. Wyszukiwanie liniowe
Algorytmy obliczania liczb Fibonacciego są jednym z najbardziej klasycznych przykładów rekurencji. Algorytm ten polega na wywoływaniu funkcji, która sama odwołuje się do siebie, aby obliczyć kolejne liczby w sekwencji. Rekurencyjna natura obliczeń Fibonacciego sprawia, że algorytm jest prosty i intuicyjny w implementacji, choć może być mniej wydajny niż wersje iteracyjne. Rekurencja jest szeroko stosowana w problemach matematycznych i algorytmicznych, gdzie rozwiązanie większego problemu można uzyskać poprzez rozwiązywanie mniejszych, podobnych podproblemów.

Pytanie 40

Jakie jest zastosowanie iteratora w zbiorach?

A. Do zmiany rodzaju zbioru w trakcie działania aplikacji
B. Do generowania kopii zbiorów
C. Do usuwania elementów ze zbioru
D. Do iterowania po elementach zbioru
Iterator w kolekcjach umożliwia przechodzenie przez elementy kolekcji w określonym porządku. Jest to abstrakcyjny obiekt, który pozwala na iterowanie po różnych strukturach danych, takich jak listy, wektory czy zbiory, bez konieczności znajomości ich wewnętrznej implementacji. Iteratory umożliwiają wykonywanie operacji na elementach kolekcji, takich jak odczyt, modyfikacja lub usuwanie, co czyni je niezwykle użytecznymi w programowaniu obiektowym. Dzięki iteratorom kod staje się bardziej czytelny i mniej podatny na błędy.