Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 7 czerwca 2026 23:48
  • Data zakończenia: 8 czerwca 2026 00:07

Egzamin zdany!

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

Fragment kodu HTML z JavaScript spowoduje, że po kliknięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz2.png zastąpi obraz1.png
B. obraz1.png zastąpi obraz2.png
C. obraz1.png zostanie schowany
D. obraz2.png zostanie schowany
Poprawna odpowiedź dotyczy ukrycia obrazu obraz2.png poprzez jego identyfikację za pomocą unikalnego atrybutu id. W kodzie HTML każdy element może być zidentyfikowany przez atrybut id, co pozwala na bezpośrednią manipulację jego własnościami w JavaScript. Funkcja document.getElementById służy do wyszukiwania elementu o podanym id w strukturze DOM dokumentu. Następnie, używając stylowania CSS poprzez właściwość style, możliwe jest zmienienie wartości display na 'none', co skutkuje ukryciem elementu w przeglądarce. Taka technika jest często wykorzystywana w interaktywnych aplikacjach webowych, gdzie użytkownik musi mieć możliwość dynamicznego manipulowania elementami interfejsu. Praktyka ta jest zgodna ze standardami W3C i pozwala na tworzenie responsywnych, przyjaznych użytkownikowi aplikacji. Dobrym przykładem zastosowania jest tworzenie galeria obrazów, gdzie tylko wybrane zdjęcia są wyświetlane w danym momencie. Taka funkcjonalność sprzyja również poprawie czytelności strony, ponieważ użytkownik może ukrywać i odkrywać treści według własnych potrzeb. Zrozumienie tego mechanizmu jest kluczowe dla każdego, kto chce budować nowoczesne strony internetowe z użyciem HTML, CSS i JavaScript.

Pytanie 2

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Monika, Ewelina, Maria
B. Wyłącznie Anna
C. Anna, Maria, Ewa
D. Wyłącznie Maria
Kwerenda SQL SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 ma na celu wybranie imion pracowników, którzy spełniają przynajmniej jeden z dwóch warunków. Pierwszy warunek to nazwisko równe Kowal. Drugi warunek dotyczy stanowiska większego niż 2. W analizowanej tabeli mamy trzy osoby spełniające te kryteria: Maria, która ma nazwisko Kowal oraz Anna i Ewa, które mają stanowiska odpowiednio 3 i 4. Dobrą praktyką w pisaniu zapytań SQL jest jasne formułowanie warunków w klauzuli WHERE, aby zoptymalizować działanie bazy danych i uniknąć niepotrzebnych wyników. Zrozumienie działania operatora OR jest kluczowe, ponieważ umożliwia filtrowanie rekordów według wielu kryteriów. W rzeczywistych scenariuszach biznesowych umiejętność tworzenia takich złożonych zapytań pozwala na efektywne zarządzanie danymi i wyciąganie istotnych informacji, co jest podstawą podejmowania decyzji opartych na danych. Dodatkowo, znajomość struktury tabeli oraz typów danych ułatwia formułowanie zapytań, co jest kluczowe w profesjonalnym używaniu SQL.

Pytanie 3

Które stwierdzenie dotyczy grafiki wektorowej?

A. to obraz w postaci siatki kolorowanych pikseli na ekranie
B. może być zapisana w formacie JPG lub PNG
C. służy do zapisu cyfrowych fotografii
D. obraz jest opisany figurami geometrycznymi w układzie współrzędnych
Grafika wektorowa opisuje obraz figurami geometrycznymi (punktami, liniami, krzywymi) w układzie współrzędnych, dzięki czemu skaluje się bez utraty jakości. Dlatego dotyczy jej stwierdzenie o opisie figurami geometrycznymi.

Pytanie 4

W tabeli zadania znajduje się pole tekstowe status. Jakie zapytanie należy użyć, aby usunąć te zadania, które mają status 'zamknięte'?

A. TRUNCATE TABLE zadania;
B. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
C. DELETE FROM zadania;
D. DELETE FROM zadania WHERE status = 'zamknięte';
Odpowiedź DELETE FROM zadania WHERE status = 'zamknięte' jest poprawna, ponieważ wykorzystuje standardową składnię SQL do usuwania rekordów z tabeli na podstawie zadanych warunków. W tym przypadku, kwerenda ta usuwa tylko te wiersze, które mają wartość 'zamknięte' w polu status. Jest to podejście zgodne z dobrymi praktykami, ponieważ pozwala na precyzyjne określenie, które dane mają zostać usunięte, co minimalizuje ryzyko przypadkowego usunięcia innych rekordów. Na przykład, w systemie zarządzania projektami, możemy mieć wiele zadań z różnymi statusami, takimi jak 'otwarte', 'w trakcie', czy 'zamknięte'. Użycie tej kwerendy pozwala na oczyszczenie bazy danych z nieaktualnych zadań, co jest kluczowe dla utrzymania porządku i efektywności w zarządzaniu projektami. Ponadto, stosując tę metodę, możemy w przyszłości łatwo modyfikować warunki usuwania, na przykład zmieniając status na 'wstrzymane', zachowując elastyczność w zarządzaniu danymi.

Pytanie 5

Zadanie "drzewo kontekstowe" w edytorze WYSIWYG Adobe Dreamweaver jest przeznaczone do

A. określenia kaskadowych arkuszy stylów powiązanych z witryną
B. formatowania treści za pomocą dostępnych znaczników
C. pokazania interaktywnego drzewa struktury HTML dla treści statycznych i dynamicznych
D. tworzenia szablonu strony internetowej
Definiowanie kaskadowych arkuszy stylów (CSS) i formatowanie tekstu przy użyciu znaczników są ważnymi aspektami tworzenia stron internetowych, jednak nie są one funkcjami drzewka kontekstowego w Adobe Dreamweaver. Arkusze stylów są używane do określenia prezentacji strony, co jest kluczowe w kontekście rozdzielania treści od jej wyglądu, ale nie są one bezpośrednio związane z wizualizacją struktury HTML. Użytkownicy często mylą te koncepcje, sądząc, że narzędzie do edycji struktury jest także odpowiedzialne za stylizację. Ponadto, formatowanie tekstu za pomocą znaczników, takich jak <b>, <i> czy <p>, jest również oddzielnym procesem, który nie ma bezpośredniego związku z analizą struktury dokumentu. Często mylnie zakłada się, że edytor wizualny zajmuje się wszystkimi aspektami tworzenia strony internetowej, co prowadzi do nieporozumień. Tworzenie szablonów stron internetowych to kolejny złożony temat, który jest odrębny od funkcji drzewka kontekstowego. Szablony mają na celu ułatwienie tworzenia spójnych i zorganizowanych stron, ale nie są one funkcją edytora HTML. Użytkownicy powinni zrozumieć, że chociaż wszystkie te elementy są ważne, to ich funkcje są różne, a drzewo kontekstowe skupia się na wizualizacji struktury dokumentu HTML.

Pytanie 6

Który operator w języku SQL zwraca resztę z dzielenia (modulo)?

A.
%
B.
&
C.
||
D.
/
Operator % w SQL (m.in. w MySQL) oblicza resztę z dzielenia całkowitego - modulo. Na przykład SELECT 7 % 3 zwróci 1, bo 7 podzielone przez 3 daje 2 i resztę 1. Bywa wykorzystywany np. do sprawdzenia parzystości (liczba % 2 = 0) czy cykliczności. W niektórych systemach dostępna jest też funkcja MOD(a, b). Dlatego resztę z dzielenia zwraca operator %.

Pytanie 7

CMYK to zestaw czterech podstawowych kolorów stosowanych w druku:

A. turkusowego, purpurowego, żółtego, czarnego
B. turkusowego, błękitnego, białego, różowego
C. czerwonego, purpurowego, żółtego, szarego
D. turkusowego, purpurowego, białego, czarnego
CMYK to model barw używany w druku, oparty na czterech farbach: C - cyan (turkusowy), M - magenta (purpurowy), Y - yellow (żółty) i K - key/black (czarny). Kolory powstają przez nakładanie farb na biały papier (synteza substraktywna), a czarny dodaje głębi i oszczędza pozostałe farby. Dlatego CMYK to turkusowy, purpurowy, żółty i czarny.

Pytanie 8

Domyślna CAPTCHA
CAPTCHA - reCAPTCHA

W CMS Joomla! opcja konfiguracji globalnej, pokazana na ilustracji, służy do
A. zapobiegania atakom typu SQL Injection.
B. wyświetlania okna informującego o zgodzie użytkownika na pliki cookie.
C. wyświetlenia okna umożliwiającego wyszukiwanie tekstu na stronie.
D. dopuszczenia do przesyłania danych z formularzy wypełnionych tylko przez człowieka.
Na ilustracji widoczna jest opcja wyboru domyślnej CAPTCHA w konfiguracji globalnej Joomla!, czyli mechanizmu służącego do ochrony formularzy przed botami. Łatwo tu wpaść w kilka typowych pułapek myślowych i skojarzyć ten element z innymi funkcjami bezpieczeństwa lub interfejsu, które z CAPTCHA nie mają wiele wspólnego.

Częstym błędem jest utożsamianie każdego „zabezpieczenia” w panelu administracyjnym z ochroną przed SQL Injection lub innymi atakami na bazę danych. Ochrona przed SQL Injection polega na poprawnym programowaniu po stronie serwera: stosowaniu przygotowanych zapytań (prepared statements), filtrowaniu i walidacji danych wejściowych, poprawnym użyciu API bazy danych. CAPTCHA w ogóle nie dotyka warstwy SQL – jej zadaniem jest ograniczenie liczby automatycznych zgłoszeń z formularzy, a nie filtrowanie treści pod kątem złośliwych zapytań. To jest inna warstwa zabezpieczeń.

Podobnie mylące bywa skojarzenie z wyszukiwarką na stronie. Okno wyszukiwania to zwykły formularz z polem tekstowym, którego wygląd i działanie zależy od modułu lub komponentu wyszukiwarki, a nie od globalnej opcji „Domyślna CAPTCHA”. Ustawienie CAPTCHA nie dodaje żadnego pola wyszukiwania, nie wpływa też na mechanizm przeszukiwania treści, tylko na to, czy przed wysłaniem formularza pojawi się test antybotowy.

Kolejne skojarzenie to okna związane z RODO i zgodą na pliki cookie. Bannery cookie, pop-upy z informacją o polityce prywatności czy zgody marketingowe są realizowane przez osobne wtyczki lub skrypty JavaScript, często całkowicie niezależne od mechanizmu CAPTCHA. Ich zadaniem jest spełnienie wymogów prawnych, a nie weryfikacja, czy użytkownik jest człowiekiem. CAPTCHA nie służy do obsługi zgód na cookies, nie zarządza ciasteczkami, nie pokazuje komunikatów o prywatności.

Sedno tej opcji w Joomla! polega na wskazaniu, który mechanizm antybotowy ma być standardowo używany w formularzach. Dzięki temu dane z formularzy mogą być przyjmowane tylko wtedy, gdy użytkownik przejdzie test potwierdzający, że nie jest automatem. Jeśli myli się tę funkcję z wyszukiwaniem, banerem cookie czy obroną przed SQL Injection, to w praktyce oznacza niezrozumienie warstwowego podejścia do bezpieczeństwa i użyteczności: CAPTCHA to filtr na poziomie interakcji człowiek–formularz, a nie ogólny „magiczny przełącznik” bezpieczeństwa lub interfejsu.

Pytanie 9

Jak nazywa się program, który wykonuje instrukcje zawarte w kodzie źródłowym bez wcześniejszego generowania programu wynikowego?

A. konwerter języka
B. interpreter
C. konwerter kodu
D. kompilator
Interpreter to program, który czyta kod źródłowy i wykonuje go na bieżąco - instrukcja po instrukcji - bez wcześniejszego tłumaczenia całości na osobny plik wykonywalny. Tak działają m.in. PHP, Python i JavaScript (w przeglądarce). Zaletą jest szybkie testowanie i niezależność od platformy, wadą - zwykle wolniejsze działanie niż program skompilowany. Przeciwieństwem jest kompilator, który najpierw przekłada cały kod na język maszynowy. Dlatego program wykonujący kod bez generowania programu wynikowego to interpreter.

Pytanie 10

W tabeli pracownicy zdefiniowano klucz główny jako INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowano kolumny imie oraz nazwisko. W przypadku wykonania poniższej kwerendy SQL wprowadzającej dane, w której pominięto pole klucza, w bazie danych MySQL wystąpi:

INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak');
A. ignorowanie polecenia, tabela nie ulegnie zmianie
B. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
C. błąd związany z nieprawidłową liczbą kolumn
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
Jak używasz polecenia INSERT w MySQL i masz klucz główny ustawiony jako AUTO_INCREMENT, to system sam zajmie się przydzieleniem nowej, unikalnej wartości dla tego klucza dla każdego nowego rekordu. Kiedy wprowadzasz dane o pracowniku, takie jak imię i nazwisko, to nie musisz martwić się o podawanie wartości klucza głównego. MySQL świetnie to rozumie i dodaje kolejny wolny numer. To jest zgodne z dobrymi praktykami w bazach danych, gdzie klucz główny musi być unikalny dla każdego rekordu, ale niekoniecznie musisz go podawać ręcznie, szczególnie gdy korzystasz z mechanizmu AUTO_INCREMENT. Weźmy na przykład tabelę zamówień – tam każdy nowy wpis automatycznie dostaje unikalny numer zamówienia, co eliminuje ryzyko błędów i ułatwia późniejsze śledzenie danych. Dzięki AUTO_INCREMENT wprowadzanie danych staje się dużo prostsze, a szansa na pomyłki przy manualnym wpisywaniu wartości klucza głównego znacznie maleje.

Pytanie 11

W SQL, aby dodać nowy wiersz do bazy danych, należy użyć polecenia

A. SELECT ROW
B. CREATE INTO
C. CREATE ROW
D. INSERT INTO
Polecenie 'INSERT INTO' jest kluczowym elementem języka SQL, służącym do dodawania nowych wierszy danych do istniejącej tabeli w bazie danych. Użycie tego polecenia wymaga podania nazwy tabeli, do której chcemy wstawić dane, oraz listy wartości, które mają być dodane. Na przykład, polecenie 'INSERT INTO klienci (imie, nazwisko) VALUES ('Jan', 'Kowalski');' dodaje nowego klienta o imieniu Jan i nazwisku Kowalski do tabeli 'klienci'. Zgodnie z dobrymi praktykami, zawsze warto również uwzględnić obsługę błędów, aby upewnić się, że operacje na danych są bezpieczne i nie powodują naruszeń integralności bazy. Warto również pamiętać, że do jednego polecenia INSERT można dodać wiele wierszy równocześnie, na przykład: 'INSERT INTO klienci (imie, nazwisko) VALUES ('Ewa', 'Nowak'), ('Anna', 'Zielona');'. Użycie 'INSERT INTO' jest fundamentalne w pracy z bazami danych i stanowi podstawę dla bardziej zaawansowanych operacji, takich jak transakcje czy manipulacje danymi w relacyjnych bazach danych.

Pytanie 12

Wskaż zdanie, które jest fałszywe w odniesieniu do poniższej definicji funkcji w języku C++?

void zamien(float &x, float &y) {
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja ma dwa argumenty
B. Funkcja zwraca wartość
C. Funkcja korzysta z parametrów przez referencję
D. Funkcja nie zwraca żadnej wartości
Funkcja w języku C++ z deklaracją 'void' na początku oznacza, że nie zwraca żadnej wartości. Jest to zgodne z poprawną odpowiedzią nr 3. Tego typu funkcje używane są często w sytuacjach, gdy nie jest konieczne przekazywanie wyniku, a operacje są wykonywane na danych wejściowych. Deklaracja parametrów przez referencję 'float &x, float &y' pozwala na bezpośrednią modyfikację wartości przekazanych do funkcji zmiennych. Oznacza to, że wszelkie zmiany dokonane na tych parametrach wewnątrz funkcji są odzwierciedlane w zmiennych oryginalnych. Taka technika jest szeroko stosowana w programowaniu, aby zwiększyć efektywność i zmniejszyć ilość niepotrzebnych kopii danych. Funkcja 'zamien' ilustruje wymianę wartości dwóch zmiennych przy użyciu tymczasowej zmiennej 'tmp', co jest klasycznym podejściem do tego problemu programistycznego. Zachowanie funkcji bez zwracania wartości jest zgodne z zasadami projektowania funkcji użytkowych, które realizują pewne operacje proceduralne na danych. Stosowanie referencji zwiększa kontrolę nad pamięcią i wydajność programu, co jest krytyczne w aplikacjach o wysokiej wydajności. Zrozumienie tego aspektu jest istotne dla prawidłowego biegu programu i efektywnego zarządzania zasobami.

Pytanie 13

W CSS zdefiniowano styl dla pola edycji. Taki obszar będzie miał jasnozielone tło

input:focus { background-color: LightGreen; }
A. po kliknięciu myszą w celu wprowadzenia tekstu
B. gdy zostanie na niego najechane kursorem myszy bez kliknięcia
C. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie
D. w każdej sytuacji
Pozostałe odpowiedzi opierają się na błędnym zrozumieniu zastosowania pseudoklas w języku CSS. Pseudoklasa :first-of-type, która mogłaby sugerować pierwsze wystąpienie znacznika w dokumencie, nie odnosi się do stanu aktywności pola edycyjnego. Stylizowanie pierwszego wystąpienia nie ma związku z interakcją użytkownika, a jedynie z pozycją elementu w strukturze dokumentu HTML. Kolejny błąd pojawia się przy założeniu, że zmiana koloru tła nastąpi gdy element zostanie wskazany kursorem myszy. W CSS taka interakcja jest obsługiwana przez pseudoklasę :hover, która stosuje się do elementów, nad którymi znajduje się wskaźnik myszy, ale nie obejmuje stanu aktywnego fokusu potrzebnego do edycji. Ostatnia błędna koncepcja dotyczy twierdzenia, że styl jest stosowany w każdym przypadku. To stwierdzenie ignoruje specyfikę selektorów CSS, które wymagają określonych warunków - w tym przypadku aktywnego fokusu elementu. Zrozumienie różnic między pseudoklasami :focus i :hover oraz znajomość ich zastosowań w projektowaniu interaktywnych interfejsów webowych jest kluczowe dla skutecznego stosowania CSS w praktyce. Poprawna wiedza na temat specyficznych zastosowań tych pseudoklas wpływa na jakość doświadczenia użytkownika i integrację funkcjonalności z estetyką projektu.

Pytanie 14

Podczas edytowania grafiki w programie do obróbki grafiki rastrowej należy usunąć kolory z obrazu, aby uzyskać wersję w odcieniach szarości. Do osiągnięcia tego efektu można wykorzystać funkcję

A. szumu RGB
B. filtru rozmycia
C. kadrowania
D. desaturacji
Desaturacja to proces, który polega na usunięciu kolorów z obrazu, co skutkuje uzyskaniem odcieni szarości. Technika ta jest powszechnie wykorzystywana w edytorach grafiki rastrowej, takich jak Adobe Photoshop czy GIMP. Desaturacja obrazu można zrealizować na kilka sposobów, na przykład poprzez zastosowanie odpowiednich filtrów lub narzędzi. W praktyce, desaturując obraz, można uzyskać różne efekty wizualne, które podkreślają fakturę i kształt elementów, a także mogą być użyteczne w kontekście analizy zdjęć medycznych czy archiwalnych. Standardy dotyczące edycji grafiki, takie jak Adobe RGB czy sRGB, również uwzględniają desaturację jako istotny element przetwarzania kolorów. Warto zauważyć, że desaturacja nie jest tym samym co konwersja do odcieni szarości; pierwsza metoda zachowuje wartości jasności kolorów, podczas gdy druga przekształca je w jednolite odcienie szarości, co może prowadzić do utraty detali. Zastosowanie desaturacji jest szczególnie przydatne w przypadku fotografii czarno-białej, gdzie kluczowe jest zachowanie kontrastu i detali w obrazie.

Pytanie 15

Dana jest tablica n-elementowa o nazwie t[n] Zadaniem algorytmu zapisanego w postaci kroków jest wypisanie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
    K3: wynik ← wynik + t[i]
    K4: i ← i + 2
K5: wypisz wynik
A. co drugiego elementu tablicy.
B. sumy tych elementów tablicy, których wartości są nieparzyste.
C. sumy wszystkich elementów tablicy.
D. n-elementów tablicy.
Super rozebrałeś na czynniki pierwsze ten algorytm! Twoja odpowiedź 'co drugiego elementu tablicy' jest jak najbardziej trafna. W pytaniu chodzi o to, że algorytm sumuje co drugi element tablicy, zaczynając od pierwszego, a ten indeks to 0. Zmienna 'i' służy do poruszania się po tablicy i w każdej iteracji zwiększa się o 2. Dzięki temu pętla przeskakuje co drugi element, a te nieparzyste ignoruje. To naprawdę przydatna technika w programowaniu, bo pozwala na określony dostęp do danych. Takie algorytmy wykorzystuje się np. przy analizie danych z czujników, gdzie ważne są tylko wartości zapisane w regularnych odstępach.

Pytanie 16

Portal internetowy dysponuje bardzo złożonym systemem stylów, który obejmuje style zewnętrzne, wewnętrzne oraz lokalne. Jak można zagwarantować, że określona cecha zdefiniowana w zewnętrznym stylu jest zawsze stosowana do elementu HTML, niezależnie od bardziej priorytetowych stylów?

A. przy pomocy reguły !important
B. jako selektor potomka
C. jako pseudoklasę :active
D. przy pomocy pseudoelementu ::after
Odpowiedź, że cechę opisaną w zewnętrznym stylu należy zdefiniować przy pomocy reguły !important jest poprawna. Reguła !important w CSS jest używana do nadania określonej właściwości najwyższego priorytetu. Oznacza to, że nawet jeśli inne reguły CSS mają wyższy specyficzność lub są zdefiniowane później, właściwość oznaczona jako !important zostanie zastosowana. Przykład zastosowania to sytuacja, gdy styl globalny dla elementu przyjmuje kolor tła, ale chcemy, aby dany element zawsze miał czerwony kolor tła, niezależnie od innych reguł. W takim przypadku możemy zdefiniować ten styl jako: `.example { background-color: red !important; }`. Ważne jest, aby stosować !important z rozwagą, ponieważ może to prowadzić do trudności w utrzymaniu kodu oraz nadpisywaniu stylów w nieprzewidywalny sposób. Dobrym podejściem jest najpierw spróbować zwiększyć specyficzność selektora, a dopiero potem, w nagłych wypadkach, używać !important, aby unikać problemów z dziedziczeniem stylów.

Pytanie 17

Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

<?php
class Owoc {
  function __construct() {     echo "test1";     }
  function __destruct() {     echo "test2";     }
}
$gruszka = new Owoc();
?>
A. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
B. Nie zostanie wyświetlony żaden komunikat
C. Pojawi się jedynie komunikat "test2"
D. Pojawi się tylko komunikat "test1"
Skrypt w PHP definiuje klasę Owoc z dwoma metodami specjalnymi __construct() i __destruct(). Metoda __construct() jest automatycznie wywoływana podczas tworzenia instancji klasy. W tym wypadku, w momencie utworzenia obiektu $gruszka, zostanie wykonana metoda __construct(), która wyświetli napis test1. Następnie, gdy skrypt kończy działanie lub obiekt jest usuwany z pamięci, wywoływana jest metoda __destruct(). W tym przypadku, po zakończeniu skryptu, wywołana zostanie metoda __destruct(), która wyświetli napis test2. Metody konstruktorów i destruktorów są podstawą zarządzania cyklem życia obiektu w PHP, pozwalając na inicjalizację ustawień, jak również zwalnianie zasobów. Użycie ich jest kluczowe w projektowaniu obiektowo-zorientowanym, gdzie każda klasa może definiować własne sposoby obsługi zasobów. Praktyka ta wspiera modularność i utrzymanie kodu, co jest standardem w profesjonalnym programowaniu.

Pytanie 18

Który fragment definicji dwukolumnowej tabeli odpowiada efektowi scalenia komórki 1 i 3, przedstawionemu na ilustracji?

Ilustracja do pytania
A. <td rowspan="3">komórka1+3</td>
B. <td colspan="3">komórka1+3</td>
C. <td rowspan="2">komórka1+3</td>
D. <td colspan="2">komórka1+3</td>
Poprawnie wskazałeś fragment z atrybutem rowspan, czyli: <td rowspan="2">komórka1+3</td>. W HTML atrybut rowspan służy do scalania komórek tabeli w pionie, czyli wzdłuż wierszy. W tym przykładzie tabela ma dwie kolumny, a komórka „komórka1+3” zajmuje miejsce pierwszej komórki w pierwszym wierszu oraz pierwszej komórki w drugim wierszu. Dlatego właśnie wartość rowspan musi być równa 2 – ta jedna komórka rozciąga się na dwa wiersze. Gdy przeglądarka widzi taki zapis, rezerwuje dla tej komórki obszar dwóch komórek pod sobą, a w kodzie HTML w kolejnym wierszu pomijamy już odpowiednią liczbę komórek w tej kolumnie. Z mojego doświadczenia wynika, że przy projektowaniu tabel dobrze jest sobie najpierw „narysować” układ na kartce: ile wierszy, ile kolumn, które komórki się łączą. Potem łatwo dobrać czy potrzebujemy colspan (łączenie w poziomie – kolumny), czy rowspan (łączenie w pionie – wiersze). W specyfikacji HTML Living Standard dokładnie tak to jest opisane: rowspan określa, na ile wierszy rozciąga się dana komórka. W praktyce scalanie komórek przydaje się np. przy tworzeniu nagłówków tabel z opisami grup kolumn, przy harmonogramach, planach lekcji, cennikach, gdzie jedna pozycja obowiązuje przez kilka wierszy. Warto też pamiętać o semantyce: tam gdzie to możliwe, dla nagłówków stosujemy <th> z rowspan lub colspan, a dla zwykłych danych <td>. Taki porządek w kodzie ułatwia późniejsze stylowanie CSS i poprawia dostępność, bo czytniki ekranu lepiej rozumieją strukturę tabeli.

Pytanie 19

W przedstawionym kodzie PHP w miejscu kropek powinno zostać umieszczone polecenie:

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++)
{
  $wiersz = ....................................;
  echo "$wiersz[0] $wiersz[1]";
}
A. mysqli_query($zapytanie);
B. mysqli_free_result($zapytanie);
C. mysqli_num_fields($zapytanie);
D. mysqli_fetch_row($zapytanie);
W kontekście przedstawionego kodu PHP, prawidłowe uzupełnienie wiersza poleceń to użycie funkcji mysqli_fetch_row($zapytanie). Funkcja ta pobiera jeden wiersz z zestawu wyników zapytania jako tablicę indeksowaną numerycznie. Jest to istotny krok w procesie przetwarzania danych z bazy danych, ponieważ po wykonaniu zapytania SQL, dane muszą być odpowiednio odczytane, aby można je było wykorzystać w aplikacji. Przykładowo, po wykonaniu zapytania, możemy mieć wiele wierszy danych, a mysqli_fetch_row pozwala na iteracyjne pobieranie każdego z nich. W praktyce, stosując tę funkcję w pętli, możemy w prosty sposób zbudować listę lub tabelę, wyświetlając imię i nazwisko każdego użytkownika. Warto również pamiętać, że przy pracy z bazami danych ważne jest, aby uważnie monitorować proces pobierania danych, by uniknąć problemów z pamięcią, a także aby zwolnić zasoby po zakończeniu operacji. W związku z tym, standardową praktyką jest również stosowanie mysqli_free_result($zapytanie) po zakończeniu pracy z danymi, co pozwala na efektywne zarządzanie pamięcią.

Pytanie 20

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

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

Pytanie 21

Funkcja PHP var_dump() prezentuje dane na temat zmiennej, w tym jej typ oraz wartość. Jakim wynikiem zakończy się poniższy fragment kodu?

$x = 59.85; var_dump($x);
A. string(5) "59.85"
B. float(59.85)
C. int(59)
D. array(2) { [0]=> int(59) [1]=> int(85) }
Wybrane odpowiedzi nie są zgodne z poprawnym wynikiem działania funkcji var_dump() w PHP. Odpowiedź, która sugeruje, że wynik to "int(59)" jest błędna, ponieważ funkcja ta nie konwertuje zmiennoprzecinkowych wartości na liczby całkowite, a 59.85 jest wyraźnie liczbą zmiennoprzecinkową. Inna odpowiedź, sugerująca "string(5) "59.85"", jest myląca, ponieważ zmienna $x została zadeklarowana jako liczba, a nie jako string. PHP automatycznie określa typ zmiennej na podstawie przypisanej wartości, a w tym przypadku jest to typ float. Odpowiedź "array(2) { [0]=> int(59) [1]=> int(85) }" również jest nieprawidłowa, ponieważ nie mamy do czynienia z tablicą, a z pojedynczą zmienną. Przykłady te ilustrują typowe nieporozumienia dotyczące typów danych w PHP. Programiści powinni zrozumieć, że PHP jest dynamicznie typowanym językiem, co oznacza, że typ zmiennej jest określany podczas wykonywania programu, a nie w czasie kompilacji. Właściwe zrozumienie typów danych oraz ich konwersji jest kluczowe dla zapewnienia poprawności i bezpieczeństwa kodu.

Pytanie 22

Jak w PHP otworzyć plik dane.txt TYLKO do odczytu i wczytać jego zawartość?

A.
fopen("dane.txt", "w")  oraz  fgets()
B.
fopen("dane.txt", "r")  oraz  fputs()
C.
fopen("dane.txt", "r")  oraz  fgets()
D.
fopen("dane.txt", "w")  oraz  fputs()
Aby otworzyć plik TYLKO do odczytu, używa się trybu "r": fopen("dane.txt", "r"), a zawartość czyta się np. funkcją fgets() (pobiera kolejne wiersze). Dlatego poprawne jest fopen(..., "r") oraz fgets().

Pytanie 23

Jakim typem jest w PHP zmienna globalna $_POST (odbierająca dane formularza)?

A. obiektem klasy stdClass
B. tablicą asocjacyjną
C. zmienną tekstową
D. ciągiem znaków zakodowanym w JSON
Superglobalna $_POST jest TABLICĄ ASOCJACYJNĄ - kluczami są nazwy pól formularza (name), a wartościami wpisane dane, np. $_POST['email']. Dlatego $_POST to tablica asocjacyjna.

Pytanie 24

Deklaracja

<!DOCTYPE html>
informuje przeglądarkę internetową o:
A. wersji języka HTML zastosowanej w dokumencie strony internetowej.
B. dostosowaniu strony internetowej do różnych rozmiarów urządzeń.
C. indeksowaniu strony internetowej na potrzeby pozycjonowania witryny.
D. tytule strony internetowej.
Deklaracja <!DOCTYPE html> to wbrew pozorom bardzo ważny element każdej poprawnej strony internetowej. Informuje przeglądarkę, jaka wersja języka HTML została użyta w dokumencie, a w praktyce – że ma renderować stronę w trybie zgodnym ze współczesnym standardem HTML5. Dzięki temu przeglądarka nie próbuje włączać tzw. „quirks mode”, czyli trybu zgodności ze starymi, historycznymi błędami Internet Explorera, tylko stosuje aktualne zasady specyfikacji. Moim zdaniem to jest jeden z tych drobiazgów, które po prostu trzeba pisać z automatu na górze każdego pliku .html.

W starszych wersjach HTML deklaracja DOCTYPE była dużo dłuższa i określała konkretne DTD (Document Type Definition), np. dla HTML 4.01 Transitional czy XHTML 1.0 Strict. W HTML5 uproszczono to do jednej, krótkiej formy: <!DOCTYPE html>. To właśnie ta linijka mówi: „to jest dokument HTML5”. Na tej podstawie silnik przeglądarki dobiera reguły parsowania, walidacji struktury i sposób interpretacji wielu elementów, np. sekcji <header>, <footer>, <section>, a także nowych atrybutów formularzy.

W praktyce, gdy tworzysz nową stronę, zawsze zaczynasz od:

<!DOCTYPE html>
<html lang="pl">
<head>…

Jeśli pominiesz DOCTYPE albo wpiszesz go błędnie, możesz mieć kłopot z tym, że strona wygląda inaczej w różnych przeglądarkach, pojawią się problemy z modelu pudełkowym CSS (box model), z obsługą nowych znaczników lub z poprawnym działaniem responsywnego layoutu. Walidatory W3C też zakładają konkretną wersję HTML na podstawie DOCTYPE i pod nią sprawdzają poprawność kodu. Z mojego doświadczenia wynika, że poprawny DOCTYPE to absolutna podstawa profesjonalnego front-endu, nawet jeśli wygląda jak coś „magicznego” na samej górze pliku.

Pytanie 25

Plik cookie utworzony przedstawionym poleceniem PHP:

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jedną dobę.
B. wygaśnie po jednej dobie od jego utworzenia.
C. wygaśnie po jednej godzinie od jego utworzenia.
D. będzie przechowywany na serwerze przez jedną godzinę.
W tym poleceniu PHP funkcja setcookie() dostaje jako trzeci parametr czas wygaśnięcia ciasteczka w postaci znacznika czasu UNIX (timestamp). Wyrażenie time() + (3600 * 24) oznacza: aktualny czas serwera (time()) powiększony o 3600 sekund (czyli jedną godzinę) razy 24, co razem daje 86400 sekund, czyli dokładnie jedną dobę. Przeglądarka zapisuje to jako tzw. cookie trwałe (persistent cookie) i będzie je przechowywać do momentu osiągnięcia tego czasu. Po upływie doby od utworzenia, przeglądarka automatycznie przestanie wysyłać to cookie w nagłówkach HTTP do serwera. To jest ważne: cookie jest przechowywane po stronie klienta, czyli w przeglądarce użytkownika, a nie na serwerze. Serwer tylko wysyła nagłówek Set-Cookie w odpowiedzi HTTP. W praktyce takie ustawienie przydaje się np. do zapamiętania imienia użytkownika, preferencji językowych, koszyka w prostym sklepie albo ustawień wyglądu strony na krótki czas, np. na jedną dobę. Moim zdaniem warto zapamiętać, że brak trzeciego parametru w setcookie() oznacza cookie sesyjne (kasowane po zamknięciu przeglądarki), a podanie konkretnego timestampu tworzy cookie, które ma określoną datę wygaśnięcia. Dobrą praktyką jest zawsze świadomie dobierać czas życia ciasteczek: dane wrażliwe powinny mieć raczej krótki czas ważności, a informacje czysto techniczne lub preferencje interfejsu mogą być przechowywane dłużej. W nowoczesnych aplikacjach webowych łączy się to też z innymi atrybutami cookie (Secure, HttpOnly, SameSite), ale sam mechanizm czasu wygaśnięcia pozostaje taki sam – jest to po prostu liczba sekund od epoki UNIX, kiedy cookie przestanie być uznawane za ważne.

Pytanie 26

W języku SQL aby zmodyfikować dane w tabeli, należy posłużyć się poleceniem

A. CREATE
B. SELECT
C. UPDATE
D. JOIN
Polecenie UPDATE to w SQL podstawowe narzędzie do modyfikowania istniejących danych w tabelach. W praktyce oznacza to, że jeśli chcesz np. zmienić wartość jakiegoś pola dla wybranego rekordu, to właśnie tego polecenia używasz. Przykład z życia: masz tabelę pracowników i ktoś zmienił numer telefonu – nie robisz nowego wpisu, nie tworzysz nowej tabeli, tylko aktualizujesz jedną kolumnę w odpowiednim wierszu. Składnia tego polecenia jest dość intuicyjna: UPDATE nazwa_tabeli SET kolumna=nowa_wartość WHERE warunek. Bardzo ważne jest stosowanie klauzuli WHERE, bo inaczej możesz przez przypadek podmienić dane we wszystkich wierszach tabeli, co niestety zdarza się nawet doświadczonym programistom, zwłaszcza przy pracy na środowiskach testowych. Warto wiedzieć, że SQL-92 (czyli jeden z najważniejszych standardów języka SQL) dokładnie opisuje sposób działania tego polecenia. Często w praktyce spotyka się też połączenie UPDATE z transakcjami, żeby mieć możliwość cofnięcia zmian, gdyby coś poszło nie tak. Moim zdaniem umiejętne stosowanie UPDATE to podstawa pracy z bazami danych – prawie każdy większy system korzysta z tego polecenia na co dzień. Dobrze też pamiętać o bezpieczeństwie i zawsze sprawdzać, czy warunek w WHERE jest poprawny, żeby nie napsuć w danych. Praktyka czyni mistrza i z czasem takie operacje wchodzą w krew.

Pytanie 27

Jak zapisać w JavaScript warunek: a i b są dodatnie, a b jest mniejsze od 100?

A.
if (a > 0 || (b > 0 && b < 100))
B.
if (a > 0 && b > 0 || b > 100)
C.
if (a > 0 && b > 0 && b < 100)
D.
if (a > 0 || b > 0 || b > 100)
Wszystkie trzy żądania muszą być spełnione naraz - a dodatnie, b dodatnie i b mniejsze od 100 - więc łączymy je operatorem &&: if (a > 0 && b > 0 && b < 100). „Dodatnie” to > 0. Dlatego ten warunek jest poprawny.

Pytanie 28

Z przedstawionych tabel Artykuly i Autorzy należy wybrać jedynie nazwiska autorów i tytuły ich artykułów, które zostały ocenione na 5. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
D. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
Gratulacje! Wybrałeś poprawne zapytanie SQL, które dokładnie odpowiada na postawione pytanie. Zapytanie 'SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;' jest prawidłowe, bo łączy dwie tabele 'autorzy' i 'artykuly' za pomocą klucza obcego 'autorzy_id' w tabeli 'artykuly'. Dzięki temu uzyskujemy dostęp do nazwisk autorów i tytułów artykułów. Dodatkowo, część 'WHERE ocena = 5' filtruje wyniki tak, aby wyświetlane były tylko te rekordy, gdzie ocena wynosi 5. To jest kluczowy element, który pozwala nam skupić się tylko na tych danych, które są istotne dla pytania. W praktyce, tego typu zapytania pomagają nam w analizie wydajności autorów i jakości artykułów, co jest niezwykle ważne w branży wydawniczej.

Pytanie 29

W CSS, aby ustawić różne stylizacje dla pierwszej litery w akapicie, należy wykorzystać selektor

A. pseudoelementu p::first-letter
B. atrybutu p [first-letter]
C. dziecka p + first-letter
D. klasy p.first-letter
W języku CSS do formatowania pierwszej litery akapitu używamy pseudoelementu '::first-letter'. Jest to specjalny selektor, który pozwala na zastosowanie stylów tylko do pierwszego znaku w danym elemencie, na przykład w akapicie <p>. Pseudoelement ten może być używany do nadawania unikalnych właściwości typograficznych, takich jak rozmiar czcionki, kolor, font-weight czy marginesy, co może znacząco wzbogacić stylizację tekstu. Przykładowo, używając stylu 'p::first-letter { font-size: 2em; color: red; }', pierwsza litera każdego akapitu stanie się większa i czerwona. To podejście jest zgodne z dobrymi praktykami w CSS, ponieważ umożliwia selektywne stylizowanie elementów bez wpływu na resztę treści. Aby uzyskać większą kontrolę nad układem i estetyką stron internetowych, warto zaznajomić się z innymi pseudoelementami, takimi jak '::first-line', które działają analogicznie. Prawidłowe używanie pseudoelementów jest kluczowe dla tworzenia bardziej zaawansowanych i atrakcyjnych wizualnie projektów.

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: 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. &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

Jak kwerenda SQL przedstawiona w ramce wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Zmieni typ danych kolumny plec na znakowy o stałej długości 9
B. Doda kolumnę plec ze znakowym typem danych o stałej długości 9
C. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9
D. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9
Jak widzisz, polecenie SQL ALTER TABLE pracownicy MODIFY plec char(9) zmienia typ kolumny plec na CHAR o stałej długości 9 znaków. To znaczy, że wszystkie wartości w tej kolumnie będą miały dokładnie 9 znaków. Jeśli dana wartość będzie krótsza, to automatycznie dopełni się spacjami. W praktyce to jest przydatne, gdy musimy mieć dane zawsze w tej samej długości, na przykład przy kodach pocztowych czy numerach identyfikacyjnych. Twoja odpowiedź jest poprawna, ponieważ mówi dokładnie o tym, co się dzieje przy użyciu MODIFY, a typ CHAR wskazuje, że mamy do czynienia z danymi o stałej długości. Wiesz, czasami w aplikacjach biznesowych trzeba mieć dane w jednolitej formie, bo to ułatwia ich przetwarzanie i porównywanie. Dlatego tak ważne jest, żeby znać różne typy danych i ich zastosowania podczas projektowania baz danych.

Pytanie 32

Jaki jest domyślny port serwera HTTP?

A. 8080
B. 443
C. 80
D. 21
Pozostałe numery to porty innych usług lub zastosowań. 8080 bywa stosowany jako alternatywny port HTTP - na przykład przez serwery aplikacyjne i środowiska deweloperskie - ale nie jest domyślny dla zwykłego HTTP. 443 to domyślny port HTTPS, czyli HTTP zabezpieczonego szyfrowaniem TLS. 21 obsługuje protokół FTP, służący do przesyłania plików. Standardowy, domyślny port HTTP to 80, dlatego ta odpowiedź jest poprawna.

Pytanie 33

Który format zapewnia największą kompresję (najmniejszy rozmiar) pliku dźwiękowego?

A. PCM
B. MP3
C. CD-Audio
D. WAV
MP3 stosuje kompresję stratną - usuwa dane mniej słyszalne dla ucha, dzięki czemu plik jest wielokrotnie mniejszy niż zapis nieskompresowany. Dlatego najmniejszy plik dźwiękowy daje MP3.

Pytanie 34

Znaczniki HTML <strong> oraz <em> używane do wyróżniania istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. ```<u>``` oraz ```<sup>```
B. ```<b>``` oraz ```<i>```
C. ```<b>``` oraz ```<u>```
D. ```<i>``` oraz ```<mark>```
Znaczniki HTML <strong> oraz <em> są używane do podkreślenia ważności tekstu, przy czym <strong> wskazuje na silniejsze akcentowanie, a <em> na akcentowanie mniej intensywne, pełniące rolę stylizacji typograficznej. W kontekście formatowania, ich odpowiednikami są znaczniki <b> oraz <i>. Oznacznik <b> wprowadza tekst w pogrubieniu, co sygnalizuje jego ważność, ale nie ma semantycznego znaczenia, podczas gdy <i> oznacza kursywę, która jest często używana do podkreślenia tytułów, obcojęzycznych wyrazów czy terminów technicznych. W praktyce, użycie <strong> i <em> jest zgodne z zasadami semantycznego HTML, które mają na celu zrozumienie treści przez maszyny oraz poprawę dostępności, co ma fundamentalne znaczenie w projektowaniu stron internetowych. Warto także pamiętać, że stosowanie semantycznych znaczników wpływa na SEO, umożliwiając lepsze indeksowanie treści przez wyszukiwarki, a także poprawia doświadczenia osób korzystających z technologii asystujących. Przykładowo, użycie <strong> w nagłówkach lub kluczowych informacjach na stronie pozwala na lepsze zrozumienie struktury treści przez użytkowników oraz boty wyszukiwarek.

Pytanie 35

W języku PHP komentarz w jednej linii zaczyna się od znaków

A. $ lub #
B. <! lub <?
C. /* lub //
D. // lub #
W PHP można robić komentarze jednoliniowe na dwa sposoby: używając podwójnego ukośnika (//) albo znaku hash (#). Większość osób korzysta z //, bo jest to standard w wielu innych językach i po prostu jest bardziej popularne. Komentarze zaczynające się od // są ignorowane przez interpreter, więc można je stosować do dodawania notatek w kodzie lub wyłączania fragmentów bez ich usuwania. Znak # z kolei używamy głównie w skryptach PHP uruchamianych w wierszu poleceń, więc tu jest trochę bardziej specyficzny. Dla przykładu, jak piszesz kod, możesz dodać coś takiego: // To jest komentarz, który tłumaczy działanie poniższego kodu. Komentarze są bardzo ważne, bo pomagają w dokumentacji, ułatwiają zrozumienie kodu zarówno dla Ciebie, jak i dla innych programistów, którzy mogą z nim pracować w przyszłości. Dobrze jest pamiętać o tym, żeby komentarze były zwięzłe, ale jednocześnie informacyjne, co sprawia, że kod staje się bardziej przejrzysty.

Pytanie 36

Jak nazywa się kwerenda pozwalająca zmienić lub przenieść wiele rekordów w jednej operacji?

A. wybierająca
B. krzyżowa
C. funkcjonalna
D. parametryczna
Kwerenda zmieniająca lub przenosząca wiele rekordów w jednej operacji to kwerenda FUNKCJONALNA - obejmuje aktualizacje, usuwanie i dodawanie danych. Dlatego jest to kwerenda funkcjonalna.

Pytanie 37

W systemie baz danych dla sklepu znajduje się tabela artykuly, która zawiera kolumnę o nazwie nowy. Jak należy skonstruować zapytanie, aby przypisać wartość TRUE dla tego pola w każdym rekordzie?

A. INSERT INTO artykuly VALUE nowy=TRUE
B. INSERT INTO nowy FROM artykuly SET TRUE
C. UPDATE artykuly SET nowy=TRUE
D. UPDATE nowy FROM artykuly VALUE TRUE
Odpowiedź UPDATE artykuly SET nowy=TRUE; jest poprawna, ponieważ wykorzystuje standardową składnię zapytań SQL, która pozwala na aktualizację istniejących danych w tabeli. W tym przypadku kwerenda ta zmienia wartość pola 'nowy' na TRUE dla każdego rekordu w tabeli 'artykuły'. W praktyce, używając tej kwerendy, można efektywnie zaktualizować wiele rekordów jednocześnie bez konieczności wprowadzania danych indywidualnie. Dobrą praktyką w pracy z bazami danych jest korzystanie z transakcji, aby zapewnić integralność danych, zwłaszcza w przypadku operacji, które mogą wpływać na dużą liczbę rekordów. Ponadto, warto wiedzieć, że używanie wartości logicznych, takich jak TRUE/FALSE, jest powszechną praktyką w projektowaniu relacyjnych baz danych, co pozwala na lepszą semantykę i łatwiejszą obsługę danych. Na przykład, jeśli w bazie danych istnieje konieczność oznaczania produktów jako nowe, odpowiednia aktualizacja wszystkich rekordów przy użyciu tej kwerendy jest szybkim rozwiązaniem.

Pytanie 38

W PHP typ float oznacza

A. zmiennoprzecinkowy
B. łańcuchowy
C. całkowity
D. logiczny
Typ float w PHP to coś w rodzaju magicznego narzędzia do pracy z liczbami, które mają część dziesiętną. Tego typu liczby są niezbędne, kiedy musimy mieć na uwadze detale, na przykład w finansach czy matematyce. Weźmy taki przykład: przy obliczaniu cen w sklepie internetowym często spotykamy się z kwotami jak 19.99 zł. Dzięki PHP możemy wykonywać różne operacje matematyczne na tych liczbach, co daje nam dużą elastyczność w pracy z danymi liczbowymi. Jednak trzeba wiedzieć, że ze względu na to, jak komputery przechowują liczby zmiennoprzecinkowe, zdarzają się problemy z ich dokładnością. W sytuacjach, gdzie to precyzja jest kluczowa, jak w przypadku obliczeń finansowych, dobrze jest skorzystać z takich funkcji jak round(), żeby zaokrąglić wynik do odpowiedniej liczby miejsc po przecinku. Wiedza na temat typu float i jego zastosowania to absolutna podstawa w pracy z programowaniem, zwłaszcza przy tworzeniu aplikacji webowych.

Pytanie 39

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

A.
<strong>
B.
<em>
C.
<u>
D.
<pre>
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 40

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

A. pseudoklasę
B. pseudoelement
C. identyfikator
D. klasę
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.