Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 08:05
  • Data zakończenia: 8 czerwca 2026 08:31

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Deklaracja w języku JavaScript var x = true; powoduje, że zmienna x jest typu:

A. logicznego
B. liczbowego
C. ciągu znaków
D. wyliczeniowego
Przypisanie var x = true; sprawia, że zmienna x jest typu LOGICZNEGO (boolean) - może przyjmować jedną z dwóch wartości: true lub false. Takich zmiennych używa się w warunkach. Dlatego x jest typu logicznego.

Pytanie 2

Który z podanych znaczników HTML nie jest używany do formatowania tekstu?

A. <em>
B. <sub>
C. <div>
D. <strong>
<div> jest znacznikiem HTML, który służy do grupowania elementów na stronie, co ułatwia ich stylizację i manipulację w CSS oraz JavaScript. W przeciwieństwie do znaczników takich jak <em>, <sub> i <strong>, które mają konkretne zastosowania związane z formatowaniem tekstu, <div> pełni rolę kontenera, co czyni go bardziej uniwersalnym narzędziem do strukturyzacji treści. Przykładowo, można użyć <div> do utworzenia sekcji nagłówka, stopki lub bocznego panelu na stronie. Zgodnie z standardami W3C, <div> jest elementem blokowym, co oznacza, że zajmuje całą szerokość dostępną w swoim rodzicu. W praktyce, <div> pozwala na efektywne zarządzanie układem strony i jest często stosowany w połączeniu z CSS w celu uzyskania pożądanej prezentacji wizualnej. Przykład zastosowania: <div class='container'>...</div> może być użyty do zawarcia innych elementów jak <h1>, <p> czy <img>. Dzięki temu można łatwo manipulować stylem i zachowaniem tych elementów, co czyni <div> kluczowym narzędziem w nowoczesnym web designie.

Pytanie 3

W systemie baz danych sklepu komputerowego znajduje się tabela o nazwie komputery. Aby stworzyć raport, który wyświetli dane dla konkretnego zestawu informacji z tej tabeli, zawierający tylko te komputery, które mają co najmniej 8 GB pamięci RAM oraz procesor Intel, można wykorzystać zapytanie:

A. SELECT * FROM komputery WHERE procesor= 'Intel' OR pamiec<8
B. SELECT * FROM komputery WHERE procesor= 'Intel' OR pamiec>=8
C. SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec<8
D. SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec>=8
Aby stworzyć kwerendę, która wyświetli wszystkie komputery w tabeli 'komputery', spełniające określone warunki, musimy użyć odpowiednich operatorów logicznych oraz porównań. W tym przypadku chcemy uzyskać sprzęt, którego procesor to 'Intel' oraz pamięć RAM wynosi co najmniej 8 GB. Kluczowym elementem jest tutaj użycie operatora 'AND', który zapewnia, że muszą być spełnione oba warunki jednocześnie. Kwerenda 'SELECT * FROM komputery WHERE procesor= 'Intel' AND pamiec>=8;' w pełni odpowiada tym wymaganiom. Operator 'AND' jest istotny, ponieważ bez niego moglibyśmy otrzymać komputery z procesorem Intel, ale z pamięcią RAM mniejszą niż 8 GB, co jest sprzeczne z naszym celem. Tego rodzaju zapytania są powszechne w analizie danych i często wykorzystywane w raportowaniu i wizualizacji danych. Odpowiednia struktura kwerendy zapewnia, że wyniki będą precyzyjne i zgodne z oczekiwaniami użytkowników, co jest kluczowe w zarządzaniu bazami danych oraz w tworzeniu systemów informacyjnych dla sklepów komputerowych.

Pytanie 4

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

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

Pytanie 5

Tabela faktury w bazie danych zawiera pola: numer, data, id_klienta, wartość oraz status. Każdego dnia tworzony jest raport dotyczący faktur z dnia bieżącego. Zawiera on jedynie numery oraz wartości faktur. Która z poniższych kwerend SQL pozwoli na wygenerowanie tego raportu?

A. SELECT * FROM faktury;
B. SELECT numer, wartość FROM faktury;
C. SELECT * FROM faktury WHERE data=CURRENT_DATE();
D. SELECT numer, wartosc FROM faktury WHERE data=CURRENT_DATE();
Aby wygenerować raport faktur z bieżącego dnia, kluczowe jest zastosowanie odpowiednich filtrów oraz wybranie tylko tych pól, które są istotne w kontekście raportu. Kwerenda SQL, która prawidłowo odpowiada na postawiony problem, to 'SELECT numer, wartosc FROM faktury WHERE data=CURRENT_DATE();'. Dzięki temu zapytaniu, system wyciąga z bazy danych jedynie numery i wartości faktur, które zostały wystawione w dniu dzisiejszym. Użycie funkcji CURRENT_DATE() pozwala na dynamiczne filtrowanie danych według aktualnej daty, co jest niezbędne do stworzenia codziennego raportu. W praktyce, taka kwerenda może być używana w aplikacjach do zarządzania finansami, gdzie użytkownicy chcą szybko uzyskać podsumowanie transakcji z danego dnia. Standardy SQL wymagają precyzyjnego określenia, które kolumny mają być wyświetlane, a także jakiego rodzaju dane mają być filtrowane. W związku z tym, zastosowanie warunku WHERE jest kluczowe, aby ograniczyć wyniki do faktur z dzisiaj, co zwiększa efektywność analizy danych.

Pytanie 6

Innym określeniem saturacji koloru jest:

A. jasność koloru
B. nasycenie koloru
C. dopełnienie koloru
D. przezroczystość koloru
Saturacja to po prostu NASYCENIE koloru - opisuje, jak czysta i intensywna jest barwa. Przy wysokiej saturacji kolory są żywe i soczyste, a przy stopniowym obniżaniu blakną, aż przy zerze przechodzą w odcienie szarości. To jeden z trzech parametrów modeli HSV i HSL (obok odcienia i jasności). Dlatego innym określeniem saturacji jest nasycenie koloru.

Pytanie 7

Tabela programy ma kolumny nazwa, producent, rokWydania. Która kwerenda zwróci producentów BEZ powtórzeń?

A.
SELECT UNIQUE producent FROM programy;
B.
SELECT DISTINCT producent FROM programy;
C.
SELECT producent FROM programy WHERE UNIQUE;
D.
SELECT producent FROM programy WHERE producent NOT DUPLICATE;
Aby wypisać producentów bez powtórzeń, dopisuje się DISTINCT zaraz po SELECT, przed nazwą kolumny: SELECT DISTINCT producent FROM programy;. Słowo to każe bazie pominąć duplikaty i zwrócić każdą nazwę producenta tylko raz. Dlatego ta kwerenda jest poprawna.

Pytanie 8

Aby umożliwić wybór kilku opcji jednocześnie w rozwijanej liście formularza HTML, należy dodać atrybut do znacznika select

Ilustracja do pytania
A. size
B. value
C. multiple
D. disabled
Atrybut multiple w znaczniku select w HTML to super sprawa, bo dzięki niemu można zaznaczyć więcej niż jedną opcję z listy rozwijalnej. To się przydaje, jak ktoś musi wybrać kilka elementów w formularzu. Jak dodasz atrybut multiple, to przeglądarka pokazuje to jako pole do wyboru, gdzie można klikać na kilka wartości za pomocą klawiszy Ctrl albo Shift. Fajnie, że ten atrybut nie wymaga żadnych dodatkowych wartości, wystarczy, że go wrzucisz do znacznika select. To zgodne z dobrymi praktykami UX, bo pozwala na większą elastyczność i interaktywność formularzy. Co więcej, nie trzeba być programistycznym guru, żeby to wdrożyć, więc każdy może to zrobić. Używa się go w różnych aplikacjach webowych, zwłaszcza tam, gdzie zbieranie danych od użytkowników w prosty i przejrzysty sposób jest ważne.

Pytanie 9

Które stwierdzenie jest poprawne w odniesieniu do grafiki rastrowej?

A. podczas skalowania obraz nie traci na jakości
B. obraz opisany jest figurami geometrycznymi w układzie współrzędnych
C. nie jest zapisywana w formacie WMF
D. to obraz przedstawiony jako siatka odpowiednio kolorowanych pikseli
Grafika rastrowa to obraz zapisany jako SIATKA pikseli, z których każdy ma swój kolor (tak działają zdjęcia, formaty PNG, JPG, BMP). Dlatego poprawne jest stwierdzenie, że to obraz w postaci siatki kolorowanych pikseli.

Pytanie 10

Który rastrowy format graficzny jest obsługiwany przez przeglądarki internetowe?

A. PCX
B. TGA
C. PNG
D. FLIF
Spośród wymienionych to PNG jest rastrowym formatem obsługiwanym natywnie przez przeglądarki internetowe - obok JPG i GIF tworzy zestaw bezpiecznych formatów webowych. Wyświetli się bez wtyczek i konwersji. Zapamiętaj webowe rastry: JPG (zdjęcia), PNG (jakość + przezroczystość), GIF (proste animacje).

Pytanie 11

Zestawienie dwóch kolorów leżących naprzeciw siebie w kole barw to zestawienie:

A. trójkątne
B. sąsiadujące (analogiczne)
C. dopełniające
D. monochromatyczne
Barwy dopełniające (komplementarne) to dwa kolory leżące dokładnie naprzeciw siebie na kole barw, np. czerwony i zielony albo niebieski i pomarańczowy. Zestawione razem dają silny kontrast i wzajemnie się „wzmacniają”, dlatego stosuje się je, by przyciągnąć uwagę. Inne schematy kolorystyczne to triada (trzy kolory w równych odstępach), analogiczny (kolory sąsiednie) i monochromatyczny (odcienie jednej barwy). Dlatego kolory naprzeciw siebie to barwy dopełniające.

Pytanie 12

Język HTML oferuje nagłówki, które służą do tworzenia hierarchii zawartości. Te nagłówki występują wyłącznie w zakresie

A. h1 - h4
B. h1 - h6
C. h1 - h8
D. h1 - h10
Odpowiedź h1 - h6 jest poprawna, ponieważ w języku HTML nagłówki są definiowane w ramach sześciu poziomów, od h1 do h6. Nagłówki te pełnią kluczową rolę w organizacji treści na stronie internetowej, umożliwiając tworzenie hierarchii oraz struktury dokumentu. h1 jest najważniejszym nagłówkiem i powinien być używany do oznaczania głównego tytułu strony, podczas gdy h2, h3, h4, h5 i h6 służą do tworzenia podtytułów i hierarchii treści w miarę potrzeby. Na przykład, nagłówek h2 może być użyty do oznaczenia sekcji podrzędnej w stosunku do h1, a h3 do następnej sekcji podrzędnej. Takie zrozumienie hierarchii nagłówków jest istotne z punktu widzenia SEO, ponieważ wyszukiwarki korzystają z tych struktur do indeksowania treści. Dobrze zorganizowane nagłówki poprawiają również dostępność strony, co jest zgodne z najlepszymi praktykami webowymi, a także ułatwiają nawigację użytkownikom, zarówno ludziom, jak i robotom wyszukiwarek.

Pytanie 13

Tabele Klienci oraz Zgłoszenia są ze sobą połączone relacją jeden do wielu. W celu uzyskania jedynie opisu zgłoszenia oraz odpowiadającego mu nazwiska klienta dla zgłoszenia o numerze 5, należy wykonać polecenie

Ilustracja do pytania
A. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci WHERE Klienci.id = 5
B. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.id WHERE Zgłoszenia.id = 5
C. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Klienci.id = 5
D. SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Zgłoszenia.id = 5
Odpowiedź jest poprawna, ponieważ uwzględnia właściwe połączenie między tabelami Klienci i Zgłoszenia za pomocą klucza obcego Klienci_id w tabeli Zgłoszenia. W relacyjnych bazach danych, gdy chcemy pobrać dane z dwóch tabel powiązanych relacją klucz główny-klucz obcy, używamy klauzuli JOIN. W tym przypadku Klienci_id w tabeli Zgłoszenia odnosi się do kolumny id w tabeli Klienci. Zapytanie SELECT opis, nazwisko FROM Zgłoszenia JOIN Klienci ON Klienci.id = Zgłoszenia.Klienci_id WHERE Zgłoszenia.id = 5; precyzyjnie pobiera kolumny opis i nazwisko z odpowiednich tabel, filtrując wyniki, aby dotyczyły jedynie zgłoszenia o id równym 5. Takie podejście jest zgodne z dobrymi praktykami projektowania relacyjnych baz danych, gdzie separacja danych na tabele pozwala na efektywne zarządzanie związkami między danymi. Korzystając z JOIN, integrujemy te dane w logiczny sposób, co jest fundamentem wydajnych i skalowalnych systemów bazodanowych. Praktyczne zastosowanie tego podejścia można znaleźć w projektowaniu systemów CRM, gdzie dane o klientach i ich zgłoszeniach są regularnie łączone w celu analizy i raportowania.

Pytanie 14

W języku PHP predefiniowana zmienna $_SESSION przechowuje

A. listę zarejestrowanych sesji na serwerze WWW
B. zmienne przesyłane do skryptu przy pomocy ciastek (cookie)
C. zmienne przesyłane do skryptu przez formularz
D. zmienne zarejestrowane w aktualnej sesji
Zmienna predefiniowana $_SESSION w języku PHP jest używana do przechowywania zmiennych, które są dostępne w trakcie trwania sesji użytkownika. Sesja pozwala na utrzymanie stanu między różnymi żądaniami HTTP, co jest istotne w aplikacjach webowych, gdzie HTTP jest protokołem bezstanowym. Dzięki $_SESSION, programiści mogą przechowywać dane użytkownika, takie jak identyfikatory, koszyki zakupowe czy inne ustawienia, bez konieczności przesyłania ich za każdym razem przez formularze lub ciasteczka. Przykładem może być sytuacja, w której użytkownik loguje się do serwisu – po zalogowaniu, jego identyfikator sesji jest przechowywany w $_SESSION, co pozwala na identyfikację użytkownika w kolejnych żądaniach. Ważne jest, aby pamiętać o odpowiednim zarządzaniu sesjami, np. poprzez regularne ich odnawianie, a także zabezpieczanie danych przechowywanych w $_SESSION, aby uniknąć ataków takich jak hijacking sesji. Praktyka ta jest zgodna z najlepszymi standardami bezpieczeństwa w programowaniu aplikacji webowych.

Pytanie 15

W tabeli pokazano cechy pliku graficznego. Aby rysunek ładował się szybciej na stronie WWW, należy

Wymiary: 4272 x 2848px
Rozdzielczość: 72 dpi
Format: JPG
A. zmniejszyć wymiary rysunku
B. zmienić format grafiki na CDR
C. zwiększyć rozdzielczość
D. zmienić proporcje szerokości do wysokości
Zmniejszenie wymiarów rysunku to kluczowy krok w optymalizacji czasu ładowania grafiki na stronę WWW. Mniejsze wymiary oznaczają mniejszą ilość danych do przesłania, co skraca czas ładowania strony. Praktycznym przykładem jest zmniejszenie wymiarów obrazu z 4272 x 2848 pikseli do bardziej standardowego rozmiaru, jak np. 1920 x 1080 pikseli dla grafik wyświetlanych na ekranach. Zmniejszenie wymiarów nie tylko przyspiesza ładowanie ale także zmniejsza zużycie transferu danych co jest istotne przy ograniczeniach mobilnych. Warto pamiętać że mniejsze grafiki są też mniej zasobożerne dla urządzeń użytkowników co wpływa na ogólną wydajność strony. Zastosowanie odpowiednich wymiarów jest zgodne z dobrymi praktykami optymalizacji webowej rekomendowanymi przez Google PageSpeed Insights i inne narzędzia analityczne. Optymalizacja grafiki poprzez zmniejszenie jej wymiarów jest podstawową czynnością w procesie tworzenia responsywnych i szybko działających witryn internetowych.

Pytanie 16

Zadaniem poniższego kodu napisanego w języku C++ jest wypisanie dla podanych dowolnych liczb całkowitych różnych od zera:

int main()
{
    int liczba;
    cin >> liczba;

    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;

        cin >> liczba;
    }
    return 0;
}
A. wszystkie liczby
B. wyłącznie liczby nieparzyste
C. liczby pierwsze
D. jedynie liczby parzyste
Prezentowany kod źródłowy w języku C++ jest zaprogramowany do wypisywania tylko liczb parzystych spośród wprowadzanych przez użytkownika liczb całkowitych różnych od zera. Kluczowym elementem jest tutaj operacja modulo (%), która oblicza resztę z dzielenia liczby przez 2. Dla liczb parzystych wynik tej operacji wynosi 0, co jest sprawdzane w warunku if. Kod używa pętli while, która pozwala na wprowadzanie i sprawdzanie wielu liczb w sposób iteracyjny, aż do momentu wprowadzenia zera, które kończy działanie programu. Zrozumienie tej struktury jest kluczowe w programowaniu i pozwala na efektywne filtrowanie danych. W praktyce taki mechanizm mógłby być użyty w systemach analizujących dane wejściowe pod kątem ich właściwości liczbowych. Podstawowe operacje na liczbach, takie jak modulo, są szeroko stosowane w algorytmach i strukturach danych, gdzie ważne jest klasyfikowanie czy filtrowanie elementów według zadanych kryteriów. Warto zwrócić uwagę na efektywność tego podejścia, które minimalizuje zbędne operacje poprzez bezpośrednie sprawdzanie warunku wewnątrz pętli.

Pytanie 17

Wskaż NIEPRAWIDŁOWY opis optymalizacji kodu wygenerowanego przez program

A. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
B. Jej celem jest zwiększenie efektywności programu
C. Powinna prowadzić do zmiany kodu źródłowego w taki sposób, aby działał on szybciej
D. W celu przyspieszenia wykonania kodu przez procesor może być przeprowadzana na różnych etapach działania
Wszelkie odpowiedzi, które sugerują, że celem optymalizacji kodu wynikowego jest sprawdzenie zgodności z wymogami formalnymi, są błędne. Tego rodzaju podejście myślowe może prowadzić do poważnych nieporozumień w kontekście rozwoju oprogramowania. W rzeczywistości, optymalizacja kodu koncentruje się głównie na zwiększeniu wydajności, a nie na zgodności z formalnościami. Wiele osób myli te pojęcia, co może skutkować szkodliwym podejściem, w którym skupiają się na spełnieniu formalnych wymagań bez zrozumienia, że kluczowym celem jest poprawa funkcjonalności i szybkości działania programu. Co więcej, odpowiedzi sugerujące, że modyfikacje kodu źródłowego prowadzące do większej szybkości działania nie są istotne, są również mylne. W rzeczywistości, optymalizacja kodu często wymaga przekształceń na poziomie kodu źródłowego, aby zapewnić lepszą wydajność. Dobre praktyki programistyczne zalecają testowanie i profilowanie kodu, aby zidentyfikować obszary wymagające poprawy. Warto także pamiętać, że optymalizacja powinna być prowadzona na różnych etapach rozwoju aplikacji, aby dostosować kod do zmieniających się potrzeb użytkowników oraz wymagań technicznych. Ignorowanie tych aspektów może prowadzić do stagnacji w rozwoju oprogramowania i obniżenia jego jakości.

Pytanie 18

Który z wymienionych formatów umożliwia zapisanie materiału wideo z towarzyszącą ścieżką dźwiękową?

A. WMA
B. WAV
C. AAC
D. MP4
Odpowiedź MP4 jest poprawna, ponieważ jest to jeden z najpopularniejszych formatów kontenerowych używanych do przechowywania wideo wraz z dźwiękiem. Format MP4 (MPEG-4 Part 14) pozwala na efektywne kodowanie wideo, przy jednoczesnym zachowaniu wysokiej jakości obrazu i dźwięku. Umożliwia on przechowywanie różnorodnych strumieni danych, w tym wideo, audio, a także tekstu, co czyni go bardzo wszechstronnym rozwiązaniem dla twórców multimediów. Przykładowo, format MP4 jest często używany w aplikacjach do strumieniowania wideo, takich jak YouTube, oraz w systemach zarządzania treścią (CMS) do publikacji materiałów wideo w Internecie. Dzięki kompresji zgodnej z kodekiem H.264 dla wideo i AAC dla audio, pliki MP4 są względnie małe, co ułatwia ich przesyłanie i przechowywanie. To czyni format MP4 standardem branżowym w produkcji filmowej, telewizyjnej oraz w aplikacjach mobilnych i webowych.

Pytanie 19

Który lekki, tekstowy format danych jest dziś najczęściej używany do asynchronicznej wymiany danych między klientem a serwerem (np. w AJAX)?

A. CSV
B. JSON
C. DOCX
D. BMP
JSON (JavaScript Object Notation) to lekki, tekstowy format zapisu danych w postaci par klucz-wartość i list, np. {"imie": "Anna", "wiek": 30}. Jest czytelny dla człowieka, a w JavaScripcie wręcz naturalny (wprost odpowiada obiektom), dlatego zdominował wymianę danych w technice AJAX i w interfejsach API. Przeglądarka łatwo zamienia tekst JSON na obiekt funkcją JSON.parse() i odwrotnie przez JSON.stringify(). Dawniej używano w tej roli XML-a, lecz JSON jest zwięźlejszy. Dlatego do asynchronicznej wymiany danych stosuje się JSON.

Pytanie 20

Które z poniższych oprogramowań nie jest systemem do zarządzania treścią (CMS)?

A. Mambo
B. Joomla
C. Apache
D. WordPress
Mambo, Joomla i WordPress to systemy zarządzania treścią (CMS), które umożliwiają użytkownikom tworzenie oraz zarządzanie treściami na stronach internetowych bez potrzeby posiadania specjalistycznej wiedzy technicznej. Mimo że wszystkie te platformy mają różne funkcje i podejścia do zarządzania treścią, ich wspólną cechą jest to, że są zaprojektowane do ułatwiania publikowania treści online. Często mylone jest pojęcie CMS z innymi technologiami wykorzystywanymi w rozwoju stron, co może prowadzić do nieporozumień. Na przykład, Apache, jako serwer HTTP, odgrywa kluczową rolę w udostępnianiu tych treści, ale sam w sobie nie zapewnia narzędzi do ich tworzenia ani zarządzania. Typowym błędem myślowym jest przyjęcie, że każdy komponent technologii webowej może pełnić rolę CMS-u, podczas gdy tylko te oprogramowania, które oferują intuicyjne interfejsy do edycji oraz organizacji treści, kwalifikują się jako systemy zarządzania treścią. Znajomość różnic między tymi technologiami jest kluczowa dla skutecznego tworzenia i utrzymywania stron internetowych oraz dla wykorzystania ich pełnego potencjału w zgodzie z najlepszymi praktykami w branży.

Pytanie 21

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
B. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
C. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
D. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
Wybrana odpowiedź jest poprawna, ponieważ używa operatora LIKE, który jest standardowym rozwiązaniem w SQL do wyszukiwania wzorców w danych. W tym przypadku 'M%' oznacza, że chcemy znaleźć wszystkie nazwiska, które zaczynają się na literę M. Operator LIKE jest szczególnie przydatny w sytuacjach, gdy potrzebujemy elastycznego wyszukiwania, umożliwiającego zastosowanie symboli wieloznacznych, takich jak '%' oznaczający dowolną liczbę znaków. Przykład zastosowania tego zapytania może obejmować generowanie listy uczniów dla nauczycieli, którzy chcą szybko zobaczyć wszystkich uczniów z nazwiskiem zaczynającym się na M, co może być przydatne przy organizowaniu wydarzeń czy klas. Dobrą praktyką jest także używanie odpowiednich indeksów w bazie danych, co może znacznie przyspieszyć wykonanie zapytań, zwłaszcza w dużych zbiorach danych. Znajomość operatorów SQL i ich zastosowań, jak również umiejętność formułowania zapytań, jest kluczowa w pracy z relacyjnymi bazami danych.

Pytanie 22

W tabeli artykuly przeprowadzono poniższe operacje związane z uprawnieniami użytkownika jan.

GRANT ALL PRIVILEGES ON artykuły TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan

Jakie będą uprawnienia użytkownika jan po wykonaniu tych operacji?

A. tworzenia tabel oraz ich zapełniania danymi
B. aktualizowania informacji oraz przeglądania tabeli
C. przeglądania tabeli
D. tworzenia tabeli oraz aktualizowania danych w niej
Odpowiedź "tworzenia tabeli i wypełniania jej danymi" jest poprawna, ponieważ po wykonaniu polecenia GRANT ALL PRIVILEGES ON artykuły TO jan, użytkownik jan zyskuje pełnię praw do bazy danych, co obejmuje możliwość tworzenia nowych tabel oraz wypełniania ich danymi. Takie uprawnienia są niezbędne, jeśli jan ma zająć się rozwijaniem struktury bazy danych w kontekście projektów lub aplikacji. W praktyce, przydzielanie takich uprawnień powinno być starannie przemyślane w kontekście bezpieczeństwa. W dobrych praktykach zarządzania bazami danych stosuje się zasadę najmniejszych uprawnień, co oznacza, że użytkownicy powinni mieć tylko te prawa, które są im niezbędne do wykonywania ich zadań. Dzięki temu minimalizuje się ryzyko przypadkowego lub celowego usunięcia danych. W przypadku jana, jego pełne uprawnienia do artykułów pozwolą mu wprowadzać dane nie tylko do istniejących tabel, ale także tworzyć nowe struktury, co jest kluczowe w dynamicznych środowiskach, gdzie wymagane są częste zmiany.

Pytanie 23

Przedstawiono fragment HTML, który nie przechodzi poprawnej walidacji. Błąd walidacyjny tego kodu dotyczy

<!DOCTYPE html>
<html>
 <head>
  <title>Test</title>
 </head>
 <body>
  <img src="obraz.gif alt="Obrazek">
  <h1>Rozdział 1</h1>
  <p>To jest tekst paragrafu, ... </p>
  <br>
  <img src="obraz.gif" alt="Obrazek">

 </body>
</html>
A. niedomknięcia znacznika img.
B. niedomknięcia znacznika br.
C. braku cudzysłowu.
D. powtórzenia nazwy pliku graficznego.
Twoja odpowiedź jest prawidłowa. Błąd walidacji w kodzie HTML na obrazku wynikał z braku cudzysłowu. W HTML atrybuty powinny być zawsze otoczone cudzysłowami, są to pojedyncze (' ') lub podwójne (" "), co jest wymogiem poprawnej walidacji kodu. Atrybuty, którym nie przydzielono wartości, mogą powodować problemy w przeglądarkach, co z kolei prowadzi do błędów walidacji. Dlatego zawsze należy pamiętać o otoczeniu atrybutów cudzysłowami, aby zapewnić poprawne działanie strony internetowej. Prawidłowo zapisany atrybut w tagu HTML powinien wyglądać tak: <img src="obrazek.jpg">. W praktyce niezgodność z tą konwencją może prowadzić do nieprawidłowego wyświetlania strony lub jej elementów. Dlatego zawsze warto zwracać uwagę na poprawność składni podczas pisania kodu HTML.

Pytanie 24

Który z rysunków obrazuje efekt działania przedstawionego fragmentu kodu HTML?

<table border="1">
 <tr><td rowspan="2">pierwszy</td><td>drugi</td></tr>
 <tr><td>trzeci</td></tr>
</table>
Ilustracja do pytania
A. A.
B. B.
C. C.
D. D.
Hmm, niestety źle. Ale spoko, każdy czasem myli. Rysunki pokazują różne układy tabel, ale tylko rysunek C oddaje to, co masz w kodzie HTML. Zwłaszcza ważne jest tu użycie atrybutu rowspan='2', który sprawia, że komórka 'pierwszy' rozciąga się na dwa wiersze. W pierwszym wierszu jest 'drugi', a w drugim tylko 'trzeci', bo 'pierwszy' zajmuje już sporo miejsca. Może pomyliłeś rowspan z colspan? To drugie dotyczy kolumn, podczas gdy pierwsze to wiersze. Spróbuj jeszcze raz, mając to na uwadze. Zrozumienie układu tabeli w HTML jest kluczowe dla stworzenia fajnych stron.

Pytanie 25

Który atrybut pola <input> ogranicza maksymalną liczbę znaków, jaką można w nim wpisać?

A. value
B. maxlength
C. name
D. readonly
Atrybut maxlength ogranicza maksymalną liczbę znaków, jaką użytkownik może wpisać w pole tekstowe, np. <input type="text" maxlength="10"> pozwoli wprowadzić najwyżej 10 znaków. Przydaje się przy polach o ustalonej długości, takich jak kod pocztowy czy PESEL. Dlatego limit znaków ustala maxlength.

Pytanie 26

Która właściwość kontrolki w MS Access określa, skąd kontrolka pobiera wyświetlaną wartość?

A. Źródło kontrolki
B. Format
C. Nazwa
D. Widoczny
W MS Access to właściwość „Źródło kontrolki” (Control Source) określa, skąd kontrolka pobiera wyświetlaną wartość - np. z którego pola tabeli czy kwerendy. Dlatego decyduje o tym „Źródło kontrolki”.

Pytanie 27

Aby przekształcić obraz w formacie PNG tak, by jego tło stało się przezroczyste, wymagane jest

A. odpowiednie przycięcie.
B. dodanie kanału alfa.
C. ulepszenie nasycenia kolorów.
D. zapisanie go w formacie BMP.
Dodanie kanału alfa do obrazu w formacie PNG jest kluczowe dla uzyskania przezroczystego tła. Kanał alfa to dodatkowa warstwa informacji w obrazie, która definiuje przezroczystość każdego piksela. Dzięki niemu, obrazy PNG mogą przechowywać informacje o tym, które części obrazu są całkowicie przezroczyste, częściowo przezroczyste lub całkowicie nieprzezroczyste. To oznacza, że stosując kanał alfa, możemy tworzyć złożone efekty wizualne, takie jak cienie czy gradienty, które są nieosiągalne w formatach nieobsługujących przezroczystości, jak JPEG. W praktyce, dodanie kanału alfa można zrealizować w programach graficznych, takich jak Adobe Photoshop czy GIMP, za pomocą opcji 'Dodaj kanał alfa' w menu warstw. Umożliwia to edytowanie tła obrazu, eliminację niepożądanych elementów oraz integrację z różnymi tłem w dokumentach i stronach internetowych, co jest szczególnie istotne w projektowaniu graficznym i web designie. Zatem, znajomość obsługi kanału alfa oraz umiejętność pracy z formatem PNG są niezbędne dla profesjonalnych grafików w nowoczesnym środowisku projektowym.

Pytanie 28

Co można powiedzieć o wyświetlonym przez witrynę tekście "test kolorów"?

<p id="p1" style="color:blue;">test kolorów</p>
<button type="button"
  onclick="document.getElementById('p1').style.color='red'">
  test</button>
A. Po wciśnięciu przycisku test kolor tekstu jest czerwony.
B. Po wciśnięciu przycisku test kolor tekstu jest niebieski.
C. Wciskanie przycisku test sprawia, że kolor tekstu jest na przemian niebieski i czerwony.
D. Zaraz po załadowaniu witryny kolor tekstu jest czerwony.
Zauważyłem, że w kodzie HTML kolor tekstu na początku jest niebieski. Jest to ustawione w atrybucie style dla elementu o id='p1'. Po kliknięciu w przycisk, uruchamia się funkcja JavaScript, która zmienia kolor na czerwony. Ta funkcja jest przypisana w atrybucie onclick. Takie podejście to świetny sposób na interakcję użytkownika z witryną, korzystając ze skryptów JavaScript. Myślę, że to bardzo dobry przykład, który pokazuje, jak można robić interaktywne elementy na stronach. Wiedza na ten temat może pomóc lepiej zrozumieć, jak działają strony internetowe i co można zrobić z JavaScriptem.

Pytanie 29

Na tabeli dania, której wiersze zostały pokazane poniżej, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
63wierzbowy przysmak35
72Mintał w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 2
C. 8
D. 13
Twoja odpowiedź jest jak najbardziej trafna. To zapytanie SQL, które mamy, wybiera z tabeli 'dania' te wiersze, gdzie 'typ' jest mniejszy niż 3, a 'cena' nie przekracza 30. Wiem, że dodanie 'LIMIT 5' może wydawać się istotne, ale w tym przypadku tak naprawdę nie wpływa to na wynik, bo tylko jeden wiersz pasuje – danie 'Gazpacho'. Warto pamiętać, że w SQL, gdy używamy warunku 'WHERE', łączymy je z operatorem AND, co oznacza, że muszą być spełnione jednocześnie. Klauzula 'LIMIT' jest przydatna w różnych sytuacjach, ale tutaj, nawet z ograniczeniem do 5, i tak mamy tylko jeden wynik.

Pytanie 30

Która z definicji CSS określa formatowanie nagłówka h1: tekst nadkreślony, z odstępami między wyrazami 10 px i czerwonym kolorem tekstu?

h1{
  text-decoration: overline;
  word-spacing: 10px;
  color: red;
}                       A.

h1{
  text-decoration: overline;
  letter-spacing: 10px;
  color: red;
}                       B.

h1{
  text-transform: none;
  line-height: 10px;
  color: rgb(255,0,0);
}                       C.

h1{
  text-decoration: underline;
  line-height: 10px;
  color: rgb(255,0,0);
}                       D.
A. A.
B. B.
C. C.
D. D.
Brawo, poprawnie wybrałeś odpowiedź A, która pokazuje prawidłową definicję CSS do formatowania nagłówka h1. 'text-decoration: overline;' jest poleceniem CSS służącym do nadkreślania tekstu. Jest to styl tekstu, który dodaje linie nad literami. 'word-spacing: 10px;' jest poleceniem CSS, które określa odstępy między wyrazami. Wartościem tego polecenia jest odległość, która jest używana do określenia przestrzeni między słowami i jest wyrażona w pikselach. 'color: red;' jest standardowym poleceniem CSS do kolorowania tekstu. Czerwony jest jednym z podstawowych kolorów, które można wykorzystać w CSS. W praktyce, te trzy polecenia CSS mogą być używane do personalizacji strony internetowej, poprawiając jej wygląd i czytelność. Dobrą praktyką jest eksperymentowanie z różnymi stylami CSS, aby znaleźć najlepszy sposób prezentacji zawartości.

Pytanie 31

W CSS określono styl dla pola do edycji, które będzie miało tło w kolorze jasnozielonym po aktywacji.

input:focus { background-color: LightGreen; }
A. gdy jest to pierwsze użycie tego elementu w dokumencie
B. jeśli zostanie na nie najechane kursorem bez kliknięcia
C. po kliknięciu myszką w celu wprowadzenia tekstu
D. w każdej sytuacji
Typowe błędy myślowe prowadzące do niepoprawnych odpowiedzi często obejmują mylenie różnych stanów interakcji z elementami formularzy. Na przykład, odpowiedź sugerująca, że stylizowane tło zostaje aktywowane "gdy zostanie wskazane kursorem myszy bez kliknięcia" myli pojmowanie stanu focus z prostym najechaniem kursorem. W rzeczywistości, stan focus aktywuje się tylko w wyniku interakcji, takiej jak kliknięcie lub nawigacja za pomocą klawiatury. Kolejną nieścisłością jest stwierdzenie, że formatowanie ma zastosowanie "w każdym przypadku". Takie podejście nie uwzględnia faktu, że styl focus jest specyficzny dla interakcji użytkownika, a więc jego zastosowanie jest ograniczone do sytuacji, w których element jest aktywny. Warto zauważyć, że dobrze zaprojektowane formularze online powinny wykorzystywać zdarzenia focus i blur, aby dostarczać użytkownikom pomocnych wskazówek oraz ułatwić wprowadzanie danych. Ignorowanie tych koncepcji prowadzi do projektowania interfejsów, które nie są w pełni responsywne wobec potrzeb użytkowników. Dlatego zrozumienie różnicy między focus a zwykłym wskazaniem kursorem jest kluczowe dla tworzenia efektywnych i przyjaznych dla użytkownika aplikacji internetowych.

Pytanie 32

Podczas weryfikacji pliku HTML5 pojawił się komunikat brzmiący: "Error: Element head is missing a required instance of child element title". Co to oznacza w kontekście dokumentu?

A. element <title> nie jest konieczny.
B. element <title> nie został prawidłowo zamknięty przez </title>.
C. nie zdefiniowano elementu <title> w sekcji <head> dokumentu.
D. nie zdefiniowano obowiązkowego atrybutu title w tagu <img>.
Wybierając odpowiedzi, które wskazują na inne problemy z elementem <title>, możesz się trochę pogubić jeśli chodzi o podstawowe zasady HTML5. Pamiętaj, że ten element jest obowiązkowy, a jak go brakuje w sekcji <head>, to pojawia się błąd, który pokazuje, że nie wszystko się zgadza z zasadami HTML. Myślenie, że <title> nie jest wymagany, to duży błąd, bo każda strona powinna mieć ten element, żeby działała poprawnie w przeglądarkach i wyszukiwarkach. Też stwierdzenie, że <title> nie jest zamknięty przez </title>, może sugerować, że myślisz, że ten element mógłby być opcjonalny, co jest nieprawdziwe. Jeśli masz <title>, to musi być on poprawnie zdefiniowany i zamknięty. A pomijanie atrybutu title w znaczniku <img> może być mylące, bo ten atrybut dotyczy opisu obrazków, a to wcale nie jest związane z tytułem dokumentu. Pamiętaj, że brak atrybutu alt w <img> może powodować problemy z dostępnością, ale nie wpływa na walidację sekcji <head>. Ważne jest, żeby zrozumieć kontekst i rolę każdego elementu HTML w budowie strony.

Pytanie 33

W celu stylizacji strony internetowej stworzono odpowiednie reguły. Reguły te będą stosowane tylko do wybranych znaczników (np. niektóre nagłówki, kilka akapitów). W tej sytuacji, aby zastosować styl do kilku wybranych znaczników, najlepiej będzie użyć

{ text-align: right; }
A. klasy.
B. pseudoklasy.
C. identyfikatora.
D. selektora akapitu.
Zastosowanie pseudoklas, identyfikatorów czy selektorów akapitów w sytuacji, gdy potrzebujemy przypisać ten sam styl do różnych elementów, nie jest efektywnym rozwiązaniem. Pseudoklasy, takie jak :hover, :focus czy :nth-child, służą do stylizacji elementów w szczególnych stanach lub według ich pozycji w dokumencie. Nie są one przeznaczone do grupowego przypisywania stylów do wielu elementów, przez co ich użycie w tym kontekście obniża elastyczność i powtarzalność kodu. Identyfikatory, chociaż mogą przypisać unikalny styl do konkretnego elementu, są ograniczone do jednego miejsca w dokumencie HTML. Oznacza to, że ich użycie jest nieefektywne w kontekście wielokrotnego stylizowania, co jest sprzeczne z zasadami semantycznego HTML i CSS. Selektor akapitu, z kolei, odnosi się do elementów <p> i pozwala na stylizację tych elementów w sposób globalny, jednak nie pozwala na precyzyjne dostosowanie stylów do wybranych akapitów w sposób, w jaki może to zrobić klasa. Właściwe zrozumienie koncepcji klas w CSS stanowi podstawę efektywnej stylizacji dokumentów HTML, a ich niewłaściwe zastąpienie innymi metodami może prowadzić do złożonych, mniej czytelnych i trudnych w zarządzaniu arkuszy stylów.

Pytanie 34

Która technika rozwiązywania konfliktów w firmie bywa niebezpieczna i może ZAOSTRZYĆ konflikt?

A. arbitraż
B. separacja
C. kompromis
D. ignorowanie
Pozostałe metody aktywnie DĄŻĄ do rozwiązania, więc konfliktu nie podsycają. Arbitraż oddaje rozstrzygnięcie bezstronnemu rozjemcy, kompromis opiera się na wzajemnych ustępstwach, a separacja czasowo rozdziela strony, by ochłonęły. Te podejścia łagodzą spór, podczas gdy zaostrza go bierne ignorowanie.

Pytanie 35

Z uwagi na zaprezentowany styl CSS, plik rysunek.gif jest używany jako tło strony:

body {
    background-image: url("rysunek.gif");
    background-repeat: repeat-y;
}
A. w pionowym kierunku
B. w poziomym kierunku
C. zarówno w pionowym, jak i poziomym kierunku z kadrowaniem
D. zarówno w pionowym, jak i poziomym kierunku ze skalowaniem
Styl CSS określa `background-repeat: repeat-y;`, co oznacza, że obraz tła będzie powtarzany w osi pionowej. Wartość `repeat-y` jest odpowiedzialna za powtarzanie obrazu tylko w pionie, podczas gdy `repeat-x` powtarza w poziomie. Jeśli chcemy, aby obraz powtarzał się w obu kierunkach, używamy `repeat`, co jest domyślną wartością właściwości `background-repeat`. W praktyce zastosowanie tego stylu jest przydatne, gdy chcemy utworzyć efekt pasków lub pionowych wzorów na stronie internetowej, które zmieniają się dynamicznie wraz z wysokością zawartości. Warto zwrócić uwagę, że poprawna implementacja powtarzania tła w pionie może być wykorzystana do oszczędnego zarządzania zasobami, zwłaszcza gdy obraz tła jest niewielki, co wpływa na szybkość ładowania strony. W kontekście standardów, takie podejście jest zgodne z zaleceniami W3C, które promują optymalizację zasobów i efektywne zarządzanie mediami na stronach www.

Pytanie 36

Fragment kwerendy SQL zaprezentowany w ramce ma na celu uzyskanie

SELECT COUNT(wartosc) FROM ...
A. liczbę kolumn.
B. liczbę wierszy.
C. sumę wartości w kolumnie wartosc.
D. średnią wartość w kolumnie wartosc.
Instrukcja COUNT w kwerendzie SQL służy do zliczania liczby wierszy w tabeli, które spełniają określone kryteria. Wyrażenie SELECT COUNT(wartosc) FROM ... zlicza wiersze, które mają niepustą wartość w kolumnie wartosc. Funkcja COUNT jest jedną z funkcji agregujących w SQL, które pozwalają na wykonywanie operacji na zestawach danych. Zastosowanie tej funkcji jest szczególnie istotne w sytuacjach, gdy potrzebujemy szybko uzyskać informację o liczebności danych, co jest kluczowe w analizie danych oraz raportowaniu. Warto zauważyć, że COUNT(*) policzyłoby wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, natomiast COUNT(kolumna) ignoruje wiersze z wartościami NULL w podanej kolumnie. To rozróżnienie jest kluczowe w optymalizacji zapytań oraz w zapewnieniu dokładności wyników. W praktyce biznesowej, zliczanie wierszy może być wykorzystywane do śledzenia liczby zamówień, ilości produktów w magazynie oraz innych wskaźników operacyjnych, co sprawia, że funkcja COUNT jest podstawowym narzędziem każdego analityka danych.

Pytanie 37

Które polecenie MySQL służy do odebrania uprawnień użytkownikowi?

A.
GRANT
B.
CREATE
C.
REVOKE
D.
RENAME
Odebranie wcześniej nadanych uprawnień realizuje polecenie REVOKE, np. REVOKE INSERT ON baza.* FROM anna;. To przeciwieństwo GRANT, obie należą do grupy DCL (sterowanie dostępem). Zapamiętaj parę: GRANT daje, REVOKE odbiera.

Pytanie 38

W dokumentacji języka PHP znajduje się informacja dotycząca jednej z jego funkcji:
„Warning. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.”.
Zgodnie z tą informacją użycie tej funkcji jest:

A. niezalecane w wersji PHP 5.5.0 i dostępne od wersji 7.0.0.
B. przestarzałe od wersji PHP 5.5.0 i całkowicie usunięte w wersji 7.0.0.
C. niemożliwe w wersjach PHP 5.5.0 lub starszych i dostępne dopiero od wersji 7.0.0.
D. dostępne w wersjach PHP od 5.5.0 do 7.0.0 (włącznie) i niedostępne w innych wersjach.
Opis w dokumentacji PHP, że dane rozszerzenie „was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0”, ma bardzo konkretne znaczenie i jest częścią szerszej polityki utrzymania kompatybilności wstecznej. „Deprecated” nie oznacza ani wprowadzenia funkcji, ani jej czasowej dostępności między jakimiś wersjami, tylko etap przejściowy: funkcja jeszcze działa, ale jest już oznaczona jako przestarzała i przeznaczona do usunięcia w przyszłej głównej wersji języka. Typowym błędem myślowym jest traktowanie słowa „deprecated” jako „od tej wersji pojawia się funkcja” albo „od tej wersji zaleca się jej używanie”. Jest dokładnie odwrotnie – od tej wersji należy zacząć planować rezygnację z tej funkcji. Dlatego interpretacja, że coś jest „niezalecane w 5.5.0 i dostępne od 7.0.0” kompletnie nie trzyma się kupy, bo „removed in 7.0.0” znaczy fizyczne usunięcie, a nie udostępnienie. Innym częstym nieporozumieniem jest myślenie, że skoro pojawia się ostrzeżenie „deprecated”, to w starszych wersjach (np. 5.4, 5.3) ta funkcja nie istniała. W praktyce bardzo często jest tak, że funkcja działała od dawna, w 5.5 została oznaczona jako przestarzała, a dopiero w 7.0 znikła – więc stwierdzenie, że jest „niemożliwa w 5.5.0 lub starszych i dostępna dopiero od 7.0.0” odwraca chronologię do góry nogami. Pojawia się też błędne założenie, że komunikat określa dokładnie zakres wersji, w których funkcja jest dostępna, np. „od 5.5 do 7.0 włącznie”. Tymczasem słowo „removed” jasno wskazuje, że od podanej wersji w górę funkcji już nie ma. Dobry nawyk w pracy z PHP to: zawsze czytać dokładnie notki w dokumentacji, sprawdzać sekcję „Changelog” i traktować ostrzeżenia o przestarzałości jako sygnał do migracji kodu, a nie jako informację o dodaniu nowej funkcji. Z mojego doświadczenia niedokładne zrozumienie tych komunikatów kończy się tym, że po aktualizacji do PHP 7 lub 8 projekt nagle przestaje działać, bo opierał się na funkcjach formalnie wycofanych kilka lat wcześniej.

Pytanie 39

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

A.
pattern
B.
required
C.
autofocus
D.
placeholder
Atrybut placeholder wyświetla w pustym polu szary tekst podpowiedzi (zastępczy), który znika po rozpoczęciu pisania, np. <input placeholder="Wpisz e-mail">. To wskazówka, czego się oczekuje - nie myl jej z etykietą <label>. Zapamiętaj: „placeholder” = tekst-widmo w polu, sugerujący zawartość.

Pytanie 40

Grafik chce przekształcić bez utraty jakości obraz formatu JPEG w format PNG w ten sposób, żeby wszędzie tam, gdzie w pierwotnym obrazie jest kolor biały, w obrazie docelowym była przezroczystość. Aby to zrobić, powinien

A. dodać kanał alfa.
B. zmniejszyć rozdzielczość obrazu.
C. przekształcić obraz w odcienie szarości.
D. zaimportować obraz do edytora grafiki wektorowej.
W tym zadaniu łatwo wpaść w pułapkę myślenia, że cokolwiek zmieniającego obraz „optycznie” przybliży nas do przezroczystości, ale technicznie to tak nie działa. Przezroczystość w grafice rastrowej nie jest związana ani z rozdzielczością, ani z kolorem białym jako takim, tylko z obecnością specjalnego kanału opisującego alfa, czyli krycie. Jeśli obraz nie ma kanału alfa, każdy piksel jest po prostu w pełni nieprzezroczysty, bez względu na to, czy jest biały, czarny czy zielony. Zmniejszenie rozdzielczości wpływa jedynie na liczbę pikseli i szczegółowość obrazu. Można to traktować jako skalowanie w dół, co często powoduje dodatkowe rozmycie i spadek ostrości, ale nie pojawi się od tego żadna przezroczystość. Program nie ma powodu uznać, że po zmniejszeniu rozdzielczości białe piksele nagle staną się „dziurą” w obrazie. To są dalej normalne piksele RGB. Podobnie przekształcenie obrazu w odcienie szarości (grayscale) jedynie zmienia sposób kodowania koloru. Zamiast trzech składowych RGB używamy pojedynczej jasności, ale wciąż każdy piksel jest w pełni kryjący. Odcienie szarości są przydatne w obróbce artystycznej czy przy optymalizacji rozmiaru plików, ale nie mają nic wspólnego z dodaniem kanału alfa ani z wycinaniem tła. Częsty błąd polega na myleniu „białego tła” z przezroczystością – w wielu edytorach białe tło wygląda podobnie do szachownicy symbolizującej alfa, ale technicznie to zupełnie inna rzecz. Z kolei import do edytora grafiki wektorowej sam z siebie nie rozwiązuje problemu. Program wektorowy może co prawda osadzić rastrowy JPEG jako obiekt, ale on dalej pozostaje bitmapą bez kanału alfa. Przezroczystość można wtedy dodać dopiero po konwersji do formatu obsługującego alfa i odpowiedniej edycji. Sam fakt, że pracujemy w środowisku „wektorowym”, nie powoduje magicznego zniknięcia białego tła. Kluczowe jest zrozumienie, że o przezroczystości decyduje struktura danych obrazu (obecność kanału alfa), a nie to, jakiego typu program otworzy plik ani jaką ma on rozdzielczość czy tryb kolorów. Taki sposób myślenia bardzo pomaga przy pracy z grafiką na strony WWW i przy przygotowaniu elementów UI, gdzie przezroczystość jest standardem.