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: 9 czerwca 2026 07:31
  • Data zakończenia: 9 czerwca 2026 07:59

Egzamin zdany!

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

Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości, powinno zawierać właściwość

BLOK 1BLOK 2
BLOK 3BLOK 4
BLOK 5
A. clear: both dla wszystkich bloków.
B. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
C. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
D. float: left dla wszystkich bloków.
Hmm, tutaj coś poszło nie tak. Wybrałeś opcję z `clear: both`, ale to nie do końca pasuje do tego zadania. `clear: both` w CSS służy głównie do resetowania pływania bloków, więc jak masz blok z tym ustawieniem, to następny nie będzie obok niego, tylko przesunie się na dół. A w tym przypadku nie musisz resetować pływania, bo to nie jest potrzebne. Wiem, że wybór `float: left` dla niektórych bloków może wydawać się dobrym pomysłem, ale żeby wszystko się poprawnie ułożyło, musisz zastosować `float: left` dla wszystkich bloków. I pamiętaj, żeby im ustawić szerokość, bo inaczej bloków może się nie udać ułożyć w poziomie.

Pytanie 2

Do tabeli pracownicy wpisano rekordy. Co zostanie wyświetlone po uruchomieniu kwerendy SQL SELECT podanej poniżej?

SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;
idimienazwiskopensja
1AnnaKowalska3400
2MonikaNowak1300
3EwelinaNowakowska2600
4AnnaPrzybylska4600
5MariaKowal2200
6EwaNowacka5400
A. Wartość 19500, czyli suma wszystkich pensji pracowników.
B. Wartość 5400, czyli najwyższa pensja pracownika.
C. Wartość 10000, czyli suma pensji pracownika o id=4 oraz o id=6.
D. Dwie wartości: 4600 i 5400, jako pensje pracowników wyższe niż 4000.
Gratulacje, twoja odpowiedź jest poprawna. Kwerenda SQL 'SELECT SUM(pensja) FROM pracownicy WHERE pensja > 4000;' jest zapytaniem, które agreguje (suma) wartości kolumny 'pensja' dla tych wierszy, gdzie pensja przekracza 4000. SQL jest językiem, który pozwala na manipulację i odzyskiwanie danych przechowywanych w relacyjnej bazie danych. Funkcja SUM() jest jednym z podstawowych operatorów agregujących w SQL, który zwraca sumę wartości numerycznych. W tym konkretnym przypadku, zgodnie z pytaniem, suma pensji pracowników, którzy zarabiają więcej niż 4000 wynosi 10000. To pokazuje, jak potężne mogą być kwerendy SQL, umożliwiając szybkie wykonanie złożonych obliczeń na dużych zestawach danych. Podejście to jest często stosowane w analizie danych i raportowaniu, gdzie potrzebna jest agregacja danych na różnych poziomach.

Pytanie 3

W przedstawionej regule CSS h1{color: blue} co oznacza h1?

A. klasę
B. deklarację
C. wartość
D. selektor
W regule CSS h1{color: blue} termin h1 odnosi się do selektora, który jest używany do wybierania elementów HTML, a w tym przypadku oznacza wszystkie nagłówki pierwszego poziomu. Selekcje w CSS są kluczowym elementem stylizacji stron internetowych, ponieważ pozwalają na precyzyjne określenie, które elementy mają być stylizowane. Selekcja h1 odnosi się do wszystkich elementów <h1> w dokumencie HTML, co oznacza, że wszystkie nagłówki pierwszego poziomu zostaną stylizowane zgodnie z podaną regułą. Wartością kolorystyki, czyli blue, jest przypisana do właściwości CSS 'color', co skutkuje zmianą koloru tekstu nagłówka na niebieski. Zgodnie z W3C, CSS (Cascading Style Sheets) pozwala na oddzielenie treści od prezentacji, co zwiększa elastyczność i ułatwia zarządzanie stylem strony. Przykładem praktycznym może być strona internetowa, gdzie wszystkie nagłówki pierwszego poziomu są wyróżnione kolorem niebieskim, co przyciąga uwagę użytkowników i poprawia czytelność. Selekcja jest zatem podstawowym narzędziem w stylizacji, umożliwiającym aplikację reguł CSS do określonych elementów HTML.

Pytanie 4

W języku PHP do zmiennej a przypisano tekst, w którym wielokrotnie występuje słowo Kowalski. W celu zamiany wszystkich wystąpień słowa Kowalski na słowo Nowak w zmiennej a, należy użyć polecenia

A. $a = str_replace('Nowak', 'Kowalski');
B. $a = str_replace('Kowalski', 'Nowak', $a);
C. $a = str_replace('Nowak', 'Kowalski', $a);
D. $a = str_rep('Kowalski', 'Nowak', $a);
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest na pewno dobra! Używasz funkcji str_replace, która w PHP jest mega przydatna do zamiany tekstu. W tym przypadku, pierwsza część to słowo, które chcesz zmienić ('Kowalski'), druga to nowy tekst, którym je zastępujesz ('Nowak'), a trzecia to zmienna, na której pracujesz. Funkcja zwraca nowy tekst, gdzie wszystkie 'Kowalski' stały się 'Nowakami'. To super rozwiązanie, bo str_replace działa na wszystkich przypadkach podanego słowa, co sprawia, że jest naprawdę użyteczna w przetwarzaniu tekstów. Na przykład, jak a zawiera 'Kowalski, Kowalski i Kowalski', to po tym poleceniu dostaniesz 'Nowak, Nowak i Nowak'. Użycie tej funkcji to świetna praktyka w programowaniu, bo pisanie przejrzystego i efektywnego kodu to podstawa.

Pytanie 5

W języku JavaScript zdefiniowano obiekt. Aby uzyskać wartość atrybutu, można użyć następującego zapisu:

obiekt = { q: 1, w: 2, e: 3, r:4 };
A. obiekt::w
B. obiekt->w
C. obiekt:w
D. obiekt.w
Odpowiedź 'obiekt.w' jest prawidłowa, ponieważ w JavaScript używamy notacji kropkowej do uzyskiwania dostępu do właściwości obiektów. W tym przypadku mamy obiekt zadeklarowany jako 'obiekt = { q: 1, w: 2, e: 3, r:4 };'. Aby uzyskać wartość przypisaną do właściwości 'w', wystarczy użyć notacji kropkowej i napisać 'obiekt.w', co zwróci wartość '2'. Tego typu dostęp do danych jest standardem w JavaScript i jest szeroko stosowany w projektach, co pozwala na efektywne i czytelne manipulowanie danymi. Przykładowo, możemy użyć tej techniki w funkcjach, które przetwarzają obiekty lub w kodzie, który reaguje na zdarzenia, gdzie często zachodzi potrzeba uzyskania konkretnych wartości z obiektów. Dobrą praktyką jest również używanie notacji kropkowej, gdy właściwości obiektu mają znane i stabilne nazwy, co zwiększa czytelność kodu.

Pytanie 6

Jaki mechanizm kontroli bezpieczeństwa uruchamiania aplikacji zawiera środowisko .NET Framework?

A. realizowany przez funkcje Windows API
B. realizowany przez frameworki aplikacji webowych (ASP.NET)
C. oparty na uprawnieniach kodu (CAS - Code Access Security) i na rolach (RBS - Role-Based Security)
D. przeznaczony wyłącznie dla bibliotek klas
.NET Framework ma wbudowany model kontroli bezpieczeństwa uruchamianego kodu oparty na dwóch filarach: CAS (Code Access Security) przyznaje uprawnienia w zależności od POCHODZENIA i zaufania kodu (np. kod z sieci ma mniej praw niż lokalny), a RBS (Role-Based Security) decyduje o dostępie na podstawie ROLI i tożsamości użytkownika. Razem ograniczają, co dany kod i użytkownik mogą zrobić. Zapamiętaj: CAS = prawa kodu, RBS = prawa wg roli użytkownika.

Pytanie 7

Aby zmienić wartość atrybutu elementu opisanego w CSS przy użyciu skryptu JavaScript, należy zastosować następujący zapis

A. document.getElementById(id).innerHTML = <nowa wartość>
B. document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>
C. document.getElementById(id).<nazwa właściwości> = <nowa wartość>
D. document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>
Odpowiedzi, które nie zawierają poprawnego odniesienia do właściwości style, wskazują na istotne nieporozumienia dotyczące manipulacji elementami DOM w JavaScript. Użycie document.getElementById(id).innerHTML = <nowa wartość>; nie jest odpowiednie do zmiany elementów stylu, ponieważ innerHTML służy do modyfikacji zawartości HTML wewnątrz elementu, a nie jego stylów. Zmiana zawartości może prowadzić do nadpisania istniejących elementów i wprowadzenia niezamierzonych skutków, takich jak utrata zdarzeń przypisanych do tych elementów. Kolejny błąd tkwi w użyciu document.getElementById(id).<nazwa właściwości> = <nowa wartość>; gdzie <nazwa właściwości> może odnosić się do atrybutów DOM, ale nie do właściwości stylu CSS. Na przykład, ustawienie document.getElementById(id).className = 'newClass'; zmieni klasę CSS elementu, ale nie bezpośrednio jego styl. Ostatnia propozycja, document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>; jest również myląca, ponieważ nie odnosi się do modyfikacji stylów, lecz do manipulacji atrybutami HTML, co może prowadzić do nieprawidłowego działania strony. Zrozumienie zasadniczej różnicy między manipulowaniem treścią a stylem, a także umiejętność właściwego korzystania z DOM, są kluczowe dla skutecznego programowania w JavaScript.

Pytanie 8

Jakie będzie działanie podanych instrukcji JavaScript?

var elementy = document.getElementsByClassName("styl1");
  for(var i = 0; i < elementy.length; i++)
    elementy[i].style.fontWeight = "bolder";
A. Jedynie dla elementu o id równym styl1 będzie przypisany styl pogrubienia tekstu na bolder
B. Wyłącznie dla pierwszego elementu przypisanego do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
C. Dla wszystkich elementów przypisanych do klasy styl1 zostanie nadany styl pogrubienia tekstu bolder
D. Dla wszystkich elementów na stronie zostanie zastosowany styl pogrubienia tekstu na bolder
Instrukcje JavaScript w pytaniu wykorzystują metodę getElementsByClassName aby pobrać kolekcję wszystkich elementów na stronie które posiadają przypisaną klasę styl1. Metoda ta zwraca obiekt typu HTMLCollection który przypomina tablicę i zawiera odniesienia do elementów DOM posiadających określoną klasę. Następnie za pomocą pętli for przechodzimy przez każdy z tych elementów i zmieniamy ich styl na bolder przypisując nową wartość do właściwości style.fontWeight. Dzięki temu każdy element w kolekcji zostaje zmodyfikowany i wyświetlany z pogrubioną czcionką. Takie podejście jest zgodne z dobrymi praktykami w zakresie manipulacji DOM w JavaScript gdyż jest to sposób efektywny i bezpośredni. Użycie klas do grupowania elementów HTML pozwala na jednoczesne stosowanie stylów i operacji na grupach elementów co jest kluczowe w dynamicznym modelu tworzenia stron internetowych. Warto zwrócić uwagę na fakt że nazwy klas są czułe na wielkość liter co oznacza że styl1 i Styl1 byłyby traktowane jako różne klasy.

Pytanie 9

W poleceniu CREATE TABLE zastosowanie klauzuli PRIMARY KEY przy definiowaniu kolumny tabeli spowoduje, że ta kolumna stanie się

A. indeksem klucza
B. indeksem unikalnym
C. kluczem obcym
D. kluczem podstawowym
Użycie klauzuli PRIMARY KEY w instrukcji CREATE TABLE pozwala na zdefiniowanie unikalnego identyfikatora dla każdego rekordu w tabeli. Klucz podstawowy zapewnia, że żadne dwa wiersze nie mogą mieć tej samej wartości w kolumnie, co jest kluczowe dla zachowania integralności danych. Przykładem praktycznym może być stworzenie tabeli użytkowników, gdzie 'id_użytkownika' jest kluczem podstawowym. Taki klucz może być typu INTEGER z automatycznym inkrementowaniem, co oznacza, że dla każdego nowego użytkownika wartość 'id_użytkownika' wzrasta automatycznie. Standardy branżowe zalecają definiowanie klucza podstawowego dla każdej tabeli, aby upewnić się, że rekordy można w sposób jednoznaczny zidentyfikować, co jest niezbędne dla relacyjnych baz danych. Dodatkowo, klucz podstawowy automatycznie tworzy indeks na tej kolumnie, co przyspiesza operacje wyszukiwania. Ważne jest, aby klucz podstawowy był dobrze przemyślany, ponieważ jego zmiana w przyszłości może wiązać się z dużymi komplikacjami w bazie danych.

Pytanie 10

W teorii relacji operacja selekcji polega na

A. wybraniu krotek, które spełniają określone warunki
B. eliminuje krotki z powtarzającymi się polami
C. wybraniu krotek, które nie zawierają wartości NULL
D. pozbywaniu się pustych wierszy
W kontekście algebry relacji, operacja selekcji nie polega na eliminowaniu krotek z powtarzającymi się polami czy też usuwaniu pustych wierszy. Tego rodzaju zrozumienie jest mylące, ponieważ w rzeczywistości selekcja ma na celu wydobycie krotek, które spełniają określone kryteria. Eliminowanie krotek z powtarzającymi się polami odnosi się bardziej do operacji związanych z usuwaniem duplikatów, co jest osobnym zagadnieniem w algebrze relacji. Również wykluczanie pustych wierszy, choć może być istotne w kontekście czyszczenia danych, nie jest bezpośrednio związane z operacją selekcji. Typowym błędem jest nieprawidłowe utożsamianie selekcji z procesem filtrowania danych, który niekoniecznie odnosi się do spełniania określonych warunków. Ważne jest, aby pamiętać, że selekcja jest operacją, która pozwala na wybór tylko tych krotek, które są zgodne z zadaną logiką, co czyni ją niezwykle użyteczną w codziennej pracy z bazami danych. Zrozumienie tej różnicy jest kluczowe dla efektywnego korzystania z baz danych i tworzenia precyzyjnych zapytań, które mogą przyczynić się do lepszego zarządzania informacjami.

Pytanie 11

Rezultatem działania zamieszczonej pętli napisanej w języku PHP jest wypisanie następujących liczb

Ilustracja do pytania
A. od 1 do 10
B. od 2 do 10
C. od 10 do 1
D. od 10 do 2
Pętla for w języku PHP przedstawiona w pytaniu zaczyna od wartości początkowej 10 dla zmiennej iteracyjnej $i. Warunek zakończenia pętli to $i >= 1, co oznacza że pętla będzie działać dopóki wartość $i jest większa lub równa 1. W każdym kroku iteracji następuje dekrementacja zmiennej $i o 1 dzięki operatorowi $i--. W praktyce oznacza to że pętla wypisuje wartości od 10 do 1 w kolejnych liniach. Dekrementacja w pętlach jest często stosowana, kiedy chcemy przechodzić przez elementy w odwrotnej kolejności, co jest przydatne w algorytmach sortowania bądź odwracania danych. Dzięki jasnemu określeniu warunków początkowych, końcowych oraz kroku iteracji pętla for jest jednym z bardziej przejrzystych i zrozumiałych narzędzi w programowaniu. Warto pamiętać o optymalizacji kodu i unikanie nadmiernych iteracji, co jest dobrym standardem w praktykach programistycznych, zwłaszcza w projektach o dużej skali. Pisząc bardziej złożone skrypty, należy pamiętać także o możliwości wystąpienia błędów związanych z nieskończonymi pętlami jeśli warunek zakończenia nie jest poprawnie zdefiniowany.

Pytanie 12

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Polega na modyfikacji sposobu zapisu obrazu, aby zmienić metodę kompresji
B. Powoduje wycięcie określonego fragmentu z pierwotnego obrazu w celu uzyskania lepszego widoku
C. Powoduje zmianę wymiarów obrazu bez modyfikacji istotnej zawartości wizualnej
D. Łączy lub odejmuje figury
Wiele osób myli proces skalowania obrazu z innymi technikami edycji grafiki, co może prowadzić do nieporozumień. Odpowiedzi sugerujące, że skalowanie obrazu polega na łączeniu lub odejmowaniu kształtów, są mylące, ponieważ te działania rzadziej odnoszą się do zmiany rozmiaru, a bardziej do modyfikacji kompozycji obrazu. Na przykład, łączenie kształtów w programie graficznym wynika z potrzeby tworzenia nowych form, co jest odrębnym procesem. Podobnie, wycinanie fragmentów obrazu w celu uzyskania lepszego widoku odnosi się do techniki kadrowania, która, choć również ważna, nie jest równoznaczna ze skalowaniem. Kadrowanie polega na usunięciu zbędnych elementów, a nie na zmianie rozmiaru zachowującego całość wizualną. Ponadto zmiana formatu zapisu obrazu i kompresji obrazu odnosi się do optymalizacji plików, a nie do ich rozmiaru w sensie wymiarów pikseli. Zrozumienie tych różnic jest kluczowe, by poprawnie pracować w dziedzinie grafiki komputerowej i wykorzystać odpowiednie techniki w zależności od potrzeb projektu.

Pytanie 13

Elementem odpowiadającym imieniu Agata w zaprezentowanej tablicy JavaScript jest:

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona[3];
B. Imiona[Agata];
C. Imiona['Agata'];
D. Imiona[4];
Wybór Imiona[4] jest błędny, ponieważ jak wcześniej wspomniano, tablice w JavaScript są indeksowane od zera i tablica Imiona ma cztery elementy, co oznacza, że najwyższy indeks dostępny w tym przypadku to 3. Próba uzyskania dostępu do elementu o indeksie 4 zwróci undefined, co jest powszechnym źródłem błędów podczas programowania. Kolejna nieprawidłowa odpowiedź, Imiona[Agata], również nie jest poprawna, gdyż nie możemy używać wartości zmiennych (takich jak 'Agata') jako indeksów w tablicach bez wcześniejszej deklaracji. W JavaScript zmienne muszą być zdefiniowane, aby można było ich użyć. Imiona['Agata'] to kolejny przykład błędnego podejścia. Chociaż JavaScript pozwala na uzyskiwanie dostępu do właściwości obiektów za pomocą notacji z kropką lub bracket notation, w przypadku tablic nie można używać nazw elementów, które nie są ich indeksami. Tego rodzaju błędy są często wynikiem niepełnego zrozumienia różnicy między tablicami a obiektami w JavaScript. Zrozumienie tych różnic oraz praktykowanie poprawnego indeksowania tablic jest kluczowe dla każdego programisty, aby uniknąć trudności w kodowaniu oraz zapewnić, że aplikacje działają zgodnie z zamierzeniem.

Pytanie 14

Która deklaracja w C++ przyjmuje argument typu RZECZYWISTEGO i zwraca wynik typu CAŁKOWITEGO?

A.
float fun1(void a);
B.
float fun1(int a);
C.
void fun1(int a);
D.
int fun1(float a);
Typ przed nazwą to typ ZWRACANY, a w nawiasie jest typ ARGUMENTU. void fun1(int a) nic nie zwraca i bierze całkowity. float fun1(int a) ma odwrotnie - zwraca rzeczywisty, bierze całkowity. float fun1(void a) jest błędna. Zwraca całkowity, bierze rzeczywisty: int fun1(float a);.

Pytanie 15

Jak określa się część strukturalnego języka zapytań, która dotyczy tworzenia zapytań do bazy danych za pomocą polecenia SELECT?

A. SQL DML (ang. Data Manipulation Language)
B. SQL DQL (ang. Data Query Language)
C. SQL DCL (ang. Data Control Language)
D. SQL DDL (ang. Data Definition Language)
SQL DQL, czyli Data Query Language, to podzbiór SQL, który koncentruje się na formułowaniu zapytań do baz danych, w szczególności za pomocą polecenia SELECT. DQL umożliwia użytkownikom wydobywanie danych z bazy w sposób, który jest zarówno elastyczny, jak i wydajny. Przykładem zastosowania DQL jest zapytanie, które pozwala na wyciągnięcie informacji o klientach z tabeli 'Klienci', gdzie warunki mogą być określone przez klauzule WHERE, ORDER BY lub GROUP BY. Dzięki DQL, można również stosować różne funkcje agregujące, takie jak COUNT, SUM, AVG, co pozwala na analizę danych na bardziej zaawansowanym poziomie. W praktyce, umiejętność posługiwania się DQL jest kluczowa dla analityków danych oraz programistów, którzy pracują z bazami danych, ponieważ umożliwia efektywne zarządzanie i raportowanie wyników. Poznanie DQL jest niezbędne dla każdego, kto zamierza skutecznie korzystać z systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL czy Oracle.

Pytanie 16

Jakie wyrażenie logiczne powinno zostać użyte w języku JavaScript, aby przeprowadzić operacje wyłącznie na dowolnych liczbach ujemnych z zakresu jednostronnie domkniętego <-200, -100)?

A. (liczba >= -200) && (liczba < -100)
B. (liczba >= -200) || (liczba > -100)
C. (liczba <= -200) && (liczba < -100)
D. (liczba <= -200) || (liczba > -100)
Wybór innego wyrażenia logicznego niż (liczba >= -200) && (liczba < -100) prowadzi do nieprawidłowego zakresu liczb, który nie odpowiada zdefiniowanym wymaganiom. Na przykład, użycie (liczba <= -200) && (liczba < -100) ogranicza zakres do wartości mniejszych lub równych -200 oraz mniejszych niż -100, co nie łapie wartości -200 jako dolnej granicy i odrzuca wszystkie liczby między -200 a -100. Podobnie, (liczba >= -200) || (liczba > -100) sprawdza, czy liczba jest większa lub równa -200, co obejmuje wszystkie liczby ujemne, a to nie jest zgodne z oczekiwanym przedziałem. Z kolei (liczba <= -200) || (liczba > -100) również nie pasuje do wymogów, ponieważ akceptuje liczby mniejsze niż -200 oraz te większe niż -100, co znów nie pokrywa się z ustalonym zakresem. Typowe błędy w myśleniu mogą wynikać z nieprecyzyjnego zrozumienia operatorów logicznych oraz sposobu, w jaki dane warunki wpływają na zakres wartości. Zrozumienie działania operatorów oraz ich wpływu na logikę aplikacji jest kluczowe dla skutecznego programowania, a ich niewłaściwe zastosowanie prowadzi do błędów, które mogą być trudne do zdiagnozowania. Ważne jest, aby przy definiowaniu warunków, zwracać szczególną uwagę na znaki porównania i ich dobór do oczekiwanego rezultatu.

Pytanie 17

Aby poprawić wydajność strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie jej rozmiarów

A. w programie graficznym
B. za pomocą atrybutów HTML
C. za pomocą właściwości CSS, podając rozmiar w pikselach
D. za pomocą właściwości CSS, podając rozmiar w procentach
Zastosowanie atrybutów HTML do zmiany rozmiaru grafiki, takie jak width i height, nie wpływa na samą wielkość pliku, a jedynie na to, jak obrazek jest prezentowany na stronie. Przykładowo, jeśli zmniejszymy wymiary w HTML, przeglądarka nadal załadowuje pełną wersję grafiki, co może prowadzić do wolniejszego ładowania strony. To podejście jest niewłaściwe, ponieważ nie rozwiązuje problemu optymalizacji pliku, a jedynie maskuje go na poziomie wizualnym. Podobnie, stosowanie właściwości CSS, aby wskazać rozmiar w pikselach lub procentach, również nie zmienia rozmiaru samego pliku, co powoduje, że strona może ładować się dłużej. Użytkownicy mogą być zdezorientowani, myśląc, że zmiana stylów CSS wystarczy do poprawy wydajności strony, podczas gdy w rzeczywistości kluczowe jest skompresowanie i zmniejszenie samego pliku graficznego. Typowym błędem myślowym jest założenie, że zmiana rozmiaru wyświetlania na stronie jest równoważna z optymalizacją pliku. W praktyce zaleca się najpierw zmniejszyć rozmiar grafiki w programie graficznym, a następnie użyć odpowiednich tagów HTML lub CSS do wyświetlenia obrazu w pożądanym rozmiarze. Takie podejście zapewnia rzeczywiste korzyści w zakresie wydajności i szybkości ładowania strony.

Pytanie 18

Formularze do zarządzania bazami danych są tworzone w celu

A. ułatwienia wprowadzania, edytowania i usuwania danych
B. wyszukiwania rekordów, które spełniają określone kryteria
C. tworzenia powiązań w relacyjnych bazach danych
D. generowania raportów z danych
Wiele osób może pomylić funkcję formularzy w bazach danych z ich rolą w raportowaniu danych. Chociaż formularze mogą być używane do generowania raportów, ich głównym celem nie jest prezentacja danych, ale ułatwienie ich wprowadzania oraz zarządzania. Raporty zazwyczaj są generowane na podstawie danych już istniejących w bazie i wymagają analizy, co wykracza poza funkcję formularzy. Z kolei wyszukiwanie wierszy spełniających określone kryteria, choć istotne, również nie jest głównym zadaniem formularzy. Wyszukiwanie to proces związany z kwerendami SQL, który pozwala na wydobycie danych na podstawie różnych warunków, co także nie jest bezpośrednio związane z funkcjonalnością formularzy, które skupiają się na interakcji użytkownika z danymi. Ponadto, wprowadzanie powiązań w relacyjnych bazach danych to bardziej zaawansowany proces projektowania bazy, który wymaga zrozumienia struktury danych i zastosowania kluczy głównych oraz obcych. Powiązania są definiowane na etapie projektowania bazy danych, a nie podczas korzystania z formularzy. Dlatego, chociaż wszystkie wymienione funkcje są istotne w kontekście zarządzania danymi, formularze skupiają się głównie na uproszczeniu interakcji użytkownika z procesem wprowadzania i modyfikacji danych.

Pytanie 19

Jakie skutki przyniesie zastosowanie przedstawionego formatowania CSS dla nagłówka trzeciego stopnia?

<style> h3 { background-color: grey; } </style> ... <h3 style="background-color: orange;"> Rozdział 1.2.2. </h3>
A. kolor tekstu będzie szary
B. tło będzie szare
C. tło będzie pomarańczowe
D. kolor tekstu będzie pomarańczowy
W tym przykładzie pokazano dwa różne sposoby stylizacji za pomocą CSS: styl wbudowany i styl zewnętrzny. Styl wbudowany ma wyższy priorytet, bo jest przypisany bezpośrednio do elementu HTML, a to oznacza, że w nagłówku trzeciego stopnia kolor tła będzie pomarańczowy. To ma sens, bo czasem musimy przeskoczyć ogólne reguły stylizacji, żeby wprowadzić jakieś szczególne zmiany. Używanie stylów wbudowanych może być jednak ryzykowne, bo jak się ich nagromadzi, to ciężko się potem w tym połapać. Dlatego lepiej korzystać z zewnętrznych stylów – są bardziej uporządkowane i pozwalają na łatwe powtarzanie kodu CSS. Ważne jest też, żeby nie łączyć HTML z CSS w sposób, który wprowadza zamęt, bo to ułatwia życie i sprawia, że kod jest bardziej zrozumiały. Wiedza na temat priorytetów w CSS jest kluczowa dla każdego, kto chce dobrze projektować strony i mieć wszystko ładnie poukładane.

Pytanie 20

Który znacznik sekcji <head> jest wymagany w HTML5, a jego brak walidator zgłasza jako błąd?

A.
style
B.
meta
C.
title
D.
link
Spośród znaczników sekcji <head> obowiązkowy w HTML5 jest <title> - każdy dokument musi mieć tytuł, więc jego brak walidator traktuje jak błąd. Dlatego wymagany jest <title>.

Pytanie 21

Którym poleceniem w MySQL wyświetli się listę uprawnień nadanych użytkownikowi anna?

A.
REVOKE GRANTS FROM anna;
B.
SELECT GRANTS FOR anna;
C.
SHOW GRANTS FOR anna;
D.
GRANT * TO anna;
Listę uprawnień nadanych użytkownikowi wyświetla w MySQL polecenie SHOW GRANTS FOR anna; - zwraca zestaw poleceń GRANT opisujących jego prawa. Używa się go np. do audytu, kto i co może robić w bazie. Dlatego poprawne jest SHOW GRANTS FOR anna;.

Pytanie 22

Zaprezentowano poniżej obsługę

if (!isset($_COOKIE[$nazwa]))
  echo "nie ustawiono!";
else
  echo "ustawiono: " . $_COOKIE[$nazwa];
A. ciasteczek
B. bazy danych
C. sesji
D. zmiennych tekstowych
Obsługa ciasteczek jest kluczowym elementem w zarządzaniu stanem w aplikacjach webowych. Ciasteczka, czyli małe pliki tekstowe przechowywane w przeglądarce użytkownika, pozwalają na śledzenie aktywności użytkownika między stronami i sesjami. W kodzie powyżej widzimy użycie globalnej tablicy PHP $_COOKIE do sprawdzania, czy ciasteczko o określonej nazwie zostało ustawione. Funkcja isset() sprawdza, czy zmienna jest zdefiniowana i nie jest null. Jeśli ciasteczko istnieje, jego wartość jest wyświetlana. Ciasteczka są powszechnie używane do zarządzania sesjami, personalizacji treści czy śledzenia zachowań użytkowników. W praktyce, zabezpieczenia są ważnym aspektem zarządzania ciasteczkami. Powinny być szyfrowane i oznaczone jako HttpOnly oraz Secure, aby zminimalizować ryzyko kradzieży informacji przez ataki XSS. Programiści powinni także stosować polityki prywatności zgodnie z regulacjami RODO, informując użytkowników o użyciu ciasteczek. Zrozumienie tych mechanizmów jest fundamentalne dla budowy bezpiecznych i funkcjonalnych aplikacji webowych.

Pytanie 23

Który znacznik umieszcza się w sekcji <body> dokumentu HTML?

A.
<h2>
B.
<title>
C.
<link>
D.
<meta>
Pozostałe znaczniki należą do <head> (metadane dokumentu). <link> dołącza zasoby (np. CSS), <title> ustawia tytuł karty, a <meta> podaje metadane. W <body> umieszcza się treść, np. <h2>.

Pytanie 24

W kodzie HTML stworzono link do strony internetowej. Aby otworzyć tę stronę w nowym oknie lub zakładce przeglądarki, należy dodać do definicji linku atrybut

<a href="http://google.com" >strona Google</a>
A. rel = "external"
B. target = "_parent"
C. target = "_blank"
D. rel = "next"
Atrybut target w języku HTML służy do określenia, w jaki sposób ma otworzyć się dokument, do którego prowadzi odnośnik. Użycie wartości '_blank' dla atrybutu target jest standardowym sposobem na otwarcie nowej strony w nowym oknie lub zakładce przeglądarki. Przykład zastosowania to: <a href="http://google.com" target="_blank">strona Google</a>. Jest to niezwykle przydatne w kontekście UX, ponieważ pozwala użytkownikom na łatwe porównanie informacji bez utraty dostępu do oryginalnej strony. Warto również zauważyć, że użycie tego atrybutu jest zgodne z najlepszymi praktykami w tworzeniu stron internetowych, gdyż umożliwia użytkownikom zachowanie kontekstu przeglądania. W HTML5 atrybut target pozostaje wspierany, co czyni go istotnym elementem w projektowaniu interfejsów użytkownika. Oprócz '_blank' istnieją inne wartości, takie jak '_self', '_parent' i '_top', które również spełniają różne funkcje w zależności od potrzeb nawigacyjnych w aplikacji webowej.

Pytanie 25

Co musi zawierać kolumna pełniąca funkcję klucza głównego w tabeli?

A. wartości unikalne
B. inny typ niż pozostałe kolumny
C. ciągłą numerację
D. wyłącznie liczby
Klucz główny musi jednoznacznie identyfikować każdy wiersz, więc jego wartości muszą być UNIKALNE (i niepuste). Dzięki temu da się bez pomyłki wskazać konkretny rekord. Dlatego kolumna klucza głównego musi zawierać wartości unikalne.

Pytanie 26

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. balance="-10"
C. volume="-100"
D. href="C:/100.wav"
Atrybuty volume, loop i balance są używane w kontekście odtwarzania dźwięku, co może prowadzić do nieporozumień dotyczących ich zastosowania. Atrybut volume, choć nie jest standardowo stosowany w HTML5, odnosi się do głośności dźwięku i powinien być regulowany w sposób programowy za pomocą JavaScript, a nie jako część atrybutów tagu audio. Implementacja głośności powinna być realizowana poprzez metody JavaScript, takie jak audioElement.volume, co daje większą kontrolę nad odtwarzanym dźwiękiem. Z kolei atrybut loop jest używany do wskazania, że dźwięk powinien być odtwarzany w pętli, co jest zgodne z oczekiwaniami użytkowników, którzy chcą, aby muzyka grała w tle bez przerwy. Balance, podobnie jak volume, nie jest standardowym atrybutem HTML i w praktyce nie jest obsługiwany przez przeglądarki. Użytkownicy mogą mylnie zakładać, że te atrybuty są bezpośrednio dostępne w HTML, podczas gdy w rzeczywistości wymagają one wsparcia z poziomu skryptów. Dlatego kluczowe jest zrozumienie, że konstruując interaktywne aplikacje webowe, należy opierać się na aktualnych specyfikacjach, aby uniknąć typowych pułapek związanych z niepoprawnym użyciem atrybutów.

Pytanie 27

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:hover { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:active { background-color: Pink; }
D. tr { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek.

W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony.

Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 28

Podczas definiowania tabeli produkty należy stworzyć pole cena, które będzie reprezentować wartość produktu. Odpowiedni typ danych dla tego pola to

A. DECIMAL(10, 2)
B. INTEGER(11)
C. TINYTEXT
D. ENUM
Wybór typów danych dla pola przechowującego cenę produktu ma kluczowe znaczenie dla poprawności funkcjonowania bazy danych. INTEGER(11) jest typem, który przechowuje liczby całkowite, co oznacza, że nie może być zastosowany do reprezentacji wartości z miejscami dziesiętnymi, co jest niezbędne w przypadku cen. Użycie INTEGER może prowadzić do poważnych problemów, jak zaokrąglanie cen, co w branży handlowej może skutkować błędnymi transakcjami. TINYTEXT to typ danych przeznaczony do przechowywania tekstu, co czyni go całkowicie nieodpowiednim do reprezentacji wartości liczbowych, a tym bardziej cen. W przypadku zastosowania TINYTEXT w tym kontekście, nie tylko utracimy możliwość przeprowadzania obliczeń na cenach, ale również stworzymy dodatkowe problemy z wydajnością bazy danych, ponieważ operacje na tekstach są znacznie wolniejsze niż na liczbach. Z kolei ENUM, który jest używany do określenia zestawu dozwolonych wartości, nie ma zastosowania w kontekście cen, które mogą się zmieniać i nie są ograniczone do stałego zestawu opcji. Użycie ENUM do reprezentacji cen prowadziłoby do nieefektywności, ponieważ każda zmiana ceny wymagałaby modyfikacji definicji pola. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków to brak zrozumienia znaczenia precyzyjnego przechowywania danych finansowych oraz nieznajomość dostępnych typów danych i ich zastosowań w kontekście konkretnej aplikacji.

Pytanie 29

Jakie informacje z ośmiu wpisanych rekordów w tabeli zwierzęta zostaną przedstawione w wyniku wykonania wskazanej instrukcji SQL?

Ilustracja do pytania
A. Anna Kowalska, Jan Nowak
B. Fafik, Brutus, Dika, Fuks
C. Figaro, Dika, Fuks
D. Dika, Fuks
Zapytanie SQL SELECT imie FROM zwierzeta WHERE rodzaj = 2 AND szczepienie = 2016; filtruje wyniki według dwóch kryteriów: rodzaj musi być równy 2 i rok szczepienia musi być 2016. W danych mamy kilka zwierząt, ale tylko Dika i Fuks spełniają oba te warunki. Dika i Fuks mają rodzaj równy 2 oraz rok szczepienia 2016, co czyni je jedynymi zwierzętami w tabeli spełniającymi te kryteria. Zrozumienie tego typu zapytań wymaga znajomości składni SQL oraz logiki warunkowej. W praktyce stosowanie filtrów WHERE to jedna z podstawowych technik selekcji danych umożliwiająca precyzyjne wyciąganie rekordów z dużych zbiorów danych. Warto również zaznaczyć, że poprawne używanie takich zapytań w pracy zawodowej jest niezbędne dla zapewnienia jakości i wydajności procesów związanych z bazami danych. Wiedza ta jest kluczowa w wielu branżach, w których przetwarzanie dużych ilości danych jest codziennością.

Pytanie 30

Barwy reprezentowane graficznie na stożku (barwa, nasycenie, jasność) uzyskuje się w modelu:

A. CMYK
B. CIEXYZ
C. RGB
D. HSV
Pozostałe modele wizualizuje się inaczej lub mają inne zastosowanie. RGB, oparty na składowych czerwonej, zielonej i niebieskiej, przedstawia się zwykle jako sześcian (kostkę), a nie stożek. CMYK to model używany w druku (cyjan, magenta, żółty, czarny) i opisuje mieszanie farb, nie barwy na stożku. CIE XYZ to model odniesienia oparty na percepcji wzrokowej, służący do precyzyjnego definiowania kolorów. Reprezentację stożkową z barwą, nasyceniem i jasnością ma model HSV.

Pytanie 31

Co robi polecenie:

ALTER TABLE miasta ADD kod text;
?
A. dodaje dwie kolumny: kod i text
B. dodaje do tabeli kolumnę kod typu text
C. zmienia nazwę kolumny kod na text
D. zmienia nazwę tabeli miasta na kod
Polecenie ALTER TABLE miasta ADD kod text; rozszerza istniejącą tabelę miasta o jedną nową kolumnę o nazwie kod i typie text. ALTER TABLE zmienia strukturę tabeli, a ADD wskazuje dodanie kolumny (nazwa plus typ). Dlatego polecenie dodaje kolumnę kod typu text.

Pytanie 32

Jakim rodzajem instrukcji jest w PHP konstrukcja foreach?

A. pętli, niezależnie od typu zmiennej
B. pętli, wyłącznie dla elementów tablicy
C. wyboru, dla elementów tablicy
D. warunkową, niezależnie od typu zmiennej
foreach nie jest instrukcją WYBORU ani WARUNKOWĄ - to pętla. Nie działa też na „dowolnym typie zmiennej”, lecz konkretnie na tablicach i obiektach. foreach to pętla wyłącznie dla elementów tablicy.

Pytanie 33

Na zaprezentowanym schemacie bazy danych biblioteka, elementy takie jak: czytelnik, wypożyczenie oraz książka stanowią

Ilustracja do pytania
A. atrybuty
B. krotki
C. encje
D. pola
Na tym schemacie bazy danych warto najpierw odróżnić kilka podstawowych pojęć: encja, atrybut, krotka i pole. To jest taki fundament, bez którego łatwo się pogubić. Prostokąty podpisane „czytelnik”, „wypożyczenie” i „książka” reprezentują ogólne typy obiektów, które występują w systemie. W języku modelowania danych nazywamy je encjami. Encja to nie pojedynczy rekord, tylko pewien rodzaj bytu, np. każdy konkretny czytelnik będzie instancją encji CZYTELNIK.
Częsty błąd polega na myleniu encji z atrybutami. Atrybut to pojedyncza cecha encji – na przykład imię, nazwisko, tytuł, rok wydania. Na diagramie są one wypisane wewnątrz prostokąta, pod nazwą encji. Gdyby „czytelnik” był atrybutem, to musiałby opisywać jakąś inną encję, co tu nie ma sensu. Podobnie jest z pojęciem pola: w praktyce pola kojarzymy z kolumnami w tabeli lub polami formularza. Pole to techniczna reprezentacja atrybutu w konkretnej tabeli, a nie osobny obiekt biznesowy.
Zdarza się też, że uczniowie zaznaczają odpowiedź „krotki”, bo widzą powiązanie z relacyjną bazą danych. Krotka (rekord, wiersz tabeli) oznacza jednak pojedyńczy wpis w tabeli, np. jednego konkretnego Kowalskiego jako czytelnika albo jedną konkretną książkę. Na diagramie nie widzimy pojedynczych rekordów, tylko definicję struktur, z których te rekordy będą się składać. Innymi słowy: encja to wzór, a krotka to jego konkretne wystąpienie.
Moim zdaniem najbezpieczniejsza metoda zapamiętania jest taka: na etapie projektowania koncepcyjnego mówimy o encjach i atrybutach, na etapie fizycznej bazy – o tabelach, kolumnach (polach) i rekordach (krotkach). W tym pytaniu mówimy właśnie o poziomie modelu koncepcyjnego, dlatego poprawnym pojęciem są encje, a nie atrybuty, krotki czy pola.

Pytanie 34

Instrukcja użytkownika aplikacji nie powinna zawierać

A. wymagań sprzętowych.
B. opisu zastosowanych algorytmów.
C. sposobu działania poszczególnych komponentów.
D. opisu instalacji programu.
Poprawnie – instrukcja użytkownika aplikacji nie powinna zawierać opisu zastosowanych algorytmów. Dokument „dla użytkownika” ma jedno główne zadanie: w prosty sposób pokazać, jak korzystać z programu, a nie jak jest on zbudowany w środku. Algorytmy, struktury danych, złożoność obliczeniowa, szczegóły implementacyjne – to jest domena dokumentacji technicznej, przeznaczonej dla programistów, architektów systemów czy osób rozwijających oprogramowanie. Z punktu widzenia zwykłego użytkownika ważne jest raczej: na jakim sprzęcie aplikacja pójdzie, jak ją zainstalować, jak uruchomić konkretną funkcję i co zrobić, gdy coś nie działa. Moim zdaniem wrzucanie do instrukcji opisów algorytmów szkodzi na dwóch poziomach. Po pierwsze, zaciemnia obraz – użytkownik musi przebijać się przez techniczne treści, których i tak nie wykorzysta, zamiast skupić się na krokach „kliknij tu, wybierz to, zapisz”. Po drugie, z punktu widzenia bezpieczeństwa i ochrony własności intelektualnej firmy, zbyt szczegółowe ujawnianie algorytmów w publicznej instrukcji nie jest najlepszą praktyką. Standardem branżowym jest rozdzielenie dokumentacji na: user guide (instrukcja użytkownika), admin guide (dla administratorów), developer/technical documentation (dla twórców i integratorów). W user guide opisujemy np. wymagania sprzętowe (system operacyjny, ilość RAM, miejsce na dysku), sposób instalacji (krok po kroku, zrzuty ekranu), oraz działanie funkcji z punktu widzenia użytkownika („ten przycisk eksportuje dane do PDF”). Natomiast algorytmy sortowania, szyfrowania, kompresji czy przetwarzania danych trafiają do dokumentów technicznych, specyfikacji lub repozytorium kodu. W praktyce, jeśli użytkownik musi znać algorytm, żeby użyć programu, to znaczy, że interfejs jest po prostu źle zaprojektowany.

Pytanie 35

Który zapis to poprawny SKŁADNIOWO warunek PHP sprawdzający błąd połączenia z bazą?

A.
if (mysqli_connect_errno()}{
B.
if (mysqli_connect_errno()){}
C.
if (mysqli_connect_error())()
D.
if (mysqli_connect_error()}{
Pozostałe zapisy mają błędnie pozamykane nawiasy. if (...)() dokłada zbędne okrągłe nawiasy zamiast bloku {}. if (...}{ i if (...}{ mieszają i odwracają nawiasy okrągłe z klamrowymi. Poprawna struktura to if (mysqli_connect_errno()){}.

Pytanie 36

Którego atrybutu HTML5 użyć, aby w polu edycyjnym wyświetlić podpowiedź (tekst zastępczy)?

A.
placeholder
B.
required
C.
autofocus
D.
pattern
Pozostałe atrybuty pól robią co innego. pattern zadaje wzorzec (wyrażenie regularne) do walidacji wpisanej wartości. required wymusza wypełnienie pola przed wysłaniem. autofocus automatycznie ustawia kursor w polu po załadowaniu strony. Podpowiedź w polu pokazuje placeholder.

Pytanie 37

W języku CSS zapis selektora

p > i { color: red; }
wskazuje, że kolorem czerwonym będzie sformatowany
A. jedynie ten tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
B. wszystki tekst w znaczniku <p> lub wszelkie treści w znaczniku <i>
C. tylko ten tekst w znaczniku <p>, który ma przypisaną klasę o nazwie i
D. wszystkie teksty w znaczniku <p> oprócz tych w znaczniku <i>
Jeśli wybrałeś inne odpowiedzi, to pewnie wynika to z nieporozumienia co do tego, jak działają selektory w CSS i co się dzieje w hierarchii dokumentów HTML. Gdy wybierasz błędne opcje, często wynika to z niejasnego pojmowania relacji między różnymi elementami na stronie. Na przykład, myślenie, że każdy tekst w <p> lub <i> dostanie ten sam styl, zupełnie pomija to, że selektor '>' mówi, że styl dotyczy tylko bezpośrednich dzieci. Odrzucenie tej relacji rodzic-dziecko prowadzi do błędnego wniosku, że wszystkie elementy <p> i <i> są równorzędne. Poza tym, twierdzenie, że tekst w <p>, z wyjątkiem <i>, będzie czerwony, jest nieprawidłowe, bo selektor '>' mówi, że nie obejmuje innych elementów, a nie, że je włącza. Błędne jest również myślenie, że styl dotyczy tekstu w <p> z określoną klasą, ponieważ tu chodzi o strukturę, a nie o klasy. Warto wiedzieć, że precyzyjne selektory, jak ten w pytaniu, są bardzo ważne dla tworzenia sensownych arkuszy stylów, a ich złe zrozumienie może prowadzić do bałaganu w stylach i kłopotów w projektach webowych.

Pytanie 38

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

A. p { line-height: 30px; }
B. p { line-indent: 30px; }
C. p { text-indent: 30px; }
D. p { text-spacing: 30px; }
Analizując inne opcje, można zauważyć, że zapisy takie jak line-indent, line-height, czy text-spacing nie są poprawne w kontekście wcięcia pierwszej linii akapitu w CSS. Właściwość line-indent nie istnieje w specyfikacji CSS, co czyni tę odpowiedź zupełnie niewłaściwą. Użytkownicy mogą mylić terminologię, sądząc, że line-indent odnosi się do wcięcia, jednak nie jest to termin rozpoznawany przez standardy CSS. Bardziej odpowiednią właściwością do modyfikacji wysokości linii jest line-height, która jednak nie ma związku z wcięciem tekstu, lecz z odstępem pomiędzy poszczególnymi liniami tekstu w akapicie. Użycie line-height do uzyskania wcięcia prowadzi do nieporozumień i niepożądanych efektów wizualnych. Z kolei text-spacing, będący inną niepoprawną odpowiedzią, nie jest uznaną właściwością CSS i nie wpływa na wcięcia. Dobre praktyki w projektowaniu stron internetowych wymagają znajomości standardów CSS i ich zastosowania w praktyce. Ważne jest, aby przyzwyczaić się do stosowania właściwości, które są uznawane przez wiodące przeglądarki i standardy webowe, aby uniknąć takich błędów i uzyskać zamierzony efekt wizualny. Zapewnienie, że używamy odpowiednich właściwości, jest kluczowe dla poprawności i jakości kodu CSS, który ma bezpośredni wpływ na końcowy rezultat, czyli wygląd i funkcjonalność stron internetowych.

Pytanie 39

Do podzbioru DML (ang. Data Manipulation Language) języka SQL należą polecenia:

A. GRANT, REVOKE, DENY
B. BEGIN, COMMIT, ROLLBACK
C. INSERT, UPDATE, DELETE
D. CREATE, DROP, ALTER
Prawidłowo – INSERT, UPDATE i DELETE to klasyczne polecenia z podzbioru DML (Data Manipulation Language) w SQL. DML służy do manipulowania danymi już zapisanymi w tabelach, a nie do tworzenia struktury bazy. Można sobie to skojarzyć z pracą na rekordach: dodajemy nowe wiersze, zmieniamy istniejące, usuwamy niepotrzebne. INSERT wstawia nowe rekordy do tabeli, np. gdy zapisujesz nowego użytkownika w systemie logowania: INSERT INTO users(login, haslo) VALUES ('jan', 'tajne');. UPDATE modyfikuje dane, np. zmianę hasła albo adresu e‑mail: UPDATE users SET email='[email protected]' WHERE id=5;. DELETE usuwa rekordy, np. nieaktywne konta: DELETE FROM users WHERE active=0;. W praktyce webowej te trzy polecenia działają zwykle razem z transakcjami i warunkami WHERE, żeby nie „przestrzelić” i nie ruszyć zbyt wielu wierszy. Standard SQL (ANSI/ISO) właśnie te komendy zalicza typowo do DML, obok instrukcji SELECT, która też jest często traktowana jako część DML, ale w wielu materiałach omawia się ją osobno, jako zapytania wybierające dane. Dobra praktyka jest taka, żeby przy UPDATE i DELETE zawsze podawać sensowny warunek WHERE i często używać LIMIT/TRANSACTION, szczególnie w aplikacjach produkcyjnych. Moim zdaniem warto od początku myśleć o DML w kontekście logiki biznesowej aplikacji: formularz rejestracji to INSERT, edycja profilu to UPDATE, usunięcie konta to DELETE – i nagle wszystko układa się w bardzo logiczną całość.

Pytanie 40

Który zapis wyświetli obraz kotek.jpg z tekstem alternatywnym „obrazek kotka”?

A.
<img href="/kotek.jpg" title="obrazek kotka">
B.
<img href="/kotek.jpg" alt="obrazek kotka">
C.
<img src="/kotek.jpg" alt="obrazek kotka">
D.
<img src="/kotek.jpg" title="obrazek kotka">
Obraz wstawia się znacznikiem <img>, podając źródło w src i tekst alternatywny w alt: <img src="/kotek.jpg" alt="obrazek kotka">. Dlatego poprawny jest ten zapis.