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: 4 lipca 2026 17:53
  • Data zakończenia: 4 lipca 2026 18:14

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

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

Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

<?php
class Owoc {
  function __construct() {     echo "test1";     }
  function __destruct() {     echo "test2";     }
}
$gruszka = new Owoc();
?>
A. Pojawi się tylko komunikat "test1"
B. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
C. Nie zostanie wyświetlony żaden komunikat
D. Pojawi się jedynie komunikat "test2"
W analizie skryptu PHP ważne jest zrozumienie roli metod specjalnych jak __construct() i __destruct(). __construct() uruchamia się podczas tworzenia obiektu, a __destruct() w momencie niszczenia obiektu. Odpowiedź wskazująca, że żaden napis się nie wyświetli, ignoruje fakt, że zarówno konstruktor jak i destruktor wywołują funkcję echo. Przy odpowiedzi, że wyświetli się tylko napis test1, pominięto działanie metody __destruct(), która następuje po zakończeniu skryptu. Natomiast stwierdzenie, że wyświetli się tylko napis test2 ignoruje działanie konstruktora, który zostaje niezwłocznie aktywowany po stworzeniu obiektu $gruszka. Częstym błędem jest nieujmowanie pełnego cyklu życia obiektu, co prowadzi do nieprawidłowego zrozumienia działania destruktorów, zwłaszcza że uruchamiane są one automatycznie, wpływając na zarządzanie zasobami i pamięcią. Zrozumienie tych mechanizmów jest kluczowe w efektywnym zarządzaniu kodem w PHP, szczególnie w zaawansowanych projektach obiektowych.

Pytanie 2

Jakie polecenie pozwala na dodanie kolumny zadaniekompletne do tabeli zadania?

A. ADD COLUMN zadaniekompletne WITH zadania
B. INSERT INTO zadania VALUES zadaniakompletne
C. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
D. CREATEINDEX zadania ADD COLUMN zadaniekompletne int
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest rzeczywiście na miejscu. To polecenie ALTER TABLE to standardowy sposób na zmiany w tabelach w SQL. Dzięki niemu możemy dodawać, usuwać czy zmieniać kolumny, a także wprowadzać różne ograniczenia. W tym przypadku dodajemy nową kolumnę 'zadaniekompletne', która będzie przyjmować wartości całkowite (int). Fajnym przykładem zastosowania tego polecenia może być śledzenie postępu zadań w projekcie. Kolumna 'zadaniekompletne' mogłaby oznaczać, czy zadanie jest skończone (np. 0 dla nieukończonego, 1 dla ukończonego). Zawsze warto pomyśleć o tym, jak takie zmiany mogą wpłynąć na istniejące dane oraz aplikacje korzystające z tej tabeli, żeby nie narazić się na różne problemy z danymi.

Pytanie 3

W języku JavaScript funkcja document.getElementById() ma na celu

A. pobrać dane z pola formularza i zapisać je do zmiennej id
B. umieścić tekst o treści 'id' na stronie internetowej
C. sprawdzić poprawność formularza z identyfikatorem id
D. zwrócić odnośnik do pierwszego elementu HTML o określonym id
Metoda document.getElementById() jest jedną z kluczowych funkcji w JavaScript, używaną do interakcji z elementami HTML w dokumentach DOM (Document Object Model). Jej głównym zadaniem jest zwrócenie odniesienia do pierwszego elementu w dokumencie HTML, który posiada określony atrybut id. Atrybut ten powinien być unikalny w obrębie dokumentu, co pozwala na jednoznaczną identyfikację elementu. Przykładowo, jeśli mamy element <div id='myElement'>Witaj świecie</div>, to użycie document.getElementById('myElement') zwróci nam ten konkretny element. Można następnie manipulować tym elementem, zmieniając jego zawartość, styl lub atrybuty, co jest nieocenione w tworzeniu dynamicznych aplikacji webowych. Warto zaznaczyć, że ta metoda jest częścią specyfikacji DOM Level 1 i jest szeroko wspierana przez wszystkie nowoczesne przeglądarki. W kontekście optymalizacji wydajności, uzyskiwanie dostępu do elementów za pomocą ich id jest znacznie szybsze i bardziej efektywne niż stosowanie selektorów CSS. W praktyce, użycie tej metody w kodzie JavaScript jest kluczowe dla wielu operacji DOM, co sprawia, że jest to fundament, na którym opiera się wiele aplikacji webowych.

Pytanie 4

Jaką wartość w formacie RGB będzie miała barwa oznaczona kodem heksadecymalnym: #1510FE?

A. rgb(21, 16, FE)
B. rgb(21, 16, 255)
C. rgb(15, 10, FE)
D. rgb(21, 16, 254)
Odpowiedź rgb(21, 16, 254) jest dobra, bo te wartości RGB pochodzą z kodu heksadecymalnego #1510FE. W tym kodzie każda para cyfr pokazuje, jak mocno świeci dany kolor: od 00, co oznacza brak koloru, do FF, gdzie mamy pełną intensywność. W naszym przypadku, pierwsza para '15' to kolor czerwony, '10' to zielony, a 'FE' to niebieski. Jak to przeliczymy na dziesiętny, to '15' daje nam 21, '10' daje 16, a 'FE' to 254. I stąd mamy rgb(21, 16, 254). Te wartości są super przydatne, na przykład przy tworzeniu stylów CSS, gdzie kolory są podstawą. Warto ogarnąć, jak przerabiać kolory z jednego formatu na drugi – to naprawdę pomaga w projektowaniu grafiki i stron www.

Pytanie 5

W języku HTML atrybut shape w znaczniku area, który definiuje typ obszaru, może mieć wartość

A. poly, square, circle
B. rect, square, circle
C. rect, poly, circle
D. rect, triangle, circle
Wybór nieprawidłowych wartości atrybutu shape może prowadzić do istotnych deficytów w funkcjonalności interaktywnych map obrazów. Na przykład, odpowiedź z wykorzystaniem wartości triangle jest błędna, gdyż HTML nie definiuje obsługi trójkąta jako kształtu obszaru w znaczniku area. Użytkownicy mogą błędnie zakładać, że różne kształty mogą być dowolnie definiowane, co jest mylnym podejściem, ponieważ HTML ma ściśle określone standardy dotyczące kształtów. Odpowiedzi takie jak square czy rectangle mogą prowadzić do nieporozumień, gdyż square jest de facto specjalnym przypadkiem rect. W praktyce, zrozumienie różnicy pomiędzy tymi wartościami oraz ich właściwe wykorzystanie jest kluczowe dla osiągnięcia zamierzonych celów w zakresie interaktywności. Używanie niewłaściwych kształtów może skutkować niewłaściwą nawigacją na stronie, co negatywnie wpływa na doświadczenia użytkowników oraz dostępność treści. Dlatego ważne jest, aby projektanci stron WWW opierali się na rzetelnych źródłach dokumentacji oraz standardów W3C, które definiują, jakie kształty są dostępne oraz w jaki sposób powinny być stosowane. Zastosowanie niepoprawnych wartości nie tylko wpłynie na działanie mapy, ale również może prowadzić do błędów w SEO, ponieważ niewłaściwie zdefiniowane obszary mogą być pomijane przez wyszukiwarki, co ogranicza widoczność strony w sieci.

Pytanie 6

Gdy zmienna $x przechowuje dowolną dodatnią liczbę naturalną, poniższy kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x) 
{
    echo $licznik;
    $licznik++;
}
A. przypadkowe liczby z zakresu (0, x)
B. kolejne liczby od 0 do x-1
C. kolejne liczby od x do 0
D. liczby wprowadzane z klawiatury, aż do momentu wprowadzenia wartości x
Analizując niepoprawne odpowiedzi, można zauważyć kilka błędnych założeń. Pierwsze z nich zakłada, że kod ma za zadanie wyświetlać liczby wczytywane z klawiatury, aż wczytana zostanie wartość x. Nie jest to poprawne, ponieważ nie ma tu żadnej interakcji z użytkownikiem - wszystko odbywa się automatycznie na podstawie zadeklarowanej wartości x. Druga błędna odpowiedź sugeruje, że liczby są wyświetlane od x do 0, co jest nieprawidłowe, ponieważ pętla zaczyna od 0 i kończy na x-1. Trzecia niepoprawna odpowiedź sugeruje, że kod generuje losowe liczby z przedziału (0, x). Nie jest to prawda, ponieważ nie ma tu żadnego mechanizmu generowania liczb losowych. To błędne przypuszczenie wynika prawdopodobnie z niewłaściwego zrozumienia mechanizmu pętli i operacji na zmiennych. Wszystkie te błędne odpowiedzi pokazują, jak ważne jest prawidłowe rozumienie podstawowych konstrukcji języka programowania i mechanizmów sterowania przepływem danych.

Pytanie 7

W bazie danych znajduje się tabela ksiazki, która zawiera pola: tytul, id_autora, data_wypoz oraz id_czytelnika. Co dzień generowany jest raport dotyczący książek wypożyczonych w danym dniu, który prezentuje tylko tytuły książek. Która z poniższych kwerend SQL będzie odpowiednia do utworzenia tego raportu?

A. SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATE_NT_E()
B. SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE()
C. SELECT tytul FROM ksiazki
D. SELECT * FROM ksiazki
Wybrana kwerenda SQL, czyli 'SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE();', jest poprawna, ponieważ precyzyjnie spełnia wymagania zadania. Kwerenda ta wybiera jedynie tytuły książek z tabeli 'ksiazki', które zostały wypożyczone w dniu, który odpowiada bieżącej dacie. Funkcja 'CURRENT_DATE()' zwraca datę systemową w formacie YYYY-MM-DD, co pozwala na prawidłowe porównanie z polem 'data_wypoz'. Takie podejście jest zgodne z dobrymi praktykami w zakresie analizy baz danych, gdzie minimalizowanie liczby zwracanych danych do niezbędnego minimum znacząco poprawia wydajność zapytań. W praktyce, taka kwerenda może być przydatna w systemach bibliotek, które generują codzienne raporty wypożyczeń, umożliwiając bibliotekarzom szybki dostęp do informacji o książkach, które były popularne danego dnia. Warto także pamiętać o możliwości używania dodatkowych filtrów, na przykład według konkretnego czytelnika, co zwiększa funkcjonalność raportu.

Pytanie 8

Której właściwości CSS użyć, aby ustawić odstępy między WYRAZAMI?

A.
white-space
B.
letter-space
C.
word-spacing
D.
line-spacing
Odstępy między WYRAZAMI ustawia w CSS właściwość word-spacing, np. word-spacing: 5px; rozsuwa słowa. Dlatego do odstępów między wyrazami służy word-spacing.

Pytanie 9

Która kwerenda wybierze z tabeli Uczniowie tylko osoby o imieniu „Aleksandra” urodzone PO 1998 roku?

A.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" AND rok_urodzenia < "1998";
B.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" AND rok_urodzenia > "1998";
C.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" OR rok_urodzenia < "1998";
D.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" OR rok_urodzenia > "1998";
Zadanie stawia dwa warunki, które muszą być spełnione JEDNOCZEŚNIE: imię „Aleksandra” oraz urodzenie po 1998 - takie połączenie zapewnia operator AND, a „po roku” to rok_urodzenia > "1998". Daje to SELECT * FROM Uczniowie WHERE imie = "Aleksandra" AND rok_urodzenia > "1998";. Dlatego ta kwerenda jest poprawna.

Pytanie 10

Który znacznik służy do tworzenia LISTY w HTML?

A.
<th>
B.
<td>
C.
<ul>
D.
<tr>
Listę nieuporządkowaną (punktowaną) tworzy znacznik <ul>, a jej elementy umieszcza się w <li>. Dlatego listę tworzy <ul>.

Pytanie 11

Podane w ramce polecenie SQL nadaje prawo SELECT

GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';
A. do wszystkich pól w tabeli hurtownia.
B. do wszystkich tabel w bazie hurtownia.
C. dla użytkownika 'root' na serwerze sprzedawca.
D. dla użytkownika 'root' na serwerze localhost.
To polecenie GRANT jest typowym przykładem, gdzie drobny szczegół składni całkowicie zmienia znaczenie. Wiele osób intuicyjnie myśli, że skoro pojawia się nazwa hurtownia, to chodzi o tabelę o takiej nazwie, albo że skoro często pracuje się na koncie root, to uprawnienia dotyczą właśnie jego. Tutaj jednak kluczowe są dwie rzeczy: zapis hurtownia.* oraz dokładna forma 'sprzedawca'@'localhost'.
W MySQL konstrukcja nazwa_bazy.* jednoznacznie oznacza całą bazę danych, czyli wszystkie tabele znajdujące się w tej bazie. Gwiazdka nie oznacza „wszystkich pól w tabeli”, jak w SELECT * FROM tabela; tylko „wszystkie obiekty danego typu w tym kontekście”, czyli w tym wypadku wszystkie tabele w bazie hurtownia. Błąd myślowy bierze się stąd, że ludzie przenoszą swoje skojarzenia z SELECT * na GRANT, a to są jednak różne miejsca w składni SQL.
Jeśli chcielibyśmy nadać uprawnienie tylko do jednej tabeli, używamy zapisu nazwa_bazy.nazwa_tabeli, bez gwiazdki. Na przykład GRANT SELECT ON hurtownia.klienci TO 'sprzedawca'@'localhost'; dotyczyłoby tylko tabeli klienci. Wtedy dopiero można by mówić o dostępie do wszystkich pól w tej konkretnej tabeli, bo SELECT z założenia domyślnie widzi wszystkie kolumny, chyba że zastosujemy uprawnienia na poziomie kolumn, co jest już bardziej zaawansowanym tematem.
Druga częsta pomyłka to utożsamianie każdego polecenia GRANT z użytkownikiem root. W MySQL użytkownik jest identyfikowany przez parę login@host. W naszym przykładzie stoi tam wyraźnie 'sprzedawca'@'localhost', więc nie ma tu żadnego roota. Gdyby chodziło o konto root, składnia musiałaby wyglądać np. 'root'@'localhost'. Co więcej, host sprzedawca w ogóle nie występuje w tym poleceniu – pojawia się tylko jako nazwa użytkownika. To powoduje czasem dodatkowe zamieszanie: ktoś widzi słowo sprzedawca i myśli, że to nazwa serwera, a localhost to użytkownik, co jest całkowicie odwrotnie.
Z punktu widzenia dobrych praktyk administracji bazą danych, nadawanie uprawnień rootowi poleceniem GRANT w aplikacjach produkcyjnych jest zresztą złym pomysłem. Standardem jest tworzenie osobnych kont, takich jak sprzedawca, księgowy czy aplikacja_web, z precyzyjnie dobranymi uprawnieniami do konkretnych baz. Wtedy dokładnie wiemy, kto może co czytać i modyfikować. Z mojego doświadczenia wynika, że większość problemów z bezpieczeństwem wynika właśnie z używania zbyt szerokich uprawnień, głównie konta root tam, gdzie absolutnie nie jest potrzebne.
Podsumowując: to polecenie nie nadaje dostępu do „wszystkich pól w tabeli hurtownia”, bo hurtownia jest tu bazą, a nie tabelą. Nie dotyczy też użytkownika root ani żadnego serwera o nazwie sprzedawca. Nadaje ono prawo SELECT do wszystkich tabel w bazie hurtownia konkretnemu użytkownikowi o nazwie sprzedawca, który łączy się z hosta localhost. Zrozumienie tej składni jest kluczowe przy zarządzaniu uprawnieniami w MySQL i ogólnie w systemach baz danych.

Pytanie 12

Jakie będzie wynikowe wyjście po uruchomieniu tego skryptu PHP?

<?php
$kolory = array("czarny", "zielony", "niebieski", "biały");
rsort($kolory);
$ile = count($kolory);
for($x = 0; $x < $ile; $x++)
{
  echo $kolory[$x].", ";
}
?>
A. biały, czarny, niebieski, zielony
B. biały, niebieski, zielony, czarny
C. zielony, niebieski, czarny, biały
D. czarny, zielony, niebieski, biały
W przypadku podanego skryptu PHP błędne odpowiedzi wynikają z niewłaściwej interpretacji działania funkcji rsort(). Zadaniem tej funkcji jest sortowanie elementów tablicy w porządku malejącym na podstawie wartości ASCII pierwszego znaku każdego elementu. Jeśli przyjrzymy się tablicy zawierającej słowa czarny zielony niebieski biały funkcja rsort() ułoży je w odwrotnej kolejności alfabetycznej zaczynając od słów których pierwsze litery mają wyższą wartość ASCII. Typowym błędem może być niezrozumienie że rsort() działa na całych wartościach łańcuchów a nie tylko na pierwszych literach. Należy również pamiętać że funkcje sortujące takie jak rsort() nie zwracają nowej tablicy lecz modyfikują istniejącą co czasem może prowadzić do niepoprawnych założeń dotyczących oryginalnych danych. Innym częstym błędem jest zakładanie że rsort() zachowuje porządek elementów o tej samej wartości początkowej co nie jest prawdą jeśli dwa elementy miałyby tę samą pierwszą literę rsort() może zmienić ich kolejność względem siebie. Właściwe zrozumienie działania funkcji sortujących w PHP jest niezbędne aby uniknąć błędów logicznych i zapewnić że nasze aplikacje działają zgodnie z oczekiwaniami.

Pytanie 13

Baza danych księgarni ma tabelę ksiazki z polami: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Jak utworzyć raport dotyczący sprzedanych książek, który zawiera tytuły oraz nazwiska autorów?

A. stworzyć kwerendę, która wyszukuje tytuły książek
B. Ustalić relację 1..1 pomiędzy tabelami ksiazki i autorzy, a następnie stworzyć kwerendę łączącą obie tabele
C. Zdefiniować relację 1..n między tabelami ksiazki i autorzy, a następnie stworzyć kwerendę łączącą obie tabele
D. utworzyć dwie oddzielne kwerendy: pierwszą, która wyszuka tytuły książek, a drugą, która pobierze nazwiska autorów
Zdefiniowanie relacji 1..n między tabelami 'ksiazki' oraz 'autorzy' jest kluczowe dla prawidłowego modelowania danych w bazach danych. Relacja 1..n oznacza, że jeden autor może mieć wiele książek, co jest w pełni zgodne z rzeczywistością w kontekście księgarni. Aby stworzyć raport sprzedanych książek z tytułami i nazwiskami autorów, konieczne jest, aby obie tabele były połączone w sposób umożliwiający łatwy dostęp do danych. Po utworzeniu relacji można skorzystać z kwerendy SQL, która wykorzystuje złączenie (JOIN) do pobrania informacji z obu tabel. Przykładowe zapytanie może wyglądać następująco: SELECT ksiazki.tytul, autorzy.nazwisko FROM ksiazki JOIN autorzy ON ksiazki.idAutor = autorzy.id. Tego typu podejście jest zgodne z dobrymi praktykami w projektowaniu baz danych, umożliwiając łatwe skalowanie oraz modyfikację w przyszłości.

Pytanie 14

Który atrybut znacznika <video> włącza ciągłe odtwarzanie (w pętli)?

A.
poster
B.
muted
C.
controls
D.
loop
Atrybut loop w <video> (i <audio>) sprawia, że nagranie po zakończeniu odtwarza się od początku, czyli w pętli. To atrybut logiczny - sama jego obecność włącza tę funkcję. Dlatego ciągłe odtwarzanie włącza loop.

Pytanie 15

Jaką formę ma instrukcja w języku PHP, która tworzy obiekt pkt w klasy Punkt zdefiniowanej w klasie?

Ilustracja do pytania
A. Punkt() pkt;
B. pkt Punkt();
C. pkt Punkt;
D. pkt= new Punkt();
Instrukcja pkt= new Punkt(); jest prawidłowa, ponieważ w języku PHP tworzenie nowego obiektu klasy odbywa się przy użyciu słowa kluczowego new. Operator new inicjalizuje nową instancję klasy, co umożliwia dostęp do jej metod i właściwości. W tym przypadku Punkt jest wcześniej zdefiniowaną klasą zawierającą publiczne właściwości $x i $y. Konstrukcja ta jest fundamentalna w programowaniu obiektowym, pozwalając na enkapsulację i bardziej strukturalne podejście do kodowania. Tworzenie obiektów w PHP jest w zgodzie z dobrymi praktykami projektowymi, które zakładają pisanie modułowego i łatwego w utrzymaniu kodu. Przykładem praktycznego zastosowania może być modelowanie rzeczywistego układu współrzędnych, gdzie każdy punkt na płaszczyźnie jest reprezentowany przez obiekt tej klasy. Warto zwrócić uwagę, że użycie new Punkt() z przypisaniem do zmiennej pkt pozwala na manipulowanie danymi punktowymi w bardziej złożony sposób, jak na przykład obliczanie odległości między punktami czy też transformacje geometryczne. Takie podejście zwiększa czytelność kodu oraz ułatwia jego późniejsze modyfikacje. Zastosowanie obiektów sprzyja także wielokrotnemu użyciu kodu, co jest kluczowe w dużych projektach oprogramowania. Przyjęcie konwencji programowania obiektowego wspiera ponadto współpracę zespołową poprzez wykorzystanie zrozumiałych i dobrze zdefiniowanych interfejsów klasowych.

Pytanie 16

W CSS zapisany w ten sposób:

p { background-image: url("rysunek.png"); }

spowoduje, że rysunek.png stanie się

A. tłem całej witryny
B. widoczny obok każdego akapitu
C. tłem każdego akapitu
D. wyświetlony, jeśli w kodzie użyty zostanie znacznik img
Zapis CSS p { background-image: url("rysunek.png"); } oznacza, że dla każdego elementu akapitowego <p> w dokumencie zostanie ustawione tło w postaci grafiki o nazwie rysunek.png. Ta reguła selektora p dotyczy wyłącznie znaczników akapitu, więc nie wpłynie na inne elementy strony, takie jak body czy img. Tak się to stosuje w praktyce: projektując na przykład bloga, możesz dodać delikatny deseń lub obrazek w tle akapitu, żeby całość wyglądała ciekawiej albo podkreślała styl witryny. Co ciekawe, background-image w CSS pozwala na olbrzymią elastyczność — możesz wykorzystać obrazy, gradienty czy nawet SVG jako tło. Standardy CSS jasno to definiują: background-image działa zawsze na tym elemencie, dla którego zadeklarowano regułę w selektorze. Warto pamiętać, że tło nie przesłoni tekstu w akapicie, tylko się pod nim wyświetli, więc czytelność jest zachowana. Z własnego doświadczenia uważam, że umiejętność stosowania background-image do konkretnych elementów to jedno z podstawowych narzędzi webdevelopera — pozwala przygotować naprawdę estetyczne i przejrzyste layouty. Dobrym nawykiem jest także testowanie widoczności tła na różnych urządzeniach, bo rozdzielczości i skalowanie potrafią zaskoczyć. Dla porządku, jeśli podasz background-image bez żadnych dodatkowych parametrów (jak powtarzanie czy pozycjonowanie), obrazek domyślnie będzie się powtarzał w poziomie i pionie, aż pokryje cały akapit.

Pytanie 17

Które stwierdzenie na temat funkcji fun1 zapisanej w języku JavaScript jest prawdziwe?

var x = fun1(3, 24, "Mnożymy");

function fun1(a, b, c) {
    return a * b;
}
A. Ma dwa parametry liczbowe i zwraca wartość typu napisowego.
B. Ma trzy parametry wejściowe, w tym jeden typu napisowego, i zwraca wartość numeryczną.
C. Przyjmuje trzy parametry, lecz nie zwraca wartości.
D. Zwraca dwie wartości przechowywane w zmiennych a i b.
Gratulacje, Twoja odpowiedź jest poprawna. Istotą funkcji w JavaScript jest to, że mogą one przyjmować dowolną liczbę argumentów i mogą zwracać wartość. W przypadku funkcji fun1, przyjmuje ona trzy parametry: a, b, c. Parametr c jest typu napisowego, co jest istotne, ponieważ JavaScript jest językiem słabo typowanym, co oznacza, że możemy przekazywać różne typy zmiennych jako argumenty dla funkcji. Funkcja fun1 zwraca wynik mnożenia dwóch pierwszych parametrów, co jest wartością numeryczną. To jest zgodne z zasadami JavaScript, gdzie funkcje mogą zwracać dowolne wartości - w tym przypadku wartość numeryczną. W praktyce, funkcje takie jak ta mogą być używane w różnych kontekstach, na przykład do manipulacji danymi wejściowymi i zwracania przetworzonych wyników.

Pytanie 18

Wskaż, jak wygląda komentarz wieloliniowy w języku PHP?

A. //
B. <!-- -->
C. /* */
D. #
Komentarz wieloliniowy w języku PHP jest oznaczany przez symbole '/*' na początku oraz '*/' na końcu. Tego typu komentarze pozwalają na umieszczanie dłuższych opisów lub wyjaśnień w kodzie, co jest szczególnie przydatne w przypadku bardziej złożonych fragmentów. Przykładowo, jeśli mamy funkcję, która wykonuje skomplikowane obliczenia, można użyć komentarza wieloliniowego, aby szczegółowo opisać, co ta funkcja robi oraz jakie są jej wejścia i wyjścia. W dobie pracy zespołowej i dbałości o dokumentację kodu, stosowanie komentarzy do wyjaśnienia celów, metod i ograniczeń kodu jest dobrą praktyką. Dzięki temu, programiści, którzy będą pracować z danym fragmentem kodu w przyszłości, będą mieli pełniejsze zrozumienie jego działania. Używanie komentarzy wieloliniowych w PHP jest zgodne z najlepszymi praktykami programistycznymi, sprzyja utrzymaniu porządku w kodzie oraz ułatwia jego późniejsze modyfikacje.

Pytanie 19

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. W instrukcji if znajduje się przypisanie zamiast operacji porównania
B. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
C. Przed instrukcją else nie powinno być średnika
D. Zmienne zostały błędnie zadeklarowane
W tym przypadku mamy do czynienia z częstym błędem w programowaniu, gdzie zamiast porównania użyto operatora przypisania. W języku JavaScript operator przypisania '=' służy do przypisywania wartości do zmiennej, natomiast do porównania dwóch wartości używa się operatora '==' dla równości lub '===' dla równości i sprawdzania typu. Użycie '=' w warunku if powoduje przypisanie wartości y do x, co zawsze zwróci true, jeśli y jest różne od zera. To prowadzi do nieoczekiwanych rezultatów w logice programu. Poprawnym zapisem w tym kontekście jest if (x == y). Warto pamiętać o dobrych praktykach, które zalecają używanie '===' zamiast '==' dla uzyskania lepszej precyzji i uniknięcia błędów spowodowanych niejawnych konwersji typów. To podejście minimalizuje ryzyko błędów logicznych i poprawia czytelność kodu. Regularne stosowanie takich dobrych praktyk zwiększa jakość kodu i ułatwia jego późniejszą konserwację oraz rozwój.

Pytanie 20

Który znacznik daje TAKI SAM efekt wizualny co <i> (kursywa)?

A.
<pre>
B.
<em>
C.
<u>
D.
<strong>
Znacznik <em> domyślnie wyświetla tekst KURSYWĄ, tak samo jak <i>, więc bez stylów CSS wyglądają identycznie. Różnią się znaczeniem: <em> niesie nacisk znaczeniowy (emphasis), a <i> to czysto wizualne pochylenie. Dlatego ten sam efekt co <i> daje <em>.

Pytanie 21

Deklaracja background-attachment: scroll sprawia, że:

A. tło będzie nieruchome, a treść będzie się przewijać
B. grafika tła będzie powtarzana (kafelki)
C. grafika tła pojawi się w prawym górnym rogu
D. tło będzie przewijane razem z zawartością strony
Pozostałe efekty dają inne właściwości tła. Powtarzanie tła w kafelki ustawia background-repeat, a nie background-attachment. Nieruchome tło, po którym przewija się treść, uzyskuje się wartością fixed - czyli odwrotnością scroll. Położenie obrazu tła (np. w rogu) określa background-position. Wartość scroll odpowiada wyłącznie za to, że tło przewija się wraz z zawartością strony, dlatego ta odpowiedź jest poprawna.

Pytanie 22

Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?

x = 0;
x += 10;
A. x = 10; x = 0;
B. x = 0; x++; x = x + 9;
C. x = 10; x = x + 10;
D. x = 0; x--; x *= 9;
Wybrana przez Ciebie odpowiedź, niestety nie jest zgodna z przykładem kodu przedstawionym na zdjęciu. Wszystkie niepoprawne odpowiedzi zawierają błędny rozumowanie dotyczące operacji na zmiennych w JavaScript. Bardzo częstym błędem jest mylenie operatorów inkrementacji i dekrementacji. Operator '--' w JavaScript zmniejsza wartość zmiennej o 1, a nie zwiększa. Również, operator '*=' jest skrótem dla mnożenia i przypisania wyniku do zmiennej, a nie dla dodawania. Kolejnym błędem jest niezrozumienie przypisania wartości do zmiennej. Instrukcja 'x = 10; x = 0;' przypisuje najpierw wartość 10 do zmiennej 'x', a potem nadpisuje ją wartością 0, co jest niezgodne z kodem na zdjęciu. To są typowe błędy, które prowadzą do niepoprawnych wniosków na temat działania JavaScript. Ważne jest zrozumienie podstawowych operatorów i ich działania, aby uniknąć takich pomyłek. Pamiętaj, że zrozumienie zasad działania języka programowania jest kluczowe dla tworzenia poprawnych i efektywnych kodów.

Pytanie 23

body{
background-image: url"rysunek.gif");
background-repeat: repeat-y;
}
W przedstawionej definicji stylu CSS, powtarzanie dotyczy

A. rysunku umieszczonego w tle strony w poziomie
B. rysunku osadzonego znacznikiem img
C. tła każdego znacznika akapitu
D. rysunku znajdującego się w tle strony w pionie
W definicji stylu CSS, zastosowane tło z rysunkiem 'rysunek.gif' jest powtarzane w pionie dzięki właściwości 'background-repeat: repeat-y'. Oznacza to, że obrazek będzie powielany wzdłuż osi Y, co skutkuje tym, że obrazek jest umieszczany jeden nad drugim, tworząc wrażenie ciągłości. Aby lepiej zrozumieć działanie tej właściwości, warto przyjrzeć się innym ustawieniom tła. Na przykład, właściwość 'background-repeat: repeat' powtarza obraz zarówno w poziomie, jak i w pionie, natomiast 'background-repeat: no-repeat' zapobiega jakimkolwiek powtórzeniom. W standardach CSS, takich jak CSS3, definiowanie tła w ten sposób jest zgodne z zasadami, które pozwalają na elastyczne projektowanie stron internetowych. W praktyce, użycie powtarzającego się tła może być przydatne w przypadku prostych wzorów, które mają stworzyć efekt wizualny, nie obciążając jednocześnie zbytnio zasobów, co jest istotne dla wydajności ładowania strony.

Pytanie 24

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

A.
<section>
B.
<article>
C.
<header>
D.
<main>
Pozostałe znaczniki mogą pojawić się wielokrotnie. <header> oznacza nagłówek - może być jeden dla całej strony, ale też osobny dla każdej sekcji czy artykułu. <article> reprezentuje samodzielną treść (np. wpis, wiadomość), więc na jednej stronie może ich być wiele. <section> grupuje treść tematycznie i również występuje dowolną liczbę razy. Tylko główna treść <main> powinna pojawić się raz, dlatego ta odpowiedź jest poprawna.

Pytanie 25

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 3
B. Efekt 4
C. Efekt 2
D. Efekt 1
Efekt 3 jest poprawny ponieważ formatowanie CSS zawiera ustawienie padding 20px co oznacza że wokół tekstu znajduje się przestrzeń o szerokości 20 pikseli Dodatkowo kolor tekstu jest niebieski zgodnie z ustawieniem color blue Także font-weight 900 wskazuje że tekst powinien być pogrubiony w najwyższym stopniu co jest widoczne w trzecim efekcie Obramowanie ma szerokość 1 piksel i jest solidne co oznacza że jest to ciągła linia wokół tekstu Efekt 3 dokładnie odzwierciedla te właściwości Formatowanie takie jest użyteczne w tworzeniu przyciągających uwagę nagłówków lub wyróżnień w treści strony internetowej W praktyce taki styl można zastosować do elementów interfejsu użytkownika które wymagają większej czytelności lub estetycznego oddzielenia od reszty treści Ważne jest aby odpowiednio zrozumieć i wykorzystać właściwości CSS dla uzyskania maksymalnej efektywności w projektowaniu stron internetowych Dobre praktyki obejmują także testowanie stylów na różnych urządzeniach aby upewnić się że wygląd spełnia zamierzone cele we wszystkich kontekstach

Pytanie 26

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <embed> </embed>
B. <section> </section>
C. <div> </div>
D. <video> </video>
Poprawna odpowiedź to umieszczenie znacznika `<source>` wewnątrz `<video>...</video>`. W HTML5 to właśnie element `<video>` jest kontenerem odpowiedzialnym za osadzanie plików wideo na stronie WWW. Atrybuty takie jak `controls`, `autoplay`, `loop`, `muted`, `width` czy `height` przypisujemy właśnie do `<video>`, a nie do `<source>`. Znacznik `<source>` służy głównie do wskazania konkretnego pliku multimedialnego i jego typu MIME, np.: `<video controls width="640" height="360"><source src="film.mp4" type="video/mp4"><source src="film.webm" type="video/webm">Twoja przeglądarka nie obsługuje elementu video.</video>`. Przeglądarka przechodzi po kolei po elementach `<source>` i wybiera pierwszy format, który potrafi odtworzyć. To jest zgodne ze specyfikacją HTML Living Standard (WHATWG) oraz zaleceniami W3C dotyczącymi multimediów w sieci. W praktyce, w projektach komercyjnych, często dodaje się kilka formatów (np. MP4, WebM), właśnie po to, by zapewnić maksymalną kompatybilność między różnymi przeglądarkami i systemami. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania pełnej, semantycznie poprawnej struktury: `<video>` jako główny element odtwarzacza, w środku jeden lub więcej `<source>` i ewentualnie tekst alternatywny. Dzięki temu kod jest czytelny, łatwiej go stylować w CSS, a także lepiej zachowuje się w kontekście dostępności (np. czytniki ekranu widzą, że to element wideo). Dodatkowo, `<video>` można łatwo obsługiwać z poziomu JavaScript, korzystając z jego API (play, pause, currentTime, volume itd.), co w praktyce daje sporą kontrolę nad odtwarzaniem multimediów na stronie.

Pytanie 27

Które z poniższych twierdzeń o definicji funkcji pokazanej w ramce jest prawdziwe?

function czytajImie(){
  var imie=null;
  do {
    imie=prompt("podaj imie: ");
    if (imie.length<3)
    alert("wprowadzony tekst jest niepoprawny");
  } while(imie.length<3);
}
A. Pętla zostanie uruchomiona tylko raz
B. Wczytanie tekstu zakończy się, gdy tekst będzie miał co najmniej 3 znaki
C. Tekst będzie wczytywany do czasu podania liczby większej niż 3
D. Funkcja zawiera pętlę, która powtarza się 3 razy
Funkcja czytajImie zawiera pętlę do-while która działa dopóki długość wprowadzonego ciągu znaków jest mniejsza niż 3 co oznacza że zakończenie pętli nastąpi gdy użytkownik wprowadzi tekst o długości co najmniej 3 znaków W praktyce oznacza to że funkcja wymaga od użytkownika podania imienia które będzie miało przynajmniej trzy znaki co jest powszechną praktyką podczas walidacji danych wejściowych w celu zapewnienia minimalnej ilości informacji Pętla do-while jest szczególnie przydatna w sytuacjach gdy musimy zagwarantować przynajmniej jedno wykonanie bloku kodu co tutaj pozwala na przynajmniej jednorazowe wywołanie okna prompt do wprowadzenia danych Tego typu walidacja jest podstawą podczas programowania interfejsów użytkownika gdzie poprawność i kompletność danych wejściowych jest kluczowa dla dalszego przetwarzania danych Warto również zauważyć że stosowanie tego rodzaju pętli w kontekście walidacji danych zwiększa użyteczność aplikacji poprzez zapewnienie że dane są zgodne z wymaganiami przed ich dalszym przetwarzaniem

Pytanie 28

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. zarządzanie plikami na nośniku
B. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
C. zarządzanie zabezpieczeniami systemu
D. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
Odpowiedź nr 3 jest poprawna, ponieważ rola dbcreator w MS SQL Server umożliwia użytkownikowi tworzenie, modyfikowanie, usuwanie oraz odzyskiwanie baz danych. Użytkownik z tą rolą ma prawo do pełnej kontroli nad bazami danych, co jest istotne w kontekście zarządzania i utrzymania infrastruktury danych. Przykład praktyczny to sytuacja, w której administrator bazy danych potrzebuje utworzyć nową bazę dla aplikacji. Dzięki roli dbcreator może to zrobić bez dodatkowych uprawnień. Rola ta jest zgodna z najlepszymi praktykami w zakresie zarządzania dostępem, gdzie ogranicza się uprawnienia do niezbędnego minimum, ale jednocześnie umożliwia wykonanie kluczowych zadań związanych z zarządzaniem bazą danych. Warto zaznaczyć, że nadmierne przyznawanie uprawnień może prowadzić do problemów związanych z bezpieczeństwem, dlatego istotne jest przydzielanie ról zgodnie z zasadą najmniejszych uprawnień (Least Privilege Principle). Użytkownicy z rolą dbcreator powinni być odpowiednio przeszkoleni i świadomi swoich działań, aby nie wprowadzać niezamierzonych zmian w środowisku produkcyjnym.

Pytanie 29

W kodzie HTML 5, w celu walidacji wartości pola <input type="text"> za pomocą wyrażenia regularnego, należy użyć atrybutu

A. value
B. readonly
C. pattern
D. step
W tym pytaniu chodzi o konkretny mechanizm walidacji wbudowany w HTML5, a nie o ogólne właściwości pól formularza. Walidacja za pomocą wyrażeń regularnych jest w standardzie przypisana do jednego, ściśle określonego atrybutu – właśnie pattern. Inne atrybuty z listy pełnią zupełnie inne role i ich mylenie to dość typowy błąd przy nauce formularzy.

Atrybut step jest używany do określania „kroku” dla wartości liczbowych lub dat, np. w input type="number" czy type="date". Pozwala zdefiniować, o ile ma się zwiększać lub zmniejszać wartość przy użyciu strzałek lub walidować, czy liczba jest wielokrotnością danego kroku. Przykład: step="0.5" przy liczbie zmiennoprzecinkowej. Nie ma on żadnego związku z wyrażeniami regularnymi ani ze zwykłym tekstem w type="text".

value z kolei to po prostu wartość pola – początkowa (domyślna) lub aktualna, odczytywana i modyfikowana przez JavaScript lub wysyłana w formularzu. Ustawienie value nie waliduje danych, tylko je definiuje. Można wprawdzie ręcznie sprawdzać value w JS i dopasowywać je do regexa, ale to już logika skryptu, a nie działanie samego atrybutu w HTML. To pewnie częsty skrót myślowy: „wartość pola” vs. „sprawdzenie wartości pola”, ale przeglądarka sama z siebie nie waliduje na podstawie samego value.

readonly natomiast blokuje możliwość edycji pola przez użytkownika, ale nadal wysyła jego wartość z formularzem. To przydatne, gdy chcemy coś pokazać, ale nie pozwolić na zmianę, np. wygenerowany identyfikator. Nie ma tu żadnej analizy treści, żadnego dopasowywania do wzorca – po prostu pole jest nieedytowalne. Czasem ktoś myśli: „skoro nie można tego zmienić, to jakby jest bezpieczne i zwalidowane”, ale to już bardziej kwestia logiki aplikacji, a nie mechanizmu walidacji.

Mechanizm HTML5 do regexów jest jeden: pattern. Warto go łączyć z innymi atrybutami walidacyjnymi, jak required, minlength, maxlength, type, ale to właśnie pattern odpowiada za dopasowanie tekstu do określonego wzorca. Wszystko inne z tej listy pełni pomocnicze lub zupełnie inne funkcje i nie zastępuje typowej walidacji opartej o wyrażenia regularne.

Pytanie 30

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. nav { float: right; } section { float: right; }
C. nav { float: right; }
D. aside {float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie.

W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie.

Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 31

Jaki jest cel funkcji napisanej w PHP?

function fun1($liczba)
{
  if($liczba % 2 == 0)
    return 1;

  return 0;
}
A. Zwrócenie wartości 1, gdy liczba jest parzysta
B. Wypisanie liczby nieparzystej
C. Wypisanie liczby parzystej
D. Zwrócenie wartości 0, gdy liczba jest parzysta
Funkcja w języku PHP została zaprogramowana w taki sposób, aby najpierw sprawdzić, czy podana liczba jest parzysta, używając operatora modulo (%). Operacja $liczba % 2 == 0 sprawdza resztę z dzielenia przez 2, która dla liczb parzystych wynosi 0. Jeśli warunek jest spełniony, funkcja natychmiast zwraca wartość 1, co oznacza, że liczba jest parzysta. Taki sposób kodowania jest wydajny, ponieważ funkcja zakończy działanie natychmiast po spełnieniu warunku, bez dalszego przetwarzania. Jest to dobry przykład stosowania operacji warunkowych w funkcjach, co jest zgodne z dobrymi praktykami programistycznymi, zwłaszcza gdy zależność logiczna jest prosta i może być szybko zidentyfikowana. Takie funkcje często wykorzystywane są w systemach walidacji danych, gdzie szybkie potwierdzenie poprawności danych jest kluczowe dla wydajności całego systemu. Pozwala również na łatwe rozszerzenie logiki, jeśli w przyszłości zajdzie taka potrzeba.

Pytanie 32

W języku PHP zapis

// 
pozwala na:
A. dodanie komentarza wieloliniowego
B. użycie tablicy superglobalnej
C. dodanie komentarza jednoliniowego
D. użycie operatora dzielenia bez reszty
W języku PHP zapis <pre>//</pre> służy do wstawiania komentarzy jednoliniowych. Komentarze są istotnym elementem kodu, ponieważ pozwalają programistom na dokumentowanie i wyjaśnianie fragmentów kodu, co ułatwia jego zrozumienie i utrzymanie. W PHP, komentarze jednoliniowe zaczynają się od dwóch ukośników i rozciągają się do końca danej linii. Przykładowo, zapis <pre>// To jest komentarz jednoliniowy</pre> informuje innych programistów, że dany tekst jest komentarzem, który nie zostanie wykonany przez interpreter PHP. Stosowanie komentarzy jest zgodne z najlepszymi praktykami programowania, ponieważ poprawia czytelność kodu oraz pozwala na szybszą analizę struktury i logiki aplikacji. Dobrą praktyką jest dokumentowanie nie tylko skomplikowanych fragmentów, ale również takich, które mogą wydawać się oczywiste, aby zminimalizować ryzyko nieporozumień w przyszłości. Komentarze pomagają także w pracy zespołowej, gdzie wiele osób może pracować nad tym samym projektem.

Pytanie 33

W języku HTML zdefiniowano listę, która

<ol>
  <li>biały</li>
  <li>czerwony
    <ul>
      <li>różowy</li>
      <li>pomarańczowy</li>
    </ul></li>
  <li>niebieski</li>
</ol>
A. jest numerowana z zagłębioną listą punktowaną
B. jest punktowana z zagłębioną listą numerowaną
C. nie posiada zagłębień i jest punktowana, wyświetla 5 punktów
D. nie zawiera zagłębień i jest numerowana, słowo "niebieski" ma przyporządkowany numer 5
To pytanie świetnie pokazuje, jak w HTML można łączyć różne typy list, czyli listy numerowane (<ol>) oraz punktowane (<ul>). W tym przypadku mamy główną listę numerowaną, gdzie każdy element to <li>. Jednym z tych elementów jest „czerwony”, pod którym zagnieżdżono listę punktowaną z dwoma podpunktami („różowy”, „pomarańczowy”). Taki sposób strukturyzowania treści w HTML to całkowicie zgodna ze specyfikacją praktyka – właśnie dzięki kombinowaniu <ol> i <ul> można czytelnie przedstawiać np. instrukcje czy hierarchiczne zestawienia. Moim zdaniem to jedno z najprostszych, a zarazem najbardziej efektywnych narzędzi do prezentowania hierarchii – nie tylko na stronach technicznych, ale nawet w prostych notatkach. Przeglądarki zawsze renderują <ol> jako listę numerowaną, a <ul> jako wypunktowaną, więc użytkownik końcowy od razu widzi, co jest ważniejsze, a co podrzędne. Takie zagnieżdżenie list to w branży webowej chleb powszedni – np. instrukcje krok po kroku, gdzie niektóre kroki mają dodatkowe podpunkty. Warto pamiętać, że trzymanie się tej struktury i nie mieszanie porządkowania (np. nie zamieniać miejscami <ol> i <ul> bez powodu) ułatwia późniejszą edycję i utrzymanie kodu, co w większych projektach bardzo doceni każdy programista. Sam często stosuję takie rozwiązania i naprawdę nie ma tu lepszej praktyki, jeśli chodzi o przejrzystość kodu HTML.

Pytanie 34

W programowaniu istnieje tylko jeden typ danych, który może przyjąć tylko dwie wartości. Jak nazywa się ten typ?

A. ciągowy
B. logiczy
C. tablicowy
D. znakowy
Typ logiczny, znany również jako typ boolean, jest jedynym typem danych w językach programowania, który przyjmuje wyłącznie dwie wartości: prawda (true) i fałsz (false). To podstawowe założenie czyni go niezwykle ważnym w kontekście programowania, zwłaszcza w logice warunkowej oraz w kontrolowaniu przepływu programu. W praktyce typ logiczny jest szeroko stosowany w instrukcjach warunkowych, takich jak 'if', 'while' czy 'for', gdzie pozwala na podejmowanie decyzji na podstawie spełnienia określonych warunków. Na przykład w języku Python możemy sprawdzić, czy zmienna jest większa od zera, a wynik tej operacji będzie wartością typu logicznego, co pozwoli na podjęcie dalszych działań w programie. Ponadto, typ logiczny odgrywa kluczową rolę w strukturach danych, takich jak listy i słowniki, które mogą przechowywać warunki logiczne jako klucze. Zgodnie z dobrymi praktykami programistycznymi, zaleca się używanie typu logicznego w sytuacjach, gdzie wynik operacji powinien być jednoznaczny, co prowadzi do poprawy czytelności i utrzymywalności kodu.

Pytanie 35

W zaprezentowanym fragmencie dokumentu HTML ustalono stylowanie CSS dla selektora klasy "menu", aby kolor tła tego elementu był zielony. Które z poniższych określeń stylu CSS odpowiada temu stylowaniu?

<div class="menu"></div>
A. div.menu { background-color: green; }
B. div:menu { color: green; }
C. menu { background-color: rgb(0,255,0); }
D. #menu { background-color: rgb(0,255,0); }
Odpowiedź div.menu { background-color: green; } jest prawidłowa, ponieważ odnosi się do selektora klasy w języku CSS. W HTML, atrybut class jest używany do przypisywania elementom jednej lub wielu klas, które mogą być następnie stylizowane w CSS. Selektor klasy jest definiowany przez poprzedzenie nazwy klasy kropką, co pozwala na stylizację wszystkich elementów używających tej klasy. W przypadku selektora div.menu, stylizacja dotyczy wszystkich elementów div z klasą menu. Użycie właściwości background-color z wartością green ustawia zielone tło dla zdefiniowanego elementu. Taki sposób definiowania stylów jest zgodny z dobrymi praktykami, które zalecają użycie klas do stylizacji wielokrotnego użytku w celu zwiększenia elastyczności i czytelności kodu. Ponadto używanie nazw klas i odpowiednich selektorów pozwala na łatwe zarządzanie stylistyką większych projektów, co jest kluczowe w rozwoju współczesnych stron internetowych. Warto zauważyć, że stosowanie klas zamiast identyfikatorów jest bardziej elastyczne, ponieważ jedna klasa może być przypisana do wielu elementów, podczas gdy identyfikator musi być unikalny w całym dokumencie.

Pytanie 36

W języku JavaScript trzeba sformułować warunek, który będzie spełniony, gdy zmienna a będzie dowolną liczbą naturalną dodatnią (więcej niż 0) lub gdy zmienna b będzie dowolną liczbą z przedziału domkniętego od 10 do 100. Wyrażenie logiczne w tym warunku powinno mieć postać

A. (a > 0) || ((b >= 10) && (b <= 100))
B. (a > 0) && ((b >= 10) && (b <= 100))
C. (a > 0) || ((b >= 10) || (b <= 100))
D. (a > 0) && ((b >= 10) || (b <= 100))
Poprawna odpowiedź (a > 0) || ((b >= 10) && (b <= 100)) uwzględnia wymaganie, aby warunek był spełniony, gdy zmienna a jest liczbą naturalną dodatnią bądź zmienna b znajduje się w przedziale od 10 do 100, włącznie. W tym przypadku użycie operatora logicznego '||' (lub) jest kluczowe, ponieważ wystarczy, że jeden z warunków będzie prawdziwy, aby cały warunek był spełniony. Przykładem może być skrypt walidujący dane wejściowe użytkownika: jeśli zmienna a przechowuje wartość 5 (czyli liczbę naturalną dodatnią), to niezależnie od wartości zmiennej b, warunek będzie prawdziwy. Analogicznie, jeśli a wynosi 0, a b = 15, warunek również będzie spełniony, ponieważ b mieści się w wymaganym przedziale. Taka konstrukcja warunku jest zgodna z dobrą praktyką programistyczną, gdyż pozwala na jasne i zrozumiałe określenie, kiedy pewne zasady powinny być stosowane. Zastosowanie operatorów logicznych w taki sposób wspiera tworzenie czytelnych i elastycznych warunków, co jest istotne w kontekście utrzymania kodu i jego przyszłych modyfikacji.

Pytanie 37

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 27 razy
B. 3 razy
C. 26 razy
D. 2 razy
W przedstawionym kodzie JavaScript, pętla do-while wykonuje się do momentu, gdy zmienna x nie jest równa 27. Zaczynając od wartości x równej 1, przy każdym przejściu przez pętlę zmienna x jest mnożona przez 3. Kolejno, x przyjmuje wartości: 3, 9, 27. Zatem pętla wykonuje się trzy razy, ponieważ dopiero po trzecim cyklu x osiąga wartość 27, co powoduje zakończenie pętli. Do-while zawsze wykonuje przynajmniej jedno przejście, niezależnie od warunku końcowego, dzięki czemu jest przydatna w sytuacjach, gdy operacja musi być przeprowadzona co najmniej raz. Dobrym przykładem wykorzystania tego mechanizmu jest oczekiwanie na spełnienie określonego warunku, np. uzyskanie poprawnej odpowiedzi od użytkownika. Warto zwrócić uwagę, że w przypadku operacji matematycznych wymagających określonej liczby iteracji, pętla do-while zapewnia prostotę i przejrzystość implementacji, zgodnie z dobrymi praktykami zapewniającymi łatwość w czytaniu i utrzymaniu kodu.

Pytanie 38

W języku SQL zrealizowano polecenia GRANT przedstawione w ramce. Kto uzyska prawo do przeglądania i modyfikowania danych?

GRANT ALL ON frmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON frmy TO 'anna'@'localhost';
GRANT SELECT, INSERT, UPDATE ON frmy TO 'tomasz'@'localhost';
A. Tomasz oraz Anna
B. Adam oraz Anna
C. Jedynie Tomasz
D. Tomasz i Adam
Odpowiedź, że prawo do przeglądania i zmiany danych mają Tomasz i Adam, jest prawidłowa, ponieważ wynikają one z poleceń GRANT wykonanych w SQL. Adam otrzymuje pełne prawa do bazy danych 'frmy' dzięki komendzie 'GRANT ALL', co oznacza, że może zarówno przeglądać, jak i modyfikować wszelkie dane w tej bazie. Z kolei Tomasz, dzięki przyznanym mu uprawnieniom SELECT, INSERT i UPDATE, również ma możliwość przeglądania danych oraz ich zmiany. Ta sytuacja odzwierciedla kluczowe aspekty zarządzania uprawnieniami w systemach baz danych, gdzie precyzyjne przydzielanie ról i dostępów jest fundamentalne dla zapewnienia bezpieczeństwa i integralności danych. Praktyczne zastosowania takich operacji obejmują sytuacje, w których administratorzy baz danych muszą zróżnicować dostęp do danych w zależności od ról użytkowników, co jest zgodne z zasadami minimalnych uprawnień, które są standardem w branży IT.

Pytanie 39

W jakim celu tworzy się kaskadowe arkusze stylów (CSS)?

A. aby przyspieszyć wyświetlanie grafiki
B. aby ułatwić użytkownikowi nawigację
C. aby definiować formatowanie (wygląd) elementów strony
D. aby dodać treści tekstowe
Kaskadowe arkusze stylów (CSS) tworzy się, aby definiować FORMATOWANIE i wygląd elementów strony - kolory, czcionki, rozmieszczenie, marginesy - oddzielając warstwę prezentacji od treści zapisanej w HTML. Dlatego CSS służy do definiowania wyglądu elementów strony.

Pytanie 40

W bazie danych znajduje się tabela artykuły z kolumnami: nazwa, typ, producent, cena. Jakie polecenie należy użyć, aby wyświetlić wszystkie nazwy artykułów tylko o typie pralka, których cena mieści się w przedziale od 1000 PLN do 1500 PLN?

A. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500
B. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500
C. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500
D. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500
Jak chcesz wyciągnąć nazwy artykułów tylko dla pralek, które kosztują między 1000 a 1500 PLN, to musisz użyć polecenia SELECT z dobrymi warunkami. W SQL klauzula WHERE jest właśnie do tego, żeby określić, jakie dane chcesz wyciągnąć z tabeli. Ważne, żeby użyć operatora AND, bo musisz połączyć dwa warunki: typ musi być 'pralka', a cena musi mieścić się w tym przedziale. W tym wypadku operator BETWEEN będzie najlepszy, bo pozwala łatwo ustawić zakres wartości bez zawirowań z innymi operatorami. Takie zapytanie: SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500, zwróci wszystkie nazwy, które spełniają te kryteria. Dzięki BETWEEN masz pewność, że dolna i górna granica też są uwzględniane, co jest zgodne z zasadami SQL, a to z kolei sprawia, że przeszukiwanie danych jest efektywne. Dzięki temu zapytaniu dostajesz dokładne wyniki, co w zarządzaniu bazą danych jest mega ważne.