Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 7 stycznia 2025 18:50
  • Data zakończenia: 7 stycznia 2025 18:56

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

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

Jakie metody pozwalają na przesłanie danych z serwera do aplikacji front-end?

A. formatu JSON
B. biblioteki jQuery
C. protokołu SSH
D. metody POST
Format JSON (JavaScript Object Notation) jest powszechnie używany do przesyłania danych z serwera do aplikacji front-end. Jest lekki, czytelny i łatwy do przetwarzania w większości języków programowania, co czyni go standardem w komunikacji API. JSON pozwala na efektywne przesyłanie złożonych struktur danych i ich łatwe mapowanie na obiekty w aplikacji.

Pytanie 2

Zaprezentowany kod zawiera pola danej klasy. Które pole (pola) mogą być osiągnięte z poziomu głównego programu poprzez odwołanie się w formie nazwaObiektu.nazwaPola?

Ilustracja do pytania
A. p1
B. p3 i p4
C. wyłącznie p3, p4, p5
D. jedynie p3
To pole p3 jest publiczne, co oznacza, że możesz je użyć w programie głównym, wywołując nazwaObiektu.p3. Fajne jest to, że pola prywatne i chronione są niewidoczne poza klasą, więc musisz użyć odpowiednich metod, takich jak gettery i settery, żeby się do nich dostać.

Pytanie 3

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

Ilustracja do pytania
A. jest klasą podstawową (nie dziedziczy po innej klasie)
B. używa pól prywatnych klasy Vehicle
C. odziedzicza po Vehicle
D. jest zaprzyjaźniona z klasą Vehicle
Klasa Car dziedziczy po klasie Vehicle w języku C#. Dziedziczenie pozwala na wykorzystanie funkcji i właściwości klasy bazowej (Vehicle) w klasie pochodnej (Car). Umożliwia to wielokrotne użycie kodu i rozszerzanie funkcjonalności bez konieczności powielania kodu. Jest to fundamentalny mechanizm programowania obiektowego.

Pytanie 4

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

A. Zawierają kod źródłowy aplikacji
B. Są ładowane podczas kompilacji
C. Są statycznie dołączane do pliku wykonywalnego
D. Są ładowane w trakcie działania aplikacji
Biblioteki dynamiczne, znane też jako DLL w Windows czy SO w Unix/Linux, ładują się do pamięci, gdy program działa. To super, bo dzięki temu aplikacja nie marnuje zasobów, a jak zajdzie potrzeba, to może z nich korzystać. Można też aktualizować te biblioteki bez potrzeby rekompilacji całego programu – to duża wygoda. Dzięki dynamicznemu ładowaniu kod może być współdzielony przez różne aplikacje, a to zmniejsza rozmiar plików i sprawia, że łatwiej się tym wszystkim zarządza.

Pytanie 5

Jaką strukturę danych można zrealizować, korzystając jedynie z wymienionych metod?

Ilustracja do pytania
A. drzewo binarne
B. stos
C. tablica
D. kolejka FIFO
Stos (stack) to struktura danych działająca na zasadzie LIFO (Last In, First Out), co oznacza, że ostatnio dodany element jest usuwany jako pierwszy. Do jego implementacji wystarczą podstawowe metody: dodawania (push) i usuwania (pop) elementów, co czyni go jedną z najprostszych struktur danych.

Pytanie 6

W aplikacji mobilnej, aby określić warianty grafiki w zależności od wielkości ekranu, należy (uwaga: odpowiedzi wariantowe dla dwóch systemów - sugerować się systemem omawianym na zajęciach)

A. iOS: dodać do nazw sufiksy oznaczające rozdzielczość, np. 32ppi. Android: umieścić grafikę w odpowiednich katalogach: 32ppi, 64ppi, 96ppi
B. iOS: dodać do nazw sufiksy #2x, #3x. Android: dodać do nazw sufiks rozdzielczości: -32x32, -64x64, -96x96
C. iOS: dodać do nazw plików sufiksy @2x, @3x. Android: umieścić grafikę w odpowiednich folderach drawable: -hdpi, -xhpi, xxhdpi
D. iOS: utworzyć katalogi hdpi, lhpi, xhpi i dodać do nich grafiki. Android: utworzyć katalogi 32x32, 64x64, 96x96 i dodać do nich grafiki
Kiedy chcemy, żeby grafiki w aplikacjach mobilnych wyglądały dobrze na różnych ekranach, musimy zastosować odpowiednie strategie, które zależą od platformy. Na iOS używa się przyrostków @2x lub @3x, co oznacza, że grafiki są przygotowane dla ekranów Retina, które mają wyższą gęstość pikseli. Na Androidzie z kolei, grafiki umieszcza się w folderach drawable z takimi nazwami jak -hdpi, -xhdpi czy -xxhdpi. Dzięki temu system wie, jaką wersję grafiki wybrać w zależności od rozdzielczości urządzenia. Moim zdaniem, taki system pozwala na super jakość obrazów i lepszą wydajność aplikacji.

Pytanie 7

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

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

Pytanie 8

Co to jest automatyzacja testowania procesów?

A. Integracją testów w środowisku deweloperskim
B. Używaniem narzędzi oraz skryptów do wykonywania testów w sposób automatyczny bez udziału człowieka
C. Sprawdzaniem poprawności działania aplikacji na urządzeniach przenośnych
D. Kompilowaniem kodu w celu zwiększenia efektywności
Integracja testów w środowisku programistycznym odnosi się do procesu implementacji narzędzi CI/CD (Continuous Integration/Continuous Deployment), co wspiera zarządzanie cyklem życia oprogramowania, ale nie jest równoznaczne z automatyzacją testów. Weryfikacja poprawności działania aplikacji na urządzeniach mobilnych to proces testowania kompatybilności i responsywności aplikacji, co stanowi jedynie część procesu testowego, ale nie jest automatyzacją jako całość. Kompilacja kodu w celu optymalizacji wydajności to technika poprawy działania aplikacji, która może wpłynąć na jej szybkość, ale nie odnosi się do procesu testowania automatycznego, a raczej do programowania i debugowania aplikacji.

Pytanie 9

Na podstawie definicji zamieszczonej w ramce, wskaż, który z rysunków ilustruje komponent Chip zdefiniowany w bibliotece Angular Material?

Ilustracja do pytania
A. Rysunek 2
B. Rysunek 3
C. Rysunek 1
D. Rysunek 4
Komponent Chip w bibliotece Angular Material to interaktywny element, który reprezentuje fragment informacji, tag lub wybór. Może zawierać tekst, ikonę lub być klikalny, co czyni go niezwykle użytecznym w projektowaniu nowoczesnych interfejsów użytkownika. Komponenty tego typu często wykorzystywane są w formularzach lub systemach tagowania, umożliwiając użytkownikowi intuicyjne dodawanie lub usuwanie elementów. Wyróżnia się swoją minimalistyczną formą i możliwością dostosowania do różnych potrzeb projektowych.

Pytanie 10

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

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

Pytanie 11

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

A. Private
B. Public
C. Protected
D. Static
Modyfikator `public` umożliwia dostęp do pól i metod z dowolnego miejsca w programie, co narusza zasadę hermetyzacji i ukrywania danych wewnętrznych obiektu. `protected` pozwala na dostęp do pól i metod klasy w ramach dziedziczenia, ale nie ogranicza dostępu wyłącznie do metod tej samej klasy. `static` to modyfikator, który oznacza, że pole lub metoda należy do klasy, a nie do instancji obiektu, co nie jest związane z ograniczaniem dostępu. Tylko `private` zapewnia pełną kontrolę nad dostępem do danych wewnątrz klasy.

Pytanie 12

Jakie elementy powinny być ujęte w dokumentacji programu?

A. Zestawienie błędów zidentyfikowanych w trakcie testów
B. Strategia marketingowa aplikacji
C. Szczegóły dotyczące konfiguracji serwera
D. Opis funkcji, klas i zmiennych w kodzie
Opis funkcji, klas i zmiennych w kodzie to kluczowy element dokumentacji programu. Tego rodzaju dokumentacja pozwala na lepsze zrozumienie struktury aplikacji, jej logiki biznesowej oraz wzajemnych zależności pomiędzy poszczególnymi komponentami. Dokumentacja techniczna obejmuje szczegółowe informacje na temat implementacji, interfejsów API, schematów baz danych oraz sposobów integracji z innymi systemami. Dzięki niej programiści mogą szybciej wdrażać się w projekt, a błędy i niejasności są minimalizowane. Kompleksowa dokumentacja zawiera także przykłady użycia poszczególnych funkcji, co dodatkowo ułatwia rozwój i rozbudowę aplikacji. W dobrze prowadzonym projekcie dokumentacja kodu jest na bieżąco aktualizowana, co zwiększa jego przejrzystość i wspiera proces refaktoryzacji.

Pytanie 13

W jakiej sytuacji należy umieścić poszkodowanego w bezpiecznej pozycji bocznej?

A. w sytuacji omdlenia i braku tętna
B. w przypadku urazu pleców, gdy osoba jest przytomna
C. gdy osoba omdleje, ale oddycha
D. gdy wystąpi uszkodzenie kręgosłupa
Uraz pleców u osoby przytomnej nie wymaga pozycji bocznej, a raczej stabilizacji. Uszkodzenie kręgosłupa wymaga unikania poruszania poszkodowanego, aby nie pogłębiać obrażeń. Brak tętna i oddechu to wskazanie do rozpoczęcia resuscytacji, a nie układania w pozycji bocznej bezpiecznej.

Pytanie 14

Która metoda w obrębie klasy jest uruchamiana automatycznie podczas tworzenia kopii obiektu?

A. Konstruktor kopiujący
B. Metoda zaprzyjaźniona
C. Metoda statyczna
D. Destruktor
Metoda statyczna jest związana z klasą, a nie z jej obiektami, więc nie wywołuje się automatycznie, gdy kopiujemy obiekt. Destruktor to kolejna metoda, która odpowiada za usuwanie obiektu i zwalnianie zasobów, ale jego rola pojawia się dopiero na końcu życia obiektu, a nie podczas samego kopiowania. Co do metody zaprzyjaźnionej, to ona ma dostęp do prywatnych i chronionych elementów klasy, ale też nie jest wywoływana automatycznie w procesie kopiowania. Tylko konstruktor kopiujący robi to właściwie, tworząc kopie obiektów.

Pytanie 15

Szablon MojaTablica oferuje funkcjonalność tablicy z indeksami oraz elementami różnych typów. W oparciu o pokazany kod, który wykorzystuje ten szablon do tworzenia tablicy asocjacyjnej, wskaż definicję, która posługuje się szablonem do zainicjowania tablicy, gdzie indeksami są liczby całkowite, a elementami są napisy?

Ilustracja do pytania
A. int tab2[] = new MojaTablica()
B. MojaTablica tab2 = new MojaTablica()
C. MojaTablica tab2 = MOjaTablica()
D. int tab2 = new MojaTablica()
Aby utworzyć tablicę asocjacyjną w oparciu o szablon, należy zainicjalizować ją przy użyciu właściwej składni: MojaTablica tab2 = new MojaTablica();. Tego typu deklaracja tworzy obiekt tablicy, gdzie klucze są liczbami całkowitymi, a wartości przechowywane w tablicy to napisy. Tablice asocjacyjne to potężne narzędzie pozwalające na szybkie wyszukiwanie i przechowywanie danych, bazujące na unikalnych kluczach, co umożliwia efektywne zarządzanie złożonymi strukturami danych.

Pytanie 16

Jakie środowisko deweloperskie jest powszechnie wykorzystywane do produkcji aplikacji webowych w języku Java?

A. PyCharm
B. XCode
C. Android Studio
D. Eclipse
XCode to środowisko programistyczne przeznaczone głównie do tworzenia aplikacji na systemy Apple, takie jak macOS, iOS, iPadOS, a nie do aplikacji webowych w języku Java. Android Studio jest dedykowane tworzeniu aplikacji mobilnych na system Android i nie jest używane w środowisku webowym dla Javy. PyCharm to narzędzie skoncentrowane na języku Python i nie posiada natywnego wsparcia dla programowania w Javie, co czyni go nieodpowiednim wyborem dla aplikacji webowych opartych na tym języku.

Pytanie 17

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 18

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

A. Kompilacja jest stosowana jedynie w programowaniu obiektowym
B. Kompilacja przekształca cały kod źródłowy przed jego wykonaniem, podczas gdy interpretacja tłumaczy kod na bieżąco
C. Interpretacja umożliwia tworzenie bibliotek dynamicznych, a kompilacja bibliotek statycznych
D. Kompilacja wymaga użycia debuggera, natomiast interpretacja tego nie potrzebuje
Debugger to narzędzie, które nie jest konieczne do kompilacji, ale może pomóc w szukaniu błędów w kodzie, który został skompilowany lub interpretowany. Programowanie obiektowe nie działa tylko w przypadku kompilacji, bo wiele języków jak Python czy Ruby działa w trybie interpretacji. No i tworzenie bibliotek dynamicznych nie jest tylko związane z interpretacją - zarówno kompilacja, jak i interpretacja mogą z nich korzystać, w zależności od tego, co potrzebujesz w projekcie.

Pytanie 19

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

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

Pytanie 20

Jakie znaczenie ma pojęcie "debugowanie" w kontekście programowania?

A. Przygotowywanie dokumentacji kodu
B. Wdrażanie aplikacji w środowisku produkcyjnym
C. Tworzenie nowych funkcjonalności aplikacji
D. Wyszukiwanie i usuwanie błędów w kodzie
Debugowanie to proces wyszukiwania i eliminowania błędów (bugów) w kodzie źródłowym programu. Polega na analizowaniu działania aplikacji linia po linii, śledzeniu wartości zmiennych, analizie stosu wywołań i wykrywaniu miejsc, w których program działa niezgodnie z oczekiwaniami. Debugowanie umożliwia programistom szybkie odnajdywanie błędów logicznych, składniowych oraz problemów z wydajnością aplikacji. Narzędzia takie jak Visual Studio, PyCharm, IntelliJ IDEA czy Chrome DevTools oferują zaawansowane funkcje debugowania, takie jak punkty przerwań (breakpoints), krokowe wykonywanie kodu i podgląd pamięci. Proces debugowania jest kluczowy w każdym etapie rozwoju oprogramowania, ponieważ znacząco wpływa na stabilność i jakość finalnego produktu.

Pytanie 21

Jakie składniki są kluczowe w dynamicznym formularzu logowania?

A. Pola tekstowe do wprowadzania danych użytkownika
B. Nagłówek HTTP
C. Plik graficzny
D. Tabela w bazie danych
Pola tekstowe do wprowadzania danych użytkownika są kluczowym elementem dynamicznego formularza logowania. Umożliwiają one użytkownikowi wprowadzenie informacji, takich jak nazwa użytkownika i hasło, co jest niezbędne do uwierzytelnienia w systemie. Formularze HTML wykorzystują tagi <input> do tworzenia pól tekstowych, a ich interakcja z użytkownikiem może być wspierana przez JavaScript lub inne technologie frontendowe, które walidują dane i zapewniają bezpieczeństwo procesu logowania. Pola tekstowe mogą być wzbogacone o atrybuty, takie jak 'required', 'pattern' czy 'type', które dodatkowo zabezpieczają formularz i ułatwiają użytkownikowi poprawne wypełnienie danych.

Pytanie 22

Jakie jest podstawowe użycie metod wirtualnych?

A. Umożliwienie dynamicznego wiązania metod w czasie wykonania
B. Umożliwienie wielokrotnego dziedziczenia
C. Zapewnienie, że metoda działa wyłącznie na danych statycznych
D. Umożliwienie korzystania z metod bezpośrednio z klasy bazowej
Metody wirtualne umożliwiają dynamiczne wiązanie metod w czasie wykonywania programu (ang. runtime). Oznacza to, że wywołanie metody zależy od rzeczywistego typu obiektu, a nie od typu wskaźnika lub referencji, za pomocą której został on wywołany. Mechanizm ten pozwala na implementację polimorfizmu, który jest jednym z kluczowych filarów programowania obiektowego. Dzięki metodom wirtualnym można uzyskać elastyczność i rozszerzalność kodu, umożliwiając klasom pochodnym dostarczanie własnych wersji metod zdefiniowanych w klasie bazowej. To prowadzi do bardziej zorganizowanego i skalowalnego kodu, ponieważ nowe funkcjonalności można dodawać, rozszerzając istniejące klasy, zamiast modyfikować kod bazowy.

Pytanie 23

W jakiej topologii sieciowe wszystkie urządzenia są bezpośrednio powiązane z każdym innym?

A. Topologia magistrali
B. Topologia siatki
C. Topologia pierścienia
D. Topologia gwiazdy
Topologia magistrali charakteryzuje się tym, że wszystkie urządzenia są podłączone do pojedynczego kabla, zwanym magistralą. Komunikacja w tej topologii odbywa się przez przekazywanie sygnałów wzdłuż tego kabla, co może prowadzić do kolizji, gdy wiele urządzeń próbuje jednocześnie przesyłać dane. Ograniczeniem tej topologii jest to, że awaria magistrali skutkuje brakiem komunikacji w całej sieci, co czyni ją mniej niezawodną i efektywną w porównaniu do topologii siatki. Topologia gwiazdy polega na tym, że wszystkie urządzenia są połączone z centralnym punktem, zwanym koncentratorem lub przełącznikiem. Chociaż ta topologia zapewnia łatwość w dodawaniu nowych urządzeń i umożliwia izolację awarii, nie gwarantuje pełnej redundantności, ponieważ awaria centralnego urządzenia prowadzi do przerwania komunikacji w całej sieci. Z kolei topologia pierścienia, w której każde urządzenie jest połączone z dwoma innymi, tworząc zamknięty krąg, również nie jest odpowiednia, ponieważ awaria jednego połączenia uniemożliwia komunikację w całym pierścieniu, co czyni ją mniej odporną na błędy. W porównaniu do topologii siatki, wszystkie te struktury mają swoje ograniczenia, które wpływają na ich zastosowanie w bardziej złożonych i wymagających środowiskach sieciowych.

Pytanie 24

Przedstawiony fragment dotyczy funkcji resize w języku C++. Ta funkcja obniży długość elementu string, gdy wartość parametru

Ilustracja do pytania
A. c jest mniejsza od aktualnej długości łańcucha
B. n jest większa od aktualnej długości łańcucha
C. n jest mniejsza od aktualnej długości łańcucha
D. c jest większa od aktualnej długości łańcucha
Parametr c nie ma bezpośredniego wpływu na długość łańcucha. Zwiększenie długości nie powoduje skrócenia, a parametr n większy od długości łańcucha prowadzi do wypełnienia go dodatkowymi znakami, a nie skrócenia.

Pytanie 25

W pokazanych fragmentach kodu zdefiniowano funkcję pod nazwą fun1. W tej funkcji należy zaimplementować obsługę

Ilustracja do pytania
A. usunięcia kontrolek z pamięci RAM
B. naciśnięcia przycisku zatwierdzającego dialog
C. inicjacji elementów interfejsu użytkownika
D. aplikacji po wystąpieniu zdarzenia utraty focusa przez pole opcji
Obsługa zdarzeń związanych z przyciskami zatwierdzającymi dialogi jest kluczową częścią interakcji użytkownika z aplikacją. W wielu środowiskach programistycznych, takich jak JavaScript, C# czy Java, przyciski te wywołują funkcje obsługi zdarzeń (event handlers), które mogą walidować dane, przetwarzać informacje lub wykonywać inne działania po naciśnięciu przycisku. Implementacja funkcji obsługującej przycisk jest nieodzowna w aplikacjach graficznych, gdzie interakcja z użytkownikiem wymaga dynamicznego reagowania na jego działania. Dzięki temu aplikacje stają się bardziej interaktywne i responsywne, co zwiększa komfort użytkownika i poprawia ogólną użyteczność oprogramowania.

Pytanie 26

Jakie oprogramowanie służy jako przykład programu do komunikacji audio-wideo?

A. Google Drive
B. Slack
C. Microsoft Teams
D. Notion
Microsoft Teams to naprawdę fajne narzędzie do komunikacji. Łączy w sobie czat, wideo i audio, więc wszystko masz w jednym miejscu. Zostało stworzone przez Microsoft, żeby ułatwić współpracę w zespołach. To idealne, gdy trzeba prowadzić spotkania online z kilkoma osobami. Myślę, że to super rozwiązanie dla firm, które pracują zdalnie. Dzięki WebRTC jakość transmisji audio i wideo jest naprawdę wysoka. Można w nim organizować spotkania, webinary, a nawet stworzyć przestrzeń dla zespołów projektowych, gdzie można dzielić się plikami i prowadzić dyskusje. A jak jeszcze połączysz go z innymi aplikacjami Microsoft 365, jak OneNote czy SharePoint, to masz pełny zestaw do zarządzania projektami. Dobrze też, że Microsoft Teams dba o ochronę danych osobowych, więc jest bezpieczny dla różnych organizacji.

Pytanie 27

Jakie kroki należy podjąć po wykryciu błędu w kodzie podczas testowania?

A. Usunąć moduł, który zawiera błąd
B. Naprawić błąd i przeprowadzić ponowne testy aplikacji
C. Zgłosić błąd użytkownikowi końcowemu
D. Pominąć błąd, jeżeli aplikacja funkcjonuje poprawnie
Po znalezieniu błędu w kodzie podczas testowania kluczowym krokiem jest poprawienie błędu i ponowne przetestowanie aplikacji. Taki cykl iteracyjny pozwala na eliminację błędów i zapewnienie, że aplikacja działa zgodnie z oczekiwaniami. Testowanie po każdej poprawce jest niezbędne, aby upewnić się, że wprowadzone zmiany nie wpłynęły negatywnie na inne części aplikacji. Taka praktyka jest integralną częścią Continuous Integration (CI) i Continuous Deployment (CD), które zakładają częste wdrażanie i testowanie kodu. Poprawienie błędów na wczesnym etapie rozwoju minimalizuje koszty i czas potrzebny na naprawę błędów w fazie produkcyjnej, co przyczynia się do stabilności i wysokiej jakości końcowego produktu.

Pytanie 28

Która z wymienionych bibliotek stanowi element standardowego zestawu narzędzi programistycznych w Pythonie?

A. vector
B. sys
C. <math.h>
D. <stdio.h>
Biblioteka `<math.h>` to standardowa biblioteka w języku C/C++, używana do wykonywania operacji matematycznych, ale nie jest częścią Pythona. Biblioteka `<stdio.h>` to biblioteka C, która umożliwia obsługę wejścia i wyjścia (I/O), ale również nie jest dostępna w Pythonie. `vector` to część standardowej biblioteki C++ (STL) i służy do obsługi dynamicznych tablic, ale nie jest elementem środowiska Python. Biblioteki te są związane z innymi językami programowania i nie mają zastosowania w Pythonie.

Pytanie 29

Jakie obliczenia można wykonać za pomocą poniższego algorytmu, który operuje na dodatnich liczbach całkowitych?

Ilustracja do pytania
A. sumę wprowadzonych liczb
B. sumę cyfr wprowadzonej liczby
C. największy wspólny dzielnik wprowadzonej liczby
D. liczbę cyfr w wprowadzonej liczbie
Sumowanie cyfr wymaga dodatkowej operacji dodawania reszt z dzielenia przez 10, czego ten algorytm nie wykonuje. Największy wspólny dzielnik oblicza się zupełnie innymi metodami, np. algorytmem Euklidesa. Sumowanie wczytanych liczb odnosi się do iteracyjnego dodawania kolejnych wartości, co nie jest częścią przedstawionego algorytmu.

Pytanie 30

Jakiego kodu dotyczy treść wygenerowana w trakcie działania programu Java?

Ilustracja do pytania
A. Kodu 3
B. Kodu 2
C. Kodu 1
D. Kodu 4
W przypadku kodu 4 mamy do czynienia z operatorem modulo zastosowanym na zmiennych x i y. Wiąże się to z próbą podziału przez zero co w języku Java skutkuje wygenerowaniem wyjątku java.lang.ArithmeticException. Przykładowo jeśli y wynosi zero to operacja x % y jest niedozwolona i spowoduje wyjątek. Rozumienie jak bezpiecznie wykonywać operacje arytmetyczne w Javie jest kluczowe dla unikania takich błędów. Zgodnie z dobrymi praktykami należy zawsze sprawdzać wartości zmiennych przed wykonaniem operacji matematycznych które mogą prowadzić do błędów wykonania programu. Ważne jest aby stosować techniki obsługi wyjątków try-catch które pozwalają na przechwycenie i odpowiednie zarządzanie błędami. Używanie odpowiednich testów jednostkowych może pomóc w wcześniejszym wykryciu takich problemów co jest standardem w branży programistycznej. Zrozumienie obsługi błędów w programowaniu pozwala na tworzenie bardziej niezawodnych i odpornych na błędy aplikacji co jest istotnym aspektem pracy profesjonalnego programisty.

Pytanie 31

Jakie jest podstawowe zadanie firewalla w systemie komputerowym?

A. Zarządzanie ruchem sieciowym i blokowanie nieautoryzowanego dostępu
B. Ochrona danych na poziomie aplikacji internetowych
C. Zapobieganie wyciekom informacji na skutek awarii systemu
D. Szyfrowanie danych przesyłanych w sieci
Szyfrowanie danych chroni prywatność użytkownika, ale nie zabezpiecza przed nieautoryzowanym dostępem do sieci. Zapobieganie wyciekom danych to funkcja systemów DLP (Data Loss Prevention), a nie firewalla. Ochrona na poziomie aplikacji dotyczy technologii WAF (Web Application Firewall), która działa inaczej niż standardowy firewall systemowy, ograniczający ruch sieciowy na poziomie IP.

Pytanie 32

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:8080 (React) lub localhost:8000 (Angular)
B. localhost:5001 (React) lub localhost:8080 (Angular)
C. localhost:3000 (React) lub localhost:4200 (Angular)
D. localhost:8000 (React) lub localhost:49887 (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 33

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

Ilustracja do pytania
A. kod 3
B. kod 1
C. kod 2
D. kod 4
Jak się przyjrzysz innym opcjom, można zauważyć sporo problemów, które mogą wprowadzać w błąd przy implementacji algorytmu związanym z schematem blokowym. Opcja Kod 2 stosuje instrukcję if-else, co już jest dużym błędem. W związku z tym operacje dodawania i zwiększania zmiennej `i` wykonają się tylko raz, jeśli początkowy warunek jest spełniony. Z tego wynika brak powtarzalności, co ważne w algorytmach, gdzie trzeba coś robić wielokrotnie, aż warunek będzie spełniony. Z kolei Kod 3 używa pętli for, która lepiej nadaje się do przypadków, gdzie liczba powtórzeń jest znana. Ale tutaj zmienna `i` jest źle umiejscowiona i nie pasuje do logiki algorytmu. Dodatkowo, sama konstrukcja pętli for nie pokazuje, że musimy coś zrobić przynajmniej raz, zanim sprawdzimy warunek. Kod 4 chociaż używa pętli while, to i tak nie spełnia warunku, że operacja musi się wykonać przynajmniej raz przed sprawdzeniem tego warunku. Pętla while najpierw weryfikuje warunek, więc jeśli na początku jest nieprawdziwy, to nie wejdzie w żadną iterację, co jest sprzeczne z logiką algorytmu. Dlatego tylko Kod 1 jest naprawdę zgodny z wymaganiami algorytmu i może być traktowany jako poprawna implementacja według tego schematu.

Pytanie 34

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

A. Interpreter
B. Kompilator
C. Debugger
D. Linker
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 35

Który komponent systemu komputerowego zajmuje się transferem danych pomiędzy procesorem a pamięcią RAM?

A. Kontroler DMA
B. Zasilacz
C. Mostek północny (Northbridge)
D. Karta graficzna
Kontroler DMA (Direct Memory Access) to komponent, który umożliwia transfer danych pomiędzy urządzeniami peryferyjnymi a pamięcią RAM bez bezpośredniego zaangażowania procesora. Choć odgrywa on istotną rolę w wydajności systemu, nie jest odpowiedzialny za bezpośrednią komunikację pomiędzy procesorem a pamięcią RAM. Jego zadaniem jest odciążenie procesora, ale nie zastępuje funkcji mostka północnego. Karta graficzna, z kolei, jest odpowiedzialna za renderowanie grafiki i przetwarzanie obrazów, a jej działanie jest ściśle związane z zadaniami wizualnymi, a nie z przesyłaniem danych pomiędzy CPU a RAM. Zasilacz natomiast jest komponentem, który dostarcza energię elektryczną do wszystkich części komputera. Choć niezbędny do funkcjonowania systemu, zasilacz nie ma żadnego wpływu na przesyłanie danych czy komunikację pomiędzy procesorem a pamięcią. W związku z tym, żaden z wymienionych elementów nie może pełnić roli mostka północnego, co czyni je niewłaściwymi odpowiedziami na to pytanie.

Pytanie 36

Jaką nazwę kontrolki powinno się umieścić w początkowej linii kodu, w miejscu &lt;???, aby została ona wyświetlona w podany sposób?

Ilustracja do pytania
A. Spinner
B. RatinoBar
C. SeekBar
D. Switch
Switch to kontrolka używana w Androidzie do stworzenia elementu interfejsu użytkownika, który pozwala użytkownikowi przełączać się między dwoma stanami. Domyślnie stany te są identyfikowane jako włączone i wyłączone, co jest szczególnie przydatne w przypadku funkcji wymagających prostego wyboru binarnego, jak na przykład włączanie lub wyłączanie ustawień. Kod XML użyty w pytaniu zawiera atrybuty android:textOff i android:textOn, które są typowe dla klasy Switch i pozwalają zdefiniować tekst, jaki ma być wyświetlany w stanie wyłączonym i włączonym. W praktyce Switch jest często stosowany w aplikacjach mobilnych do kontroli ustawień użytkownika, co pozwala na łatwą i intuicyjną obsługę. Dobrymi praktykami jest używanie Switch w kontekście jednoznacznego wyboru, aby nie wprowadzać użytkownika w błąd. Warto również zadbać o dostępność i odpowiednie etykietowanie kontrolki, co zapewnia jej zrozumiałość dla wszystkich użytkowników.

Pytanie 37

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

A. string name = "Jan"
B. bool name = "Jan"
C. float name = "Jan"
D. int 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 38

Jakie składniki powinien mieć plan projektu?

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

Pytanie 39

Wskaż typy numeryczne o stałej precyzji

A. long long, long double
B. bool char, string
C. int, short, long
D. float, double
Typy stałoprzecinkowe, takie jak int, short i long, przechowują liczby całkowite bez części ułamkowej. Są to podstawowe typy danych w wielu językach programowania, używane do przechowywania liczb całkowitych różnej wielkości.

Pytanie 40

Zajmując się pracą w zespole oraz dbając o jego efektywne funkcjonowanie, nie powinniśmy

A. sumiennie i w ustalonym terminie realizować swoje zadania
B. wspierać się nawzajem
C. przyjmować odpowiedzialności za swoje decyzje
D. skupiać się jedynie na własnych korzyściach
Dbanie wyłącznie o własny interes jest niekorzystne w pracy zespołowej, ponieważ prowadzi do konfliktów i obniżenia efektywności grupy. Praca zespołowa wymaga współpracy, wzajemnego wsparcia i odpowiedzialności za wspólne działania, co sprzyja osiąganiu lepszych wyników.