Wyniki egzaminu

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

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

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

Zaprezentowany wykres ilustruje wyniki przeprowadzonych testów

Ilustracja do pytania
A. ochrony
B. użyteczności
C. wydajnoś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 2

Jakie z wymienionych działań jest fundamentalne w modelu kaskadowym?

A. Zakończenie jednej fazy przed rozpoczęciem następnej
B. Iteracyjne wprowadzanie modyfikacji na każdym poziomie
C. Przeprowadzanie testów systemu po zakończeniu każdej fazy
D. Równoległe prowadzenie wielu etapów projektu
Kończenie jednej fazy przed rozpoczęciem kolejnej to kluczowa cecha modelu kaskadowego (Waterfall). W tym podejściu projekt jest realizowany etapami – analiza, projektowanie, implementacja, testowanie i wdrożenie – bez możliwości powrotu do poprzednich faz. Dzięki temu model Waterfall jest przejrzysty i łatwy do zarządzania, szczególnie w projektach o stabilnych wymaganiach. Jednak jego ograniczeniem jest brak elastyczności, co może prowadzić do problemów, jeśli wymagania zmienią się w trakcie trwania projektu.

Pytanie 3

Jakie są różnice między procesem kompilacji a interpretacją kodu?

A. Kompilacja jest stosowana jedynie w programowaniu obiektowym
B. Kompilacja wymaga użycia debuggera, natomiast interpretacja tego nie potrzebuje
C. Interpretacja umożliwia tworzenie bibliotek dynamicznych, a kompilacja bibliotek statycznych
D. Kompilacja przekształca cały kod źródłowy przed jego wykonaniem, podczas gdy interpretacja tłumaczy kod na bieżąco
Kompilacja i interpretacja to dwa różne sposoby, żeby uruchomić kod. Kiedy kompilujesz, to cały kod jest zamieniany na język maszynowy przed uruchomieniem programu, a na końcu dostajesz plik, który można odpalić. Z kolei w interpretacji, kod jest analizowany i wykonywany linia po linii „na żywo”. Kompilacja jest bardziej typowa dla języków takich jak C czy C++, a interpretacja jest popularna w językach skryptowych jak Python czy JavaScript. Kompilacja daje większą wydajność, ale musisz poczekać, aż cały kod się skompiluje, a interpretacja pozwala na szybkie testowanie i łatwiejsze znajdowanie błędów.

Pytanie 4

Do form komunikacji werbalnej zalicza się

A. mówienie
B. wyraz twarzy
C. gestykulacja
D. pozycja ciała
Mówienie jest formą komunikacji werbalnej, która obejmuje przekazywanie informacji za pomocą słów. Jest to podstawowy sposób wyrażania myśli, instrukcji i emocji w bezpośredniej interakcji z innymi osobami.

Pytanie 5

Zapisany kod w języku Python ilustruje

Ilustracja do pytania
A. stos
B. kolejkę (LIFO)
C. strukturę
D. tablicę asocjacyjną (słownik)
W tym zadaniu mamy do czynienia z tablicą asocjacyjną, która w Pythonie nazywa się słownikiem. Słownik to taki fajny sposób na przechowywanie par klucz-wartość, co jest naprawdę przydatne. W naszym przypadku kluczami są symbole chemiczne, jak N czy O, a wartościami ich pełne nazwy, czyli Azot oraz Tlen. Dzięki tej strukturze można szybko sięgnąć po konkretne dane, co jest bardzo pomocne w różnych sytuacjach. Na przykład, można używać ich do przechowywania konfiguracji albo do prostych baz danych. Warto też dodać, że słowniki świetnie pasują do obiektów JSON, co jest ważne w tworzeniu aplikacji webowych. Dają nam dużą elastyczność i robią to w bardzo efektywny sposób, dlatego są jednym z kluczowych elementów Pythona. Ułatwiają pisanie kodu, który jest zarówno czytelny, jak i funkcjonalny.

Pytanie 6

Które z poniższych stwierdzeń najlepiej charakteryzuje tablicę asocjacyjną?

A. Tablica, która zmienia swoje wymiary w trakcie działania programu
B. Tablica, która przechowuje wyłącznie dane tekstowe
C. Tablica, która przechowuje wartości, do których można uzyskać dostęp tylko za pomocą indeksów numerycznych
D. Tablica przechowująca dane w formie par klucz-wartość
Tablica asocjacyjna to fajna rzecz, bo przechowuje dane w formie par klucz-wartość. W przeciwieństwie do zwykłych tablic, gdzie używasz numerów do indeksowania, tutaj możesz mieć różne unikalne klucze, na przykład teksty czy liczby. To naprawdę ułatwia wyszukiwanie informacji i organizowanie danych. W Pythonie nazywa się to 'słownikami', a w C++ używa się 'map'. Moim zdaniem, to świetne narzędzie do pracy z większymi zbiorami danych.

Pytanie 7

Jakie jest zastosowanie języka XAML przy tworzeniu aplikacji desktopowych?

A. Do obsługi zdarzeń klawiatury
B. Do projektowania graficznego interfejsu użytkownika
C. Do optymalizacji działania aplikacji
D. Do zarządzania bazami danych
XAML (Extensible Application Markup Language) to język znaczników wykorzystywany w technologii WPF (Windows Presentation Foundation) oraz UWP (Universal Windows Platform) do projektowania graficznego interfejsu użytkownika (GUI). XAML pozwala na definiowanie układów, przycisków, etykiet oraz innych elementów interaktywnych w aplikacjach desktopowych. Dzięki XAML, projektowanie interfejsu jest intuicyjne, a kod interfejsu jest oddzielony od logiki aplikacji, co sprzyja przejrzystości projektu. XAML wspiera animacje, style i szablony, co umożliwia budowę nowoczesnych, dynamicznych aplikacji. Jego elastyczność i możliwość współpracy z C# sprawiają, że XAML jest niezastąpiony w środowisku Windows.

Pytanie 8

Który z protokołów w modelu TCP/IP odpowiada za pewne przesyłanie danych?

A. UDP
B. HTTP
C. TCP
D. IP
Protokół IP (Internet Protocol) działa na poziomie sieci i jest odpowiedzialny za adresowanie oraz routing pakietów w sieci, ale nie zapewnia niezawodności w przesyłaniu danych. IP może dostarczać pakiety w dowolnej kolejności, a także nie oferuje mechanizmów do ponownego przesyłania utraconych danych. Z tego powodu nie jest odpowiedni do zastosowań wymagających gwarancji dostarczenia. Z kolei UDP (User Datagram Protocol) jest protokołem transportowym, który również nie zapewnia niezawodności. UDP umożliwia szybkie przesyłanie danych bez ustanawiania połączenia, co czyni go idealnym dla aplikacji takich jak strumieniowanie audio i wideo, gdzie opóźnienia są mniej krytyczne niż utrata niektórych pakietów. Wreszcie, HTTP (Hypertext Transfer Protocol) jest protokołem aplikacyjnym, który działa na szczycie TCP, ale nie jest odpowiedzialny za przesyłanie danych w niezawodny sposób samodzielnie, ponieważ korzysta z TCP, aby zapewnić te funkcje. HTTP używa TCP do transportu danych, co oznacza, że niezawodność komunikacji nie jest bezpośrednio przypisana do HTTP, ale raczej do protokołu, na którym jest oparty.

Pytanie 9

Jakie znaczenie ma krajowa normalizacja dla produktów i usług?

A. Gwarantuje lepszą zgodność oraz jakość
B. Usuwa konieczność przeprowadzania kontroli jakości
C. Restrukcjonuje innowacje technologiczne
D. Ogranicza liczbę dostępnych towarów
Normalizacja krajowa to świetny sposób na to, żeby produkty i usługi były bardziej spójne i lepszej jakości. Kiedy mamy standardy, to producenci mogą robić rzeczy, które są zgodne z wymaganiami technicznymi. To z kolei sprawia, że konsumenci mogą bardziej ufać produktom, a ryzyko, że coś będzie wadliwe, spada. Dzięki normalizacji zwiększa się bezpieczeństwo, poprawia interoperacyjność, a to wszystko wspiera rozwój technologiczny. No i jest jeszcze to, że łatwiej jest wymieniać produkty między różnymi rynkami, co ma pozytywny wpływ na całą gospodarkę.

Pytanie 10

Na jakim etapie cyklu życia projektu tworzony jest szczegółowy opis wymagań funkcjonalnych oraz niefunkcjonalnych?

A. Weryfikacja
B. Planowanie
C. Wdrożenie
D. Analiza
Faza analizy to etap cyklu życia projektu, podczas którego powstaje szczegółowy opis wymagań funkcjonalnych i niefunkcjonalnych. W tym czasie zespół zbiera dane, analizuje potrzeby użytkowników i definiuje wymagania, które będą stanowić podstawę do projektowania i implementacji. Wynikiem analizy jest dokumentacja, która precyzyjnie opisuje wszystkie aspekty aplikacji, co zapewnia zgodność końcowego produktu z oczekiwaniami klienta. Prawidłowo przeprowadzona analiza jest kluczowa dla sukcesu projektu, ponieważ eliminuje niejasności i minimalizuje ryzyko błędów na późniejszych etapach.

Pytanie 11

Co oznacza walidacja kodu programu?

A. Czynnością dotyczącą publikacji aplikacji w sklepie
B. Czynnością związaną z tworzeniem dokumentacji kodu
C. Czynnością weryfikującą poprawność i zgodność kodu z założeniami
D. Czynnością polegającą na kompilowaniu kodu
Walidacja kodu programu to proces sprawdzania jego poprawności i zgodności z założeniami projektowymi oraz standardami programistycznymi. Celem walidacji jest wykrycie błędów logicznych, składniowych i zgodności kodu z wymaganiami aplikacji. Walidacja może obejmować analizę statyczną kodu (bez jego wykonywania) oraz testy jednostkowe i integracyjne, które sprawdzają funkcjonalność aplikacji. Dzięki walidacji programiści mogą uniknąć błędów na późniejszych etapach rozwoju projektu, co znacząco zwiększa niezawodność i stabilność aplikacji. Proces ten jest nieodzowny w metodykach Agile i Continuous Integration, gdzie regularne testowanie kodu stanowi podstawę dostarczania wysokiej jakości oprogramowania.

Pytanie 12

Pierwszym krokiem w procesie tworzenia aplikacji jest

A. wybór zestawu typów i zmiennych dla aplikacji
B. stworzenie przypadków testowych
C. analiza wymagań klienta
D. opracowanie architektury systemu
Analiza wymagań klienta to kluczowy, pierwszy etap tworzenia aplikacji. Pozwala na określenie potrzeb, funkcjonalności i założeń systemu, co jest podstawą do dalszego projektowania architektury oraz implementacji.

Pytanie 13

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

A. W rejestrze systemu
B. Wyłącznie w zewnętrznych bazach danych
C. Za pomocą plików SharedPreferences
D. Tylko w pamięci RAM
Przechowywanie danych w rejestrze systemu jest typowe dla aplikacji desktopowych działających na systemach Windows i nie znajduje zastosowania w środowisku Android. Zewnętrzne bazy danych są używane do przechowywania dużych ilości danych, ale nie są optymalnym rozwiązaniem dla prostych preferencji użytkownika, ponieważ wymagają bardziej skomplikowanej konfiguracji. Przechowywanie danych wyłącznie w pamięci RAM jest rozwiązaniem tymczasowym – dane te są tracone po zamknięciu aplikacji lub ponownym uruchomieniu urządzenia, co czyni je niepraktycznymi do przechowywania trwałych ustawień użytkownika.

Pytanie 14

Jak wygląda kod uzupełnienia do dwóch dla liczby -5 w formacie binarnym przy użyciu 8 bitów?

A. 11111011
B. 11111101
C. 00000101
D. 10000101
Pierwsza z niepoprawnych odpowiedzi, która przedstawia wartość 00000101, jest błędna, ponieważ jest to binarna reprezentacja liczby 5, a nie -5. Kod uzupełnieniowy do dwóch wymaga przedstawienia liczby ujemnej poprzez inwersję bitów i dodanie jedynki. Ta odpowiedź nie ma zastosowania przy obliczaniu liczb ujemnych, stąd jest niewłaściwa. Kolejna odpowiedź, 11111101, również jest nieprawidłowa. W przypadku tej liczby, zainwersowanie bitów liczby 5 dawałoby 11111010, a dodanie 1 do tej wartości prowadziłoby do 11111011, co wskazuje, że ta odpowiedź nie jest zgodna z zasadą uzupełnienia do dwóch. Ostatnia z niepoprawnych odpowiedzi, 10000101, jest również błędna, ponieważ nie odpowiada żadnej z reprezentacji liczby -5. Gdybyśmy spróbowali konwertować ją z powrotem na wartość dziesiętną, otrzymalibyśmy 133, co jest zdecydowanie niepoprawne. Warto zauważyć, że każda z tych niepoprawnych odpowiedzi wskazuje na brak zrozumienia zasad konwersji liczb ujemnych w systemie binarnym, co jest kluczowe w informatyce i programowaniu, a ich użycie w praktycznych aplikacjach mogłoby prowadzić do poważnych błędów w obliczeniach.

Pytanie 15

W dwóch przypadkach opisano mechanizm znany jako Binding. Jego celem jest

Ilustracja do pytania
A. wiązać właściwości (property) elementu interfejsu użytkownika z danymi lub właściwością innego obiektu
B. zarządzanie mechanizmem obietnic (promises) lub obserwatora (observable) w programowaniu asynchronicznym
C. wiązanie oraz eksportowanie plików z różnych modułów aplikacji
D. przetwarzanie zdarzeń kontrolek interfejsu użytkownika przez wywoływanie odpowiednich funkcji
Obsługa zdarzeń kontrolki (np. click) to inny mechanizm niż data binding. Binding nie jest związany bezpośrednio z mechanizmem obietnic (promises) ani eksportem plików – dotyczy bezpośrednio interakcji między danymi a interfejsem użytkownika.

Pytanie 16

Jak zrealizować definiowanie własnego wyjątku w języku C++?

A. Wykorzystać blok try z pustym blokiem catch
B. Automatycznie wywołać funkcję throw
C. Skorzystać z domyślnej metody obsługi błędów
D. Utworzyć klasę, która dziedziczy po std::exception
Użycie standardowej funkcji obsługi błędów, takiej jak 'perror()', nie pozwala na zdefiniowanie własnego wyjątku – 'perror()' wyświetla komunikat o błędzie, ale nie zgłasza wyjątku. Blok 'try' z pustym blokiem 'catch' nie tworzy nowego wyjątku, lecz jedynie przechwytuje istniejące wyjątki. Wywołanie 'throw' automatycznie nie definiuje nowego wyjątku – 'throw' służy do zgłaszania istniejącego wyjątku, ale definicja własnego wyjątku wymaga utworzenia nowej klasy dziedziczącej po 'std::exception'.

Pytanie 17

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

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

Pytanie 18

W standardzie dokumentacji testów oprogramowania IEEE 829-1998 opisany jest dokument, który zawiera dane o tym, jakie przypadki testowe były wykorzystane, przez kogo i czy zakończyły się sukcesem. Co to jest?

A. Specyfikacja Procedury Testowej
B. Plan Testów
C. Dziennik Testów
D. Raport Podsumowujący Testy
Test Log to dokument, który rejestruje wszystkie przeprowadzone przypadki testowe, informacje o ich wykonaniu oraz wyniki. Umożliwia śledzenie przebiegu testów i analizę ich efektywności. Jest to kluczowy element dokumentacji testowej, który pozwala zidentyfikować powtarzające się błędy oraz ocenę jakości kodu na podstawie przeszłych wyników.

Pytanie 19

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

Ilustracja do pytania
A. konkretny element (argument) przypada w zakresie od 0 do 4
B. wszystkie elementy w tablicy odpowiadają wartości konkretnego elementu (argument)
C. w tablicy liczb całkowitych znajdują się jedynie wartości 4, 15, -2, 9, 202
D. konkretny element (argument) jest obecny w tablicy liczb całkowitych
Sprawdzanie równości wszystkich elementów tablicy wymaga innego podejścia, które porównuje każdy element z jednym punktem odniesienia. Weryfikacja zakresów wartości odbywa się poprzez analizę wartości minimalnych i maksymalnych, co nie jest celem tej funkcji. Funkcja ta nie ogranicza tablicy do konkretnych wartości, takich jak 4, 15 czy 202, lecz analizuje pełen zakres danych.

Pytanie 20

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. realizowane przez zespół zatrudnionych testerów z Google
C. prowadzone w oparciu o dokument zawierający przypadki testowe
D. podzielone na testy dotyczące funkcjonalności, wydajności i skalowalności
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 21

Kod XAML zaprezentowany powyżej zostanie wyświetlony jako:

Ilustracja do pytania
A. A
B. C
C. B
D. D
Kod XAML zostanie wyrenderowany jako element D, co oznacza, że spełnia wszystkie warunki formatowania i układu graficznego zgodne z przedstawionym rysunkiem. XAML to język znaczników do projektowania interfejsów użytkownika w aplikacjach WPF, UWP i Xamarin.

Pytanie 22

Która grupa typów zawiera wyłącznie typy złożone?

A. class, struct, float
B. char, struct, union
C. class, struct, union
D. unsigned, struct, float
Class, struct i union to typy złożone, które mogą przechowywać wiele różnych wartości i struktur danych. Klasy i struktury są podstawą programowania obiektowego, a unie (union) pozwalają na efektywne zarządzanie pamięcią poprzez współdzielenie miejsca w pamięci dla różnych typów danych.

Pytanie 23

Reguła zaangażowania i konsekwencji jako jedna z zasad wpływania na innych odnosi się

A. do odwzajemniania się osobie, która nam pomogła
B. do doprowadzania spraw do końca
C. do kierowania się zdaniem danej grupy
D. do uległości wobec autorytetów
Reguła zaangażowania i konsekwencji odnosi się do potrzeby doprowadzenia spraw do końca. Kiedy ktoś podejmie decyzję lub działanie, jest bardziej skłonny kontynuować, aby zachować spójność wewnętrzną i unikać dysonansu poznawczego.

Pytanie 24

Który z wymienionych elementów może stanowić część menu w aplikacji desktopowej?

A. ScrollBar
B. Canvas
C. MenuItem
D. CheckBox
CheckBox to komponent, który umożliwia wybór jednej lub wielu opcji, ale nie jest częścią systemu menu – zwykle znajduje się w formularzach lub ustawieniach aplikacji. ScrollBar to element interfejsu umożliwiający przewijanie treści w oknie aplikacji, ale nie jest elementem menu. Canvas to kontener do rysowania elementów graficznych i obiektów, ale nie pełni funkcji w kontekście tworzenia menu aplikacji desktopowych.

Pytanie 25

Jakie jest podstawowe środowisko do tworzenia aplikacji desktopowych przy użyciu języka C#?

A. MS Visual Studio
B. Eclipse
C. NetBeans
D. PyCharm
MS Visual Studio to potężne zintegrowane środowisko programistyczne (IDE) zaprojektowane przez firmę Microsoft, które oferuje pełne wsparcie dla języka C#. Dzięki bogatym funkcjom, takim jak IntelliSense, które ułatwia pisanie kodu poprzez podpowiadanie składni oraz dostępność narzędzi do debugowania, programiści mogą efektywnie rozwijać aplikacje desktopowe. MS Visual Studio obsługuje różne frameworki, takie jak .NET Framework oraz .NET Core, co pozwala na budowanie aplikacji o różnej architekturze. W praktyce, programiści mogą tworzyć aplikacje w oparciu o Windows Presentation Foundation (WPF) lub Windows Forms, co umożliwia tworzenie rozbudowanych interfejsów użytkownika. Dodatkowo, MS Visual Studio oferuje szereg narzędzi do współpracy zespołowej, integracji z systemami kontroli wersji oraz wsparcie dla testowania jednostkowego. Jako standard w branży, MS Visual Studio jest często preferowanym wyborem w projektach komercyjnych i korporacyjnych, z uwagi na jego wszechstronność oraz wsparcie ze strony społeczności programistycznej.

Pytanie 26

Który z wymienionych aktów prawnych odnosi się do ochrony danych osobowych w krajach Unii Europejskiej?

A. Creative Commons
B. Open Source Initiative
C. DMCA
D. GDPR (RODO)
GDPR (RODO) to akt prawny dotyczący ochrony danych osobowych w Unii Europejskiej. Wprowadza on jednolite zasady przetwarzania danych, zwiększając ochronę prywatności obywateli. RODO daje użytkownikom prawo do dostępu do swoich danych, ich poprawiania, a także żądania ich usunięcia (prawo do bycia zapomnianym). Firmy muszą transparentnie informować o celach przetwarzania danych oraz zapewniać odpowiedni poziom zabezpieczeń. Niezastosowanie się do przepisów RODO skutkuje wysokimi karami finansowymi.

Pytanie 27

Jakie znaczenie ma deklaracja zmiennej w programowaniu?

A. Stworzenie nowej wartości w bazie danych
B. Przypisanie zmiennej wartości domyślnej
C. Zarezerwowanie miejsca w pamięci dla wyników operacji arytmetycznych
D. Określenie typu oraz nazwy zmiennej w kodzie programu
Utworzenie wartości w bazie danych nie jest związane z deklaracją zmiennej – to operacja wykonywana w językach baz danych (np. SQL). Przypisanie zmiennej wartości domyślnej następuje po jej deklaracji, ale samo przypisanie wartości nie jest równoznaczne z deklaracją. Zarezerwowanie miejsca w pamięci dla wyników operacji arytmetycznych to efekt działania programu, a nie deklaracji zmiennej – rezerwacja pamięci następuje po uruchomieniu kodu, a nie na etapie jego pisania.

Pytanie 28

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

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

Pytanie 29

Która funkcja z biblioteki jQuery w JavaScript służy do naprzemiennego dodawania oraz usuwania klasy z elementu?

A. .bingClass()
B. .switchClass()
C. .changeClass()
D. .toggleClass()
Metoda .toggleClass() w jQuery jest mega przydatna, bo pozwala na dodawanie lub usuwanie klasy CSS w czasie rzeczywistym. Dzięki temu można fajnie urozmaicić interakcje na stronie i dodać różne efekty wizualne, co na pewno przyciąga uwagę użytkowników.

Pytanie 30

W jaki sposób definiuje się konstruktor kopiujący w ramach klasy?

A. Tworzy nowy obiekt jako wierną kopię innego obiektu
B. Generuje nowy obiekt klasy bez przypisywania wartości
C. Generuje nowy obiekt i usuwa wcześniejszy
D. Inicjuje obiekt klasy na podstawie klasy dziedziczącej
Tworzenie nowego obiektu bez przypisania wartości to zadanie domyślnego konstruktora, który inicjalizuje obiekt, ale nie kopiuje stanu innego obiektu. Tworzenie obiektu na podstawie klasy pochodnej to proces dziedziczenia, a nie kopiowania – w tym przypadku tworzona jest nowa instancja klasy dziedziczącej, ale nie kopiowany jest stan innego obiektu. Usunięcie obiektu i stworzenie nowego nie jest zadaniem konstruktora kopiującego – za usuwanie odpowiada destruktor, który działa automatycznie podczas niszczenia obiektów.

Pytanie 31

W jakim modelu Cyklu Życia Projektu Informatycznego znajduje się etap analizy ryzyka?

A. W modelu Fry’ego
B. W kaskadowym
C. W spiralnym
D. W modelu z prototypem
Model spiralny zawiera etap analizy ryzyka na każdym poziomie iteracji. To kluczowy element tej metodyki, który pozwala minimalizować potencjalne problemy na wczesnym etapie rozwoju projektu.

Pytanie 32

Jakie pola powinny być umieszczone w klasie nadrzędnej w strukturze dziedziczenia?

A. Pola, które są wykorzystywane tylko w funkcjach statycznych
B. Pola, które są wspólne dla wszystkich klas pochodnych
C. Pola, które są charakterystyczne jedynie dla pojedynczej klasy pochodnej
D. Pola, które są tylko prywatne
W klasie bazowej w hierarchii dziedziczenia umieszcza się pola, które są wspólne dla wszystkich klas pochodnych. Dzięki temu klasy pochodne mogą dziedziczyć te same właściwości, co eliminuje konieczność ich wielokrotnego definiowania. Jest to jedna z głównych zalet programowania obiektowego, umożliwiająca reużywalność kodu i zwiększenie spójności w projekcie. Przykładem może być klasa 'Pracownik', która zawiera pola takie jak 'imię', 'nazwisko' i 'wynagrodzenie', a klasy pochodne, takie jak 'Inżynier' czy 'Księgowy', mogą dziedziczyć te same pola, dodając jedynie specyficzne właściwości dla swojej roli.

Pytanie 33

Jakie jest znaczenie klasy abstrakcyjnej?

A. Klasa, która może być dziedziczona, ale nie można jej instancjonować
B. Klasa, która może zawierać zarówno metody zdefiniowane, jak i niezdefiniowane (czysto wirtualne)
C. Klasa, która nie może posiadać żadnych metod
D. Klasa, która zawsze dziedziczy z klasy bazowej
Klasa, która nie może mieć żadnych metod, jest niepraktyczna i nie spełnia żadnych funkcji w programowaniu obiektowym. Klasa dziedzicząca zawsze dziedziczy po klasie bazowej, a nie po klasie pochodnej – dziedziczenie odbywa się w jednym kierunku. Twierdzenie, że klasa abstrakcyjna zawsze dziedziczy z klasy pochodnej, jest błędne – klasy abstrakcyjne mogą być na szczycie hierarchii dziedziczenia i służą jako punkt wyjścia dla innych klas. Klasa, która nie może być instancjonowana, ale może być dziedziczona, to właśnie klasa abstrakcyjna, co czyni to stwierdzenie poprawnym.

Pytanie 34

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

A. Swift
B. C++
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 35

Kiedy w programie występuje problem z działaniem, a programista musi zweryfikować wartości znajdujące się w zmiennych w momencie działania aplikacji, to w tym celu należy zastosować

A. wirtualną maszynę
B. interpreter
C. debugger
D. analizator składni
Analizator składni wykrywa błędy składniowe przed uruchomieniem aplikacji, ale nie pozwala na śledzenie wartości zmiennych w trakcie działania programu. Wirtualna maszyna (VM) uruchamia kod, ale nie posiada narzędzi debugowania. Interpreter wykonuje kod instrukcja po instrukcji, ale również nie umożliwia bezpośredniego podglądu wartości zmiennych w dowolnym momencie.

Pytanie 36

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

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

Pytanie 37

Jakie aspekty powinny być brane pod uwagę przy tworzeniu struktury danych dla aplikacji?

A. Nie ma związku pomiędzy strukturą danych a efektywnością aplikacji
B. Złożoność obróbki danych oraz ich efektywną organizację
C. Tylko typ języka programowania
D. Tylko wymagania sprzętowe
Złożoność przetwarzania danych i ich optymalna organizacja to kluczowe elementy podczas projektowania struktury danych dla aplikacji. Dobrze zaprojektowana struktura danych wpływa na wydajność aplikacji, redukuje czas dostępu do informacji oraz minimalizuje zużycie zasobów. Optymalizacja algorytmów oraz wybór odpowiednich struktur danych, takich jak listy, drzewa czy tablice hashujące, ma bezpośredni wpływ na szybkość działania aplikacji.

Pytanie 38

Jakie znaczenie ma polimorfizm w programowaniu obiektowym?

A. Umożliwia jednej metodzie działać w różnorodny sposób w zależności od klasy, do której należy
B. Pozwala na tworzenie obiektów z wielu różnych klas równocześnie
C. Dzieli program na klasy oraz obiekty
D. Ogranicza dostęp do atrybutów klasy
Polimorfizm to zdolność obiektów do używania tej samej metody lub interfejsu, ale z różnymi implementacjami, w zależności od klasy obiektu. Dzięki polimorfizmowi można wywołać metodę `obiekt.wyswietl()`, która zachowuje się inaczej w klasie `Samochod` i inaczej w klasie `Motocykl`, mimo że nazwa metody pozostaje taka sama. Polimorfizm ułatwia rozbudowę aplikacji, ponieważ nowe klasy mogą być dodawane bez modyfikacji istniejącego kodu, co zwiększa elastyczność i rozszerzalność programu. Jest to jedna z najważniejszych zasad programowania obiektowego, obok dziedziczenia i hermetyzacji.

Pytanie 39

Który z wymienionych składników charakteryzuje się typowym wystąpieniem w diagramie Gantta?

A. Wykaz użytkowników w systemie
B. Oś czasu oraz przedziały czasowe dla zadań
C. Model relacji pomiędzy tabelami w bazie danych
D. Wykaz błędów w projekcie
Diagram Gantta zawiera oś czasu i zakresy czasowe dla zadań, co pozwala na wizualizację całego harmonogramu projektu. Każde zadanie jest reprezentowane jako pasek na wykresie, którego długość odzwierciedla czas trwania zadania. Diagram ten jest szczególnie pomocny w zarządzaniu złożonymi projektami, gdzie istnieje wiele współzależnych zadań. Dzięki diagramowi Gantta można łatwo określić, które zadania są krytyczne dla terminowego zakończenia projektu oraz jakie są dostępne bufory czasowe. Jest to jedno z najczęściej używanych narzędzi w zarządzaniu projektami.

Pytanie 40

Jakie jest podstawowe założenie normalizacji krajowej?

A. Ujednolicenie wymagań technicznych i poprawa bezpieczeństwa
B. Utrudnienie handlu międzynarodowego
C. Wzrost kosztów produkcji
D. Zwiększenie ilości regulacji prawnych
Ujednolicenie wymagań technicznych i poprawa bezpieczeństwa to główne cele normalizacji krajowej. Normalizacja polega na opracowywaniu standardów, które są stosowane w różnych branżach w celu zapewnienia jakości, bezpieczeństwa i kompatybilności produktów oraz usług. Dzięki normalizacji producenci tworzą wyroby zgodne z określonymi normami, co zwiększa ich konkurencyjność na rynku krajowym i międzynarodowym. Wdrożenie jednolitych standardów wpływa także na bezpieczeństwo użytkowników, minimalizując ryzyko awarii lub niezgodności produktów.