Wyniki egzaminu

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

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 jakiej sytuacji należy umieścić poszkodowanego w bezpiecznej pozycji bocznej?

A. w sytuacji omdlenia i braku tętna
B. gdy wystąpi uszkodzenie kręgosłupa
C. gdy osoba omdleje, ale oddycha
D. w przypadku urazu pleców, gdy osoba jest przytomna
Osobę po omdleniu, która oddycha, należy ułożyć w pozycji bocznej bezpiecznej. Taka pozycja zapobiega zadławieniu i zapewnia drożność dróg oddechowych, co jest kluczowe dla bezpieczeństwa poszkodowanego.

Pytanie 2

Jakie narzędzie jest najbardziej odpowiednie do identyfikacji błędów w trakcie działania programu?

A. Linker
B. Debugger
C. Kompilator
D. Interpreter
Debugger to narzędzie przeznaczone do wyszukiwania błędów w czasie wykonywania programu. Pozwala na zatrzymywanie aplikacji w wybranych miejscach, analizowanie wartości zmiennych i śledzenie przepływu sterowania, co umożliwia szybkie wykrywanie błędów logicznych i błędów czasu wykonania. Debugger jest niezbędny w procesie rozwoju oprogramowania, ponieważ pomaga programistom w zrozumieniu, jak ich kod działa w rzeczywistości i jak różne warunki wpływają na jego funkcjonowanie.

Pytanie 3

Podczas programowania kontrolki stepper przedstawionej na ilustracji w aplikacji mobilnej, należy zarządzać zmienną, która zawsze przechowuje jej bieżącą wartość. Jakie zdarzenie można wykorzystać do osiągnięcia tej funkcjonalności?

Ilustracja do pytania
A. SizeChanged
B. ValueChanged
C. DescendantAdded
D. Unfocused
Zdarzenie ValueChanged jest kluczowe w kontekście programowania kontrolek takich jak stepper w aplikacjach mobilnych. To zdarzenie jest wywoływane zawsze, gdy wartość kontrolki zostaje zmieniona przez użytkownika, co umożliwia natychmiastowe przetwarzanie tej zmiany i aktualizację interfejsu użytkownika lub innych powiązanych komponentów. W praktyce, użycie zdarzenia ValueChanged to dobry przykład reaktywnego programowania, gdzie aplikacja reaguje na akcje użytkownika w czasie rzeczywistym. Przy implementacji takiego zdarzenia należy zadbać o poprawne sprawdzanie zakresu wartości, aby uniknąć błędów logicznych. Warto również pamiętać o optymalizacji wydajności takiej obsługi, zwłaszcza w aplikacjach złożonych z wielu komponentów zależnych od wartości steppera. Praktyczne zastosowanie tego zdarzenia można znaleźć w aplikacjach e-commerce, gdzie steppery mogą być używane do wyboru ilości produktów w koszyku, a zmiana wartości natychmiast wpływa na obliczenie ceny całkowitej. Używanie zdarzeń takich jak ValueChanged jest zgodne z dobrymi praktykami projektowania interfejsów użytkownika, poprawiając ich responsywność i interaktywność.

Pytanie 4

Przykład wywołania funkcji zamien w języku C++ może wyglądać w następujący sposób

Ilustracja do pytania
A. zamien(12, 34)
B. zamien(&a, &b); //x,y - zmienne całkowite
C. zamien(m,n); //m,n - zmienne całkowite
D. zamien(*a, *b); //a,b - zmienne całkowite
Wywołanie funkcji 'zamien' w formie zamien(&a, &b) jest poprawne, ponieważ przekazuje adresy zmiennych jako argumenty, co pozwala na modyfikację ich wartości w funkcji. Jest to standardowa technika używana w języku C++ do przekazywania parametrów przez wskaźniki lub referencje.

Pytanie 5

Która z metod zarządzania projektem jest oparta na przyrostach realizowanych w sposób iteracyjny?

A. Model wodospadowy (waterfall)
B. Model prototypowy
C. Metodyki zwinne (Agile)
D. Model spiralny
Model kaskadowy, znany też jako waterfall, jest trochę inny. Działa sekwencyjnie, więc każda faza projektu musi się skończyć, zanim zaczniemy następną – nie ma tu miejsca na iteracje. Z kolei model prototypowy polega na tworzeniu próbnych wersji aplikacji, ale też nie skupia się na iteracyjnym dostarczaniu funkcjonalności. A model spiralny łączy w sobie aspekty prototypowania i podejścia kaskadowego, przy czym iteracje są długie i bardziej cykliczne, a nie krótkie i dynamiczne, jak w Agile.

Pytanie 6

Jakie narzędzie może zostać wykorzystane do automatyzacji testów aplikacji internetowych?

A. Postman
B. Blender
C. Visual Studio Code
D. Selenium
Postman to narzędzie do testowania API, umożliwiające wysyłanie zapytań HTTP i analizowanie odpowiedzi serwera, ale nie jest narzędziem do testowania interfejsów użytkownika w przeglądarce. Blender to narzędzie do modelowania 3D i animacji, które nie ma zastosowania w testowaniu aplikacji webowych. Visual Studio Code to edytor kodu źródłowego, który może być używany do pisania i debugowania kodu, ale samo w sobie nie jest narzędziem do automatycznego testowania aplikacji webowych, jak Selenium.

Pytanie 7

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

A. class
B. virtual
C. public
D. base
Słowo kluczowe 'class' jest podstawowym elementem języka C++ i służy do deklarowania klasy. Definiuje ono strukturę zawierającą pola (zmienne) oraz metody (funkcje członkowskie), które określają zachowanie obiektu. 'Class' pozwala na enkapsulację danych, co oznacza ukrywanie implementacji wewnętrznej i udostępnianie interfejsu publicznego. Dzięki temu klasy stanowią podstawę programowania obiektowego, umożliwiając organizację kodu w logiczne jednostki. Przykładowa deklaracja klasy w C++ wygląda następująco: 'class Samochod { public: void Jedz(); private: int predkosc; };'.

Pytanie 8

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

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

Pytanie 9

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

A. przeprowadzane przez grupę docelowych użytkowników aplikacji
B. podzielone na testy dotyczące funkcjonalności, wydajności i skalowalności
C. prowadzone w oparciu o dokument zawierający przypadki testowe
D. realizowane przez zespół zatrudnionych testerów z Google
Testy Beta w Google Play są wykonywane przez rzeczywistych użytkowników, którzy zgłaszają błędy i proponują zmiany. Jest to kluczowy etap testowania, który pozwala na ocenę aplikacji w warunkach zbliżonych do rzeczywistego użytkowania przed oficjalną premierą. Testy te pomagają wykrywać błędy, które mogły zostać pominięte podczas testów wewnętrznych.

Pytanie 10

Dziedziczenie jest używane, gdy zachodzi potrzeba

A. określenia zasięgu dostępności metod i pól danej klasy
B. sformułowania klasy bardziej szczegółowej niż już stworzona
C. wykorzystania stałych wartości, niezmieniających się w trakcie działania aplikacji
D. asynchronicznej realizacji długotrwałych zadań
Dziedziczenie to fajna sprawa, bo pozwala nam tworzyć nowe klasy na bazie tych, które już mamy. Dzięki temu możemy zaoszczędzić dużo czasu na pisaniu kodu i jednocześnie dodawać nowe funkcje do tych klas. To naprawdę kluczowy element programowania obiektowego.

Pytanie 11

Jakie jest najważniejsze działanie w trakcie analizy wymagań klienta przed rozpoczęciem realizacji projektu aplikacji?

A. Stworzenie diagramu Gantta
B. Zrozumienie potrzeb biznesowych i oczekiwań klienta
C. Selekcja języka programowania
D. Rozdzielenie ról w zespole projektowym
Fajnie, że zauważyłeś, jak ważne jest zrozumienie potrzeb biznesowych i oczekiwań klienta. To kluczowa sprawa przed rozpoczęciem pracy nad projektem aplikacji. Bez tego, nawet najfajniejszy kod może nie spełniać wymagań, a to byłoby szkoda, prawda? Analiza wymagań to nie tylko rozpoznanie celów, ale też spotkania z osobami zaangażowanymi w projekt i zbadanie rynku. Dzięki temu możemy stworzyć aplikację, która naprawdę odpowiada na specyficzne potrzeby, co czyni ją bardziej użyteczną i konkurencyjną. No i oczywiście, jak dobrze określimy, czego potrzebują użytkownicy, to mniej nieporozumień po drodze, a klienci będą bardziej zadowoleni, co zawsze jest na plus.

Pytanie 12

Jakie są kluczowe etapy realizacji projektu programistycznego?

A. Planowanie, analiza, implementacja, wdrożenie
B. Planowanie, projektowanie, debugowanie, konserwacja
C. Analiza, implementacja, testowanie, aktualizacja
D. Projektowanie, testowanie, aktualizacja, implementacja
Podstawowe fazy realizacji projektu programistycznego to: planowanie, analiza, implementacja i wdrożenie. Planowanie pozwala na ustalenie celów i zasobów, analiza definiuje wymagania, implementacja to właściwy proces tworzenia kodu, a wdrożenie polega na uruchomieniu produktu w środowisku produkcyjnym. Ten klasyczny podział jest stosowany zarówno w tradycyjnych modelach, takich jak Waterfall, jak i w nowoczesnych metodach Agile, gdzie fazy mogą być bardziej iteracyjne. Odpowiednie zarządzanie każdą z tych faz minimalizuje ryzyko błędów i zwiększa efektywność zespołu.

Pytanie 13

Prezentowana metoda jest realizacją algorytmu

Ilustracja do pytania
A. odwracającego ciąg
B. sortującego ciąg od znaku o najniższym kodzie ASCII do znaku o najwyższym kodzie
C. wyszukującego literę w ciągu
D. sprawdzającego, czy dany ciąg jest palindromem
Fajnie, że zajmujesz się algorytmami! W tym przypadku chodzi o odwracanie napisu, czyli taki myk, żeby ostatni znak stał się pierwszym, a pierwszy ostatnim. To jedna z tych podstawowych rzeczy, które są przydatne w programowaniu. Wiesz, takie operacje na tekstach są przydatne w różnych sytuacjach, jak szyfrowanie czy nawet analiza danych. Trochę jak układanie puzzli, tylko z literami!

Pytanie 14

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 1
B. Kod 3
C. Kod 2
D. Kod 4
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 15

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

A. Wysyłanie danych
B. Streaming
C. Pobieranie danych
D. Przesyłanie danych
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 16

Jakie są różnice pomiędzy środowiskiem RAD a klasycznym IDE w kontekście aplikacji webowych?

A. RAD nie wspiera żadnych języków backendowych
B. RAD funkcjonuje tylko w systemach Windows
C. RAD umożliwia szybsze prototypowanie i rozwój aplikacji dzięki narzędziom wizualnym
D. RAD koncentruje się wyłącznie na budowie frontendu aplikacji
Rapid Application Development (RAD) to metodologia, która koncentruje się na szybkim prototypowaniu i iteracyjnym tworzeniu aplikacji. Dzięki narzędziom wizualnym RAD umożliwia programistom i projektantom szybkie budowanie interfejsów użytkownika oraz testowanie funkcjonalności aplikacji na wczesnym etapie rozwoju. RAD skraca czas potrzebny na dostarczenie gotowego produktu, co czyni go idealnym rozwiązaniem w dynamicznie zmieniających się projektach webowych. Narzędzia RAD umożliwiają także automatyczne generowanie kodu, co znacznie przyspiesza proces programowania.

Pytanie 17

Zaprezentowany wykres ilustruje wyniki przeprowadzonych testów

Ilustracja do pytania
A. ochrony
B. wydajności
C. użyteczności
D. funkcjonalności
Wykres przedstawia czasy odpowiedzi strony internetowej co jest kluczowe w kontekście testów wydajnościowych. Testy wydajnościowe mają na celu zmierzenie jak system radzi sobie pod określonym obciążeniem i jak szybko potrafi odpowiedzieć na zapytania użytkowników. Tego typu analiza pomaga zidentyfikować potencjalne wąskie gardła w infrastrukturze IT. Przykładowo jeżeli czasy odpowiedzi DNS lub połączenia są zbyt długie może to wskazywać na potrzebę optymalizacji serwerów DNS lub infrastruktury sieciowej. Testy te są nieodłącznym elementem zapewnienia jakości oprogramowania a ich prawidłowe wykonanie wpływa na doświadczenia użytkowników końcowych. Dobra praktyka w branży IT zakłada regularne przeprowadzanie testów wydajnościowych w celu monitorowania stabilności systemu w warunkach zbliżonych do rzeczywistych. Warto również zauważyć że narzędzia takie jak JMeter czy LoadRunner są powszechnie używane do przeprowadzania takich testów co umożliwia symulację różnorodnych scenariuszy obciążenia i analizę wyników w czasie rzeczywistym.

Pytanie 18

Aplikacje webowe stworzone z użyciem frameworka Angular lub biblioteki React, działające na standardowych portach, można uruchomić na lokalnym serwerze, wpisując w przeglądarkę

A. localhost:3000 (React) lub localhost:4200 (Angular)
B. localhost:8080 (React) lub localhost:8000 (Angular)
C. localhost:8000 (React) lub localhost:49887 (Angular)
D. localhost:5001 (React) lub localhost:8080 (Angular)
Domyślne porty dla aplikacji tworzonych w React to localhost:3000, a dla Angular to localhost:4200. Te ustawienia pozwalają na szybkie uruchomienie aplikacji na lokalnym serwerze podczas fazy deweloperskiej. React i Angular to popularne technologie do budowy nowoczesnych aplikacji webowych, a korzystanie z domyślnych portów upraszcza proces testowania i wdrażania.

Pytanie 19

Jakie wartości jest w stanie przechować zmienna o typie logicznym?

A. Tylko ciąg znaków
B. Dowolną liczbę rzeczywistą
C. Jedną z dwóch opcji: true lub false
D. Wartość w reprezentacji binarnej
Zmienna typu logicznego (boolean) może przechowywać jedną z dwóch wartości: 'true' lub 'false'. Są to podstawowe wartości wykorzystywane w operacjach warunkowych i pętlach, które decydują o przepływie sterowania w programach. Wartości logiczne są kluczowe w konstrukcjach takich jak 'if-else', pętlach 'while' oraz w porównaniach. W wielu językach programowania 'true' jest równoznaczne z 1, a 'false' z 0, co pozwala na łatwą integrację z typami całkowitymi. Typ boolean jest niezbędny w programowaniu, umożliwiając implementację decyzji, walidacji danych i automatyzacji procesów.

Pytanie 20

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

Ilustracja do pytania
A. kaskadowy
B. prototypowy
C. zwinny
D. spiralny
Model zarządzania projektami opisany w pytaniu to model zwinny (Agile). Opiera się na iteracyjnych i inkrementalnych podejściach do tworzenia oprogramowania, umożliwiając szybkie dostosowanie do zmieniających się wymagań klienta.

Pytanie 21

Na podstawie treści zawartej w ramce, określ, który z rysunków ilustruje element odpowiadający klasie Badge zdefiniowanej w bibliotece Bootstrap?

Ilustracja do pytania
A. Rysunek 2
B. Rysunek 1
C. Rysunek 4
D. Rysunek 3
Wybór Rysunku 2 jest poprawny ponieważ przedstawia on elementy badge zdefiniowane w bibliotece Bootstrap Badge to niewielkie oznaczenia wizualne zazwyczaj zawierające liczby lub krótkie informacje które można umieścić obok linków lub innych elementów interfejsu użytkownika W Bootstrapie badge są implementowane za pomocą klasy .badge i można je stosować na przykład do wskazywania liczby nowych wiadomości lub powiadomień w aplikacjach webowych Dzięki temu użytkownik ma natychmiastowy dostęp do ważnych informacji bez konieczności wykonywania dodatkowych działań Przykładem zastosowania badge może być ikonka koperty z liczbą nieprzeczytanych wiadomości w skrzynce odbiorczej Co więcej badge można stylować za pomocą dodatkowych klas kolorystycznych takich jak .bg-primary .bg-success itd co pozwala na dostosowanie ich wyglądu do stylistyki całej aplikacji To praktyczne narzędzie w tworzeniu intuicyjnych interfejsów użytkownika które poprawia użyteczność i estetykę strony internetowej Zastosowanie badge zgodnie z dobrymi praktykami projektowania UX/UI wspiera lepszą organizację i dostępność informacji w aplikacjach internetowych

Pytanie 22

Jakie elementy zostaną wyświetlone w przeglądarce po wykonaniu kodu źródłowego stworzonego za pomocą dwóch funkcjonalnie równoważnych fragmentów?

Ilustracja do pytania
A. Trzy paragrafy, każdy odpowiadający kolejnemu elementowi tablicy tags
B. jeden paragraf z pierwszym elementem tablicy tags
C. trzy paragrafy, w każdym z nich tekst o treści: {tag}
D. jeden paragraf zawierający wszystkie elementy tablicy tags w kolejności
Kod generuje trzy paragrafy, każdy z kolejnym elementem tablicy tags. Jest to standardowy sposób iteracji po elementach tablicy i renderowania ich jako oddzielnych elementów HTML. W praktyce, takie podejście jest szeroko stosowane w aplikacjach frontendowych, gdzie dynamicznie tworzone elementy interfejsu użytkownika są generowane na podstawie tablic lub list danych. Każdy element tablicy jest iterowany i osobno przekształcany w znacznik HTML, co pozwala na łatwe zarządzanie i aktualizowanie treści strony w czasie rzeczywistym. To podejście jest zgodne z najlepszymi praktykami dotyczącymi manipulacji DOM i zapewnia wysoką wydajność aplikacji.

Pytanie 23

Na równoważnych pod względem funkcjonalnym listingach fragmentów aplikacji Angular oraz React.js utworzono listę punktowaną, która zawiera

Ilustracja do pytania
A. tyle elementów, ile znajduje się w tablicy books, w każdym punkcie listy widnieje element o treści {book}
B. taką liczbę elementów, ile znajduje się w tablicy books, w każdym punkcie listy umieszczony jest jeden element tablicy
C. wyłącznie jeden element o treści Harry Potter, Hobbit, Władca pierścieni
D. jedynie jeden element o treści Harry Potter
Lista punktowana w Angular i React.js generuje tyle elementów, ile jest w tablicy books. Każdy element listy odpowiada jednemu elementowi tablicy, co pozwala na dynamiczne renderowanie listy w oparciu o dane wejściowe.

Pytanie 24

Które z wymienionych atrybutów klasy mogą być dostępne wyłącznie w obrębie tej klasy oraz jej klas potomnych?

A. Private
B. Public
C. Protected
D. Static
Modyfikator `protected` pozwala na dostęp do pól i metod klasy w ramach tej samej klasy oraz w klasach dziedziczących. Jest to pośredni poziom dostępu między `private` i `public`. Pola `protected` są ukryte przed innymi klasami spoza hierarchii dziedziczenia, ale pozostają dostępne w klasach pochodnych. Dzięki temu dziedziczenie staje się bardziej elastyczne, umożliwiając klasom potomnym korzystanie z chronionych elementów klasy bazowej. Przykład w C++: `class Pojazd { protected: int predkosc; }`. Klasy dziedziczące po `Pojazd` mogą używać `predkosc`, ale obiekty nie mają bezpośredniego dostępu do tego pola.

Pytanie 25

Zamieszczony fragment kodu w Android Studio wdraża metodę nasłuchującą dla obsługi zdarzenia:

Ilustracja do pytania
A. zmiany stanu kontrolki Switch
B. naciśnięcia przycisku
C. wybierania daty
D. zmiany w polu tekstowym
Kod implementuje nasłuchiwanie zdarzenia naciśnięcia przycisku (ang. Button Click). W środowisku Android Studio jest to jedna z podstawowych metod obsługi interakcji użytkownika. Kiedy użytkownik naciśnie przycisk, wywoływana jest określona metoda, co umożliwia np. uruchomienie nowej aktywności, walidację danych lub wywołanie zapytania do bazy danych. Obsługa zdarzeń tego typu jest kluczowa w budowie responsywnych aplikacji mobilnych, zapewniając użytkownikowi płynne i intuicyjne działanie.

Pytanie 26

Jaki jest podstawowy okres ochrony autorskich praw majątkowych w krajach Unii Europejskiej?

A. 75 lat od daty powstania utworu
B. Bezterminowo
C. 50 lat od chwili pierwszej publikacji utworu
D. 70 lat od zgonu autora
Okres 50 lat od pierwszej publikacji utworu odnosi się zazwyczaj do praw pokrewnych, takich jak ochrona nagrań dźwiękowych lub filmowych. Ochrona przez 75 lat od powstania utworu nie jest standardem w UE, choć niektóre kraje mogą mieć takie przepisy w odniesieniu do specyficznych typów dzieł. Bezterminowa ochrona dotyczy wyłącznie autorskich praw osobistych, a nie majątkowych, które zawsze wygasają po określonym czasie.

Pytanie 27

Jakie działanie wykonuje polecenie "git pull"?

A. Zachowuje zmiany w lokalnym repozytorium
B. Pobiera zmiany z zdalnego repozytorium i scala je z lokalnym
C. Eliminuje plik z repozytorium
D. Tworzy nową gałąź w repozytorium
Polecenie 'git pull' pobiera najnowsze zmiany ze zdalnego repozytorium i scala je z lokalnym repozytorium. Jest to jedno z podstawowych poleceń w Git, pozwalające na synchronizację lokalnej kopii projektu z wersją przechowywaną w chmurze lub na serwerze. Dzięki 'git pull' programiści mogą na bieżąco aktualizować swoje repozytoria i unikać konfliktów, które mogłyby wyniknąć z pracy na nieaktualnej wersji kodu. Proces ten automatycznie łączy pobrane zmiany, co eliminuje konieczność ręcznego kopiowania plików lub komend.

Pytanie 28

Jakie działanie powinno się wykonać w pierwszym kroku, oceniając stan osoby poszkodowanej?

A. Rozpocząć resuscytację krążeniowo-oddechową
B. Sprawdzić, czy występuje krwawienie
C. Zadbać o własne bezpieczeństwo
D. Wezwać ambulans
Bezpieczeństwo to naprawdę ważna sprawa, kiedy oceniamy stan kogoś, kto uległ wypadkowi. Jak nie zadbamy o siebie, to możemy się sami narazić i to jeszcze bardziej skomplikować całą akcję ratunkową. Ruch uliczny, prąd, jakieś toksyczne substancje... to wszystko może być niebezpieczne. Dopiero jak mamy pewność, że jest ok w okolicy, możemy zająć się poszkodowanym i myśleć o dalszych krokach ratunkowych.

Pytanie 29

Który z wymienionych mechanizmów umożliwia ograniczenie dostępu do wybranych sekcji aplikacji webowej?

A. Formularze dynamiczne
B. System logowania i kontroli dostępu
C. Pliki CSS statyczne
D. Mechanizm renderowania treści
System logowania i kontroli dostępu to kluczowy mechanizm, który pozwala na ograniczenie dostępu do niektórych części aplikacji webowej. Logowanie umożliwia uwierzytelnienie użytkowników i przypisanie im odpowiednich ról, co definiuje poziom dostępu do zasobów. Dzięki mechanizmom autoryzacji możliwe jest kontrolowanie, które funkcje lub sekcje aplikacji są dostępne dla poszczególnych użytkowników. Kontrola dostępu może być realizowana za pomocą tokenów JWT (JSON Web Token), sesji lub kluczy API, co zapewnia dodatkowe warstwy zabezpieczeń. Wdrożenie takich systemów jest nieodzowne w aplikacjach webowych oferujących różne poziomy funkcjonalności, takich jak panele administracyjne, portale użytkowników czy aplikacje bankowe. Odpowiednie zarządzanie uprawnieniami jest fundamentem bezpieczeństwa aplikacji.

Pytanie 30

Który z przedstawionych poniżej przykładów ilustruje prawidłową deklarację zmiennej typu całkowitego w języku C++?

A. int liczba;
B. float liczba;
C. bool liczba;
D. char liczba;
W języku C++ zmienna typu całkowitego jest deklarowana za pomocą słowa kluczowego `int`. Przykładowa poprawna deklaracja to `int liczba;`, co oznacza, że `liczba` jest zmienną, która może przechowywać wartości całkowite, takie jak 1, 42 lub -15. Deklarowanie zmiennych w C++ pozwala na statyczne typowanie, co oznacza, że każda zmienna ma określony typ i nie może przechowywać wartości innego typu. Dzięki temu kod jest bardziej przejrzysty i mniej podatny na błędy związane z niezgodnością typów.

Pytanie 31

Który z poniższych kodów realizuje przedstawiony fragment algorytmu?

Ilustracja do pytania
A. Kod 4
B. Kod 3
C. Kod 1
D. Kod 2
Kod 3 jest poprawną implementacją przedstawionego algorytmu. Jego struktura i sposób działania odpowiadają założeniom algorytmu, co prowadzi do uzyskania prawidłowego wyniku.

Pytanie 32

Wykorzystanie typu DECIMAL w MySQL wymaga wcześniejszego określenia długości (liczby cyfr) przed oraz po przecinku. Jak należy to zapisać?

A. łańcuchowy
B. stałoprzecinkowy
C. zmiennoprzecinkowy
D. logiczny
Typ DECIMAL w języku MySQL jest używany do przechowywania liczb dziesiętnych z określoną precyzją. Przy definiowaniu tego typu danych wymagane jest określenie dwóch głównych parametrów: długości całkowitej liczby, czyli liczby cyfr przed przecinkiem, oraz długości części dziesiętnej, czyli liczby cyfr po przecinku. Taki zapis ma postać DECIMAL(M, D), gdzie M to maksymalna liczba cyfr, a D to liczba cyfr po przecinku. Przykład zastosowania to: DECIMAL(10, 2), co oznacza, że liczba może mieć maksymalnie 10 cyfr, z czego 2 cyfry będą po przecinku. Typ DECIMAL jest szczególnie przydatny w aplikacjach finansowych, gdzie precyzja obliczeń jest kluczowa, aby uniknąć błędów zaokrągleń, które mogą występować w przypadku typów zmiennoprzecinkowych. Standardy dotyczące typów danych w SQL, takie jak SQL:2008, również uznają znaczenie precyzyjnych reprezentacji liczbowych, co sprawia, że DECIMAL jest preferowany w wielu zastosowaniach. Warto dodać, że MySQL pozwala na elastyczność w definiowaniu długości, co umożliwia optymalne dostosowanie do specyficznych wymagań aplikacji.

Pytanie 33

Która z wymienionych cech dotyczy klasy statycznej?

A. Może być dziedziczona przez klasy potomne
B. Nie może zawierać ani zmiennych, ani metod
C. Może zawierać wyłącznie statyczne pola i metody
D. Jest automatycznie usuwana po zakończeniu działania programu
Klasa, która nie może zawierać zmiennych ani metod, jest w rzeczywistości pusta i nie spełnia żadnych praktycznych funkcji. Dziedziczenie klas statycznych jest niemożliwe, ponieważ nie można ich instancjonować, co eliminuje potrzebę dziedziczenia. Klasy, które są automatycznie usuwane po zakończeniu programu, to standardowe klasy, a nie klasy statyczne – proces usuwania obiektów leży w gestii destruktorów i mechanizmu garbage collection.

Pytanie 34

Jakie cechy posiada model prototypowy w zakresie zarządzania projektami?

A. Realizowaniem pełnej wersji produktu przed przeprowadzeniem testów
B. Szczegółowym planowaniem każdego etapu projektu przed jego realizacją
C. Przygotowaniem wersji systemu w ograniczonym zakresie w celu uzyskania opinii od użytkownika
D. Rozwojem produktu w sposób iteracyjny w krótkich cyklach
Robienie pełnej wersji produktu przed testowaniem to cecha modelu kaskadowego (Waterfall), co sprawia, że ryzyko błędów jest większe, bo wszystko dostajemy na sam koniec. Z kolei w metodach Agile rozwijamy produkt w krótkich cyklach, co jest zupełnie innym podejściem, bo regularnie dodajemy nowe funkcjonalności. Planowanie wszystkiego z góry to raczej klasyczne modele sekwencyjne, ale zapominają o takim ważnym elemencie jak prototypowanie i iteracje.

Pytanie 35

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 przez grupę docelowych użytkowników aplikacji
B. realizowane przez zespół testerów zatrudnionych przez firmę Google
C. podzielone na testy funkcjonalne, wydajnościowe oraz skalowalności
D. przeprowadzane na podstawie dokumentu zawierającego przypadki testowe
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 36

Kod funkcji "wykonaj()" przedstawiony powyżej weryfikuje, czy

Ilustracja do pytania
A. w tablicy liczb całkowitych znajdują się jedynie wartości 4, 15, -2, 9, 202
B. konkretny element (argument) jest obecny w tablicy liczb całkowitych
C. wszystkie elementy w tablicy odpowiadają wartości konkretnego elementu (argument)
D. konkretny element (argument) przypada w zakresie od 0 do 4
Funkcja 'wykonaj()' sprawdza, czy określony element (argument) znajduje się w tablicy zawierającej liczby całkowite. Algorytm przeszukuje tablicę iteracyjnie, porównując element wejściowy z każdym elementem tablicy, co pozwala na efektywne odnalezienie wartości, jeśli istnieje.

Pytanie 37

Który z poniższych procesów jest wyłącznie związany z kompilowaniem kodu?

A. Executing code step by step
B. Real-time translation of instructions
C. Detection of logical errors during program execution
D. Generating an executable file
Generowanie pliku wykonywalnego to jeden z najważniejszych kroków w kompilacji. Kiedy kod źródłowy zostaje przetworzony na język maszynowy, kompilator tworzy plik binarny, który można uruchomić na odpowiednim systemie operacyjnym. Taki plik jest samodzielny, więc nie trzeba go za każdym razem kompilować od nowa przy uruchamianiu. Dzięki kompilacji można też zoptymalizować kod, co jest mega ważne, zwłaszcza przy większych projektach. W przeciwieństwie do interpretacji, gdzie kod działa na bieżąco, kompilacja pozwala wyłapać błędy wcześniej i poprawić wydajność aplikacji. Moim zdaniem, to naprawdę spora zaleta!

Pytanie 38

Programem służącym do monitorowania błędów oraz organizacji projektów jest:

A. Git
B. Jasmine
C. Jira
D. Bugzilla
Git to system kontroli wersji, a nie coś do zarządzania projektami. Bugzilla to narzędzie do śledzenia błędów, ale brakuje mu funkcji, które oferuje pełne zarządzanie projektem. Jasmine to framework do testów jednostkowych w JavaScript, więc nie nadaje się do zarządzania projektami ani do śledzenia błędów w zespole.

Pytanie 39

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

Ilustracja do pytania
A. jest klasą podstawową (nie dziedziczy po innej klasie)
B. jest zaprzyjaźniona z klasą Vehicle
C. używa pól prywatnych klasy Vehicle
D. odziedzicza po Vehicle
Klasa bazowa to taka, która nie dziedziczy po żadnej innej klasie. Klasa zaprzyjaźniona to mechanizm bardziej charakterystyczny dla C++, natomiast korzystanie z pól prywatnych klasy Vehicle jest możliwe tylko wtedy, gdy są one oznaczone jako 'protected' lub 'internal'.

Pytanie 40

Wskaż fragment kodu, który stanowi realizację przedstawionego algorytmu w języku C++

Ilustracja do pytania
A. kod 1
B. kod 2
C. kod 4
D. kod 3
Kod 1 jest naprawdę dobrym przykładem tego, jak powinno się implementować algorytm z tego schematu blokowego. Wykorzystuje pętlę do-while, co jest super, bo dzięki temu pewność, że coś się wykona przynajmniej raz, jest zgarantowana. Najpierw dodajemy wartość `i` do zmiennej `suma`, a potem sprawdzamy, czy `suma` mieści się w granicach liczby. Jeżeli tak, to pętla robi swoje i działa dalej. Tak naprawdę, jak `suma` przekroczy `liczba`, to dopiero wtedy kończymy i wypisujemy wynik. To podejście jest zgodne z tym, jak algorytmy powinny działać - najpierw robimy coś, a potem patrzymy, czy trzeba powtórzyć. Pętle do-while są świetne w takich przypadkach, gdy konieczne jest, żeby coś stało się przynajmniej raz, co często zdarza się w problemach związanych z akumulacją wartości. Takie pętle są na porządku dziennym w algorytmach, które wymagają, żeby operacja się odbyła przynajmniej raz przed sprawdzeniem warunku.