Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 14 maja 2026 14:17
  • Data zakończenia: 14 maja 2026 14:28

Egzamin zdany!

Wynik: 31/40 punktów (77,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

W JavaScript funkcja document.getElementById(id) ma na celu

A. zwrócić referencję do pierwszego elementu HTML o wskazanym id
B. pobrać wartości z formularza i przypisać je do zmiennej id
C. umieścić tekst o treści ’id’ na stronie internetowej
D. zweryfikować poprawność formularza o identyfikatorze id
Fajnie, że zwróciłeś uwagę na metodę document.getElementById(id). To naprawdę ważne narzędzie w JavaScript, jeśli chodzi o pracę z DOM. Dzięki niej możesz łatwo znaleźć element HTML, który ma konkretny identyfikator, co jest super przydatne, gdy chcesz coś zmienić na stronie. Na przykład, żeby zmienić tekst nagłówka, używasz: document.getElementById('header').innerText = 'Nowy tekst nagłówka'. Warto pamiętać, żeby identyfikatory były unikalne, bo to potem ułatwia odnajdywanie i manipulację tymi elementami. Unikaj też zbyt ogólnych nazw, bo to może prowadzić do zamieszania. Metoda ta jest naprawdę szeroko stosowana w nowoczesnym programowaniu stron internetowych, co czyni strony bardziej interaktywnymi i dynamicznymi.

Pytanie 2

Aby utworzyć tabelę w języku SQL, należy użyć polecenia

A. ALTER TABLE
B. CREATE TABLE
C. ADD TABLE
D. INSERT TABLE
Odpowiedź 'CREATE TABLE' jest poprawna, ponieważ w języku SQL to polecenie jest używane do tworzenia nowych tabel w bazie danych. Umożliwia definiowanie struktury tabeli, w tym nazw kolumn, typów danych oraz ograniczeń, takich jak klucze główne czy unikalność. Przykładowe użycie polecenia 'CREATE TABLE' może wyglądać następująco: 'CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50));'. W tym przykładzie tworzymy tabelę 'pracownicy' z trzema kolumnami: 'id', 'imie' oraz 'nazwisko'. Warto zaznaczyć, że zgodnie z najlepszymi praktykami, przed wykonaniem polecenia warto sprawdzić, czy tabela o danej nazwie już istnieje, aby uniknąć błędów związanych z podwójnym tworzeniem. Zapewnienie odpowiedniej struktury bazy danych już na etapie jej tworzenia przekłada się na lepszą wydajność oraz łatwiejsze zarządzanie danymi w przyszłości.

Pytanie 3

Jakie zadanie wykonuje funkcja COUNT w języku SQL?

A. liczenie znaków w polu tekstowym
B. zliczanie rekordów uzyskanych z kwerendy
C. obliczenie wartości bezwzględnej w polu liczbowym
D. wyliczenie średniej wartości w danej kolumnie
Funkcja COUNT w języku SQL jest jedną z najbardziej fundamentalnych funkcji agregujących, która służy do zliczania liczby rekordów w zestawie danych. Użycie tej funkcji jest kluczowe w kontekście analizy danych, ponieważ pozwala na szybkie uzyskanie informacji o ilości danych, które spełniają określone kryteria. Przykład użycia COUNT może wyglądać następująco: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'; Taki zapytanie zwróci liczbę wszystkich klientów z Polski. Funkcja COUNT jest również używana w połączeniu z klauzulą GROUP BY, co umożliwia zliczanie rekordów w podgrupach. Na przykład, SELECT kraj, COUNT(*) FROM klienci GROUP BY kraj; zliczy wszystkich klientów w każdym kraju. Warto podkreślić, że COUNT różni się od innych funkcji agregujących, takich jak AVG czy SUM, które obliczają wartości na podstawie danych, a nie zliczają ich. Funkcja COUNT jest zgodna z normami SQL-92 i jest wspierana przez wszystkie popularne systemy zarządzania bazami danych, co czyni ją uniwersalnym narzędziem w pracy z danymi.

Pytanie 4

Jaką wartość zwróci funkcja ```empty($a);``` w języku PHP, gdy zmienna ```$a``` będzie miała wartość liczbową równą 0?

A. FALSE
B. TRUE
C. 0
D. NULL
Funkcja empty() w PHP służy do sprawdzania, czy zmienna jest pusta. Zmienna uznawana jest za pustą, jeśli nie istnieje, ma wartość NULL, jest równoważna FALSE, jest pustym ciągiem (''), jest pustą tablicą lub ma wartość 0. W przypadku zmiennej $a, która ma wartość liczbową równą 0, funkcja empty($a) zwróci TRUE, co oznacza, że zmienna jest uznawana za pustą. Kluczowym aspektem jest zrozumienie, że w PHP wartość 0 jest interpretowana jako fałszywa w kontekście logicznym, a tym samym spełnia kryteria funkcji empty(). Praktyczne zastosowanie tej funkcji można zauważyć w wielu aspektach programowania: na przykład podczas walidacji danych wejściowych w formularzach, gdzie chcemy upewnić się, że użytkownik nie pozostawił pustych pól. Dobrą praktyką jest użycie empty() zamiast bezpośrednich porównań, ponieważ jest bardziej odporna na różne typy danych oraz zrozumiała w kontekście semantycznym, co poprawia czytelność kodu.

Pytanie 5

Metainformacja "Description" zawarta w pliku HTML powinna zawierać ``` ```

A. listę kluczowych fraz używanych przez wyszukiwarki internetowe
B. nazwę aplikacji, w której stworzono stronę
C. opis zawartości strony
D. informację o autorze strony
Metainformacja 'Description' zawarta w pliku HTML pełni kluczową rolę w optymalizacji stron internetowych pod kątem wyszukiwarek. Jest to krótki opis treści strony, który pomaga wyszukiwarkom zrozumieć, o czym jest dana strona. Wartościowy opis powinien być zwięzły, informacyjny i zachęcający do kliknięcia, ponieważ często pojawia się w wynikach wyszukiwania jako fragment tekstu, obok tytułu strony. Przykładem dobrze skonstruowanego opisu może być 'Dowiedz się, jak skutecznie zarządzać swoimi finansami osobistymi dzięki naszym praktycznym poradnikom i wskazówkom'. Taki opis nie tylko informuje użytkownika o zawartości strony, ale również zawiera słowa kluczowe, które mogą przyciągnąć uwagę. Zgodnie z wytycznymi Google, długość opisu powinna wynosić od 150 do 160 znaków, aby uniknąć obcięcia tekstu w wynikach wyszukiwania. Posiadanie dobrze napisanej metainformacji 'Description' jest więc niezbędne dla skutecznej strategii SEO i zwiększenia widoczności strony w internecie.

Pytanie 6

Jaką złożoność obliczeniową mają problemy związane z przeprowadzaniem operacji na łańcuchach lub tablicach w przypadku dwóch zagnieżdżonych pętli przetwarzających wszystkie elementy?

A. O(n!)
B. O(log n)
C. O(n)
D. O(n2)
Często przy analizie złożoności obliczeniowej popełniamy błędy, bo staramy się ocenić, ile operacji jest potrzebnych, a kontekst ma tu spore znaczenie. Odpowiedź O(n) może wydawać się kusząca, ale oznacza, że operacje są tylko liniowe, co mija się z prawdą, gdy mamy zagnieżdżone pętle. Jak jedna pętla przechodzi przez n elementów, a druga również przechodzi przez n dla każdej iteracji, to nie ma mowy o liniowości. Co do O(n!), to dotyczy to permutacji i jest zupełnie inną sprawą niż prosta iteracja przez elementy. A O(log n) - w tym przypadku jest mylące, bo odnosi się do algorytmów takich jak wyszukiwanie binarne, które działają na posortowanych danych, a nie przy przetwarzaniu wszystkich elementów. Ważne jest, żeby mieć to na uwadze. Różne operacje wymagają różnych metod analizy, a złożoność algorytmiczna jest kluczowa przy projektowaniu dobrych i wydajnych rozwiązań.

Pytanie 7

Która komenda pozwala na przesłanie tekstu do przeglądarki?

A. type
B. echo
C. exit
D. break
Inne opcje, takie jak 'break', 'type' i 'exit', nie służą do wysyłania tekstu do przeglądarki, co prowadzi do nieporozumień na temat ich funkcjonalności. Break jest używane w kontekście struktur kontrolnych, takich jak pętle, i służy do przedwczesnego zakończenia ich działania. Użytkownicy często mylą jego zastosowanie, sądząc, że może mieć wpływ na przesyłanie danych do przeglądarki, podczas gdy jego rola jest ściśle ograniczona do logiki programowania. Type jest komendą stosowaną w systemach operacyjnych, służącą do wyświetlania zawartości plików w konsoli, co nie ma żadnego zastosowania w kontekście generowania wyjścia HTML. Z kolei exit to instrukcja, która kończy działanie skryptu. To pojęcie jest często mylone z funkcjami, które przesyłają dane do użytkownika. Wszystkie te komendy mają swoje określone zastosowania, ale nie odnoszą się do generowania wyjścia w kontekście stron internetowych. Kluczowym błędem myślowym jest utożsamianie każdej funkcji z przesyłaniem danych do przeglądarki, co prowadzi do zamieszania i może skutkować nieefektywnym kodowaniem. W kontekście programowania webowego zawsze należy stosować odpowiednie instrukcje, które są dedykowane do generowania treści, aby zapewnić odpowiednią efektywność i bezpieczeństwo aplikacji.

Pytanie 8

W podanym przykładzie pseudoklasa hover spowoduje, że styl pogrubiony zostanie zastosowany

Ilustracja do pytania
A. dla wszystkich odwiedzonych odnośników
B. dla każdego odnośnika bez względu na jego aktualny stan
C. odnośnikowi, gdy kursor myszy na nim spocznie
D. dla wszystkich nieodwiedzonych odnośników
Pseudoklasa hover w CSS jest stosowana do definiowania stylu elementu, gdy użytkownik umieszcza nad nim kursor myszy. W kontekście odnośników, stosowanie pseudoklasy hover pozwala na dynamiczne dostosowywanie ich wyglądu, co jest kluczowe dla poprawy interaktywności i użyteczności stron internetowych. W przykładzie a:hover { font-weight: bold; } styl pogrubiony zostanie zastosowany do odnośnika, gdy użytkownik najedzie na niego kursorem myszy. Jest to częsta praktyka w projektowaniu stron, która pomaga użytkownikom łatwiej identyfikować aktywne elementy nawigacyjne. Standardy sieciowe, takie jak W3C, rekomendują stosowanie takich interakcji w celu poprawy doświadczenia użytkownika. Praktyczne zastosowanie pseudoklasy hover jest szerokie, od prostych efektów wizualnych, po skomplikowane animacje i przejścia. Ważne jest jednak, aby pamiętać o zapewnieniu alternatywnych metod interakcji dla użytkowników korzystających z urządzeń dotykowych, gdzie hover nie jest obsługiwany. Zrozumienie i właściwe stosowanie pseudoklas w CSS jest podstawą tworzenia nowoczesnych i dostępnych interfejsów użytkownika.

Pytanie 9

W CSS wartości underline, overline, blink są przypisane do atrybutu

A. font-weight
B. text-style
C. text-decoration
D. font-style
Właściwość CSS 'text-decoration' to coś, co naprawdę może zmienić wygląd tekstu na stronach internetowych. Dzięki niej możemy dodać różne efekty dekoracyjne, jak podkreślenie, przekreślenie, czy nadkreślenie. Zdarzają się też nowinki, jak efekt 'blink', chociaż nie jest on zbyt popularny w profesjonalnym kodzie. Warto pamiętać, że stosowanie tej właściwości poprawia czytelność i estetykę tekstu. Na przykład, gdy chcemy wyróżnić ważne informacje, możemy użyć 'text-decoration: underline;'. Ciekawostka: niektóre efekty, jak 'blink', mogą sprawić problemy z dostępnością, więc lepiej ich unikać. Właściwe użycie 'text-decoration' w połączeniu z odpowiednimi znacznikami HTML, jak <span> lub <a>, może naprawdę poprawić interaktywność naszej strony. Dobrze jest o tym pamiętać, gdy pracujemy nad projektami.

Pytanie 10

Aby z tabeli Pracownicy wybrać tylko nazwiska kończące się na literę „i”, można zastosować następującą kwerendę SQL

A. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i";
B. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i;
C. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%";
D. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%";
Prawidłowa kwerenda SQL do wyszukania nazwisk pracowników, których ostatnią literą jest 'i', to 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i";'. Operator LIKE w SQL jest używany do wyszukiwania wzorców w danych tekstowych. W tym przypadku symbol '%' przed literą 'i' oznacza, że przed 'i' może występować dowolna liczba znaków (w tym zero), co umożliwia znalezienie wszystkich nazwisk kończących się na tę literę. Przykładowe nazwiska, które mogą być zwrócone przez tę kwerendę to 'Kowalski', 'Nowak', czy 'Wiśniewski'. Zgodnie z standardem SQL, użycie podwójnych cudzysłowów dla wzorca jest właściwe w kontekście baz danych, jednak w wielu systemach baz danych, w tym MySQL, częściej stosuje się pojedyncze cudzysłowy. Warto także zauważyć, że technika ta jest przydatna przy pracy z bazami danych, gdyż umożliwia elastyczne wyszukiwanie informacji oraz jest szczególnie cenne w aplikacjach wymagających filtrowania danych według specyficznych kryteriów.

Pytanie 11

W języku HTML, aby dodać na stronę obrazek przechowywany w formacie JPG, należy użyć znacznika

A. <table>
B. <src>
C. <img>
D. <jpg>
Aby wstawić na stronę obraz zapisany w formacie JPG, w języku HTML stosuje się znacznik <img>. Jest to jeden z podstawowych znaczników używanych do osadzania grafiki na stronach internetowych. W skład tego znacznika wchodzą atrybuty, które pozwalają na określenie źródła obrazu, jego alternatywnego opisu oraz dodatkowych parametrów, takich jak rozmiary czy wyrównanie. Atrybut 'src' jest kluczowy, ponieważ wskazuje ścieżkę do pliku graficznego, na przykład <img src='obraz.jpg' alt='Opis obrazu'>. Atrybut 'alt' jest bardzo ważny z punktu widzenia dostępności, ponieważ umożliwia wyświetlenie tekstu alternatywnego w przypadku, gdy obraz nie może być załadowany. Ponadto, zgodnie z wytycznymi W3C, znacznik <img> jest samodzielny, co oznacza, że nie wymaga pary znaczników otwierającego i zamykającego. Warto również dodać, że stosowanie odpowiednich formatów obrazów, takich jak JPG czy PNG, ma znaczenie dla jakości i wydajności ładowania strony, co jest kluczowe z perspektywy SEO. Użycie poprawnych znaczników i atrybutów może znacząco wpłynąć na pozycję strony w wynikach wyszukiwania.

Pytanie 12

Baza danych, która fizycznie znajduje się na wielu komputerach, lecz logicznie postrzegana jako całość, opiera się na architekturze

A. rozproszoną
B. lokalną
C. abstrakcyjną
D. relacyjną
Architektura rozproszona baz danych polega na tym, że dane są przechowywane na wielu fizycznych komputerach, które razem tworzą jedną logiczną całość. Taki system umożliwia zwiększenie dostępności, niezawodności oraz wydajności baz danych, co jest szczególnie istotne w dużych organizacjach czy systemach, które wymagają obsługi dużej ilości danych. Przykładem zastosowania architektury rozproszonej może być system zarządzania danymi w chmurze, gdzie dane użytkowników są przechowywane w wielu lokalizacjach geograficznych. Dzięki temu, nawet w przypadku awarii jednego z serwerów, system może dalej funkcjonować, co minimalizuje ryzyko utraty danych. Dodatkowo, architektury rozproszone często korzystają z technologii takich jak replikacja danych, co pozwala na synchronizowanie danych pomiędzy różnymi lokalizacjami. Warto podkreślić, że w kontekście rozwoju technologii SQL i NoSQL, architektura rozproszona zyskuje na znaczeniu, stając się standardem w nowoczesnych rozwiązaniach bazodanowych.

Pytanie 13

Wskaż sposób, w jaki należy odwołać się do pliku default.css, jeśli index.html znajduje się bezpośrednio w katalogu Strona?

Ilustracja do pytania
A. <link rel="stylesheet" type="text/css" href="c:\style/default.css" />
B. <link rel="stylesheet" type="text/css" href="...\style\default.css" />
C. <link rel="stylesheet" type="text/css" href="./style/default.css" />
D. <link rel="stylesheet" type="text/css" href="c:/style/default.css" />
Błędne odpowiedzi w tym pytaniu wynikają z niewłaściwego użycia ścieżek do plików. Dwie z błędnych odpowiedzi sugerują użycie ścieżki bezwzględnej do pliku (rozpoczynającej się od 'c:/' lub 'c:\'), co nie jest zalecane, ponieważ takie ścieżki są specyficzne dla konkretnego systemu plików i mogą nie działać w innych środowiskach. Ponadto jedna z błędnych odpowiedzi sugeruje użycie nieprawidłowej składni ('...\') do odwołania się do pliku. Dobrą praktyką jest zawsze korzystanie ze ścieżek względnych podczas odwoływania się do plików w HTML, ponieważ są one uniwersalne i niezależne od systemu plików. Pamiętaj, że właściwe zarządzanie ścieżkami do plików i organizacja plików w strukturze katalogu to klucz do skutecznego i efektywnego kodowania.

Pytanie 14

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Przenikanie zdjęć.
C. Zmniejszenie kontrastu zdjęcia.
D. Zwiększenie ostrości zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 15

Poniżej przedstawiono fragment kodu języka HTML. Jest on definicją listy:

<ol>
  <li>punkt 1</li>    <li>punkt 2</li>
  <ul>
    <li>podpunkt1</li>
    <ul>    <li>podpunkt2</li>  <li>podpunkt3</li>  </ul>
  </ul>
  <li>punkt3</li>
</ol>

A.

  1. punkt 1
  2. punkt 2
    • podpunkt1
    • podpunkt2
    • podpunkt3
  3. punkt3

B.

  1. punkt 1
  2. punkt 2
  3. punkt3
    • podpunkt1
    • podpunkt2
    • podpunkt3

C.

  1. punkt 1
  2. punkt 2
    • podpunkt1
      • podpunkt2
      • podpunkt3
  3. punkt3

D.

  • punkt 1
  • punkt 2
    1. podpunkt1
      • podpunkt2
      • podpunkt3
  • punkt3
A. A.
B. D.
C. C.
D. B.
Gratulacje, poprawnie zinterpretowałeś fragment kodu HTML przedstawiający definicję listy. W tym kodzie widzimy listę numerowaną (<ol>), która zawiera trzy elementy listy (<li>). Szczególnością prezentowanej struktury jest fakt, że drugi element listy zawiera zagnieżdżoną listę nieuporządkowaną (<ul>) z trzema podpunktami. Zgodność odpowiedzi C z przedstawionym kodem wynika z faktu, że punkt 2 prezentuje podpunkty oznaczone kropkami, co jest charakterystyczne dla listy nieuporządkowanej. Tego typu struktura jest często stosowana na stronach internetowych do prezentacji hierarchii informacji, na przykład menu nawigacyjnego czy spisu treści. Pamiętaj, że umiejętność czytania i zrozumienia kodu HTML jest kluczowa dla każdego, kto planuje pracować z technologiami webowymi i to pytanie to doskonały przykład na to, jak te umiejętności mogą być sprawdzane.

Pytanie 16

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
B. dodawania i modyfikacji danych w tabeli sklep
C. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
D. tworzenia oraz modyfikowania struktury w tabeli sklep
To, co zaznaczyłeś, jest jak najbardziej na miejscu. W tym SQL-u, 'GRANT CREATE, ALTER ON sklep.* TO adam;' dajesz użytkownikowi, czyli adamowi, możliwości tworzenia i zmieniania struktury wszystkich tabel w bazie 'sklep'. Słowo 'CREATE' pozwala mu na tworzenie nowych tabel, a 'ALTER' umożliwia mu wprowadzanie zmian w tych istniejących, na przykład dodawanie czy usuwanie kolumn. Ważne, żeby ogarnąć, że 'sklep.*' oznacza wszystkie tabele w danej bazie, co jest zgodne z dobrymi praktykami w zarządzaniu bazami danych. No bo jakby adam miał ochotę dodać nową tabelę albo zmodyfikować istniejącą, to musi mieć odpowiednie uprawnienia. Przykładem może być sytuacja, gdy administrator daje programiście dostęp do zmian w strukturze tabel, żeby móc dodać nowe funkcje do aplikacji – to naprawdę ważne dla rozwoju systemu.

Pytanie 17

Aby strona WWW mogła być przesyłana do przeglądarki w formie zaszyfrowanej, należy zastosować protokół

A. HTTPS
B. SSH
C. HTTP
D. SFTP
HTTP (Hypertext Transfer Protocol) jest protokołem wykorzystywanym do przesyłania danych w sieci, jednak jego podstawową wadą jest brak mechanizmów zabezpieczających przesyłane informacje. Oznacza to, że dane wysyłane i odbierane za pomocą HTTP nie są szyfrowane, co sprawia, że są narażone na przechwycenie przez nieautoryzowane osoby. W dobie rosnącej liczby cyberataków i naruszeń prywatności, korzystanie z HTTP przy przesyłaniu wrażliwych danych, takich jak hasła czy dane osobowe, jest skrajnie nieodpowiedzialne. SFTP (SSH File Transfer Protocol) to protokół służący do bezpiecznego przesyłania plików, jednak nie jest przeznaczony do przesyłania stron internetowych w kontekście przeglądania nimi w sieci. SSH (Secure Shell) to protokół używany do bezpiecznego logowania i zarządzania zdalnymi systemami, ale również nie nadaje się do przesyłania stron WWW. Stąd pojawiają się typowe błędy myślowe, w których użytkownicy mylą różne protokoły, nie dostrzegając ich specyfiki oraz przeznaczenia. Dobrą praktyką w dziedzinie bezpieczeństwa jest stosowanie HTTPS jako domyślnego protokołu dla wszystkich stron internetowych, co pozwala na ochronę prywatności i danych użytkowników.

Pytanie 18

W SQL, aby uniemożliwić stworzenie konta przy wykonywaniu kwerendy CREATE USER, gdy konto już istnieje, można zastosować następującą składnię

A. CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
B. CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
C. CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
D. CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
Odpowiedź 'CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';' jest poprawna, ponieważ użycie klauzuli 'IF NOT EXISTS' pozwala na uniknięcie błędów w sytuacji, gdy konto użytkownika już istnieje w bazie danych. W praktyce oznacza to, że wykonanie tego polecenia nie spowoduje żadnej zmiany ani błędu, jeśli konto 'anna' jest już zdefiniowane, co jest szczególnie przydatne w skryptach automatyzujących tworzenie użytkowników. Dzięki temu można uniknąć powtarzania kodu sprawdzającego istnienie użytkownika przed jego utworzeniem. Zaleca się stosowanie tej formy w celu uproszczenia procesu zarządzania użytkownikami i zapewnienia, że skrypty wykonują się bez zakłóceń. W kontekście bezpieczeństwa, ważne jest używanie silnych haseł, jak w tym przykładzie, aby zabezpieczyć konta przed nieautoryzowanym dostępem. Warto także pamiętać o dobrych praktykach w zakresie nadawania uprawnień oraz regularnego przeglądania kont użytkowników, aby zapewnić, że wszystkie konta są wykorzystywane i zarządzane odpowiednio.

Pytanie 19

W CSS przypisano regułę: float: left; dla elementu blokowego. Jakie będzie jej zastosowanie?

A. wyrównania tekstu do lewej strony
B. układania bloków jeden pod drugim
C. wyrównania elementów tabeli do lewej strony
D. ustawienia bloku na lewo w stosunku do innych
Reguła CSS 'float: left;' jest używana do ustawienia elementu blokowego po lewej stronie kontenera, co pozwala na swobodne rozmieszczanie innych elementów w otaczającym go obszarze. Elementy, które są ustawione jako 'float', nie zajmują miejsca w normalnym przepływie dokumentu, co oznacza, że inne elementy mogą 'przepływać' wokół nich. Przykładem zastosowania tej reguły może być układ strony internetowej, gdzie zdjęcia są umieszczone z lewej strony tekstu, co pozwala na estetyczne i funkcjonalne połączenie grafiki z treścią. Zgodnie z wytycznymi W3C, właściwości 'float' powinny być używane z rozwagą, aby uniknąć problemów z układaniem stron, na przykład należy pamiętać o zastosowaniu właściwości 'clear', aby uniknąć niechcianych efektów wizualnych. W praktyce, float jest często stosowany w układach siatki lub responsywnych, gdzie elastyczne i dynamiczne rozmieszczenie elementów jest kluczowe dla użyteczności i estetyki strony.

Pytanie 20

Aby stworzyć tabelę, należy wykorzystać polecenie

A. ALTER TABLE
B. CREATE DATABASE
C. CREATE TABLE
D. INSERT INTO
Polecenie CREATE TABLE to naprawdę ważna sprawa, jeśli chodzi o budowanie struktury bazy danych w systemach DBMS. Dzięki niemu możemy stworzyć nową tabelę w bazie, nadając jej różne nazwy i typy danych dla kolumn. Na przykład, można użyć takiego zapisu: CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50), data_zatrudnienia DATE); W efekcie mamy tabelę 'pracownicy' z czterema kolumnami, a 'id' to nasz klucz główny. W praktyce, poprawne stworzenie tabeli to podstawa dalszej pracy z danymi, więc warto się postarać, żeby schematy baz danych były dobrze zaprojektowane, w zgodzie z zasadami normalizacji. To zmniejsza zbędne powtarzanie danych i sprawia, że potem łatwiej nimi zarządzać. Pamiętaj, żeby przed użyciem CREATE TABLE dobrze zaplanować strukturę bazy danych, bo to pomoże w wydajności i elastyczności aplikacji. Fajnie jest też dodać różne ograniczenia, jak klucze obce, żeby mieć pewność, że nasze dane są w porządku.

Pytanie 21

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
B. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
C. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
D. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
Weryfikacja pola nazwa przy użyciu wyrażeń regularnych w aplikacji JavaScript jest kluczowym elementem zapewnienia integralności danych wejściowych. Niektóre przedstawione opcje zawierają błędne założenia na temat porządku i wymogów składniowych wzorca. Przykładowo, nieprawidłowe jest założenie, że jedynie dowolny ciąg cyfr (bez zer) wystarczy, ponieważ kod wyraźnie wymaga, aby po cyfrach nastąpiła jedna duża litera, a następnie minimum dwie małe litery. Niezrozumienie tego może prowadzić do błędnych założeń dotyczących logiki walidacji. Niedokładne opisy wzorca mogą prowadzić do błędów w implementacji, co może skutkować działaniem niezgodnym z oczekiwaniami. Ponadto, dobre praktyki programistyczne zawsze sugerują, aby dokumentacja była dokładna i odzwierciedlała rzeczywiste wymagania kodu, co w tym przypadku oznacza precyzyjne określenie kolejności i wymogów dotyczących znaków. Niewłaściwe rozumienie wyrażeń regularnych może również prowadzić do błędów bezpieczeństwa, takich jak podatność na wstrzykiwanie danych, dlatego kluczowe jest poprawne udokumentowanie wzorca, aby zapewnić bezpieczne przetwarzanie danych użytkowników.

Pytanie 22

Interpreter PHP zwróci błąd i zaniecha wykonania kodu, jeżeli programista

A. nie umieści średnika po wyrażeniu w instrukcji if, jeśli za nim znajduje się sekcja else
B. będzie tworzył kod bez odpowiednich wcięć
C. pobierze wartość z formularza, w którym pole input nie zostało wypełnione
D. będzie definiował zmienne w obrębie warunku
Niepostawienie średnika po wyrażeniu w instrukcji if, gdy następuje sekcja else, prowadzi do błędu składniowego w PHP. W języku PHP średnik jest używany do zakończenia instrukcji, co oznacza, że każda linia kodu, która stanowi osobną instrukcję, powinna być zakończona średnikiem. W przypadku używania instrukcji warunkowej if z sekcją else, zastosowanie średnika po pierwszej instrukcji (if) jest kluczowe. Przykładowo, poprawny kod wyglądałby tak: "if ($warunek) { //kod } else { //kod }". Jeśli pominiemy średnik po instrukcji if, interpreter PHP nie będzie w stanie prawidłowo zinterpretować kodu, co skutkuje błędem. Jest to zgodne z dobrymi praktykami programowania, które zalecają dbałość o szczegóły w składni, aby uniknąć błędów podczas wykonywania skryptów. Praktyka ta jest istotna, szczególnie w większych projektach, gdzie błędy składniowe mogą prowadzić do trudnych do zdiagnozowania problemów.

Pytanie 23

Mamy do czynienia z tablicą o nazwie tab, która zawiera liczby całkowite różniące się od zera. Zawarty w języku PHP kod ma na celu:

foreach ($tab as &$liczba)
    $liczba = $liczba * (-1);
unset($liczba);
A. obliczyć wartość bezwzględną elementów tej tablicy
B. przekształcić elementy tablicy na wartości zapisane w zmiennej liczba
C. zmienić wszystkie elementy tablicy na liczby o przeciwnym znaku
D. wyliczenie iloczynu wszystkich wartości w tablicy
Odpowiedź jest prawidłowa, ponieważ przedstawiony kod w języku PHP używa pętli foreach do iteracji po tablicy o nazwie tab. Dzięki zastosowaniu operatora & przed nazwą zmiennej $liczba, zmienna ta jest przekazywana przez referencję. Oznacza to, że każda modyfikacja dokonywana na zmiennej $liczba wpływa bezpośrednio na odpowiedni element tablicy. Wewnątrz pętli każda liczba w tablicy jest mnożona przez -1, co skutkuje zmianą jej znaku na przeciwny. W praktyce taka operacja jest powszechnie stosowana, gdy istnieje potrzeba szybkiej zmiany wszystkich wartości w strukturze danych na ich negatywne odpowiedniki, na przykład w algorytmach matematycznych lub finansowych. Istotnym aspektem jest również unikanie modyfikacji oryginalnych danych, co jest kluczowe w procesie przetwarzania danych. Po zakończeniu pętli unset($liczba) usuwa referencję, aby uniknąć niepożądanych efektów ubocznych. Takie podejście jest zgodne z dobrymi praktykami programowania, które kładą nacisk na zarządzanie pamięcią i poprawność danych.

Pytanie 24

W języku JavaScript funkcja document.getElementById(id) służy do

A. uzyskania odniesienia do pierwszego elementu HTML o wskazanym id
B. sprawdzania poprawności formularza z identyfikatorem id
C. umieszczenia tekstu 'id' na stronie WWW
D. pobierania danych z pola formularza i przypisania ich do zmiennej id
Metoda document.getElementById(id) jest kluczowym elementem API DOM (Document Object Model) w JavaScript, służącym do manipulacji elementami HTML na stronie internetowej. Jej głównym zadaniem jest zwrócenie odniesienia do pierwszego elementu, który ma określony identyfikator (id). Identyfikatory w HTML muszą być unikalne w obrębie dokumentu, co pozwala na efektywne i bezbłędne znajdowanie konkretnego elementu. Na przykład, jeśli mamy element o id 'header', możemy go uzyskać za pomocą document.getElementById('header'). To odniesienie pozwala nam na dalsze manipulacje tym elementem, takie jak zmiana jego zawartości, stylów CSS czy atrybutów. Przykładowe zastosowanie polega na tym, iż możemy zmienić tekst nagłówka na 'Witaj w moim serwisie' poprzez: document.getElementById('header').innerText = 'Witaj w moim serwisie'. Tego typu operacje są fundamentem interaktywnych aplikacji webowych i są zgodne z dobrymi praktykami w zakresie programowania JavaScript, które promują jasny i zrozumiały dostęp do struktury dokumentu.

Pytanie 25

Prezentowany blok kodu ilustruje proces

Ilustracja do pytania
A. załadowania lub wyświetlenia informacji
B. podjęcia decyzji
C. realizacji zadania w pętli
D. użycia zdefiniowanej procedury lub funkcji
Pierwsza odpowiedź sugeruje że blok reprezentuje zastosowanie gotowej procedury lub funkcji co jest niepoprawne Romb w schematach blokowych nie jest używany do oznaczania procedur lub funkcji lecz do podejmowania decyzji Stosowanie procedur i funkcji zazwyczaj związane jest z blokami prostokątnymi symbolizującymi operacje a nie z decyzjami które wymagają warunkowego rozgałęzienia Druga odpowiedź wczytania lub wyświetlenia danych również nie jest poprawna Operacje związane z wczytywaniem i wyświetlaniem danych są zazwyczaj przedstawiane za pomocą bloków równoległoboków które obrazują wejście i wyjście danych Wczytywanie danych polega na pozyskaniu informacji z zewnętrznych źródeł lub użytkownika a wyświetlanie polega na prezentacji wyników jednak obie te czynności nie mają charakteru decyzyjnego Odpowiedź dotycząca wykonania zadania w pętli jest także błędna Pętle które umożliwiają powtarzanie określonych czynności są zazwyczaj wyrażane za pomocą konstrukcji prostokątnych z dodatkowymi wskaźnikami powrotu nie zaś za pomocą rombu który odzwierciedla logiczne warunkowe ścieżki przepływu danych Typowym błędem myślowym jest przypisywanie rombowi funkcji powiązanych z iteracjami lub operacjami co wynika z mylnego zrozumienia zasad tworzenia algorytmów w formie graficznej Intuicja podpowiada że decyzja i powtarzanie mogą być podobne jednak w diagramach blokowych różnią się symboliką i zastosowaniem

Pytanie 26

W języku SQL do grupy operacji DCL (ang. Data Control Language) należą polecenia:

A. CREATE i DROP
B. SELECT i INSERT
C. DELETE i UPDATE
D. GRANT i REVOKE
W SQL rozróżnienie między DDL, DML i DCL jest kluczowe, bo każdy z tych zestawów poleceń odpowiada za inny obszar pracy z bazą danych. Wiele osób intuicyjnie wrzuca wszystkie komendy „do jednego worka”, a potem trudno jest im zrozumieć, gdzie kończy się manipulacja danymi, a zaczyna zarządzanie uprawnieniami. Data Control Language, czyli DCL, to bardzo wąska, ale ważna grupa poleceń, służąca wyłącznie do kontroli dostępu. W standardowym SQL do DCL zaliczamy praktycznie tylko GRANT i REVOKE. Odpowiedzi typu CREATE i DROP są kuszące, bo też brzmią „administracyjnie”, ale to już inna kategoria – DDL (Data Definition Language). CREATE, ALTER, DROP czy TRUNCATE służą do definiowania i modyfikowania struktury bazy: tworzą tabele, widoki, indeksy, usuwają obiekty. One nie zarządzają prawami użytkowników, tylko tym, jakie obiekty w ogóle istnieją. To, że często wykonuje je administrator, nie znaczy jeszcze, że należą do DCL. Z kolei SELECT, INSERT, UPDATE, DELETE to klasyczne DML (Data Manipulation Language). Te polecenia działają na rekordach: odczytują dane, dodają nowe wiersze, modyfikują istniejące, usuwają je. Typowy błąd myślowy polega na tym, że ktoś myśli: skoro DELETE usuwa dane, to trochę jak „kontrola”, więc może DCL. Niestety nie – DELETE w ogóle nie dotyka uprawnień, ono po prostu kasuje rekordy, o ile użytkownik już ma odpowiednie prawa. Dopiero DCL decyduje, czy użytkownik może wykonać DELETE na danej tabeli. To subtelne, ale bardzo ważne rozróżnienie. Moim zdaniem warto zapamiętać prosty schemat: DDL – struktura, DML – dane, DCL – uprawnienia. Wtedy łatwiej od razu skojarzyć, że tylko GRANT i REVOKE pasują do kategorii Data Control Language, a reszta odpowiedzi dotyczy zupełnie innych warstw pracy z bazą.

Pytanie 27

Który program komputerowy przekłada kod źródłowy, stworzony w określonym języku programowania, na język maszyny?

A. Edytor kodu źródłowego
B. Kompilator
C. Debugger
D. Środowisko programistyczne
Kompilator to taki mega ważny program, który pomaga w tworzeniu aplikacji. Przekształca kod, który napisaliśmy w danym języku programowania, na język maszynowy, czyli taki, który komputery rozumieją. To jest kluczowe, bo komputery działają na kodzie binarnym. Tak więc, jak piszemy programy w językach, takich jak C++, Java czy Python, musimy przekształcić ten skomplikowany kod na coś, co maszyna będzie mogła ogarnąć. Kompilatory nie tylko zamieniają nasz kod, ale też sprawdzają go pod kątem błędów, co jest super ważne dla jakości oprogramowania. Dla przykładu, jest taki kompilator GCC do języka C/C++, który jest bardzo popularny w projektach open source. Dobrze jest regularnie kompilować kod podczas pisania, bo to pozwala szybko łapać błędy i lepiej pracować w zespole.

Pytanie 28

Funkcja CONCAT() w SQL służy do

A. łączenia tekstów do wyświetlenia
B. usuwania określonego tekstu
C. uzyskiwania podłańcucha ze wskazanego tekstu
D. przycinania tekstu do wyświetlenia
Funkcja CONCAT() w języku SQL jest używana do łączenia dwóch lub więcej ciągów tekstowych w jeden. To niezwykle przydatne narzędzie, które pozwala na tworzenie bardziej złożonych danych wyjściowych, na przykład w raportach lub podczas generowania dynamicznych wartości w zapytaniach. Umożliwia to efektywną manipulację danymi tekstowymi, co jest kluczowe w wielu aplikacjach biznesowych, gdzie często zachodzi potrzeba scalania imion i nazwisk, adresów czy jakichkolwiek innych pól tekstowych. Przykładowo, używając CONCAT('Jan', ' ', 'Kowalski'), otrzymamy 'Jan Kowalski', co pokazuje, jak prosto można połączyć różne elementy w jedną całość. Warto pamiętać, że w przypadku, gdy którykolwiek z argumentów CONCAT() jest wartością NULL, zwracana jest wartość NULL. Dlatego, aby uniknąć tego problemu, programiści często stosują funkcję COALESCE(), aby zastąpić NULL pustym ciągiem przed jego połączeniem. Dobrą praktyką jest również używanie funkcji CONCAT() w kontekście formatowania wyników zapytań, co zwiększa czytelność i użyteczność danych dla końcowego użytkownika.

Pytanie 29

W efekcie wykonania przedstawionego w ramce kodu JavaScript, zmienna x jest równa

Ilustracja do pytania
A. 10 i zostanie wypisana w dokumencie HTML.
B. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
C. 11 i zostanie wypisana w oknie popup.
D. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript: <script> var x = 10; x++; console.log(x); </script> Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu. Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego. Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 30

Jakim formatem kompresji dźwięku, który nie traci jakości, jest?

A. MP3
B. AAC
C. FLAC
D. WWA
FLAC, czyli Free Lossless Audio Codec, to format bezstratnej kompresji dźwięku, co oznacza, że dźwięk jest kompresowany bez utraty jakości. W przeciwieństwie do formatów stratnych, takich jak MP3 czy AAC, FLAC zachowuje oryginalne właściwości dźwięku, co czyni go idealnym wyborem dla audiofilów oraz profesjonalnych zastosowań dźwiękowych. FLAC umożliwia zmniejszenie rozmiaru plików audio, co ułatwia ich przechowywanie i przesyłanie, przy jednoczesnym zachowaniu jakości studyjnej. Przykładowo, podczas przesyłania plików audio na platformy streamingowe lub do archiwów, FLAC może być użyty do zapewnienia wysokiej jakości dźwięku bez obaw o degradację sygnału. FLAC jest standardem otwartym, co oznacza, że jest dostępny dla każdego, a jego algorytmy kompresji są udokumentowane i dostępne do implementacji w różnych aplikacjach. Warto również dodać, że FLAC obsługuje metadane, co pozwala na dodawanie informacji o utworach, takich jak wykonawca, album czy rok wydania, co zwiększa jego funkcjonalność w porównaniu do innych formatów.

Pytanie 31

Wszelkie dane, które dostarczają informacji o innych danych, nazywane są

A. databus.
B. markup language.
C. metadata.
D. metalanguage.
Poprawna odpowiedź to „metadata”, czyli po polsku metadane. Metadane to wszystkie dane, które opisują inne dane. Można powiedzieć, że są to „informacje o informacji”. Przykład z życia: plik zdjęcia JPG. Sam obraz to dane, a takie elementy jak data wykonania, model aparatu, rozdzielczość, lokalizacja GPS, autor – to właśnie metadane zapisane np. w formacie EXIF. Podobnie w świecie WWW: w dokumencie HTML mamy sekcję <head>, a w niej znaczniki <meta>. Te znaczniki nie są wyświetlane użytkownikowi jako treść strony, ale przekazują wyszukiwarkom i przeglądarkom informacje o stronie, np. opis, słowa kluczowe, kodowanie znaków, język. To jest klasyczny przykład metadanych w praktyce. W bazach danych metadane to np. definicje tabel, typy kolumn, klucze główne, indeksy, ograniczenia. System zarządzania bazą danych przechowuje je w tzw. katalogach systemowych. Dzięki temu wie, jak interpretować rekordy, jakie są relacje między tabelami, jakie są dopuszczalne wartości. Bez metadanych dane byłyby po prostu chaotycznym zbiorem bitów, z którego niewiele da się wyciągnąć. W standardach branżowych stosuje się różne schematy metadanych, np. Dublin Core dla zasobów cyfrowych, czy schema.org dla stron internetowych, aby wyszukiwarki lepiej rozumiały zawartość. Z mojego doświadczenia warto od początku myśleć o metadanych jako o czymś, co podnosi jakość systemu: ułatwia wyszukiwanie, integrację, automatyczne przetwarzanie danych. Dobra praktyka jest taka, żeby dla ważnych zasobów (pliki, rekordy w bazie, strony WWW, API) zawsze planować strukturę metadanych: kto utworzył, kiedy, jaki typ, wersja, status. To bardzo pomaga przy utrzymaniu aplikacji, debugowaniu i rozwoju systemu.

Pytanie 32

W języku HTML zdefiniowano znacznik a oraz atrybut rel nofollow.

A. jest wskazówką dla robota wyszukiwarki Google, aby nie śledził tego linku
B. oznacza, że kliknięcie w link nie przekieruje na stronę website.com
C. oznacza, że kliknięcie w link otworzy go w nowej karcie przeglądarki
D. jest poleceniem dla przeglądarki internetowej, aby nie traktowała słowa "link" jako hiperłącza
Pierwsza odpowiedź sugeruje, że kliknięcie w link nie przeniesie użytkownika do strony website.com, co jest absolutnie błędne. Użycie atrybutu nofollow nie zmienia funkcji samego linku w kontekście przeglądarki internetowej. Użytkownicy nadal mogą klikać w link, a przeglądarka otworzy stronę docelową. Atrybut nofollow ma zastosowanie wyłącznie do robotów wyszukiwarek, a nie do rzeczywistego zachowania linku w przeglądarkach. Druga odpowiedź myli również rolę atrybutu nofollow, sugerując, że link otworzy się w osobnej karcie przeglądarki. Rzeczywiście, aby link został otwarty w nowej karcie, powinien on zawierać atrybut target z wartością '_blank', a nie rel nofollow. Ostatnia odpowiedź sugeruje, że nofollow informuje przeglądarkę, aby nie formatowała słowa 'link' jako odnośnika. To również jest niepoprawne, ponieważ rel nofollow nie ma wpływu na sposób wyświetlania linków w przeglądarkach, a jego rola ogranicza się wyłącznie do komunikacji z robotami wyszukiwarek. W skrócie, wszystkie trzy odpowiedzi mylnie interpretują funkcję atrybutu nofollow, co może prowadzić do poważnych nieporozumień w zakresie SEO i zarządzania linkami.

Pytanie 33

Jakie wartości zostaną wypisane po wykonaniu poniższego skryptu?

var x = 1;
var y;
/*0*/ ++y;
/*1*/ document.write(++x);
/*2*/ document.write(" ");
/*3*/ document.write(x--);
/*4*/ document.write(" ");
/*5*/ document.write(x);
A. 1 2 1
B. 1 2 2
C. 2 1 1
D. 2 2 1
Analizując wyniki działania skryptu, warto zwrócić uwagę na różnice wynikające z użycia operatorów preinkrementacji i postdekrementacji. Wiele osób mylnie interpretuje, jak te operatory wpływają na zmienną w danej kolejności operacji. Preinkrementacja (++x) zwiększa wartość zmiennej o 1 przed jej użyciem w wyrażeniu, co oznacza, że każda operacja wykonywana później będzie bazować na już zwiększonej wartości. Z kolei postdekrementacja (x--) najpierw używa bieżącej wartości zmiennej, a dopiero potem ją zmniejsza, co może prowadzić do błędnych założeń, jeśli nie jest się świadomym tej różnicy. Częstym błędem jest założenie, że obie operacje działają jednocześnie, co nie jest prawdą. Różnica ta jest kluczowa, ponieważ ma znaczący wpływ na kolejność wykonania operacji i rezultat końcowy. Przy programowaniu w JavaScript należy zatem nie tylko znać różnice między tymi operatorami, ale także dokładnie rozumieć, jak wpływają one na przepływ sterowania w kodzie. Znajomość tego mechanizmu pozwala unikać typowych błędów, które prowadzą do nieoczekiwanych wyników i problemów z debugowaniem kodu. Jest to nieodzowna wiedza w inżynierii oprogramowania, szczególnie przy optymalizacji i pisaniu efektywnego kodu.

Pytanie 34

Atrybut value w elemencie formularza XHTML

 <input type="text" name="name" value="value">
A. ustawia pole jako tylko do odczytu
B. określa nazwę pola
C. określa domyślną wartość
D. definiuje maksymalną długość pola
Atrybut 'value' w polu formularza XHTML ma kluczowe znaczenie, ponieważ określa wartość, która będzie domyślnie wyświetlana w polu tekstowym. Kiedy użytkownik otworzy formularz, będzie widział w polu tekstowym wpisaną wartość, co ułatwia interakcję, zwłaszcza w przypadkach, gdy potrzebne są przykłady lub domyślne odpowiedzi. Na przykład, w formularzu rejestracyjnym można ustawić atrybut 'value' na 'Jan Kowalski', co sugeruje użytkownikowi, jak powinien wypełnić swoje imię i nazwisko. Jest to zgodne z dobrymi praktykami projektowania formularzy, które dążą do poprawy użyteczności i zmniejszenia liczby błędów użytkowników. Warto również zauważyć, że w przypadku formularzy, jeśli użytkownik zdecyduje się nie zmieniać tej wartości, atrybut 'value' sprawia, że odpowiedź zostanie przesłana w formularzu po jego wysłaniu. To podkreśla znaczenie predefiniowania wartości w kontekście UX, ponieważ dobrze zaprojektowane formularze mogą znacznie poprawić doświadczenia użytkowników.

Pytanie 35

Jakie imiona spełniają warunek klauzuli LIKE w zapytaniu

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
?
A. Oktawia, Oktawian, Olga
B. Oksana, Ola, Olga
C. Oksana, Oktawia, Olga
D. Oda, Oksana, Oktawia
Odpowiedź Oksana, Oktawia, Olga jest poprawna, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE 'o_%_a' wskazuje na to, że imię musi zaczynać się na literę 'o', mieć co najmniej jeden dowolny znak po 'o' (reprezentowany przez znak podkreślenia '_'), a następnie musi kończyć się na literę 'a'. Przykłady imion: Oksana zaczyna się na 'O', ma 'ks' jako drugi znak i kończy się na 'a'; Oktawia również dostosowuje się do tego wzoru, zaś Olga zaczyna się na 'O', ma 'lg' jako drugi i trzeci znak oraz kończy na 'a'. W praktyce, umiejętność korzystania z klauzuli LIKE jest kluczowa w SQL przy wyszukiwaniu danych według wzorców, co pozwala na bardziej elastyczne i precyzyjne zapytania. Poprawne użycie LIKE zwiększa efektywność filtrowania danych, co jest istotnym aspektem w zarządzaniu bazami danych oraz analizie danych, zgodnie z najlepszymi praktykami w branży.

Pytanie 36

Wartość kolumny w tabeli, która działa jako klucz podstawowy

A. jest zawsze w formacie numerycznym
B. może mieć wartość pustą (NULL)
C. jest wykorzystywana do szyfrowania treści tabeli
D. musi być unikalna
Wartość pola tabeli pełniącego rolę klucza podstawowego musi być unikalna, ponieważ klucz podstawowy identyfikuje jednoznacznie każdy rekord w tabeli bazy danych. To oznacza, że żadna z wartości w tym polu nie może się powtarzać, co zapewnia integralność danych. Przykładem zastosowania klucza podstawowego jest identyfikator użytkownika (UserID) w tabeli z danymi użytkowników; każdy użytkownik ma przypisany unikalny identyfikator, co umożliwia jednoznaczną identyfikację jego danych. Standardy relacyjnych baz danych, takie jak SQL, nakładają te wymagania na klucze podstawowe, co jest kluczowe dla prawidłowego działania relacji między tabelami. Dobre praktyki w projektowaniu baz danych sugerują, aby klucze podstawowe były nie tylko unikalne, ale także stabilne (czyli nie zmieniały się w czasie), co ułatwia zarządzanie danymi i ich integrację w systemie. W przypadku naruszenia zasady unikalności klucza podstawowego mogą wystąpić problemy z integralnością referencyjną, co sprawia, że niemożliwe staje się prawidłowe powiązanie rekordów w różnych tabelach.

Pytanie 37

Jaką wartość zwróci zapytanie z ramki wykonane na pokazanej tabeli? ```SELECT COUNT(DISTINCT wykonawca) FROM muzyka;```

Ilustracja do pytania
A. 1
B. 4
C. 3
D. 0
Zapytanie SQL SELECT COUNTDISTINCT wykonawca) FROM muzyka; ma na celu zliczenie unikalnych wartości w kolumnie wykonawca tabeli muzyka. W tym przypadku w tabeli są trzy różne wartości w tej kolumnie: Czesław Niemen Stan Borys i Mikołaj Czechowski. Funkcja COUNTDISTINCT zwraca liczbę niepowtarzających się wykonawców co w tym zestawie danych daje wynik 3. Zrozumienie użycia funkcji COUNTDISTINCT jest kluczowe w analizie danych szczególnie gdy chcemy określić liczebność unikalnych elementów w dużych zbiorach danych. To podejście jest szeroko stosowane w raportowaniu i analizach biznesowych gdzie istotne jest zidentyfikowanie niepowtarzalnych wpisów na przykład liczby unikalnych klientów czy produktów w sklepie. Dobre praktyki w SQL obejmują używanie aliasów w celu zwiększenia czytelności zapytań oraz optymalizację wydajności przez właściwe indeksowanie kolumn które są często wykorzystywane w funkcjach zliczających.

Pytanie 38

Które z poniższych poleceń przyznaje użytkownikowi uczen najniższy poziom uprawnień w zakresie zmiany danych i struktury tabel?

A. GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
B. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
C. GRANT SELECT ON szkola.przedmioty TO uczen;
D. GRANT DROP ON szkola.przedmioty TO uczen;
Odpowiedź GRANT SELECT ON szkola.przedmioty TO uczen jest poprawna, ponieważ przyznaje użytkownikowi 'uczen' jedynie uprawnienia do odczytu danych w tabeli 'przedmioty' w bazie danych 'szkola'. Uprawnienia SELECT pozwalają na przeglądanie danych, co jest istotne w kontekście nauki czy oceny przedmiotów, ale nie zezwalają na modyfikację danych ani na zmiany w strukturze tabeli. To podejście jest zgodne z zasadą minimalnych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są niezbędne do wykonania swoich zadań. W praktyce, przyznawanie tylko uprawnień SELECT jest szczególnie ważne w środowiskach edukacyjnych, gdzie chcemy zapewnić uczniom dostęp do informacji, ale jednocześnie chronić integralność danych. W kontekście dobrych praktyk, ograniczenie dostępu do danych wrażliwych jest kluczowe, a nadawanie zbyt szerokich uprawnień może prowadzić do nieautoryzowanych zmian lub utraty danych.

Pytanie 39

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. wynik
B. id_uczestnika
C. nazwa
D. rok
Poprawnie wskazano, że dane w raporcie zostały pogrupowane według pola „rok”. Widać to po tym, że poszczególne rekordy są zebrane w bloki oznaczone nagłówkami 2009, 2010, 2011, 2012, 2020, a dopiero pod każdym z tych lat pojawiają się konkretne konkursy, id_uczestnika i wynik. To jest właśnie klasyczny przykład grupowania danych w raporcie po jednym z pól tabeli – w tym przypadku po kolumnie roku. W praktyce, czy to w SQL, czy w kreatorach raportów (np. w MS Access, LibreOffice Base, Crystal Reports, narzędziach BI), gdy projektujemy raport, często definiujemy tzw. sekcję grupującą (group header) opartą na wybranym polu. Tutaj takim polem jest rok, więc każda zmiana wartości roku powoduje rozpoczęcie nowej grupy i wyświetlenie nagłówka z tą wartością. To poprawia czytelność i pozwala łatwo analizować dane w podziale na lata. Moim zdaniem warto zapamiętać, że grupowanie po dacie lub roku to jedna z najczęściej stosowanych praktyk raportowych: używa się tego do raportów sprzedaży w latach, statystyk odwiedzin strony WWW, wyników egzaminów itd. W SQL można by to od strony danych poprzedzić np. zapytaniem sortującym: SELECT * FROM konkursy ORDER BY rok, nazwa; a samo faktyczne grupowanie wizualne realizuje już mechanizm raportów. Dobrą praktyką jest też, żeby pole, po którym grupujemy, było najpierw użyte do sortowania – inaczej grupy mogą się „rozsypać” i raport stanie się nieczytelny.

Pytanie 40

Jakim sposobem w języku PHP można zapisać komentarz zajmujący kilka linii?

A. /* */
B. #
C. //
D. <!-- -->
W języku PHP, sposób komentowania bloku komentarza w kilku liniach to użycie znaków /* i */. Taki sposób pozwala na umieszczenie dowolnej ilości tekstu w obrębie tych znaków, co jest niezwykle przydatne, gdy chcemy opisać bardziej złożoną funkcję lub fragment kodu. Na przykład, w czasie tworzenia dokumentacji kodu, często stosujemy bloki komentarzy do szczegółowego opisania działania funkcji, parametrów oraz zwracanych wartości. Dzięki temu każdy programista, który będzie pracował z naszym kodem w przyszłości, może szybko zrozumieć jego przeznaczenie. Dobrą praktyką jest również umieszczanie daty aktualizacji oraz informacji o autorze w takich blokach, co ułatwia zarządzanie projektem. Stosowanie bloków komentarzy jest zgodne z konwencjami programistycznymi, co zwiększa czytelność kodu i jego późniejszą konserwację.