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: 16 kwietnia 2026 17:44
  • Data zakończenia: 16 kwietnia 2026 17:58

Egzamin zdany!

Wynik: 25/40 punktów (62,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Jakiego języka można użyć do nawiązania połączenia z bazą MySQL w trakcie tworzenia aplikacji internetowej?

A. PHP
B. CSS
C. XHTML
D. HTML
PHP to naprawdę fajny język skryptowy, który świetnie sprawdza się w tworzeniu dynamicznych aplikacji internetowych. Jest super efektywny, kiedy trzeba połączyć się z bazami danych, takimi jak MySQL. Jako język serwerowy, daje programistom narzędzia do robienia różnych rzeczy z danymi, jak dodawanie, edytowanie czy usuwanie rekordów w bazie. Na przykład, gdy tworzysz aplikację do zarządzania użytkownikami, możesz użyć PHP do obsługi formularza rejestracyjnego, który zbiera dane od użytkowników i następnie łączy się z MySQL, by je zapisać. Do łączenia z bazą danych używa się funkcji, jak mysqli_connect() lub PDO (PHP Data Objects), co pozwala na bezpieczne i sprawne zarządzanie połączeniami oraz zapytaniami SQL. Co ważne, PHP zachęca do dobrych praktyk, jak stosowanie przygotowanych zapytań, co mocno zwiększa bezpieczeństwo aplikacji, chroniąc przed różnymi atakami, jak SQL injection.

Pytanie 2

Spośród wymienionych formatów, który charakteryzuje się najszerszą rozpiętością tonalną?

A. PNG
B. JPEG
C. BMP
D. RAW
Odpowiedzi, które nie są poprawne, można analizować w kontekście ich technicznych ograniczeń. Format PNG, mimo że obsługuje przezroczystość i jest bezstratnym formatem, ma ograniczoną rozpiętość tonalną, co oznacza, że nie przechowuje tak dużej ilości informacji tonalnych jak RAW. Ponadto, jego główną funkcją jest przechowywanie obrazów z dużą ilością detali w mniej skomplikowanych kolorach, co czyni go mniej odpowiednim do profesjonalnej obróbki zdjęć w trudnych warunkach oświetleniowych. Format BMP, choć prosty i łatwy w użyciu, również nie wspiera zaawansowanej obróbki kolorów, a jego duża objętość plików powoduje, że nie jest praktyczny dla profesjonalnych zastosowań. BMP nie korzysta z kompresji, co sprawia, że pliki są znacznie większe niż w przypadku innych formatów, ale nie oferuje dodatkowych korzyści w zakresie tonalności. JPEG, pomimo szerokiego zastosowania w fotografii i sieci, jest formatem stratnym, co oznacza, że podczas kompresji traci część danych, a tym samym rozpiętość tonalna jest ograniczona. JPEG jest bardziej odpowiedni do codziennego użytku ze względu na mniejszy rozmiar plików, ale nie daje takiej elastyczności w edycji jak RAW, co czyni go niewłaściwym wyborem dla profesjonalnych fotografów poszukujących najwyższej jakości obrazu.

Pytanie 3

Wskaż blok sformatowany poniższym stylem CSS:

background: linear-gradient(to right, LightBlue, DarkBlue);
Ilustracja do pytania
A. Blok 3.
B. Blok 2.
C. Blok 1.
D. Blok 4.
Niestety, wybrana odpowiedź nie jest poprawna. Zrozumienie jak działają style CSS, zwłaszcza gradienty, jest kluczowe dla tworzenia atrakcyjnych stron internetowych. W stylach CSS, 'background: linear-gradient(to right, LightBlue, DarkBlue);' tworzy gradient liniowy, który przechodzi od koloru jasnoniebieskiego (LightBlue) do ciemnoniebieskiego (DarkBlue) od lewej do prawej strony. Ważnym aspektem jest zrozumienie, że gradient liniowy to płynne przejście kolorów wzdłuż linii prostej, co oznacza, że kolor tła danego elementu stopniowo zmienia się od jednego koloru do drugiego w określonym kierunku. Pomyłka mogła wynikać z niezrozumienia tego, jak działa gradient liniowy lub z błędnego zidentyfikowania kierunku gradientu. Pamiętaj, że kierunek gradientu może być określany za pomocą słów (jak 'to right') lub za pomocą stopni. Przykładowo, 'to right' odpowiada '90deg'. Spośród przedstawionych bloków, tylko Blok 2. ma gradient, który przechodzi poziomo od jasnoniebieskiego do ciemnoniebieskiego, co oznacza, że jest on sformatowany zgodnie z podanym stylem CSS.

Pytanie 4

Przy użyciu polecenia ALTER TABLE można

A. usuwać tabelę
B. zmieniać strukturę tabeli
C. zmieniać wartości zapisane w rekordach tabeli
D. tworzyć nową tabelę
Polecenie ALTER TABLE jest kluczowym narzędziem w zarządzaniu bazami danych, pozwalającym na modyfikację struktury istniejących tabel. Umożliwia m.in. dodawanie, usuwanie lub modyfikowanie kolumn, a także zmianę ich typów danych. Na przykład, aby dodać nową kolumnę do tabeli, można użyć polecenia: ALTER TABLE nazwa_tabeli ADD nowa_kolumna typ_danych. W praktyce, ALTER TABLE jest niezbędne w przypadku zmiany wymagań aplikacji, które mogą wymagać dostosowania struktury bazy danych. Zmiany strukturalne powinny być przeprowadzane zgodnie z zasadami normalizacji, co zapewnia optymalizację bazy danych oraz zapobiega redundancji danych. Kluczowe jest również testowanie wprowadzonych zmian w środowisku testowym przed ich wdrożeniem w produkcji, co jest zgodne z najlepszymi praktykami w inżynierii oprogramowania. Warto również pamiętać, że podczas modyfikacji struktury tabeli, odpowiednie zrozumienie relacji między tabelami jest istotne dla zachowania integralności danych.

Pytanie 5

Który z grafikowych formatów umożliwia zapis przezroczystego tła?

A. GIF
B. BMP
C. JPEG
D. RAW
RAW to format, który przechowuje dane obrazu w formie nieprzetworzonej, co oznacza, że nie zawiera informacji o przejrzystości. Pliki RAW są wykorzystywane głównie w profesjonalnej fotografii, gdzie istotne jest zachowanie jak największej ilości szczegółów w obrazie, jednak nie oferują one żadnej funkcji przejrzystości, co czyni je nieodpowiednimi do zastosowań, gdzie przezroczystość tła jest kluczowa. BMP (Bitmap) to kolejny format, który nie wspiera przezroczystości. Jest to format bezstratny, który przechowuje szczegółowe informacje o każdym pikselu, ale nie umożliwia określenia żadnego koloru jako przezroczystego. BMP jest szeroko stosowany w aplikacjach graficznych, jednak jego duża objętość plików oraz brak wsparcia dla przezroczystości ogranicza jego zastosowanie w sieci. JPEG to format skompresowany, który również nie obsługuje przejrzystości. Chociaż JPEG jest świetny do przechowywania zdjęć ze względu na jego zdolność do kompresji z zachowaniem jakości, nie jest w stanie zapisać informacji o przezroczystości, co czyni go mało użytecznym w sytuacjach, w których wymagane jest zastosowanie przezroczystego tła. W związku z tym, dla projektów wymagających przezroczystości, format GIF pozostaje najlepszym wyborem.

Pytanie 6

Na podstawie przypisania wartości do zmiennych zapisanych w języku PHP można stwierdzić, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna1 i zmienna2 są tego samego typu.
B. zmienna2 i zmienna3 są tego samego typu.
C. Wszystkie zmienne są tego samego typu.
D. zmienna1 i zmienna3 są tego samego typu.
Gratulacje! Wybrałeś poprawną odpowiedź, czyli zmienna2 i zmienna3 są tych samych typów. W kodzie PHP wartość zmiennej1 była liczbą całkowitą (int), natomiast wartość zmiennej2 była ciągiem znaków (string). Zmienna3 natomiast była wynikiem rzutowania zmiennej1 na typ string. Stąd wynika, że zmienna2 i zmienna3 są obie typu string. Rzutowanie to operacja konwersji jednego typu danych na inny, co jest powszechną praktyką w programowaniu. Używane jest, na przykład, kiedy chcemy porównać dwa różne typy danych lub chcemy je połączyć. Pamiętaj jednak, że PHP jest językiem o dynamicznych typach, co oznacza, że typ zmiennej może ulec zmianie w trakcie wykonania skryptu. Dlatego zawsze warto mieć na uwadze typy zmiennych, z którymi pracujesz.

Pytanie 7

Znacznik <ins> w HTML jest używany do wskazywania

A. tekstu, który został usunięty
B. cytowanego fragmentu tekstu
C. tekstu, który został przeformatowany
D. tekstu, który został dodany
Wybierając błędne odpowiedzi, pokazujesz, że coś może być niejasne, jeśli chodzi o znaczniki HTML. Na przykład, myślenie, że <ins> to znacznik do oznaczania cytatów, to pomyłka. Do tego zadania służy <blockquote> albo <q>, które mają swoje własne, zupełnie inne znaczenie. Jeśli wybrałeś opcję mówiącą o oznaczaniu usuniętego tekstu, to też jest błąd, bo do tego mamy znacznik <del>. A użycie <ins> w kontekście zmiany formatu tekstu to jeszcze jedna pomyłka, bo ten znacznik nie mówi nic o formatowaniu. Tak naprawdę, <ins> tylko wskazuje nowe fragmenty tekstu, a nie zmienia ich stylu. Jeżeli nie rozumiesz tych funkcji różnych znaczników HTML, to łatwo można wpaść w pułapkę błędów w kodzie, co później będzie miało wpływ na semantykę stron oraz ich dostępność. Dlatego tak ważne jest, żeby znać różnice między tymi znacznikami i korzystać z nich, jak należy.

Pytanie 8

Jeżeli założymy, że zmienne: a, b, c mają wartości liczbowe, wynikiem spełnienia warunku będzie wyświetlenie liczby

if ($a > $b && $a > $c)
echo $a;
else if ($b > $c)
echo $b;
else
echo $c;
A. największej
B. najmniejszej
C. parzystej
D. nieparzystej
Prawidłowa odpowiedź, czyli największa liczba jest wynikiem analizy warunku, który sprawdza wartość zmiennych a, b i c. Wykorzystujemy tutaj strukturę warunkową if-else, co jest standardową techniką w wielu językach programowania, takich jak PHP czy JavaScript. Przy pierwszej linijce kodu if ($a > $b && $a > $c) echo $a sprawdzamy, czy a jest większe od b i jednocześnie większe od c. Jeśli warunek jest spełniony, wypisujemy wartość a, co oznacza, że a jest największa. Jest to zgodne z dobrą praktyką algorytmiczną, gdzie przy porównywaniu trzech wartości dokładne warunki logiczne pomagają w ustaleniu największej z nich. Struktura ta jest wydajna i łatwa do zrozumienia. Praktycznym zastosowaniem może być np. system oceniania, gdzie na podstawie kilku wyników wybieramy ten najwyższy do dalszej analizy. Prawidłowe rozpoznawanie i implementowanie takich warunków jest kluczowe w codziennej pracy programisty, który musi regularnie wybierać największe wartości do różnych zastosowań biznesowych.

Pytanie 9

Jak można utworzyć kopię zapasową bazy danych MySQL?

A. agregowaniem danych
B. eksportowaniem bazy
C. importowaniem bazy
D. modyfikowaniem danych
Eksport bazy danych MySQL to proces, który pozwala na tworzenie kopii zapasowych danych znajdujących się w bazie. Narzędzie do eksportu, takie jak mysqldump, umożliwia nie tylko zapisanie danych w formacie SQL, ale także w innych formatach, takich jak CSV czy JSON. Eksport jest kluczowy w przypadku migracji danych pomiędzy różnymi środowiskami baz danych lub w sytuacji, gdy zachodzi potrzeba odzyskania danych po awarii. Proces ten można zautomatyzować, korzystając z harmonogramów zadań (cron), co zapewnia regularne tworzenie kopii zapasowych. Zgodnie z najlepszymi praktykami, zaleca się, aby eksportować bazy danych regularnie oraz przechowywać kopie zapasowe w bezpiecznych lokalizacjach, aby zminimalizować ryzyko utraty danych. Standardy takie jak ISO 27001 podkreślają znaczenie odpowiednich procedur zarządzania danymi, w tym tworzenia kopii zapasowych, co czyni eksportu kluczowym elementem strategii ochrony danych w organizacjach.

Pytanie 10

W wyniku przedstawionego polecenia w tabeli zostanie ```ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;```

A. zmieniona kolumna z nazwa1 na nazwa2
B. zmieniony typ kolumny nazwa2 na DOUBLE
C. dodana kolumna nazwa2 z wymuszoną wartością DOUBLE
D. dodana kolumna nazwa2 o typie zmiennoprzecinkowym
Odpowiedź numer 3 jest prawidłowa, ponieważ zapytanie SQL "ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;" definiuje dodanie nowej kolumny o nazwie "nazwa2" do istniejącej tabeli "nazwa1". Typ danych DOUBLE oznacza, że kolumna ta będzie mogła przechowywać liczby zmiennoprzecinkowe, co jest przydatne w przypadku danych wymagających wysokiej precyzji, takich jak wartości finansowe czy pomiary naukowe. Oprócz tego, klauzula "NOT NULL" oznacza, że w kolumnie nie mogą znajdować się żadne wartości NULL, co jest istotne dla zapewnienia integralności danych. W praktyce, dodawanie kolumn w bazach danych jest często używane do wzbogacania istniejących struktur danych, aby dostosować je do zmieniających się wymagań aplikacji. Dobrą praktyką jest również odpowiednie indeksowanie nowych kolumn, aby zwiększyć wydajność zapytań, które będą z nich korzystały. W kontekście standardów, ważne jest, aby zmiany w strukturze tabeli były wprowadzane w sposób, który nie wpływa negatywnie na istniejące dane i aplikacje.

Pytanie 11

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

A. p {line-indent: 30px;}
B. p {text-spacing: 30px;}
C. p {line-height: 30px;}
D. p {text-indent: 30px;}
Pierwsza z odpowiedzi, p {line-height: 30px;}, odnosi się do interlinii, czyli przestrzeni między poszczególnymi liniami tekstu. Ustawienie line-height na 30 pikseli wpłynie na odległość między liniami, ale nie wprowadzi wcięcia, co jest kluczowe w przypadku tego pytania. Użytkownicy często mylą te właściwości, co prowadzi do nieporozumień w zakresie formatowania tekstu. Druga odpowiedź, p {text-spacing: 30px;}, jest błędna, ponieważ text-spacing nie jest standardową właściwością CSS. CSS nie definiuje takiej właściwości, co może prowadzić do frustracji podczas pracy nad stylizacją dokumentów. W przypadku trzeciej odpowiedzi, p {line-indent: 30px;}, również nie jest to poprawne podejście, gdyż line-indent nie jest uznawane za standardową właściwość CSS, więc jego zastosowanie nie przyniesie oczekiwanych efektów. Typowym błędem jest zakładanie, że każda właściwość związana z tekstem może być zastosowana w podobny sposób, co prowadzi do niepoprawnych wyników. Kluczowe jest zrozumienie różnicy między właściwościami, takimi jak line-height, text-indent i inne, aby skutecznie stylizować tekst na stronach internetowych.

Pytanie 12

Jakiego typu danych w bazie MySQL należy używać, aby zapisać datę oraz czas w jednym polu?

A. BOOLEAN
B. YEAR
C. TIMESTAMP
D. DATE
Wybór błędnych typów danych do przechowywania daty i czasu w MySQL może prowadzić do poważnych problemów w aplikacjach. Typ danych DATE jest zaprojektowany jedynie do przechowywania dat bez informacji o czasie, co oznacza, że nie nadaje się do sytuacji, gdzie potrzebne są dokładne informacje co do godzin i minut. Użycie DATE w tym kontekście ogranicza możliwości analizy danych związanych z czasem, na przykład w przypadku zapisywania logów zdarzeń, gdzie istotne jest zarówno data, jak i godzina wystąpienia. Z kolei typ YEAR jest jeszcze bardziej ograniczony, ponieważ pozwala na przechowywanie tylko informacji o roku. Takie podejście jest niewystarczające w większości przypadków, gdzie pełna data i czas są wymagane do prawidłowego zarządzania danymi. Typ BOOLEAN, który ma tylko dwa stany (prawda/fałsz), również nie jest odpowiedni do przechowywania daty i czasu, co jest absolutnie nieadekwatne do tego celu. Wybór niewłaściwego typu danych często wynika z braku zrozumienia, jak ważne jest precyzyjne określenie wymagań dotyczących danych w danym kontekście. Używanie typów danych, które nie są dostosowane do specyficznych potrzeb aplikacji, może prowadzić do błędów, utraty danych oraz trudności w przyszłych aktualizacjach i rozbudowach systemów.

Pytanie 13

Jakiego wyniku można się spodziewać po wykonaniu zapytania na przedstawionej tabeli?

SELECTCOUNT(DISTINCT wykonawca)
FROM`muzyka`;
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. 4
B. 3
C. 1
D. 0
Zapytanie SQL SELECT COUNT(DISTINCT wykonawca) FROM muzyka; służy do zliczenia unikalnych wartości w kolumnie wykonawca w tabeli muzyka. W kontekście dostarczonej tabeli istnieje trzech różnych wykonawców: Czesław Niemen Stan Borys i Mikołaj Czechowski. Funkcja COUNT w połączeniu z DISTINCT pozwala na zliczenie jedynie unikalnych wystąpień wartości co oznacza że pomimo dwukrotnego wystąpienia Czesława Niemena zostanie on policzony tylko raz. Takie podejście jest kluczowe w analizie danych gdzie istotne jest rozważenie jedynie niepowtarzających się wartości na przykład w analizach raportów dotyczących różnorodności portfolio wykonawców w wytwórni muzycznej. Dobre praktyki w SQL zalecają użycie DISTINCT w sytuacjach wymagających precyzyjnego określenia różnorodności danych w kolumnie co nie tylko wspiera dokładność analiz ale również optymalizuje wydajność zapytań poprzez redukcję ilości danych do przetworzenia. Zrozumienie tego mechanizmu jest istotne w zarządzaniu bazami danych oraz w analizach biznesowych.

Pytanie 14

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. nazwa to pole klasy przedmiot.
B. nazwa to właściwość obiektu przedmiot.
C. zmienna x będzie przechowywać wynik działania metody nazwa.
D. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
Rozważając inne proponowane odpowiedzi, należy zrozumieć, że język JavaScript często wykorzystuje programowanie obiektowe, gdzie właściwości i metody obiektów różnią się w użyciu. Pierwsza opcja sugeruje, że nazwa jest właściwością obiektu przedmiot, co jest błędne w kontekście przedstawionego kodu, ponieważ użyto nawiasów okrągłych, co jednoznacznie wskazuje na wywołanie metody, a nie na odwołanie się do właściwości. Druga opcja mówi o nazwie jako polu klasy przedmiot, co jest mylące, ponieważ w JavaScript nie istnieje formalny podział na pola i metody w taki sposób, jak w statycznie typowanych językach jak Java czy C++. JavaScript, jako język dynamiczny, używa właściwości obiektu do przechowywania zarówno danych, jak i funkcji. Czwarta propozycja, że zmienna x będzie przechowywać wynik działania funkcji przedmiot, również jest błędna, ponieważ w kodzie widzimy wywołanie metody nazwa() na obiekcie przedmiot, a nie wywołanie funkcji przedmiot. Typowe błędy myślowe mogą wynikać z niewłaściwego rozróżnienia między funkcjami i metodami, czy też z niepoprawnego przypisywania ról poszczególnym elementom składni w dynamicznie typowanych językach, co prowadzi do nieporozumień w kontekście konwencji programistycznych stosowanych w JavaScript.

Pytanie 15

Który efekt został zaprezentowany na filmie?

A. Przenikanie zdjęć.
B. Zmniejszenie kontrastu zdjęcia.
C. Zwiększenie ostrości zdjęcia.
D. Zmiana jasności zdjęć.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 16

W załączonym kodzie CSS, kolor został zapisany w formacie

color: #008000;
A. dziesiętnej
B. szesnastkowej
C. HSL
D. CMYK
W CSS kolory często zapisywane są w postaci szesnastkowej ponieważ jest to krótki i precyzyjny sposób definiowania koloru. Kod szesnastkowy składa się zazwyczaj z sześciu znaków poprzedzonych znakiem hash (#) gdzie pierwsze dwa znaki odpowiadają czerwonej składowej następne dwa zielonej a ostatnie dwa niebieskiej. Na przykład #008000 oznacza kolor zielony gdzie czerwona składowa wynosi 0 zielona 128 a niebieska 0. Wartości te są zapisane w systemie szesnastkowym co oznacza że mogą przyjmować wartości od 00 do FF odpowiadające wartościom dziesiętnym od 0 do 255. Korzystanie z formatu szesnastkowego jest powszechnie uznawane za dobrą praktykę w web designie ponieważ jest szeroko wspierane przez przeglądarki internetowe i umożliwia łatwe definiowanie szerokiej gamy kolorów. Dzięki swojej zwięzłości i jednoznaczności jest preferowane w projektach gdzie każda linijka kodu ma znaczenie. Przy wyborze koloru warto korzystać z narzędzi które mogą pomóc w konwersji wartości RGB na szesnastkowe co ułatwia dokładne odwzorowanie wybranych kolorów

Pytanie 17

Który z elementów jest opcjonalny w kodzie HTML5 i jego pominięcie nie spowoduje wygenerowania błędu lub ostrzeżenia walidatora HTML?

A. <meta name="keywords" content="">
B. <html lang="pl">
C. <title>Tytuł strony</title>
D. <!DOCTYPE html>
Poprawnie – właśnie znacznik meta z atrybutem name="keywords" jest w HTML5 całkowicie opcjonalny i jego brak nie powoduje żadnych błędów walidacji. Ten element był kiedyś używany głównie do pozycjonowania stron w wyszukiwarkach, ale w aktualnych wytycznych SEO praktycznie wszystkie większe wyszukiwarki (Google, Bing itd.) ignorują meta keywords. Z punktu widzenia specyfikacji HTML5 jest to zwykły, opcjonalny metatag: możesz go użyć, ale w żaden sposób nie jest wymagany do poprawnej struktury dokumentu. Validator W3C nie zgłasza ostrzeżeń, jeśli go nie ma, bo nie jest to element strukturalny, tylko dodatkowa informacja opisowa. W praktyce, w nowoczesnych projektach webowych, meta name="keywords" często się po prostu pomija. Dużo ważniejsze są inne meta tagi, np. meta charset, meta name="viewport" dla responsywności czy meta name="description", która jest używana w wynikach wyszukiwania. Możesz mieć całkowicie poprawny, walidujący się dokument HTML5 zaczynający się od <!DOCTYPE html>, z elementem html z atrybutem lang, poprawnie zdefiniowaną sekcją head z tytułem strony i bez ani jednego meta keywords – i to jest jak najbardziej zgodne ze standardem. Moim zdaniem dobrze jest znać historię tego znacznika: kiedyś nauczyciele i różne stare kursy mocno go promowały, dlatego wciąż pojawia się w kodzie. Ale w aktualnych projektach lepiej skupić się na semantycznym HTML, dostępności (ARIA, poprawne nagłówki), porządnych opisach w meta description i na poprawnej strukturze dokumentu. Meta keywords możesz traktować jako ciekawostkę z dawnych czasów, a nie obowiązkowy element kodu.

Pytanie 18

Która z poniżej wymienionych zasad nie przyczyni się do poprawy czytelności kodu?

A. Nazwy zmiennych muszą odzwierciedlać ich funkcję
B. W każdej linii kodu powinna znaleźć się tylko jedna komenda
C. Kod powinien być napisany bez wcięć i nadmiarowych enterów
D. Trzeba dodawać komentarze w trudniejszych fragmentach kodu
Wszystkie informacje zawarte w nietrafnych odpowiedziach błędnie przedstawiają zasady dobrej praktyki programowania, które są kluczowe dla zwiększenia czytelności kodu. Istnienie tylko jednej instrukcji w każdej linii kodu jest zasady, która nie tylko nie jest uniwersalna, ale może prowadzić do nadmiernego rozdrobnienia logiki programu, utrudniając jego analizę. Z kolei użycie zrozumiałych nazw zmiennych jest istotne, ponieważ pozwala innym programistom zrozumieć, co dana zmienna reprezentuje. Przykładowo, nazwa "liczbaStudentów" jest o wiele bardziej informacyjna niż "x". Ponadto, wprowadzenie komentarzy w trudnych częściach kodu nie tylko pomaga w wyjaśnieniu skomplikowanych zagadnień, ale również pełni rolę dokumentacji, co jest niezwykle ważne w dłuższej perspektywie czasowej, zwłaszcza w projektach zespołowych. Przykładem mogą być fragmenty kodu, gdzie skomplikowane algorytmy wymagają dodatkowych wyjaśnień. Komentarze ułatwiają innym zrozumienie myśli programisty. W związku z tym, ignorowanie zasad dotyczących wcięć, zbędnych enterów oraz używania komentarzy prowadzi do kodu, który jest trudny do zrozumienia, co w ostateczności może skutkować błędami w implementacji oraz dłuższym czasem potrzebnym na debugowanie.

Pytanie 19

Jakie z poniższych stwierdzeń właściwie opisuje tabelę utworzoną przez: CREATE TABLE dane (kolumna INTEGER(3));

A. Tabela zawiera jedną kolumnę, która składa się z trzyelementowych tablic
B. Kolumny w tabeli dane nazywają się: kolumna1, kolumna2, kolumna3
C. Tabela o nazwie dane zawiera trzy kolumny typu liczb całkowitych
D. Tabela o nazwie dane ma jedną kolumnę typu liczb całkowitych
Wszystkie stwierdzenia w pozostałych odpowiedziach są błędne, ponieważ opierają się na niewłaściwym zrozumieniu definicji tabeli w SQL. Twierdzenie, że tabela posiada jedną kolumnę zawierającą trzy elementowe tablice, jest mylące, ponieważ w SQL nie definiuje się kolumn jako tablic. W systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL, czy Oracle, kolumny są jednostkami przechowującymi pojedyncze wartości, a nie struktury złożone jak tablice. Innym błędnym założeniem jest twierdzenie, że kolumny tabeli dane nazywają się kolumna1, kolumna2, kolumna3; w rzeczywistości, tabela posiada jedną kolumnę o nazwie 'kolumna', co jest jasno określone w definicji. Ostatnia nieprawidłowa odpowiedź sugerująca, że tabela ma trzy kolumny jest również nieprawdziwa, ponieważ jest tylko jedna kolumna. Przy definiowaniu tabel w SQL kluczowe jest przestrzeganie zasad dotyczących struktury danych oraz ich odpowiedniej nazwy, co ma fundamentalne znaczenie dla późniejszego korzystania z tych danych. Zrozumienie tych zasad oraz ich praktyczne zastosowanie w pracy z bazami danych pozwala na unikanie typowych błędów i poprawne projektowanie struktur baz danych.

Pytanie 20

Jakiego ograniczenia (constraint) używa się do zdefiniowania klucza obcego?

A. AUTO_INCREMENT(ID)
B. FOREIGN KEY(ID)
C. PRIMARY KEY(ID)
D. UNIQUE KEY(ID)
Odpowiedź 'FOREIGN KEY(ID)' jest poprawna, ponieważ klucz obcy służy do definiowania relacji między tabelami w bazach danych. Klucz obcy to atrybut lub zestaw atrybutów w jednej tabeli, który odnosi się do klucza głównego innej tabeli. Przykładowo, w bazie danych, która obsługuje system zarządzania zamówieniami, tabela 'Zamówienia' może zawierać kolumnę 'KlientID', będącą kluczem obcym odnoszącym się do kolumny 'ID' w tabeli 'Klienci'. Użycie kluczy obcych pozwala na zapewnienie integralności referencyjnej, co oznacza, że każdy wpis w tabeli 'Zamówienia' musi odpowiadać istniejącemu klientowi w tabeli 'Klienci'. Dobrym praktykom w projektowaniu baz danych jest stosowanie kluczy obcych jako sposobu na unikanie niezgodności danych oraz na umożliwienie wykonywania zapytań z wykorzystaniem JOIN, co ułatwia uzyskiwanie skonsolidowanych informacji z różnych tabel. Ponadto, w przypadku usunięcia lub aktualizacji rekordów w tabeli źródłowej, można skonfigurować odpowiednie zasady, takie jak 'CASCADE', które automatycznie zaktualizują powiązane dane w tabeli docelowej, co jest istotne dla zachowania spójności danych.

Pytanie 21

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 numer, wartosc FROM faktury WHERE data=CURRENT_DATE();
B. SELECT numer, wartość FROM faktury;
C. SELECT * FROM faktury;
D. SELECT * 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 22

Domyślna CAPTCHA
CAPTCHA - reCAPTCHA

W CMS Joomla! opcja konfiguracji globalnej, pokazana na ilustracji, służy do
A. wyświetlenia okna umożliwiającego wyszukiwanie tekstu na stronie.
B. wyświetlania okna informującego o zgodzie użytkownika na pliki cookie.
C. zapobiegania atakom typu SQL Injection.
D. dopuszczenia do przesyłania danych z formularzy wypełnionych tylko przez człowieka.
Opcja pokazana na zrzucie w Joomla! dotyczy domyślnej CAPTCHA, czyli mechanizmu weryfikującego, czy formularz wypełnia człowiek, a nie automat (bot). W praktyce, gdy w konfiguracji globalnej wybierzesz np. „CAPTCHA – reCAPTCHA”, Joomla! będzie mogła używać tego mechanizmu we wszystkich formularzach, które potrafią z CAPTCHA współpracować, np. formularz rejestracji użytkownika, formularz kontaktowy, czasem logowanie czy dodawanie komentarzy w rozszerzeniach. CAPTCHA działa tak, że dodaje do formularza dodatkowy krok: użytkownik musi zaznaczyć odpowiednie pole („Nie jestem robotem”) albo rozwiązać proste zadanie typu rozpoznanie obrazków. Po stronie serwera (tu: Joomla! + Google reCAPTCHA) sprawdzany jest specjalny token. Jeżeli token jest poprawny, dane z formularza są przyjmowane. Jeżeli nie – formularz jest odrzucany. Dzięki temu znacząco ogranicza się spam, masowe rejestracje fałszywych kont i automatyczne wysyłki z formularzy. Moim zdaniem w każdym publicznym formularzu, szczególnie na stronach firmowych czy szkolnych, warto mieć poprawnie skonfigurowaną CAPTCHA. To jest jeden z podstawowych elementów dobrych praktyk bezpieczeństwa aplikacji webowych – obok filtrowania danych, ograniczania liczby żądań czy stosowania firewalli aplikacyjnych (WAF). Sama CAPTCHA nie zastąpi innych zabezpieczeń, ale bardzo skutecznie zmniejsza liczbę automatycznych ataków i spamu. W Joomla! konfiguracja globalna jest o tyle wygodna, że ustawiasz raz domyślny typ CAPTCHA, a potem w poszczególnych komponentach (np. „Użytkownicy”, „Kontakty”) tylko zaznaczasz, że chcesz jej używać. W praktyce oznacza to, że formularze będą przyjmować dane tylko wtedy, gdy człowiek poprawnie przejdzie test CAPTCHA – dokładnie tak, jak opisuje poprawna odpowiedź.

Pytanie 23

Jakiego języka można użyć do obsługi połączenia z bazą danych MySQL podczas rozwijania aplikacji webowej?

A. PHP
B. HTML
C. XHTML
D. CSS
PHP jest językiem skryptowym, który jest szeroko stosowany do tworzenia dynamicznych aplikacji internetowych, a jego zdolność do interakcji z bazami danych, takimi jak MySQL, czyni go idealnym narzędziem do obsługi połączeń z bazą danych. PHP umożliwia programistom wysyłanie zapytań SQL do bazy danych, wykonywanie operacji CRUD (tworzenie, odczyt, aktualizacja, usuwanie) oraz przetwarzanie wyników, co jest kluczowe w nowoczesnym tworzeniu aplikacji webowych. Przykładowy kod PHP do nawiązania połączenia z bazą danych MySQL może wyglądać następująco: $conn = new mysqli('localhost', 'username', 'password', 'database');. W przypadku niepowodzenia połączenia, można użyć if ($conn->connect_error) { die('Connection failed: ' . $conn->connect_error); }. PHP wspiera również różne techniki zabezpieczeń, takie jak przygotowywanie zapytań, co znacząco zwiększa bezpieczeństwo aplikacji przed atakami typu SQL Injection. Dokumentacja PHP oraz standardy, takie jak PSR (PHP Standards Recommendations), dostarczają programistom niezbędnych wytycznych, aby tworzyć wydajne i bezpieczne aplikacje. Dzięki swojej elastyczności i wszechstronności, PHP stał się językiem pierwszego wyboru dla programistów zajmujących się tworzeniem aplikacji internetowych z interfejsem do baz danych.

Pytanie 24

W tabeli mieszkańcy zawierającej pola id, imie, nazwisko, ulica, numer, czynsz (wartość całkowita) należy zidentyfikować osoby zamieszkujące ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz jest niższy niż
1000 zł. Jak będzie wyglądać klauzula WHERE w zapytaniu?

A. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000
B. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000
C. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000
D. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000
Odpowiedź jest prawidłowa, ponieważ klauzula WHERE w zapytaniu SQL skutecznie filtruje dane zgodnie z wymaganiami. W tym przypadku, użycie operatora AND w połączeniu z IN i warunkiem < 1000 zapewnia, że zwrócone zostaną jedynie te rekordy, które spełniają wszystkie trzy kryteria: ulica musi być 'Mickiewicza', numer musi być jednym z 71, 72 lub 80, a czynsz musi być mniejszy niż 1000 zł. To jest zgodne z dobrą praktyką w SQL, gdzie łączenie warunków z użyciem operatorów logicznych pozwala na precyzyjne określenie zestawu danych, które nas interesują. Przy tak skonstruowanej klauzuli, zapytanie będzie wydajne i zrozumiałe, co jest kluczowe w pracy z bazami danych. Przykładowe zastosowanie to generowanie raportów dotyczących mieszkańców, co może być istotne dla zarządzania nieruchomościami lub analizy rynku wynajmu. Tego typu zapytania są powszechnie używane w aplikacjach webowych i systemach zarządzania danymi, co podkreśla znaczenie umiejętności formułowania precyzyjnych zapytań SQL.

Pytanie 25

Warunek zapisany w języku PHP wyświetli liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest to liczba pierwsza
B. jest to liczba dodatnia
C. jest to liczba parzysta
D. wynik dzielenia danej liczby przez 2 jest równy 0
Odpowiedź jest prawidłowa ponieważ wyrażenie $liczba % 2 == 0 w języku PHP wykorzystuje operator reszty z dzielenia który sprawdza czy liczba po podzieleniu przez 2 ma resztę równą zero. Taki warunek jest spełniony wyłącznie dla liczb parzystych które z definicji dzielą się bez reszty przez 2. W programowaniu rozpoznawanie liczb parzystych jest często stosowane w algorytmach które wymagają specyficznego przetwarzania danych takich jak sortowanie czy filtrowanie. Warto również zauważyć że używanie operatora modulo (%) w takich przypadkach jest uznawane za dobrą praktykę branżową ze względu na jego czytelność i efektywność. Przykładem praktycznego zastosowania może być np. generowanie naprzemiennego koloru tła w tabelach aby zwiększyć ich czytelność co jest powszechnie stosowane w aplikacjach webowych. Zrozumienie tego konceptu jest fundamentalne w programowaniu ponieważ pozwala na tworzenie bardziej dynamicznych i elastycznych aplikacji które potrafią reagować na różne stany danych.

Pytanie 26

Jakie znaczniki <header>, <article>, <section>, <footer> są typowe dla języka

A. style="margin-bottom: 0cm;">HTML 5
B. HTML 4.01 Transitional
C. style="margin-bottom: 0cm;">XHTML 1.1
D. style="margin-bottom: 0cm;">HTML 4.01 Strict
Wybierając XHTML 1.1, HTML 4.01 Strict lub HTML 4.01 Transitional, można nie dostrzegać kluczowych różnic między tymi standardami a HTML5. XHTML 1.1 jest bardziej restrykcyjną wersją HTML, która wprowadza zasady XML, co skutkuje tym, że wszystkie elementy muszą być poprawnie zagnieżdżone i zamknięte. Choć XHTML wprowadza pewne nowe możliwości, nie oferuje semantycznych znaczników, które są dostępne w HTML5, co ogranicza jego użyteczność w kontekście nowoczesnych aplikacji webowych. HTML 4.01 Strict i HTML 4.01 Transitional to starsze standardy, które również nie zawierają semantycznych znaczników. Standard Strict wymagał ścisłego przestrzegania reguł HTML, co mogło być uciążliwe dla deweloperów, natomiast Transitional wprowadzał pewne elementy przestarzałe, co nie sprzyjało dążeniu do czystego i nowoczesnego kodu. Użycie starszych standardów skutkuje brakiem możliwości implementacji nowoczesnych funkcji i ogranicza dostępność treści dla użytkowników oraz robotów wyszukiwarek. W związku z tym, opieranie się na tych technologiach jest nieadekwatne w kontekście obecnych wymagań webowych, które preferują semantykę, dostępność i zgodność z nowoczesnymi standardami. Brak zrozumienia ewolucji HTML może prowadzić do błędnych praktyk w tworzeniu stron internetowych, co w dłuższej perspektywie może wpłynąć na ich użyteczność oraz widoczność w wyszukiwarkach.

Pytanie 27

Co zazwyczaj wchodzi w skład Framework'a?

A. obsługa błędów i domena
B. zarządzanie komunikacją z bazą danych, mechanizm uruchamiania i przetwarzania akcji
C. wbudowany serwer i obsługa formularzy
D. certyfikat http oraz mechanizm przetwarzania i uruchamiania akcji
Pierwsza odpowiedź wskazuje na elementy, które są często obecne w aplikacjach webowych, jednak nie są kluczowymi składnikami frameworków. Domeny i obsługa błędów to ważne aspekty ogólnie dotyczące programowania, ale same w sobie nie definiują funkcjonalności frameworka. Obsługa formularzy oraz wbudowany serwer to funkcje, które mogą być dostarczane przez frameworki, jednak nie stanowią one ich podstawowych komponentów. Obsługa formularzy dotyczy głównie interakcji użytkownika z aplikacją, a wbudowany serwer to jedynie narzędzie do lokalnego testowania, które nie jest kluczowe dla samego frameworka. Natomiast certyfikat http jest istotny dla zapewnienia bezpieczeństwa podczas przesyłania danych, lecz nie jest on związany z architekturą czy funkcjonalnością frameworków. Dlatego też, choć wszystkie z wymienionych elementów są ważne w kontekście tworzenia aplikacji webowych, to nie stanowią one rdzenia frameworków, które koncentrują się na ułatwieniu komunikacji z bazą danych oraz zarządzaniu cyklem życia żądań.

Pytanie 28

Definicja formularza została wykorzystana na stronie www, która przesyła dane do pliku w języku PHP. W której tablicy będą dostępne informacje z formularza?

<form action="plik.php" method="post">
A. $_COOKIE
B. $_POST
C. $_GET
D. $_ACTION
Formularze w HTML służą do przesyłania danych do serwera, a w kontekście języka PHP dane te są dostępne poprzez różne superglobalne tablice, z których najczęściej używaną przy metodzie POST jest tablica $_POST. Metoda POST, określona w atrybucie 'method' formularza, jest używana do przesyłania danych w bardziej bezpieczny sposób niż metoda GET, ponieważ nie pokazuje przesyłanych informacji w URL. Kiedy dane są wysyłane do skryptu PHP z formularza, wszystkie klucze i wartości formularza stają się dostępne jako elementy tablicy $_POST. Przykładowo, jeśli w formularzu znajduje się pole tekstowe o nazwie 'username', po wysłaniu formularza na stronie 'plik.php' można uzyskać dostęp do wartości tego pola za pomocą $_POST['username']. Ta metoda jest zalecana w przypadku przesyłania danych poufnych, takich jak hasła, ponieważ nie są one widoczne w pasku adresu przeglądarki. Dodatkowo, korzystając z $_POST, można przesyłać dane o większej objętości, co jest niemożliwe w przypadku $_GET, który ma ograniczenia długości URL.

Pytanie 29

Kolor zapisany w modelu RGB(255, 0, 0) to

A. żółty
B. czerwony
C. niebieski
D. zielony
Odpowiedź czerwona jest poprawna, ponieważ w modelu RGB kolor jest definiowany przez kombinację trzech podstawowych kolorów: czerwonego, zielonego i niebieskiego. Wartości w modelu RGB mieszczą się w zakresie od 0 do 255, gdzie 255 oznacza pełną intensywność danego koloru, a 0 brak intensywności. W przypadku RGB(255, 0, 0), maksymalna wartość oznacza, że kolor czerwony jest w pełni nasycony, podczas gdy wartości zielonej i niebieskiej są równe zeru, co skutkuje uzyskaniem czystego koloru czerwonego. W praktyce, model RGB jest powszechnie stosowany w technologii wyświetlania kolorów na ekranach komputerów, telewizorów oraz w grafice komputerowej. Zrozumienie modelu RGB jest kluczowe dla projektantów interfejsów użytkownika, grafików i specjalistów od marketingu wizualnego, którzy muszą umieć manipulować kolorami, aby osiągnąć zamierzony efekt wizualny lub brandingowy. Dobre praktyki w zakresie doboru kolorów obejmują uwzględnienie harmonii kolorystycznej oraz różnorodności percepcji kolorów przez różne osoby, co można osiągnąć poprzez testy A/B lub badania użytkowników.

Pytanie 30

Jakie zapytanie SQL umożliwi wyszukanie z podanej tabeli tylko imion i nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
B. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
C. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
D. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
To zapytanie SQL, które napisałeś, czyli SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, jest całkiem trafione. Po pierwsze, używasz operatora SELECT, żeby wskazać, jakie kolumny chcesz zwrócić - czyli imię i nazwisko. To jest dokładnie to, co było potrzebne. Po drugie, warunek WHERE z rokiem urodzenia zapewnia, że do wyników dostają się tylko pacjenci, którzy przyszli na świat przed 2002 rokiem. No i to jest ważne, bo masz tutaj operator mniejszości <, który wyklucza sam rok 2002. Takie podejście jest super przydatne w bazach danych, bo pozwala na filtrowanie informacji w oparciu o lata, co często wykorzystuje się w raportach i analizach. Generalnie, dobre praktyki w SQL mówią, że warto precyzyjnie określać, jakie kolumny chcesz uwzględnić, bo to pomaga odciążyć system i zrobione zapytanie będzie działać wydajniej. Twoje zapytanie nie tylko spełnia wymagania, ale także jest optymalne, co jest naprawdę istotne w pracy z bazami danych.

Pytanie 31

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

input:focus { background-color: LightGreen; }
A. w każdej sytuacji
B. po kliknięciu myszą w celu wprowadzenia tekstu
C. gdy zostanie na niego najechane kursorem myszy bez kliknięcia
D. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie
W języku CSS pseudoklasa :focus jest używana do definiowania stylów dla elementów, które są w stanie aktywnego fokusu. W przypadku elementów formularza, takich jak pola tekstowe input, fokus uzyskuje się poprzez kliknięcie myszą lub użycie klawisza tab, co pozwala na wprowadzenie tekstu. Pseudoklasa :focus umożliwia stylizację elementu tylko wtedy, gdy jest aktywny, co jest kluczowe dla poprawy użyteczności interfejsu użytkownika. W przykładzie podanym w pytaniu, gdy pole edycyjne input uzyska fokus, jego tło zmieni się na jasnozielone dzięki właściwości background-color ustawionej na LightGreen. Takie zastosowanie stylów CSS jest powszechne w projektowaniu formularzy, gdzie wizualne wskazanie aktywnego elementu jest istotne dla użytkownika. Dobre praktyki projektowania interfejsów kładą nacisk na czytelność i intuicyjność, co zwiększa dostępność i wygodę użytkowania aplikacji webowych. Stylowanie z wykorzystaniem pseudoklasy :focus pozwala projektantom i deweloperom tworzyć interfejsy, które są nie tylko estetyczne, ale także funkcjonalne, wspierając użytkowników w efektywnym korzystaniu z aplikacji.

Pytanie 32

W kodzie HTML kolor biały można reprezentować przy użyciu wartości

A. #255255
B. #000000
C. rgb (FF, FF, FF)
D. rgb(255, 255, 255)
Wartości #000000 i #255255 oraz rgb(FF, FF, FF) są nieprawidłowe w kontekście definiowania koloru białego. Zaczynając od pierwszej, #000000 to kod szesnastkowy odpowiadający czarnemu, gdzie wszystkie składniki koloru (czerwony, zielony, niebieski) mają wartość 0, co skutkuje brakiem światła i widzeniem czerni. Typowym błędem jest myślenie, że składniki koloru muszą być wyrażane w systemie szesnastkowym, a nie w zakresie od 0 do 255, co wprowadza w błąd w kontekście RGB. Z kolei #255255 nie jest poprawnym kodem szesnastkowym, ponieważ wartości kolorów w systemie szesnastkowym muszą być w zakresie od 00 do FF dla każdego z kolorów, co oznacza, że każda para cyfr szesnastkowych musi mieścić się w tym zakresie. Zresztą, nie można mieć wartości powyżej 255 w modelu RGB. Przy odpowiedzi rgb(FF, FF, FF) również pojawia się problem, ponieważ wartości w funkcji rgb() powinny być wartościami liczbowymi, a nie szesnastkowymi. Często błędne jest mylenie zapisów szesnastkowych z zapisami liczbowymi, co prowadzi do nieprawidłowych wniosków. Dlatego tak istotne jest zrozumienie różnic w sposobie reprezentacji kolorów oraz stosowanie odpowiednich praktyk przy definiowaniu kolorów w HTML i CSS.

Pytanie 33

Aby strona internetowa skutecznie dopasowywała się do urządzeń mobilnych, należy ustalić rozmiar czcionki

A. w procentach
B. w milimetrach
C. tylko znacznikami big i small
D. w pikselach
Wybór w procentach jako jednostki wielkości czcionki jest właściwy, ponieważ umożliwia elastyczne dostosowanie tekstu do różnych ekranów i rozdzielczości. Użycie procentów pozwala na skalowanie w oparciu o domyślną wielkość czcionki ustawioną w przeglądarce, co jest kluczowe dla responsywności witryny. Przykładowo, jeśli domyślna wielkość czcionki wynosi 16px, to ustawienie czcionki na 150% sprawi, że będzie miała 24px, co jest szczególnie przydatne na urządzeniach mobilnych, gdzie przestrzeń jest ograniczona, a czytelność ma kluczowe znaczenie. Dodatkowo, zastosowanie procentów jest zgodne z zasadami projektowania responsywnego, które skupiają się na dostosowywaniu elementów interfejsu użytkownika do różnych urządzeń. Warto również zauważyć, że techniki takie jak media queries w CSS mogą współpracować z procentami, co pozwala na jeszcze lepsze dopasowanie wielkości czcionki do konkretnej szerokości ekranu. Pamiętajmy, że stosowanie elastycznych jednostek, takich jak procenty, jest jedną z najlepszych praktyk w tworzeniu dostępnych i przyjaznych użytkownikowi interfejsów.

Pytanie 34

Efektem wykonania przedstawionego kodu PHP jest wyświetlenie komunikatu

$a = $c = true;
$b = $d = false;
if(($a && $b) || ($c && $d))
    echo 'warunek1';
elseif(($a && $b) || ($c || $d))
    echo 'warunek2';
elseif(($c && $d) || (!$a))
    echo 'warunek3';
else
    echo 'warunek4';
A. warunek3
B. warunek2
C. warunek1
D. warunek4
W tym zadaniu kluczowe jest zrozumienie, jak PHP ocenia wyrażenia logiczne z użyciem operatorów `&&` i `||` oraz jak działa sekwencja `if / elseif / else`. Sporo osób gubi się tutaj przez pobieżne liczenie w głowie albo przez mylenie operatora AND z OR, albo przez nieuwzględnianie tego, że kolejne gałęzie `elseif` są sprawdzane dopiero wtedy, gdy poprzednie warunki były fałszywe. Najpierw warto zauważyć wartości zmiennych: `$a = $c = true;` oraz `$b = $d = false;`. To oznacza po prostu: `a = true`, `c = true`, `b = false`, `d = false`. W pierwszym warunku mamy `($a && $b) || ($c && $d)`. Zarówno `true && false`, jak i `true && false` dają `false`, więc całość to `false || false`, czyli `false`. Dlatego komunikat „warunek1” nie ma prawa się pojawić – ten blok w ogóle nie jest wykonywany. Częsty błąd polega na tym, że ktoś widzi dwa `true` w warunku i z automatu zakłada, że „coś tam pewnie wyjdzie na true”. Niestety tak to nie działa – przy operatorze `&&` wystarczy jeden `false`, żeby całe wyrażenie było fałszywe. Z kolei przy `||` wystarczy jedno `true`, by wynik był prawdziwy. I to dokładnie widać w drugim warunku: `($a && $b) || ($c || $d)`. Tu pierwsza część znów jest fałszywa, ale druga to `true || false`, więc daje `true`. Cały warunek jest więc prawdziwy i dlatego wykonuje się tylko ten blok – „warunek2”. Jeżeli ktoś zaznaczył „warunek3” lub „warunek4”, to zazwyczaj wynika to z niezrozumienia, że po pierwszym spełnionym `if`/`elseif` dalsze nie są już w ogóle analizowane. Trzeci warunek logicznie też warto policzyć: `($c && $d) || (!$a)` to `false || false`, bo `$c && $d` to `true && false = false`, a `!$a` to `!true = false`. On byłby fałszywy nawet gdyby do niego dotrzeć, więc „warunek3” i tak by się nie wydrukował. „warunek4” z kolei to blok domyślny, wykonywany tylko wtedy, gdy wszystkie wcześniejsze warunki są fałszywe – tutaj tak nie jest, bo drugi warunek jest prawdziwy. Z mojego doświadczenia dobrym nawykiem jest zawsze rozpisywanie takich wyrażeń krok po kroku, szczególnie na początku nauki: najpierw obliczyć `&&` wewnątrz nawiasów, potem `||`, i dopiero wtedy patrzeć, która gałąź `if/elseif/else` zostanie wykonana. W realnym kodzie przy skomplikowanych warunkach lepiej je upraszczać albo rozbijać na kilka czytelnych zmiennych pomocniczych, zamiast liczyć wszystko „w głowie”, bo to prosta droga do subtelnych błędów logicznych.

Pytanie 35

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 2
B. Efekt 4
C. Efekt 3
D. Efekt 1
Efekt 3 jest poprawny ponieważ formatowanie CSS zawiera ustawienie padding 20px co oznacza że wokół tekstu znajduje się przestrzeń o szerokości 20 pikseli Dodatkowo kolor tekstu jest niebieski zgodnie z ustawieniem color blue Także font-weight 900 wskazuje że tekst powinien być pogrubiony w najwyższym stopniu co jest widoczne w trzecim efekcie Obramowanie ma szerokość 1 piksel i jest solidne co oznacza że jest to ciągła linia wokół tekstu Efekt 3 dokładnie odzwierciedla te właściwości Formatowanie takie jest użyteczne w tworzeniu przyciągających uwagę nagłówków lub wyróżnień w treści strony internetowej W praktyce taki styl można zastosować do elementów interfejsu użytkownika które wymagają większej czytelności lub estetycznego oddzielenia od reszty treści Ważne jest aby odpowiednio zrozumieć i wykorzystać właściwości CSS dla uzyskania maksymalnej efektywności w projektowaniu stron internetowych Dobre praktyki obejmują także testowanie stylów na różnych urządzeniach aby upewnić się że wygląd spełnia zamierzone cele we wszystkich kontekstach

Pytanie 36

W tabeli o nazwie zadania znajduje się kolumna tekstowa status. Jakie zapytanie należy wykorzystać, aby usunąć te rekordy, w których status to ‘zamknięte’?

A. DELETE FROM zadania WHERE status = 'zamknięte';
B. TRUNCATE TABLE zadania;
C. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
D. DELETE FROM zadania;
Kwerendy 'TRUNCATE TABLE zadania;' i 'TRUNCATE TABLE zadania WHERE status = 'zamknięte';' są nieodpowiednie do rozwiązania przedstawionego problemu. W przypadku użycia 'TRUNCATE TABLE zadania;', następuje całkowite usunięcie wszystkich rekordów z tabeli, co jest nie tylko ryzykowne, ale również niezgodne z wymaganiem usunięcia tylko tych z określonym statusem. Ta operacja nie posiada możliwości ograniczenia działań do konkretnego zestawu danych, dlatego zawsze należy podchodzić do jej użycia z dużą ostrożnością. Dodatkowo, 'TRUNCATE TABLE' jest operacją szybszą od 'DELETE', ale nie można jej stosować z klauzulą WHERE, co sprawia, że 'TRUNCATE TABLE zadania WHERE status = 'zamknięte';' jest syntaktycznie błędne. Praktka używania TRUNCATE jest zalecana, gdy chcemy szybko usunąć wszystkie dane z tabeli, na przykład przed załadowaniem nowych danych, lecz w tym wypadku jest to niewłaściwa strategia. Warto również zauważyć, że podczas usuwania danych z bazy danych, kluczowe jest rozważenie wpływu na relacje między tabelami, integralność danych oraz możliwość ich późniejszej analizy. Używanie DELETE z odpowiednim warunkiem jest bardziej kontrolowane, co jest zgodne z najlepszymi praktykami w tworzeniu i zarządzaniu bazami danych.

Pytanie 37

Aby z tabeli Pracownicy wybrać tylko nazwiska kończące się na literę „i”, można zastosować następującą kwerendę SQL

A. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i;
B. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i%";
C. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i%";
D. SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "i";
Prawidłowa kwerenda SQL do wyszukania nazwisk pracowników, których ostatnią literą jest 'i', to 'SELECT nazwisko FROM Pracownicy WHERE nazwisko LIKE "%i";'. Operator LIKE w SQL jest używany do wyszukiwania wzorców w danych tekstowych. W tym przypadku symbol '%' przed literą 'i' oznacza, że przed 'i' może występować dowolna liczba znaków (w tym zero), co umożliwia znalezienie wszystkich nazwisk kończących się na tę literę. Przykładowe nazwiska, które mogą być zwrócone przez tę kwerendę to 'Kowalski', 'Nowak', czy 'Wiśniewski'. Zgodnie z standardem SQL, użycie podwójnych cudzysłowów dla wzorca jest właściwe w kontekście baz danych, jednak w wielu systemach baz danych, w tym MySQL, częściej stosuje się pojedyncze cudzysłowy. Warto także zauważyć, że technika ta jest przydatna przy pracy z bazami danych, gdyż umożliwia elastyczne wyszukiwanie informacji oraz jest szczególnie cenne w aplikacjach wymagających filtrowania danych według specyficznych kryteriów.

Pytanie 38

Wskaż stwierdzenie, które nie jest prawdziwe dla następującej definicji funkcji w języku C++?

void zamien( float &x, float &y){
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja nie zwraca wartości.
B. Funkcja odwołuje się do parametrów przez referencję.
C. Funkcja posiada dwa parametry.
D. Funkcja zwraca wartość.
Dobrze zrobione! Wybrałeś właściwą odpowiedź, która pasuje do tego, co mamy w kodzie funkcji w C++. Mówimy tu o funkcji typu 'void', co oznacza, że nie zwraca żadnej wartości. W C++ 'void' oznacza, że nie ma zwracanego typu, ale to nie znaczy, że taka funkcja nic nie robi. Ona może wykonać różne operacje, ale na koniec nie zwraca żadnego wyniku. To jest dość istotne, bo w programowaniu często z takich funkcji korzystamy, kiedy chcemy coś zmienić, a nie potrzebujemy nowej wartości. Fajnie, że zauważyłeś, że ta funkcja ma dwa parametry typu float, które są przekazywane przez referencję. Dzięki temu możemy zmieniać wartości tych zmiennych w funkcji, co jest przydatne w wielu sytuacjach.

Pytanie 39

W zaprezentowanej klasie zdefiniowane zostały

class a {
    public $b;
    public $c;
    public function d() {}
}
A. dwie właściwości
B. dwie metody
C. dwa obiekty
D. jedna właściwość
W przedstawionej klasie w języku PHP zdefiniowano dwie właściwości publiczne: $b oraz $c. Właściwości te są zmiennymi, które mogą przechowywać dane różnego typu i są dostępne z poziomu innych obiektów lub kodu poza klasą dzięki modyfikatorowi dostępu public. W praktyce, właściwości klasy są wykorzystywane do przechowywania stanu obiektu czyli wartości specyficznych dla instancji tej klasy. Należy pamiętać o dobrych praktykach w programowaniu obiektowym, takich jak stosowanie odpowiednich modyfikatorów dostępu (public, private, protected) w celu lepszej enkapsulacji danych oraz korzystanie z metod dostępowych (getterów i setterów) w celu kontroli dostępu i modyfikacji właściwości. Właściwości te mogłyby być użyte na przykład do przechowywania danych użytkownika, takich jak imię i nazwisko, w klasach modelujących obiekty w aplikacjach typu MVC. Zastosowanie właściwości jako mechanizmu przechowywania stanu obiektu jest kluczowym elementem programowania obiektowego i poprawnego projektowania klas.

Pytanie 40

Jaki będzie rezultat po uruchomieniu podanego skryptu?

class Owoc {
    function __construct() {
        echo "test1";
    }
    function __destruct() {
        echo "test2";
    }
}
$gruszka = new Owoc();
A. Pojawią się oba teksty: „test1” i „test2”
B. Pojawi się jedynie tekst „test1”
C. Pojawi się wyłącznie tekst „test2”
D. Nie pojawi się żaden tekst
Wybór błędnych odpowiedzi może wynikać z tego, że nie do końca rozumiesz, jak działają konstruktory i destruktory w programowaniu obiektowym. Nie jest tak, że nie ma żadnego napisu, bo nawet jeżeli nie stworzysz obiektu, to przy końcu skryptu destruktor powinien się uruchomić i wtedy wyświetli się 'test2'. Tak że, gdy mówisz, że tylko 'test1' się pokaże, to nie bierzesz pod uwagę, co się dzieje po zakończeniu skryptu. I to, co napisałeś, że tylko 'test2' się wyświetli, też nie jest prawdą, bo konstruktor musi być wywołany, kiedy robi się obiekt. Zrozumienie tych wszystkich spraw jest naprawdę ważne, by dobrze zarządzać danymi w aplikacjach, zwłaszcza w większych projektach, gdzie jest masa obiektów i różne interakcje między nimi.