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: 28 marca 2026 00:25
  • Data zakończenia: 28 marca 2026 00:43

Egzamin niezdany

Wynik: 18/40 punktów (45,0%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

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

A. Apache, PHP i MySQL
B. IIS, PERL i MySQL
C. PHP oraz MySQL
D. Apache oraz PHP
Aby uruchomić system CMS Joomla!, konieczne jest zainstalowanie i skonfigurowanie serwera WWW, interpreter PHP oraz systemu zarządzania bazą danych, którym najczęściej jest MySQL. Apache to najpopularniejszy serwer WWW, który zapewnia środowisko dla aplikacji internetowych, oferując elastyczność i wsparcie dla wielu protokołów. PHP jest językiem skryptowym, który umożliwia dynamiczne generowanie treści na stronach internetowych. MySQL jako system zarządzania bazą danych pozwala na przechowywanie, zarządzanie i pobieranie danych, co jest kluczowe w kontekście zarządzania treścią w Joomla!. Przykładem zastosowania tych technologii może być stworzenie witryny internetowej, która korzysta z bazy danych do przechowywania artykułów, użytkowników oraz innych zasobów, a następnie dynamicznie je wyświetla za pomocą PHP. Warto również pamiętać, że stosowanie tych technologii to standardowa praktyka w branży, co zapewnia kompatybilność oraz wsparcie społeczności deweloperów.

Pytanie 2

Wskaż zapis warunku w języku JavaScript, który ma na celu sprawdzenie, czy spełniony jest przynajmniej jeden z poniższych przypadków:
1) dowolna liczba naturalna a jest liczbą trzycyfrową
2) dowolna liczba całkowita b ma wartość ujemną

A. ((a > 99) || (a < 1000)) && (b < 0)
B. ((a > 99) && (a < 1000)) && (b < 0)
C. ((a > 99) || (a < 1000)) || (b < 0)
D. ((a > 99) && (a < 1000)) || (b < 0)
Analizując pozostałe odpowiedzi, można zauważyć, że mają one istotne błędy w logice. W przypadku odpowiedzi, które używają operatora AND (&&) w obu częściach warunków, czyli ((a > 99) && (a < 1000)) && (b < 0), cały warunek będzie spełniony tylko wtedy, gdy zarówno liczba 'a' będzie trzycyfrowa, jak i liczba 'b' będzie ujemna. To podejście nie spełnia wymogu, aby chociaż jeden z warunków był prawdziwy – w praktyce oznacza to, że jeśli jedna z liczb nie spełnia swojego warunku, cały wyrażenie zwróci fałsz. Alternatywnie, odpowiedzi, które stosują operator OR w niewłaściwy sposób, na przykład ((a > 99) || (a < 1000)) || (b < 0), również są błędne, ponieważ pierwsza część warunku z założenia zawsze będzie prawdziwa dla dowolnej liczby naturalnej, co sprawia, że sprawdzenie liczby 'a' staje się bezsensowne. Typowe błędy w myśleniu, które mogą prowadzić do takich niepoprawnych wniosków, obejmują niepoprawne rozumienie zastosowania operatorów logicznych oraz błędne założenia dotyczące zakresów wartości. W programowaniu istotne jest, by warunki były jasno określone, aby uniknąć niejednoznaczności i potencjalnych błędów w działaniu aplikacji.

Pytanie 3

Fragment kodu SQL wskazuje, że klucz obcy

Ilustracja do pytania
A. jest ustawiony na kolumnie obiekty
B. jest obecny w tabeli obiekty
C. stanowi odniesienie do siebie samego
D. wiąże się z kolumną imiona
W przedstawionym fragmencie kodu SQL klucz obcy (foreign key) służy do zapewnienia integralności referencyjnej między dwiema tabelami. W tym przypadku klucz obcy wskazuje, że pole imie w jednej tabeli jest powiązane z polem imiona w tabeli obiekty. Takie podejście pomaga w utrzymaniu spójności danych, ponieważ wymusza istnienie każdej wartości w polu imie w kolumnie imiona tabeli obiekty. W praktyce oznacza to, że nie można dodać wartości do pola imie, jeśli nie istnieje odpowiadająca wartość w kolumnie imiona. Klucze obce są kluczowym elementem w projektowaniu baz danych, wspierając normalizację i redukcję redundancji danych. Prawidłowe wykorzystanie kluczy obcych pozwala na efektywne zarządzanie relacjami pomiędzy danymi, co jest zgodne z najlepszymi praktykami w zakresie projektowania baz danych. Dodatkowo, prawidłowe stosowanie kluczy obcych przyczynia się do poprawy wydajności zapytań, ponieważ umożliwia optymalizację operacji łączenia danych. To podejście jest zgodne ze standardami SQL, a jego zastosowanie jest powszechne w różnych systemach zarządzania bazami danych jak MySQL, PostgreSQL czy Oracle.

Pytanie 4

Jakie jest zastosowanie certyfikatu SSL?

A. zapobiegania złośliwemu oprogramowaniu na stronie
B. odszyfrowywania przesyłanych danych
C. określenia właściciela domeny
D. przechowywania informacji o sesjach tworzonych na stronie
Często ludzie mylą, co właściwie robi certyfikat SSL. Na przykład blokowanie złośliwego oprogramowania to zupełnie inna sprawa, która bardziej dotyczy takich rzeczy jak firewalle czy systemy wykrywania intruzów. SSL nie chroni przed atakami hakerskimi, a raczej zabezpiecza dane podczas przesyłania ich między klientem a serwerem. Zapisywanie danych sesji, które są tworzone na stronie, to też inny temat – to bardziej dotyczy zarządzania sesjami, na przykład przez ciasteczka. No i jeśli chodzi o deszyfrację danych, to SSL nie zajmuje się tym bezpośrednio. On tylko zapewnia, że połączenie jest bezpieczne i dane nie wpadną w niepowołane ręce. Dlatego przypisywanie certyfikatom SSL funkcji, które wykonują inne technologie bezpieczeństwa, to spory błąd. Trzeba po prostu zrozumieć, że każdy element zabezpieczeń ma swoją rolę w sieci.

Pytanie 5

Jakie tabele będą weryfikowane przez podane polecenie?

CHECK TABLE pracownicy CHANGED;
A. Jedynie tabele referencyjne.
B. Tylko tabele, które nie zostały prawidłowo zamknięte.
C. Tabele, które uległy zmianie od ostatniego sprawdzenia lub nie zostały prawidłowo zamknięte.
D. Tabele, które zmieniły się w bieżącej sesji.
Odpowiedzi sugerujące, że polecenie CHECK TABLE sprawdzi jedynie tabele, które nie zostały poprawnie zamknięte, lub tylko te, które zmieniły się w aktualnej sesji, nieprawidłowo interpretują sposób działania polecenia. Sprawdzanie tabel przy użyciu CHECK TABLE ma na celu weryfikację integralności danych, a nie tylko reagowanie na konkretne sytuacje, jak błędy zamknięcia. W rzeczywistości, to polecenie jest zaprojektowane do analizy ogólnego stanu tabeli, co obejmuje także zmiany, które mogły wystąpić od ostatniego sprawdzenia. Sugerowanie, że tabele referujące do innych byłyby jedynymi na celowniku tego polecenia, jest również mylące, ponieważ CHECK TABLE nie ogranicza się do relacji referencyjnych, lecz obejmuje każdą tabelę wskazaną w poleceniu. Typowe błędy myślowe w tym zakresie często dotyczą uproszczeń, które pomijają złożoność zarządzania danymi i integralności. Poprawne podejście do użycia CHECK TABLE polega na zrozumieniu, że jest to narzędzie diagnostyczne, które powinno być stosowane w kontekście pełnej analizy bazy danych, a nie w reakcji na specyficzne przypadki awarii. W efekcie, ignorowanie pełnych możliwości tego polecenia może prowadzić do niedostatecznej ochrony danych oraz zwiększonego ryzyka utraty informacji.

Pytanie 6

Wskaż element, który definiuje pole edycyjne formularza zgodne z ilustracją

Ilustracja do pytania
A. <input type="date" id=" minutes" name="hours">
B. <input type="number" id="mm" name="hh" min="0" max="24">
C. <input type="month" id="hh" name="mm">
D. <input type="time" id="minutes" name="hours">
Prawidłowy wybór to <input type="time" id="minutes" name="hours">, ponieważ dokładnie taki element HTML5 służy do wprowadzania godziny w formacie hh:mm, czyli tak jak na ilustracji. Atrybut type="time" mówi przeglądarce, że pole ma przyjmować tylko wartości czasu, bez daty, miesięcy czy liczb dowolnego typu. Zgodnie ze specyfikacją HTML Living Standard oraz HTML5, przeglądarka powinna wtedy wyświetlić natywne kontrolki do wyboru godziny (np. rozwijane listy, suwak, mały zegarek – zależy od systemu i przeglądarki). Dzięki temu użytkownik ma mniejsze ryzyko pomyłki, a walidacja odbywa się częściowo automatycznie. Z mojego doświadczenia warto korzystać z type="time" zawsze, gdy formularz dotyczy konkretnych godzin, np. godzina rozpoczęcia pracy, rezerwacja wizyty, planowanie spotkania online. Po stronie serwera (np. w PHP) to pole przychodzi jako tekst w formacie „HH:MM”, co jest łatwe do dalszego przetwarzania, parsowania do obiektu DateTime albo zapisu w bazie danych w typie TIME. Dobra praktyka jest też taka, żeby nazwy atrybutów id i name były semantyczne. W tym zadaniu nie ma to wpływu na poprawność odpowiedzi, ale w realnym projekcie lepiej byłoby użyć np. id="endTime" i name="end_time". Ułatwia to później pracę z JavaScriptem i po stronie backendu. Warto też pamiętać o dodaniu atrybutów min i max, jeśli chcemy ograniczyć zakres godzin (np. od 08:00 do 20:00), oraz pattern lub dodatkowej walidacji JS, jeśli mamy specyficzne wymagania. Mimo że ilustracja nie pokazuje tych szczegółów, sam mechanizm type="time" jest tu absolutnie kluczowy i zgodny z dobrymi praktykami front-endowymi.

Pytanie 7

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. liczba_max(a, b, c, wynik);
B. var wynik = liczba_max(a, b, c);
C. liczba_max(a, b, c) = wynik;
D. liczba_max(a, b, c);
Wywołanie funkcji 'liczba_max' w postaci 'var wynik = liczba_max(a, b, c);' jest prawidłowe, ponieważ stosuje syntaksę języka JavaScript do przypisania wartości zwróconej przez funkcję do zmiennej. Zdefiniowana funkcja 'liczba_max' przyjmuje trzy argumenty, które są porównywane, a maksymalna z nich jest zwracana jako wynik. W tym przypadku 'var wynik' tworzy nową zmienną, która przechowuje tę wartość, co jest zgodne z najlepszymi praktykami programowania, gdzie wyniki operacji są przypisywane do zmiennych dla dalszego wykorzystania. Użycie 'var' (lub 'let', 'const' w nowszych wersjach JavaScript) jest kluczowe, aby jasno określić zakres zmiennej. Przykładowo, jeśli a = 5, b = 10, c = 3, to po wywołaniu 'var wynik = liczba_max(a, b, c);', zmienna 'wynik' będzie miała wartość 10. Tego typu konstrukcje są podstawą programowania w JavaScript i są niezwykle przydatne w tworzeniu dynamicznych aplikacji webowych, gdzie operacje na danych są na porządku dziennym.

Pytanie 8

Które polecenie SQL zaktualizuje w tabeli tab wartość Ania na Zosia w kolumnie kol?

A. ALTER TABLE tab CHANGE kol='Ania' kol='Zosia';
B. UPDATE tab SET kol='Zosia' WHERE kol='Ania';
C. ALTER TABLE tab CHANGE kol='Zosia' kol='Ania';
D. UPDATE tab SET kol='Ania' WHERE kol='Zosia';
W przypadku błędnych odpowiedzi, mamy do czynienia z niepoprawnym użyciem SQL i niezrozumieniem, jak zmieniać wartości w tabelach. Pierwsza błędna odpowiedź używa UPDATE, ale zmienia 'Zosia' na 'Ania', co jest zupełnie na opak. Takie coś może wprowadzić zamieszanie, zwłaszcza jeśli w tabeli już jest 'Zosia' i np. nie chcemy, żeby się to zmieniało. Druga odpowiedź korzysta z ALTER TABLE, co jest totalnie nie o to. ALTER TABLE zmienia strukturę tabeli, a nie dane w kolumnie. A zmiana nazwy kolumny, jak sugeruje ta odpowiedź, nie ma sensu, bo chodzi o dane, a nie o to, jak kolumna się nazywa. Ostatnia błędna odpowiedź też ciśnie na ALTER TABLE, co pokazuje, że te odpowiedzi nie rozumieją, co mają robić. W skrócie, te odpowiedzi mylą różne funkcje SQL i podkreślają, jak ważne jest zrozumienie, kiedy i jak używać danych instrukcji w zarządzaniu informacjami.

Pytanie 9

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista:

A. pobierze dane z formularza, w którym pole input pozostało puste
B. będzie definiował zmienne w obrębie warunku
C. będzie pisać kod bez zastosowania wcięć
D. nie umieści średnika po wyrażeniu w instrukcji if, gdy po nim występuje sekcja else
W przypadku pierwszej odpowiedzi dotyczącej pobierania wartości z formularza, należy zrozumieć, że PHP nie generuje błędu, nawet jeśli pole input nie zostało wypełnione. Wartość z pustego pola formularza zostanie przekazana jako pusty string, co nie prowadzi do błędu, ale wymaga dodatkowej walidacji. Niezapełnione pola mogą być zatem obsługiwane bez problemów. Drugą odpowiedzią jest kwestia wcięć w kodzie. Chociaż wcięcia poprawiają czytelność kodu, PHP nie wymaga ich stosowania, a brak wcięć nie spowoduje błędu wykonania, co jest mylącą koncepcją. Warto jednak podkreślić, że stosowanie wcięć jest dobrą praktyką, gdyż pozwala na lepsze zrozumienie struktury programu. Ostatnia odpowiedź dotycząca deklaracji zmiennych wewnątrz warunku również nie prowadzi do błędu interpretera. PHP pozwala na tworzenie zmiennych w dowolnym zakresie, w tym w instrukcjach warunkowych, co jest istotne dla elastyczności języka. Aby uniknąć błędnych wniosków, warto pamiętać, że błędy w PHP wynikają najczęściej z niepoprawnej składni lub niezgodności w konwencji użycia, a nie ze sposobu organizacji kodu w kontekście wcięć czy deklaracji zmiennych.

Pytanie 10

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 4
B. Efekt 1
C. Efekt 3
D. Efekt 2
Odpowiedź Efekt 3 jest poprawna, ponieważ odzwierciedla wszystkie zadane style CSS. Styl zawiera padding 20px co oznacza, że wewnętrzna przestrzeń wokół tekstu w paragrafie powinna wynosić 20 pikseli. Daje to efekt przestrzeni pomiędzy tekstem a obramowaniem. Kolor tekstu został ustawiony na niebieski co powoduje, że sam tekst przyjmuje niebieską barwę. Parametr font-weight jest ustawiony na 900 co oznacza, że tekst powinien być bardzo pogrubiony. Obecnie jest to maksymalna wartość dla własności font-weight w standardzie CSS która powoduje, że tekst wygląda na bardzo wyrazisty i wyróżnia się na tle innych elementów. Dodatkowo border ustawiono na 1px solid co oznacza, że paragraf powinien mieć jednolitą linię o grubości jednego piksela otaczającą jego obszar. Wszystkie te style są poprawnie zastosowane w Efekcie 3 gdzie tekst jest niebieski bardzo pogrubiony z przestrzenią 20 pikseli do obramowania oraz otoczony cienką linią. Taki styl jest często wykorzystywany w projektach stron internetowych dla wyraźnego wyróżnienia ważnych sekcji co zgodne jest z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 11

W systemie PHP złożono zapytanie SELECT do bazy przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić liczbę rekordów, które zwróciło to zapytanie?

A. mysqli_query
B. mysqli_fetch_row
C. mysqli_connect
D. mysqli_num_rows
Wybór innych funkcji jako odpowiedzi na pytanie jest niezgodny z ich rzeczywistym przeznaczeniem w kontekście analizy wyników zapytań w PHP. Funkcje takie jak mysqli_fetch_row służą do pobierania pojedynczego wiersza z zestawu wyników i nie dostarczają informacji o łącznej liczbie rekordów. Użycie tej funkcji może prowadzić do błędnych wniosków, gdyż zamiast podać liczbę wyników, zwraca jedynie dane jednego wiersza. Innym przykładem jest mysqli_query, która jest odpowiedzialna za wykonanie zapytania, ale nie oferuje metody na określenie ilości zwróconych rekordów. Podobnie, mysqli_connect jest funkcją do nawiązywania połączenia z bazą danych, co jest zupełnie nieadekwatne w kontekście analizy wyników zapytań. Użytkownicy często mylą te funkcje, ponieważ wszystkie są częścią pakietu MySQLi, jednak każda z nich ma swoje specyficzne zastosowanie. Właściwe zrozumienie roli poszczególnych funkcji jest kluczowe dla efektywnej pracy z bazami danych w PHP. Ignorowanie tego może prowadzić do nieefektywnego kodu oraz problemów z wydajnością aplikacji. Dlatego ważne jest, aby przed przystąpieniem do pisania zapytań zrozumieć, jakie funkcje będą potrzebne i jakie dane chcemy uzyskać.

Pytanie 12

Fragment dokumentu HTML sugeruje, że

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
A. kod HTML zapisano w wersji 5 języka.
B. wszystkie znaczniki w kodzie HTML powinny być zapisywane wielkimi literami.
C. znaczniki końcowe są wymagane w kodzie HTML, także dla znaczników samozamykających się.
D. kod HTML zapisano w wersji 4 języka.
Deklaracja DOCTYPE wskazuje na to że dokument HTML wykorzystuje standard HTML 4.01 w trybie ścisłym. HTML 4.01 jest jedną z wersji języka HTML wprowadzoną przez World Wide Web Consortium w 1999 roku i zawiera trzy warianty: Strict Transitional i Frameset. Tryb Strict oznacza ścisłe przestrzeganie zasad standardu bez użycia przestarzałych elementów i atrybutów takich jak tagi związane z formatowaniem stron które stały się przestarzałe w miarę rozwoju kaskadowych arkuszy stylów CSS. W kontekście praktycznym oznacza to że projektując stronę zgodną z tą specyfikacją należy unikać znaczników odpowiedzialnych za prezentację które były powszechnie stosowane w poprzednich wersjach HTML. Zamiast tego zaleca się korzystanie z CSS do określania wyglądu strony co nie tylko wspiera separację struktury treści od jej wyglądu ale także ułatwia przenoszenie i aktualizację stylów. Używając deklaracji DOCTYPE HTML 4.01 Strict można zapewnić lepszą zgodność z najnowszymi wersjami przeglądarek oraz ułatwić przyszłe aktualizacje kodu do nowoczesnych standardów takich jak HTML5 który wprowadza dodatkowe funkcjonalności i uproszczenia mające na celu poprawę semantyki i użyteczności stron WWW

Pytanie 13

Rozmiary ekranu w formacie 16:9 (zakładając, że piksel jest kwadratem) można osiągnąć przy rozdzielczości

A. 320 na 240 pikseli
B. 800 na 480 pikseli
C. 1366 na 768 pikseli
D. 2560 na 2048 pikseli
Odpowiedź 1366 na 768 pikseli jest poprawna, ponieważ proporcja szerokości do wysokości wynosi dokładnie 16:9. Aby to obliczyć, dzielimy szerokość przez wysokość: 1366 / 768 = 1,78, co jest bliskie wartości 1,77 (16:9). Proporcje 16:9 stały się standardem w telewizji wysokiej rozdzielczości oraz w produkcji wideo, co oznacza, że są szeroko stosowane w przemysłach związanych z mediami i technologią. Przykładem zastosowania tej rozdzielczości może być wyświetlanie filmów na nowoczesnych telewizorach, gdzie forma obrazu 16:9 pozwala na pełne wykorzystanie ekranu bez czarnych pasków po bokach. Stosując to w projektach multimedialnych, warto zawsze dążyć do zgodności z tymi standardami, aby zapewnić optymalne wrażenia wizualne dla użytkowników. Zrozumienie tych proporcji jest kluczowe dla profesjonalistów zajmujących się grafiką, filmem i projektowaniem UX/UI.

Pytanie 14

Do zachowań moralnych w środowisku pracy można zaliczyć

A. udostępnianie znajomym informacji osobowych pracowników
B. przekazywanie członkom rodziny służbowych materiałów eksploatacyjnych
C. używanie sprzętu biurowego w celach osobistych
D. przestrzeganie poufności zawodowej
Przestrzeganie tajemnicy zawodowej jest kluczowym elementem etyki w miejscu pracy. Oznacza ono, że pracownicy są zobowiązani do nieujawniania informacji, które zdobyli w trakcie wykonywania swoich obowiązków zawodowych, a które mogą narazić firmę lub jej klientów na szkodę. Przykłady obejmują nieujawnianie danych finansowych firmy, informacji o kliencie czy szczegółów dotyczących strategii biznesowej. W praktyce, przestrzeganie tajemnicy zawodowej wspiera zaufanie między pracownikami a pracodawcą oraz z klientami, co jest niezbędne dla długofalowego sukcesu organizacji. Wiele branż, takich jak finanse, ochrona zdrowia czy prawo, posiada szczegółowe regulacje dotyczące ochrony danych i tajemnicy zawodowej. Dobrymi praktykami są m.in. przeprowadzanie szkoleń w zakresie ochrony danych, stosowanie polityki zarządzania informacjami oraz wprowadzenie procedur zgłaszania incydentów związanych z naruszeniem tajemnicy zawodowej. Ogólnie rzecz biorąc, etyczne podejście do tajemnicy zawodowej przyczynia się do budowy pozytywnego wizerunku organizacji oraz minimalizowania ryzyka prawnego i reputacyjnego.

Pytanie 15

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. nazwa jest cechą obiektu przedmiot
B. zmienna x będzie przechowywać wynik działania metody nazwa
C. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
D. nazwa jest atrybutem klasy przedmiot
Zapis przedmiot.nazwa() w języku JavaScript oznacza wywołanie metody nazwa na obiekcie przedmiot. Częstym błędem jest mylenie metody z polem klasy czy właściwością obiektu. Pole klasy odnosi się do zmiennej zdefiniowanej na poziomie klasy która przechowuje dane związane z instancjami tej klasy. Metody natomiast są funkcjami które wykonują operacje na danych obiektu. Jeśli chodzi o zmienną przechowującą wynik działania funkcji przedmiot nie jest to poprawna interpretacja ponieważ przedmiot w tym przypadku jest obiektem na którym działa metoda nazwa a nie funkcją. Kolejny błąd to mylenie wywołania metody z przypisaniem wartości właściwości obiektu. Właściwości to atrybuty które przechowują stany obiektu natomiast metody określają jego zachowanie i umożliwiają wykonywanie czynności. Często podczas nauki JavaScript błędnie interpretujemy składnię kropki jako odnoszącą się tylko do właściwości zamiast dostrzegać że może ona również oznaczać wywołanie metod. Dobra praktyka polega na jasnym rozróżnieniu pomiędzy metodami a właściwościami co zwiększa czytelność i niezawodność kodu ułatwiając jego późniejszą konserwację i rozwój przez zespoły programistyczne

Pytanie 16

Jak wygląda prawidłowy zapis samozamykającego się znacznika w zgodzie ze standardem języka XHTML, który odpowiada za łamanie linii?

A. </ br>
B. <br />
C. </br/>
D. <br> </br>
Zapis </ br> jest niepoprawny, ponieważ nie przestrzega zasad składni XHTML. W XHTML nie używa się ukośnika przed znacznikiem, co powoduje, że znaczniki takie jak <br> są interpretowane jako błędne. Właściwie zapisany znacznik łamania linii zawsze powinien kończyć się ukośnikiem, co oznacza zgodność z regułami języka. Z kolei <br> </br> jest redundantny, ponieważ <br> jest znacznikiem samozamykającym się, a jego zamknięcie dodatkowymi znacznikami nie ma sensu i wprowadza niepotrzebny szum w kodzie. Odpowiedź </br/> również jest błędna, ponieważ kończy się niepoprawnym zapisem, gdzie nie jest dopuszczalne użycie ukośnika przed zamknięciem znacznika, co jest sprzeczne z zasadami XHTML. Użytkownicy często mylą składnię HTML z XHTML, co prowadzi do kodu, który może wydawać się poprawny, ale nie spełnia stricte określonych zasad składniowych. Dlatego korzystanie z poprawnych znaczników jest kluczowe dla zapewnienia, że dokumenty HTML/XHTML będą działać w różnych przeglądarkach i platformach, co jest niezbędne dla ich prawidłowego wyświetlania oraz przetwarzania.

Pytanie 17

p { font-family: Arial, Helvetica, sans-serif; }
Zdefiniowany styl dla selektora p spowoduje, że tekst w paragrafie zostanie wyświetlony czcionką:
A. bezszeryfową.
B. maszynową.
C. szeryfową.
D. dekoracyjną.
W tym pytaniu łatwo się pomylić, bo wiele osób bardziej kojarzy konkretne nazwy fontów niż ich rodziny. Kluczowe jest zrozumienie, jak działa właściwość font-family w CSS. Zapis font-family: Arial, Helvetica, sans-serif definiuje listę krojów w kolejności priorytetu. Przeglądarka sprawdza po kolei: najpierw próbuje użyć Ariala, potem Helvetiki, a jeśli żaden z nich nie jest dostępny na urządzeniu, wybiera dowolny systemowy font z rodziny sans-serif. I to właśnie ostatni element – sans-serif – określa typ czcionki, czyli że ma to być krój bezszeryfowy. Czcionka szeryfowa (serif) to np. Times New Roman czy Georgia, z charakterystycznymi „ogonami” i ozdobnikami na końcach liter. Tutaj nie ma ani nazwy serif, ani generycznego słowa serif, więc nie ma podstaw, by mówić o kroju szeryfowym. Czcionka maszynowa, nazywana w CSS monospace, to taka, w której wszystkie znaki mają tę samą szerokość, jak w starych maszynach do pisania (np. Courier New). W kodzie nie pojawia się słowo monospace ani żaden typowy font maszynowy, więc to też odpada. Z kolei określenia typu „dekoracyjna” mogą mylić, bo w CSS istnieje kiedyś częściej używany generic fantasy, czasem kojarzony z ozdobnymi krojami, ale w tym przykładzie nie mamy ani fantasy, ani cursive, tylko wyraźnie sans-serif. Typowy błąd myślowy polega na tym, że ktoś patrzy na nazwę Arial i nie kojarzy jej z rodziną bezszeryfową, albo sugeruje się wyglądem przykładowego tekstu z jakiegoś edytora. W praktyce jednak to właśnie Arial i Helvetica są klasycznymi reprezentantami rodziny sans-serif. Warto patrzeć na ostatni człon deklaracji font-family – ten generyczny typ jest zawsze najważniejszą wskazówką, do jakiej kategorii należy krój pisma w danym stylu.

Pytanie 18

Jaki zapis w dokumencie HTML umożliwia powiązanie z zewnętrznym arkuszem stylów o nazwie style.css?

A. <link rel="stylesheet" href="style.css">
B. <link rel="stylesheet' src="style.css">
C. <a src="style.css">
D. <a href="style.css">
Zapis <link rel="stylesheet" href="style.css"> jest poprawnym sposobem na dołączenie zewnętrznego arkusza stylów do dokumentu HTML. Atrybut 'rel' określa relację między dokumentem a zewnętrznym zasobem, w tym przypadku wskazując, że jest to arkusz stylów. Atrybut 'href' z kolei wskazuje ścieżkę do pliku CSS, który ma być użyty. Użycie znacznika <link> jest zgodne z standardem W3C i jest najlepszą praktyką w tworzeniu stron internetowych. Dzięki temu przeglądarka może załadować style z zewnętrznego pliku, co pozwala na łatwiejsze zarządzanie stylami oraz ich ponowne użycie w różnych dokumentach HTML. Umożliwia to także separację treści od stylizacji, co jest kluczowe w koncepcji wzorców projektowych, takich jak MVC (Model-View-Controller). Przykładowo, aby zmienić wygląd całej strony, wystarczy edytować jeden plik CSS, co znacząco upraszcza proces tworzenia i utrzymania witryn.

Pytanie 19

W języku HTML sposób na zdefiniowanie kodowania polskich znaków to

A. atrybut znacznika <meta>
B. atrybut znacznika <p>
C. znacznik <title>
D. znacznik <charset>
Inne opcje, które rozważono jako poprawne, nie są odpowiednie do określenia kodowania znaków w HTML. Znacznik <charset> nie istnieje w standardzie HTML, co czyni go niewłaściwym wyborem. Kodowanie znaków nie jest definiowane przez atrybut znacznika <p>, który jest używany głównie do formatowania tekstu, a więc nie ma wpływu na kodowanie znaków. Warto również zauważyć, że znacznik <title> jest stosowany do nadania tytułu dokumentu, który pojawia się na karcie przeglądarki, ale nie ma on związku z kodowaniem znaków. Wybór odpowiedniego kodowania jest kluczowy dla zachowania integralności tekstu, a niewłaściwe przypisanie może prowadzić do problemów z wyświetlaniem znaków i błędów w interpretacji treści. Często użytkownicy mylnie zakładają, że inne znaczniki HTML mogą mieć wpływ na kodowanie, co prowadzi do nieporozumień. Dlatego istotne jest, aby być świadomym roli znacznika <meta> w kontekście kodowania znaków, zwłaszcza w przypadku języków z diakrytykami, takich jak język polski.

Pytanie 20

W CSS, aby określić typ czcionki, powinno się zastosować właściwość

A. font-size
B. font-face
C. font-style
D. font-family
Właściwość 'font-family' w CSS jest kluczowa dla określenia kroju czcionki, który ma być używany na stronie internetowej. Dzięki tej właściwości możemy wskazać jedną lub więcej czcionek, które będą stosowane dla danego elementu. Wartością może być nazwa konkretnej czcionki, na przykład 'Arial', lub rodzina czcionek, jak 'sans-serif'. Przykład użycia to: 'font-family: Arial, sans-serif;'. W przypadku braku dostępności danej czcionki, przeglądarka wybierze następną z listy, co pozwala na zapewnienie spójności i czytelności tekstu na różnych urządzeniach. Zgodnie z najlepszymi praktykami, zaleca się użycie kilku opcji czcionek, aby zapewnić lepszą dostępność. Warto również pamiętać, aby unikać stosowania zbyt wielu różnych krojów czcionek, co mogłoby wpływać negatywnie na estetykę i czytelność strony. Użycie 'font-family' w połączeniu z innymi właściwościami, takimi jak 'font-size' czy 'font-weight', pozwala na pełne dostosowanie wyglądu tekstu zgodnie z wymaganiami projektu.

Pytanie 21

W JavaScript utworzono obiekt. Jak zmienić wartość właściwości x tego obiektu w dalszej części kodu?

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { … }
}
A. obiekt1::x = …
B. wsp.x = …
C. x = …
D. obiekt1.x = …
JavaScript to fajny język, który pozwala na pracę z obiektami, a właściwie to obiekty są jego podstawą. Chodzi o to, że można w nich przechowywać różne dane w formie par klucz-wartość. Gdy chcesz zmienić jakąś właściwość obiektu, używasz notacji kropkowej. To z pozoru proste, ale bardzo praktyczne. Po prostu wpisujesz nazwę obiektu, kropkę i nazwę właściwości, którą chcesz edytować. Na przykład mamy obiekt o nazwie obiekt1 i właściwość x. Żeby zmienić wartość x, piszesz obiekt1.x, a potem przypisujesz nową wartość. To wszystko jest zgodne z zasadami ECMAScript, które mówią, jak powinno się pracować z obiektami w JavaScript. Takie podejście jest nie tylko jasne, ale również umożliwia szybkie wskazanie, co dokładnie zmieniasz. W praktyce fajnie jest pokazać to na przykładzie, jak np. chcesz zaktualizować imię użytkownika w obiekcie, to robisz coś takiego: user.name = 'Jan'.

Pytanie 22

Zapytanie z użyciem klauzuli JOIN jest wykorzystywane w celu

A. wywołania funkcji agregującej
B. pozyskania wyników z dwóch tabel, które są ze sobą powiązane
C. określenia klucza obcego dla tabeli
D. uzyskania wyników tylko z jednej tabeli
Wybór odpowiedzi, który wskazał na funkcje agregujące albo klucze obce, pokazuje, że mogło dojść do pewnego zamieszania z podstawami relacyjnych baz danych. Funkcje agregujące, jak SUM czy COUNT, robią co innego – one działają na zbiorach danych, a nie łączą tabel. Klucz obcy to fajny mechanizm do tworzenia relacji między tabelami, ale sam w sobie nie generuje wyników. Wiem, że klucze obce są ważne, ale nie mają bezpośredniego związku z klauzulą JOIN, która służy do łączenia różnych tabel. Ograniczenie wyników do tylko jednej tabeli nie ma sensu, bo TO nie jest cel klauzuli JOIN. To, że nie zrozumiesz tej zasady, może prowadzić do dużych problemów przy projektowaniu bazy oraz trudności w zbieraniu potrzebnych informacji. Ważne jest, żeby wiedzieć, jak i kiedy używać JOIN, ponieważ bez tego stracisz wiele możliwości. Często ludzie mylą operacje na tabelach z operacjami na pojedynczych wartościach, co jest największym błędem do uniknięcia w SQL.

Pytanie 23

Właściwość CSS animation-duration określa

A. liczba powtórzeń animacji.
B. opóźnienie startu animacji.
C. czas trwania jednego cyklu animacji.
D. kierunek rozpoczęcia animacji.
Właściwość CSS `animation-duration` dokładnie określa, ile czasu trwa jeden pełny cykl animacji – od początku do końca zdefiniowanych klatek kluczowych (`@keyframes`). Jeśli ustawisz `animation-duration: 2s;`, to przeglądarka ma 2 sekundy na przejście od stanu początkowego do końcowego w danej animacji. Moim zdaniem warto to sobie wyobrazić jak czas trwania jednego „przejścia” animacji, zanim ewentualnie zacznie się kolejny obrót, jeśli używasz `animation-iteration-count`. Technicznie jest to czas trwania pojedynczej iteracji, zgodnie ze specyfikacją CSS Animations (W3C). W praktyce wygląda to np. tak: `.box { animation-name: fadeIn; animation-duration: 1.5s; }`. Tu element będzie się „pojawiał” przez 1,5 sekundy. Jeśli dodasz `animation-iteration-count: 3;`, to ta 1,5 sekundowa animacja zostanie odtworzona trzy razy, ale sama długość pojedynczego cyklu nadal wynosi 1,5 s. Częsty dobry nawyk w front-endzie to trzymanie się krótkich, płynnych animacji, zwykle w zakresie 150–500 ms dla prostych efektów (hover, focus), a dłuższych, do 1–2 sekund, dla bardziej złożonych przejść, żeby użytkownik nie czuł się znużony. `animation-duration` przyjmuje wartości w sekundach (`s`) lub milisekundach (`ms`), np. `300ms`. Można też ustawiać różne czasy dla wielu animacji naraz, rozdzielając wartości przecinkami. Warto pamiętać, że jeśli nie podasz `animation-duration`, domyślna wartość to `0s`, czyli animacja tak naprawdę się nie odtworzy – to jeden z częstszych powodów, czemu początkującym „nie działa animacja”. Dobrą praktyką jest zawsze jawne ustawianie `animation-duration` oraz spójne używanie jednostek czasu w całym projekcie, żeby interfejs wyglądał konsekwentnie i profesjonalnie.

Pytanie 24

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. aside {float: left; }
B. nav { float: left; } aside { float: left; }
C. nav { float: right; } section { float: right; }
D. nav { float: right; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 25

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 26

W firmowej tabeli znajdują się kolumny: nazwa, adres, NIP, obrót (obrót w ostatnim miesiącu), rozliczenie oraz status. Po wykonaniu kwerendy SQL

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
na ekranie pojawią się:
A. tylko nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł
B. wszystkie informacje o firmach, które w ostatnim miesiącu uzyskały obrót co najmniej 4000 zł
C. wszystkie informacje o firmach, które w ostatnim miesiącu miały obrót poniżej 4000 zł
D. tylko nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
Fajnie, że chcesz zrozumieć zapytania SQL, ale wiele z niepoprawnych odpowiedzi nie ogarniło, o co w tym wszystkim chodzi. Niektóre z nich myślały, że to zapytanie zwróci wszystkie dane o firmach, a nie tylko ich nazwy i NIP-y. Warto pamiętać, że kwerendy SQL są pisane tak, żeby wybierać określone kolumny. W tym przypadku widzimy tylko 'nazwa' i 'NIP'. Inne błędne odpowiedzi pomyliły się, twierdząc, że zapytanie da nam firmy z obrotem co najmniej 4000 zł, zapominając o tym, że 'WHERE obrót < 4000' ma kluczowe znaczenie, bo tylko te firmy, co miały obrót poniżej tej kwoty, będą w wyniku. Zrozumienie tego jest super ważne, jeśli chcesz mądrze pisać zapytania i analizować dane.

Pytanie 27

Na ilustracji pokazano strukturę bloków witryny internetowej. Który z elementów stylu strony jest zgodny z podanym układem? Dla uproszczenia pominięto cechy koloru tła, wysokości oraz czcionki)

Ilustracja do pytania
A. #pierwszy {float:left; width:30%;}#drugi {float:left; width:70%;}#trzeci {float:left; width:70%;}#czwarty {clear:both; }
B. #pierwszy { width: 30%; }#drugi { width: 70%; }#trzeci { width: 70%; }#czwarty { width: 100%; }
C. #pierwszy{float:left; width:30%; }#drugi {clear:both; width:70%; }#trzeci {clear:both; width:70%; }#czwarty {float:left; width:100%; }
D. #pierwszy {float:left; width:30%; }#drugi {clear:both; width:70%; }#trzeci {float:left; width:70%; }#czwarty {clear:both; }
Wybór błędnych odpowiedzi wynika z nieprawidłowego zastosowania właściwości CSS float i clear oraz niewłaściwego przydzielania szerokości elementów. Pierwsza odpowiedź błędnie wykorzystuje clear:both dla drugiego bloku, co spowodowałoby, że zawsze zaczynałby on nowy wiersz, niezgodnie z przedstawionym układem. Ponadto szerokości bloków zostały nieoptymalnie przypisane. Trzecia odpowiedź nie wykorzystuje float, co oznacza, że elementy będą się ustawiały w porządku blokowym, jeden pod drugim, zamiast w jednym rzędzie. Takie podejście nie pasuje do przedstawionego układu, gdzie pierwszy blok jest obok drugiego i trzeciego. Czwarta odpowiedź błędnie stosuje clear dla trzeciego bloku oraz float dla czwartego bloku, co również zaburzyłoby układ bloków, ponieważ clear:both sprawia, że element zaczyna nowy wiersz. Float w tej sytuacji nie jest potrzebny dla czwartego bloku, ponieważ powinien on zajmować całą szerokość. Typowym błędem w rozumowaniu może być niezrozumienie, jak właściwości float i clear wpływają na przepływ dokumentu oraz jak szerokości procentowe działają w kontekście układu strony. Zrozumienie tych zasad jest kluczowe dla tworzenia efektywnych i estetycznych układów stron.

Pytanie 28

W skrypcie JavaScript zmienne mogą być definiowane

A. jedynie wtedy, gdy podamy typ zmiennej oraz jej nazwę
B. wyłącznie na początku skryptu
C. zawsze poprzedzone znakiem $ przed nazwą
D. w chwili pierwszego użycia zmiennej
Wykorzystanie zmiennych w JavaScript jest bardziej elastyczne i złożone, niż sugerują tego niektóre odpowiedzi. Faktem jest, że w JavaScript nie ma wymogu deklarowania zmiennych na początku skryptu. Odpowiedź sugerująca, że zmienne mogą być deklarowane tylko na początku, jest nieprawidłowa, ponieważ JavaScript pozwala na deklarację w dowolnym miejscu kodu, a silnik interpretuje zmienne zgodnie z regułami hoistingu. Kolejna niepoprawna koncepcja związana jest z mylnym przekonaniem, że wcześniej należy określić typ zmiennej. JavaScript jest językiem dynamicznie typowanym, co oznacza, że nie jest konieczne podawanie typu przy deklaracji zmiennej. Dla przykładu, w wielu językach programowania, jak Java czy C#, typ musi być jawnie określony, lecz w JavaScript nie jest to wymagane, co czyni kod bardziej zwięzłym i elastycznym. Ponadto, stwierdzenie, że zmienne w JavaScript muszą być poprzedzone znakiem '$', również jest błędne. Chociaż '$' jest dozwolony w nazwach zmiennych, nie jest to wymóg. Dobre praktyki programistyczne sugerują, aby nazwy zmiennych były zrozumiałe i opisywały ich zawartość, co zwiększa czytelność kodu. W związku z tym, zrozumienie, jak i gdzie można deklarować zmienne w JavaScript, jest kluczowe dla efektywnego pisania kodu w tym języku.

Pytanie 29

W formularzu wartość z pola input o typie number została przypisana do zmiennej a i następnie przetworzona w skrypcie JavaScript w poniższy sposób. Jaki typ będzie miała zmienna z?

var z = parseFloat(a);
A. liczbowego, całkowitego
B. zmiennoprzecinkowego
C. NaN
D. napisowego
W kontekście działania funkcji parseFloat() ważne jest zrozumienie, dlaczego niektóre odpowiedzi mogą być błędne. Funkcja ta przetwarza dane tekstowe na liczby zmiennoprzecinkowe, więc oczekiwanie, że wynik będzie typu liczbowego całkowitego, jest nieprawidłowe. Bardzo często pojawia się błędne założenie, że skoro do funkcji przekazano liczbę całkowitą, to wynik również powinien być typu całkowitego. W rzeczywistości parseFloat() zawsze zwraca typ zmiennoprzecinkowy, co ma na celu zapewnienie elastyczności w przetwarzaniu zarówno liczb całkowitych, jak i dziesiętnych. Kolejnym nieporozumieniem jest oczekiwanie, że funkcja zwróci NaN. Taka sytuacja miałaby miejsce tylko wtedy, gdyby łańcuch zaczynał się od znaków niemożliwych do zinterpretowania jako liczba. Błędne jest również przypuszczenie, że wynik będzie typu tekstowego czy napisowego, ponieważ głównym celem parseFloat() jest konwersja tekstu do liczby, a nie odwrotnie. Zrozumienie tych subtelności pozwala uniknąć typowych błędów myślowych, takich jak zakładanie, że wszystkie wartości pochodzące z pól input zawsze mają poprawny typ przed interpretacją. Warto przy tym pamiętać o dobrych praktykach w programowaniu, które nakazują świadome zarządzanie typami danych, zwłaszcza w językach dynamicznie typowanych, jakim jest JavaScript. Dzięki temu programy stają się bardziej odporne na błędy wynikające z nieoczekiwanych typów danych.

Pytanie 30

Język JavaScript wspiera

A. abstrakcyjne klasy
B. wysyłanie ciastek z identycznymi informacjami do wielu użytkowników strony
C. obiekty DOM
D. funkcje wirtualne
Wybór jednej z pozostałych opcji może wynikać z nieporozumienia dotyczącego podstawowych koncepcji programowania w JavaScript. Funkcje wirtualne, które są bardziej charakterystyczne dla języków programowania obiektowego, takich jak C++ czy Java, nie mają zastosowania w JavaScript, który nie wspiera klasycznej hierarchii klas w taki sposób, jak te języki. W JavaScript funkcje są obiektami, a prototypowe dziedziczenie jest kluczowym mechanizmem, co często prowadzi do mylnej interpretacji koncepcji klas abstrakcyjnych. JavaScript nie definiuje klas abstrakcyjnych w tradycyjnym sensie, chociaż od ES6 wprowadzono wsparcie dla klas. Co więcej, idea wysyłania ciastek z tą samą informacją do wielu klientów nie jest bezpośrednio związana z językiem JavaScript, lecz z mechanizmami serwerowymi oraz strukturyzowaniem danych w aplikacjach webowych. Często popełniane błędy myślowe dotyczą zrozumienia ról różnych technologii webowych i ich interakcji. JavaScript działa głównie po stronie klienta, a jego integracja z serwerami odbywa się zazwyczaj za pomocą protokołu HTTP, w którym ciasteczka są jednym z wielu elementów zarządzania stanem użytkownika. Zrozumienie roli DOM w kontekście JavaScript jest kluczowe do tworzenia efektywnych i interaktywnych aplikacji, co podkreśla znaczenie tej koncepcji w codziennym programowaniu.

Pytanie 31

W języku CSS przedstawione w ramce stylizacje będą miały następujące zastosowanie. Kolorem czerwonym zostanie zapisany

h1 i {color: red;}
A. pełny tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, bez względu na jego lokalizację na stronie
B. jedynie tekst pochylony w nagłówku pierwszego stopnia
C. kompletny tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu
D. wyłącznie tekst pochylony we wszystkich nagłówkach
W przypadku analizowania podejść do formatowania w CSS, ważne jest zrozumienie, jak działają selektory. W analizowanym kodzie CSS 'h1 i' oznacza selektor złożony, który odnosi się wyłącznie do elementu <i> zagnieżdżonego w <h1>. Nie jest prawdą, że selektor ten wpłynie na wszystkie poziomy nagłówków, ponieważ jest on ograniczony do <h1>. Błędne rozumienie struktury selektorów często prowadzi do niewłaściwego stosowania stylów, co jest powszechnym problemem wśród początkujących. Również stwierdzenie, że cały tekst nagłówka <h1> będzie czerwony jest błędne, ponieważ selektor 'h1 i' dotyczy tylko zagnieżdżonego tekstu pochylonego. Wreszcie, twierdzenie, że cały tekst pochylony na stronie zmieni kolor jest błędne, ponieważ selektor jest specyficzny dla kontekstu nagłówka <h1>. Takie błędy mogą prowadzić do nieprzewidywalnych wyników i trudności w utrzymaniu spójności stylistycznej na stronie, dlatego zrozumienie i odpowiednie stosowanie selektorów złożonych i zagnieżdżonych jest kluczowe w profesjonalnym projektowaniu stron internetowych.

Pytanie 32

W języku JavaScript funkcja getElementById() odnosi się do

A. elementu HTML o określonym id
B. klasy zdefiniowanej w CSS
C. elementu HTML o wskazanej nazwie klasy
D. zmiennej liczbowej
Metoda getElementById() jest jedną z najczęściej używanych funkcji w JavaScript, która pozwala na bezpośrednie odwołanie się do elementu DOM (Document Object Model) za pomocą atrybutu id. Gdy wywołujemy tę metodę, przekazujemy jej jako argument ciąg znaków odpowiadający wartości atrybutu id danego elementu HTML. Przykładowo, jeśli mamy znacznik `<div id='myDiv'></div>`, możemy uzyskać do niego dostęp za pomocą `document.getElementById('myDiv')`. Jest to bardzo efektywny sposób na manipulowanie elementami strony, umożliwiający m.in. zmianę ich zawartości, stylu czy atrybutów. Dzięki tej metodzie programiści mogą szybko i łatwo modyfikować interfejs użytkownika oraz reagować na zdarzenia, co jest zgodne z zasadami responsywnego projektowania i tworzenia dynamicznych aplikacji webowych. Warto również pamiętać, że użycie unikalnych identyfikatorów w HTML jest zgodne z dobrymi praktykami, ponieważ pozwala na łatwiejszą nawigację po strukturze dokumentu i unika konfliktów z innymi elementami.

Pytanie 33

Jakie mogą być źródła rekordów dla raportu?

A. tabela
B. inny raport
C. zapytanie GRANT
D. zapytanie INSERT INTO
Odpowiedzi, które wskazują na inny raport, zapytanie GRANT lub zapytanie INSERT INTO jako źródła rekordów dla raportu, są niepoprawne. Inny raport, choć może zawierać dane, sam w sobie nie jest bezpośrednim źródłem do generowania nowych raportów. Może jednak posłużyć jako inspiracja lub szablon do tworzenia nowych analiz, co nie czyni go źródłem w sensie technicznym. Przykładowo, raport sprzedaży nie może być bezpośrednio wykorzystany jako źródło danych do raportu o wydatkach z powodu różnicy w kontekście i strukturze danych. Zapytanie GRANT natomiast, służy do przyznawania uprawnień użytkownikom w bazie danych, co jest zupełnie inną funkcjonalnością. Użycie tego zapytania w kontekście raportowania jest błędne, ponieważ nie ma ono związku z pozyskiwaniem danych, a jedynie z zarządzaniem dostępem. Na koniec, zapytanie INSERT INTO służy do wstawiania danych do tabel, a nie do ich pozyskiwania. Typowym błędem myślowym jest mylenie tych operacji z procesem tworzenia raportów, gdzie kluczowym elementem jest analizy danych już istniejących w tabelach, a nie dodawanie nowych danych. W kontekście tworzenia raportów, istotne jest, aby skupić się na źródłach, które już przechowują dane, a nie na operacjach, które te dane zmieniają lub manipulują.

Pytanie 34

W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
$z=mysqli_query($db,"SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a=mysqli_fetch_row($z);
echo "$a[1], $a[2]";

A. ulicy oraz miasta z pierwszego zwróconego wpisu
B. miasta i kodu pocztowego z pierwszego zwróconego wpisu
C. ulicy oraz miasta ze wszystkich zwróconych wpisów
D. miasta i kodu pocztowego ze wszystkich zwróconych wpisów
Pierwsza z niepoprawnych odpowiedzi sugeruje, że kod wypisuje ulicę i miasto z pierwszego zwróconego rekordu. Choć kod rzeczywiście korzysta z indeksów, to jednak nie wypisuje ulicy, lecz miasto i kod pocztowy. Kolejna odpowiedź sugeruje, że kod wyświetla ulicę i miasto ze wszystkich zwróconych rekordów. W rzeczywistości, kod jest skonstruowany w taki sposób, że ogranicza się do jednego wiersza danych, przez co nie ma możliwości wypisania informacji o wszystkich rekordach. Ostatnia z odpowiedzi stwierdza, że kod wypisuje miasto i kod pocztowy ze wszystkich zwróconych rekordów, co również jest błędne, ponieważ kod jedynie prezentuje dane pierwszego rekordu. Takie zrozumienie kodu może prowadzić do błędnych wniosków i nieprawidłowego użycia funkcji w praktyce tworzenia aplikacji webowych, dlatego kluczowe jest dokładne zapoznanie się z dokumentacją PHP oraz zasadami działania baz danych.

Pytanie 35

W algorytmie jeden z bloków zawiera akcję „Wypisz liczbę”. Jaki kształt może mieć ta akcja?

Ilustracja do pytania
A. Kształt 1
B. Kształt 3
C. Kształt 2
D. Kształt 4
Kształt 1 jest równoległobokiem, który w kontekście algorytmów często reprezentuje operacje wprowadzania lub wyprowadzania danych. W algorytmach i schematach blokowych, różne kształty mają przypisane konkretne funkcje, co jest standardem w projektowaniu programów. Równoległobok jest standardowym symbolem dla operacji wejścia i wyjścia, w tym wypisywania danych na ekranie. Przykładem zastosowania tego może być wypisywanie wyników obliczeń matematycznych na konsoli w językach takich jak Python czy Java. Używanie odpowiednich kształtów pozwala na łatwiejsze zrozumienie działania algorytmu przez innych programistów, co jest kluczowe w pracy zespołowej i podczas dokumentacji projektowej. Dobre praktyki w programowaniu zalecają jasność i przejrzystość schematów blokowych, co ułatwia ich późniejsze utrzymanie i rozwój. Szukając standardów, warto odnieść się do norm ISO/IEC 19515:2017 dotyczących diagramów przepływu pracy, które podkreślają znaczenie konwencji w projektowaniu algorytmów.

Pytanie 36

Zaprezentowano rezultat zastosowania CSS oraz odpowiadający mu kod HTML. W jaki sposób trzeba zdefiniować styl, aby uzyskać takie formatowanie?

Ilustracja do pytania
A. #first-letter { font-size: 400%; color: blue; }
B. .first-letter { font-size: 400%; color: blue; }
C. p.first-letter { font-size: 400%; color: blue; }
D. p::first-letter { font-size: 400%; color: blue; }
Odpowiedź jest prawidłowa, ponieważ selektor CSS p::first-letter precyzyjnie określa, że stylizacja ma być zastosowana do pierwszej litery każdego akapitu, który jest oznaczony tagiem p. Jest to pseudo-element CSS, który umożliwia dostęp do pierwszej litery bloku tekstu w celu nadania jej unikalnego wyglądu. W tym przypadku zmieniono jej rozmiar na 400% oraz kolor na niebieski. Użycie ::first-letter jest zgodne z najlepszymi praktykami, gdyż pozwala na zachowanie semantyczności HTML i oddzielenie warstwy prezentacyjnej od treści, co jest kluczowe w responsywnym projektowaniu stron internetowych. Pseudo-elementy jak ::first-letter są niezwykle przydatne w tworzeniu estetycznych i czytelnych interfejsów użytkownika, zwłaszcza w przypadku publikacji zawierających dużo tekstu. Dobrą praktyką jest stosowanie pseudo-elementów w połączeniu z klasami i identyfikatorami, aby stylizacja była elastyczna i mogła być łatwo dostosowywana zgodnie z potrzebami projektu.

Pytanie 37

Na podstawie fragmentu dokumentu HTML, określ co należy wpisać w miejsce kropek w odnośniku w menu, aby przenosił on do rozdziału 2.

Fragment menu
<a ...>Rozdział 2</a>

Fragment dalej w dokumencie
<h1 id="r2" name="sekcja2" class="rozdzial2">Rozdział 2<h1>
A. href = "#r2"
B. href = "sekcja2"
C. href = "r2"
D. href = "#sekcja2"
Niestety, Twoja odpowiedź nie jest prawidłowa. Prawidłowa odpowiedź 'href="#r2"' odwołuje się do identyfikatora (id) 'r2' na tej samej stronie. W HTML, atrybut 'href' w tagu 'a' służy do określenia miejsca docelowego odnośnika. Przed identyfikatorem umieszcza się znak '#', który informuje przeglądarkę, że ma poszukać elementu z danym 'id' na tej samej stronie. Błędy w niepoprawnych odpowiedziach wynikają z pominięcia znaku '#' lub zastosowania nieprawidłowego identyfikatora. Pamiętaj, że identyfikator powinien być unikalny dla każdego elementu na stronie i powinien być używany w odnośniku dokładnie w takiej samej formie. W przypadku 'href="r2"' i 'href="sekcja2"', pominięto znak '#', co sprawia, że przeglądarka będzie szukać zasobu o podanej ścieżce, a nie identyfikatora na tej samej stronie. 'href="#sekcja2"' zawiera niepoprawny identyfikator, który nie istnieje na stronie. Kluczowe jest zrozumienie, jak działają identyfikatory i jaki mają wpływ na nawigację na stronie.

Pytanie 38

Jeśli zmienna $x przechowuje dowolną dodatnią liczbę naturalną, przedstawiony kod źródłowy PHP ma za zadanie wyświetlić:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od 0 do x-1
B. kolejne liczby od x do 0
C. losowe liczby z przedziału (0, x)
D. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
Niektóre odpowiedzi sugerują niepoprawne interpretacje kodu PHP. Na przykład, propozycja wyświetlenia losowych liczb z zakresu (0, x) nie jest prawidłowa, ponieważ nie ma w kodzie żadnego komponentu generującego liczby losowe. Również pomysł na wczytywanie liczb z klawiatury jest nieprawidłowy, kod nie zawiera żadnej funkcji umożliwiającej wprowadzanie danych przez użytkownika. Ostatecznie, propozycja wyświetlenia liczb od x do 0 również jest błędna, gdyż zmienna $licznik jest zawsze inkrementowana, co oznacza, że jej wartość zawsze wzrasta. Błędne interpretacje wynikają z niewłaściwego zrozumienia funkcjonowania pętli while oraz procesu inkrementacji zmiennych. Ważne jest, aby zawsze dokładnie analizować każdy fragment kodu, zwracając szczególną uwagę na instrukcje warunkowe i manipulacje zmiennymi.

Pytanie 39

Które z poniższych poleceń JavaScript zmieni kolor tekstu na niebieski w paragrafie oznaczonym w HTML?

<p id="jeden">Kwalifikacja EE.01</p>
A. document.getElementById("jeden").color = "blue";
B. document.getElementById("jeden").style.color = "blue";
C. document.getElementById("jeden").style.background-color = "blue";
D. document.getElementById("jeden").background-color = "blue";
W języku JavaScript do zmiany stylu elementu HTML używamy obiektu style powiązanego z danym elementem. W przypadku zmiany koloru tekstu w akapicie używamy właściwości color. Poprawna składnia to document.getElementById("jeden").style.color = "blue";. Funkcja getElementById pobiera element o podanym identyfikatorze w tym przypadku jeden. Następnie poprzez przypisanie wartości blue do style.color zmieniamy kolor tekstu wewnątrz tego elementu na niebieski. Jest to zgodne z praktykami programowania w JavaScript ponieważ separacja stylów od treści jest istotna dla czytelności i utrzymania kodu a użycie style pozwala na bezpośrednią modyfikację właściwości CSS. Dobre praktyki sugerują aby stylowanie umieszczać w plikach CSS jednak JavaScript daje możliwość dynamicznej modyfikacji stylów co jest użyteczne w interaktywnych aplikacjach webowych. Przykładowo podczas tworzenia dynamicznych interfejsów użytkownika możemy reagować na różne zdarzenia zmieniając style elementów w odpowiedzi na działania użytkownika co zwiększa responsywność i atrakcyjność aplikacji.

Pytanie 40

W CSS określono styl dla paragrafu, który nada mu poniższe cechy:

background-color: red;
color: blue;
margin: 40px;
A. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy zewnętrzne o wartości 40px
B. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy wewnętrzne o wartości 40px
C. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy zewnętrzne o wartości 40px
D. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy wewnętrzne o wartości 40px
W podanym przykładzie z CSS zastosowano trzy kluczowe właściwości stylizujące element HTML: background-color color oraz margin. Właściwość background-color określa kolor tła danego elementu tutaj przyjęto wartość red co oznacza czerwone tło. Właściwość color definiuje kolor tekstu w elemencie który w tym przypadku jest ustawiony na blue czyli niebieski. Ostatnią właściwością jest margin która odpowiada za marginesy zewnętrzne elementu. Marginesy zewnętrzne to przestrzeń wokół elementu od jego krawędzi do sąsiadujących elementów i w tym przykładzie mają wartość 40px. Takie ustawienia są często używane w praktyce aby zapewnić czytelność i estetykę projektu. Używanie marginesów zewnętrznych to dobra praktyka w celu zachowania odpowiednich odstępów w układzie strony. Warto podkreślić że użycie tych właściwości jest zgodne ze standardami CSS zapewniając kompatybilność z większością przeglądarek. Właściwe stosowanie kolorów i marginesów jest kluczowe w projektowaniu przyjaznym dla użytkownika UX oraz estetycznie spójnych interfejsów graficznych.