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 08:04
  • Data zakończenia: 9 czerwca 2026 08:06

Egzamin niezdany

Wynik: 7/40 punktów (17,5%)

Wymagane minimum: 20 punktów (50%)

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

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. PHP oraz MySQL
B. Apache oraz PHP
C. IIS, PERL i MySQL
D. Apache, PHP i MySQL
Użytkownicy mogą mieć wątpliwości co do wyboru odpowiednich technologii dla uruchomienia systemu CMS Joomla!. Odpowiedzi sugerujące jedynie Apache i PHP ignorują istotny element, jakim jest baza danych. Brak MySQL w konfiguracji oznacza, że nie byłoby możliwości przechowywania oraz zarządzania danymi, co jest kluczowe w każdej aplikacji webowej. Z kolei odpowiedź zakładająca użycie IIS, PERL i MySQL wprowadza nieprawidłową konfigurację, gdyż IIS jest serwerem stworzonym przez Microsoft, który może być używany z innymi technologiami, ale nie jest standardowym wyborem dla Joomla!. PERL to język programowania, który nie jest powszechnie używany w ekosystemie Joomla! i nie jest wymagany do jej działania. Inną kwestią jest odpowiedź proponująca tylko PHP i MySQL, która również pomija serwer WWW - fundament działania aplikacji webowych. Prawidłowe uruchomienie Joomla! wymaga zintegrowania wszystkich trzech komponentów: serwera, języka skryptowego i bazy danych. Ignorowanie tych zależności prowadzi do błędnego rozumienia architektury aplikacji internetowych, co może w przyszłości skutkować problemami w implementacji oraz działaniu projektów opartych na Joomla!. Właściwe podejście wymaga zrozumienia, że każdy z tych elementów odgrywa kluczową rolę w zapewnieniu stabilności, bezpieczeństwa oraz wydajności aplikacji.

Pytanie 2

Wskaż najefektywniejszą metodę wyczyszczenia wszystkich danych z tabeli adresy, nie wpływając na jej strukturę

A. DELETE TABLE adresy;
B. TRUNCATE TABLE adresy;
C. DROP TABLE adresy;
D. DELETE * FROM adresy;
TRUNCATE TABLE adresy; jest najszybszym sposobem na usunięcie wszystkich rekordów z tabeli bez usuwania jej struktury. Operacja TRUNCATE działa na poziomie strony, co oznacza, że nie przetwarza pojedynczych wierszy, jak ma to miejsce w przypadku DELETE. Dzięki temu, TRUNCATE jest znacznie wydajniejszy, szczególnie w przypadku dużych zbiorów danych. W praktyce, użycie TRUNCATE TABLE jest zalecane, gdy chcemy szybko oczyścić tabelę z danych, a następnie wprowadzić nowe rekordy. Warto jednak pamiętać, że TRUNCATE nie wywołuje kaskadowych usunięć w tabelach powiązanych z kluczami obcymi, co może być istotne w projektowaniu bazy danych. Użycie TRUNCATE może również przywrócić licznik identyfikatorów (np. AUTO_INCREMENT w MySQL) do wartości początkowej, co jest ważnym aspektem, jeśli zależy nam na tym, by nowe dane zaczynały się od określonej wartości. Praktyka wykorzystania TRUNCATE powinna być jednak stosowana ostrożnie, szczególnie w kontekście transakcji, ponieważ operacja ta nie jest odwracalna w przypadku dużych zbiorów danych, co skontrastować należy z DELETE, które można wykorzystać w ramach transakcji i przywrócić dane, jeśli zajdzie taka potrzeba. Dlatego, TRUNCATE TABLE jest zalecaną metodą w odpowiednich scenariuszach, ale jej użycie wymaga pełnego zrozumienia kontekstu bazy danych oraz powiązań między tabelami.

Pytanie 3

Wskaź komentarz, który zajmuje wiele linii, w języku PHP?

A. /* */
B. #
C. / /
D. <!-- -->
Odpowiedzi, które nie są poprawne, wynikają z nieprawidłowego zastosowania składni komentarzy w języku PHP. Pierwsza z odpowiedzi używa znaku '#', który w rzeczywistości jest stosowany jako jedno-liniowy komentarz, co oznacza, że nie jest odpowiedni do tworzenia wieloliniowych komentarzy. Druga odpowiedź sugeruje użycie znaku '//', który również jest przeznaczony do komentarzy jedno-liniowych. Oba te formaty ograniczają komentarz do jednej linii, co nie pozwala na swobodne opisywanie bardziej skomplikowanych bloków kodu. Czwarta odpowiedź odnosi się do składni HTML, czyli użycia '<!-- -->', co jest niepoprawne w kontekście PHP, ponieważ HTML nie jest interpretowane przez silnik PHP i takie komentarze nie będą skutecznie blokować kodu PHP. Składnia HTML może prowadzić do nieporozumień i problemów z wyświetlaniem strony, ponieważ przeglądarki mogą zignorować lub źle zinterpretować te fragmenty. W związku z tym, kluczowe jest stosowanie właściwej składni w kontekście języka PHP, aby zapewnić poprawne funkcjonowanie kodu oraz jego zrozumiałość dla innych programistów.

Pytanie 4

Tabela naprawy ma kolumny klient i czyNaprawione. Jak usunąć rekordy, w których czyNaprawione jest prawdą?

A.
DELETE naprawy WHERE czyNaprawione = TRUE;
B.
DELETE FROM naprawy;
C.
DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
D.
DELETE FROM naprawy WHERE czyNaprawione = TRUE;
DELETE FROM naprawy; bez WHERE usunęłoby WSZYSTKIE wiersze. DELETE naprawy WHERE ... pomija słowo FROM. DELETE klient FROM ... błędnie wskazuje kolumnę (DELETE usuwa całe wiersze). Poprawne jest DELETE FROM naprawy WHERE czyNaprawione = TRUE;.

Pytanie 5

Ile razy należy wprowadzić instrukcję warunkową, aby zrealizować przedstawiony algorytm w danym języku programowania?

Ilustracja do pytania
A. Cztery razy.
B. Raz.
C. Dwa razy.
D. Trzy razy.
Zrozumienie liczby potrzebnych instrukcji warunkowych w algorytmie jest kluczowe dla poprawnej implementacji logiki programu. Często spotykanym błędem jest myślenie, że każda decyzja w algorytmie wymaga oddzielnej instrukcji warunkowej, co prowadzi do niepotrzebnej komplikacji kodu. W rzeczywistości, niektóre warunki mogą być połączone lub zapisane w bardziej zwięzły sposób, co pokazuje znaczenie analizy logiki algorytmu przed implementacją. Założenie, że jedna instrukcja warunkowa wystarczy dla całego algorytmu, często wynika z niepełnego zrozumienia jego struktury i złożoności. Algorytmy często wymagają kilku punktów decyzyjnych, które muszą być odpowiednio odwzorowane w kodzie. Natomiast przypuszczenie, że potrzebne są cztery instrukcje, sugeruje nadmierną komplikację i nadmiarowość, co jest sprzeczne z zasadami optymalizacji i minimalizacji kodu. Dobre praktyki programistyczne zalecają pisanie kodu, który jest zarówno wydajny, jak i czytelny, unikając nadmiarowych instrukcji, które mogą prowadzić do błędów i trudności w późniejszym utrzymaniu. Ostatecznie, właściwe zastosowanie instrukcji warunkowych wpływa na elastyczność i skalowalność aplikacji, co jest kluczowe w profesjonalnym środowisku programistycznym.

Pytanie 6

W CSS zapis w formie: p{background-image: url"rysunek.jpg")} spowoduje, że rysunek.png stanie się

A. tłem całej witryny
B. pokazany, jeśli w kodzie użyty będzie znacznik img
C. tłem każdego bloku tekstowego
D. wyświetlany obok każdego bloku tekstowego
Pierwsza niepoprawna odpowiedź twierdzi, że obrazek ma być tłem całej strony. W rzeczywistości, żeby ustawić tło dla całej strony, używa się body, a nie <p>. Tło ustawione dla paragrafów nie zmienia wyglądu całej strony. Druga niepoprawna odpowiedź sugeruje, że obrazek ma być obok każdego paragrafu. To mógłbyś osiągnąć innymi właściwościami, jak float czy display inline-block, ale background-image nie wyświetla go obok, to działa jako tło. Ostatnia niepoprawna odpowiedź mówi o użyciu znacznika img. Użycie img to inna sprawa – obrazek dodany w takim znaczniku będzie oddzielnym elementem, a nie tłem. W skrócie, background-image i img to różne techniki i używa się ich w różnych sytuacjach, więc te odpowiedzi nie mają sensu w kontekście pytanie.

Pytanie 7

W języku SQL, aby wybrać wszystkie rekordy z tabeli B, w tym część wspólną z tabelą A, należy zastosować typ związku

Ilustracja do pytania
A. A RIGHT JOIN B
B. A INNER JOIN B
C. A LEFT JOIN B
D. A FULL OUTER JOIN B
W tym pytaniu pułapka polega na tym, że łatwo pomylić pojęcie części wspólnej z całością jednego ze zbiorów. Diagram pokazuje całą tabelę B (włącznie z przecięciem z A), a nie tylko przecięcie. W SQL typ złączenia określa, z której tabeli bierzemy wszystkie rekordy, a z której tylko te pasujące. To, że widzimy też obszar wspólny, jest naturalnym efektem działania złączeń zewnętrznych, ale nie oznacza jeszcze, że chodzi o `INNER JOIN`.
Jeśli ktoś wybiera `A LEFT JOIN B`, to zwykle wynika z myślenia „chcę część wspólną i coś jeszcze”, ale myli kierunek. `LEFT JOIN` gwarantuje wszystkie rekordy z **lewej** tabeli (A), a z prawej (B) tylko dopasowane. Diagram z pytania pokazuje dokładnie odwrotną sytuację: komplet danych z B, a z A tylko tam, gdzie istnieje relacja. `A LEFT JOIN B` odpowiadałoby sytuacji, gdzie podświetlony jest cały zbiór A i przecięcie, a nie B.
Z kolei `A INNER JOIN B` zwróciłby wyłącznie część wspólną A∩B, czyli tylko te rekordy, które mają dopasowanie po obu stronach. Na diagramie byłby wtedy zaznaczony wyłącznie środek, a nie cały zielony obszar B. To typowy błąd: utożsamianie każdego JOIN z „częścią wspólną”. INNER JOIN jest dobry, gdy interesują nas tylko powiązane dane (np. zamówienia, które mają istniejącego klienta), ale w zadaniu wyraźnie mowa o „wszystkich rekordach z B”.
`A FULL OUTER JOIN B` idzie w drugą stronę – zwraca wszystko z A **i** wszystko z B, niezależnie od tego, czy jest dopasowanie, czy nie. To byłby diagram z zaznaczonymi obiema kółkami, czyli suma zbiorów A∪B. W standardzie SQL taki typ złączenia jest opisany jako pełne złączenie zewnętrzne i stosuje się go rzadziej, np. do porównywania różnic między dwiema tabelami. Tutaj jest to za szeroki zakres danych w stosunku do pytania.
Poprawne podejście wymaga więc skojarzenia, że skoro chcemy wszystkie rekordy z tabeli B, to w zapisie `A ... JOIN B` tabela B musi być po tej stronie, która jest „obowiązkowa”. Właśnie to zapewnia `RIGHT JOIN`: pełny zestaw wierszy z prawej tabeli, plus dopasowania z lewej tam, gdzie istnieją. Świadome operowanie tymi pojęciami bardzo ułatwia projektowanie zapytań raportowych i unikanie nieoczekiwanych braków lub duplikacji danych.

Pytanie 8

Co oznacza pojęcie integralności referencyjnej w bazie danych?

A. Każda encja ma klucz podstawowy o wartości unikatowej i różnej od NULL
B. Baza jest odporna na awarie sprzętu i oprogramowania
C. Każdej wartości klucza obcego odpowiada istniejąca wartość klucza podstawowego
D. Wartość atrybutu należy do jego dziedziny (dozwolonego zbioru)
Pozostałe odpowiedzi opisują inne rodzaje integralności lub cechy bazy. Stwierdzenie, że wartość atrybutu należy do swojej dziedziny, to integralność dziedzinowa - dotyczy poprawnego typu i zakresu wartości w kolumnie. Odporność na awarie sprzętu i oprogramowania to zagadnienie niezawodności i bezpieczeństwa, nie spójności powiązań. Wymóg, by każda encja miała unikatowy, niepusty klucz podstawowy, to integralność encji. Integralność referencyjna dotyczy zgodności klucza obcego z istniejącym kluczem podstawowym, dlatego to ta odpowiedź jest poprawna.

Pytanie 9

W skrypcie napisanym w języku PHP należy przeprowadzić operacje, gdy spełniony jest warunek, że adresy są parzystymi numerami na ulicach: Bratkowej oraz Nasturcjowej. Jakie wyrażenie logiczne to określa?

A. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer / 2 == 0
B. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer % 2 == 0
C. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer / 2 == 0
D. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer % 2 == 0
Pojęcia zastosowane w odpowiedziach, które nie są poprawne, zawierają błędne założenia dotyczące użycia operatorów logicznych i arytmetycznych. W przypadku pierwszej odpowiedzi, użycie operatora && (i) do sprawdzania, czy zmienna $ulica jest jednocześnie równa "Bratkowa" i "Nasturcjowa" jest technicznie niemożliwe, ponieważ zmienna nie może przyjąć dwóch różnych wartości jednocześnie. Druga odpowiedź, która używa operatora / (dzielenie) w kontekście sprawdzania parzystości, wprowadza w błąd; reszta z dzielenia przez 2 jest właściwym sposobem sprawdzania parzystości, a nie dzielenie, które może prowadzić do nieprawidłowego wyniku - liczba będzie parzysta tylko wtedy, gdy reszta z dzielenia wynosi zero. W czwartej odpowiedzi, użycie operatora / również nie jest odpowiednie. Kluczowym błędem, który można zauważyć, jest nieprawidłowe myślenie o logice warunkowej i operatorach matematycznych. W praktyce, stosowanie reszty z dzielenia jako metody określenia parzystości jest powszechną praktyką w wielu językach programowania, w tym PHP. Dlatego konieczne jest zrozumienie, jak poprawnie formułować warunki logiczne oraz jakich operatorów używać, aby osiągnąć zamierzony efekt.

Pytanie 10

Którego atrybutu należy użyć w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby zdefiniować źródło cytatu?

<blockquote ...="https://pl.wikipedia.org">
Pokojowa Nagroda Nobla jest przyznawana kandydatom, którzy wykonali największą lub najlepszą
pracę na rzecz braterstwa między narodami
</blockquote>
A. alt
B. href
C. src
D. cite
Niestety, twoja odpowiedź nie jest poprawna. Atrybut 'cite' w znaczniku <blockquote> jest używany do definiowania źródła cytatu, a nie 'alt', 'src' ani 'href'. Atrybut 'alt' jest używany w obrazach jako tekst alternatywny, który jest wyświetlany, gdy obraz nie może być ładowany lub jest odczytywany przez czytniki ekranowe. Z kolei 'src' jest atrybutem, który określa ścieżkę do obrazu lub innego zasobu multimedialnego. 'href' jest używany w znacznikach 'a' i 'link' do określenia URL strony lub innego zasobu, do którego prowadzi link. Pomyłka ta może wynikać z braku zrozumienia różnych zastosowań atrybutów w HTML. Pamiętaj, że każdy atrybut ma swoje specyficzne zastosowanie i nie są one zamienne.

Pytanie 11

Która właściwość grafiki wektorowej jest prawdziwa?

A. raz utworzonej nie da się edytować
B. jest niezależna od rozdzielczości
C. nie można jej przekształcić w grafikę rastrową
D. jest nieskalowalna
Pozostałe stwierdzenia są nieprawdziwe. Grafiki wektorowej nie tylko da się edytować - łatwo przesuwać i modyfikować poszczególne krzywe oraz obiekty, nawet po zapisaniu. Nie jest też nieskalowalna; to właśnie skalowanie bez utraty jakości jest jej największą zaletą. Można ją również przekształcić w grafikę rastrową (rasteryzacja), gdy potrzebny jest plik pikselowy. Cechą prawdziwą jest niezależność od rozdzielczości, dlatego ta odpowiedź jest poprawna.

Pytanie 12

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. opcji udostępnienia bazy danych
B. poprawności składni zapytań
C. spójności bazy danych
D. uprawnień dostępu do serwera bazy danych
Prawa dostępu do serwera bazy danych, możliwość udostępnienia bazy danych oraz poprawność składni zapytań to aspekty, które są istotne w kontekście zarządzania bazami danych, jednak nie mają one bezpośredniego wpływu na możliwość wykonania poprawnej kopii bezpieczeństwa. Sprawdzanie praw dostępu jest kluczowe z punktu widzenia bezpieczeństwa, ale nawet przy odpowiednich uprawnieniach, kopia zapasowa będzie bezwartościowa, jeśli dane są niezgodne lub uszkodzone. Możliwość udostępnienia bazy danych odnosi się do tego, czy inni użytkownicy mogą z niej korzystać, co również nie ma wpływu na integralność danych, które kopiujemy. Z kolei poprawność składni zapytań dotyczy aspektu komunikacji z bazą danych, a nie stanu samych danych. Właściwie skonstruowane zapytania mogą z powodzeniem zwrócić wynik, ale nie gwarantują, że dane, które chcemy zarchiwizować, są zgodne i spójne. Często w praktyce pomija się te elementy, koncentrując się na bezpośrednich aspektach zarządzania danymi, co może prowadzić do poważnych problemów po przywróceniu bazy z kopii zapasowej. Najważniejsze jest, aby przed wykonaniem kopiowania danych, zapewnić ich spójność, co jest fundamentem operacji backupu.

Pytanie 13

Który zapis definiuje w JavaScripcie komentarz JEDNOLINIOWY?

A.
?
B.
#
C.
/*
D.
//
W JavaScripcie komentarz jednoliniowy zaczyna się od // - wszystko od tych znaków do końca wiersza jest pomijane. Dlatego komentarz jednoliniowy to //.

Pytanie 14

Tabela wycieczki ma pola nazwa, cena, miejsca. Która kwerenda zwróci nazwy wycieczek tańszych niż 2000 i z CO NAJMNIEJ 4 wolnymi miejscami?

A.
SELECT nazwa FROM wycieczki WHERE cena < 2000 AND miejsca > 3;
B.
SELECT * FROM wycieczki WHERE cena < 2000 OR miejsca > 3;
C.
SELECT nazwa FROM wycieczki WHERE cena < 2000 OR miejsca > 4;
D.
SELECT * FROM wycieczki WHERE cena < 2000 AND miejsca > 4;
Pozostałe zapytania zawodzą. OR wystarczyłoby spełnić jeden warunek, więc zwróciłby też wycieczki drogie lub bez miejsc. miejsca > 4 pomija wycieczki z DOKŁADNIE 4 miejscami, choć te spełniają „co najmniej 4”. SELECT * zwraca wszystkie kolumny zamiast samych nazw. Poprawne jest cena < 2000 AND miejsca > 3.

Pytanie 15

W SQL, aby w tabeli Towar dodać kolumnę rozmiar typu znakowego z maksymalną długością 20 znaków, jakie polecenie należy wykonać?

A. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
B. ALTER TABLE Towar ADD rozmiar varchar(20)
C. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
D. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
Podane odpowiedzi nie są poprawne z kilku powodów. Odpowiedź sugerująca użycie 'DROP COLUMN' jest myląca, ponieważ to polecenie służy do usuwania istniejącej kolumny z tabeli, a nie dodawania nowej. Usunięcie kolumny bez zrozumienia konsekwencji może prowadzić do utraty danych, co podkreśla znaczenie przemyślenia operacji modyfikujących strukturę bazy danych. Inna odpowiedź, która proponuje 'CREATE COLUMN', jest nieprawidłowa, ponieważ nie jest uznawana za standardową składnię w SQL; nie istnieje polecenie 'CREATE COLUMN'. Zamiast tego, kolumny są dodawane za pomocą 'ADD' w kontekście ALTER TABLE. W przypadku 'ALTER COLUMN' - to polecenie odnosi się do zmiany właściwości już istniejącej kolumny, a nie do dodawania nowej. Dlatego mylenie tych pojęć prowadzi do nieprawidłowych wniosków. Zrozumienie tych różnic jest kluczowe dla poprawnego posługiwania się SQL. Niezrozumienie zasad modyfikacji struktury tabeli może skutkować nieefektywnym zarządzaniem bazą danych oraz błędami w aplikacjach korzystających z danych.

Pytanie 16

Z przedstawionych tabel Klienci i Uslugi należy wybrać jedynie imiona klientów oraz odpowiadające im nazwy usług, które są droższe niż 10 zł. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10;
B. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10;
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id;
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id;
Dobra robota, wybrałeś sprawdzoną odpowiedź! To zapytanie SQL, które zaznaczyłeś, łączy tabele 'Klienci' i 'Usługi' przy pomocy klucza obcego 'uslugi_id'. To, co robią takie JOINy, to po prostu łączenie tabel na podstawie wspólnych elementów. W tym przypadku 'uslugi_id' to ten wspólny element, który pozwala na powiązanie obu tabel. A ten warunek 'WHERE cena > 10'? To świetny sposób na to, żeby z ograniczać wyniki do tych, które są droższe niż 10 zł. Fajnie jest mieć pod ręką tylko te informacje, które są dla nas najistotniejsze, szczególnie w większych bazach danych. Pamiętaj, że umiejętność pisania zapytań SQL, jak to, jest naprawdę przydatna, gdy pracujemy z relacyjnymi bazami danych.

Pytanie 17

W języku JavaScript, w programowaniu obiektowym, zapis this.zawod w przedstawionym kodzie oznacza

function Uczen(){
  this.imie = "";
  this.nazwisko = "";
  this.technik = 'informatyk';
  this.zawod = function(){
    return this.technik;
  };
}
A. konstruktor
B. metodę
C. właściwość
D. klasę
Kod JavaScript używa funkcji do tworzenia obiektów, co może być mylące. Kiedy wskazujesz this.zawod, to pokazujesz, że to jest metoda, ale wybór odpowiedzi klasa jest nieprawidłowy. JavaScript nie działa z klasami jak w Javie czy C#. Klasy pojawiły się dopiero w ES6 jako taki dodatek do funkcji konstrukcyjnych. Odpowiedź metoda to w sumie strzał w dziesiątkę, bo w obiektach funkcja przypisana do właściwości to właśnie metoda, która działa na danych obiektu. Wybór konstruktor też jest błędny, bo konstruktor to specjalna funkcja do tworzenia nowych obiektów, i w naszym przykładzie to ta funkcja Uczen. Z kolei odpowiedź właściwość jest myląca, bo choć this.zawod to właściwość, która trzyma funkcję, to jest też metodą. Warto zrozumieć różnice między właściwościami a metodami, bo to jest kluczowe w programowaniu obiektowym w JavaScript.

Pytanie 18

Który element relacyjnej bazy danych (kod w języku SQL) można WYWOŁAĆ wewnątrz zapytania, tak że zwróci wartość lub dane widoczne jak tabela?

A. reguła
B. wyzwalacz
C. funkcja zdefiniowana przez użytkownika
D. procedura składowana
Pozostałe elementy działają inaczej. Wyzwalacz (trigger) uruchamia się automatycznie przy zmianie danych, a nie na żądanie w zapytaniu. Procedury składowanej nie wywołuje się wewnątrz SELECT jak źródła danych (uruchamia się ją osobno). Reguła to ograniczenie. Wartość lub dane w zapytaniu zwraca funkcja zdefiniowana przez użytkownika.

Pytanie 19

Podczas tworzenia witryny internetowej zastosowano kod definiujący jej wygląd. Jaką szerokość przeznaczono na zawartość strony?

Ilustracja do pytania
A. 560 px
B. 640 px
C. 600 px
D. 2 px
Przy projektowaniu stron internetowych jednym z najczęstszych błędów jest niewłaściwe zrozumienie sposobu w jaki szerokość elementów wpływa na układ strony. Na przykład wybór szerokości 2px jako wartości dla treści jest niezgodny z typowymi standardami projektowymi gdyż taka szerokość jest zbyt mała aby pomieścić jakąkolwiek treść. Może to prowadzić do błędów w wyświetlaniu lub wadliwego renderowania strony. Z kolei wartości takie jak 600px czy 640px mogą wydawać się poprawne jednak w kontekście podanego kodu CSS nie są zgodne z zdefiniowaną szerokością elementu body która wynosi 560px. Należy pamiętać że dobór odpowiedniej szerokości powinien uwzględniać nie tylko estetykę ale również użyteczność i responsywność strony co oznacza że projektant powinien również brać pod uwagę różnorodność urządzeń na których strona będzie wyświetlana. Niewłaściwe zrozumienie tej koncepcji może prowadzić do projektowania stron które nie są optymalne pod względem użytkowania lub użytkownik napotyka trudności w nawigacji. Właściwe podejście powinno obejmować testowanie i iteracyjne dostosowywanie wartości w celu optymalnego dopasowania do zamierzonych celów i grupy docelowej użytkowników. Zrozumienie tych zasad pozwala unikać typowych błędów i tworzyć strony które są zarówno estetyczne jak i funkcjonalne.

Pytanie 20

Zgodnie z zasadami ACID dotyczącymi przeprowadzania transakcji wymóg izolacji (ang. isolation) wskazuje, że

A. w sytuacji konfliktu z inną transakcją obie zmieniają te same dane równocześnie
B. po zrealizowaniu transakcji system bazy danych będzie zgodny
C. gdy dwie transakcje działają równocześnie, to zazwyczaj nie dostrzegają zmian wprowadzanych przez siebie
D. pod określonymi warunkami dane modyfikowane przez transakcję mogą być cofnięte
Izolacja w kontekście transakcji baz danych odnosi się do sposobu, w jaki transakcje współdziałają i oddziałują na siebie, a jej zrozumienie jest niezbędne do uniknięcia wielu pułapek związanych z równoległym przetwarzaniem danych. Pierwsza z niepoprawnych odpowiedzi sugeruje, że pod pewnymi warunkami dane zmieniane przez transakcję mogą zostać wycofane. Chociaż wycofywanie transakcji (ang. rollback) jest ważną funkcją zapewniającą integralność danych, nie jest to bezpośrednio związane z izolacją. Izolacja skupia się na interakcji pomiędzy równoległymi transakcjami, a nie na tym, co się dzieje w przypadku ich wycofania. Kolejny błąd wynika z odpowiedzi, która twierdzi, że w przypadku konfliktu z inną transakcją obie modyfikują te same dane w tym samym czasie. Takie podejście jest sprzeczne z zasadą izolacji, ponieważ transakcje powinny być w stanie współistnieć bez wzajemnego wpływania na siebie. Ostatnia niepoprawna odpowiedź, mówiąca o spójności systemu po wykonaniu transakcji, odnosi się do właściwości konsystencji ACID, która jednak nie jest tożsama z izolacją. W praktyce, niezrozumienie izolacji i jej skutków może prowadzić do wystąpienia problemów takich jak zjawisko phantom reads, lost updates czy dirty reads, co w konsekwencji obniża jakość danych przetwarzanych przez aplikacje oraz może prowadzić do błędów w logice biznesowej. Kluczowe jest zrozumienie, że izolacja jest fundamentem dla poprawnego działania aplikacji bazodanowych w środowiskach, w których zachodzi równoległe przetwarzanie danych.

Pytanie 21

Poprawny zapis znacznika , za pomocą którego można umieścić na stronie internetowej obraz rys.jpg przeskalowany do szerokości 120 px i wysokości 80 px z tekstem alternatywnym "krajobraz" to

A. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz">
B. <img href="rys.jpg" height="120px" width="80px" info="krajobraz">
C. <img src="rys.jpg" height="120px" width="80px" info="krajobraz">
D. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz">
Patrząc na Twoje błędne odpowiedzi, widać, że coś poszło nie tak z użyciem atrybutów HTML dla <img>. Na przykład, w pierwszej odpowiedzi masz 'href', co jest błędne, bo to atrybut dla <a>, a nie dla obrazków. W trzeciej odpowiedzi 'info' to w ogóle nie jest atrybut dla <img>, więc przeglądarki nie wiedzą, co z tym zrobić. W czwartej odpowiedzi widzę 'image', co też nie ma sensu według standardów HTML. <img> ma swoje standardowe atrybuty jak 'src', 'alt', 'width' i 'height', a reszta nie zadziała właściwie. Jak nie rozumiesz tych podstaw, to może prowadzić do kłopotów z kodowaniem i wyświetlaniem obrazków na stronie. No i pamiętaj, że brak 'alt' w tych odpowiedziach to duży problem, bo użytkownicy z różnymi ograniczeniami nie będą mogli zrozumieć, co jest na obrazkach. Wiedza o tym, co robi każdy atrybut w HTML, jest kluczowa, jak chcesz robić semantyczne i dostępne strony.

Pytanie 22

Skrypt na stronę WWW stworzony w języku PHP

A. może działać bez wsparcia serwera WWW
B. jest realizowany po stronie klienta
C. jest wykonywany po stronie serwera
D. jest przetwarzany w taki sam sposób jak JavaScript
Wielu użytkowników błędnie sądzi, że kod PHP jest przetwarzany w taki sam sposób, jak JavaScript. To nieprawda, ponieważ JavaScript jest językiem skryptowym, który działa po stronie klienta i jest wykonywany w przeglądarkach internetowych. W przeciwieństwie do tego, PHP jest językiem skryptowym działającym po stronie serwera. W rezultacie, kod PHP nie ma bezpośredniego dostępu do zasobów użytkownika, takich jak lokalny system plików czy urządzenia, co stanowi istotną różnicę w porównaniu do JavaScript. Także stwierdzenie, że PHP może być uruchomiony bez obsługi serwera WWW, jest mylące. PHP wymaga serwera, na którym będzie zainstalowany interpreter tego języka, co oznacza, że każda aplikacja PHP musi być hostowana na serwerze WWW, aby mogła być dostępna w Internecie. Warto również zwrócić uwagę na to, że wykonanie skryptu PHP nie jest widoczne dla użytkownika do momentu, gdy serwer nie przetworzy go i nie wyśle gotowej strony HTML do przeglądarki. Takie podejście wykonania po stronie serwera pozwala na lepszą ochronę danych i zarządzanie zasobami, co jest kluczowe w przypadku aplikacji internetowych, które muszą obsługiwać wiele równoległych żądań użytkowników.

Pytanie 23

Zapis selektora wskazuje, że kolor tła będzie brązowy dla

input[type=number] { background-color: Brown; }
A. formularzy, które są typu numerycznego
B. wszystkich formularzy
C. formularzy, gdy użytkownik wprowadzi w nie jakąkolwiek cyfrę
D. wszystkich tekstów na stronie internetowej
Selekcja `input[type=number]` jest specyficzna i odnosi się wyłącznie do pól edycyjnych, które przyjmują liczby. Wybór odpowiedzi, że dotyczy to wszystkich pól edycyjnych, jest mylący, ponieważ sugeruje, że stylizacja obejmie również inne typy elementów formularza, takie jak pola tekstowe (`input[type=text]`) czy pola do wprowadzania dat (`input[type=date]`). To zrozumienie ilustruje klasyczny błąd związany z nadmiernym uogólnieniem, gdzie użytkownik stosuje logiczne myślenie do zakresu, który nie jest zgodny z zastosowanym selektorem. Odpowiedź mówiąca o wpływie na wszystkie teksty na stronie również zbacza z sedna, ponieważ nie odnosi się do typów input, lecz do całej zawartości HTML, co jest zupełnie innym zagadnieniem. Użytkownicy mogą również błędnie sądzić, że stylizacja zmienia się w zależności od zawartości pola, co jest nieprawdziwe. Styl CSS stosuje się do konkretnego elementu niezależnie od tego, co użytkownik wprowadza w danym momencie. Dlatego kluczowe jest zrozumienie specyfiki selektorów CSS, aby ich efekty były przewidywalne i zgodne z zamierzonymi celami projektowymi. Dobrą praktyką jest więc poznawanie i rozumienie zastosowania różnych typów selektorów i ich wpływu na elementy formularzy, co może znacząco wpłynąć na użyteczność i estetykę stron internetowych.

Pytanie 24

Które znaczniki HTML wyświetlą tekst „Dobre strony mojej strony” w JEDNYM wierszu, jeśli nie zastosowano żadnych reguł CSS?

A.
<h3>Dobre strony </h3><h3 style="letter-spacing:3px">mojej strony</h3>
B.
<span>Dobre strony </span><span style="letter-spacing:3px">mojej strony</span>
C.
<div>Dobre strony </div><div style="letter-spacing:3px">mojej strony</div>
D.
<p>Dobre strony </p><p style="letter-spacing:3px">mojej strony</p>
Pozostałe znaczniki są BLOKOWE, więc każdy zaczyna się od nowej linii i rozbiłby tekst na osobne wiersze. Dotyczy to <p> (akapit), <h3> (nagłówek) oraz <div> (kontener). W jednym wierszu tekst utrzyma liniowy <span>.

Pytanie 25

Aby osiągnąć efekt przedstawiony na ilustracji, w kodzie HTML należy zastosować znacznik skrótu <abbr> z atrybutem

Ilustracja do pytania
A. title
B. alt
C. dfn
D. name
Znacznik <abbr> w HTML pełni rolę semantyczną, pomagając w oznaczaniu skrótów i akronimów. Atrybut alt jest stosowany w znacznikach <img> do opisywania obrazów, co jest istotne dla dostępności i SEO, ale nie ma związku ze znacznikami tekstowymi jak <abbr>. Alt informuje o treści obrazu, co jest kluczowe dla użytkowników niewidzących, lecz nie pełni funkcji rozwijania skrótów tekstowych. Atrybut dfn służy do definiowania terminów w tekście, zazwyczaj używany w połączeniu ze znacznikiem <dfn>, a nie <abbr>. Chociaż dfn dostarcza definicji, nie jest używany do rozwijania skrótów. Atrybut name nie jest związany z rozwijaniem tekstu ani z <abbr>. Jest on stosowany głównie w formularzach HTML do identyfikacji elementów, takich jak <input>, umożliwiając ich rozróżnienie. Mylenie tych atrybutów wynika często z braku zrozumienia ich specyficznych zastosowań w kontekście HTML i dostępności. Właściwe używanie atrybutów to klucz do tworzenia semantycznie poprawnych i dostępnych stron internetowych.

Pytanie 26

Które z tabel będą poddane weryfikacji zgodnie z przedstawionym poleceniem?

CHECK TABLE pracownicy CHANGED;
A. Tabele, które zmieniły się w obecnej sesji
B. Tabele, które uległy zmianie od ostatniej kontroli lub nie zostały poprawnie zamknięte
C. Wyłącznie tabele odnoszące się do innych
D. Tylko te tabele, które nie mogły być poprawnie zakończone
Polecenie CHECK TABLE pracownicy CHANGED jest używane w systemach zarządzania bazami danych, aby sprawdzić stan tabeli 'pracownicy' w kontekście jej integralności i ewentualnych zmian, które miały miejsce od ostatniej kontroli. Poprawna odpowiedź odnosi się do przypadków, kiedy tabela mogła być zmieniona lub nie została prawidłowo zamknięta podczas ostatnich operacji, co może prowadzić do uszkodzenia danych lub naruszeń integralności. W praktyce, administratorzy baz danych często wykorzystują to polecenie jako część rutynowych procedur konserwacyjnych, aby zapewnić, że wszystkie tabele są w dobrym stanie. W przypadku dużych systemów z wieloma użytkownikami lub złożonymi transakcjami, regularne sprawdzanie tabel może zapobiec poważnym problemom w przyszłości. Dobre praktyki w zakresie zarządzania bazami danych obejmują również monitorowanie zmian oraz tworzenie kopii zapasowych przed dużymi operacjami, co wspiera bezpieczeństwo i integralność danych.

Pytanie 27

Jaką barwę przedstawia kolor zapisany w modelu RGB(0, 255, 0)?

A. żółtą
B. niebieską
C. zieloną
D. czerwoną
W modelu RGB kolor opisują składowe czerwona (R), zielona (G) i niebieska (B), każda od 0 do 255. Zapis RGB(0, 255, 0) to maksymalna składowa zielona i zerowe pozostałe, czyli czysty zielony. Dlatego RGB(0, 255, 0) oznacza barwę zieloną.

Pytanie 28

Zaproponowany blok ilustruje operację

Ilustracja do pytania
A. podjęcia decyzji
B. załadowania lub przedstawienia danych
C. realizacji zadania w pętli
D. wykorzystania wcześniej zdefiniowanej procedury lub funkcji
Podjęcie decyzji w programowaniu jest kluczowym elementem umożliwiającym dynamiczne i warunkowe działania w aplikacjach. Symbolicznie, blok decyzyjny w diagramie przepływu, takim jak przedstawiony na obrazku, oznacza punkt, w którym program sprawdza określony warunek i w zależności od jego wyniku podejmuje różne ścieżki działania. Jest to często implementowane przy użyciu struktur decyzyjnych takich jak instrukcje if-else w wielu językach programowania. Na przykład w języku Python decyzję można wyrazić jako if temperatura > 30: print('Gorąco') else: print('Chłodno'). Decyzje te pozwalają programowi reagować na zmieniające się warunki i dane wejściowe, co jest niezbędne w tworzeniu interaktywnych aplikacji czy systemów sterowania. Zgodnie z dobrymi praktykami w inżynierii oprogramowania, właściwe stosowanie bloków decyzyjnych sprzyja czytelności kodu i efektywności jego działania. Dodatkowo, w większych projektach często stosuje się wzorce projektowe takie jak stan lub strategia, które opierają się na mechanizmach decyzyjnych, pomagając zarządzać złożonością kodu i poprawiać jego skalowalność.

Pytanie 29

Jakie zadanie wykonuje funkcja napisana w JavaScript?

function fun1(a,b)
{
    if ( a % 2 != 0 ) a++;
    for(n=a; n<=b; n+=2)
        document.write(n);
}
A. zwrócenie parzystych wartości liczb od a do b
B. wypisanie wszystkich liczb w zakresie od a do b
C. sprawdzenie, czy liczba a jest liczbą nieparzystą; jeśli tak, to jej wypisanie
D. wypisanie liczb parzystych w przedziale od a do b
Analiza niepoprawnych odpowiedzi wymaga zrozumienia, dlaczego poszczególne opcje nie pasują do działania funkcji fun1. W pierwszym przypadku, opcja dotycząca sprawdzania, czy liczba a jest nieparzysta i jej wypisywania, nie jest zgodna z logiką funkcji. Chociaż funkcja sprawdza, czy a jest nieparzysta, to nie wypisuje jej, lecz zmienia ją na parzystą, co wskazuje, że jej celem nie jest wypisywanie liczby a, ale przygotowanie jej do dalszej iteracji. Wypisanie wszystkich liczb z przedziału od a do b również nie jest prawidłowe, ponieważ funkcja nie iteruje po wszystkich liczbach, lecz wyłącznie po liczbach parzystych. Warto zauważyć, że funkcja pomija wszystkie liczby nieparzyste, co wyklucza tę opcję. Kolejna możliwa odpowiedź sugeruje zwracanie wartości parzystych liczb od a do b, jednak funkcja nie wykorzystuje żadnej procedury zwracania wartości, a jej konstrukcja wskazuje na bezpośrednie wypisywanie wyników, co wyklucza tę możliwość. Typowy błąd myślowy to niepoprawne rozumienie działania pętli for oraz operacji wypisywania danych w kontekście przeglądarki internetowej, co jest istotne z punktu widzenia dynamicznych aplikacji webowych. Zrozumienie, jak działa operator modulo i jego rola w wyznaczaniu parzystości liczb, jest kluczowe dla poprawnego interpretowania takich fragmentów kodu. Wskazane jest również, aby programiści byli świadomi różnicy między wypisywaniem a zwracaniem wyników, co często prowadzi do nieporozumień w kontekście funkcji i metod w JavaScript i innych językach programowania.

Pytanie 30

W tabeli psy znajdują się kolumny: imie, rasa, telefon_wlasciciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby uzyskać numery telefonów właścicieli psów, które były szczepione przed rokiem 2015?

A. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia < 2015
B. SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015
C. SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015
D. SELECT psy FROM rok_szczepienia < 2015
Wybór błędnych odpowiedzi wynika z nieporozumienia dotyczącego zastosowania różnych operatorów porównania i struktury zapytań SQL. W pierwszej analizowanej odpowiedzi 'SELECT imie, rasa FROM psy WHERE rok_szczepienia > 2015', zamiast wydobywać telefony właścicieli, zapytanie skupia się na imionach i rasach psów, co nie odpowiada na zadane pytanie. Użycie operatora '>' w kontekście roku szczepienia jest sprzeczne z wymaganiem, które dotyczy psów zaszczepionych przed 2015 rokiem, co jest podstawowym błędem logicznym. Inna odpowiedź, 'SELECT psy FROM rok_szczepienia < 2015', jest niepoprawna z powodu błędnej składni SQL; nie można wybierać całej tabeli w ten sposób, co pokazuje brak znajomości podstaw struktury zapytań. Ostatnia niepoprawna odpowiedź, 'SELECT telefon_wlasciciela FROM psy WHERE rok_szczepienia > 2015', również wskazuje na błąd w interpretacji kryteriów czasowych, ponieważ operator '>' nie uwzględnia psów zaszczepionych przed rokiem 2015. Ta sytuacja pokazuje, jak ważne jest dokładne czytanie wymagań oraz znajomość podstawowych zasad składni SQL, aby unikać błędów i skutecznie korzystać z baz danych.

Pytanie 31

Pierwszym etapem konwersji sygnału analogowego na cyfrowy jest:

A. kodowanie
B. kwantyzacja
C. filtrowanie
D. próbkowanie
Pozostałe etapy następują PÓŹNIEJ lub są pomocnicze. Kwantyzacja przypisuje próbkom wartości z dyskretnej skali - ale dopiero PO ich pobraniu. Kodowanie zamienia te wartości na bity, czyli krok ostatni. Filtrowanie to obróbka sygnału, nie etap samej zamiany na cyfrę. Pierwszym etapem jest próbkowanie.

Pytanie 32

Które kolory tła zostały przypisane odpowiednio do akapitów o identyfikatorach 1, 2, 3, 4?

<p id="1" style="background-color:rgb(128,128,128);"> Akapit 1</p>
<p id="2" style="background-color:rgb(255,255,0);"> Akapit 2</p>
<p id="3" style="background-color:rgb(0,128,0);"> Akapit 3</p>
<p id="4" style="background-color:rgb(0,0,255);"> Akapit 4</p>
A. Szary, żółty, zielony, niebieski.
B. Żółty, czerwony, zielony, szary.
C. Szary, niebieski, czerwony, żółty.
D. Żółty, zielony, czerwony, szary.
W tym zadaniu kluczowe jest poprawne odczytanie notacji RGB używanej w CSS, a nie zgadywanie koloru „na oko”. Model RGB opisuje kolor jako kombinację trzech składowych: czerwonej (R), zielonej (G) i niebieskiej (B), każda w zakresie od 0 do 255. Typowym błędem jest patrzenie tylko na jedną liczbę albo kojarzenie samej obecności składowej czerwonej z kolorem czerwonym, bez uwzględniania pozostałych kanałów. Na przykład zapis rgb(128,128,128) ma wszystkie trzy składowe jednakowe, więc nie może wyjść czysta czerwień, zieleń czy niebieski – zawsze otrzymamy jakiś odcień szarości. Jeżeli ktoś odczyta ten kolor jako żółty lub czerwony, to zwykle wynika to z braku nawyku analizowania wszystkich trzech wartości naraz. Podobnie rgb(255,255,0) często bywa mylone z czerwonym, bo widać tam 255 przy pierwszej składowej, ale kluczowe jest to, że druga też ma 255, a trzecia ma 0. Połączenie maksymalnej czerwieni i maksymalnej zieleni daje właśnie żółty, nie czerwony. Warto zapamiętać ten przykład, bo często pojawia się w zadaniach i w realnym CSS. Z kolei rgb(0,128,0) to wyłącznie składowa zielona o średniej intensywności, więc nie może to być ani żółty (brak czerwonego), ani szary (brak równych wartości we wszystkich kanałach). To po prostu ciemniejsza zieleń. Ostatni zapis rgb(0,0,255) jest chyba najprostszy: tylko kanał niebieski jest maksymalny, więc wynik to czysty niebieski. Pomieszanie tych kolorów w odpowiedziach zwykle wynika z intuicyjnego kojarzenia liczb bez zrozumienia, jak działa mieszanie barw w RGB. W pracy front-endowca dobrze jest wyrobić sobie nawyk czytania rgb() systematycznie: najpierw R, potem G, potem B, i analizowania, które kanały są wysokie, które niskie. To bardzo ułatwia zarówno debugowanie CSS, jak i świadome dobieranie kolorystyki interfejsu.

Pytanie 33

Po wykonaniu przedstawionego kodu PHP, w zmiennej $napis zostaje zapisany ciąg znaków.

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. gr
B. og
C. ogram
D. gramo
W przypadku analizy funkcji substr() kluczowe jest zrozumienie jak działają indeksy i jak funkcja operuje na ciągach znaków. Przyjmowanie błędnych założeń co do indeksowania jest częstym błędem wśród programistów zwłaszcza u początkujących. Indeksy w PHP zaczynają się od zera co oznacza że pierwszy znak ciągu ma indeks 0 drugi ma indeks 1 i tak dalej. W podanym kodzie użyta jest funkcja substr() z parametrami 3 i 5 co oznacza że zaczynamy od czwartego znaku i wycinamy pięć znaków. Niepoprawne odpowiedzi mogą wynikać z braku uwzględnienia indeksowania od zera lub błędnej interpretacji długości wycinka. Przy wyborze odpowiedzi 'og' czy 'ogram' można podejrzewać pomyłkę w zrozumieniu jak działa długość wycinka oraz gdzie dokładnie zaczyna się wycinanie. Może to wynikać z błędnego wyobrażenia jak indeksy przypisują się do liter w danym ciągu. Ważne jest aby dokładnie śledzić jak indeksy przyporządkowują się do liter co pozwala na bardziej precyzyjne operowanie na napisach. Funkcja substr() jest jedną z podstawowych w PHP i jej zrozumienie jest niezbędne do efektywnego manipulowania ciągami znaków. Przy pracy z danymi tekstowymi warto stosować dobre praktyki w zakresie czytelności kodu oraz odpowiedniego nazywania zmiennych co pozwala unikać nieporozumień i zwiększa czytelność kodu.

Pytanie 34

W stylu CSS zdefiniowano klasę uzytkownik:

p.uzytkownik {
    color: blue;
}
Na stronie będą wyświetlane czcionką w kolorze niebieskim:
A. tylko elementy tekstowe typu <p>, <h1>.
B. wszystkie akapity.
C. paragrafy, do których została przypisana klasa uzytkownik.
D. wszystkim elementom w sekcji <body> z przypisaną klasą uzytkownik.
Klucz do tego pytania leży w zrozumieniu, jak działa składnia selektorów CSS. Wiele osób patrzy na fragment p.uzytkownik i automatycznie myśli: „to pewnie wszystkie akapity” albo „wszystko z klasą uzytkownik w body”. Tymczasem CSS jest dość precyzyjny. Sam selektor p oznaczałby rzeczywiście wszystkie paragrafy <p> w dokumencie, niezależnie od klas. Natomiast .uzytkownik bez literki przed kropką oznaczałby wszystkie elementy HTML, które mają w atrybucie class wpisane uzytkownik – mogłyby to być <p>, <div>, <span>, <h1> i inne. Właśnie taki zapis spowodowałby nadanie stylu „wszystkim elementom z klasą uzytkownik w body”, o ile oczywiście są w tym zakresie dokumentu.
Pojawia się też częsty błąd myślowy, że skoro w pytaniu jest mowa o akapitach i o klasie, to może chodzi o „tylko elementy tekstowe typu <p>, <h1>”. CSS jednak nie rozumie pojęcia „element tekstowy” w taki sposób – <h1> to zupełnie inny typ elementu niż <p>, więc selektor p.uzytkownik nigdy nie dopasuje nagłówka <h1>, nawet jeśli nadasz mu class="uzytkownik". Żeby stylować zarówno <p>, jak i <h1> z tą klasą, trzeba by użyć selektora złożonego: p.uzytkownik, h1.uzytkownik { ... }.
Z mojego doświadczenia wynika, że pomieszanie selektora typu, klasy i ich kombinacji to jedna z typowych przyczyn „magicznych” błędów w wyglądzie strony – coś nagle zmienia kolor, bo ktoś użył za szerokiego selektora .uzytkownik zamiast p.uzytkownik, albo odwrotnie, styl „nie działa”, bo autor oczekiwał, że reguła obejmie wszystko z daną klasą, a zawęził ją do konkretnego tagu. Dlatego dobrze jest zawsze czytać selektor od lewej do prawej: najpierw jaki element (p), potem jaka klasa (.uzytkownik). Tylko połączenie tych dwóch warunków powoduje zastosowanie stylu. W aktualnych specyfikacjach CSS (np. Selectors Level 3 i 4) ta logika jest jasno określona i jest standardem we wszystkich nowoczesnych przeglądarkach, więc warto się do niej przyzwyczaić i świadomie z niej korzystać.

Pytanie 35

Jeden klient może mieć wiele zamówień, a każde zamówienie należy do jednego klienta. Jaka to relacja?

A.
1 .. n
B.
n .. 1
C.
1 .. 1
D.
n .. n
Pozostałe oznaczenia nie pasują. 1..1 znaczyłoby, że klient ma tylko jedno zamówienie. n..1 to ta sama relacja zapisana odwrotnie (z punktu widzenia zamówień), ale w opisie punktem wyjścia jest klient, więc naturalnie 1..n. n..n pozwalałoby, by zamówienie należało do wielu klientów. Opisany przypadek to 1..n.

Pytanie 36

Który efekt został zaprezentowany na filmie?

A. Zwiększenie ostrości zdjęcia.
B. Zmniejszenie kontrastu zdjęcia.
C. Zmiana jasności zdjęć.
D. Przenikanie zdjęć.
W tym zadaniu łatwo pomylić kilka różnych rodzajów operacji na obrazie, bo wszystkie jakoś „zmieniają wygląd zdjęcia”, ale działają zupełnie inaczej. Efekt pokazany na filmie to przenikanie dwóch zdjęć w czasie, czyli animowane przejście między jednym obrazem a drugim. Kluczowa cecha: widzimy jednocześnie dwa zdjęcia, jedno stopniowo zanika, a drugie stopniowo się pojawia. To nie jest typowa operacja edycyjna na pojedynczym pliku graficznym, tylko efekt animacyjny, często wykorzystywany w pokazach slajdów, sliderach na stronach WWW i w montażu wideo.

Zmiana jasności zdjęć to zupełnie inny rodzaj przetwarzania. Jasność modyfikuje poziom luminancji całego obrazu lub jego fragmentów – obraz staje się ciemniejszy albo jaśniejszy, ale dalej jest to to samo zdjęcie. Nie pojawia się nowe, drugie zdjęcie, nie ma nakładania dwóch kadrów. W programach do grafiki mamy to jako „Brightness”, „Exposure” czy „Levels”. Jeśli na filmie widać, że jeden obraz przechodzi płynnie w inny, to nie jest korekta jasności, tylko przejście między dwiema warstwami.

Podobnie z ostrością – zwiększenie ostrości polega na podbiciu kontrastu na krawędziach, żeby szczegóły wyglądały wyraźniej. W praktyce używa się filtrów typu Unsharp Mask, Smart Sharpen albo algorytmów wyostrzania w czasie rzeczywistym. Obraz przed i po wyostrzeniu to ciągle ta sama klatka, tylko z innym przetworzeniem detali, nie ma efektu zanikania jednego zdjęcia i pojawiania się drugiego.

Zmniejszenie kontrastu to kolejna korekta globalna, która spłaszcza różnice między jasnymi a ciemnymi partiami obrazu. Zdjęcie robi się bardziej „szare”, mniej dynamiczne. Znowu – cały czas pracujemy na jednym ujęciu, bez miksowania dwóch fotografii. Typowym błędem myślowym przy takich pytaniach jest to, że skoro coś się „zmienia w czasie”, to musi chodzić o jakąś regulację parametrów typu jasność czy kontrast. Tymczasem w efektach multimedialnych bardzo często operujemy na wielu warstwach – dwa obrazy, dwie klatki wideo – i animujemy ich wzajemną przezroczystość. Właśnie to jest esencją przenikania zdjęć i odróżnia je od zwykłych korekt obrazu.

Pytanie 37

Aby zdefiniować krój czcionki w stylu CSS, należy użyć właściwości:

A.
font-style
B.
text-style
C.
font-family
D.
text-family
Łatwo tu wybrać nazwę, która brzmi logicznie, ale nie istnieje albo robi co innego. text-style oraz text-family wyglądają sensownie, jednak takich właściwości w CSS po prostu nie ma - przeglądarka je zignoruje. font-style to z kolei prawdziwa właściwość, lecz odpowiada za odmianę pisma, czyli pochylenie tekstu (wartość italic), a nie za wybór samego kroju. Rodzinę czcionki ustawia font-family, w której wskazuje się nazwę czcionki wraz z listą zapasowych - i dlatego to ona jest poprawną odpowiedzią.

Pytanie 38

Ile razy zostanie wykonana pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w trakcie działania pętli?
for ($i = 0; $i <= 10; $i+=2) { .... }

A. 5
B. 10
C. 0
D. 6
Wybór błędnych odpowiedzi wynika z nieprawidłowego zrozumienia działania pętli for oraz sposobu, w jaki zostają liczone iteracje. Odpowiedzi takie jak 0, 5 czy 10 są oparte na mylących założeniach. Na przykład, odpowiedzi 0 i 10 mogą sugerować, że pętla nie wykonuje żadnych iteracji lub, że wykonuje ich zbyt wiele, co jest sprzeczne z rzeczywistością. Pętla for, jak w tym przypadku, zaczyna od 0 i kończy na 10, a krok wynosi 2. Zmiana wartości $i przy każdym przejściu pętli jest kluczowym elementem do zrozumienia. Jeśli więc zmienna nie jest zmieniana, nie osiągnie ona wartości końcowej prawidłowo. Typowym błędem jest także myślenie o warunkach w sposób nieprecyzyjny; w tym wypadku warunek $i <= 10 jest spełniony dla wartości 10, co może mylić. W praktyce, programiści powinni zawsze dokładnie analizować zakres iteracji, aby uniknąć błędnych założeń. To zrozumienie jest fundamentalne, aby pisać wydajny i bezpieczny kod, stosując się do najlepszych praktyk programistycznych.

Pytanie 39

Po przeprowadzeniu walidacji dokumentu HTML pojawił się błąd przedstawiony na zrzucie. Jak można go usunąć?

Ilustracja do pytania
A. zmienić zapis </h1> na <h1>
B. dodać atrybut alt do grafiki
C. w znaczniku img zmienić nazwę atrybutu src na alt
D. w znaczniku img zmienić nazwę atrybutu src na href
W znaczniku img atrybut src jest niezbędny do określenia źródła obrazka a zmiana jego nazwy na href jest nieprawidłowa. Atrybut href jest używany w tagach a do wskazywania lokalizacji linku a nie w przypadku obrazów. Zamiana src na alt całkowicie zmieniłaby funkcję znacznika uniemożliwiając ładowanie obrazka. Sama zmiana nazw atrybutów nie rozwiązuje problemu związanego z brakiem opisu alternatywnego. Natomiast ostatnia opcja dotycząca zamiany </h1> na <h1> odnosi się do struktury nagłówka HTML a nie ma związku z problemem z obrazkiem. Poprawne oznaczanie struktury dokumentu za pomocą nagłówków jest kluczowe dla semantyki i dostępności jednak nie likwiduje błędu związanego z atrybutem alt. Każdy z tych błędnych pomysłów wynika z niezrozumienia roli atrybutów w HTML oraz ich wpływu na dostępność i SEO. Poprawne stosowanie atrybutów to podstawa dobrych praktyk kodowania i niezbędny element tworzenia dostępnych stron. Warto zaznaczyć że alt to nie tylko standard ale również wyraz dbałości o użytkowników i ich doświadczenia na stronie. Błędne rozumienie tych koncepcji prowadzi do nieskutecznego lub wadliwego kodu który nie spełnia wymogów współczesnych aplikacji webowych. Poprawa jakości kodu poprzez zrozumienie jego struktury i funkcjonalności jest kluczowa dla każdego specjalisty z branży IT.

Pytanie 40

Aby ustawić marginesy wewnętrzne elementu: górny 50px, prawy 20px, dolny 40px, lewy 30px, należy użyć deklaracji CSS:

A.
padding: 20px 40px 30px 50px;
B.
padding: 30px 20px 40px 50px;
C.
padding: 50px 40px 20px 30px;
D.
padding: 50px 20px 40px 30px;
Skrócony zapis padding z czterema wartościami przyjmuje je w kolejności zgodnej z ruchem wskazówek zegara: góra, prawo, dół, lewo (TRBL). Dla marginesów górny 50, prawy 20, dolny 40, lewy 30 daje to padding: 50px 20px 40px 30px;. Wartości rozdziela się spacjami, nie przecinkami. Dlatego poprawna jest ta deklaracja.