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: 8 czerwca 2026 07:28
  • Data zakończenia: 8 czerwca 2026 07:35

Egzamin niezdany

Wynik: 8/40 punktów (20,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Informacje o ciasteczkach (cookies) są w PHP przechowywane w tablicy:

A.
$_SERVER
B.
$_GET
C.
$_POST
D.
$_COOKIE
Ciasteczka odesłane przez przeglądarkę PHP udostępnia w tablicy superglobalnej $_COOKIE. Odczytuje się z niej wartość po nazwie, np. $_COOKIE["jezyk"]. Samo ciasteczko ustawia się funkcją setcookie("jezyk", "pl", time()+3600), a serwer wysyła je w nagłówku odpowiedzi; przy kolejnych żądaniach przeglądarka odsyła je z powrotem i trafiają właśnie do $_COOKIE. W praktyce wykorzystuje się je do zapamiętania preferencji użytkownika czy identyfikatora sesji. Dlatego informacje o ciasteczkach przechowuje tablica $_COOKIE.

Pytanie 2

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. wypisanie liczby nieparzystej
B. wypisanie liczby parzystej
C. zwrócenie wartości 0, gdy liczba jest parzysta
D. zwrócenie wartości 1, gdy liczba jest parzysta
Funkcja w języku PHP jest zapisana w taki sposób że przyjmuje jeden argument liczba i sprawdza czy jest on parzysty. Używa operatora modulo % który zwraca resztę z dzielenia. Jeśli liczba podzielona przez 2 daje resztę równą 0 oznacza to że jest parzysta. W takim przypadku funkcja zwraca wartość 1. W przeciwnym razie czyli gdy liczba jest nieparzysta funkcja zwraca 0. Takie podejście jest częstym wzorcem w programowaniu gdyż pozwala na szybkie i efektywne sprawdzenie parzystości liczby. Stosowanie operatora modulo jest standardem w wielu językach programowania dzięki czemu kod jest zrozumiały i łatwo go przenieść między różnymi platformami. W praktyce takie funkcje mogą być używane w algorytmach gdzie konieczne jest filtrowanie danych na podstawie parzystości lub innych podobnych kryteriów. Dobre praktyki w kodowaniu w PHP obejmują również jasne nazywanie funkcji i zmiennych co poprawia czytelność i utrzymanie kodu. Można także zastanowić się nad rozszerzeniem funkcji o dodatkowe sprawdzania lub logikę w zależności od potrzeb projektu.

Pytanie 3

Która definicja CSS wskazuje na formatowanie nagłówka h1: tekst z przekreśleniem, z odstępami między słowami wynoszącymi 10 px oraz w kolorze czerwonym?

Ilustracja do pytania
A. B
B. A
C. C
D. D
Odpowiedź A jest w porządku, bo dobrze odpowiada na to, co pytanie wymaga. Deklaracja 'text-decoration: overline;' dodaje linię nad tekstem, a nie pod nim. Właściwie to mega ważne, bo można łatwo pomylić nadkreślenie z podkreśleniem. Plus, 'word-spacing: 10px;' ustawia fajny odstęp między wyrazami, co sprawia, że nagłówki wyglądają lepiej i są bardziej czytelne. A jak ustawiłeś kolor tekstu na 'red', to wszystko jest super zgodne z tym, co miało być w zadaniu. Używanie takich definicji CSS to standard w tworzeniu stron, bo dobrze stylizowane nagłówki pomagają w organizacji treści i poprawiają wrażenia użytkowników. Pamiętaj, że sensowne i dobrze zdefiniowane style CSS to nie tylko wygoda, ale też ułatwiają późniejsze poprawki dla innych programistów.

Pytanie 4

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: right; } section { float: right; }
B. nav { float: left; } aside { float: left; }
C. aside {float: left; }
D. nav { float: right; }
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. <aside>, potem <section>, a na końcu <nav>, 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 5

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest pokazane na dołączonym rysunku?

Ilustracja do pytania
A. WordPress
B. MediaWiki
C. Joomla!
D. Drupal
Odpowiedź Joomla! jest poprawna ponieważ logo przedstawione na rysunku jest oficjalnym znakiem identyfikacyjnym tego systemu zarządzania treścią CMS. Joomla! to jeden z najpopularniejszych systemów CMS używany do tworzenia stron internetowych oraz aplikacji. Dzięki swojej elastyczności i dużej liczbie dostępnych rozszerzeń Joomla! pozwala na tworzenie zarówno prostych stron wizytówkowych jak i zaawansowanych serwisów e-commerce. Główne zalety Joomla! to intuicyjny interfejs użytkownika który ułatwia zarządzanie treściami oraz silna społeczność użytkowników zapewniająca wsparcie techniczne i rozwój oprogramowania. Joomla! jest zgodna z wieloma standardami webowymi co czyni ją wszechstronnym narzędziem do wdrażania profesjonalnych projektów internetowych. Korzystanie z Joomla! umożliwia szybkie i efektywne tworzenie responsywnych stron które dobrze współdziałają na różnych urządzeniach mobilnych. Praktyczne zastosowanie Joomla! obejmuje tworzenie stron korporacyjnych portali społecznościowych oraz serwisów informacyjnych. Dzięki modulowej architekturze użytkownicy mogą łatwo dostosowywać funkcjonalność swoich stron do specyficznych potrzeb branżowych co jest zgodne z dobrymi praktykami projektowania zorientowanego na użytkownika. Platforma Joomla! obsługuje także wielojęzyczność i różne metody uwierzytelniania co czyni ją idealnym rozwiązaniem dla międzynarodowych projektów.

Pytanie 6

Rezultatem wykonania podanego zapytania SQL jest

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. Średnia ocen wszystkich uczniów.
B. Całkowita liczba uczniów.
C. Liczba uczniów, którzy mają średnią ocen równą 5.
D. Suma ocen uczniów, których średnia ocen wynosi 5.
Zapytanie SQL, które zostało przedstawione, używa funkcji `COUNT(*)` w celu zliczenia wszystkich wierszy w tabeli `Uczniowie`, które spełniają określone kryterium w klauzuli `WHERE`. W tym przypadku kryterium to jest `srednia = 5`. Oznacza to, że zapytanie zlicza wszystkich uczniów, których średnia ocen wynosi dokładnie 5. Takie użycie `COUNT(*)` jest zgodne ze standardami SQL, gdzie funkcja ta służy do zliczania wszystkich wierszy w zbiorze wyników, które spełniają dane warunki. W praktyce, uzyskanie liczby uczniów z określoną średnią może być przydatne w analizie statystycznej lub raportowaniu wyników akademickich. Zrozumienie, jak korzystać z `COUNT(*)` w połączeniu z różnymi warunkami `WHERE`, jest kluczowe dla efektywnego zarządzania i analizowania danych w bazach danych SQL. Dzięki temu można wydobywać konkretne informacje, które wspierają podejmowanie decyzji w edukacji i zarządzaniu danymi.

Pytanie 7

W CSS, aby ustawić wcięcie pierwszej linii akapitu na 30 pikseli, należy użyć następującego zapisu

A. p { line-indent: 30px; }
B. p { line-height: 30px; }
C. p { text-indent: 30px; }
D. p { text-spacing: 30px; }
Odpowiedź p { text-indent: 30px; } jest poprawna, ponieważ właściwość text-indent w CSS służy do definiowania wcięcia pierwszej linii tekstu w elemencie blokowym, takim jak akapit (p). Umożliwia to nadanie tekstowi estetycznego wyglądu oraz zwiększenie czytelności, szczególnie w dłuższych blokach tekstu. Wartość 30px oznacza, że pierwsza linia akapitu zostanie przesunięta o 30 pikseli w prawo względem pozostałych linii. Przykładowo, jeśli mamy długi akapit z tekstem, zastosowanie wcięcia może pomóc w wyodrębnieniu go wizualnie, co sprzyja lepszemu zrozumieniu zawartości przez użytkowników. Warto także dodać, że standardy CSS są regularnie aktualizowane, a stosowanie dobrych praktyk, takich jak odpowiednie formatowanie tekstu, ma kluczowe znaczenie w projektowaniu responsywnych i przyjaznych dla użytkownika stron internetowych. Wykorzystanie text-indent jest jedną z technik, które przyczyniają się do poprawy UX (User Experience).

Pytanie 8

Zamieszczony kod HTML formularza zostanie wyświetlony przez przeglądarkę w sposób:

<form>
stanowisko: <input type="text"><br>
obowiązki: <br>
<input type="checkbox" name="obowiazek1" value="1" disabled checked>sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazek2" value="2" checked>pisanie kodu<br>
<input type="checkbox" name="obowiazek3" value="3">testy oprogramowania<br>
</form>

A.

stanowisko: obowiązki: sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

B.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

C.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

D.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania
A. C.
B. B.
C. A.
D. D.
Przy ocenie, jak przeglądarka wyświetli formularz HTML, warto mieć na uwadze, że przeglądarki internetowe trzymają się dość sztywno tego, co wynika bezpośrednio z kodu źródłowego. Bardzo typowym błędem jest nadmierne skupienie się na samych polach wyboru czy zawartości formularza, bez uwzględnienia układu wynikającego z użycia znaczników <br> – to właściwie one decydują o tym, gdzie pojawiają się nowe linie. Ktoś może sądzić, że kolejność checked lub disabled zmieni znacząco wygląd – ale to nieprawda, bo atrybuty te wpływają na stan i interaktywność, a nie na rozmieszczenie. W jednej z błędnych propozycji pomieszano, które checkboxy są zaznaczone, a które nie, co prowadzi do przekłamań względem rzeczywistego kodu. Zdarza się też, że przy kopiowaniu kodu pomija się disabled lub checked przy konkretnym polu i całość wygląda inaczej niż powinna – tak po prostu nie działa przeglądarka. Ważne jest też zrozumienie, że disabled powoduje, iż pole jest wyszarzone i nie można na nim operować, natomiast checked przy polu checkbox ustawia je domyślnie jako zaznaczone. Pominięcie <br> po polu tekstowym sprawia, że kolejne elementy formularza lądują w jednej linii – co w praktyce bardzo rzadko się zdarza, bo narusza czytelność, a kod źródłowy wyraźnie tego nie przewiduje. Z mojego doświadczenia widziałem wiele formularzy, które przez nieuwagę programistów wprowadzały użytkownika w błąd przez złe rozmieszczenie elementów – nie chodzi tylko o „ładny wygląd”, ale też o funkcjonalność i dostępność. W praktyce branżowej trzymanie się tego, co wynika z kodu HTML, to podstawa, bo zapewnia przewidywalność działania na wszystkich platformach. Dobrym zwyczajem jest zawsze sprawdzić, jak kod wyświetla się w przeglądarce i porównać go z tym, co chcieliśmy osiągnąć. Dzięki temu unikamy nieporozumień i nieprawidłowych założeń, które mogą prowadzić do błędów zarówno w warstwie frontendowej, jak i podczas przetwarzania danych na serwerze.

Pytanie 9

Tablica tab[] jest wypełniona dowolnymi liczbami całkowitymi. Jaka wartość znajdzie się w zmiennej zm2 po wykonaniu prezentowanego fragmentu kodu?

int tab[10];
int zm1 = 0;
double zm2 = 0;

for (int i=0; i < 10; i++)
{
  zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Średnia arytmetyczna elementów tablicy.
B. Suma elementów tablicy.
C. Średnia geometryczna liczb od 0 do 9.
D. Suma liczb od 1 do 10.
Wynik zmiennej zm2 w przedstawionym kodzie to średnia arytmetyczna wartości znajdujących się w tablicy tab. Proces obliczania średniej arytmetycznej polega na zsumowaniu wszystkich elementów tablicy i podzieleniu tej sumy przez liczbę elementów. W tym przypadku zmienna zm1 akumuluje sumę wszystkich wartości tablicy tab, a następnie zmienna zm2 jest obliczana jako zm1 podzielone przez 10, co odpowiada liczbie elementów w tablicy. To podejście jest zgodne z dobrą praktyką programistyczną, ponieważ umożliwia efektywne obliczenie średniej, co jest powszechnie stosowane w analizie danych. W praktycznych zastosowaniach, takich jak przetwarzanie danych finansowych czy naukowych, umiejętność obliczania średnich jest kluczowa, umożliwiając podejmowanie świadomych decyzji na podstawie statystyk. Dodatkowo, warto zauważyć, że dla tablicy różnych typów danych, takich jak float czy double, technika obliczania średniej pozostaje taka sama, aczkolwiek wymaga uwzględnienia precyzji obliczeń.

Pytanie 10

W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

A. przeglądania tabeli klienci i dodawania do niej rekordów
B. aktualizowania danych oraz przeglądania tabeli klienci
C. tworzenia tabeli klienci oraz wprowadzania do niej danych
D. usunięcia tabeli lub jej danych
Odpowiedzi, które sugerują, że użytkownik adam ma inne prawa, są niepoprawne z technicznego punktu widzenia. Użytkownik ten nie może aktualizować danych ani przeglądać tabeli klienci, ponieważ prawa do aktualizacji i przeglądania zostały odebrane przez polecenie REVOKE. Oznacza to, że wszystkie operacje wymagające dostępu do odczytu oraz modyfikacji danych w tabeli klienci są dla niego zablokowane. Kolejna nieprawidłowa odpowiedź sugeruje, że adam ma prawo do tworzenia tabeli klienci, co jest również błędne, ponieważ w kontekście przyznanych uprawnień użytkownik nie uzyskał prawa do tworzenia nowych obiektów w bazie danych. Ostatecznie, odpowiedzi te nie uwzględniają, że konkretne działania, takie jak wstawianie nowych rekordów, są zablokowane przez REVOKE, co skutkuje brakiem możliwości dodawania danych do tabeli klienci. Wnioskując, użytkownik adam ma jedynie prawo do usuwania rekordów, a nie do przeglądania, aktualizowania czy tworzenia nowych tabel, co jest kluczowe przy zarządzaniu dostępem do baz danych.

Pytanie 11

Którą funkcją PHP przekierować użytkownika na inną stronę?

A.
header();
B.
require();
C.
include();
D.
upload();
require() i include() DOŁĄCZAJĄ zawartość innego pliku do skryptu, a nie przekierowują przeglądarki. upload() nie jest funkcją PHP. Przekierowanie wykonuje header().

Pytanie 12

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. C#
B. Python
C. JavaScript
D. PHP

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 13

Podczas transmisji cyfrowego wideo na jakość wpływa bitrate (przepływność). Wielkość ta określa liczbę:

A. próbek dźwięku w jednostce czasu
B. bitów przesyłanych w jednostce czasu
C. pikseli jako stosunek długości obrazu do wysokości
D. pikseli obrazu wyświetlanych na ekranie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Bitrate (przepływność) to liczba BITÓW przesyłanych w jednostce czasu, podawana zwykle w kb/s lub Mb/s. Im wyższy bitrate, tym więcej danych na sekundę, czyli zwykle lepsza jakość, ale i większy plik. Dlatego bitrate określa liczbę bitów przesyłanych w jednostce czasu.

Pytanie 14

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 0
B. 10
C. 5
D. 6

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to 6 iteracji, ponieważ pętla for w PHP jest zdefiniowana z inicjalizacją zmiennej $i na 0 oraz warunkiem kontynuacji, który sprawdza, czy $i jest mniejsze lub równe 10. Zmiana wartości $i zachodzi co 2 jednostki dzięki instrukcji $i+=2. Iteracje pętli będą wyglądały następująco: $i = 0, 2, 4, 6, 8, 10. W momencie, gdy $i osiągnie wartość 12, warunek $i <= 10 przestanie być spełniony. Zatem pętla wykona się 6 razy, co jest zgodne z dobrą praktyką programowania, polegającą na dokładnym zrozumieniu warunków i logiki pętli. Zrozumienie tego mechanizmu ma kluczowe znaczenie dla efektywnego pisania kodu, pozwalającego na automatyzację zadań i obliczeń. W praktycznych zastosowaniach pętle są używane do iteracji po elementach tablic, generowania raportów oraz w wielu algorytmach przetwarzania danych.

Pytanie 15

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

A. O(log n)
B. O(n!)
C. O(n)
D. O(n2)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź O(n²) jest jak najbardziej trafna. Wiesz, jak to działa? Gdy masz dwie zagnieżdżone pętle, które przetwarzają elementy w kolekcji, to liczba operacji rośnie kwadratowo w zależności od tego, ile tych elementów masz. Dla n elementów w tablicy, każda z tych n elementów wymaga n operacji w drugiej pętli, co daje razem n*n, czyli n². Przykłady? Algorytmy sortowania bąbelkowego czy przez wstawianie świetnie to ilustrują – obydwa działają w czasie O(n²). Pamiętaj, że jako programiści musimy zwracać uwagę na złożoność algorytmów, bo to wpływa na wydajność naszych aplikacji, szczególnie gdy mamy do czynienia z dużymi zbiorami danych. Dobrze jest próbować optymalizować złożoność, żeby nie wpaść w pułapki wydajnościowe. No i fakt, przy problemach, gdzie musimy porównywać wszystkie elementy, O(n²) to często jedyna opcja, która się sprawdza.

Pytanie 16

W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element

A. im z następnym numerem indeksu
B. Janek z następnym numerem indeksu
C. im z indeksem Janek
D. Janek o indeksie im

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź to "Janek o indeksie im", ponieważ w PHP, gdy formularz jest przesyłany, wartości pól formularza są przekazywane do tablicy globalnej $_POST, gdzie kluczami są nazwy pól, a wartościami są dane wprowadzone przez użytkownika. W przypadku pola <input name="im">, po wprowadzeniu przez użytkownika ciągu "Janek", w tablicy $_POST pojawi się element, w którym klucz to "im", a wartość to "Janek". Zgodnie z dobrymi praktykami programistycznymi, nazwy pól powinny być zrozumiałe i znaczące, co ułatwia późniejsze przetwarzanie danych. Przykładem może być sytuacja, w której tworzymy formularz rejestracyjny; odpowiednie nazewnictwo pól, takich jak "im" dla imienia, poprawia czytelność kodu oraz jego konserwowalność. Warto dodać, że dobrym zwyczajem jest również walidacja danych przed ich przetworzeniem, aby zapewnić bezpieczeństwo aplikacji oraz uniknąć potencjalnych ataków, takich jak SQL Injection.

Pytanie 17

Podane w ramce polecenie SQL nadaje prawo SELECT

GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';
A. do wszystkich tabel w bazie hurtownia.
B. dla użytkownika 'root' na serwerze sprzedawca.
C. do wszystkich pól w tabeli hurtownia.
D. dla użytkownika 'root' na serwerze localhost.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie wychwyciłeś najważniejszy element składni: zapis hurtownia.* po słowie ON oznacza całą bazę danych o nazwie hurtownia, a nie pojedynczą tabelę. W składni GRANT w MySQL i innych systemach bazodanowych mamy kilka poziomów nadawania uprawnień: można nadać uprawnienia do całej bazy (database), do konkretnej tabeli, a nawet do pojedynczych kolumn. Kluczowe jest to, co znajduje się po słowie ON. Jeżeli podamy nazwa_bazy.* – tak jak tutaj – to uprawnienie SELECT dotyczy wszystkich tabel w tej bazie danych. Gdyby chodziło o jedną tabelę, składnia wyglądałaby np. GRANT SELECT ON hurtownia.zamowienia TO 'sprzedawca'@'localhost'; i wtedy prawo dotyczyłoby wyłącznie tabeli zamowienia. W tym poleceniu dodatkowo jasno określony jest użytkownik: 'sprzedawca'@'localhost'. W MySQL użytkownik jest identyfikowany parą nazwa_użytkownika@host, więc nie jest to ani root, ani żaden inny login, tylko konkretny użytkownik o nazwie sprzedawca, który łączy się z serwera localhost. To jest typowy scenariusz np. dla aplikacji sprzedażowej instalowanej na tym samym serwerze co baza. Taki użytkownik często dostaje tylko SELECT do bazy hurtownia, żeby mógł odczytywać dane (np. listę produktów, stany magazynowe, historię zamówień), ale nie miał uprawnień do modyfikacji struktury bazy czy kasowania rekordów. Moim zdaniem jest to bardzo dobra praktyka bezpieczeństwa: tworzy się osobnych użytkowników o wąskim zakresie uprawnień zamiast wszędzie używać konta root. W realnych projektach webowych, np. w PHP czy innych językach backendowych, w pliku konfiguracyjnym aplikacji podaje się właśnie takiego technicznego użytkownika, który ma GRANT SELECT (czasem też INSERT/UPDATE) tylko na jedną, konkretną bazę. Dzięki temu nawet jeśli aplikacja zostanie zhakowana, atakujący ma dużo mniejsze pole do popisu, bo nie dysponuje pełnymi uprawnieniami administracyjnymi. Dobrze też zapamiętać, że GRANT SELECT nie daje prawa do tworzenia nowych tabel ani zmiany struktury – to są osobne uprawnienia (CREATE, ALTER, DROP). Tutaj mówimy wyłącznie o możliwości wykonywania zapytań odczytujących dane ze wszystkich tabel w bazie hurtownia, co w praktyce oznacza, że użytkownik sprzedawca może spokojnie robić SELECT * FROM jakakolwiek_tabela; pod warunkiem, że ta tabela znajduje się właśnie w tej bazie.

Pytanie 18

Jakie polecenie umożliwia pokazanie konfiguracji serwera PHP, w tym między innymi informacji o: wersji PHP, systemie operacyjnym serwera oraz wartościach przedefiniowanych zmiennych?

A. print_r(ini_get_all());
B. phpinfo();
C. echo phpversion();
D. phpcredits();

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Funkcja phpinfo() jest najczęściej używanym narzędziem w ekosystemie PHP do wyświetlania szczegółowych informacji dotyczących konfiguracji serwera PHP. Umożliwia uzyskanie dostępu do kluczowych danych, takich jak wersja PHP, informacje o systemie operacyjnym, wartości przedefiniowanych zmiennych, a także wiele innych ustawień konfiguracyjnych. Dzięki temu narzędziu deweloperzy mogą szybko zdiagnozować problemy związane z konfiguracją, a także zrozumieć, jakie moduły PHP są zainstalowane i aktywne. Przykładowo, uruchamiając skrypt z tą funkcją na stronie internetowej, automatycznie generowany jest szczegółowy raport w formie HTML, co ułatwia odczyt i zrozumienie. Standardy branżowe wskazują, że korzystanie z phpinfo() powinno być ograniczone do środowisk rozwijających, ponieważ ujawnia to wiele informacji o serwerze, co w kontekście bezpieczeństwa może stanowić ryzyko. W praktyce, dobrze jest również stosować funkcję w lokalnych środowiskach deweloperskich, by monitorować i weryfikować zmiany w konfiguracji serwera podczas pracy nad projektem.

Pytanie 19

Dane są liczby całkowite różne od zera w tablicy nazwanej tab. Podany poniżej kod w języku PHP ma na celu

Ilustracja do pytania
A. zmienić wartości tablicy na te zapisane w zmiennej liczba
B. obliczenie wartości bezwzględnej poszczególnych elementów tablicy
C. wyliczenie iloczynu wszystkich wartości w tablicy
D. zmienić wszystkie elementy tablicy na liczby o przeciwnym znaku

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kod pokazany na obrazku używa konstrukcji foreach z operatorem referencji ampersand aby iterować po tablicy tab i zmieniać każdy jej element. Operator referencji & pozwala na bezpośrednią modyfikację wartości w tablicy. Instrukcja $liczba = $liczba * (-1) w pętli foreach zmienia znak każdej liczby na przeciwny co oznacza że dodatnie liczby stają się ujemne a ujemne stają się dodatnie. Dzięki temu możliwe jest szybkie odwrócenie znaków wszystkich elementów w tablicy co jest powszechnie stosowane w programowaniu aby przygotować dane do dalszych operacji matematycznych lub analizy. Unset($liczba) jest używane po pętli aby odłączyć referencję co jest dobrą praktyką zapobiegającą przypadkowym modyfikacjom przyszłych danych. Zastosowanie tego wzorca jest efektywne i pozwala na bezpieczną manipulację strukturą danych w PHP. Technika ta jest użyteczna nie tylko w kontekście matematycznym ale również w przypadkach gdzie wymagane jest szybkie przetwarzanie dużych ilości danych.

Pytanie 20

W firmie zajmującej się technologiami informacyjnymi otwarta jest rekrutacja na stanowisko administratora e-sklepu. Do jego zadań należy instalacja i konfiguracja systemu zarządzania treścią, który jest przeznaczony jedynie dla sklepu internetowego, zmiana szablonów wizualnych oraz dostosowanie grafiki. Jakie umiejętności powinien posiadać nowy pracownik?

A. HTML, CSS, Photoshop
B. Photoshop, Gimp, JavaScript
C. CMS PrestaShop, CSS, Gimp
D. CMS WordPress, HTML, Gimp

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybór odpowiedzi CMS PrestaShop, CSS, Gimp jest prawidłowy, ponieważ dokładnie odpowiada wymaganiom związanym z rolą administratora sklepu internetowego. PrestaShop to jeden z najpopularniejszych systemów zarządzania treścią (CMS) dedykowanych dla e-commerce. Jego znajomość jest kluczowa, gdyż pozwala na efektywną instalację i konfigurację platformy sklepowej, co jest jednym z głównych obowiązków administratora. CSS jest niezbędnym narzędziem do zmiany szablonów i dostosowania wyglądu sklepu zgodnie z wymaganiami klienta oraz standardami responsywnego designu, co zapewnia lepsze doświadczenia użytkowników na różnych urządzeniach. Gimp jako narzędzie graficzne umożliwia modyfikację grafik i tworzenie nowych elementów wizualnych, co jest istotne dla personalizacji sklepu. Dobrą praktyką w branży jest umiejętność integrowania graficznych oraz technologicznych komponentów w celu stworzenia atrakcyjnej i funkcjonalnej platformy handlowej, co znacząco wpływa na konwersje i wyniki sprzedaży. Ponadto, znajomość PrestaShop otwiera drzwi do wielu zasobów i społeczności, co dodatkowo wspiera rozwój zawodowy administratora.

Pytanie 21

Podano tabelę ksiazki z kolumnami: tytul, autor (w formacie tekstowym), cena (w formacie liczbowym). Aby zapytanie SELECT zwracało jedynie tytuły, dla których cena jest niższa niż 50zł, należy użyć:

A. SELECT tytul FROM ksiazki WHERE cena < 50
B. SELECT * FROM ksiazki WHERE cena < 50
C. SELECT tytul FROM ksiazki WHERE cena > '50 zł'
D. SELECT ksiazki FROM tytul WHERE cena < '50 zł'

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź 'SELECT tytul FROM ksiazki WHERE cena < 50;' jest poprawna, ponieważ precyzyjnie formułuje zapytanie w języku SQL, które ma na celu wyodrębnienie z tabeli 'ksiazki' tylko tych tytułów, których cena jest niższa niż 50. W tym przypadku użycie operatora porównania '<' skutkuje filtracją danych według określonego kryterium. Jest to zgodne z dobrą praktyką w programowaniu baz danych, ponieważ pozwala uzyskać potrzebne informacje w sposób efektywny i zrozumiały. Przykładem praktycznego zastosowania może być stworzenie raportu dla księgarni, która chce zobaczyć, które książki są w sprzedaży w przystępnej cenie. Zwracając tylko potrzebne kolumny (tytuł), minimalizujesz ilość przesyłanych danych, co jest ważne w kontekście wydajności i szybkości działania aplikacji korzystających z bazy danych. Dodatkowo, unikanie podawania ceny w formacie tekstowym (np. '50 zł') jest zgodne z zasadami dobrego projektowania baz danych, które zalecają stosowanie odpowiednich typów danych, co w tym przypadku oznacza liczbę bez jednostki walutowej.

Pytanie 22

Fragment kodu powyżej został napisany w języku JavaScript. Co należy umieścić w miejsce kropek, aby program przypisywał wartość 1 co trzeciemu elementowi w tablicy?

for (i = 0; i < T.length; ...)
{
    T[i] = 1;
}
A. i += 3
B. i =+ 3
C. i = 3
D. i ++ 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to i += 3 ponieważ w języku JavaScript operator += służy do zwiększania wartości zmiennej o zadany krok. W kontekście pętli for oznacza to że po każdej iteracji zmienna i zostanie zwiększona o 3 co pozwala na przypisanie wartości 1 co trzeciemu elementowi w tablicy. Jest to standardowa praktyka przy iteracji co kilka elementów w tablicy. Użycie += jest preferowane ze względu na jego zwięzłość i czytelność co jest zgodne z dobrymi praktykami programistycznymi. W przypadku tablicy T użycie poprawnego inkrementu i += 3 umożliwi przypisanie wartości tylko do tych elementów które są indeksowane przez wielokrotności liczby 3. Dzięki temu kod jest bardziej czytelny i zgodny z zasadami DRY (Don't Repeat Yourself) pozwalając na efektywne operacje na strukturach danych. Przykładowo jeśli mamy tablicę o długości 9 to po wykonaniu pętli elementy o indeksach 0 3 i 6 zostaną ustawione na wartość 1 co pozwala na efektywne zarządzanie pamięcią i czasem obliczeniowym. Tego typu konstrukcje są podstawą wielu algorytmów iteracyjnych.

Pytanie 23

W CSS zapisany w ten sposób:

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

spowoduje, że rysunek.png stanie się

A. tłem każdego akapitu
B. tłem całej witryny
C. wyświetlony, jeśli w kodzie użyty zostanie znacznik img
D. widoczny obok każdego akapitu

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 24

Aby dodać nową kolumnę do już istniejącej tabeli, należy użyć polecenia SQL:

A.
INSERT INTO
B.
UPDATE TABLE
C.
CREATE TABLE
D.
ALTER TABLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Strukturę istniejącej tabeli zmienia polecenie <code><span class="code-keyword">ALTER</span> <span class="code-keyword">TABLE</span></code>. Aby dodać kolumnę, stosuje się je z klauzulą <code><span class="code-keyword">ADD</span></code>, na przykład <code><span class="code-keyword">ALTER</span> <span class="code-keyword">TABLE</span> <span class="code-variable">klienci</span> <span class="code-keyword">ADD</span> <span class="code-variable">telefon</span> <span class="code-function">VARCHAR</span><span class="code-text">(</span><span class="code-number">15</span><span class="code-text">)</span></code>. Tym samym poleceniem usuwa się lub modyfikuje kolumny i ograniczenia. Dlatego do dodania kolumny do gotowej tabeli służy <code><span class="code-keyword">ALTER</span> <span class="code-keyword">TABLE</span></code>.

Pytanie 25

Selektor CSS a:link {color:red} użyty w kaskadowych arkuszach stylów określa

A. identyfikator
B. pseudoklasę
C. pseudoelement
D. klasę

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź, którą wybrałeś, to pseudoklasa. W CSS jest to typowa sprawa, bo selektor a:link to właśnie przykład użycia pseudoklas. Dzięki nim możesz stylizować różne elementy na podstawie ich stanu lub tego, jak się zachowują w dokumencie. Na przykład, selektor a:link definiuje styl dla linków, które jeszcze nie zostały odwiedzone - więc jeśli ktoś kliknął na link, zmienia się jego wygląd. Używając pseudoklas, możesz znacznie poprawić estetykę stron i sprawić, że będą bardziej przyjazne dla użytkowników. Pomyśl o takich pseudoklasach jak :hover, co zmienia styl, gdy najedziemy kursorem, albo :active, która wprowadza zmiany podczas klikania. To naprawdę dobra technika, żeby nadać stronom fajny, dynamiczny charakter. Rozumienie pseudoklas to istotna sprawa w web designie, a to, co się zgadza z tym, co mówi W3C, to dodatkowy atut.

Pytanie 26

W dokumencie zdefiniowano akapit <p id="jeden">Kwalifikacja INF.03</p>. Która instrukcja JavaScript zmieni kolor tekstu tego akapitu na niebieski?

A.
document.getElementById("jeden").background-color = "blue";
B.
document.getElementById("jeden").style.background-color = "blue";
C.
document.getElementById("jeden").color = "blue";
D.
document.getElementById("jeden").style.color = "blue";

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Kolor tekstu zmienia się przez właściwość <code><span class="code-variable">style</span><span class="code-text">.</span><span class="code-variable">color</span></code>, a element pobiera <code><span class="code-variable">getElementById</span></code>: <code><span class="code-variable">document</span><span class="code-text">.</span><span class="code-function">getElementById</span><span class="code-text">(</span><span class="code-string">"jeden"</span><span class="code-text">)</span><span class="code-text">.</span><span class="code-variable">style</span><span class="code-text">.</span><span class="code-variable">color</span> <span class="code-text">=</span> <span class="code-string">"blue"</span><span class="code-text">;</span></code>. Dlatego poprawna jest ta instrukcja.

Pytanie 27

W tabeli artykuly znajduje się pole o nazwie nowy. Aby pole to wypełnić wartościami TRUE dla każdego rekordu, należy zastosować kwerendę

A. INSERT INTO nowy FROM artykuly SET TRUE;
B. INSERT INTO artykuly VALUE nowy = TRUE;
C. UPDATE nowy FROM artykuly VALUE TRUE;
D. UPDATE artykuly SET nowy = TRUE;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna kwerenda UPDATE artykuly SET nowy = TRUE; jest klasycznym przykładem instrukcji aktualizacji danych w SQL. Słowo kluczowe UPDATE wskazuje, że modyfikujemy istniejące rekordy, a nie dodajemy nowe. Nazwa tabeli artykuly określa, w której tabeli wykonujemy operację. Następnie część SET nowy = TRUE ustawia dla kolumny nowy wartość logiczną TRUE we wszystkich wierszach, ponieważ w zapytaniu nie ma klauzuli WHERE. I to jest tu kluczowe: brak WHERE oznacza, że aktualizacja dotknie każdego rekordu w tabeli. Moim zdaniem warto zapamiętać schemat: UPDATE nazwa_tabeli SET kolumna = wartość WHERE warunek;. W praktyce bardzo często dodaje się WHERE, np.: UPDATE artykuly SET nowy = TRUE WHERE data_dodania >= '2026-01-01'; – wtedy oznaczamy jako nowe tylko artykuły dodane od konkretnej daty. W zadaniu jednak wyraźnie jest mowa o każdym rekordzie, więc brak WHERE jest jak najbardziej zgodny z treścią. W większości systemów bazodanowych (MySQL, PostgreSQL, SQL Server, MariaDB) ta składnia jest standardowa i zalecana. Dobra praktyka jest taka, żeby przed odpaleniem UPDATE bez WHERE najpierw zrobić SELECT * FROM artykuly; albo SELECT COUNT(*) FROM artykuly;, żeby mieć świadomość, ile rekordów zmienimy. W projektach produkcyjnych często dodaje się też transakcje, np. w PostgreSQL: BEGIN; UPDATE artykuly SET nowy = TRUE; COMMIT; dzięki temu w razie pomyłki można zrobić ROLLBACK. Warto też wiedzieć, że kolumna typu logicznego może przyjmować wartości TRUE, FALSE, czasem 1/0 (np. w MySQL), ale forma z TRUE/FALSE jest czytelniejsza i bardziej zgodna z semantyką. W wielu aplikacjach webowych pole w stylu nowy służy np. do filtrowania artykułów w panelu administracyjnym albo na stronie głównej: SELECT * FROM artykuly WHERE nowy = TRUE;. To dokładnie ten sam atrybut, który przed chwilą masowo ustawiliśmy poleceniem UPDATE.

Pytanie 28

Warunek zapisany w PHP wyświetli liczbę, jeśli

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona liczbą pierwszą
B. wynik dzielenia liczby przez 2 wynosi 0
C. jest ona parzysta
D. jest ona dodatnia

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Warunek zapisany w języku PHP używa operatora modulo (%) do sprawdzenia, czy dana liczba jest parzysta. Operator modulo zwraca resztę z dzielenia liczby przez inną liczbę co w przypadku parzystości oznacza że reszta z dzielenia liczby przez 2 wynosi 0. W praktyce wykorzystuje się to do sprawdzenia czy liczba jest podzielna przez 2 bez reszty co jest definicją liczby parzystej. W kodowaniu warunki te są przydatne w algorytmach które wymagają działania na liczbach parzystych lub nieparzystych jak np. filtrowanie danych czy sortowanie. Dobre praktyki programistyczne sugerują wykorzystywanie tego typu operacji w przypadku gdy istnieje potrzeba optymalizacji warunków logicznych w kodzie. Umiejętność rozpoznawania i implementacji takich wzorców kodowania jest kluczowa dla pisania efektywnego i czytelnego kodu. Dzięki temu łatwiej można zarządzać dużymi zbiorami danych i operować na nich w sposób zautomatyzowany co jest podstawą w dzisiejszych aplikacjach webowych.

Pytanie 29

W CSS należy ustawić tło dokumentu na obraz rys.png, który powinien się powtarzać tylko w poziomie. Którą definicję trzeba przypisać selektorowi body?

A. {background-image: url("rys.png"); background-repeat: round;}
B. {background-image: url("rys.png"); background-repeat: repeat;}
C. {background-image: url("rys.png"); background-repeat: repeat-y;}
D. {background-image: url("rys.png"); background-repeat: repeat-x;}

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybrana odpowiedź {background-image: url("rys.png"); background-repeat: repeat-x;} jest poprawna, ponieważ dokładnie definiuje sposób wyświetlania tła w dokumencie HTML. W języku CSS, właściwość background-image ustala źródło obrazu, który ma być użyty jako tło, a background-repeat kontroluje, jak ten obraz się powtarza. Ustawienie repeat-x sprawia, że obraz będzie powtarzany tylko w poziomie, co oznacza, że ​​będzie się ukazywał wielokrotnie od lewej do prawej, ale nie będzie powtarzany w pionie. Taki sposób wyświetlania tła jest przydatny w wielu kontekstach, na przykład w projektowaniu stron internetowych, gdzie chcemy uzyskać efekt pasów lub linii w poziomie, bez nadmiaru treści w pionie. Szereg dobrych praktyk w CSS wskazuje, że należy dbać o efektywność i estetykę, a odpowiednie powtarzanie tła może znacząco wpłynąć na wizualną atrakcyjność strony. Ponadto, użycie właściwego formatu URL i umiejętne stosowanie obrazów tła może poprawić doświadczenia użytkowników, podczas gdy nieodpowiednie podejście może prowadzić do problemów z wydajnością, szczególnie na urządzeniach mobilnych, gdzie ładowanie zbyt dużych lub nieoptymalnych obrazów może obniżyć responsywność strony.

Pytanie 30

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 i miasta z pierwszego zwróconego rekordu.
B. miasta i kodu pocztowego z pierwszego zwróconego rekordu.
C. ulicy i miasta ze wszystkich zwróconych rekordów.
D. miasta i kodu pocztowego ze wszystkich zwróconych rekordów.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Brawo, wybrałeś prawidłową odpowiedź. Twój fragment kodu PHP wykonuje zapytanie SQL, które wybiera kolumny 'ulica', 'miasto', 'kod_pocztowy' z tabeli 'adresy'. Następnie używasz funkcji mysqli_fetch_row(), która pobiera pierwszy zwrócony rekord jako indeksowaną tablicę. Funkcja echo wyświetla drugi i trzeci element tej tablicy (indeksy 1 i 2), które odpowiadają kolumnom 'miasto' i 'kod pocztowy'. To jest standardową praktyką w PHP, aby uzyskać dane z pierwszego zwróconego rekordu. Możesz zastosować tę wiedzę do tworzenia skomplikowanych zapytań SQL lub do tworzenia różnego rodzaju aplikacji webowych, które potrzebują interakcji z bazą danych.

Pytanie 31

Który zestaw zawiera wyłącznie języki programowania działające po stronie serwera?

A. Java, C#, AJAX, Ruby, PHP
B. Java, C#, Python, Ruby, PHP
C. C#, Python, Ruby, PHP, JavaScript
D. Java, C#, Python, ActionScript, PHP

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Po stronie serwera działają języki, których kod wykonuje się na serwerze i generuje treść wysyłaną do przeglądarki - zestaw Java, C#, Python, Ruby, PHP zawiera wyłącznie takie języki. Dlatego poprawny jest ten zestaw.

Pytanie 32

Warunek zapisany w JavaScript jest prawdziwy, gdy zmienna x przechowuje:

if ((!isNaN(x)) && (x > 0))
A. dowolną całkowitą wartość liczbową.
B. dowolną dodatnią wartość liczbową.
C. pusty napis.
D. napis.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie wyłapałeś, że ten warunek jest prawdziwy tylko wtedy, gdy x przechowuje dodatnią wartość liczbową. Rozbijmy to na części. Funkcja isNaN(x) w JavaScript sprawdza, czy przekazany argument „nie jest liczbą” (NaN = Not a Number). Zapis z wykrzyknikiem: !isNaN(x) oznacza więc „x jest liczbą lub da się go zinterpretować jako liczbę”. Druga część warunku: (x > 0) wymusza, żeby ta wartość była większa od zera, czyli dodatnia. Operator && (AND logiczne) powoduje, że oba warunki muszą być spełnione jednocześnie. W efekcie if wykona się tylko wtedy, gdy x reprezentuje dodatnią liczbę (np. 1, 3.14, 100, 0.0001). Co ważne, w JavaScript !isNaN("5") też będzie prawdą, bo łańcuch "5" zostanie zrzutowany do liczby, więc w praktyce ten warunek przepuści zarówno typ number, jak i tekst, który da się przekonwertować na liczbę dodatnią. W realnych projektach taką konstrukcję stosuje się np. przy walidacji pól formularza: sprawdzamy, czy użytkownik podał sensowną wartość liczbową (np. cena, ilość sztuk, wiek) i czy nie jest ona ujemna albo zerowa. Z mojego doświadczenia lepiej jednak korzystać z Number.isNaN() i jawnie rzutować dane (np. const value = Number(x)), bo klasyczne isNaN ma parę „dziwnych” zachowań wynikających z automatycznych konwersji typów w JS. Mimo to logika w tym zadaniu jest typowa i zgodna z dobrymi praktykami: najpierw walidacja typu/wartości, potem dopiero dalsza logika biznesowa.

Pytanie 33

W instrukcjach mających na celu odtwarzanie dźwięku jako muzyki tła na stronie internetowej NIE stosuje się atrybutu

A. loop="10"
B. volume="-100"
C. balance="-10"
D. href="C:/100.wav"

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź href="C:/100.wav" jest prawidłowa, ponieważ atrybut href jest używany w kontekście linków hipertekstowych, a nie do odtwarzania dźwięku na stronie. W przypadku odtwarzania dźwięku w HTML, odpowiednie tagi to <audio> oraz związane z nimi atrybuty, takie jak src, controls, autoplay, loop, itp. Aby zrealizować odtwarzanie dźwięku jako podkładu muzycznego, używamy tagu <audio src="C:/100.wav" autoplay loop></audio>, co zapewnia, że dźwięk z pliku .wav będzie odtwarzany automatycznie i w pętli. Zgodnie z dobrymi praktykami, pliki audio powinny być dostępne na serwerze i wskazywane względem ich lokalizacji w sieci, co wspiera lepszą wydajność oraz dostępność. Użycie atrybutu href w tym kontekście jest niewłaściwe i może prowadzić do niepoprawnego działania strony, ponieważ przeglądarki nie interpretują tego w kontekście dźwięku. Przykładowo, zamiast href, należy zastosować odpowiednie atrybuty w tagu <audio> zgodnie z aktualnymi standardami HTML5.

Pytanie 34

W której notacji diagramów ER został zapisany model związków encji przedstawiony na ilustracji?

Ilustracja do pytania
A. Chena.
B. Min-Max.
C. Bachmana.
D. Martina.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to notacja Martina. Na diagramie widać bardzo charakterystyczne cechy tej notacji: encje są przedstawione jako prostokąty z nagłówkiem wypełnionym innym kolorem (tu: ciemnoszary pasek z nazwą encji KLIENT, ZAKUP, TOWAR), a pod spodem w formie tabelki wypisane są atrybuty, jeden pod drugim. Klucz główny jest po prostu pierwszym atrybutem na liście (ID), bez dodatkowych ozdobników typu podkreślenie czy elipsa, co jest typowe właśnie dla podejścia Martina, zorientowanego na projektowanie relacyjnej bazy danych. Związki między encjami są rysowane liniami z tzw. crow’s foot ("kurzą łapką") po stronie encji wielokrotnej, a po stronie encji pojedynczej mamy prostą kreskę. Na ilustracji dokładnie to widać: ZAKUP jest encją pośredniczącą, a relacje KLIENT–ZAKUP i TOWAR–ZAKUP mają klasyczną symbolikę notacji Martina. W praktyce, w wielu narzędziach CASE (np. w starszych wersjach ERwin, PowerDesigner, Visio z szablonem Database Model Diagram) domyślny styl ERD jest właśnie bardzo zbliżony do notacji Martina. Taki diagram jest od razu „bliski” strukturze fizycznej tabel w SQL, więc łatwo go przełożyć na CREATE TABLE, klucze obce i indeksy. Z mojego doświadczenia w firmach produkcyjnych i w małych software house’ach notacja Martina jest często używana przy projektach, gdzie liczy się szybkie przejście z modelu koncepcyjnego do modelu logicznego i fizycznego, bez zbyt rozbudowanej symboliki teoretycznych ER-ów. Dlatego rozpoznanie tej notacji po wyglądzie encji-tabelek i crow’s foot jest bardzo praktyczną umiejętnością przy pracy z bazami danych.

Pytanie 35

Który atrybut <img> trzeba uzupełnić, aby strona była dostępna dla osób NIEWIDOMYCH?

A.
src
B.
style
C.
text
D.
alt

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Atrybut <code><span class="code-variable">alt</span></code> znacznika <code><span class="code-text">&lt;</span><span class="code-keyword">img</span><span class="code-text">&gt;</span></code> zawiera tekst alternatywny opisujący obraz. Czytniki ekranu odczytują go osobom niewidomym, dzięki czemu wiedzą one, co przedstawia grafika - to fundament dostępności (a11y), a także wartość dla SEO. Dlatego uzupełnić trzeba atrybut <code><span class="code-variable">alt</span></code>.

Pytanie 36

Którego polecenia SQL użyć, aby utworzyć tabelę?

A.
ADD TABLE
B.
INSERT TABLE
C.
ALTER TABLE
D.
CREATE TABLE

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Nową tabelę tworzy polecenie <code><span class="code-keyword">CREATE</span> <span class="code-keyword">TABLE</span></code>, po którym podaje się nazwę i definicje kolumn. Należy do języka definicji danych (DDL). Dlatego do utworzenia tabeli służy <code><span class="code-keyword">CREATE</span> <span class="code-keyword">TABLE</span></code>.

Pytanie 37

Który z poniższych kodów HTML najlepiej ilustruje opisaną tabelę? (Obramowanie tabeli oraz komórek zostało pominięte dla uproszczenia)

Ilustracja do pytania
A. Odpowiedź B
B. Odpowiedź C
C. Odpowiedź A
D. Odpowiedź D

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź B jest prawidłowa, ponieważ używa atrybutu rowspan do złączenia dwóch komórek w kolumnie. W przedstawionej tabeli nagłówek Telefony obejmuje dwie wartości w jednej kolumnie co jest dokładnie odwzorowane w kodzie HTML poprzez zastosowanie rowspan2 w komórce zawierającej Telefony. To podejście pozwala na logiczne i czytelne przedstawienie danych w tabeli co jest zgodne z dobrymi praktykami projektowania stron internetowych. Użycie rowspan w tabelach HTML jest powszechne gdy chcemy aby jedna komórka zajmowała miejsce większej liczby wierszy niż standardowa. Jest to przydatne w sytuacjach gdy dane muszą być grupowane pionowo co poprawia czytelność i strukturę prezentowanych informacji. Ponadto takie podejście pozwala na bardziej efektywne zarządzanie kodem HTML redukując potrzebę dodatkowego formatowania i zmniejsza złożoność dokumentu co jest zgodne z zasadami semantycznego HTML. Warto również pamiętać że użycie rowspan powinno być przemyślane aby zapewnić dostępność i poprawne wyświetlanie w różnych przeglądarkach i urządzeniach co jest kluczowe w nowoczesnym projektowaniu stron internetowych.

Pytanie 38

Na przedstawionej tabeli samochodów wykonano zapytanie SQL:

SELECT model FROM samochody
WHERE rocznik=2016;

Jakie wartości zostaną zwrócone w wyniku tego zapytania?
idmarkamodelrocznikkolorstan
1FiatPunto2016czerwonybardzo dobry
2FiatPunto2002czerwonydobry
3FiatPunto2007niebieskibardzo dobry
4OpelCorsa2016grafitowybardzo dobry
5OpelAstra2003niebieskiporysowany lakier
6ToyotaCorolla2016czerwonybardzo dobry
7ToyotaCorolla2014szarydobry
8ToyotaYaris2004granatowydobry
A. Punto, Corsa, Corolla
B. Czerwony, grafitowy
C. Punto, Corsa, Astra, Corolla, Yaris
D. Fiat, Opel, Toyota

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Zapytanie SQL SELECT model FROM samochody WHERE rocznik=2016; jest skonstruowane w sposób, który filtruje wyniki do wierszy, gdzie kolumna rocznik ma wartość 2016. Następnie zostaje wyświetlona tylko kolumna model z tych wierszy. W przedstawionej tabeli samochodów wiersze o roczniku 2016 mają modele Punto Corsa i Corolla. Dlatego odpowiedź zawiera te konkretne modele. To zapytanie ilustruje podstawową funkcję filtracji danych w SQL co jest kluczowe w zarządzaniu bazami danych. Użycie WHERE pozwala na selektywne pobieranie danych co jest niezbędne w analizie danych. W praktyce takie zapytania mogą być stosowane w systemach zarządzania zasobami np. w branży motoryzacyjnej do śledzenia modeli pojazdów według rocznika. Dobre praktyki obejmują używanie indeksów na kolumnach wykorzystywanych w klauzuli WHERE aby zoptymalizować wydajność zapytań. Indeksy pomagają w szybszym wyszukiwaniu i filtracji danych co jest szczególnie ważne w dużych bazach danych. Konsystencja oraz dokładność zapytań SQL są kluczowe dla efektywnego funkcjonowania systemów opartych na bazach danych.

Pytanie 39

Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL

A. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
B. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6;
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
D. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna kwerenda to: SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6; i ona dokładnie realizuje założenia zadania. Po pierwsze, część SELECT imie, nazwisko określa, jakie kolumny mają znaleźć się w wyniku – tylko imię i nazwisko, bez wieku czy identyfikatora lekarza. To jest dobra praktyka: wybieramy tylko te dane, które są faktycznie potrzebne w raporcie, zamiast używać SELECT *. Po drugie, FROM Pacjenci wskazuje tabelę źródłową. W standardowym SQL klauzula FROM jest obowiązkowa przy pobieraniu danych z tabel, bez niej serwer bazodanowy po prostu nie wie, skąd ma brać rekordy. Moim zdaniem to jest taki fundament, który warto mieć odruchowo w palcach. Najważniejsza jest jednak klauzula WHERE wiek < 18 AND lekarz_id = 6. Warunek wiek < 18 filtruje wyłącznie pacjentów niepełnoletnich, a lekarz_id = 6 ogranicza wynik do tych osób, które przypisane są do konkretnego lekarza o identyfikatorze 6. Zastosowanie operatora logicznego AND oznacza, że oba warunki muszą być spełnione jednocześnie. To dokładnie odpowiada treści zadania: pacjent musi być jednocześnie poniżej 18 lat i zapisany do lekarza nr 6. W praktyce takie kwerendy są podstawą raportowania w systemach medycznych, CRM-ach, systemach sprzedażowych itd. Na przykład podobną konstrukcję można użyć: SELECT * FROM Zamowienia WHERE status = 'nowe' AND kwota > 1000; – logika jest identyczna. Dobrą praktyką jest też czytelne zapisywanie warunków logicznych i unikanie niejednoznacznych kombinacji AND/OR bez nawiasów. W większych projektach standardem jest również używanie aliasów tabel, ale tu jedna tabela w zupełności wystarcza. Warto zapamiętać ten szablon: SELECT [kolumny] FROM [tabela] WHERE [warunek1] AND [warunek2]; bo pojawia się praktycznie wszędzie w pracy z SQL.

Pytanie 40

Którego znacznika HTML użyć, aby tekst miał czcionkę o stałej szerokości i zachował dodatkowe spacje, tabulacje oraz znaki końca linii?

A.
<blockquote> ... </blockquote>
B.
<pre> ... </pre>
C.
<code> ... </code>
D.
<ins> ... </ins>

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Znacznik <code><span class="code-text">&lt;</span><span class="code-keyword">pre</span><span class="code-text">&gt;</span></code> (preformatted) wyświetla tekst czcionką o stałej szerokości i ZACHOWUJE formatowanie źródłowe: dodatkowe spacje, tabulacje i znaki końca linii (których HTML normalnie by „zwinął”). Dlatego idealnie nadaje się do fragmentów kodu czy tekstu z wyrównaniem. Zapamiętaj: <code><span class="code-text">&lt;</span><span class="code-keyword">pre</span><span class="code-text">&gt;</span></code> = „pokaż dokładnie tak, jak napisałem”.