Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji
  • Data rozpoczęcia: 1 maja 2026 12:13
  • Data zakończenia: 1 maja 2026 12:26

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Jakie oznaczenie posiada norma krajowa w Polsce?

A. PN
B. IEC
C. ISO
D. EN
Polska Norma, czyli PN, to taki nasz krajowy znak, który mówi, jakie powinny być standardy jakości i techniczne dla różnych produktów i usług w Polsce. Normy PN są dostosowane do tego, czego potrzebujemy na rynku, ale często są oparte na międzynarodowych normach, takich jak ISO czy europejskich EN. Choć wdrażanie tych norm jest dobrowolne, to w wielu branżach ich przestrzeganie jest wręcz konieczne, jeśli chcemy zdobyć odpowiednie certyfikaty jakości. Warto je znać, bo dzięki nim możemy czuć się bezpieczniej, a jakość produktów staje się lepsza. To też wspiera rozwój nowych technologii w Polsce.

Pytanie 2

Prezentowana metoda jest realizacją algorytmu

public static String fun1(String str) {
    String output = " ";
    for (var i = (str.length()-1); i >= 0; i--)
        output += str.charAt(i);
    return output;
}
A. wyszukującego literę w ciągu
B. odwracającego ciąg
C. sprawdzającego, czy dany ciąg jest palindromem
D. sortującego ciąg od znaku o najniższym kodzie ASCII do znaku o najwyższym kodzie
W tym zadaniu chodziło o rozpoznanie, co właściwie robi metoda fun1. Jeśli przeanalizujesz kod, to widać, że w pętli for program przechodzi przez wszystkie znaki wejściowego łańcucha od końca do początku i dokleja je do zmiennej output. Efekt? Zwracany napis jest po prostu oryginalnym tekstem zapisanym wspak, czyli odwróconym. To bardzo prosty przykład algorytmu odwracania ciągu znaków. W praktyce takie rozwiązania przydają się choćby wtedy, gdy chcemy sprawdzić, czy łańcuch jest palindromem (choć samo odwracanie to tylko pierwszy krok), przy szyfrowaniu prostymi metodami czy podczas manipulacji danymi wejściowymi, na przykład w edytorach tekstu lub różnych parserach. Moim zdaniem, warto pamiętać o dobrych praktykach – w Javie, jeśli masz do czynienia z wieloma operacjami na napisach, lepiej używać StringBuildera zamiast tworzyć nowe Stringi, bo jest to wydajniejsze pod kątem zarządzania pamięcią. Dla ciekawych: w bibliotekach standardowych Javy już istnieją gotowe narzędzia do odwracania ciągów (np. StringBuilder.reverse()), ale znajomość działania takiego algorytmu pozwala lepiej zrozumieć, jak działają operacje na napisach "pod spodem". Z mojego doświadczenia, umiejętność samodzielnego napisania takich prostych funkcji bardzo pomaga przy nauce bardziej zaawansowanych algorytmów tekstowych oraz rozwija wyobraźnię programistyczną.

Pytanie 3

Które z poniższych nie jest narzędziem do zarządzania stanem w aplikacjach React?

A. Webpack
B. Redux
C. Context API
D. MobX
Wybierając odpowiedzi związane z zarządzaniem stanem, warto zaznaczyć, że Redux, MobX oraz Context API to popularne narzędzia wykorzystywane do efektywnego zarządzania stanem w aplikacjach zbudowanych w React. Redux jest biblioteką, która wprowadza wzorzec architektoniczny Flux, umożliwiając centralizację stanu aplikacji. Pozwala to na łatwiejsze śledzenie zmian stanu oraz ich przewidywalność. MobX, z drugiej strony, oferuje bardziej reaktywny i obiektowy model zarządzania stanem, gdzie zmiany stanu są automatycznie śledzone, co upraszcza kod i redukuje złożoność. Context API to natywne rozwiązanie w React, które umożliwia dzielenie się stanem między komponentami bez potrzeby przekazywania propsów przez wszystkie poziomy drzewa komponentów. Często nowi programiści mylą Webpack z narzędziami do zarządzania stanem, co wynika z jego kluczowej roli w ekosystemie React. W rzeczywistości, narzędzia do budowania, takie jak Webpack, koncentrują się głównie na kompilacji i optymalizacji zasobów, a nie na logice i zarządzaniu stanem aplikacji. Zrozumienie różnic między tymi narzędziami jest kluczowe dla prawidłowego projektowania aplikacji i efektywnego wykorzystania dostępnych technologii.

Pytanie 4

Co to jest garbage collection w programowaniu?

A. Metoda kompresji danych w bazach SQL
B. Automatyczne zarządzanie pamięcią, które zwalnia pamięć zajmowaną przez nieużywane obiekty
C. Proces usuwania nieużywanych elementów z interfejsu użytkownika
D. Technika optymalizacji algorytmów sortowania danych
Garbage collection (GC) to kluczowy proces w wielu językach programowania, takich jak Java, C# czy Python, odpowiedzialny za automatyczne zarządzanie pamięcią. Dzięki mechanizmowi GC możliwe jest wykrywanie oraz zwalnianie pamięci zajmowanej przez obiekty, które nie są już używane w aplikacji. W praktyce oznacza to, że programista nie musi ręcznie zarządzać cyklem życia obiektów, co minimalizuje ryzyko wycieków pamięci i poprawia stabilność aplikacji. Mechanizm ten działa zazwyczaj w tle, analizując dostępność obiektów w pamięci oraz ich referencje. Przykładem zastosowania GC jest optymalizacja pamięci w aplikacjach serwerowych, gdzie długotrwałe działanie i efektywne zarządzanie zasobami są krytyczne. Użycie garbage collection zgodnie z dobrymi praktykami pozwala na pisanie bardziej przejrzystego i łatwiejszego w utrzymaniu kodu, co jest szczególnie ważne w projektach realizowanych w zespołach. Warto również wspomnieć, że różne implementacje GC (np. generacyjne kolekcje, inkrementalne zbieranie śmieci) mają różne podejścia do zarządzania pamięcią, co może wpływać na wydajność aplikacji.

Pytanie 5

Który z wymienionych elementów stanowi przykład zbiorowej ochrony?

A. Okulary ochronne
B. Ekran akustyczny
C. Zatyczki do uszu
D. Kask ochronny
Ekran akustyczny to przykład środka ochrony zbiorowej, który redukuje poziom hałasu w miejscu pracy, chroniąc większą grupę pracowników jednocześnie. Środki ochrony zbiorowej mają na celu eliminowanie zagrożeń u źródła i zabezpieczanie całego środowiska pracy, a nie pojedynczych osób. Ekrany akustyczne są często stosowane w zakładach produkcyjnych, gdzie hałas maszyn może przekraczać dopuszczalne normy. Dzięki nim można zmniejszyć poziom hałasu i poprawić komfort pracy, bez konieczności wyposażania każdego pracownika w ochronniki słuchu. Środki ochrony zbiorowej są bardziej efektywne w długoterminowej perspektywie, ponieważ zmniejszają ryzyko dla wszystkich pracowników na danym stanowisku.

Pytanie 6

Jakie jest podstawowe zadanie firewalla w systemie komputerowym?

A. Szyfrowanie danych przesyłanych w sieci
B. Zarządzanie ruchem sieciowym i blokowanie nieautoryzowanego dostępu
C. Ochrona danych na poziomie aplikacji internetowych
D. Zapobieganie wyciekom informacji na skutek awarii systemu
Firewall to taki strażnik w sieci, który decyduje, co może wejść lub wyjść z naszego systemu. Główną jego rolą jest właśnie zarządzanie ruchem sieciowym – analizuje każde połączenie, każdy pakiet danych i na podstawie ustalonych reguł pozwala albo blokuje ruch. Z mojego doświadczenia wynika, że bez firewalla w firmowej sieci to jak zostawić otwarte drzwi na oścież, serio. To narzędzie nie tylko zatrzymuje nieautoryzowany dostęp z zewnątrz, ale czasem też może blokować ryzykowne próby połączeń wychodzących – na przykład, gdy jakiś wirus próbuje kontaktować się z serwerem złodziei danych. W praktyce najczęściej spotkasz firewalle sprzętowe w routerach firmowych oraz programowe na komputerach i serwerach. Branżowo przyjmuje się, że firewall działa na poziomie sieci (warstwa 3 i 4 modelu OSI), co jest najlepszym miejscem, żeby odsiać niepożądany ruch zanim w ogóle dotrze do cennych serwisów. Ważne jest też, że dobrze skonfigurowany firewall to podstawa każdej strategii bezpieczeństwa, zgodnie z normami ISO/IEC 27001. W sumie, moim zdaniem żaden admin nie wyobraża sobie bez niego sensownej ochrony sieci – to absolutna podstawa.

Pytanie 7

Jakie jest wymagane minimalne natężenie światła w biurze na stanowisku pracy?

A. 100 lx
B. 200 lx
C. 500 lx
D. 800 lx
Minimalne natężenie oświetlenia, jakie powinno być w biurze, to 500 lx (luksów). To taki standard, który ustalono w normach BHP i ergonomii. Dzięki temu lepiej się pracuje przy komputerze i łatwiej robić zadania, które wymagają dobrego wzroku. Odpowiednie oświetlenie zdecydowanie zmniejsza zmęczenie oczu i poprawia koncentrację, co jest istotne, żeby uniknąć bólów głowy i być bardziej efektywnym w pracy. Ważne, żeby światło było równomierne i nie odbijało się na monitorze, bo to może rozpraszać. Warto dbać o takie warunki, bo to zmniejsza ryzyko problemów ze wzrokiem, a komfort pracy jest mega ważny, zwłaszcza gdy ktoś spędza dużo czasu przed komputerem.

Pytanie 8

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 'public' nie definiuje klasy – określa jedynie modyfikator dostępu, umożliwiający dostęp do pól i metod z zewnątrz klasy. 'Virtual' służy do deklarowania metod wirtualnych i wskazuje, że dana metoda może być przesłonięta w klasie pochodnej. 'Base' nie jest słowem kluczowym w C++ – w niektórych językach programowania oznacza klasę bazową, ale nie jest używane do definiowania klasy w C++.

Pytanie 9

Co to jest dependency injection w programowaniu?

A. Metoda optymalizacji zapytań do bazy danych
B. Technika, w której obiekt otrzymuje inne obiekty, od których zależy
C. Metoda projektowania interfejsu użytkownika
D. Proces kompilacji kodu źródłowego do kodu maszynowego
Dependency injection (DI) to technika programowania, która polega na dostarczaniu obiektom ich zależności z zewnątrz, zamiast tworzenia ich samodzielnie wewnątrz klasy. Dzięki temu kod staje się bardziej modularny, łatwiejszy do testowania i utrzymania. Przykładem zastosowania DI jest framework Spring w języku Java, który umożliwia zarządzanie zależnościami za pomocą kontenerów IoC (Inversion of Control). Korzyści płynące z używania DI obejmują zwiększenie elastyczności oraz ułatwienie wprowadzania zmian w kodzie, ponieważ zmiany w jednej klasie nie wymagają modyfikacji innych. DI wspiera zasady SOLID, szczególnie zasadę odwrócenia zależności (Dependency Inversion Principle), co prowadzi do bardziej przejrzystego i zrozumiałego kodu. W praktyce, implementacja DI może odbywać się za pomocą konstruktorów, setterów lub interfejsów, co daje programiście wybór w doborze najodpowiedniejszej metody dla danego projektu.

Pytanie 10

W przedstawionym filmie ukazano kreator interfejsu użytkownika, dla którego automatycznie powstaje

A. obsługa wciśniętego przycisku
B. obsługa przycisku ekranu dotykowego
C. kod Java
D. kod XML
Kod XML jest obecnie najczęściej stosowanym formatem do definiowania wyglądu interfejsów użytkownika w takich narzędziach jak Android Studio czy różnego rodzaju designery graficzne. Kiedy projektujesz layout aplikacji mobilnej albo desktopowej, duża część nowoczesnych narzędzi tworzy właśnie pliki XML, które następnie są interpretowane przez system w czasie uruchamiania aplikacji. Ułatwia to rozdzielenie logiki aplikacji od jej prezentacji, co wydaje się fundamentalne przy większych projektach. Moim zdaniem takie podejście daje ogromne korzyści – można łatwo modyfikować wygląd bez dotykania kodu źródłowego. W praktyce, jeśli używasz np. Android Studio, zbudujesz interfejs przeciągając przyciski czy pola tekstowe, a pod spodem dostaniesz czytelny plik XML. To przyspiesza pracę, zwiększa czytelność projektu i pozwala na późniejsze automatyczne generowanie dokumentacji albo testów interfejsu. Takie standardy są rekomendowane nie tylko przez Google, ale też szeroko stosowane w innych środowiskach, jak chociażby XAML w Microsoft czy FXML w JavaFX. Przezroczystość działania tych narzędzi sprawia, że łatwiej jest pracować zespołowo, bo każdy może szybko zorientować się w strukturze UI patrząc na XML-a. Samo generowanie kodu XML przez narzędzia graficzne to duży krok w kierunku lepszej organizacji pracy i zgodności ze współczesnymi praktykami branżowymi.

Pytanie 11

Jaką rolę odgrywa pamięć operacyjna (RAM) w komputerowym systemie?

A. Zarządzanie transferem danych pomiędzy urządzeniami wejścia/wyjścia
B. Umożliwienie tworzenia kopii zapasowej danych użytkownika
C. Trwałe przechowywanie systemu operacyjnego
D. Tymczasowe magazynowanie danych i instrukcji dla procesora
Pamięć operacyjna, znana jako RAM (Random Access Memory), odgrywa kluczową rolę w funkcjonowaniu systemu komputerowego. Jej głównym zadaniem jest tymczasowe przechowywanie danych i instrukcji, które są niezbędne dla procesora w trakcie wykonywania programów. Kiedy uruchamiamy aplikację, jej kod oraz dane są ładowane z pamięci masowej (np. dysku twardego) do pamięci RAM, co umożliwia szybki dostęp do nich przez procesor. Dzięki dużej prędkości działania pamięć operacyjna znacząco przyspiesza procesy obliczeniowe, ponieważ operacje na danych przechowywanych w RAM są wielokrotnie szybsze niż na danych znajdujących się na dysku twardym. Współczesne komputery często wyposażone są w kilka gigabajtów pamięci RAM, co pozwala na efektywne zarządzanie wieloma uruchomionymi aplikacjami jednocześnie. Standardy takie jak DDR4 i DDR5 określają nie tylko wydajność, ale również szybkość przesyłania danych, co ma kluczowe znaczenie w kontekście wydajności systemu komputerowego. W efekcie, pamięć operacyjna jest niezbędna do płynnego działania systemu operacyjnego oraz aplikacji, a jej pojemność i szybkość mają bezpośredni wpływ na ogólną wydajność komputera.

Pytanie 12

Który z wymienionych kroków wchodzi w skład testowania aplikacji?

A. Kompilowanie aplikacji
B. Debugowanie kodu w celu znalezienia błędów
C. Projektowanie bazy danych
D. Opracowywanie interfejsu graficznego
Debugowanie kodu w celu znalezienia błędów to jeden z kluczowych etapów testowania aplikacji. Proces ten polega na uruchamianiu programu w trybie debugowania, co pozwala na śledzenie jego działania linijka po linijce i identyfikowanie miejsc, w których występują błędy. Debugowanie umożliwia analizowanie wartości zmiennych, śledzenie przepływu programu i wykrywanie nieoczekiwanych zachowań, co jest niezbędne do usunięcia błędów i poprawy wydajności aplikacji. Narzędzia do debugowania, takie jak Visual Studio, PyCharm czy Chrome DevTools, pozwalają na dokładne testowanie kodu na różnych etapach jego rozwoju, co znacząco skraca czas naprawy błędów i zwiększa jakość oprogramowania.

Pytanie 13

Które z poniższych NIE jest typem wartości zwracanej przez funkcję w języku JavaScript?

A. Number
B. Object
C. Method
D. Undefined
Wybór odpowiedzi związanej z 'Method' jako typem wartości zwracanej przez funkcję w JavaScript może wynikać z nieporozumienia dotyczącego różnicy pomiędzy funkcją a metodą. Warto wiedzieć, że w JavaScript funkcje są obiektami pierwszej klasy, co oznacza, że mogą być przypisywane do zmiennych, przekazywane jako argumenty oraz zwracane z innych funkcji. Wśród typów wartości, które mogą być zwracane przez funkcje, znajdują się obiekty, liczby, stringi oraz typ undefined, co jest wynikiem zachowań typowych dla tego języka. Kiedy funkcja nie zwraca żadnej wartości, domyślnie zwraca undefined. Typowe błędy myślowe pojawiają się, gdy programiści mylą koncepcje funkcji i metod lub mylą pojęcia typów danych. Często mogą założyć, że metoda jest równoważna typowi zwracanemu, co nie jest zgodne z definicjami w programowaniu obiektowym. Obiekt w JavaScript może mieć wiele metod, które są funkcjami, ale to nie czyni metody typem zwracanym. Przykładem tego może być zdefiniowanie obiektu z wieloma funkcjami, które działają na jego danych. To jasno pokazuje, że metody są połączeniem funkcji z obiektami, a nie typami wartości. Ważne jest, aby podczas nauki języka JavaScript skupić się na zrozumieniu struktury języka oraz jego zasad, co pomoże unikać zamieszania związanych z terminologią oraz zastosowaniem tych koncepcji w praktyce.

Pytanie 14

W jakiej fazie cyklu życia projektu informatycznego następuje integracja oraz testowanie wszystkich modułów systemu?

A. Etap planowania
B. Etap implementacji
C. Faza analizy
D. Faza wdrożenia
Planowanie to faza początkowa, w której określane są cele projektu, harmonogram i zasoby, ale nie jest to etap integracji systemu. Analiza skupia się na zbieraniu wymagań i definiowaniu specyfikacji technicznej, ale nie obejmuje łączenia modułów ani testowania gotowego produktu. Wdrożenie to końcowy etap cyklu życia projektu, który następuje po pełnej integracji i testowaniu – polega na uruchomieniu systemu w środowisku produkcyjnym i udostępnieniu go użytkownikom końcowym.

Pytanie 15

Wskaż odpowiedź, która używa parafrazowania jako metodę aktywnego słuchania, gdy klient mówi: "Interesuje mnie aplikacja, która działa szybko, niezależnie od tego, czy korzysta z niej kilku czy tysiąc użytkowników"?

A. Jeśli dobrze zrozumiałam, chodzi o aplikację, która efektywnie obsługuje różne obciążenia
B. Ilu użytkowników planuje z niej skorzystać?
C. Dlaczego Pani potrzebuje takiej aplikacji?
D. Czuję pewne wątpliwości w Pani głosie. Czy mogę zadać kilka pytań?
Parafraza to świetna technika, która pomaga zrozumieć, co rozmówca ma na myśli. Jak w tym przypadku – odpowiedź, która mówi: 'Jeśli dobrze rozumiem, chodzi o aplikację, która radzi sobie z różnym obciążeniem,' naprawdę dobrze oddaje to, co klient próbował przekazać. Klient podkreśla, że ważne jest dla niego, aby aplikacja była wydajna, niezależnie od tego, ile osób z niej korzysta. Użycie terminu 'radzi sobie z obciążeniem' jest trafne, bo dotyczy zdolności systemu do przystosowywania się do zmieniającej się liczby użytkowników i ich aktywności. To pokazuje, że konsultant dobrze zrozumiał potrzeby klienta i otwiera możliwości do dalszej rozmowy o technicznych detalach aplikacji, a to jest kluczowe w sprzedaży i budowaniu dobrych relacji z klientem.

Pytanie 16

Z jakiej kolekcji powinno się korzystać, aby przechowywać informacje związane z elementem interfejsu użytkownika w taki sposób, aby ten element był informowany przez kolekcję o dodaniu, usunięciu lub zmianie jej zawartości?

A. ObservableCollection
B. KeyedCollection
C. Collection
D. ReadOnlyCollection
ObservableCollection to zdecydowanie najlepszy wybór w sytuacji, gdy zachodzi potrzeba powiadamiania elementów interfejsu użytkownika o zmianach w kolekcji. W praktyce, kiedy pracujesz np. z WPF, UWP albo MAUI, to ObservableCollection automatycznie informuje UI o dodaniu, usunięciu czy modyfikacji elementów. Wszystko dzięki temu, że implementuje interfejs INotifyCollectionChanged. Moim zdaniem praktyczne zastosowanie jest mega – gdy masz np. listę produktów, która wyświetla się użytkownikowi, to po prostu dokładasz lub usuwasz elementy z ObservableCollection i nie musisz ręcznie odświeżać widoku. Framework sam ogarnia powiązanie danych, bo kolekcja emituje zdarzenia CollectionChanged. Takie podejście jest spójne z zasadami MVVM i ogólnie promowane przez Microsoft w oficjalnych dokumentacjach. Często spotkać można rozwiązania, gdzie ktoś używa zwykłej List lub Collection, ale wtedy tracisz te automatyczne powiadomienia i pojawia się masa kodu-boilerplate. Szczerze mówiąc, nie widzę sensu kombinować z innymi kolekcjami, jeśli zależy Ci na dynamicznym, responsywnym UI. ObservableCollection to po prostu standard branżowy w .NET, jak dla mnie nie ma lepszej opcji na takie zastosowania.

Pytanie 17

Jakie słowa kluczowe są stosowane w języku C++ do zarządzania wyjątkami?

A. try i raise
B. try i catch
C. throw i handle
D. except i finally
Słowa kluczowe 'try' i 'catch' są podstawą obsługi wyjątków w języku C++. Umożliwiają one przechwytywanie i obsługę błędów, które mogą wystąpić podczas wykonywania programu. Blok 'try' zawiera kod, który jest monitorowany pod kątem błędów, a blok 'catch' przechwytuje i przetwarza zgłoszony wyjątek, zapobiegając nieoczekiwanemu zakończeniu programu. Mechanizm ten jest kluczowy dla tworzenia niezawodnego i odpornego na błędy oprogramowania. Dzięki 'try' i 'catch' programista może implementować logikę naprawczą lub logować błędy, co zwiększa stabilność i bezpieczeństwo aplikacji.

Pytanie 18

Co to jest lazy loading w kontekście aplikacji webowych?

A. Strategia optymalizacji, która opóźnia ładowanie zasobów do momentu, gdy są faktycznie potrzebne
B. Narzędzie do testowania wydajności ładowania strony
C. Technika przechowywania danych w pamięci podręcznej przeglądarki
D. Metoda kompresji obrazów na stronach internetowych
Lazy loading to technika optymalizacji wydajności, która polega na opóźnieniu ładowania zasobów, takich jak obrazy, filmy czy skrypty, do momentu, gdy są one rzeczywiście potrzebne. Dzięki temu zwiększa się szybkość ładowania strony, co jest szczególnie ważne w kontekście doświadczeń użytkowników i SEO. Przykładem zastosowania lazy loading może być strona z długą listą produktów, gdzie obrazy dla produktów znajdujących się poza ekranem są ładowane dopiero, gdy użytkownik przewinie stronę w dół. Praktyka ta nie tylko poprawia czas reakcji strony, lecz także redukuje zużycie pasma, co jest korzystne dla użytkowników na urządzeniach mobilnych. Stosując lazy loading, warto pamiętać o dobrych praktykach, takich jak użycie odpowiednich bibliotek JavaScript, które wspierają tę technikę, oraz zapewnienie odpowiednich fallbacków dla starszych przeglądarek. Wprowadzenie lazy loading jest zgodne z zaleceniami optymalizacji wydajności publikowanymi przez Google, które podkreślają znaczenie ładowania tylko niezbędnych zasobów i poprawę UX.

Pytanie 19

Jakie z wymienionych czynności może zagrażać cyfrowej tożsamości?

A. Cykliczna zmiana haseł do kont
B. Klikanie w podejrzane linki w wiadomościach e-mail
C. Aktywacja uwierzytelniania dwuskładnikowego
D. Tworzenie unikalnych oraz mocnych haseł
Klikanie w podejrzane linki w wiadomościach e-mail to jedno z najczęstszych źródeł infekcji i naruszenia cyfrowej tożsamości. Cyberprzestępcy często wykorzystują phishing, czyli technikę polegającą na wysyłaniu fałszywych wiadomości, które wyglądają na autentyczne. Kliknięcie w link może prowadzić do zainstalowania złośliwego oprogramowania lub przekierowania na stronę wyłudzającą dane logowania. Aby uniknąć tego zagrożenia, zaleca się sprawdzanie adresu nadawcy, unikanie otwierania załączników z nieznanych źródeł i korzystanie z filtrów antyphishingowych.

Pytanie 20

Który z poniższych przykładów stanowi aplikację mobilną wykorzystującą bazę danych?

A. Aplikacja wyświetlająca lokalny czas
B. Aplikacja kalkulator
C. Aplikacja gromadząca listę kontaktów użytkownika
D. Aplikacja do robienia zdjęć
Aplikacja przechowująca listę kontaktów użytkownika korzysta z bazy danych do przechowywania, odczytywania i zarządzania danymi. Tego typu aplikacje mobilne muszą efektywnie zarządzać dużą ilością danych i zapewniać ich szybki dostęp. Bazy danych, takie jak SQLite czy Firebase, są szeroko stosowane w aplikacjach mobilnych, umożliwiając przechowywanie kontaktów, wiadomości, notatek i innych informacji użytkownika. Dzięki bazom danych możliwe jest także synchronizowanie danych pomiędzy urządzeniami i przechowywanie ich w chmurze.

Pytanie 21

Co to jest JWT (JSON Web Token)?

A. Otwarty standard do bezpiecznego przekazywania informacji między stronami jako obiekt JSON
B. Format przechowywania danych w bazach NoSQL
C. Protokół komunikacji między frontendem a backendem
D. Biblioteka JavaScript do manipulacji danymi JSON
JWT, czyli JSON Web Token, to otwarty standard (RFC 7519), który definiuje sposób bezpiecznego przekazywania informacji między stronami jako obiekt JSON. Głównym celem JWT jest zapewnienie autoryzacji i integralności danych. Token składa się z trzech części: nagłówka, ładunku i podpisu. Nagłówek określa algorytm użyty do podpisu, ładunek zawiera dane użytkownika (np. identyfikator, role), a podpis umożliwia weryfikację, że token nie został zmieniony po jego wydaniu. Dzięki tej strukturze JWT jest popularny w aplikacjach webowych, gdzie użytkownicy muszą być autoryzowani w różnych sekcjach aplikacji. Praktycznym zastosowaniem JWT jest autoryzacja API, gdzie serwery mogą weryfikować tożsamość użytkowników na podstawie tokenów przesyłanych w nagłówkach HTTP, co zwiększa bezpieczeństwo i elastyczność w komunikacji między systemami. Warto podkreślić, że JWT powinny być używane zgodnie z najlepszymi praktykami, takimi jak stosowanie HTTPS, aby chronić dane przed przechwyceniem, oraz regularne odnawianie tokenów, aby zminimalizować ryzyko ich wykorzystywania przez osoby nieuprawnione.

Pytanie 22

Który z wymienionych algorytmów sortowania jest najskuteczniejszy w przypadku dużych zbiorów danych w przeważającej liczbie sytuacji?

A. Sortowanie bąbelkowe
B. Sortowanie szybkie (QuickSort)
C. Sortowanie przez wstawianie
D. Sortowanie przez zliczanie
QuickSort to algorytm sortowania, który jest najbardziej efektywny dla dużych zbiorów danych, osiągając średnią złożoność obliczeniową O(n log n). Wykorzystuje strategię 'dziel i zwyciężaj', co pozwala na szybkie podzielenie tablicy na mniejsze części wokół elementu zwanego pivotem. Dzięki temu QuickSort jest wyjątkowo szybki, nawet w przypadku dużych i losowo rozłożonych zbiorów danych. Jego zaletą jest niskie zużycie pamięci oraz możliwość sortowania w miejscu (in-place), co oznacza, że nie wymaga dodatkowej przestrzeni poza rekurencyjnym stosowaniem wywołań. Algorytm ten jest szeroko stosowany w aplikacjach bazodanowych, systemach operacyjnych i analizie danych.

Pytanie 23

Jakie rozwiązanie jest najbardziej odpowiednie przy projektowaniu aplikacji, która ma funkcjonować na różnych systemach operacyjnych?

A. Koncentrowanie się wyłącznie na estetyce aplikacji
B. Opracowanie dedykowanego kodu dla każdej platformy
C. Pełne dopasowanie aplikacji do systemu Windows
D. Wykorzystanie technik responsywnego projektowania interfejsu
Przy projektowaniu aplikacji na różne systemy operacyjne łatwo wpaść w pułapkę starych nawyków albo uproszczonego myślenia, co często prowadzi do nietrafionych decyzji projektowych. Częstą pokusą jest pisanie osobnego, dedykowanego kodu dla każdej platformy. Kto kiedyś pisał natywne aplikacje pod Windowsa i MacOS ten wie, jak szybko taki model staje się koszmarem w utrzymaniu. Z mojego doświadczenia wynika, że taka fragmentacja powoduje, że każda zmiana musi być wdrażana i testowana osobno, co prowadzi do rozjazdu funkcjonalności i wzrostu kosztów – a to jest dokładnie odwrotność tego, czego oczekuje się od nowoczesnego software’u. Z kolei pełne dopasowanie tylko do Windowsa całkowicie pomija wymagania użytkowników innych platform i zamyka aplikację na szerokie grono odbiorców. Takie podejście bywa wygodne na początku, ale ogranicza potencjał produktu i w praktyce jest sprzeczne z dzisiejszymi oczekiwaniami rynku, gdzie multiplatformowość to już standard, nie luksus. Skupianie się wyłącznie na estetyce aplikacji to chyba najczęstszy błąd początkujących – ładny wygląd nie gwarantuje użyteczności, dostępności ani funkcjonalności na różnych systemach operacyjnych. Branża IT od lat promuje podejście user-centered design, gdzie ważniejsza od samej estetyki jest adaptacja interfejsu do różnorodnych urządzeń i warunków użytkowania. Responsywny design bazuje na elastyczności oraz automatycznym dostosowywaniu się do środowiska, co pozwala uniknąć masy problemów z kompatybilnością i znacznie poprawia doświadczenie użytkownika. W mojej opinii, ignorowanie tych aspektów to częsty powód niepowodzeń nawet ambitnych projektów. Warto patrzeć szerzej i planować rozwiązania, które są przyszłościowe, modularne oraz skalowalne.

Pytanie 24

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

Definicja typu:

books = ["Harry Potter", "Hobbit", "Władca pierścieni"];

Kod Angular:
<ul>
    <li *ngFor = "let book of books"> {{book}} </li>
</ul>

Kod React.js:
<ul>
    {this.books.map(book => <li key={book}> book </li>)}
</ul>
A. Jedynie jeden element o treści Harry Potter.
B. Taką liczbę elementów, ile znajduje się w tablicy books; w każdym punkcie listy umieszczony jest jeden element tablicy.
C. Tyle elementów, ile znajduje się w tablicy books; w każdym punkcie listy widnieje element o treści {book}.
D. Wyłącznie jeden element o treści Harry Potter, Hobbit, Władca pierścieni.
Dokładnie tak właśnie działa iteracja po tablicy w Angularze i React.js. Zarówno Angularowy *ngFor, jak i funkcja map() w Reactcie to narzędzia do dynamicznego generowania elementów listy na podstawie danych z tablicy – w tym przypadku books. Każdy element tablicy tworzy osobny <li>, a więc liczba elementów na stronie zawsze odpowiada długości tablicy. To jest bardzo praktyczne, bo pozwala wyświetlać listy o dowolnej długości, zależnie od zawartości danych, bez przepisywania kodu – wystarczy zmienić dane źródłowe. W Angularze taki sposób budowania widoków jest zgodny z podejściem deklaratywnym – opisujesz, co ma się pojawić, a nie jak dokładnie to zrobić krok po kroku. React „mapuje” dane na elementy JSX, przy okazji warto pamiętać o kluczach (key), bo to pomaga w optymalizacji pracy wirtualnego DOM-u. Takie podejście to dzisiaj absolutny standard w branży – ułatwia utrzymanie kodu, testy i reużywalność komponentów. Moim zdaniem, kiedy raz się to opanuje, ciężko wyobrazić sobie inne podejście do budowy dynamicznych interfejsów. Zauważ, że każdy <li> wyświetla dokładny tekst z tablicy, a nie jakieś szablony czy placeholdery – to bardzo czytelne i naturalne dla użytkownika. W realnych projektach często tak renderuje się np. listy produktów, komentarzy czy zadań do wykonania. Dodatkowo, jeśli zmodyfikujesz tablicę, to widok automatycznie się odświeży – nie musisz ręcznie aktualizować DOM. To ogromne ułatwienie i podstawa nowoczesnego frontendu.

Pytanie 25

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

A. Rodzaj złącza (SATA/PCIe)
B. Prędkość obrotowa talerzy (RPM)
C. Pojemność dysku
D. Ilość pamięci podręcznej (Cache)
Pojemność dysku jest istotnym parametrem, ale nie wpływa bezpośrednio na jego szybkość działania. Większa pojemność oznacza, że na dysku można przechowywać więcej danych, jednak nie przyspiesza to operacji odczytu i zapisu. Wydajność jest bardziej związana z tym, jak szybko dane mogą być przesyłane do i z dysku, co nie jest bezpośrednio związane z jego pojemnością. Rodzaj złącza, takiego jak SATA czy PCIe, również ma swoje znaczenie, ale w przypadku dysków HDD to prędkość obrotowa jest kluczowa dla szybkości pracy. Złącza PCIe, które są znacznie szybsze od SATA, są bardziej relevantne w kontekście dysków SSD, gdzie czas dostępu i szybkość transferu są znacznie wyższe niż w przypadku talerzowych dysków HDD. Na koniec, ilość pamięci podręcznej (Cache) dysku, choć ma znaczenie w usprawnieniu operacji odczytu i zapisu, to jej wpływ jest marginalny w porównaniu do prędkości obrotowej. Cache działa jako bufor, ale nie zastąpi wyższej prędkości obrotowej talerzy, która decyduje o tym, jak быстро można uzyskać dostęp do danych przechowywanych na dysku.

Pytanie 26

Która metoda tablicy w JavaScript dodaje nowy element na końcu tablicy?

A. pop()
B. shift()
C. unshift()
D. push()
Metoda push() w JavaScript jest kluczowym narzędziem do dodawania nowych elementów na końcu tablicy. Jest to technika powszechnie stosowana w programowaniu, która pozwala na dynamiczne zarządzanie danymi w aplikacjach. Stosując push(), zyskujemy możliwość zwiększania rozmiaru tablicy w locie, co jest szczególnie przydatne w przypadku pracy z danymi, które mogą się zmieniać lub być nieprzewidywalne. Na przykład, jeśli mamy tablicę przechowującą listę zakupów, możemy dodać nowy przedmiot za pomocą metody push: `zakupy.push('jogurt');`. Warto również zauważyć, że metoda ta zwraca nową długość tablicy po dodaniu elementu, co może być użyteczne w kontekście dalszego przetwarzania lub sprawdzania zawartości tablicy. Zastosowanie tej metody jest zgodne z zasadami dobrego programowania w JavaScript, które zaleca efektywne gospodarowanie pamięcią i elastyczne zarządzanie strukturami danych.

Pytanie 27

Jakie jest oznaczenie normy międzynarodowej?

A. CE
B. ISO
C. PN
D. EN
ISO (International Organization for Standardization) to międzynarodowa organizacja zajmująca się opracowywaniem i wdrażaniem standardów technicznych. Oznaczenie ISO wskazuje, że produkt lub usługa spełnia międzynarodowe normy jakości i bezpieczeństwa, co ułatwia handel oraz współpracę na arenie międzynarodowej. Normy ISO obejmują szeroki zakres dziedzin, takich jak zarządzanie jakością (ISO 9001), zarządzanie środowiskowe (ISO 14001) czy bezpieczeństwo informacji (ISO 27001). Certyfikacja ISO buduje zaufanie klientów i zwiększa konkurencyjność firmy na rynku globalnym.

Pytanie 28

Do zadań widoku w architekturze MVVM (Model-View-ViewModel) należy

A. zarządzanie logiką aplikacji - obejmuje wdrażanie algorytmów
B. obsługa interakcji użytkownika, stworzenie UI
C. przekazywanie danych do widoku oraz wymiana informacji z modelem
D. przechowywanie ściągniętych i przetworzonych informacji
W architekturze MVVM widok pełni bardzo specyficzną rolę i to jest właśnie to, co odróżnia ją od innych popularnych podejść – na przykład MVC. Widok w MVVM powinien być odpowiedzialny głównie za prezentację danych i obsługę interakcji użytkownika, czyli właśnie to, na czym skupia się poprawna odpowiedź. Moim zdaniem, praktyka pokazuje, że warto traktować widok jako „wyświetlacz” i „słuchacza”, który reaguje na działania użytkownika, takie jak kliknięcia, wpisywanie tekstu czy wybór z menu. Nie ma tu miejsca na żadną logikę biznesową – to już zadanie ViewModelu oraz Modelu. Typowe przykłady? W aplikacji desktopowej na WPF widok to XAML z prostymi eventami. W aplikacji mobilnej – layouty i fragmenty obsługujące zdarzenia UI. Dobrym zwyczajem jest też korzystanie z mechanizmów data binding, dzięki czemu widok automatycznie aktualizuje się, gdy zmienią się dane w ViewModelu. Jest to zgodne z dobrymi praktykami, bo pozwala zachować wysoką czytelność i testowalność kodu oraz oddziela warstwę prezentacji od logiki. Branża bardzo mocno trzyma się tu zasady Single Responsibility – widok powinien odpowiadać tylko za prezentację i reakcje na zdarzenia, całą resztę zostawiając ViewModelowi. Warto też pamiętać, że jeśli w widoku ląduje choćby fragment logiki biznesowej, to potem ciężko takie coś testować czy rozwijać. Z mojego doświadczenia najlepiej sprawdza się podejście, gdzie do widoku nie piszemy ani linijki kodu, która nie jest związana z UI.

Pytanie 29

Co to jest WebAssembly (WASM)?

A. Narzędzie do automatycznego testowania aplikacji webowych
B. Format kodu binarnego, który może być wykonywany w nowoczesnych przeglądarkach
C. Metoda łączenia kodu JavaScript z kodem CSS
D. Framework JavaScript do tworzenia aplikacji mobilnych
WebAssembly (WASM) to nowoczesny format kodu binarnego, który umożliwia uruchamianie kodu w przeglądarkach internetowych z wysoką wydajnością. Został zaprojektowany jako uzupełnienie JavaScript, co pozwala na korzystanie z bardziej złożonych języków programowania, takich jak C, C++ czy Rust, w aplikacjach webowych. Dzięki temu deweloperzy mogą przenosić istniejący kod do środowiska przeglądarki, co znacząco zwiększa możliwości tworzenia aplikacji webowych. Przykładem zastosowania WebAssembly może być gry przeglądarkowe, które wymagają intensywnego przetwarzania danych oraz aplikacje graficzne, gdzie wydajność jest kluczowa. WebAssembly działa na zasadzie kompilacji, co pozwala na optymalne wykorzystanie zasobów systemowych. Dzięki wsparciu ze strony głównych przeglądarek, WASM stał się standardem, który przyspiesza rozwój aplikacji internetowych, zyskując uznanie w branży.

Pytanie 30

Które z wymienionych praw autorskich nie wygasa po pewnym czasie?

A. Licencje wolnego oprogramowania
B. Autorskie prawa osobiste
C. Prawa pokrewne
D. Autorskie prawa majątkowe
Autorskie prawa majątkowe wygasają zazwyczaj po 70 latach od śmierci autora, co oznacza, że po tym czasie utwory przechodzą do domeny publicznej. Prawa pokrewne, które dotyczą m.in. artystów wykonawców i producentów fonogramów, mają ograniczony czas trwania (zwykle 50 lat od publikacji). Licencje wolnego oprogramowania, takie jak GNU GPL, również podlegają określonym warunkom czasowym i mogą wygasnąć lub zostać zmienione, jeśli autor zdecyduje się na aktualizację licencji.

Pytanie 31

Jaki framework jest powszechnie wykorzystywany do rozwijania aplikacji desktopowych w języku C++?

A. Qt
B. Flutter
C. WPF
D. Node.js
Node.js to środowisko uruchomieniowe dla języka JavaScript, przeznaczone do tworzenia aplikacji serwerowych i skryptów backendowych, a nie aplikacji desktopowych. WPF (Windows Presentation Foundation) jest frameworkiem dla języka C#, a nie C++. Flutter to framework stworzony przez Google, który służy do budowy aplikacji mobilnych i webowych, wykorzystując język Dart, co sprawia, że nie jest narzędziem pierwszego wyboru dla programistów C++.

Pytanie 32

Który rodzaj kolekcji pozwala na dostęp do elementów w porządku FIFO (First In First Out)?

A. Kolekcja LIFO
B. Kolejka
C. Sekwencja
D. Tablica
Kolejka to struktura danych, która działa na zasadzie FIFO (First In First Out), co oznacza, że element dodany jako pierwszy zostaje usunięty jako pierwszy. Kolejki są szeroko wykorzystywane w zarządzaniu zadaniami, buforowaniu danych oraz w implementacji algorytmów, takich jak BFS (przeszukiwanie wszerz). Struktura ta jest idealna do obsługi zadań w kolejności ich przybycia, co jest kluczowe w aplikacjach takich jak systemy operacyjne, sieci komputerowe i przetwarzanie danych.

Pytanie 33

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

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

Pytanie 34

Jakie z poniższych narzędzi wspomaga projektowanie interfejsu użytkownika w aplikacjach mobilnych?

A. Android Studio Layout Editor
B. Kompilator Javy
C. Narzędzie do zarządzania bazami danych
D. PyCharm Debugger
Android Studio Layout Editor to narzędzie umożliwiające projektowanie interfejsu użytkownika aplikacji mobilnych w sposób wizualny, za pomocą metody 'przeciągnij i upuść'. Layout Editor pozwala na szybkie tworzenie responsywnych interfejsów, które automatycznie dostosowują się do różnych rozmiarów ekranów i rozdzielczości. Dzięki niemu programiści mogą łatwo dodawać elementy UI, takie jak przyciski, pola tekstowe, listy czy obrazy, oraz dostosowywać ich właściwości bez konieczności pisania dużych fragmentów kodu XML. Narzędzie to jest kluczowe dla szybkiego prototypowania aplikacji oraz iteracyjnego podejścia do budowy interfejsu użytkownika w środowisku Android Studio.

Pytanie 35

Które z podejść do tworzenia aplikacji najlepiej uwzględnia przyszłe zmiany w funkcjonalności?

A. Tworzenie bez wcześniejszej specyfikacji technicznej
B. Skupienie się tylko na estetce aplikacji
C. Pisanie kodu bez jakiejkolwiek dokumentacji
D. Zastosowanie modularnej architektury aplikacji
Użycie modularnej architektury aplikacji to najlepsze podejście do projektowania systemów, które muszą uwzględniać przyszłe modyfikacje funkcjonalności. Modularność pozwala na podział aplikacji na mniejsze, niezależne komponenty, które mogą być rozwijane, testowane i aktualizowane niezależnie od siebie. Takie podejście zwiększa elastyczność, ułatwia zarządzanie kodem i pozwala na szybkie wdrażanie nowych funkcji bez konieczności ingerencji w cały system. Architektura modularna jest szczególnie przydatna w dużych projektach, gdzie zmiany są częste, a wymagania dynamicznie się zmieniają.

Pytanie 36

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

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

Pytanie 37

Co następuje, gdy błąd nie zostanie uchwycony przez blok catch?

A. Błąd zostanie zignorowany przez kompilator
B. Program zakończy działanie z błędem
C. Instrukcja throw zostanie automatycznie wykreślona
D. Program kontynuuje działanie, pomijając błąd
Program nie może kontynuować działania po wystąpieniu wyjątku bez jego obsługi – to mogłoby prowadzić do nieprzewidywalnych błędów. Wyjątek nie jest ignorowany przez kompilator – jeśli wyjątek wystąpi w czasie wykonywania programu, kompilator nie ma na to wpływu. 'Throw' nie jest automatycznie usuwane – to instrukcja zgłaszająca wyjątek, a jej wykonanie jest zależne od warunków w kodzie. Brak obsługi wyjątku prowadzi do natychmiastowego przerwania programu, a nie do pominięcia instrukcji.

Pytanie 38

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

A. Przeprowadzanie testów systemu po zakończeniu każdej fazy
B. Równoległe prowadzenie wielu etapów projektu
C. Zakończenie jednej fazy przed rozpoczęciem następnej
D. Iteracyjne wprowadzanie modyfikacji na każdym poziomie
Równoległa realizacja kilku faz to cecha modelu przyrostowego lub iteracyjnego, który pozwala na pracę nad różnymi etapami jednocześnie. Iteracyjne wprowadzanie zmian to charakterystyczna cecha Agile, gdzie projekt rozwijany jest stopniowo. Testowanie po każdej fazie jest istotnym elementem w różnych metodykach, ale sam proces testowania nie definiuje modelu kaskadowego – tutaj testowanie odbywa się dopiero po zakończeniu implementacji całego systemu.

Pytanie 39

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

A. Zapisują wartości lokalne w funkcjach
B. Umożliwiają przeprowadzanie operacji na obiektach
C. Zawierają informacje opisujące stan obiektu
D. Określają globalne stałe programu
Pola klasy w programowaniu obiektowym to zmienne, które przechowują dane opisujące stan obiektu. Każdy obiekt posiada swoje własne kopie pól, co oznacza, że różne instancje tej samej klasy mogą przechowywać różne wartości. Przykład w C++: `class Samochod { public: string marka; int przebieg; }`. Pola `marka` i `przebieg` przechowują informacje o konkretnym samochodzie. Pola są kluczowym elementem modelowania rzeczywistych obiektów i umożliwiają przechowywanie oraz modyfikowanie danych w trakcie działania programu. Mogą mieć różne poziomy dostępu (`public`, `private`), co pozwala na lepszą kontrolę nad danymi.

Pytanie 40

Który z operatorów w języku C++ służy do pobierania adresu zmiennej?

A. *
B. delete
C. &amp;
D. &gt;
Hmmm, operator '*' rzeczywiście jest do dereferencji wskaźnika, ale nie myl go z innymi operatorami. '>' to operator do porównania, ale nie ma nic wspólnego z adresami czy wskaźnikami. A delete służy do zwalniania pamięci, a nie do uzyskiwania adresów zmiennych. Każdy z tych operatorów ma swoje miejsce w C++, ale jak się pomyli, to może być ciężko, no nie? Warto się przyjrzeć jeszcze raz tym pojęciom.