Przejdź do głównej treści
  1. Strona główna
  2. Wyniki egzaminu

Wyniki egzaminu

Nowy egzamin

Informacje o egzaminie

  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Rozpoczęcie: 7 czerwca 2026 23:29
  • Zakończenie: 7 czerwca 2026 23:39

Egzamin zdany!

Wynik: 37/40 punktów (92,5%)

Wymagane minimum: 20 punktów (50%)

Twój wynik na tle innych

Twój wynik jest lepszy niż 93% podejść do kwalifikacji INF.03.

Porównanie z 39483 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).

Poprzednio 100,0%, teraz 92,5% (-7,5 p.p.).

Zachowaj ten wynik na koncie

Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.

Pochwal się swoim wynikiem!

Szczegółowe wyniki

Pytanie 1

Które z wymienionych NIE jest wykonywane po stronie serwera?

A. ASP
B. CSS
C. PHP
D. Perl
CSS działa po stronie KLIENTA - to przeglądarka interpretuje arkusz stylów i renderuje wygląd u użytkownika. Nie jest przetwarzany na serwerze. Dlatego po stronie serwera nie wykonuje się CSS.

Pytanie 2

Aby zapisać prostą animację na potrzeby strony internetowej, można skorzystać z formatu:

A. GIF
B. JPG
C. PNG
D. CDR
Do zapisania prostej animacji na stronę internetową nadaje się format GIF. Plik GIF może przechowywać wiele klatek wyświetlanych po kolei w pętli, więc tworzy krótką animację bez potrzeby stosowania wideo. Obsługuje też przezroczystość, choć ogranicza paletę do 256 kolorów. To dlatego proste, lekkie animacje (np. ikony, banery) zapisuje się właśnie jako GIF.

Pytanie 3

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu JavaScript należy wykonać przed pętlą?

var text;
for(var i=0; i<tab.length; i++ ){
    text+=tab[i] + "<br>";
}
A. Zadeklarować zmienną i
B. Zainicjować zmienną text
C. Sprawdzić długość tablicy tab
D. Upewnić się, że text jest typu string
W przedstawionym kodzie JavaScript kluczowe jest zainicjowanie zmiennej 'text' przed rozpoczęciem pętli for. Zmienna ta ma za zadanie zbierać wartości z tablicy 'tab' i konkatenuje je w formie tekstu z dodanym znacznikiem HTML <br>, który służy do łamania linii w przeglądarkach. Gdyby zmienna 'text' nie została zainicjowana, kod próbowałby wykonać operację konkatenacji na niezainicjowanej zmiennej, co skutkowałoby błędem. W JavaScript, zmienne, które nie zostały zainicjowane, mają wartość 'undefined', co może prowadzić do nieprzewidywalnych rezultatów. Dlatego przed pętlą, konieczne jest przypisanie zmiennej 'text' wartości początkowej, na przykład pustego łańcucha: text = ''. Dzięki temu, każda kolejna iteracja pętli doda nowy element tablicy do 'text' w sposób zgodny z zamierzeniem. Praktycznie, inicjalizowanie zmiennej jest fundamentalną praktyką w programowaniu, która zapobiega błędom oraz zapewnia klarowność kodu, co jest zgodne z najlepszymi standardami programowania.

Pytanie 4

Który typ przechowuje tekst o ZMIENNEJ długości (do zadanego maksimum)?

A.
INT
B.
CHAR
C.
VARCHAR
D.
FLOAT
Typ VARCHAR przechowuje tekst o ZMIENNEJ długości - do zadanego maksimum (np. VARCHAR(50)), zajmując tylko tyle miejsca, ile faktycznie ma wartość. Sprawdza się dla pól jak imię czy nazwa. Dlatego tekst zmiennej długości trzyma VARCHAR.

Pytanie 5

W tej definicji obiektu JavaScript która składowa jest METODĄ?

var obj1 = {
  czescUlamkowa: 10,
  czescCalkowita: 20,
  oblicz: function() {...}
}
A.
obj1
B.
oblicz
C.
czescCalkowita
D.
czescUlamkowa
W obiekcie JavaScript składowa będąca FUNKCJĄ to metoda. Tutaj oblicz: function() {...} przypisuje funkcję, więc oblicz jest metodą. Dlatego metodą jest oblicz.

Pytanie 6

W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
$z=mysqli_query($db,"SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a=mysqli_fetch_row($z);
echo "$a[1], $a[2]";

A. ulicy oraz miasta z pierwszego zwróconego wpisu
B. ulicy oraz miasta ze wszystkich zwróconych wpisów
C. miasta i kodu pocztowego z pierwszego zwróconego wpisu
D. miasta i kodu pocztowego ze wszystkich zwróconych wpisów
Fragment kodu PHP przedstawiony w pytaniu wykonuje zapytanie do bazy danych MySQL, a jego celem jest uzyskanie danych z tabeli 'adresy', w tym pola 'ulica', 'miasto' i 'kod_pocztowy'. Funkcja mysqli_query wykonuje zapytanie, a następnie mysqli_fetch_row pobiera pojedynczy wiersz wyników jako tablicę. Wartości z tablicy są dostępne za pomocą indeksów, gdzie $a[0] to 'ulica', $a[1] to 'miasto', a $a[2] to 'kod_pocztowy'. Kod wypisuje na ekranie wartości $a[1] i $a[2], co odpowiada miastu i kodowi pocztowemu z pierwszego zwróconego rekordu. W praktyce, aby uzyskać pełną funkcjonalność, należy również zadbać o obsługę błędów oraz o zabezpieczenia przed SQL Injection, stosując np. prepared statements. Kod ten jest zgodny ze standardami PHP i MySQL, które zalecają używanie obiektowej lub proceduralnej wersji funkcji mysqli, co przyczynia się do większej przejrzystości oraz bezpieczeństwa aplikacji.

Pytanie 7

Co zazwyczaj wchodzi w skład frameworka?

A. obsługa błędów i domena
B. wbudowany serwer i obsługa formularzy
C. certyfikat HTTP oraz mechanizm przetwarzania akcji
D. zarządzanie komunikacją z bazą oraz mechanizm uruchamiania i przetwarzania akcji
Framework dostarcza gotowy szkielet aplikacji, a w jego skład wchodzą m.in. mechanizmy zarządzania komunikacją z bazą danych oraz uruchamiania i przetwarzania akcji (żądań) - czyli „rusztowanie”, na którym programista buduje logikę. Dzięki temu nie pisze się tych elementów od zera. Dlatego framework zawiera obsługę bazy oraz przetwarzanie akcji.

Pytanie 8

Który fragment kodu JavaScript zwróci wartość true?

A.
"a" > "b"
B.
"ab" > "c"
C.
"abc" > "def"
D.
"def" > "abc"
Napisy porównuje się w JavaScripcie LEKSYKOGRAFICZNIE (jak w słowniku), znak po znaku wg kodów. "def" > "abc" jest prawdą, bo pierwsza litera „d” ma wyższy kod niż „a”. Zapamiętaj: przy > dla tekstów decyduje pierwsza różniąca się litera - „dalej w alfabecie” znaczy „większy”.

Pytanie 9

Który z podanych formatów pozwala na zapis zarówno dźwięku, jak i obrazu?

A. MP3
B. MP4
C. PNG
D. WAV
Format MP4, znany również jako MPEG-4 Part 14, jest jednym z najpopularniejszych formatów multimedialnych, który umożliwia jednoczesny zapis zarówno dźwięku, jak i obrazu. Dzięki zastosowaniu zaawansowanej kompresji, MP4 pozwala na przechowywanie wysokiej jakości materiałów w stosunkowo małych plikach, co czyni go idealnym do przesyłania i strumieniowania w Internecie. MP4 obsługuje wiele kodeków, takich jak H.264 dla wideo oraz AAC dla dźwięku, co pozwala na szeroką kompatybilność z różnymi urządzeniami, od smartfonów po odtwarzacze multimedialne. Format ten jest zgodny z wieloma standardami, co czyni go wszechstronnym wyborem dla twórców treści. Przykłady jego zastosowania obejmują filmy wideo na platformach streamingowych, klipy muzyczne i wideoklipy. Dzięki swoim zaletom, MP4 stał się de facto standardem w przemyśle multimedialnym, co w znacznym stopniu przyczyniło się do jego popularności oraz wszechstronności.

Pytanie 10

Rezultatem realizacji zaprezentowanego kodu PHP jest wyświetlenie wartości

Ilustracja do pytania
A. 14
B. 47
C. 136
D. 147
Kod PHP przedstawiony w pytaniu używa pętli for do iteracji od 1 wzwyż dodając 3 do wartości zmiennej $i przy każdej iteracji aż do momentu gdy $i przekroczy 7. Pętla zaczyna zatem od $i równego 1 a następnie przy każdej iteracji wartość $i zwiększa się o 3. W pierwszej iteracji $i wynosi 1 i jest wypisywane. W drugiej iteracji wartość $i wynosi 4 i jest również wypisywane. W trzeciej iteracji wartość $i wynosi 7 i także jest wypisywane. Po tej iteracji wartość $i zwiększa się do 10 co kończy pętlę ponieważ warunek $i <= 7 przestaje być spełniony. Wynikiem jest zatem ciąg 147. Jest to zgodne z zasadami działania pętli for w języku PHP gdzie pierwszy argument ustawia wartość początkową drugi argument to warunek kontynuacji pętli a trzeci argument definiuje sposób zmiany wartości zmiennej kontrolnej. Możliwość iteracyjnego drukowania wartości jest powszechnie stosowana w automatyzacji zadań i przetwarzaniu danych w aplikacjach webowych co jest jedną z podstawowych funkcji w programowaniu PHP.

Pytanie 11

Jaka będzie wartość $a po wykonaniu kodu?

$i = 10; $a = 0;
while ($i) {
  $a = $a + 2;
  $i--;
}
A. 0
B. 2
C. 10
D. 20
Pętla while ($i) powtarza się tak długo, jak warunek w nawiasie jest prawdziwy - a w PHP każda liczba różna od zera znaczy „prawda”, więc pętla działa, dopóki $i nie spadnie do zera. Na starcie $i = 10, a $a = 0. W każdym obrocie ciało pętli najpierw zwiększa $a o 2 (instrukcja $a = $a + 2), a potem $i-- zmniejsza licznik o jeden. Warunek przestaje być spełniony, gdy $i osiągnie 0, więc obrotów jest dokładnie dziesięć - dla $i równego kolejno 10, 9, …, 1. Skoro przy każdym z dziesięciu obrotów dodajemy 2, końcowy wynik to 10 × 2 = 20. Zapamiętaj regułę: liczbę powtórzeń pętli warunkowej wyznacza zmienna sterująca - tu $i maleje o 1, co daje 10 iteracji. Dlatego szukaną wartością jest 20.

Pytanie 12

Jakie zapytanie należy użyć, aby wyświetlić tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
B. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
C. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
D. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
Odpowiedź SELECT imie nazwisko ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id jest trafna, bo korzysta z dobrej składni dołączenia tabel w SQL. Dzięki temu wyciągasz tylko te kolumny, które są Ci potrzebne. W tym przypadku, używając JOIN, łączysz tabele Mieszkancy i Adresy na podstawie odpowiednich kluczy, co dobrze odpowiada zasadom baz danych. Klucz obcy Adresy_id w tabeli Mieszkancy wskazuje na id w tabeli Adresy, co jest super ważne, bo zapewnia, że dane są spójne. To zapytanie pokazuje, jak optymalizować SQL, bo ogranicza wybór do niezbędnych kolumn (imie, nazwisko, ulica), co zmniejsza obciążenie bazy i przyspiesza wyrzucanie wyników. W praktyce takie podejście jest fajne do efektywnego zarządzania danymi w relacyjnych bazach. Dobrze jest mieć w głowie, jak używać JOIN oraz wybierać konkretne kolumny, bo to naprawdę pomaga w pisaniu bardziej zrozumiałych i wydajnych zapytań, co jest przydatne w pracy zawodowej.

Pytanie 13

W bazie danych wykonano następujące polecenia dotyczące uprawnień użytkownika adam. Po ich realizacji użytkownik adam uzyska uprawnienia do

GRANT ALL PRIVILEGES ON klienci TO adam
REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam
A. usuwania tabeli lub jej rekordów
B. przeglądania tabeli klienci oraz dodawania do niej sektorów
C. tworzenia tabeli klienci oraz modyfikowania w niej danych
D. modyfikowania danych i przeglądania tabeli klienci
Prawidłowa odpowiedź dotycząca usunięcia tabeli lub jej rekordów wynika z analizy poleceń SQL które zostały wykonane na użytkowniku adam. Instrukcja GRANT ALL PRIVILEGES zapewnia użytkownikowi wszystkie dostępne uprawnienia do tabeli klienci w tym możliwość usunięcia zarówno całej tabeli jak i jej rekordów. Jednakże w dalszej kolejności polecenie REVOKE SELECT INSERT UPDATE ogranicza te konkretne uprawnienia. Pozostawia to użytkownikowi adam pełne prawo do korzystania z polecenia DELETE które umożliwia usunięcie poszczególnych rekordów oraz DROP które pozwala usunąć całą tabelę. Jest to kluczowe w zarządzaniu bazą danych zwłaszcza w kontekście zapewnienia integralności i bezpieczeństwa danych. W praktyce administratorzy baz danych muszą umiejętnie zarządzać uprawnieniami aby zapewnić odpowiedni poziom bezpieczeństwa oraz kontrolę dostępu zgodnie z najlepszymi praktykami branżowymi. Dzięki temu można uniknąć nieautoryzowanego dostępu do wrażliwych danych oraz przypadkowego usunięcia ważnych informacji

Pytanie 14

Wskaż prawidłową definicję funkcji w języku JavaScript?

A. typ_funkcji nazwa_funkcji(argumenty) {instrukcje;}
B. new nazwa_funkcji(argumenty) {instrukcje;}
C. nazwa_funkcji(argumenty) {instrukcje;}
D. function nazwa_funkcji(argumenty) {instrukcje;}
Definicja funkcji w języku JavaScript przy użyciu słowa kluczowego 'function' jest standardowym sposobem deklaracji funkcji. Poprawny zapis 'function nazwa_funkcji(argumenty) {instrukcje;}' jasno wskazuje, że tworzona jest nowa funkcja, której nazwa oraz argumenty są zdefiniowane. Przykładowo, można stworzyć funkcję dodającą dwie liczby: 'function dodaj(a, b) { return a + b; }'. Funkcje w JavaScript mogą być wywoływane w dowolnym miejscu w kodzie, co czyni je niezwykle elastycznymi. Dodatkowo, dzięki temu, że JavaScript obsługuje funkcje jako obiekty pierwszej klasy, można je przekazywać jako argumenty do innych funkcji, przypisywać do zmiennych oraz zwracać z innych funkcji. Warto również zauważyć, że w kontekście dobrych praktyk, używanie funkcji z jasnymi nazwami i dobrze zdefiniowanymi argumentami zwiększa czytelność oraz utrzymanie kodu, co jest istotne w pracy zespołowej oraz przy rozwijaniu większych aplikacji.

Pytanie 15

Taki styl CSS sprawi, że na stronie internetowej

ul{ list-style-image: url('rys.gif'); }
A. punkt listy nienumerowanej będzie rys.gif
B. rys.gif stanie się ramką dla listy nienumerowanej
C. każdy punkt listy zyska osobne tło z grafiki rys.gif
D. rys.gif wyświetli się jako tło dla listy nienumerowanej
Deklaracja CSS ul{ list-style-image: url('rys.gif'); } powoduje, że każdy element listy nienumerowanej (ul) używa obrazu rys.gif jako punktora. Właściwość list-style-image pozwala na zamianę domyślnego stylu punktów listy, takiego jak kropki czy kwadraty, na dowolny obrazek. Jest to przydatne, gdy chcemy nadać stronie unikalny wygląd lub dostosować ją do identyfikacji wizualnej marki. W praktyce oznacza to, że zamiast klasycznego punktora, użytkownicy zobaczą wybrany obraz, co może wpłynąć na estetykę i czytelność strony. Ważne jest, aby obraz był odpowiednio skalowany, aby nie zaburzał układu listy. List-style-image to standardowa właściwość CSS uznawana przez większość przeglądarek, co czyni ją uniwersalnym narzędziem w rękach projektanta stron. W procesie projektowania warto upewnić się, że wybrany obrazek jest dostępny dla wszystkich użytkowników, co można osiągnąć np. poprzez dodanie atrybutu alt w wersji tekstowej listy dla lepszej dostępności.

Pytanie 16

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. miasta i kodu pocztowego z pierwszego zwróconego rekordu
B. ulicy i miasta z pierwszego zwróconego rekordu
C. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
D. ulicy i miasta ze wszystkich zwróconych rekordów
Kod PHP używa funkcji mysqli_query do wykonania zapytania SELECT, które pobiera kolumny ulica miasto i kod_pocztowy z tabeli adresy. Następnie funkcja mysqli_fetch_row pobiera pierwszy rekord wyników jako tablicę. Elementy tej tablicy są indeksowane od 0 dlatego $a[1] odnosi się do drugiego elementu czyli kolumny miasto a $a[2] do trzeciego elementu czyli kolumny kod_pocztowy. Funkcja echo wypisuje te dwie wartości co oznacza że kod faktycznie wyświetla miasto i kod pocztowy z pierwszego zwróconego rekordu. W praktyce takie podejście jest używane do szybkiego dostępu do danych z bazy jednak warto pamiętać o zabezpieczeniach takich jak filtrowanie danych wejściowych czy użycie przygotowanych zapytań aby chronić się przed SQL Injection. Dobre praktyki obejmują także obsługę błędów połączenia z bazą oraz poprawne zarządzanie zasobami takimi jak zamykanie połączenia po zakończeniu operacji na bazie danych. Używanie indeksów liczbowych może być mniej czytelne dlatego w bardziej złożonych aplikacjach zaleca się stosowanie mysqli_fetch_assoc dla łatwiejszego dostępu przez nazwy kolumn.

Pytanie 17

Po wykonaniu poniższego kodu JavaScript, co będzie przechowywać zmienna str2?

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. avaS
B. vaScri
C. nvaScr
D. vaSc
Wykorzystując metodę substring w JavaScript możemy wyodrębnić fragmenty łańcucha znaków bazując na indeksach początkowym i końcowym. Indeksowanie w JavaScript zaczyna się od zera co oznacza że pierwszy znak ma indeks 0 drugi 1 i tak dalej. W przypadku zmiennej str1 przechowującej łańcuch JavaScript wywołanie str1.substring(2 6) zwraca fragment zaczynający się od znaku o indeksie 2 do znaku o indeksie 5 włącznie. Oznacza to że metoda wybiera znaki od trzeciego do szóstego nie wliczając znaku o indeksie 6. W praktyce oznacza to że z napisu JavaScript wybierane są znaki aScr co tworzy łańcuch vaSc. Zrozumienie działania metody substring jest kluczowe przy pracy z łańcuchami znaków w JavaScript. Jest to standardowa metoda używana powszechnie do manipulacji tekstem co ma zastosowanie w wielu dziedzinach programowania frontendowego i backendowego. Ważne jest aby pamiętać o zeroindeksowaniu co pozwala uniknąć typowych błędów związanych z nieprawidłowym określeniem zakresu znaków.

Pytanie 18

Zaprezentowano kod dla tabeli 3x2. Jaką modyfikację należy wprowadzić w drugim wierszu, aby tabela przypominała tę z obrazka, gdzie wiersz jest niewidoczny?

<table>
    <tr>
        <td style="border: solid 1px;">Komórka 1</td>
        <td style="border: solid 1px;">Komórka 2</td>
    </tr>
    <tr>
        <td style="border: solid 1px;">Komórka 3</td>
        <td style="border: solid 1px;">Komórka 4</td>
    </tr>
    <tr>
        <td style="border: solid 1px;">Komórka 5</td>
        <td style="border: solid 1px;">Komórka 6</td>
    </tr>
</table>
/efekt jest na obrazie - nie dołączam - nie analizuj/
Ilustracja do pytania
A. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"display: none"</span>&gt;</pre>
B. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"visibility: hidden"</span>&gt;</pre>
C. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"clear: none"</span>&gt;</pre>
D. <pre class="code-block">&lt;tr <span class="code-text">style=</span><span class="code-string">"display: table-cell"</span>&gt;</pre>
Zastosowanie niewłaściwych właściwości CSS w tabelach może prowadzić do niezamierzonych efektów wizualnych i funkcjonalnych. 'Display: none' usunąłby wiersz z układu dokumentu, co skutkowałoby przesunięciem w górę wierszy poniżej. To podejście jest użyteczne, gdy element powinien być całkowicie usunięty z przestrzeni wizualnej i układu, ale nie spełniałoby celu przedstawionego w pytaniu, gdzie układ ma pozostać niezmieniony. Z kolei 'clear: none' jest właściwością CSS dotyczącą floatów, a nie widoczności, co oznacza, że nie miałoby żadnego wpływu na wyświetlanie wiersza tabeli. Jest to typowy błąd polegający na myleniu właściwości CSS w kontekście ukrywania elementów. Właściwość 'display: table-cell' jest stosowana dla elementów traktowanych jako komórki tabeli, co nie jest odpowiednie dla wierszy tabeli. Wybierając tę właściwość, użytkownik mógłby mylnie sądzić, że ma to wpływ na widoczność, podczas gdy w rzeczywistości zmienia jedynie sposób renderowania elementu. Prawidłowe rozumienie różnic między 'visibility' a 'display' jest kluczowe w tworzeniu przewidywalnych i stabilnych interfejsów użytkownika, co jest jednym z fundamentów dobrego projektowania front-endu. Wybór niewłaściwego podejścia do ukrywania elementów może prowadzić do niepożądanych zmian w interfejsie, co wpływa na użyteczność i estetykę strony.

Pytanie 19

W przedstawionym kodzie HTML, zaprezentowany styl CSS jest stylem:

<p style="color:red;">To jest przykładowy akapit.</p>
A. zewnętrznym
B. lokalnym
C. nagłówkowym
D. dynamicznym
Styl CSS określony wewnątrz elementu HTML poprzez atrybut style jest przykładem stylu lokalnego. Styl lokalny pozwala na bezpośrednie przypisanie konkretnych własności CSS do pojedynczego elementu co umożliwia szybkie i łatwe testowanie oraz modyfikacje wyglądu bez potrzeby edytowania zewnętrznych plików CSS. Praktyczne zastosowanie stylów lokalnych odnajdujemy w sytuacjach gdy chcemy wprowadzić zmiany dla pojedynczego elementu na stronie nie wpływając na inne elementy. Na przykład jeśli w jednym miejscu chcemy podkreślić wagę tekstu stosując kolor czerwony możemy użyć stylu lokalnego jak pokazano w pytaniu. Jednak styl lokalny nie jest zalecany dla większych projektów czy skomplikowanych stron ze względu na fakt że utrudnia zarządzanie i utrzymywanie spójnego stylu w całym projekcie. W takich przypadkach lepiej korzystać ze stylów zewnętrznych lub nagłówkowych które oferują lepszą organizację i elastyczność. Warto również pamiętać że implementacja stylu lokalnego może nadpisywać inne style co jest istotne przy rozwiązywaniu problemów związanych z dziedziczeniem stylów CSS.

Pytanie 20

Na podstawie relacji przedstawionej na ilustracji, można stwierdzić, że jest to relacja

Ilustracja do pytania
A. jeden do wielu, gdzie kluczem obcym jest pole w tabeli kadra
B. jeden do jednego, gdzie obie tabele mają przypisane klucze obce
C. wiele do wielu pomiędzy kluczami głównymi obu tabel
D. jeden do wielu, gdzie kluczem obcym jest pole w tabeli uslugi
Relacja jeden do wielu, gdzie kluczem obcym jest pole w tabeli uslugi, jest poprawna, ponieważ reprezentuje typową praktykę w projektowaniu baz danych, gdzie wiele rekordów w jednej tabeli (uslugi) jest powiązanych z jednym rekordem w innej tabeli (kadra). W tym przypadku, kolumna kadra_id w tabeli uslugi pełni rolę klucza obcego, który wskazuje na klucz główny (id) w tabeli kadra. Takie podejście jest szeroko stosowane w zarządzaniu relacjami pomiędzy danymi, umożliwiając efektywne przechowywanie i odwoływanie się do powiązanych rekordów. Przykładowo, w systemie usługowym, jedna osoba może być odpowiedzialna za wiele różnych usług, co jest wizualizowane przez tę konstrukcję. W praktyce pozwala to na łatwe aktualizacje danych kadry bez konieczności zmian w tabeli usług, co jest zgodne z zasadami normalizacji danych i zwiększa spójność oraz integralność danych. Tego typu relacje są fundamentem dla operacji typu JOIN w SQL, które umożliwiają łączenie danych z różnych tabel na podstawie wspólnych wartości kluczy obcych, co jest kluczowe dla wydajnego przetwarzania zapytań w relacyjnych bazach danych.

Pytanie 21

Która z czynności NIE WPŁYNIE na wielkość zajmowanej pamięci pliku graficznego?

A. Interpolacja
B. Skalowanie obrazu przy użyciu atrybutów HTML
C. Zmiana rozdzielczości obrazu
D. Kompresja
Skalowanie obrazu za pomocą atrybutów HTML nie wpływa na rozmiar pliku graficznego, ponieważ ta operacja odbywa się po stronie klienta, w przeglądarce, a nie na samym pliku. Gdy obraz jest wyświetlany w HTML, atrybuty takie jak 'width' i 'height' mogą zmienić jego wizualny rozmiar na stronie, ale nie modyfikują samego pliku. W praktyce oznacza to, że niezależnie od tego, jak duży lub mały wyświetlany jest obraz, jego rzeczywisty rozmiar na dysku pozostaje niezmieniony. Dobrą praktyką w web designie jest stosowanie odpowiednich rozmiarów i formatów obrazów w zależności od kontekstu, co może poprawić szybkość ładowania strony i doświadczenie użytkownika. Warto również pamiętać, że zbyt duże obrazy mogą powodować dłuższy czas ładowania, co wpływa na SEO i oceny wydajności witryny. Dlatego zaleca się optymalizację obrazów przed ich dodaniem do strony, co jest bardziej efektywne niż poleganie na zmianie rozmiarów przez HTML.

Pytanie 22

Wskaż prawdziwe stwierdzenie o poleceniu:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. klauzula IF NOT EXISTS jest opcjonalna i zapobiega błędowi, gdy tabela już istnieje
B. do tabeli nie można wpisywać ulic z polskimi znakami
C. klauzula CHARACTER SET utf8 jest obowiązkowa
D. rekordem tabeli nie może być „3 MAJA”
Klauzula IF NOT EXISTS jest OPCJONALNA i zabezpiecza CREATE TABLE - jeśli tabela o danej nazwie już istnieje, polecenie nie zgłosi błędu i nie utworzy jej ponownie. Dlatego prawdą jest, że IF NOT EXISTS jest opcjonalna i zapobiega błędowi przy istniejącej tabeli.

Pytanie 23

Który z linków ma prawidłową budowę?

A. <a href='mailto:adres'> tekst </a>
B. <a href="mailto:adres"> tekst </a>
C. <a href='http://adres'> tekst </a>
D. <a href="http://adres"> tekst <a>
Odpowiedź <a href="mailto:adres"> tekst </a> jest poprawna, ponieważ stosuje odpowiednie cudzysłowy dla atrybutu href oraz przestrzega standardów HTML. W HTML5 zaleca się użycie podwójnych cudzysłowów dla wartości atrybutów, co czyni tę konstrukcję zgodną z najlepszymi praktykami. Oto przykład zastosowania: klikając w ten odsyłacz, użytkownik uruchomi aplikację pocztową, co jest przydatne w kontekście kontaktu z użytkownikami czy klientami. Przykłady zastosowania obejmują formularze kontaktowe na stronach internetowych, gdzie użytkownicy mogą łatwo skontaktować się z właścicielem strony. Warto też pamiętać o stosowaniu odpowiednich adresów e-mail, aby uniknąć problemów związanych z korespondencją, oraz o używaniu przyjaznych dla użytkownika tekstów odsyłaczy, które jednoznacznie informują, dokąd prowadzi link. Przestrzeganie tych zasad nie tylko zwiększa użyteczność strony, ale także poprawia jej dostępność.

Pytanie 24

Jakiego wyniku można się spodziewać po wykonaniu zapytania na przedstawionej tabeli?

SELECTCOUNT(DISTINCT wykonawca)
FROM`muzyka`;
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. 0
B. 1
C. 3
D. 4
Zapytanie SQL SELECT COUNT(DISTINCT wykonawca) FROM muzyka; służy do zliczenia unikalnych wartości w kolumnie wykonawca w tabeli muzyka. W kontekście dostarczonej tabeli istnieje trzech różnych wykonawców: Czesław Niemen Stan Borys i Mikołaj Czechowski. Funkcja COUNT w połączeniu z DISTINCT pozwala na zliczenie jedynie unikalnych wystąpień wartości co oznacza że pomimo dwukrotnego wystąpienia Czesława Niemena zostanie on policzony tylko raz. Takie podejście jest kluczowe w analizie danych gdzie istotne jest rozważenie jedynie niepowtarzających się wartości na przykład w analizach raportów dotyczących różnorodności portfolio wykonawców w wytwórni muzycznej. Dobre praktyki w SQL zalecają użycie DISTINCT w sytuacjach wymagających precyzyjnego określenia różnorodności danych w kolumnie co nie tylko wspiera dokładność analiz ale również optymalizuje wydajność zapytań poprzez redukcję ilości danych do przetworzenia. Zrozumienie tego mechanizmu jest istotne w zarządzaniu bazami danych oraz w analizach biznesowych.

Pytanie 25

Ile razy zostanie wykonana zaprezentowana pętla w języku PHP, zakładając, że zmienna sterująca nie jest zmieniana wewnątrz pętli?

 for ($i = 0; $i <= 10; $i++) {
    // kod pętli
}
A. 11
B. 10
C. Nieskończenie wiele
D. 0
Prawidłowa odpowiedź wynika z analizy działania pętli for w języku PHP. W przedstawionej pętli warunek iteracji jest ustawiony na '$i <= 10', co oznacza, że pętla będzie wykonywana tak długo, jak długo zmienna $i będzie mniejsza lub równa 10. Zmienna $i jest inicjalizowana wartością 0 i inkrementowana o 1 przy każdym obiegu pętli. W efekcie, pętla będzie wykonywana dla wartości $i od 0 do 10, co daje 11 iteracji. Praktycznym zastosowaniem takiej pętli może być na przykład generowanie listy numerów lub przetwarzanie elementów w tablicy. Dobrą praktyką podczas używania pętli jest również upewnienie się, że warunek zakończenia jest poprawnie zdefiniowany, aby uniknąć niezamierzonych nieskończonych iteracji. Warto także uwzględnić możliwość modyfikowania zmiennej sterującej w ciele pętli, co może prowadzić do złożonych przypadków, ale w tym konkretnym przykładzie nie mamy takiej sytuacji.

Pytanie 26

W języku CSS określono formatowanie znacznika h1 według poniższego wzoru. Zakładając, że do znacznika h1 nie dodano żadnego innego formatowania, wskaż sposób formatowania tego znacznika.

h1 {
    font-style: oblique;
    font-variant: small-caps;
    text-align: right;
}
Ilustracja do pytania
A. A.
B. B.
C. C.
D. D.
Gratulacje, Twoja odpowiedź jest prawidłowa. W CSS określono, że znacznik h1 ma być wyświetlany z pochyłą czcionką, co jest osiągane za pomocą właściwości 'font-style: oblique'. Dodatkowo, małe wielkie litery są realizowane przez 'font-variant: small-caps', które zmieniają wszystkie małe litery na wielkie litery, ale z zachowaniem mniejszego rozmiaru. Wreszcie, do wyrównania tekstu do prawej strony służy 'text-align: right'. Wszystko to razem składa się na formatowanie znacznika h1, które zostało zdefiniowane w CSS. To jest dobra praktyka, aby zrozumieć i zapamiętać różne właściwości CSS, ponieważ pozwalają one na bardzo szczegółowe kontrolowanie wyglądu i układu elementów na stronie. Pamiętaj, że CSS jest niezwykle potężnym narzędziem w rękach doświadczonego programisty front-end i pozwala na tworzenie estetycznych, responsywnych i przyjaznych dla użytkownika interfejsów.

Pytanie 27

Deklaracja typu dokumentu HTML: <!DOCTYPE HTML> wskazuje, że kod został stworzony w wersji

A. 5
B. 4
C. 7
D. 6
Gdy widzisz deklarację <!DOCTYPE HTML>, to znaczy, że mówimy o wersji HTML5. To obecny standard, który wprowadza naprawdę sporo nowych funkcji w porównaniu do wcześniejszych wersji. Na przykład, HTML5 pozwala na osadzanie audio i wideo bez potrzeby dodatkowych wtyczek, co jest super wygodne. Mamy też fajne semantyczne elementy jak <article>, <section> czy <nav>, które sprawiają, że łatwiej zorganizować treści na stronie. Ważne jest, żeby zawsze na początku dokumentu umieszczać tę deklarację, bo to pozwala przeglądarkom na prawidłowe wyświetlanie strony. Dzięki temu unikamy problemów z interpretacją kodu, co z doświadczenia mówię, jest naprawdę istotne.

Pytanie 28

Metoda i zmienna są widoczne tylko dla innych metod tej samej klasy. Który modyfikator dostępu odpowiada temu opisowi?

A.
static
B.
public
C.
private
D.
protected
Gdy metoda i zmienna mają być widoczne wyłącznie dla innych metod TEJ SAMEJ klasy, używa się modyfikatora private. Ukrywa on składowe przed kodem spoza klasy, wymuszając dostęp przez publiczny interfejs (np. metody „get/set”). Zapamiętaj: private = składowa zamknięta w obrębie własnej klasy.

Pytanie 29

Która z funkcji SQL nie wymaga żadnych argumentów?

A. now
B. len
C. upper
D. year
Funkcja SQL 'now()' jest jedną z funkcji, które nie wymagają argumentów, a jej głównym zadaniem jest zwracanie bieżącej daty i godziny systemowej w formacie odpowiednim dla bazy danych. Użycie tej funkcji jest niezwykle przydatne w kontekście rejestrowania momentu wykonania operacji w bazie danych, na przykład przy dodawaniu nowych rekordów do tabeli. Przykładowe zastosowanie tej funkcji można zobaczyć w poniższym zapytaniu SQL: 'INSERT INTO wydarzenia (nazwa, data_utworzenia) VALUES ('Nowe Wydarzenie', now());'. Takie podejście nie tylko automatyzuje proces rejestrowania czasu, ale także zapewnia spójność danych, eliminując ryzyko błędów związanych z ręcznym wprowadzaniem daty. W praktyce, stosowanie funkcji, które nie wymagają argumentów, jest często zgodne z zasadami dobrych praktyk programistycznych, które promują czytelność i prostotę kodu.

Pytanie 30

W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. zaindeksować zmienną tab, tab[0] to pierwsze imię
B. użyć polecenia mysql_fetch
C. wyświetlić zmienną $db
D. zastosować pętlę z poleceniem mysqli_fetch_row
Odpowiedź, która zakłada zastosowanie pętli z poleceniem mysqli_fetch_row, jest poprawna, ponieważ po wykonaniu zapytania do bazy danych za pomocą mysqli_query, otrzymujemy wynik w postaci zestawu rekordów, który musimy przetworzyć. Funkcja mysqli_fetch_row pozwala na iteracyjne pobieranie wierszy z tego zestawu, co jest niezbędne do wyświetlenia wszystkich imion osób, które spełniają warunek wieku poniżej 18 lat. Przykładowy kod do iteracji może wyglądać tak: while($wiersz = mysqli_fetch_row($tab)) { echo $wiersz[0]; } W ten sposób każda iteracja w pętli wyświetli pierwszą kolumnę (imie) z każdego wiersza rezultatu. Tego typu podejście jest zgodne z dobrymi praktykami, ponieważ pozwala na efektywne zarządzanie pamięcią i ogranicza ryzyko przeciążenia systemu, szczególnie w przypadku dużych zbiorów danych. Ważne jest, aby pamiętać, że połączenie z bazą danych i zapytania powinny być zawsze odpowiednio zamykane i zabezpieczane przed atakami, co jest istotne w kontekście bezpieczeństwa aplikacji.

Pytanie 31

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w przedziale (0, 100), a wartość zmiennej b jest większa od zera. Jak można poprawnie zapisać taki warunek?

A. if ((a > 0 11 a < 100) && b > 0)
B. if (a > 0 || a < 100 11 b < 0)
C. if (a > 0 && a < 100 && b > 0)
D. if ((a > 0 && a < 100) 11 b < 0)
Odpowiedź if (a > 0 && a < 100 && b > 0) jest prawidłowa, ponieważ dokładnie odzwierciedla wymogi przedstawione w pytaniu. W tym przypadku, warunek sprawdza, czy zmienna 'a' jest większa od zera oraz mniejsza od 100, co oznacza, że mieści się w przedziale (0, 100). Dodatkowo, warunek b > 0 zapewnia, że zmienna 'b' ma wartość większą od zera. Użycie operatora logicznego && jest kluczowe, ponieważ pozwala na połączenie wszystkich trzech warunków, co oznacza, że wszystkie muszą być spełnione, aby blok kodu w instrukcji if został wykonany. W praktyce, ten typ instrukcji jest niezwykle użyteczny w różnorodnych aplikacjach, na przykład w systemach walidacji danych wejściowych, gdzie istotne jest sprawdzenie, czy wartości są w określonych zakresach przed przetwarzaniem. Dobrą praktyką jest zawsze stosowanie wyraźnych i zrozumiałych warunków logicznych w celu zwiększenia czytelności i utrzymania kodu, co jest zgodne z zasadami czystego kodowania.

Pytanie 32

Tabela Pracownicy zawiera informacje na temat pracowników różnych działów, co jest zaznaczone przez pole liczbowe dzial. Z racji tego, że zazwyczaj kwerendy dotyczą tylko działu 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania

A. CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;
B. CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
C. VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
D. VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2;
Odpowiedź 'CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;' jest poprawna, ponieważ wykorzystuje standardowe polecenie SQL do tworzenia widoku. Widok jest wirtualną tabelą, która umożliwia użytkownikom wykonywanie zapytań w oparciu o wcześniej zdefiniowane kryteria, co może znacznie uprościć złożoność zapytań w bazach danych. W tym przypadku, widok 'Prac_dzial2' automatycznie filtruje dane, zwracając jedynie pracowników przypisanych do działu 2. Przy pomocy tego widoku, użytkownicy mogą szybko uzyskać dostęp do tego subsetu danych bez konieczności każdorazowego pisania złożonych zapytań. Z perspektywy zarządzania bazą danych, tworzenie widoków jest uznawane za dobrą praktykę, ponieważ pozwala na lepszą organizację i bezpieczeństwo danych, a także stanowi dodatkową warstwę abstrakcji, która może ułatwić stosowanie polityk dostępu. Na przykład, jeśli firma zmieni strukturę działów, wystarczy zaktualizować definicję widoku, co nie wymaga modyfikacji wszystkich zapytań korzystających z tego widoku.

Pytanie 33

Jak w JavaScript zmienić wartość WŁAŚCIWOŚCI CSS elementu (opisanego stylem)?

A.
document.getElementById(id).<atrybut> = <wartość>
B.
document.getElementById(id).style.<właściwość> = <wartość>
C.
document.getElementById(id).<właściwość> = <wartość>
D.
document.getElementById(id).innerHTML = <wartość>
Pozostałe zapisy nie ustawią stylu. Pominięcie style (odwołanie wprost do .color czy .<atrybut>) nie trafia we właściwości CSS. innerHTML podmienia ZAWARTOŚĆ elementu (HTML wewnątrz), a nie jego wygląd. Styl zmienia się przez element.style.<właściwość>.

Pytanie 34

Przedstawiona ikona funkcji edytora grafiki rastrowej o nazwie "różdżka" umożliwia

Ilustracja do pytania
A. pobranie wskazanego koloru i ustawienie go jako aktywny.
B. wybiórcze rozsmarowywanie koloru za pomocą pędzla.
C. zaznaczenie obszaru na podstawie koloru.
D. odręczne zaznaczanie obszarów przez przeciąganie po nich kursora.
Dobrze! Odpowiedź jest poprawna. Narzędzie 'różdżka' w edytorze grafiki rastrowej służy do zaznaczania obszarów na podstawie koloru. Jest to bardzo przydatne, gdy chcemy zaznaczyć obszar o jednolitym kolorze lub gradientem kolorów. Działa ona na zasadzie kliknięcia w dany punkt obrazu, a następnie automatycznego zaznaczenia pikseli o kolorze zbliżonym do tego, w który kliknęliśmy. Użycie tej funkcji jest zdecydowanie efektywniejsze niż ręczne zaznaczanie obszarów, szczególnie dla skomplikowanych kształtów lub dużych obszarów o podobnej barwie. Ponadto, narzędzie to jest zgodne ze standardami i dobrą praktyką w branży edycji grafiki rastrowej, a jego umiejętne wykorzystanie może znacznie przyspieszyć prace edycyjne i zapewnić lepszą precyzję.

Pytanie 35

Jakie zapytanie umożliwi Administratorowi odebranie uprawnień do przeglądania oraz edytowania danych w bazie gazeta, dla użytkownika redaktor?

A. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
B. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
C. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
D. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
Odpowiedź jest poprawna, ponieważ zapytanie REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost'; skutecznie odbiera użytkownikowi redaktor prawa do przeglądania (SELECT) oraz aktualizacji (UPDATE) danych w tabeli gazeta. W kontekście zarządzania uprawnieniami w systemach baz danych, kluczowym elementem jest kontrola dostępu. Standard SQL definiuje polecenie REVOKE jako sposób na cofnięcie przyznanych wcześniej uprawnień. W praktyce, administratorzy baz danych muszą ścisle zarządzać uprawnieniami użytkowników, aby zapewnić bezpieczeństwo danych i zgodność z politykami ochrony informacji. Przykładem zastosowania mogłoby być ograniczenie dostępu do poufnych danych w przypadku, gdy użytkownik przestaje pełnić określoną rolę w organizacji. Rezygnacja z uprawnień powinna być zawsze udokumentowana i przeprowadzona zgodnie z procedurami, by zapobiec nieautoryzowanemu dostępowi do danych. Zarządzanie uprawnieniami to kluczowy aspekt administrowania bazami danych, który wpływa na bezpieczeństwo i integralność informacji.

Pytanie 36

Narzędzie phpMyAdmin służy do administrowania serwerem:

A. WWW
B. FTP
C. baz danych
D. plików
phpMyAdmin to napisane w PHP narzędzie webowe do administrowania serwerem BAZ DANYCH MySQL/MariaDB - obsługujesz je przez przeglądarkę. Pozwala bez znajomości poleceń konsolowych tworzyć i usuwać bazy oraz tabele, przeglądać i edytować rekordy, uruchamiać zapytania SQL, importować i eksportować dane czy zarządzać użytkownikami. Dlatego znajdziesz je w panelu niemal każdego hostingu. Zapamiętaj: phpMyAdmin = graficzna administracja bazą danych.

Pytanie 37

<?php
$dane = fread(fopen("plik.txt", "r"), filesize("plik.txt"));
?>
Przedstawiony kod zapisany w języku PHP ma za zadanie
A. zapisać do pliku plik.txt wartość zmiennej dane
B. zmiennej dane przypisać wielkość pliku plik.txt
C. zmiennej dane przypisać zawartość pliku plik.txt
D. otworzyć plik plik.txt i jako wartość zmiennej dane przypisać rozmiar pliku
Kod z pytania wykorzystuje trzy kluczowe elementy pracy z plikami w PHP: fopen, fread i filesize. Żeby dobrze zrozumieć, dlaczego niektóre interpretacje są błędne, trzeba rozdzielić pojęcia „odczyt” i „zapis” oraz pamiętać, co tak naprawdę zwracają poszczególne funkcje. fopen z parametrem "r" otwiera plik wyłącznie do czytania. W tym trybie nie ma możliwości zapisu danych do pliku, więc każda interpretacja sugerująca, że coś jest zapisywane do pliku, stoi w sprzeczności z dokumentacją PHP. To jest częsty błąd: ktoś widzi funkcję pracującą na plikach i automatycznie myśli o zapisie, a tutaj jest tylko odczyt.
Kolejna mylna ścieżka rozumowania dotyczy funkcji filesize. Ona faktycznie zwraca rozmiar pliku w bajtach, ale w tym kodzie ten rozmiar jest użyty wyłącznie jako argument dla fread, czyli jako informacja: „ile bajtów odczytać”. Zmienna $dane nie dostaje więc wartości rozmiaru pliku, tylko wynik działania fread, czyli tekstową zawartość pliku. Rozmiar pojawia się tu tylko po to, żeby powiedzieć fread, ile danych ma pobrać z uchwytu pliku. To jest subtelna, ale ważna różnica: wartość zwracana przez filesize nie jest przypisywana bezpośrednio do $dane.
Może się też pojawić pokusa, by myśleć, że kod jednocześnie otwiera plik i „przypisuje rozmiar pliku jako wartość zmiennej”. W praktyce mamy dwie operacje: otwarcie pliku (fopen) i odczyt zawartości (fread). Otworzenie pliku nie jest celem samym w sobie, jest tylko krokiem pośrednim, koniecznym do tego, żeby fread mogło pobrać dane. Z mojego doświadczenia wynika, że uczniowie często mieszają: co zwraca uchwyt pliku, co zwraca funkcja odczytu, a co funkcja podająca rozmiar. Tutaj zwracany jest string z treścią pliku, nie liczba bajtów i nie sam uchwyt.
Podsumowując merytorycznie: w tym przykładzie nie zachodzi zapis do pliku, zmienna $dane nie przyjmuje samego rozmiaru pliku, ani też nie jest do niej wprost przypisywana wartość z filesize. Cała logika kodu prowadzi do jednego efektu – odczytania pełnej zawartości pliku plik.txt i umieszczenia jej w zmiennej $dane, co jest poprawną interpretacją zgodną ze standardowym sposobem użycia fopen i fread w PHP.

Pytanie 38

Której metody JavaScript użyć, aby wyświetlić okno z POLEM do wpisania danych oraz przyciskami OK i Anuluj?

A.
alert();
B.
prompt();
C.
confirm();
D.
message();
Metoda prompt() wyświetla okno z POLEM do wpisania tekstu oraz przyciskami OK i Anuluj, a po zatwierdzeniu zwraca wpisaną wartość (lub null po anulowaniu), np. let imie = prompt("Podaj imię:");. Zapamiętaj: prompt = zapytaj użytkownika o DANE.

Pytanie 39

Który semantyczny znacznik HTML5 powinien wystąpić na stronie tylko raz?

A.
<header>
B.
<article>
C.
<main>
D.
<section>
Znacznik <main> obejmuje główną, unikalną treść strony - tę specyficzną dla danej podstrony, bez powtarzalnych elementów jak nagłówek czy menu. Zgodnie ze standardem na stronie powinien wystąpić tylko jeden widoczny <main>, co ułatwia nawigację technologiom wspomagającym (czytniki ekranu mogą od razu przejść do treści głównej). Pozostałe znaczniki semantyczne mogą się powtarzać. Dlatego tylko raz na stronie występuje <main>.

Pytanie 40

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Które zapytanie SQL należy wykonać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby, Adresy;
B. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
Poprawne zapytanie korzysta z jawnego złączenia tabel: SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;. Kluczowe są tu dwie rzeczy: użycie słowa kluczowego JOIN oraz właściwy warunek ON, który łączy klucz obcy z kluczem głównym. W tabeli Osoby kolumna Adresy_id jest kluczem obcym (FK), który wskazuje na kolumnę id w tabeli Adresy. To dokładnie odzwierciedla relację jeden‑do‑wielu narysowaną na diagramie. Dzięki temu baza danych wie, które miasto przypisać do którego nazwiska. Takie podejście jest zgodne ze standardem SQL i dobrą praktyką w relacyjnych bazach danych. Jawne JOIN-y są czytelne, łatwe do modyfikacji (np. dodanie kolejnych tabel lub warunków filtrowania) i dobrze współpracują z optymalizatorem zapytań. W praktycznych projektach, np. w aplikacjach webowych, właśnie tak buduje się zapytania: łączymy tabelę użytkowników lub klientów z tabelą adresów, zamówień, faktur, logów itp. zawsze po kluczach głównych i obcych, a nie po przypadkowo dobranych kolumnach. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania nazw tabel przy kolumnach, czyli Osoby.nazwisko, Adresy.Miasto – zmniejsza to ryzyko konfliktu nazw i poprawia czytelność kodu SQL. Gdyby w przyszłości w którejś tabeli pojawiła się druga kolumna o nazwie Miasto, zapytanie nadal byłoby jednoznaczne. W większych systemach, gdzie dochodzą dodatkowe warunki (WHERE, ORDER BY, GROUP BY), taka struktura zapytania z JOIN ON jest po prostu dużo łatwiejsza w utrzymaniu i debugowaniu. Warto też pamiętać, że relacja jeden‑do‑wielu oznacza, że jedna osoba może mieć wiele adresów albo jeden adres może być przypisany do wielu osób – dokładne powiązanie zależy od modelu, ale technika złączenia po kluczu obcym pozostaje taka sama.