Wyniki egzaminu

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

Egzamin zdany!

Wynik: 32/40 punktów (80,0%)

Wymagane minimum: 20 punktów (50%)

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

W zestawieniu zaprezentowano doświadczenie zawodowe pracowników firmy IT. Do stworzenia aplikacji front-end powinien/powinna zostać wyznaczony/a

Ilustracja do pytania
A. Anna
B. Patryk
C. Ewa
D. Krzysztof
Krzysztof to naprawdę świetny wybór na budowę aplikacji front-end, bo zna Angulara, który jest jednym z najpopularniejszych frameworków do aplikacji jednostronicowych. Dzięki Angularowi można tworzyć dynamiczne i responsywne interfejsy, co jest mega ważne w projektach front-end. Ogólnie rzecz biorąc, ten framework opiera się na komponentach, co zdecydowanie ułatwia pracę z kodem i pozwala na jego ponowne wykorzystanie. W połączeniu z TypeScriptem, Angular daje duże możliwości, bo mocne typowanie zmniejsza ryzyko błędów i poprawia czytelność kodu. Zrozumienie, jak działa aplikacja i jakie są dobre praktyki, takie jak modularność czy testowanie, też jest istotne, żeby wykorzystać Angulara w pełni. Krzysztof ma tę wiedzę i potrafi wdrażać najlepsze praktyki, jak architektura MVC, co sprawia, że aplikacje są bardziej skalowalne i łatwiejsze w utrzymaniu. Dodatkowo, Angular robi też sporo, żeby aplikacje działały szybko, co jest ważne dla doświadczenia użytkownika. Dlatego wybierając Krzysztofa, mamy pewność, że projekt będzie zgodny z nowymi standardami i spełni oczekiwania użytkowników w zakresie interfejsu.

Pytanie 2

Jakie metody można wykorzystać do przechowywania informacji o użytkownikach w aplikacji mobilnej na systemie Android?

A. W rejestrze systemu
B. Za pomocą plików SharedPreferences
C. Tylko w pamięci RAM
D. Wyłącznie w zewnętrznych bazach danych
SharedPreferences to jedno z najprostszych i najczęściej stosowanych narzędzi do przechowywania danych użytkownika w aplikacjach mobilnych na Androidzie. SharedPreferences umożliwia zapisywanie małych porcji danych w postaci par klucz-wartość. Jest to idealne rozwiązanie do przechowywania ustawień użytkownika, preferencji aplikacji oraz stanów interfejsu. Dane przechowywane w SharedPreferences są zapisywane w plikach XML i pozostają na urządzeniu nawet po zamknięciu aplikacji, co czyni je doskonałym narzędziem do przechowywania trwałych informacji. Deweloperzy cenią SharedPreferences za prostotę implementacji i wydajność, co sprawia, że jest to jedno z najbardziej uniwersalnych narzędzi do lokalnego przechowywania danych w aplikacjach mobilnych.

Pytanie 3

Które urządzenie komputerowe jest najbardziej odpowiednie do graficznego projektowania w aplikacjach CAD?

A. Laptop z interfejsem dotykowym
B. Serwer dysponujący dużą ilością pamięci RAM
C. Komputer stacjonarny z kartą graficzną NVIDIA Quadro
D. Laptop z zintegrowanym układem graficznym
W kontekście projektowania graficznego w programach typu CAD, kluczowym elementem jest wybór odpowiedniego sprzętu, który zapewni nie tylko stabilność, ale także wydajność. Komputer stacjonarny wyposażony w kartę graficzną NVIDIA Quadro jest najlepszym rozwiązaniem, ponieważ te karty są specjalnie zaprojektowane do obsługi złożonych obliczeń i renderowania grafiki 3D. Dzięki zaawansowanej architekturze oraz optymalizacji pod kątem aplikacji inżynieryjnych i projektowych, karty NVIDIA Quadro oferują znacznie wyższą wydajność w porównaniu do standardowych kart graficznych. Dodatkowo, stacjonarne komputery pozwalają na łatwiejszą rozbudowę, co może być kluczowe w przypadku rosnących wymagań projektowych. W praktyce, użytkownicy CAD często muszą radzić sobie z dużymi i złożonymi modelami, które wymagają nie tylko odpowiedniej mocy obliczeniowej, ale także dużej ilości pamięci wideo, co zapewnia NVIDIA Quadro. Warto dodać, że standardy branżowe, takie jak OpenGL i DirectX, są w pełni wspierane przez te karty, co przekłada się na ich niezawodność i efektywność w profesjonalnym środowisku projektowym.

Pytanie 4

Jaką wartość zwróci funkcja napisana w języku C++, jeżeli jej argumentem wejściowym jest tablica stworzona w sposób następujący: int tablica[6] = {3,4,2,4,10,0};?

Ilustracja do pytania
A. 23
B. 0
C. 20
D. 10
Funkcja w C++ zwraca sumę elementów tablicy, co daje wynik 23. Algorytm iteracyjnie dodaje wszystkie elementy do zmiennej sumującej, co jest typowym rozwiązaniem dla tego typu operacji.

Pytanie 5

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

A. Pasek narzędziowy
B. Navigation Drawer
C. ListView
D. Przycisk
Navigation Drawer to jeden z najczęściej stosowanych komponentów interfejsu użytkownika w aplikacjach mobilnych na platformie Android. Pozwala na stworzenie bocznego menu nawigacyjnego, które użytkownik może wysunąć z lewej (lub rzadziej z prawej) krawędzi ekranu. Drawer umożliwia szybki dostęp do różnych sekcji aplikacji, co poprawia nawigację i organizację interfejsu. Navigation Drawer jest szeroko wykorzystywany w aplikacjach mobilnych takich jak Gmail, YouTube czy Google Maps, ponieważ zapewnia przejrzysty i intuicyjny sposób poruszania się po aplikacji, zachowując minimalistyczny wygląd interfejsu. Dzięki niemu użytkownik ma dostęp do wielu opcji bez konieczności zaśmiecania głównego ekranu aplikacji przyciskami nawigacyjnymi. W Android Studio Navigation Drawer można zaimplementować poprzez gotowe szablony lub za pomocą komponentu DrawerLayout.

Pytanie 6

Jaką instrukcję należy wykorzystać do poprawnej deklaracji zmiennej typu string w C++?

A. string name = "Jan"
B. float name = "Jan"
C. int name = "Jan"
D. bool name = "Jan"
Ta deklaracja 'string name = "Jan"' to naprawdę dobry sposób na zdefiniowanie zmiennej łańcuchowej w C++. Wiesz, 'string' to typ danych, 'name' to nazwa tej zmiennej, a 'Jan' to wartość, która jest jej przypisana. Typ 'string' jest częścią biblioteki <string> i daje nam wiele możliwości, gdy pracujemy z tekstem. Możemy łączyć, porównywać i modyfikować różne łańcuchy znaków bez większego problemu. To jest mega ważne w aplikacjach, które mają do czynienia z danymi tekstowymi, interfejsami użytkownika czy analizą danych, które wprowadzamy.

Pytanie 7

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

A. Umożliwiają przeprowadzanie operacji na obiektach
B. Zapisują wartości lokalne w funkcjach
C. Określają globalne stałe programu
D. Zawierają informacje opisujące stan obiektu
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 8

Jak zostanie przedstawiony poniższy kod XAML?

Ilustracja do pytania
A. Rysunek 4
B. Rysunek 1
C. Rysunek 2
D. Rysunek 3
W przedstawionym kodzie XAML widoczna jest struktura składająca się z kilku elementów UI ułożonych w pionowym StackLayout co skutkuje wyświetleniem ich w pionowej kolejności. Pierwszym elementem jest Entry z placeholderem Imię a kolejnym Entry z placeholderem Nazwisko co determinuje obecność dwóch pól tekstowych tak jak w Rysunku 4. Następnie w kodzie znajduje się poziomy StackLayout z etykietą Zgoda RODO i przełącznikiem ustawionym na wartość true co oznacza że przełącznik jest domyślnie włączony. To również odpowiada widokowi na Rysunku 4. Kolejny element to Slider z ustawionymi kolorami MinimumTrackColor i MaximumTrackColor co pozwala na zmianę koloru paska suwaka co również jest widoczne w Rysunku 4. Na końcu znajduje się Button z tekstem Zapisz i jest to jedyny przycisk w całym układzie co także zgadza się z Rysunkiem 4. Rozumienie kodu XAML i jego renderowania jest kluczowe w tworzeniu aplikacji mobilnych ponieważ pozwala na precyzyjne określenie wyglądu i funkcjonalności interfejsu użytkownika i jest zgodne z najlepszymi praktykami w projektowaniu UI.

Pytanie 9

Które z poniższych twierdzeń najlepiej charakteryzuje bibliotekę w kontekście programowania?

A. Zbiór kodu źródłowego, który jest stosowany wyłącznie w fazie kompilacji aplikacji
B. Plik wykonywalny, który funkcjonuje jako odrębny program
C. Zbiór zmiennych globalnych, które są dostępne w trakcie działania aplikacji
D. Zestaw funkcji i klas, które mogą być wykorzystywane w aplikacjach
Biblioteka nie służy tylko podczas kompilacji – funkcje, które zawiera, są też dostępne w trakcie działania programu. Plik wykonywalny to właściwie finalny produkt kompilacji, a nie biblioteka, która jest bardziej narzędziem do budowy aplikacji. Zbiór zmiennych globalnych, które są dostępne w czasie działania programu, to raczej cecha środowiska, w którym działa program, lub interpreterów, a nie to, co definiuje bibliotekę.

Pytanie 10

Którego nagłówka używamy w C++ do obsługi plików?

A. <fileio.h>
B. <stdio.h>
C. <iostream>
D. <fstream>
Nagłówek '<fstream>' w języku C++ jest używany do pracy z plikami, umożliwiając odczyt i zapis danych na dysku. Biblioteka fstream udostępnia klasy 'ifstream', 'ofstream' i 'fstream', które pozwalają na operacje wejścia i wyjścia plików. 'ifstream' służy do odczytu plików, 'ofstream' do zapisu, a 'fstream' umożliwia zarówno odczyt, jak i zapis. Praca z plikami jest kluczowa w wielu aplikacjach, od prostych narzędzi do przetwarzania danych po złożone systemy zarządzania plikami i bazami danych. Dzięki 'fstream' programiści mogą efektywnie zarządzać danymi na różnych poziomach aplikacji.

Pytanie 11

Która z poniższych informacji o pojęciu obiekt jest prawdziwa?

A. obiekt jest instancją klasy
B. obiekt to typ złożony
C. obiekt oraz klasa są identyczne
D. obiekt pozwala na zdefiniowanie klasy
Obiekt nie jest typem złożonym – jest konkretnym egzemplarzem klasy, która jest typem złożonym. Obiekt i klasa to nie to samo – klasa jest definicją, a obiekt jej instancją. Obiekt nie definiuje klasy, to klasa tworzy obiekt poprzez swoje instancje. Takie rozróżnienie jest kluczowe dla zrozumienia programowania obiektowego.

Pytanie 12

Zasada programowania obiektowego, która polega na ukrywaniu elementów klasy tak, aby były one dostępne wyłącznie dla metod tej klasy lub funkcji zaprzyjaźnionych, to

A. wyjątki
B. polimorfizm
C. hermetyzacja
D. dziedziczenie
Hermetyzacja (enkapsulacja) to zasada programowania obiektowego polegająca na ukrywaniu wewnętrznych składowych klasy przed innymi klasami i udostępnianiu ich tylko poprzez publiczne metody (gettery i settery). Dzięki temu ogranicza się dostęp do danych i chroni je przed nieautoryzowaną modyfikacją, co zwiększa bezpieczeństwo i czytelność kodu.

Pytanie 13

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

A. CSS
B. PHP
C. JavaScript
D. HTML
JavaScript jest językiem działającym głównie po stronie klienta (przeglądarki), chociaż dzięki Node.js może być używany także po stronie serwera, jednak tradycyjnie nie jest językiem stricte backendowym. HTML to język znaczników służący do strukturalnego tworzenia treści na stronach internetowych, ale sam w sobie nie może obsługiwać logiki serwera. CSS to język odpowiedzialny za stylizację stron internetowych i nie pełni roli języka programowania po stronie serwera.

Pytanie 14

Który z poniższych przykładów ilustruje deklarację złożonego typu w języku C++?

A. float ocena = 4.5;
B. class Student {};
C. int wynik = 100;
D. bool status;
Deklaracja `class Student {};` w języku C++ przedstawia przykład tworzenia typu złożonego w postaci klasy. Klasa to podstawowy element programowania obiektowego, który pozwala na łączenie danych (pól) i funkcji (metod) w jednej strukturze. Klasy umożliwiają modelowanie rzeczywistych obiektów i ich zachowań, co prowadzi do bardziej zorganizowanego i skalowalnego kodu. Klasy mogą być rozszerzane przez dziedziczenie, co jest kluczową zaletą programowania obiektowego.

Pytanie 15

Jaki tekst zostanie wyświetlony po uruchomieniu jednego z poniższych fragmentów kodu?

Ilustracja do pytania
A. {4}
B. {{2+2}}
C. {2+2}
D. 4
Kod zwraca liczbę 4, ponieważ {2+2} jest interpretowane jako wyrażenie matematyczne, a nie ciąg znaków. W frameworkach React czy Angular operacje matematyczne wykonywane są automatycznie w miejscach, gdzie oczekiwany jest wynik obliczenia.

Pytanie 16

Fragment kodu w języku JavaScript to

Ilustracja do pytania
A. definicja zmiennej typu tablicowego
B. prototyp interfejsu
C. definicja funkcji strzałkowej
D. prototyp metody klasy
Kod w JavaScript opisuje definicję funkcji strzałkowej, która jest nowoczesnym i bardziej zwięzłym sposobem definiowania funkcji. Funkcje strzałkowe mają też specyficzne zachowanie w kontekście 'this', co czyni je często preferowanymi przy pracy z obiektami i metodami callback.

Pytanie 17

Jaką strukturę danych obrazuje zamieszczony kod w języku C#?

Ilustracja do pytania
A. listę
B. stos
C. tablicę jednowymiarową
D. tablicę dwuwymiarową
Kod w języku C# reprezentuje tablicę dwuwymiarową, która jest deklarowana za pomocą podwójnych nawiasów kwadratowych. Tablica taka pozwala na przechowywanie danych w formie macierzy.

Pytanie 18

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

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

A. interfejsy
B. funkcje
C. metody
D. pola
Pola klasy to jej atrybuty, które przechowują dane dotyczące obiektów. Definiują one stan obiektu i mogą przyjmować różne wartości w zależności od instancji klasy. W przypadku klasy samochod cechy takie jak marka, rocznik czy parametry to właśnie pola, które odzwierciedlają właściwości poszczególnych obiektów.

Pytanie 20

Jednym z kroków przy publikacji aplikacji mobilnej w sklepie Google Play są testy Beta, które charakteryzują się tym, że są one

A. przeprowadzane na podstawie dokumentu zawierającego przypadki testowe
B. podzielone na testy funkcjonalne, wydajnościowe oraz skalowalności
C. realizowane przez zespół testerów zatrudnionych przez firmę Google
D. przeprowadzane przez grupę docelowych użytkowników aplikacji
Testy Beta są kluczowym etapem w procesie publikacji aplikacji mobilnej w sklepie Google Play, ponieważ pozwalają na uzyskanie cennych informacji zwrotnych od rzeczywistych użytkowników aplikacji. W tej fazie aplikacja jest udostępniana ograniczonej grupie docelowych użytkowników, którzy są zainteresowani testowaniem oprogramowania przed jego oficjalnym wydaniem. Użytkownicy ci mają możliwość zgłaszania błędów, proponowania ulepszeń oraz oceny funkcjonalności, co jest niezwykle ważne, aby zapewnić, że produkt spełnia wymagania rynku. Przykładem zastosowania testów Beta może być aplikacja społecznościowa, która w pierwszej fazie testowania pozwala wybranej grupie użytkowników na dzielenie się swoimi doświadczeniami. Otrzymane dane są następnie analizowane w celu wprowadzenia niezbędnych poprawek przed pełnym wprowadzeniem aplikacji na rynek. Ponadto, przeprowadzanie testów Beta jest zgodne z najlepszymi praktykami w branży oprogramowania, zgodnie z metodykami Agile, które podkreślają znaczenie interakcji z użytkownikami oraz ich wkładu w rozwój produktów.

Pytanie 21

Co to jest automatyzacja testowania procesów?

A. Używaniem narzędzi oraz skryptów do wykonywania testów w sposób automatyczny bez udziału człowieka
B. Sprawdzaniem poprawności działania aplikacji na urządzeniach przenośnych
C. Kompilowaniem kodu w celu zwiększenia efektywności
D. Integracją testów w środowisku deweloperskim
Automatyzacja procesu testowania to zastosowanie narzędzi, skryptów i technologii do przeprowadzania testów oprogramowania w sposób zautomatyzowany, bez konieczności ciągłej ingerencji człowieka. Automatyzacja pozwala na szybkie i wielokrotne uruchamianie testów regresyjnych, co znacząco zwiększa efektywność testowania, redukuje czas potrzebny na wykrycie błędów i umożliwia jednoczesne testowanie wielu funkcji. Narzędzia takie jak Selenium, JUnit czy TestNG pozwalają na tworzenie skryptów testowych, które automatycznie weryfikują poprawność działania aplikacji na różnych urządzeniach i w różnych środowiskach. Automatyzacja testów to nie tylko oszczędność czasu, ale także wyższa dokładność i powtarzalność testów, co minimalizuje ryzyko przeoczenia krytycznych błędów.

Pytanie 22

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 23

Jakie są kluczowe różnice między typami stałoprzecinkowymi a zmiennoprzecinkowymi?

A. Typy stałoprzecinkowe przechowują liczby całkowite, a typy zmiennoprzecinkowe przechowują liczby z ułamkami dziesiętnymi
B. Typy zmiennoprzecinkowe przechowują wyłącznie liczby ujemne
C. Typy stałoprzecinkowe wymagają większej ilości pamięci niż typy zmiennoprzecinkowe
D. Typy stałoprzecinkowe obsługują liczby ujemne, natomiast typy zmiennoprzecinkowe tylko dodatnie
Główna różnica między typami stałoprzecinkowymi a zmiennoprzecinkowymi polega na tym, że stałoprzecinkowe przechowują liczby całkowite, podczas gdy zmiennoprzecinkowe przechowują liczby z częściami dziesiętnymi. Stałoprzecinkowe typy, takie jak 'int', są bardziej efektywne pod względem wydajności i zajmują mniej pamięci, co czyni je idealnym rozwiązaniem w przypadkach, gdzie precyzja dziesiętna nie jest wymagana. Z kolei typy zmiennoprzecinkowe, takie jak 'float' i 'double', umożliwiają dokładne reprezentowanie wartości niecałkowitych, co jest niezbędne w aplikacjach matematycznych i graficznych. Każdy z tych typów ma swoje zastosowanie w zależności od wymagań projektu.

Pytanie 24

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

A. struct w języku C++
B. bool w języku Java
C. int w języku Python
D. float w języku C
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 25

Algorytmu Euklidesa, przedstawionego na schemacie, należy użyć do obliczenia.

Ilustracja do pytania
A. najmniejszej liczby pierwszej w danym zakresie
B. Najmniejszej Wspólnej Wielokrotności
C. Największego Wspólnego Dzielnika
D. największego elementu w zbiorze liczb
Algorytm Euklidesa to klasyczna metoda stosowana do wyznaczania największego wspólnego dzielnika (NWD) dwóch liczb całkowitych. Działa na zasadzie iteracyjnego odejmowania mniejszej liczby od większej aż do momentu, gdy obie liczby staną się równe. Wtedy ta wspólna wartość jest największym wspólnym dzielnikiem. Algorytm jest bardzo efektywny, nawet dla dużych liczb, co czyni go powszechnie stosowanym w praktycznych zastosowaniach, takich jak kryptografia czy optymalizacja komputerowa. W kryptografii, szczególnie w systemach kluczy publicznych, takich jak RSA, obliczanie NWD jest kluczowe dla generowania kluczy. Algorytm Euklidesa jest też podstawą dla bardziej zaawansowanych algorytmów, takich jak rozszerzony algorytm Euklidesa, który umożliwia obliczenie również współczynników liczbowych używanych w teoretycznych dowodach matematycznych. Jego implemetacja jest również często wykorzystywana w bibliotekach matematycznych języków programowania, co świadczy o jego uniwersalności i znaczeniu w dzisiejszej technologii.

Pytanie 26

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

Ilustracja do pytania
A. Dokumentacja 1
B. Dokumentacja 4
C. Dokumentacja 3
D. Dokumentacja 2
Dokumentacja 2 jest prawidłowa i precyzyjnie opisuje funkcję, jej parametry oraz wartość zwracaną. Zgodność dokumentacji z kodem jest kluczowa dla późniejszego utrzymania oraz rozszerzania aplikacji.

Pytanie 27

Który z podanych algorytmów można zrealizować zarówno w sposób iteracyjny, jak i rekurencyjny?

A. Algorytm generowania liczb losowych
B. Algorytm wyszukiwania binarnego
C. Algorytm sortowania bąbelkowego
D. Algorytm mapowania kluczy w tablicach asocjacyjnych
Sortowanie bąbelkowe to algorytm iteracyjny i nie ma naturalnej wersji rekurencyjnej, ponieważ jego działanie opiera się na powtarzających się pętlach. Algorytm mapowania kluczy w tablicach asocjacyjnych nie korzysta z rekurencji – jest to proces przypisywania wartości do odpowiednich kluczy, który realizowany jest w sposób iteracyjny. Algorytm generowania liczb losowych nie wymaga rekurencji ani iteracji – jest to operacja oparta na wywołaniu odpowiednich funkcji w zależności od użytej biblioteki i języka programowania.

Pytanie 28

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
B. sformułowania klasy bardziej szczegółowej niż już stworzona
C. określenia zasięgu dostępności metod i pól danej klasy
D. asynchronicznej realizacji długotrwałych zadań
Asynchroniczna obsługa operacji nie jest związana z dziedziczeniem, raczej chodzi tu o programowanie współbieżne. A jeśli chodzi o stałe, to definiuje się je jako stałe (const), a dziedziczenie to zupełnie inna bajka. Pamiętaj, że widoczność metod i pól kontrolują modyfikatory dostępu, takie jak private, protected i public, więc to też jest ważne.

Pytanie 29

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 30

Który z wymienionych elementów interfejsu użytkownika jest charakterystyczny dla aplikacji działającej na komputerze?

A. Przycisk (Button)
B. Strona HTML
C. Routing
D. API REST
Przycisk, czyli ten mały element, co go klikamy w aplikacjach, to naprawdę ważna część interfejsu. Używamy go, żeby coś zainicjować, na przykład zapisać dane czy wywołać jakąś funkcję. Fajnie, że można go dowolnie ustawiać – zmieniać wygląd, rozmiar, a nawet to, jak się zachowuje. Dzięki temu pasuje do każdej aplikacji. W dzisiejszych programach, jak WPF, te przyciski mogą mieć różne kolorowe ikony albo nawet animacje, co sprawia, że aplikacja wygląda super. Generalnie, bez przycisków użytkownik by się w aplikacji nie połapał, bo to dzięki nim możemy nawigować, zatwierdzać formularze czy otwierać nowe okna dialogowe.

Pytanie 31

Który z wymienionych algorytmów pracujących na tablicy jednowymiarowej ma złożoność obliczeniową O(n2)?

A. Sortowanie szybkie
B. Wyświetlenie elementów
C. Sortowanie bąbelkowe
D. Wyszukiwanie metodą binarną
Sortowanie bąbelkowe to taki klasyczny algorytm, który ma złożoność O(n^2). Chociaż jest dość prosty w zrozumieniu, to nie za bardzo sprawdza się w większych zbiorach danych. Działa tak, że porównuje sąsiadujące ze sobą elementy i zamienia je miejscami, jeśli są w złej kolejności. Trochę to czasochłonne, ale warto znać ten algorytm, bo pokazuje podstawy sortowania.

Pytanie 32

Jaki modyfikator dostępu umożliwia dostęp do pól klasy tylko za pomocą jej metod?

A. Protected
B. Static
C. Private
D. Public
Modyfikator `private` w językach takich jak C++, Java i C# pozwala na ograniczenie dostępu do pól i metod klasy, umożliwiając ich wykorzystanie wyłącznie w obrębie tej samej klasy. Pola `private` są ukryte przed innymi klasami i mogą być modyfikowane lub odczytywane jedynie poprzez metody publiczne (gettery i settery). Przykład w C++: `class Konto { private: double saldo; public: void ustawSaldo(double s) { saldo = s; } }`. Dzięki temu mechanizmowi dane są chronione przed nieautoryzowanymi zmianami, co zwiększa bezpieczeństwo aplikacji i minimalizuje ryzyko błędów.

Pytanie 33

Jaki jest zasadniczy cel ataku phishingowego?

A. Kradzież haseł z pamięci operacyjnej urządzenia
B. Zbieranie danych osobowych za pomocą podszywających się stron lub wiadomości
C. Uniemożliwienie dostępu do usług internetowych
D. Zakłócanie pracy sieci przez nadmiarowe zapytania
Głównym celem ataku phishingowego jest przejęcie danych osobowych ofiary, co realizowane jest poprzez wykorzystanie fałszywych stron internetowych lub wiadomości. Atakujący tworzą atrakcyjne i wiarygodne kopie legalnych stron, często podszywając się pod znane instytucje bankowe, portale społecznościowe czy serwisy e-commerce. Użytkownik, nieświadomy zagrożenia, wprowadza swoje dane logowania, numery kart kredytowych lub inne wrażliwe informacje, które trafiają w ręce cyberprzestępców. Aby ułatwić ten proces, phisherzy często wykorzystują techniki inżynierii społecznej, takie jak fałszywe powiadomienia o konieczności weryfikacji konta. Przykłady skutecznych ataków phishingowych obejmują kampanie wysyłania e-maili, które informują użytkowników o rzekomych problemach z kontem, kierując ich na podszyte strony. Standardy bezpieczeństwa, takie jak DMARC, SPF i DKIM, są kluczowe dla ochrony przed tego rodzaju atakami, jednak ich brak lub niewłaściwe wdrożenie zwiększa podatność na phishing.

Pytanie 34

Podaj wspólną cechę wszystkich kontrolek umieszczonych w ramce

Ilustracja do pytania
A. są w nich ustawione te same wartości domyślne
B. wszystkie są widoczne
C. mają tło w tym samym kolorze
D. mają identyczny kolor czcionki
Wszystkie kontrolki w ramce mają tło tego samego koloru. Jest to kluczowy aspekt projektowania interfejsu użytkownika, który zapewnia spójność wizualną i ułatwia nawigację.

Pytanie 35

Która z operacji logicznych zwróci wartość "true", gdy obie zmienne są sobie równe?

A. x != y
B. x == y
C. x && y
D. x || y
Operator `==` w języku C++ i wielu innych językach programowania (np. Python, Java, JavaScript) służy do porównywania dwóch wartości. Zwraca `true`, jeśli obie wartości są sobie równe, oraz `false`, jeśli są różne. Przykład: `if (x == y)` sprawdza, czy zmienna `x` jest równa zmiennej `y`. Operator ten jest kluczowy w instrukcjach warunkowych oraz pętlach, gdzie konieczne jest porównywanie wartości w celu podejmowania decyzji na podstawie wyniku tego porównania.

Pytanie 36

Zaznaczone elementy w przedstawionych obramowaniach mają na celu

Ilustracja do pytania
A. zapisanie tytułu okna do obiektu Tekst
B. uzyskanie nazwy obiektu obrazującego okno aplikacji
C. ustawienie tytułu okna na "Tekst"
D. przypisanie nazwy obiektu obrazującego okno aplikacji
Pobranie nazwy obiektu – Oznaczałoby operację odczytu, a nie ustawienia. Zapisanie tytułu do obiektu – To operacja odwrotna, gdzie dane są zapisywane w innym miejscu, a nie w oknie aplikacji. Ustawienie nazwy obiektu – Dotyczy nazwy zmiennej lub klasy, a nie tytułu wyświetlanego na pasku okna.

Pytanie 37

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

A. security testing
B. integration testing
C. performance 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 38

Cytat przedstawia charakterystykę metodyki RAD. Pełne znaczenie tego skrótu można przetłumaczyć na język polski jako:

Ilustracja do pytania
A. zintegrowane środowisko programistyczne
B. środowisko szybkiego rozwoju aplikacji
C. prototypowanie wsparte testami jednostkowymi
D. środowisko refaktoryzacji aplikacji
Refaktoryzacja aplikacji to proces poprawy struktury kodu bez zmiany jego funkcjonalności. Zintegrowane środowiska programistyczne (IDE) to narzędzia do tworzenia kodu, ale nie są tożsamy z metodologią RAD. Prototypowanie wsparte testami jednostkowymi to podejście pokrewne, ale nie oddaje istoty RAD, który stawia na szybkie iteracje.

Pytanie 39

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. Może zawierać zarówno małe, jak i wielkie litery, cyfry oraz symbole
D. Jest maksymalnie 7-znakowe, co wynika z wartości zmiennej i
Algorytm generowania hasła w języku C# może zawierać małe i wielkie litery oraz cyfry, co zapewnia większe bezpieczeństwo hasła. Tworzenie haseł w taki sposób zwiększa ich odporność na ataki brute-force i umożliwia spełnienie wymagań dotyczących złożoności. Dobrze skonstruowane hasło powinno zawierać różne typy znaków, by maksymalnie utrudnić jego złamanie.

Pytanie 40

Jakie korzyści płyną z użycia pseudokodu przy tworzeniu algorytmu?

A. Zrozumiałość dla osób nieznających się na programowaniu
B. Łatwość w zmianie kodu maszynowego
C. Generowanie dynamicznych struktur danych
D. Możliwość szybkie zrealizowania algorytmu w którymkolwiek języku
Zaletą wykorzystania pseudokodu podczas projektowania algorytmu jest jego czytelność i prostota, dzięki czemu jest zrozumiały nawet dla osób, które nie są biegłe w programowaniu. Pseudokod pozwala skupić się na logice działania algorytmu bez konieczności przestrzegania ścisłej składni konkretnego języka programowania. Dzięki temu proces projektowania jest szybszy, a algorytm można łatwo przełożyć na dowolny język programowania. Pseudokod ułatwia również współpracę między programistami i analitykami, wspierając tworzenie i dokumentowanie złożonych rozwiązań.