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: 26 maja 2026 21:08
  • Data zakończenia: 26 maja 2026 21:22

Egzamin zdany!

Wynik: 32/40 punktów (80,0%)

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 systemie PHP złożono zapytanie SELECT do bazy przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić liczbę rekordów, które zwróciło to zapytanie?

A. mysqli_num_rows
B. mysqli_connect
C. mysqli_fetch_row
D. mysqli_query
Funkcja mysqli_num_rows jest kluczowa w kontekście pracy z wynikami zapytań SQL w PHP. Umożliwia ona określenie liczby wierszy zwróconych przez kwerendę SELECT, co jest istotne, gdy chcemy dynamicznie dostosować zachowanie aplikacji na podstawie zrealizowanych zapytań. Przykładowo, po wykonaniu zapytania, można użyć mysqli_query do zrealizowania kwerendy, a następnie mysqli_num_rows do sprawdzenia, ile rekordów zostało zwróconych. Dzięki temu, programista może zdecydować, czy kontynuować przetwarzanie danych, czy też wyświetlić użytkownikowi komunikat o braku wyników. Jest to zgodne z dobrymi praktykami, ponieważ pozwala na wydajniejsze zarządzanie danymi oraz poprawia użytkowanie aplikacji. Użycie tej funkcji jest szczególnie ważne w aplikacjach, gdzie interakcja z użytkownikami jest kluczowa, a ich odpowiednie informowanie o statusie operacji bazodanowych może znacząco poprawić doświadczenie użytkownika.

Pytanie 2

W języku JavaScript funkcja getElementById odnosi się do

A. elementu HTML z określoną nazwą klasy
B. klasy zdefiniowanej w CSS
C. elementu HTML z podanym id
D. zmiennej numerycznej
Metoda getElementById w języku JavaScript jest kluczowym narzędziem do manipulacji DOM (Document Object Model), które pozwala deweloperom na łatwe odwoływanie się do konkretnych elementów HTML za pomocą ich atrybutu id. Dzięki temu, możemy dynamicznie zmieniać treść, style lub atrybuty tych elementów, co jest niezwykle przydatne w tworzeniu interaktywnych stron internetowych. Na przykład, jeśli mamy element HTML z atrybutem id='header', możemy użyć `document.getElementById('header')` do uzyskania do niego dostępu. To podejście jest zgodne z zasadami poprawnej struktury HTML, gdzie atrybut id powinien być unikalny w obrębie dokumentu. Rekomendowane jest, aby id było zrozumiałe i jasno określało zawartość elementu, co ułatwia późniejszą nawigację i skrypty, a także poprawia dostępność strony. W praktyce, korzystając z getElementById, możemy na przykład zmieniać tekst nagłówka: `document.getElementById('header').innerText = 'Nowy nagłówek';`.

Pytanie 3

Model, w którym wszystkie dane są zapisane w jednej tabeli, określa się mianem

A. sieciowym
B. jednorodnym
C. relacyjnym
D. hierarchicznym
Modele sieciowe i hierarchiczne są zupełnie inne od modelu jednorodnego, bo wprowadzają więcej złożoności w to, jak dane są trzymane. Na przykład model sieciowy pozwala tworzyć różne powiązania jak w grafie, co daje większą elastyczność, ale już dla prostych aplikacji to może być przesada. Z kolei model hierarchiczny z tą swoją drzewiastą strukturą też potrafi namieszać, bo trudniej wtedy zarządzać informacjami. Żeby dobrze zrozumieć, jak to wszystko działa, trzeba pojąć hierarchię i jak ze sobą te dane grają, co czasami bywa problematyczne, jak relacje się zmieniają. Moim zdaniem, w modelu relacyjnym, gdzie dane są w różnych tabelach połączonych kluczami, zyskujemy więcej elastyczności, ale też zwiększa się złożoność. Dlatego często można się zagubić w tych wszystkich możliwościach, a model jednorodny zazwyczaj jest najlepszy tylko tam, gdzie nic skomplikowanego nie trzeba. Większość systemów bazodanowych korzysta jednak z modelu relacyjnego, bo to zgodne ze standardami SQL, co ułatwia życie na dłuższą metę.

Pytanie 4

$n = '[email protected]'; $dl = strlen($n); $i = 0; while ($i < $dl && $n[$i] != '@') {     echo $n[$i];     $i++; } Fragment kodu w języku PHP wyświetli

A. nazwę konta z znakiem @, czyli 'adres@'
B. wyłącznie nazwę konta, czyli 'adres'
C. cały adres e-mail, czyli '[email protected]'
D. tylko nazwę domeny, czyli 'host.pl'
W przedstawionym kodzie PHP zmienna $n przechowuje adres e-mail '[email protected]'. Funkcja strlen($n) zwraca długość tego ciągu, co w tym przypadku wynosi 14. Pętla while iteruje przez znaki ciągu, aż napotka znak '@' lub do końca ciągu. W każdej iteracji pętli, znak aktualnej pozycji jest wypisywany. Pętla zaczyna od indeksu 0 i sprawdza każdy znak, aż do momentu, gdy napotka znak '@'. W wyniku działania pętli, wypisywane są tylko znaki przed '@', co w tym przypadku oznacza nazwę konta, czyli 'adres'. Aby lepiej zrozumieć to działanie, warto postawić przed sobą praktyczny przykład. Jeśli zmienimy zmienną $n na '[email protected]', kod wypisze 'test', co potwierdza, że pętla działa zgodnie z zamierzeniem, wypisując wyłącznie część przed znakiem '@'. Technicznie, zmienne tablicowe w PHP mogą być indeksowane za pomocą operatora kwadratowego, co jest wykorzystywane w tym przypadku do dostępu do poszczególnych znaków ciągu, co jest typowe w programowaniu z użyciem PHP i stringów. W kontekście standardów, kod przestrzega zasady oddzielania nazwy użytkownika od domeny w adresie e-mail, co jest kluczowe dla jego poprawnego działania.

Pytanie 5

Kod w języku PHP przedstawia się następująco (patrz ramka): Zakładając, że zmienne a, b, c mają wartości numeryczne, wynik warunku będzie skutkował wypisaniem liczby:

if ($a > $b && $a > $c)
    echo $a;
else if ($b > $c)
    echo $b;
else
    echo $c;
A. największej.
B. nieparzystej.
C. najmniejszej.
D. parzystej.
Kod PHP używa instrukcji warunkowych if aby porównać wartości trzech zmiennych a b i c. Pierwsza instrukcja if sprawdza czy a jest większe od b i c. Jeśli tak to echo a wyświetla wartość a jako największą. Jeśli ten warunek nie jest spełniony sprawdzamy czy b jest większe od c za pomocą else if. Jeśli b jest rzeczywiście większe to echo b wyświetla wartość b. W przeciwnym razie instrukcja else zakłada że c jest największe i wyświetla echo c. To podejście jest powszechnie stosowane w programowaniu i opiera się na dobrej praktyce stopniowego eliminowania przypadków poprzez logiczne porównania. Znajomość takich konstrukcji jest kluczowa w codziennej pracy programisty umożliwiając tworzenie efektywnego i czytelnego kodu. Tego rodzaju struktura logiczna należy do podstawowych elementów algorytmiki w programowaniu proceduralnym i obiektowym. Rozumienie jak struktury kontrolne wpływają na przepływ programu jest podstawą efektywnego kodowania oraz rozwiązywania problemów poprzez algorytmy.

Pytanie 6

Funkcja, która wywołuje samą siebie to

A. hermetyzacja
B. rekurencja
C. dziedziczenie
D. iteracja
Rekurencja to technika programistyczna, w której funkcja wywołuje samą siebie w celu rozwiązania problemu. Jest to szczególnie użyteczne w sytuacjach, gdy problem można podzielić na mniejsze, podobne podproblemy. Przykładem rekurencji może być obliczanie silni liczby. Silnia n (n!) jest definiowana jako n * (n-1)!, co oznacza, że obliczenie silni dla n wymaga obliczenia silni dla n-1, aż do osiągnięcia podstawowego przypadku, którym jest 0! = 1. Rekurencja ma zastosowanie w wielu algorytmach, w tym w wyszukiwaniu binarnym, sortowaniu przez scalanie oraz w rozwiązywaniu problemów związanych z drzewami, takich jak przechodzenie przez struktury drzewiaste. Ważne jest, aby prawidłowo zdefiniować warunki zakończenia rekurencji, aby uniknąć nieskończonego wywoływania funkcji, co prowadzi do przekroczenia limitu stosu. Rekurencja jest często stosowana w językach programowania takich jak Python, Java i C++, a jej zrozumienie jest kluczowe dla każdego programisty, który chce efektywnie rozwiązywać złożone problemy.

Pytanie 7

W dokumentacji języka PHP znajduje się informacja dotycząca jednej z jego funkcji:
„Warning. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.”.
Zgodnie z tą informacją użycie tej funkcji jest:

A. niezalecane w wersji PHP 5.5.0 i dostępne od wersji 7.0.0.
B. dostępne w wersjach PHP od 5.5.0 do 7.0.0 (włącznie) i niedostępne w innych wersjach.
C. przestarzałe od wersji PHP 5.5.0 i całkowicie usunięte w wersji 7.0.0.
D. niemożliwe w wersjach PHP 5.5.0 lub starszych i dostępne dopiero od wersji 7.0.0.
Komunikat z dokumentacji PHP „Warning. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.” oznacza dwa różne stany w cyklu życia funkcji/rozszerzenia. „Deprecated” od wersji 5.5.0 znaczy, że funkcja nadal działa, ale jej użycie jest oficjalnie niezalecane. Silnik PHP może generować ostrzeżenia (E_DEPRECATED), a autorzy języka jasno sugerują, żeby migrować kod na nowsze, wspierane rozwiązania. „Removed w PHP 7.0.0” oznacza, że od tej wersji funkcja po prostu nie istnieje – próba jej użycia skończy się błędem typu „undefined function” lub „undefined extension”. Z mojego doświadczenia wynika, że taki status to sygnał alarmowy dla programisty: w nowych projektach nie używamy funkcji oznaczonych jako deprecated, a w istniejących aplikacjach planujemy refaktoryzację, zanim wejdziemy na wyższą wersję PHP. Dobrym przykładem jest stare rozszerzenie mysql_* – od PHP 5.5 było oznaczone jako przestarzałe, a w PHP 7 zostało usunięte i trzeba było przejść na mysqli lub PDO. W praktyce, gdy widzisz w dokumentacji „deprecated od wersji X”, powinieneś: sprawdzić zalecaną alternatywę, włączyć raportowanie błędów i ostrzeżeń na środowisku developerskim, usunąć stopniowo wszystkie wywołania danej funkcji. Branżową dobrą praktyką jest też testowanie aplikacji na docelowej wersji PHP przed aktualizacją produkcji, żeby właśnie takie usunięte funkcje wyłapać automatycznie w logach lub podczas testów jednostkowych. Twoja odpowiedź dokładnie to odczytała: od 5.5 funkcja jest przestarzała (deprecated), a w 7.0 całkowicie znika z języka.

Pytanie 8

W języku HTML, aby stworzyć pole do wprowadzania hasła, w którym wpisywany tekst będzie ukrywany (zastępowany kropkami), należy zastosować znacznik

A. <input type="password" />
B. <form="password" type="password" />
C. <input name="password" />
D. <form input type="password" />
Odpowiedź <input type="password" /> jest poprawna, ponieważ ten znacznik HTML służy do tworzenia pola edycyjnego, w którym wprowadzane dane są maskowane. W przypadku pól do wpisywania haseł, istotne jest, aby użytkownik nie mógł zobaczyć wpisywanego tekstu, co zwiększa poziom bezpieczeństwa. W HTML, atrybut 'type' z wartością 'password' instruuje przeglądarkę, aby ukrywała znaki wprowadzane przez użytkownika, zastępując je zazwyczaj kropkami lub gwiazdkami. Przykładem zastosowania tego typu znacznika może być formularz logowania, gdzie użytkownicy wpisują swoje hasła. Dobrą praktyką jest również zastosowanie odpowiednich etykiet i walidacji, aby zapewnić, że formularz jest użyteczny i zgodny z WCAG (Web Content Accessibility Guidelines). Warto pamiętać, że bezpieczeństwo haseł powinno być również wspierane przez odpowiednie zabezpieczenia po stronie serwera, w tym haszowanie haseł oraz ochrona przed atakami typu brute force.

Pytanie 9

Po uruchomieniu kodu PHP

echo date("Y-m");
na ekranie pojawi się bieżąca data w formacie:
A. dnia i roku
B. roku oraz miesiąca
C. dnia, miesiąca, roku
D. tylko roku
Odpowiedź 'rok i miesiąc' jest prawidłowa, ponieważ funkcja 'date' w PHP formatuje datę na podstawie podanego wzorca. W przypadku użycia wzorca 'Y-m', 'Y' oznacza pełny rok (np. 2023), a 'm' oznacza dwucyfrowy miesiąc (np. 03 dla marca). W wyniku działania 'echo date("Y-m");' na ekranie zostanie wyświetlona aktualna data w formacie YYYY-MM, co jest niezwykle przydatne w wielu aplikacjach, takich jak generowanie raportów miesięcznych, archiwizacja danych czy implementacja systemów zarządzania treścią. Użycie tego wzorca jest zgodne z najlepszymi praktykami programistycznymi, które zalecają właściwe formatowanie daty w celu jej późniejszej analizy lub prezentacji. Ponadto, umiejętność manipulacji datami w PHP jest kluczowa w kontekście tworzenia aplikacji webowych, które często wymagają interakcji z użytkownikami w czasie rzeczywistym, a także integracji z bazami danych, gdzie prawidłowe formatowanie daty ma kluczowe znaczenie dla integralności danych.

Pytanie 10

Wykonanie zapytania SQL: DELETE FROM mieszkania WHERE status=1; spowoduje usunięcie

A. rekordów, gdzie pole status ma wartość 1, z tabeli mieszkania
B. pola o nazwie status w tabeli mieszkania
C. tabeli mieszkania w bazie danych
D. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
Użycie kwerendy SQL: DELETE FROM mieszkania WHERE status=1; jest poprawne, ponieważ polecenie DELETE ma na celu usunięcie rekordów z określonej tabeli, w tym przypadku z tabeli mieszkania. Klauzula WHERE filtruje te rekordy, które mają wartość pola status równą 1. To podejście jest zgodne z zasadami zarządzania danymi, które sugerują, że operacje usuwania powinny być przeprowadzane z użyciem odpowiednich filtrów, aby zminimalizować ryzyko przypadkowego usunięcia niezamierzonych danych. Na przykład, jeśli w tabeli mieszkania mamy 1000 rekordów, a tylko 150 z nich ma status równy 1, to po wykonaniu tej kwerendy usunięte zostaną dokładnie te 150 rekordów, a pozostałe pozostaną nienaruszone. Dobrą praktyką jest również tworzenie kopii zapasowych danych przed wykonaniem operacji usuwania, aby móc je przywrócić w razie potrzeby. Kwerendy DELETE są niezwykle przydatne w zarządzaniu bazami danych, zwłaszcza w sytuacjach, gdzie wymagana jest aktualizacja danych lub usunięcie nieaktualnych informacji.

Pytanie 11

Obiekt bazy danych, którego głównym przeznaczeniem jest drukowanie lub wyświetlanie zestawień danych, to

A. raport.
B. makro.
C. formularz.
D. moduł.
Poprawna odpowiedź to „raport”, bo właśnie ten obiekt bazy danych jest przeznaczony typowo do estetycznego drukowania lub wyświetlania gotowych zestawień danych. W typowych systemach bazodanowych, takich jak Microsoft Access czy różne narzędzia klasy RAD, formularze służą głównie do wprowadzania i edycji danych, kwerendy do ich wyszukiwania i filtrowania, a raporty do prezentacji wyników w uporządkowanej, czytelnej formie. Raport ma własny projekt układu: nagłówki, stopki, grupowanie po polach (np. po kliencie, dacie, dziale), sumy częściowe i końcowe, numerację stron, a często także pola obliczeniowe. To jest dokładnie to, czego potrzebujemy, gdy chcemy przygotować np. wydruk faktur, miesięczne zestawienie sprzedaży, raport obecności pracowników albo raport kasowy do działu księgowości. Z mojego doświadczenia raport traktuje się jako końcowy produkt pracy z danymi – użytkownika końcowego zwykle nie interesują tabele czy relacje, tylko czy dostanie przejrzysty wydruk lub PDF, który można wysłać dalej. Dobre praktyki mówią, żeby w raportach nie upychać logiki biznesowej ani skomplikowanych obliczeń, tylko oprzeć je na dobrze przygotowanych kwerendach. Raport powinien być możliwie prosty, czytelny i stabilny – tak, żeby zmiana sposobu liczenia odbywała się w warstwie zapytań, a nie w każdym raporcie osobno. W narzędziach BI (np. Power BI, Tableau, ale też klasyczne Crystal Reports) idea jest podobna: raport to warstwa prezentacji, która korzysta z danych z bazy, modelu analitycznego albo widoków SQL. W praktyce w firmach raporty są podstawą podejmowania decyzji, więc poprawne zrozumienie ich roli w bazie danych jest naprawdę kluczowe.

Pytanie 12

W HTML formularzu użyto elementu <input>. Pole, które się pojawi, ma pozwalać na wprowadzenie maksymalnie

<input type="password" size="30" maxlength="20">
A. 20 znaków, które będą widoczne w trakcie wprowadzania
B. 20 znaków, które nie będą widoczne w polu tekstowym
C. 30 znaków, które nie będą widoczne w polu tekstowym
D. 30 znaków, które będą widoczne podczas wpisywania
Znacznik <input type="password"> w HTML jest rzeczywiście super ważny. Umożliwia on użytkownikom wpisywanie haseł, a to, co najfajniejsze, to że znaki są ukryte, więc nikt nie zobaczy, co piszesz. Atrybut maxlength="20" jest tutaj pomocny, bo ogranicza liczbę znaków do 20, co jest praktyczne - zbyt długie hasła ciężko zapamiętać, a krótkie mogą być niebezpieczne. Natomiast size="30" to tylko kwestia szerokości pola, więc nie wpływa na ilość znaków, które można wpisać. Generalnie, dobrze jest trzymać się tych ograniczeń, bo to pomaga w projektowaniu formularzy i utrzymywaniu porządku w interfejsie. Z mojej perspektywy, znajomość tych atrybutów jest naprawdę przydatna przy tworzeniu stron, bo można lepiej zrozumieć, jak to wszystko działa.

Pytanie 13

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 2
B. Skrypt 1
C. Skrypt 3
D. Skrypt 4
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 14

Technika projektowania algorytmów, która polega na dzieleniu problemu na dwa lub więcej mniejszych podproblemów, aż do momentu gdy fragmenty staną się na tyle proste, że można je rozwiązać bezpośrednio, to

A. słowa Fibonacciego
B. sito Eratostenesa
C. sortowanie przez wybór
D. dziel i zwyciężaj
Metoda "dziel i zwyciężaj" jest jedną z podstawowych technik projektowania algorytmów, która polega na rozwiązywaniu problemów poprzez dzielenie ich na mniejsze, bardziej zarządzalne podproblemy. Proces ten można opisać w trzech krokach: dzielenie, rozwiązywanie i łączenie wyniku. W praktyce oznacza to, że algorytm najpierw dzieli dany problem na dwa lub więcej podproblemów, następnie rozwiązuje każdy z nich osobno, a na końcu łączy zebrane rozwiązania, aby uzyskać odpowiedź na pierwotny problem. Przykładem może być algorytm sortowania szybkim (Quicksort), który wykorzystuje tę metodę poprzez wybór pivota, podział zbioru na mniejsze części i rekurencyjne sortowanie. Kolejnym przykładem jest algorytm mnożenia dużych liczb, taki jak algorytm Karatsuby. Dziel i zwyciężaj jest również stosowane w zaawansowanych technikach optymalizacji i w algorytmach wyszukiwania, co czyni tę metodę niezwykle uniwersalną i efektywną w wielu dziedzinach informatyki.

Pytanie 15

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. tr { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 16

Który z wymienionych formatów wideo nie jest wspierany przez standard HTML5?

A. C. MP4
B. A. AVI
C. B. Ogg
D. D. WebM
Wybór Ogg, MP4 czy WebM jako odpowiedzi niewłaściwych jest nie do końca trafny, bo wszystkie te formaty są jednak obsługiwane przez HTML5. Ogg, mimo że mniej popularny, jest całkowicie ok w specyfikacji HTML5 i zyskuje na znaczeniu w kontekście otwartych standardów. MP4 to jeden z najpopularniejszych formatów, wspierany przez prawie wszystkie przeglądarki i urządzenia mobilne, więc to świetny wybór do strumieniowania. WebM, stworzony przez Google, również ma swoje miejsce i jest często używany do wideo w sieci. Wiele osób myli się myśląc, że mniej znane formaty są niekompatybilne z HTML5. Często ludzie uważają, że starsze formaty jak AVI są bardziej uniwersalne, ale to nieprawda, bo współczesne przeglądarki mają inne wymagania. Dlatego tak ważne jest, by programiści i twórcy treści znali różnorodność formatów i ich zastosowanie w multimediach w sieci.

Pytanie 17

Aby przeprowadzić walidację kontrolek formularza w momencie, gdy użytkownik wprowadza dane, można wykorzystać zdarzenie

A. onFocusOut
B. onLoad
C. onClick
D. onKeyDown
Odpowiedź 'onKeyDown' jest poprawna, ponieważ jest to zdarzenie, które jest wywoływane, gdy użytkownik naciśnie klawisz podczas interakcji z polem formularza. Użycie tego zdarzenia pozwala na walidację danych w czasie rzeczywistym, co oznacza, że programista może natychmiast reagować na wprowadzone znaki. Dzięki temu można na przykład sprawdzić, czy wprowadzone dane spełniają określone kryteria, takie jak format e-maila, długość hasła czy obecność cyfr. Praktyczne zastosowanie zdarzenia onKeyDown polega na tym, że można wprowadzić logikę walidacji bez konieczności czekania na zakończenie wprowadzania danych. Zamiast tego, możemy w realnym czasie informować użytkowników o ewentualnych błędach, co znacznie poprawia doświadczenia użytkowników. Ponadto, zgodnie z dobrymi praktykami, zaleca się używanie zdarzeń związanych z klawiaturą, takich jak onKeyDown czy onInput, które są bardziej odpowiednie dla dynamicznych interakcji niż na przykład onBlur, które może być mniej responsywne. Warto również zauważyć, że onKeyDown działa przed onKeyUp, co umożliwia szybsze reagowanie na wprowadzane dane, co jest kluczowe w kontekście walidacji w czasie rzeczywistym.

Pytanie 18

W CSS, aby stylizować tekst przez dodanie podkreślenia dolnego lub górnego, należy użyć atrybutu

A. text-decoration
B. text-transform
C. text-indent
D. text-align
Atrybut text-decoration w CSS jest używany do stylizacji tekstu poprzez dodanie efektów, takich jak podkreślenie, przekreślenie czy nadkreślenie. Jest to istotny element stylizacji, który pozwala na wyróżnienie fragmentów tekstu oraz dostosowanie ich wyglądu zgodnie z wymaganiami projektowymi. W przypadku podkreślenia dolnego tekstu, można zastosować zapis 'text-decoration: underline;', co spowoduje, że tekst będzie wyraźnie podkreślony. Warto zaznaczyć, że atrybut ten jest zgodny z standardami CSS, w tym CSS2 oraz CSS3, co zapewnia jego szeroką kompatybilność z różnymi przeglądarkami. Przykładowo, jeśli mamy element <p>, możemy dodać stylizację w sekcji CSS jak poniżej: p { text-decoration: underline; }. Dodatkowo, text-decoration przyjmuje różne wartości, takie jak 'none' (brak dekoracji), 'underline' (podkreślenie), 'overline' (nadkreślenie) oraz 'line-through' (przekreślenie), co daje programistom dużą elastyczność w projektowaniu interfejsu użytkownika. Użycie text-decoration jest nie tylko zgodne z najlepszymi praktykami w tworzeniu stron internetowych, ale również ułatwia dostępność treści dla użytkowników z ograniczeniami wzrokowymi, ponieważ wyróżnianie ważnych informacji może pomóc w ich lepszym zrozumieniu i odnalezieniu w treści.

Pytanie 19

Aby właściwie przystosować stronę internetową dla osób niewidomych, należy przypisać wyświetlanym za pomocą znacznika img obrazom atrybut

A. text
B. style
C. src
D. alt
Atrybut 'alt' w znaczniku <img> to naprawdę ważny element, jeśli chodzi o dostępność stron internetowych dla osób niewidomych. Głównie chodzi o to, żeby zapewnić opis obrazka, który mogą zrozumieć technologie asystujące, tak jak czytniki ekranu. Dzięki temu, osoby niewidome mają możliwość dowiedzieć się, co znajduje się na zdjęciu. Na przykład, jeśli mamy zdjęcie czerwonego swetra w sklepie internetowym, to warto wpisać coś takiego jak 'Czerwony sweter z wełny' w tym atrybucie. To też pomaga w SEO, bo wyszukiwarki lubią takie opisy. W skrócie, dobrze jest stosować atrybut 'alt' przy każdym obrazie, by każdy użytkownik mógł zrozumieć treść strony.

Pytanie 20

W języku SQL, dla dowolnych zbiorów danych w tabeli Uczniowie, aby uzyskać rekordy zawierające tylko uczennice o imieniu "Aleksandra", które urodziły się po roku "1998", należy sformułować zapytanie

A. SELECT * FROM Uczniowie WHERE imie="Aleksandra" OR rok_urodzenia > "1998"
B. SELECT * FROM Uczniowie WHERE imie ="Aleksandra" OR rok_urodzenia < "1998"
C. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia < "1998"
D. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998"
Zapytanie SQL 'SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998";' jest całkiem w porządku. Dobrze wyciąga dane o uczennicach nazywających się Aleksandra, które przyszły na świat po 1998 roku. W tym zapytaniu używasz operatora AND, co oznacza, że obydwa warunki muszą być spełnione, żeby coś się pokazało. Fajnie jest korzystać z operatora AND w SQL, gdy potrzebujesz ograniczyć wyniki do takich, które pasują do więcej niż jednego kryterium. Cała ta logika pozwala na lepsze filtrowanie danych, co jest mega ważne, zwłaszcza w edukacji, gdzie chcemy uzyskać konkretne informacje o uczniach. Pamiętaj też, że używanie cudzysłowów do oznaczania tekstu jest kluczowe, bo wtedy system wie, że to jest tekst, a nie coś innego. A jak chcesz, żeby daty były bardziej precyzyjne, to można też wykorzystać różne funkcje datowe, żeby uzyskać jeszcze lepsze wyniki.

Pytanie 21

W obiektowym programowaniu w języku JavaScript zapis: this.zawod w podanym kodzie oznacza

function Uczen(){
  this.imie = '';
  this.nazwisko = '';
  this.technik = 'informatyk';
  this.zawod = function() {
    return this.technik;
  };
}
A. klasę
B. konstruktor
C. właściwość
D. metodę
Podejście, że this.zawod oznacza właściwość jest błędne, ponieważ w programowaniu obiektowym właściwością określamy element obiektu, który przechowuje dane. W przedstawionym kodzie this.zawod jest przypisany do funkcji, która jest metodą umożliwiającą wykonywanie operacji, a nie przechowywanie danych. Klasa w JavaScript, choć wprowadza nowe podejście do definiowania obiektów, jest konceptem wyższego poziomu i nie jest bezpośrednio związana z definicją metod za pomocą funkcji. W analizowanym kodzie użyto funkcji konstrukcyjnej, a nie klasy zdefiniowanej za pomocą słowa kluczowego class. Konstruktor w kontekście programowania obiektowego odnosi się do specjalnej funkcji, która inicjalizuje nowo utworzone obiekty, definiując ich właściwości i metody. W powyższym przykładzie funkcja Uczen pełni rolę konstruktora, lecz sam zapis this.zawod nie jest konstruktorem, gdyż nie służy do tworzenia instancji obiektów, lecz do definiowania ich zachowania. Rozróżnienie między metodą, właściwością, klasą i konstruktorem jest kluczowe dla zrozumienia struktury i działania obiektów w JavaScript. Typowe błędy myślowe wynikają z nieodróżniania tych pojęć i nieznajomości kontekstu, w jakim słowo this jest używane, które w JavaScript może odnosić się do różnych obiektów w zależności od miejsca wywołania i sposobu, w jaki funkcja została zdefiniowana lub wywołana. Zrozumienie tych pojęć jest fundamentalne dla efektywnego programowania obiektowego w JavaScript, co pozwala unikać błędów i pisać bardziej przejrzysty i efektywny kod

Pytanie 22

Jaki jest cel zapisu w języku JavaScript?

var napis1 = new napisy();
A. założenie nowej klasy napis1
B. wykonanie metody obiektu napisy
C. stworzenie obiektu napis1 z klasy napisy
D. zainicjowanie zmiennej napis1 oraz wywołanie funkcji, której argumentem jest napis1
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia procesu tworzenia obiektów w JavaScript. Propozycja zadeklarowania zmiennej i wywołania funkcji z argumentem napis1 nie odpowiada rzeczywistej funkcjonalności przedstawionego kodu. Zadeklarowanie zmiennej w JavaScript jest kluczowym krokiem, ale bez poprawnego użycia słowa kluczowego new oraz odpowiednio zdefiniowanej funkcji lub klasy nie można stworzyć instancji obiektu. Natomiast wywołanie funkcji z argumentem napis1 sugeruje, że mamy do czynienia z operacją na już istniejącym obiekcie, co nie ma miejsca w kontekście inicjalizacji obiektu. Próba wywołania metody obiektu napisy nie jest poprawna, ponieważ najpierw trzeba utworzyć instancję obiektu, a dopiero potem można wywoływać jego metody. Bez tego kroku każda próba pracy z metodami zakończy się błędem. Wreszcie, stworzenie nowej klasy napis1 byłoby sprzeczne z pokazanym kodem, ponieważ żaden element składni nie sugeruje deklaracji klasy. W języku JavaScript klasy są definiowane z użyciem słowa kluczowego class, które w analizowanym kodzie nie występuje. Zrozumienie procesu tworzenia obiektów oraz wykorzystania klas i konstruktorów w JavaScript jest fundamentalne, aby efektywnie pisać oraz zarządzać kodem w tym języku. Poprawne rozpoznanie i stosowanie tych mechanizmów pozwala na tworzenie bardziej złożonych i elastycznych aplikacji.

Pytanie 23

Wskaż fragment kodu CSS, który odpowiada układowi bloków 2 - 5, zakładając, że są one oparte na poniższym kodzie HTML.

Ilustracja do pytania
A. A
B. B
C. D
D. C
Odpowiedź B jest poprawna, ponieważ skutecznie rozmieszcza bloki 2 5 w zgodzie z przedstawionym układem HTML. Użycie właściwości float pozwala na precyzyjne kontrolowanie położenia elementów w układzie blokowym. W tym przypadku float left dla bloków #drugi i #trzeci oraz float right dla #czwarty sprawiają że bloki są odpowiednio rozstawione. Dodatkowo #piaty z float left zapewnia jego poprawne umiejscowienie poniżej bloku #trzeci. To rozwiązanie jest zgodne z dobrymi praktykami w projektowaniu responsywnych layoutów gdzie float jest używane do budowania elastycznych struktur. Ważne jest także odpowiednie zarządzanie szerokościami elementów aby nie przekraczały 100% szerokości kontenera a także uwzględnienie zastosowania clearfix aby uniknąć problemów z przepływem elementów. Poprawne zrozumienie float oraz szerokości w CSS jest kluczowe w tworzeniu zgodnych z standardami projektów internetowych co pozwala na lepszą skalowalność i utrzymanie strony w przyszłości.

Pytanie 24

Aby tworzyć strony internetowe w sposób graficzny, należy skorzystać z

A. edytora CSS
B. przeglądarki internetowej
C. programu typu WYSIWYG
D. programu MS Office Picture Manager
Programy typu WYSIWYG (What You See Is What You Get) są narzędziami umożliwiającymi tworzenie stron internetowych w sposób wizualny, co znacznie ułatwia proces projektowania. Użytkownik może edytować strony bez konieczności znajomości języków programowania, takich jak HTML czy CSS, ponieważ te programy generują kod automatycznie na podstawie działań użytkownika. Przykładami takich aplikacji są Adobe Dreamweaver, Wix czy WordPress, które pozwalają na łatwe dodawanie treści, stylów i multimediów. Dzięki zastosowaniu programów WYSIWYG, projektanci mogą skupić się na estetyce i funkcjonalności stron, co jest zgodne z dobrymi praktykami branżowymi, które promują użyteczność i dostępność. Warto również zauważyć, że wiele z tych narzędzi oferuje szereg szablonów i komponentów, które przyspieszają proces tworzenia i zapewniają zgodność z aktualnymi standardami webowymi (np. W3C).

Pytanie 25

Hermetyzacja to zasada programowania obiektowego mówiąca o tym, że

A. pola i metody wykorzystywane tylko przez daną klasę są ograniczane zasięgiem private lub protected.
B. klasy mogą mieć zdefiniowane metody wirtualne, które są implementowane w pochodnych klasach.
C. klasy mogą współdzielić ze sobą funkcjonalność.
D. typy pól w klasach/obiektach mogą być dynamicznie zmieniane w zależności od danych im przypisywanych.
Poprawnie – hermetyzacja (encapsulation) w programowaniu obiektowym polega właśnie na ukrywaniu szczegółów implementacji klasy i ograniczaniu dostępu do pól oraz metod, które nie powinny być widoczne na zewnątrz. W praktyce oznacza to stosowanie modyfikatorów dostępu takich jak private i protected do elementów, które są wykorzystywane tylko wewnątrz danej klasy lub hierarchii dziedziczenia. Kod zewnętrzny widzi wtedy tylko to, co jest wystawione jako public, czyli oficjalny interfejs klasy. Z mojego doświadczenia to jest jedna z kluczowych rzeczy, która odróżnia „klepanie kodu” od pisania rozsądnie zaprojektowanego oprogramowania. Dzięki hermetyzacji można bezpiecznie zmieniać wnętrze klasy (np. sposób przechowywania danych, algorytmy) bez psucia kodu, który z tej klasy korzysta. Przykład: w klasie KontoBankowe pola takie jak saldo, numer konta czy historia operacji powinny być private, a dostęp do nich powinien odbywać się przez metody typu wplac(), wyplac(), pobierzSaldo(). Użytkownik klasy nie ma prawa bezpośrednio ustawiać salda, bo mógłby ominąć logikę biznesową, np. sprawdzanie limitu czy blokady konta. W językach takich jak Java, C++, C#, ale też w nowoczesnym TypeScript czy w podejściu obiektowym w PHP i JavaScript, dobre praktyki mówią jasno: pola klasy domyślnie robimy prywatne, a udostępniamy tylko to, co naprawdę musi być publiczne. Moim zdaniem to jedna z najważniejszych zasad SOLID (dokładniej – silnie się z nimi łączy), bo wymusza tworzenie małych, spójnych i bezpiecznych interfejsów. W większych projektach webowych, np. w aplikacjach backendowych w PHP lub JS/TS, brak hermetyzacji szybko kończy się „makaronem zależności”, gdzie jedna zmiana w polu klasy rozwala pół systemu. Dlatego branżowo uznaje się hermetyzację za absolutny standard projektowania obiektowego, a łamanie jej za klasyczny „code smell”.

Pytanie 26

Wskaż poprawne stwierdzenie dotyczące przedstawionego kodu HTML.
<video width="640" height="480" controls>
<source src="animacja.mp4" type="video/mp4">
</video>

A. Lokalizacja pliku jest nieprawidłowa, brak w niej ścieżki bezwzględnej.
B. Plik animacja.mp4 powinien mieć rozdzielczość 640x480 pikseli, aby był odtwarzany.
C. Użytkownik nie będzie miał możliwości kontrolowania odtwarzania wideo.
D. Kod może nie działać w przeglądarkach, które nie obsługują HTML5.
Pierwsze stwierdzenie sugeruje, że plik animacja.mp4 musi mieć dokładnie rozdzielczość 640x480 pikseli, co jest nieprawdziwe. Format &lt;video&gt; w HTML umożliwia odtwarzanie filmów w różnych rozdzielczościach, a przeglądarka automatycznie dostosuje odtwarzanie w zależności od dostępnych zasobów i jakości pliku wideo. Drugie stwierdzenie, że użytkownik nie będzie miał możliwości sterowania odtwarzaniem, jest sprzeczne z definicją atrybutu 'controls', który dodaje elementy sterujące do odtwarzacza, takie jak play, pause i seek. Trzecie stwierdzenie odnosi się do lokalizacji pliku, podczas gdy w rzeczywistości plik animacja.mp4 może być lokalizowany w różnych folderach, a nie tylko w ścisłej ścieżce bezwzględnej. HTML5 wprowadza wiele standardów i uproszczeń, a deweloperzy są zobowiązani do przestrzegania tych standardów, aby zapewnić, że ich treści będą dostępne na różnych platformach. Typowe błędy myślowe prowadzące do takich wniosków obejmują nieznajomość zasad działania znaczników HTML oraz niepełne zrozumienie mechanizmów, jakie przeglądarki stosują w kontekście odtwarzania multimediów.

Pytanie 27

W JavaScript metoda Math.random() ma na celu

A. zwrócić liczbę pseudolosową
B. porównać dwie sekwencje znaków
C. zaokrąglić liczbę do najbliższej większej liczby całkowitej
D. zwrócić liczbę po zaokrągleniu
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 28

Która z metod komentowania kodu nie jest używana w PHP?

A. <!-- komentarz -->
B. /* komentarz */
C. # komentarz
D. // komentarz
Odpowiedź <!-- komentarz --> jest prawidłowa, ponieważ w PHP nie używa się tego rodzaju komentarzy w kodzie źródłowym. W PHP komentarze są oznaczane przy pomocy dwóch głównych metod: // dla komentarzy jednoliniowych oraz /* ... */ dla komentarzy wieloliniowych. Komentarze są niezwykle istotnym elementem programowania, ponieważ pozwalają na dokumentację kodu, co ułatwia jego zrozumienie i konserwację. Chociaż <!-- ... --> jest składnią używaną w HTML do komentowania, w kontekście PHP nie jest ona rozpoznawana i nie będzie miała wpływu na kod. Używanie odpowiednich typów komentarzy w PHP jest zgodne z najlepszymi praktykami, ponieważ zapewnia czytelność kodu i ułatwia współpracę w zespole deweloperskim. Ważne jest również, aby unikać niepoprawnych praktyk, które mogą prowadzić do błędów w interpretacji kodu, szczególnie w projektach, gdzie HTML i PHP są łączone.

Pytanie 29

Określ rodzaj relacji między tabelami: Tabela1 oraz Tabela3?

Ilustracja do pytania
A. Wiele do jednego
B. Jeden do wielu
C. Wiele do wielu
D. Jeden do jednego
Relacja wiele do wielu pomiędzy tabelami w bazie danych oznacza, że jeden rekord w pierwszej tabeli może być powiązany z wieloma rekordami w drugiej tabeli i odwrotnie. To jest powszechne w sytuacjach, gdzie istnieje potrzeba przechowywania złożonych asocjacji danych. W przedstawionym schemacie, Tabela1 reprezentuje uczniów, a Tabela3 nauczycieli. Ponieważ jeden uczeń może być uczony przez wielu nauczycieli, a jeden nauczyciel może uczyć wielu uczniów, Tabela2 stanowi tabelę pośrednią, często zwaną tabelą asocjacyjną, która przechowuje klucze obce z obu tabel, tworząc relację wiele do wielu. Tego typu struktura jest kluczowa, gdy chcemy modelować bardziej złożone związki danych i zapewnić łatwy dostęp do nich, co jest standardową praktyką w relacyjnych bazach danych. Użycie tabel asocjacyjnych pozwala na efektywne zarządzanie danymi i jest zgodne z normą normalizacji bazy danych, eliminując redundancję i zapewniając integralność danych. W kontekście praktycznym, takie podejście umożliwia elastyczne zapytania i analizy, co jest fundamentalne w zarządzaniu danymi w dużych systemach informacyjnych.

Pytanie 30

Aby włączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, należy zastosować poniższy fragment kodu HTML?

A. <optionvalue="styl.css" type="text/css" />
B. <div id="styl.css" relation="css" />
C. <meta charset="styl.css" />
D. <link rel="stylesheet" type="text/css" href="styl.css" />
Odpowiedź <link rel="stylesheet" type="text/css" href="styl.css" /> jest poprawna, ponieważ jest to standardowy sposób dołączania zewnętrznych arkuszy stylów w HTML. Element <link> jest używany do powiązania dokumentu HTML z zewnętrznym źródłem CSS. Atrybut 'rel' informuje przeglądarkę, że jest to arkusz stylów, natomiast atrybut 'href' wskazuje ścieżkę do pliku CSS. Dzięki temu przeglądarka może załadować stylizacje z pliku, co pozwala na oddzielenie treści od stylu, co jest zgodne z zasadą separacji, kluczową w projektowaniu stron internetowych. Na przykład, dodając ten fragment kodu w sekcji <head> dokumentu HTML, możemy łatwo zarządzać wyglądem wielu stron, zmieniając tylko jeden plik CSS. To podejście zwiększa wydajność i ułatwia konserwację strony, co jest szczególnie ważne w większych projektach. W praktyce, aby załadować różne style dla różnych urządzeń, możemy użyć atrybutu 'media', co pozwoli na bardziej elastyczne podejście do zarządzania stylami.

Pytanie 31

W kodzie źródłowym zapisanym w języku HTML wskaż błąd walidacji dotyczący tego fragmentu. <h6>CSS</h6>
<p>Kaskadowe arkusze stylów <b>ang.<i>Cascading Style Sheets</b></i>)<br>to język służący...</p>

A. Znak br nie może być użyty wewnątrz znacznika p.
B. Znacznik h6 jest nieznany.
C. Znak zamykający /b jest niezgodny z zasadą zagnieżdżania.
D. Znak br nie został prawidłowo zamknięty.
W analizowanym fragmencie kodu HTML występuje błąd związany z niewłaściwym zagnieżdżeniem znaczników. W szczególności, znacznik zamykający </b> został umieszczony przed zamknięciem znacznika <i>, co narusza zasady zagnieżdżania elementów w HTML. Zgodnie z wytycznymi W3C (World Wide Web Consortium), każdy znacznik otwierający musi mieć odpowiedni znacznik zamykający w odpowiedniej kolejności, a zagnieżdżanie elementów musi być przestrzegane, aby zapewnić poprawną strukturę dokumentu. W tym przypadku poprawna sekwencja powinna wyglądać następująco: <i>...</i><b>...</b>, co oznacza, że znacznik <i> powinien być zamknięty po znaczniku <b>. Przykładowo, prawidłowy zapis mógłby wyglądać tak: <p>Kaskadowe arkusze stylów <b>ang.<i>Cascading Style Sheets</i></b> to język służący...</p>. Taka struktura zapewnia, że znaczniki są poprawnie zagnieżdżone, co przekłada się na lepszą interpretację przez przeglądarki oraz narzędzia do walidacji HTML.

Pytanie 32

W języku C, aby zdefiniować stałą, należy zastosować

A. static
B. #const
C. const
D. #INCLUDE
Wybór innych odpowiedzi wskazuje na pewne nieporozumienia dotyczące podstaw języka C. Użycie słowa kluczowego 'static' nie jest związane z deklarowaniem stałych, lecz określa zasięg oraz czas życia zmiennych. Zmienna zadeklarowana jako 'static' zachowuje swoją wartość pomiędzy wywołaniami funkcji, co jest zupełnie inną koncepcją niż ochrona wartości przed modyfikacją. Z kolei '#const' to niepoprawna składnia, ponieważ w języku C nie istnieje taki preprocesor. Preprocesory, takie jak '#define', są używane do definiowania makr, ale nie do deklarowania stałych. Przykładowo, '#define PI 3.14' tworzy makro, które jest zastępowane w kodzie, ale nie zapewnia typowania zmiennych, co może prowadzić do trudnych do zdiagnozowania błędów. Ostatnia odpowiedź, '#INCLUDE', odnosi się do preprocesora, który jest używany do włączania plików nagłówkowych, a nie do definiowania stałych. Często mylone jest podejście do użycia preprocesorów z możliwością deklarowania stałych, co może prowadzić do nieefektywnego zarządzania kodem i trudności w jego zrozumieniu. Kluczowe jest rozróżnienie tych koncepcji, aby uniknąć typowych błędów myślowych i zapewnić, że kod będzie zarówno funkcjonalny, jak i łatwy do utrzymania.

Pytanie 33

W kodzie HTML stworzono formularz, który wysyła informacje do pliku formularz.php. Po naciśnięciu przycisku typu submit, przeglądarka zostaje przekierowana na wskazany adres. Na podstawie podanego adresu /formularz.php?imie=Anna&nazwisko=Kowalska można stwierdzić, że dane do pliku formularz.php zostały wysłane za pomocą metody:

A. SESSION
B. GET
C. POST
D. COOKIE
Niepoprawne odpowiedzi sugerują użycie metod POST, SESSION i COOKIE do przesyłania danych do pliku formularz.php. Metoda POST, podobnie jak GET, jest podstawową metodą przesyłania danych w protokole HTTP, jednak różni się od GET tym, że dane są przesyłane w ciele żądania, a nie w adresie URL. Dlatego, jeżeli widzimy dane w adresie URL, to nie mogą one pochodzić z metody POST. Z kolei metody SESSION i COOKIE nie są w ogóle metodami przesyłania danych. SESSION to mechanizm, który pozwala na przechowywanie danych między różnymi żądaniami w sesji użytkownika, a COOKIE to małe pliki tekstowe przechowywane na komputerze użytkownika, które mogą być używane do przechowywania danych między żądaniami. Żadna z tych metod nie przesyła jednak danych poprzez adres URL, co jest kluczowe dla odpowiedzi na to pytanie. Błędne odpowiedzi mogą wynikać z niezrozumienia różnic między tymi metodami i jak są one używane do przesyłania danych w aplikacjach internetowych.

Pytanie 34

Jakie języki programowania funkcjonują po stronie serwera?

A. Java, C#, AJAX, Ruby, PHP
B. C#, Python, Ruby, PHP, JavaScript
C. Java, C#, Python, Ruby, PHP
D. Java, C#, Python, ActionScrip, PHP
Języki programowania działające po stronie serwera odgrywają kluczową rolę w tworzeniu dynamicznych aplikacji internetowych, przetwarzaniu danych oraz zarządzaniu bazami danych. Java, C#, Python, Ruby i PHP to popularne języki, które są powszechnie wykorzystywane w backendzie. Java jest znana z jej przenośności i możliwości skalowania, co czyni ją idealnym wyborem dla dużych aplikacji internetowych oraz systemów korporacyjnych. C# z kolei, używany głównie w ekosystemie Microsoftu, jest silnie typowanym językiem, który pozwala na rozwijanie aplikacji w środowisku ASP.NET. Python zyskuje na popularności dzięki swojej prostocie i wszechstronności, a także dzięki frameworkom takim jak Django i Flask, które przyspieszają rozwój aplikacji. Ruby, zwłaszcza w kontekście frameworka Ruby on Rails, oferuje szybkie prototypowanie i tworzenie aplikacji webowych. PHP, mimo że jest starszym językiem, wciąż jest powszechnie używany w tworzeniu stron internetowych, w tym w systemach zarządzania treścią, takich jak WordPress. Te języki spełniają różne standardy branżowe i są dostosowane do różnych potrzeb projektów, co czyni je fundamentami współczesnego rozwoju oprogramowania.

Pytanie 35

Na zaprezentowanej tabeli dotyczącej samochodów wykonano zapytanie SQL SELECT ```SELECT model FROM samochody WHERE rocznik=2016;``` Jakie wartości zostaną zwrócone w wyniku tego zapytania?

Ilustracja do pytania
A. Punto, Corsa, Astra, Corolla, Yaris
B. Punto, Corsa, Corolla
C. Czerwony, grafitowy
D. Fiat, Opel, Toyota
Zapytanie SQL, które podałeś, czyli SELECT model FROM samochody WHERE rocznik=2016, jest zaprojektowane tak, żeby wyciągnąć z tabeli samochody wszystkie modele aut z rocznika 2016. To ogranicza wynik tylko do tych modeli, które spełniają ten właśnie warunek. Patrząc na dostarczoną tabelę, widzimy, że modele z rocznika 2016 to Punto, Corsa i Corolla. Więc z tego zapytania otrzymamy tylko te trzy modele. W realnym świecie, zapytania SQL są mega przydatne przy filtrowaniu danych w bazach. Zrozumienie, jak pisać zapytania SELECT, jest naprawdę ważne, zwłaszcza dla analityków i administratorów. Dobrze jest znać zasady budowania zapytań, żeby były one jasne i precyzyjne, bo to pozwala lepiej zarządzać i analizować dane. Ta wiedza to podstawa w analizie danych, gdzie umiejętność wyciągania odpowiednich informacji jest kluczowa do podejmowania dobrych decyzji biznesowych.

Pytanie 36

W systemie MySQL trzeba użyć polecenia REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian jedynie w definicji struktury bazy danych. Odpowiednia komenda do odebrania tych uprawnień ma postać

A. REVOKE ALL ON tabela1 FROM 'anna'@'locaihost'
B. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
Polecenie REVOKE w MySQL jest używane do odbierania przydzielonych wcześniej uprawnień użytkownikom. W kontekście pytania, właściwa odpowiedź to 'REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost''. To polecenie wskazuje na odebranie użytkownikowi 'anna' możliwości tworzenia nowych obiektów w bazie danych (CREATE), zmiany struktury istniejących obiektów (ALTER) oraz usuwania obiektów (DROP) w tabeli 'tabela1'. Odbieranie tych praw jest kluczowe w zarządzaniu bezpieczeństwem bazy danych, ponieważ pozwala na precyzyjne kontrolowanie, kto ma dostęp do modyfikacji struktury bazy danych. W praktyce, administratorzy baz danych często muszą ograniczać uprawnienia użytkowników, aby zapobiec nieautoryzowanym zmianom, które mogą wpłynąć na integralność danych. Dobrą praktyką jest regularne przeglądanie i aktualizowanie uprawnień użytkowników, aby dostosować je do zmieniających się potrzeb organizacji oraz zwiększyć poziom bezpieczeństwa systemu.

Pytanie 37

Jakie wyniki zostaną wyświetlone po wykonaniu podanej w ramce kwerendy SQL SELECT na tabeli pracownicy, która zawiera rekordy?

idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
A. Kwota 19500, czyli suma wszystkich pensji zatrudnionych
B. Dwie kwoty: 4600 oraz 5400, jako wynagrodzenia pracowników przekraczające 4000
C. Kwota 5400, co oznacza najwyższą pensję wśród pracowników
D. Kwota 10000, co stanowi sumę pensji pracowników o id=4 i id=6
Błędne zrozumienie zapytania SQL może wynikać z pominięcia szczegółów w klauzuli WHERE. Funkcja SUM w połączeniu z WHERE służy do zliczania tylko tych wartości, które spełniają określony warunek. W tym przypadku analizujemy pensje większe niż 4000. Mylną interpretacją byłoby bezkrytyczne założenie, że funkcja SUM zlicza wszystkie wartości w kolumnie, co prowadzi do niepoprawnego wniosku o sumie wszystkich pensji. Innym typowym błędem jest zakładanie, że zwracane zostaną konkretne wartości pensji, co wskazuje na brak zrozumienia działania funkcji agregujących, które zwracają jedną wartość wynikową, jak suma czy średnia. Powszechnym błędem jest ignorowanie zastosowania klauzuli WHERE, co prowadzi do błędnych interpretacji danych. Wiedza o tym, jak filtrować dane przed ich agregacją, jest kluczowa w skutecznej analizie danych. Zrozumienie roli klauzuli WHERE oraz funkcji agregujących, jak SUM, MAX, MIN, pozwala na tworzenie bardziej precyzyjnych i efektywnych raportów, co jest niezbędne w praktykach biznesowych i IT. Prawidłowe rozumienie tych konceptów jest nieodzowne w pracy z dużymi zbiorami danych i przy podejmowaniu decyzji opartych na danych.

Pytanie 38

GRANT CREATE, ALTER ON sklep.* TO adam; Zakładając, że użytkownik adam nie dysponował wcześniej żadnymi uprawnieniami, to polecenie SQL przyzna mu prawa jedynie do

A. wstawiania oraz modyfikacji danych we wszystkich tabelach bazy sklep
B. tworzenia oraz modyfikacji struktury w tabeli sklep
C. tworzenia oraz modyfikacji struktury wszystkich tabel w bazie sklep
D. wstawiania oraz modyfikacji danych w tabeli sklep
Polecenie SQL 'GRANT CREATE, ALTER ON sklep.* TO adam;' przyznaje użytkownikowi adam prawa do tworzenia i modyfikowania struktury wszystkich tabel w bazie danych o nazwie 'sklep'. W kontekście zarządzania bazami danych, przyznawanie takich uprawnień jest kluczowe dla realizacji zadań związanych z projektowaniem i rozbudową bazy. Przykładowo, gdyby adam potrzebował dodać nową kolumnę do istniejącej tabeli lub utworzyć nową tabelę, mógłby to zrobić dzięki tym prawom. Z perspektywy bezpieczeństwa, nadawanie takich uprawnień powinna być starannie przemyślane, aby uniknąć nieautoryzowanych zmian w strukturze bazy. W praktyce, w sytuacjach, gdy wiele osób współpracuje nad projektem, zaleca się przyznawanie minimalnych uprawnień, które są niezbędne do wykonania określonych zadań. W związku z tym, wykorzystanie polecenia GRANT w sposób odpowiadający wymaganiom projektu jest najlepszą praktyką w zakresie administracji bazami danych.

Pytanie 39

Narzędzie używane do organizowania i przedstawiania danych z wielu wpisów w celu ich wydruku lub dystrybucji to

A. raport
B. formularz
C. makropolecenie
D. kwerenda
Raport to taki pomocny zestaw danych, który pozwala na analizę i prezentację informacji z różnych źródeł. Jak myślisz, to naprawdę kluczowe narzędzie, jeśli chodzi o zarządzanie danymi i bazami danych. Dzięki raportom możemy fajnie zobaczyć wyniki sprzedaży czy inne dane, które z różnych miejsc się zbiera. To ułatwia podejmowanie decyzji, bo wszystko jest w jednym dokumencie. Na przykład, kiedy porównujemy wyniki z różnych okresów, to od razu widzimy, co działa, a co nie. Systemy takie jak Microsoft SQL Server Reporting Services czy IBM Cognos pomagają w tworzeniu tych raportów, a nawet pozwalają na ich ładne formatowanie. Super sprawa, bo można je dopasować do własnych potrzeb, co z kolei czyni je bardziej użytecznymi. W branży IT, raportowanie jest podstawą zarządzania usługami, a także w analizach SWOT. Przemyślane podsumowanie danych naprawdę pomaga w ocenie sytuacji firmy.

Pytanie 40

Ile razy zostanie wykonana pętla przedstawiona w języku PHP, zakładając, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?
for($i = 0; $i <= 10; $i++) { ...... }

A. 0 razy
B. 10 razy
C. Nieskończoność
D. 11 razy
Pętla for w języku PHP, jak w przedstawionym przykładzie, ma na celu wykonanie bloku kodu wielokrotnie, w zależności od stanu zmiennej sterującej. W tym przypadku, początkowa wartość zmiennej $i wynosi 0, a warunek kontynuacji pętli to $i <= 10. Oznacza to, że pętla będzie kontynuować swoje działanie, dopóki zmienna $i będzie mniejsza lub równa 10. W każdym przebiegu pętli wartość $i jest inkrementowana o 1 za pomocą operatora ++, co oznacza, że przy każdym przejściu przez pętlę $i przyjmuje wartości 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 i 10. Ostatecznie, pętla wykonuje się, gdy $i osiąga wartość 10, a następnie po wykonaniu bloku kodu następuje inkrementacja, co sprawia, że $i staje się 11, co narusza warunek $i <= 10. Zatem pętla wykonuje się 11 razy, co czyni odpowiedź 11 poprawną. Przykładem zastosowania takiej pętli może być iteracja po elementach tablicy lub generowanie sekwencji liczb. Zgodnie z najlepszymi praktykami programistycznymi, ważne jest, aby zawsze kontrolować zmienne sterujące w pętli, aby uniknąć sytuacji takich jak nieskończone pętle, co jest szczególnie istotne w kontekście wydajności aplikacji.