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: 23 kwietnia 2026 21:20
  • Data zakończenia: 23 kwietnia 2026 21:40

Egzamin zdany!

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

Aby wyciszyć dźwięk w filmie odtwarzanym w przeglądarce, do podanej definicji znacznika <video> powinien zostać dodany atrybut <video> <source src="film.mp4" type="video/mp4"> </video>

A. autoplay
B. muted
C. loop
D. controls
Atrybut 'muted' w znaczniku <video> jest kluczowy dla zarządzania dźwiękiem w odtwarzanych filmach. Gdy dodamy atrybut 'muted', zapewniamy, że film będzie odtwarzany bez dźwięku, co jest szczególnie istotne w kontekście doświadczenia użytkownika na stronie internetowej. W praktyce, wiele stron korzysta z automatycznego odtwarzania filmów w tle, co jest popularne w serwisach informacyjnych oraz mediach społecznościowych. Bez dźwięku, użytkownicy nie są rozpraszani, a strona nie wpływa negatywnie na ich doświadczenie przeglądania. Zgodnie z najlepszymi praktykami, należy również pamiętać o dostępności – filmy bez dźwięku mogą być łatwiej przyswajalne dla osób z problemami ze słuchem, a także unikamy sytuacji, w której nagłe dźwięki mogłyby wywołać dyskomfort. Atrybut 'muted' jest więc nie tylko funkcjonalny, ale także zgodny z zasadami projektowania stron internetowych, które stawiają na komfort użytkownika.

Pytanie 2

tr:nth-child(even) {background-color: #F2F2F2;}
Zastosowane formatowanie selektora tr:nth-child(even) spowoduje:
A. wypełnienie szarym tłem parzystych wierszy tabeli.
B. wypełnienie szarym tłem nieparzystych wierszy tabeli.
C. wypełnienie wszystkich wierszy tabeli szarym tłem.
D. oddzielenie wierszy nieparzystych od parzystych wierszem z szarym tłem.
W tym zadaniu kluczowe jest zrozumienie, jak dokładnie działa funkcja nth-child() w CSS oraz co oznaczają słowa kluczowe even i odd. Wiele osób intuicyjnie myli te pojęcia i zakłada, że selektor zadziała trochę „magicznie”, np. tylko na wybrane elementy, albo że numeracja zaczyna się od zera. Tymczasem przeglądarka liczy dzieci danego elementu rodzica od 1 w górę, w kolejności ich występowania w drzewie DOM. Słowo kluczowe even oznacza wszystkie elementy o indeksach parzystych: 2, 4, 6, 8 itd. Dlatego tr:nth-child(even) nie może oznaczać wypełnienia nieparzystych wierszy tabeli – do tego służyłby selektor tr:nth-child(odd). Pomylenie even z odd to bardzo typowy błąd, zwłaszcza na początku nauki CSS, bo nazwy są krótkie i łatwo je skojarzyć odwrotnie, niż trzeba. Kolejne nieporozumienie to przekonanie, że nth-child(even) obejmuje wszystkie wiersze tabeli. Gdyby chodziło o wszystkie wiersze <tr>, wystarczyłby prosty selektor tr bez nth-child. Funkcja nth-child() zawsze wybiera tylko pewien podzbiór dzieci, zgodnie z podanym wzorem, więc mówienie, że styl z taką funkcją dotyczy wszystkich elementów, jest po prostu sprzeczne z definicją tej konstrukcji w specyfikacji CSS. Pojawia się też czasem myśl, że taka reguła ma jakiś „separujący” charakter, czyli że wstawia wizualny wiersz oddzielający nieparzyste i parzyste rekordy. CSS nie dodaje nowych elementów do DOM, on tylko styluje te, które już istnieją. tr:nth-child(even) nie tworzy żadnego dodatkowego wiersza, nie wstawia separatorów, po prostu zmienia tło wybranych istniejących wierszy, zgodnie z parzystością ich indeksu. W praktyce, jeśli chcemy mieć efekt wyraźnego rozdzielenia wierszy, używa się obramowań (border), cieni lub właśnie naprzemiennego kolorowania, ale zawsze w ramach istniejących <tr>. Dobrym nawykiem jest też pamiętanie, że nth-child() liczy wszystkie dzieci danego rodzica, więc jeśli w tabeli mamy thead, tbody i tfoot, to często stosuje się selektor tbody tr:nth-child(even), żeby uniknąć nieoczekiwanych przesunięć numeracji przez nagłówki. Zrozumienie tej zasady bardzo ułatwia późniejsze korzystanie z bardziej złożonych wzorów nth-child, jak np. 2n+1 czy 3n.

Pytanie 3

W JavaScript stworzono funkcję o nazwie licz_pitagoras, która oblicza długość przeciwprostokątnej w trójkącie prostokątnym, zgodnie z twierdzeniem Pitagorasa. Funkcja przyjmuje dwa parametry wejściowe i zwraca wynik. Poprawne wywołanie tej funkcji, wraz z uzyskaniem zwróconej wartości, będzie miało formę

A. c = licz_pitagoras(a, b);
B. licz_pitagoras(a, b) = c;
C. licz_pitagoras(a, b);
D. licz_pitagoras(a, b, c);
Odpowiedź 'c = licz_pitagoras(a, b);' jest poprawna, ponieważ przedstawia sposób wywołania funkcji oraz przypisania jej wyniku do zmiennej. W języku JavaScript, aby skorzystać z funkcji, należy najpierw ją wywołać, a następnie, w przypadku gdy funkcja zwraca wartość, możemy tę wartość przypisać do zmiennej. W tym przypadku, funkcja 'licz_pitagoras' przyjmuje dwa argumenty, które odpowiadają długościom dwóch przyprostokątnych w trójkącie prostokątnym i zwraca długość przeciwprostokątnej, obliczoną na podstawie wzoru a^2 + b^2 = c^2. Przykład praktyczny to wykorzystanie tej funkcji w aplikacji, która oblicza długości boków trójkątów, co jest przydatne w różnych dziedzinach, takich jak inżynieria czy architektura. Warto pamiętać o dobrej praktyce, aby nazwy funkcji były opisowe, co ułatwia zrozumienie ich funkcji bez potrzeby zagłębiania się w implementację.

Pytanie 4

Na stronie internetowej dodano grafikę w kodzie HTML. Co się stanie, jeśli plik rysunek.png nie zostanie odnaleziony przez przeglądarkę?

<img src="rysunek.png" alt="pejzaż">
A. zademonstruje błąd wyświetlania strony w miejscu grafiki
B. wyświetli tekst "pejzaż" w miejscu grafiki
C. nie pokaże strony internetowej
D. wstawi tekst "rysunek.png" zamiast grafiki
W HTML znacznik <img> jest używany do wstawiania obrazów na stronach. Ważne, żeby pamiętać o atrybucie src, który mówi przeglądarce, skąd ma wziąć obraz. A alt to taki tekst zapasowy, który wyświetli się, jeśli obrazek nie załaduje się z jakiegoś powodu. To istotne, bo ułatwia dostępność dla osób, które mogą mieć trudności z widzeniem. Na przykład, gdy plik rysunek.png się nie załaduje, to wyświetli się tekst z atrybutu alt - w tym przypadku słowo pejzaż. To jest zgodne z dobrymi praktykami, bo każdy powinien wiedzieć, co miało być na obrazku, nawet jeśli go nie widzi. To także pomaga wyszukiwarkom w indeksowaniu treści. A używanie atrybutu alt to rzecz, którą warto stosować, jeśli chcemy, żeby nasza strona była dostępna i przyjazna dla użytkowników. Przy tym, przypomina mi się, że to też jest zgodne z zasadami dostępności WCAG.

Pytanie 5

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return oblicz()">dodaj</button>
B. <button onselect="return dodaj()">oblicz</button>
C. <button onselect="return dodaj()">dodaj</button>
D. <button onclick="return dodaj()">dodaj</button>
Gratulacje, wybrałeś poprawną odpowiedź. Przycisk w JavaScript jest aktywowany poprzez zdarzenie onclick, które jest wyzwalane po kliknięciu przycisku. Właściwość onclick jest jednym z wielu zdarzeń w JavaScript, które są używane do obsługi interakcji użytkownika. Kiedy użytkownik kliknie przycisk, zdarzenie onclick jest wywoływane i kod zawarty w tym zdarzeniu jest wykonany. W tym przypadku, kod to 'return dodaj()', co oznacza, że funkcja 'dodaj' jest wywoływana. Ta funkcja została zdefiniowana w skrypcie JavaScript i realizuje dodawanie dwóch liczb. Zdarzenie onclick jest często używane w praktycznych zastosowaniach, takich jak przyciski subskrybcji, przyciski do logowania czy przyciski do przesyłania formularzy. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają utrzymanie interakcji użytkownika w kodzie JavaScript zamiast HTML.

Pytanie 6

W językach programowania o układzie strukturalnym, aby przechować dane o 50 uczniach (ich imionach, nazwiskach oraz średniej ocen), konieczne jest zastosowanie

A. klasy z 50 elementami typu tablicowego
B. struktury z 50 elementami o składowych typu tablicowego
C. tablicy z 50 elementami o składowych typu łańcuchowego
D. tablicy z 50 elementami o składowych strukturalnych
Wybór tablicy 50 elementów o składowych strukturalnych jest prawidłowy ze względu na potrzebę przechowywania złożonych danych o uczniach. W tym przypadku, każdy element tablicy powinien reprezentować jednego ucznia i zawierać jego imię, nazwisko oraz średnią ocen. Struktura danych, taka jak struktura, pozwala na grupowanie różnych typów danych w jeden obiekt, co jest zgodne z dobrymi praktykami programowania w językach strukturalnych. Przykładowo, w języku C można zadeklarować strukturę dla ucznia w następujący sposób: `struct Uczen { char imie[50]; char nazwisko[50]; float srednia; };`. Następnie można utworzyć tablicę 50 elementów tej struktury: `struct Uczen uczniowie[50];`. Stosowanie struktur w tym kontekście ułatwia zarządzanie danymi i zwiększa czytelność kodu, co jest szczególnie ważne w przypadku projektów wymagających łatwego dostępu do różnych atrybutów obiektów. Używanie dobrze zdefiniowanych struktur danych jest zgodne z zasadami programowania obiektowego, nawet w językach proceduralnych, i przyczynia się do lepszej organizacji kodu oraz jego skalowalności.

Pytanie 7

Aby aplikacja PHP mogła nawiązać połączenie z bazą danych, konieczne jest najpierw użycie funkcji o nazwie

A. mysqli_connect
B. mysqli_close
C. mysqli_create_db
D. mysqli_select_db
Funkcja mysqli_connect jest kluczowym elementem w procesie komunikacji aplikacji PHP z bazą danych. Jej głównym zadaniem jest nawiązanie połączenia z serwerem MySQL, co jest niezbędne, zanim jakiekolwiek operacje na danych mogą zostać przeprowadzone. Wywołując tę funkcję, należy podać odpowiednie parametry: nazwę hosta (zazwyczaj 'localhost'), nazwę użytkownika, hasło oraz nazwę bazy danych, z którą chcemy pracować. Na przykład: $conn = mysqli_connect('localhost', 'user', 'password', 'database');. Dobrą praktyką jest również sprawdzenie, czy połączenie zostało nawiązane poprawnie, co można zrobić za pomocą odpowiednich warunków. W przypadku ewentualnych błędów podczas nawiązywania połączenia, funkcja ta zwraca wartość false, co umożliwia dalsze działania naprawcze. Dodatkowo, w kontekście bezpieczeństwa, warto stosować techniki takie jak przygotowywanie zapytań (prepared statements), aby zminimalizować ryzyko ataków typu SQL Injection. Właściwe nawiązanie połączenia z bazą danych jest fundamentem każdej aplikacji webowej opartej na PHP.

Pytanie 8

Jaką funkcję pełni instrukcja DROP w języku SQL?

A. usunąć już istniejący obiekt
B. wprowadzić nowy obiekt
C. zmienić właściwości obiektu
D. aktualizować dane obiektu
Instrukcja DROP w języku SQL jest kluczowym narzędziem do zarządzania bazami danych, używaną do usuwania istniejących obiektów, takich jak tabele, widoki czy procedury składowane. Kiedy używamy polecenia DROP, nie tylko usuwamy obiekt z bazy danych, ale również wszystkie dane z nim związane, co sprawia, że operacja ta jest nieodwracalna. Przykładowo, jeśli chcemy usunąć tabelę o nazwie 'Użytkownicy', musimy użyć polecenia DROP TABLE Użytkownicy. Ważne jest, aby przed wykonaniem takiej operacji upewnić się, że dane są już zarchiwizowane lub nie są już potrzebne, ponieważ ta instrukcja nie da nam możliwości ich odzyskania po wykonaniu. W praktyce, DROP powinno być stosowane z rozwagą — zaleca się przed wykonaniem operacji wykorzystanie polecenia SELECT, aby sprawdzić, jakie dane są w danym obiekcie. Zgodnie z najlepszymi praktykami, organizacje powinny wprowadzać polityki dotyczące usuwania danych, aby zminimalizować ryzyko przypadkowej utraty ważnych informacji.

Pytanie 9

W znaczniku (w sekcji ) strony internetowej nie zamieszcza się informacji odnoszących się do

A. rodzaju dokumentu
B. kodowania
C. autora
D. automatycznego przeładowania
Możesz pomyśleć, że odpowiedź o automatycznym odświeżaniu, kodowaniu czy autorze ma sens, bo te info są faktycznie w znaczniku <meta>. Ale są tu pewne niuanse, które mogą wprowadzać w błąd. Znacznik <meta> dostarcza nam metadanych, ale nie mówi nic o typie dokumentu. Typ dokumentu jest bardzo ważny dla przeglądarek, bo informuje je o tym, w jakim standardzie jest stworzona strona. To rolę pełni deklaracja DOCTYPE, która pojawia się na początku dokumentu HTML. Warto więc ogarnąć różnicę pomiędzy metadanymi a typem dokumentu, bo to częsty błąd. Znacznik <meta> zajmuje się informacjami, które mogą poprawić SEO i doświadczenia użytkownika, natomiast typ dokumentu to bardziej techniczna kwestia, która zapewnia, że strona działa jak należy. Dobrze jest pamiętać, że odpowiednie stosowanie zarówno znaczników <meta>, jak i DOCTYPE jest kluczowe, jeśli chcemy, by nasza strona działała sprawnie.

Pytanie 10

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

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

Pytanie 11

W kodzie HTML zdefiniowano formularz, który wysyła dane do pliku formularz.php. Po naciśnięciu przycisku typu submit przeglądarka przechodzi do poniższego adresu:

../formularz.php?imie=Anna&nazwisko=Kowalska
Na podstawie podanego adresu można stwierdzić, że dane do pliku formularz.php zostały przesłane metodą:
A. POST
B. COOKIE
C. SESSION
D. GET
Twoja odpowiedź jest prawidłowa. Dane do pliku formularz.php zostały przesłane metodą GET, co można stwierdzić na podstawie adresu URL, który zawiera parametry (imię=Anna&nazwisko=Kowalska) przekazane po znaku zapytania (?). W metodzie GET, parametry są dołączane do adresu URL i są widoczne w pasku adresu przeglądarki. Jest to uniwersalny sposób przesyłania danych, który jest zgodny ze standardem HTTP i jest szeroko stosowany w praktyce. Metoda GET jest najprostszym sposobem przesyłania danych, ale ze względu na widoczność parametrów w adresie URL, nie jest zalecana do przesyłania ważnych informacji, takich jak hasła. W praktyce, metoda GET jest często stosowana do przekazywania informacji niezbędnych do wygenerowania konkretnej strony, takich jak identyfikatory zasobów lub parametry filtrowania.

Pytanie 12

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <section> </section>
B. <embed> </embed>
C. <video> </video>
D. <div> </div>
W tym pytaniu kluczowe jest zrozumienie, że sam znacznik `<source>` nie osadza wideo na stronie, tylko dostarcza przeglądarce informacji o konkretnym pliku i jego typie. Rolę kontenera pełni inny element. Często uczniowie próbują „owijać” źródło wideo w różne ogólne znaczniki, takie jak `<div>` czy `<section>`, bo kojarzą je z budowaniem struktury strony. To jednak tylko znaczniki blokowe do organizowania layoutu i treści, nie mają one natywnej logiki odtwarzania multimediów. Jeśli włożymy `<source>` do `<div>` lub `<section>`, przeglądarka po prostu potraktuje to jako zwykły kod, który niczego nie odtwarza, bo brakuje elementu multimedialnego odpowiedzialnego za interpretację tego źródła. Innym skojarzeniem jest `<embed>`. Ten znacznik był (i bywa nadal) używany do osadzania zewnętrznych zasobów, np. animacji Flash, PDF-ów czy innych obiektów. W czasach HTML5 jego rola jest jednak ograniczona, a dla wideo i audio wprowadzono dedykowane elementy `<video>` i `<audio>`. Użycie `<embed>` do wideo jest możliwe, ale nie jest zgodne z nowoczesnymi standardami i pozbawia nas wielu zalet, takich jak spójne API, lepsza dostępność czy łatwiejsza kontrola stylów. Typowym błędem myślowym jest tu traktowanie każdego znacznika, który „coś osadza”, jako równoważnego. HTML5 mocno stawia na semantykę: `<video>` jasno mówi, że mamy do czynienia z treścią wideo, `<section>` – z logiczną sekcją dokumentu, `<div>` – z neutralnym kontenerem, a `<embed>` – z osadzonym zasobem o mniej precyzyjnym przeznaczeniu. Przeglądarka oczekuje, że `<source>` pojawi się wewnątrz elementu multimedialnego, czyli właśnie `<video>` lub `<audio>`. Z mojego doświadczenia wynika, że kiedy ktoś próbuje wkładać `<source>` w inne znaczniki, to najczęściej wynika to z mylenia struktury dokumentu (layoutu) z elementami odpowiedzialnymi za realne odtwarzanie treści. Dobra praktyka w nowoczesnym webdevie to korzystanie z elementów zgodnie z ich semantyką, dlatego do wideo zawsze używamy `<video>` jako kontenera, a `<source>` tylko jako definicji plików w środku.

Pytanie 13

Baza danych zawiera tabelę artykuły z kolumnami: nazwa, typ, producent, cena. Aby wypisać wszystkie nazwy artykułów jedynie typu pralka, których cena mieści się w zakresie od 1000 PLN do 1500 PLN, należy użyć zapytania

A. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 AND 1500
B. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena BETWEEN 1000 AND 1500
C. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 OR 1500
D. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena FROM 1000 TO 1500
Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje polecenie SQL w odpowiedni sposób, aby wybrać nazwy artykułów, które spełniają określone kryteria. Słowo kluczowe 'BETWEEN' jest używane do określenia wartości w przedziale, co w tym przypadku oznacza, że cena artykułów musi mieścić się między 1000 a 1500 PLN. W połączeniu z warunkiem 'AND' zapewnia, że tylko te artykuły, które są typu 'pralka' i mają cenę w podanym przedziale, zostaną wyświetlone. W praktyce takie zapytanie jest niezwykle użyteczne w kontekście e-commerce, gdzie często przeprowadza się filtrowanie produktów według określonych parametrów. Dobrą praktyką w programowaniu SQL jest również używanie podwójnych cudzysłowów dla wartości tekstowych, co jest zgodne z niektórymi standardami SQL, chociaż w wielu systemach baz danych akceptowane są również pojedyncze cudzysłowy. Przykłady zastosowania tego zapytania można znaleźć w systemach zarządzania zapasami, gdzie potrzebne jest szybkie generowanie list produktów spełniających specyficzne wymagania klientów.

Pytanie 14

Funkcja agregująca AVG wykorzystana w zapytaniu

SELECT AVG(cena) FROM uslugi;
ma na celu
A. zsumowanie wszystkich kosztów usług
B. wyliczenie średniej arytmetycznej cen wszystkich usług
C. obliczenie liczby dostępnych usług w tabeli
D. znalezienie najwyższej ceny za usługi
Funkcja agregująca AVG w języku SQL oblicza średnią arytmetyczną wartości w określonej kolumnie, w tym przypadku w kolumnie 'cena' tabeli 'uslugi'. W kontekście baz danych, obliczanie średniej jest kluczowym narzędziem analitycznym, które pozwala na uzyskanie ogólnego obrazu wartości danej kolumny. W praktyce, analiza średnich cen usług może być użyteczna dla menedżerów chcących dostosować strategię cenową lub dla działów finansowych oceniających wydajność sprzedaży. Przykładowo, jeżeli średnia cena usług wynosi 100 zł, a kolejny miesiąc przynosi spadek do 80 zł, jest to sygnał do analizy powodów obniżenia przychodów. Stosowanie funkcji AVG jest zgodne z najlepszymi praktykami w zakresie analizy danych, gdyż pozwala na podejmowanie decyzji opartych na faktach i liczbach. Warto również zauważyć, że do obliczeń średnich często używa się danych z różnych grup, co może pomóc w zrozumieniu trendów oraz wzorców w zachowaniach klientów na rynku.

Pytanie 15

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

A. <img href="rys.jpg" height="120px" width="80px" info="krajobraz">
B. <img src="rys.jpg" height="120px" width="80px" info="krajobraz">
C. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz">
D. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz">
Odpowiedź <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"> jest na pewno dobra! Używasz fajnego atrybutu 'src' do wskazania, skąd bierzesz obrazek, co jest super ważne. Atrybuty 'width' i 'height' też są dobrze ustawione, bo określają, jak duży ma być obrazek na stronie. To naprawdę przydaje się, zwłaszcza jak robimy responsywne strony. A ten 'alt', to świetny pomysł – daje tekst alternatywny, co bardzo pomaga osobom, które korzystają z czytników ekranu. Bez tego mogą nie wiedzieć, co jest na obrazku, a to jest spoko, bo dba o dostępność. Co do pikseli, używasz ich standardowo, ale pomyśl, że w CSS można też iść w procenty czy jednostki względne, żeby było jeszcze elastyczniej. W sumie, gdybyś chciał, mógłbyś bawić się CSS-em do stylizacji obrazów tła, co też sprawia, że wszystko lepiej się dopasowuje do różnych ekranów.

Pytanie 16

Który z poniższych zapisów w HTML określa kodowanie znaków stosowane w dokumencie?

A. <meta encoding="UTF-8">
B. <encoding="UTF-8">
C. <charset="UTF-8">
D. <meta charset="UTF-8">
Zapis <meta charset="UTF-8"> jest prawidłową deklaracją kodowania znaków w dokumencie HTML. Element <meta> jest używany w sekcji <head> dokumentu i pozwala na zdefiniowanie różnych metadanych, w tym kodowania znaków. Użycie "UTF-8" jako wartości dla atrybutu charset oznacza, że dokument będzie używał kodowania Unicode, które jest standardem preferowanym w sieci. Dzięki temu, dokumenty mogą poprawnie wyświetlać znaki z różnych języków, co jest kluczowe w zglobalizowanym świecie internetu. Przykładem zastosowania tego zapisu może być strona internetowa, która zawiera teksty w wielu językach, co wymaga wsparcia dla różnorodnych znaków diakrytycznych i symboli. Warto również podkreślić, że zgodnie z zasadami dobrych praktyk, zawsze powinno się definiować kodowanie znaków w dokumencie HTML, aby uniknąć problemów z wyświetlaniem treści, co może negatywnie wpłynąć na doświadczenia użytkowników oraz SEO strony.

Pytanie 17

Który z typów danych w C++ oferuje najszerszy zakres wartości?

A. long int
B. int
C. short
D. long long
Wybór niewłaściwego typu danych może prowadzić do wielu problemów w programowaniu. Typy 'short', 'int' oraz 'long int' występują w C++ i mają swoje ograniczenia. Typ 'short' jest przeznaczony do przechowywania mniejszych wartości, co czyni go niewłaściwym wyborem w przypadku, gdy potrzebujemy dużych liczb. Typ 'int' ma zazwyczaj rozmiar 32 bitów na większości platform, co również ogranicza zakres wartości, które możemy reprezentować, sięgając od -2 147 483 648 do 2 147 483 647. Z kolei typ 'long int' może mieć różne rozmiary w zależności od architektury komputera, chociaż często jest to również 32 bity, co nie dostarcza większego zakresu. Typowe błędy myślowe, które mogą prowadzić do wybrania niewłaściwego typu danych, to założenie, że 'long int' zawsze będzie większy od 'int', co nie jest prawdą w przypadku systemów 32-bitowych. W praktyce, programiści powinni kierować się specyfikacjami swojego środowiska oraz zrozumieć potrzeby dotyczące zakresu wartości, które będą używane w programie. Dobrym nawykiem jest również testowanie programu z różnymi wartościami, aby upewnić się, że nie wystąpią błędy przepełnienia, co mogłoby prowadzić do nieprzewidywalnych wyników lub awarii aplikacji.

Pytanie 18

Jakie będzie działanie po naciśnięciu przycisku oznaczonego jako "niebieski", który uruchamia podany kod JavaScript?

<p id="para1">Przykładowy tekst</p><p> i skrypt</p>
<button onClick="changeColor('blue');">niebieski</button>

<script type="text/javascript">
function changeColor(newColor)
{
var elem = document.getElementById("para1");
elem.style.color = newColor;
}
</script>
A. Zmiana koloru tekstu "Przykładowy tekst i skrypt" na niebieski
B. Zmiana koloru tekstu "Przykładowy tekst" na niebieski
C. Zmiana koloru tekstu "i skrypt" na niebieski
D. Zmiana barwy przycisku na niebieski
Kod JavaScript przedstawiony w pytaniu definiuje funkcję changeColor która przyjmuje jeden argument newColor. Po wywołaniu funkcji przez kliknięcie przycisku funkcja ta używa metody document.getElementById aby pobrać element o identyfikatorze para1. Identyfikator ten jest przypisany do pierwszego elementu paragrafu zawierającego tekst Przykładowy tekst. Następnie w ramach tego elementu zmieniany jest kolor tekstu poprzez przypisanie newColor do właściwości style.color. W omawianym przypadku newColor przyjmuje wartość blue co oznacza że tekst Przykładowy tekst zmieni kolor na niebieski. Warto podkreślić że manipulacja DOM przy użyciu JavaScript jest powszechnie stosowaną techniką w tworzeniu dynamicznych interfejsów użytkownika. Używanie metod takich jak getElementById jest standardem ze względu na ich prostotę oraz efektywność w selekcji elementów HTML. W praktycznych zastosowaniach warto również pamiętać o zgodności ze standardami W3C oraz o możliwościach rozszerzenia za pomocą bibliotek takich jak jQuery które oferują jeszcze bardziej zaawansowane opcje manipulacji DOM.

Pytanie 19

W języku JavaScript zapisano poniższy fragment kodu. `````` Po uruchomieniu skryptu zmienna x

A. będzie miała wartość 10 i zostanie wyświetlona w głównym oknie przeglądarki internetowej
B. będzie miała wartość 11 i zostanie wyświetlona w konsoli przeglądarki internetowej
C. będzie miała wartość 10 i zostanie pokazana w dokumencie HTML
D. będzie miała wartość 11 i zostanie wyświetlona w oknie popup
Analizując niepoprawne odpowiedzi, można zauważyć, że opierają się one na nieprawidłowym rozumieniu działania kodu JavaScript. W pierwszej niewłaściwej odpowiedzi wskazuje się, że zmienna x będzie równa 11 i zostanie wypisana w oknie popup. Pomimo, że wartość zmiennej x rzeczywiście wynosi 11 przed próbą jej wyświetlenia, brak poprawnej składni w wywołaniu console.log skutkuje błędem, a kod nie zadziała zgodnie z zamierzeniem. Kolejne stwierdzenie sugeruje, że zmienna x pozostanie równa 10 i zostanie wypisana w dokumencie HTML. To jest również niepoprawne, ponieważ zmiana wartości zmiennej poprzez inkrementację miała miejsce, a jeśli kod działałby poprawnie, zmienna x by wynosiła 11. Wreszcie, ostatni błąd polega na twierdzeniu, że zmienna x będzie miała wartość 10 i zostanie wypisana w głównym oknie przeglądarki. To również jest niezgodne z rzeczywistością, ponieważ zmiana wartości zmiennej x przez operator inkrementacji prowadzi do uzyskania wartości 11. Dodatkowo, aby wyświetlić tę wartość w głównym oknie przeglądarki, należałoby użyć metody document.write lub innej odpowiedniej metody, co nie ma miejsca w analizowanym kodzie. W związku z tym, wszystkie te odpowiedzi nie są zgodne z rzeczywistością z powodu błędnej analizy kodu oraz pominięcia kluczowych elementów składniowych.

Pytanie 20

W programowaniu zmienna typu integer jest wykorzystywana do przechowywania

A. liczby całkowitej
B. wartości logicznej
C. liczby rzeczywistej
D. znaku
Wybór innego typu zmiennych zamiast integer to nie jest najlepsza decyzja z kilku powodów. Na przykład, typ char, który jest używany do przechowywania pojedynczych znaków, nie nadaje się do liczb całkowitych. Char zazwyczaj zajmuje 1 bajt pamięci i może pokrywać 256 różnych wartości, więc nie będzie to dobre dla liczb. Z kolei boolean, który reprezentuje prawdę lub fałsz, w ogóle nie nadaje się do liczenia, bo jego rola to przede wszystkim kontrola przepływu w programie. Zmienne float i double, które zajmują się liczbami rzeczywistymi, mogą mieć część dziesiętną, ale działają na innej zasadzie i mogą być mniej precyzyjne. Liczby zmiennoprzecinkowe są bardziej złożone, co sprawia, że są mniej wydajne w prostych obliczeniach. Dlatego używanie tych innych typów do pracy z liczbami całkowitymi jest po prostu nieefektywne i mija się z celem.

Pytanie 21

$x = 0; while($x < 5) { echo "$x,"; $x++; } Wskaż instrukcję, która jest funkcjonalnie równoważna dla podanej pętli while w języku PHP.

Ilustracja do pytania
A. Instrukcja 4
B. Instrukcja 1
C. Instrukcja 3
D. Instrukcja 2
Instrukcja while w PHP jest pętlą, która kontroluje warunek przed każdą iteracją. W jej przypadku zmienna $x jest początkowo równa 0, a warunek $x < 5 powoduje, że blok kodu wewnątrz pętli wykonuje się dopóki $x jest mniejsze od 5. Za każdym razem, gdy kod wewnątrz pętli się wykonuje, echo wyświetla aktualną wartość zmiennej $x, a następnie $x jest inkrementowane o 1. Instrukcja for, która jest funkcjonalnie równoważna tej pętli while, to taka, która zaczyna się z $x równe 0, kończy na $x mniejszym od 5, i w każdym kroku zwiększa $x o 1, dokładnie tak jak instrukcja 3. Odpowiednia struktura pętli for daje możliwość precyzyjnego określenia wszystkich trzech elementów: inicjalizacji zmiennej, warunku kontynuacji oraz zmiany wartości zmiennej po każdej iteracji, co zapewnia pełną kontrolę nad przebiegiem pętli i transparentność kodu, realizując te same funkcjonalności co pętla while w bardziej kompaktowy sposób. Tego typu podejście jest szeroko stosowane w branży ze względu na swoją czytelność i efektywność, co czyni je zgodnym z dobrymi praktykami programistycznymi.

Pytanie 22

Baza danych zawiera tabelę pod nazwą pracownicy, która ma pola: nazwisko, imię, pensja oraz wiek. Jak brzmi składnia zapytania, aby obliczyć średnią pensję pracowników?

A. select AVG(nazwisko) into pensja
B. select VAR(pensja) from nazwisko
C. select VAR(pracownicy) into pensja
D. select AVG(pensja) from pracownicy
Aby obliczyć średnią pensję pracowników w tabeli 'pracownicy', używamy funkcji agregującej AVG, która zwraca średnią wartość dla podanego pola. W kontekście SQL, składnia polecenia 'select AVG(pensja) from pracownicy' jest poprawna, ponieważ wskazuje, że chcemy obliczyć średnią z kolumny 'pensja' w tabeli 'pracownicy'. Funkcje agregujące, takie jak AVG, SUM, COUNT, MIN i MAX, są fundamentalne w analizie danych, ponieważ umożliwiają zestawienie wyników w sposób zrozumiały i zwięzły. Przydatność funkcji AVG można zauważyć w praktyce, gdy potrzebujemy ocenić wynagrodzenia w firmie, co może wpłynąć na decyzje dotyczące polityki płacowej. Przykładowo, w przypadku tabeli z danymi o wynagrodzeniach, takie zapytanie zwraca pojedynczą wartość – średnią pensję, co pozwala na szybkie zrozumienie sytuacji finansowej firmy. Zgodnie z standardami SQL, polecenia muszą być formułowane w sposób, który jasno określa zarówno źródło danych, jak i sposób ich agregacji, co zostało spełnione w tej odpowiedzi.

Pytanie 23

W języku PHP znak "//" wskazuje na

A. operator dzielenia całkowitego
B. początek skryptu
C. operator alternatywny
D. początek komentarza jednoliniowego
W języku PHP znak '//' oznacza początek komentarza jednoliniowego. Komentarze w PHP są istotnym elementem kodu, pozwalającym programistom na dodawanie adnotacji, które nie wpływają na wykonywanie skryptu. Komentarze są niezwykle pomocne, gdyż umożliwiają wyjaśnienie złożonych fragmentów kodu, co ułatwia jego dalsze utrzymanie i rozwijanie. Dzięki używaniu '//', programista może opisać, co dany fragment kodu robi, dla siebie lub innych osób przeglądających kod w przyszłości. Przykład zastosowania: jeśli mamy kod 'echo "Hello World!";', możemy dodać komentarz wyjaśniający: '// Wyświetla tekst Hello World!'. Warto zaznaczyć, że PHP pozwala także na korzystanie z komentarzy wieloliniowych, które zaczynają się od '/**' i kończą na '*/'. Stosowanie komentarzy jest zgodne z najlepszymi praktykami programistycznymi, które zalecają dokumentowanie kodu oraz poprawne jego komentowanie, co jest częścią standardów kodowania, takich jak PSR-1 oraz PSR-2, promujących czytelność i spójność w kodzie.

Pytanie 24

W języku HTML stworzono definicję tabeli. Który z rysunków ilustruje jej działanie?

Ilustracja do pytania
A. Rysunek 2
B. Rysunek 1
C. Rysunek 4
D. Rysunek 3
Prawidłowa odpowiedź to Rysunek 1 ponieważ odwzorowuje on strukturę tabeli opisaną w kodzie HTML zaprezentowanym w pytaniu. Kod HTML przedstawia tabelę z dwoma wierszami. Pierwszy wiersz zawiera dwie komórki z tekstami 'pierwszy' i 'drugi'. Drugi wiersz posiada jedną komórkę z tekstem 'trzeci' która zajmuje szerokość dwóch kolumn dzięki zastosowaniu atrybutu colspan=2. Właśnie ta cecha sprawia że drugi rysunek jest poprawny gdyż w nim komórka z tekstem 'trzeci' rozciąga się na szerokość dwóch kolumn tabeli. Takie podejście jest zgodne z zasadami projektowania tabel w HTML gdzie atrybut colspan pozwala na łączenie kolumn co jest szczególnie przydatne przy tworzeniu złożonych układów danych w tabelach. Dzięki zastosowaniu tego atrybutu można efektywnie zarządzać szerokością komórek i ich położeniem co zwiększa elastyczność w projektowaniu układów na stronach internetowych. Warto zwrócić uwagę na fakt że użycie atrybutu 'border' z wartością 1 powoduje wyświetlenie widocznej ramki co jest dobrze zilustrowane na Rysunku 1. Zrozumienie i umiejętne zastosowanie takich technik w projektowaniu stron jest kluczowe dla tworzenia przejrzystych i funkcjonalnych interfejsów użytkownika.

Pytanie 25

Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?

x = 0;
x += 10;
A. x = 0; x--; x *= 9;
B. x = 0; x++; x = x + 9;
C. x = 10; x = 0;
D. x = 10; x = x + 10;
Wybrana przez Ciebie odpowiedź, niestety nie jest zgodna z przykładem kodu przedstawionym na zdjęciu. Wszystkie niepoprawne odpowiedzi zawierają błędny rozumowanie dotyczące operacji na zmiennych w JavaScript. Bardzo częstym błędem jest mylenie operatorów inkrementacji i dekrementacji. Operator '--' w JavaScript zmniejsza wartość zmiennej o 1, a nie zwiększa. Również, operator '*=' jest skrótem dla mnożenia i przypisania wyniku do zmiennej, a nie dla dodawania. Kolejnym błędem jest niezrozumienie przypisania wartości do zmiennej. Instrukcja 'x = 10; x = 0;' przypisuje najpierw wartość 10 do zmiennej 'x', a potem nadpisuje ją wartością 0, co jest niezgodne z kodem na zdjęciu. To są typowe błędy, które prowadzą do niepoprawnych wniosków na temat działania JavaScript. Ważne jest zrozumienie podstawowych operatorów i ich działania, aby uniknąć takich pomyłek. Pamiętaj, że zrozumienie zasad działania języka programowania jest kluczowe dla tworzenia poprawnych i efektywnych kodów.

Pytanie 26

Jaki zapis znacznika <div> może występować w dokumencie HTML tylko raz, a jego ponowne użycie spowoduje pojawienie się błędów podczas walidacji dokumentu?

A. <div id="identyfikator">
B. <div>
C. <div class="klasa1 klasa2">
D. <div class="klasa">
Zapis <div id="identyfikator"> jest poprawny, ponieważ atrybut id w HTML powinien być unikalny w obrębie całego dokumentu. Oznacza to, że dla każdego elementu HTML można przypisać tylko jeden identyfikator, co pozwala na jednoznaczne odnalezienie danego elementu w kodzie. Przykładowo, w przypadku skryptów JavaScript lub stylów CSS, odwołując się do identyfikatora za pomocą selektora CSS (np. #identyfikator), mamy pewność, że dotykamy tylko jednego, konkretnego elementu. To podejście jest zgodne z zasadami dobrych praktyk webowych, które kładą duży nacisk na semantykę i czytelność kodu. Unikalność identyfikatora wspomaga również dostępność strony, umożliwiając czytnikom ekranu oraz innym technologiom asystującym łatwiejsze nawigowanie po dokumencie. Warto pamiętać, że w przypadku błędnego przypisania tego samego id do wielu elementów, walidacja HTML zgłosi błąd, co skutkuje problemami ze zgodnością z W3C i innymi standardami webowymi.

Pytanie 27

W języku JavaScript, aby uzyskać element wykorzystując metodę getElementById, jaką właściwością można zmienić jego zawartość?

A. innerBody
B. HTML
C. Body
D. innerHTML
Właściwość innerHTML jest kluczowym elementem manipulacji zawartością DOM (Document Object Model) w JavaScript. Umożliwia ona programistom dostęp do zawartości danego elementu HTML oraz jej modyfikację. Gdy pobieramy element za pomocą metody getElementById, mamy możliwość bezpośredniego zmienienia jego treści poprzez przypisanie nowego stringa do innerHTML. Przykładowo, jeśli mamy element o identyfikatorze 'myElement', możemy zaktualizować jego zawartość w następujący sposób: document.getElementById('myElement').innerHTML = 'Nowa treść!';. To podejście jest powszechnie stosowane w dynamicznych aplikacjach internetowych, gdzie treść na stronie musi być często aktualizowana w odpowiedzi na działania użytkownika. Warto jednak pamiętać, że użycie innerHTML niesie ze sobą pewne ryzyko związane z bezpieczeństwem, takie jak podatność na ataki XSS (Cross-Site Scripting). Dlatego zaleca się stosowanie tej właściwości z ostrożnością i rozważenie alternatyw, jak np. textContent, w przypadku, gdy nie potrzebujemy interpretować HTML. Dobrą praktyką jest również walidacja i sanitizacja danych wejściowych, aby zminimalizować ryzyko związane z wstrzyknięciem niepożądanych skryptów. W kontekście standardów kodowania, zasadniczo zaleca się preferowanie metod, które nie tylko poprawiają bezpieczeństwo, ale także czytelność kodu.

Pytanie 28

Funkcja napisana w PHP ma na celu

Ilustracja do pytania
A. zabezpieczenie bazy danych
B. ustawienie hasła do bazy danych
C. nawiązanie połączenia z bazą danych
D. pobranie informacji z bazy danych
Funkcja mysql_query z języka PHP jest używana do wykonywania zapytań SQL w bazie danych MySQL. W przedstawionym przykładzie zapytanie SELECT * FROM napisy pobiera wszystkie rekordy z tabeli o nazwie napisy. Jest to klasyczne zapytanie używane do uzyskania danych z bazy danych co czyni je podstawowym narzędziem programisty PHP operującego na bazach danych. Zwrócone dane mogą następnie być przetwarzane wyświetlane lub używane w dalszych operacjach aplikacji. Ważnym aspektem pracy z bazami danych jest ochrona przed atakami SQL Injection co można osiągnąć poprzez stosowanie przygotowanych wyrażeń lub funkcji takich jak mysqli_prepare. Warto też pamiętać że funkcja mysql_query jest przestarzała i niezalecana w nowych projektach a zamiast niej powinno się używać mysqli lub PDO. Obie te biblioteki oferują większe bezpieczeństwo i lepszą obsługę błędów co jest zgodne z aktualnymi standardami w branży. Praca z danymi wymaga nie tylko ich pobierania ale także odpowiedniego zarządzania czym zajmują się bardziej złożone mechanizmy jak ORM-y co upraszcza pracę z bazami danych i zwiększa czytelność kodu.

Pytanie 29

Z tabeli mieszkańcy należy uzyskać unikalne nazwy miejscowości, do czego konieczne jest użycie wyrażenia SQL z klauzulą

A. DISTINCT
B. UNIQUE
C. CHECK
D. HAVING
Wybór odpowiedzi CHECK, HAVING lub UNIQUE wskazuje na pewne nieporozumienia dotyczące zastosowania i znaczenia tych klauzul w SQL. Klauzula CHECK jest używana w kontekście definicji tabeli, aby zapewnić, że dane w danym atrybucie spełniają określone warunki, na przykład 'CHECK (wiek >= 0)', co oznacza, że wiek nie może być ujemny. Nie ma jednak zastosowania w kontekście eliminacji duplikatów z wyników zapytania. Klauzula HAVING jest z kolei używana do filtrowania grup z wyniku agregacji, na przykład w zapytaniu z użyciem GROUP BY. Użycie HAVING do eliminacji duplikatów z wyników bez wcześniejszego grupowania danych nie ma sensu. Z kolei UNIQUE to ograniczenie, które można ustawić na kolumnę w tabeli, aby zapewnić, że nie będą w niej występowały powtarzające się wartości. Chociaż jest związane z unikalnością, nie jest klauzulą, którą można wykorzystać w zapytaniach do eliminacji duplikatów z zestawów wyników. Typowym błędem jest mylenie tych koncepcji, co prowadzi do wyboru nieodpowiednich narzędzi w SQL do rozwiązania konkretnego problemu. Warto zatem dobrze zrozumieć różnice między tymi klauzulami, aby umiejętnie stosować je w praktyce i skutecznie zarządzać danymi.

Pytanie 30

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
B. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
C. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
D. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
Weryfikacja pola nazwa przy użyciu wyrażeń regularnych w aplikacji JavaScript jest kluczowym elementem zapewnienia integralności danych wejściowych. Niektóre przedstawione opcje zawierają błędne założenia na temat porządku i wymogów składniowych wzorca. Przykładowo, nieprawidłowe jest założenie, że jedynie dowolny ciąg cyfr (bez zer) wystarczy, ponieważ kod wyraźnie wymaga, aby po cyfrach nastąpiła jedna duża litera, a następnie minimum dwie małe litery. Niezrozumienie tego może prowadzić do błędnych założeń dotyczących logiki walidacji. Niedokładne opisy wzorca mogą prowadzić do błędów w implementacji, co może skutkować działaniem niezgodnym z oczekiwaniami. Ponadto, dobre praktyki programistyczne zawsze sugerują, aby dokumentacja była dokładna i odzwierciedlała rzeczywiste wymagania kodu, co w tym przypadku oznacza precyzyjne określenie kolejności i wymogów dotyczących znaków. Niewłaściwe rozumienie wyrażeń regularnych może również prowadzić do błędów bezpieczeństwa, takich jak podatność na wstrzykiwanie danych, dlatego kluczowe jest poprawne udokumentowanie wzorca, aby zapewnić bezpieczne przetwarzanie danych użytkowników.

Pytanie 31

Który format graficzny najlepiej nadaje się do zapisu obrazu z przezroczystością do zastosowania w serwisie internetowym?

A. PNG
B. BMP
C. SVG
D. JPG
Format PNG (Portable Network Graphics) jest najlepszym wyborem do zapisu obrazów z przezroczystością przeznaczonych na strony internetowe. PNG obsługuje przezroczystość alpha, co oznacza, że można uzyskać dowolny stopień przezroczystości na pikselach, co jest szczególnie przydatne w przypadku grafik wymagających gładkich przejść lub cieni. Dzięki temu grafiki mogą być umieszczane na różnych tłach bez widocznych krawędzi, co jest kluczowe w designie stron internetowych. Warto również zauważyć, że PNG wykorzystuje kompresję bezstratną, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas zapisu. W praktyce, format PNG jest idealny do logo, ikon, obrazów z tekstem oraz ilustracji, gdzie ważna jest jakość i przezroczystość. Standardy webowe, takie jak WCAG, również zalecają używanie formatów, które zapewniają dostępność, a PNG doskonale wpisuje się w te wymagania, umożliwiając tworzenie estetycznych i funkcjonalnych stron. Ponadto, wsparcie dla formatu PNG jest szerokie, co zapewnia jego uniwersalność w różnych przeglądarkach i na różnych urządzeniach.

Pytanie 32

Który z elementów HTML ma charakter bloku?

A. p
B. span
C. strong
D. img
Czasami ludzie mają problemy z rozumieniem znaczenia <img>, <span> i <strong>, co może prowadzić do nieporozumień. Znacznik <img> to element inline, który służy do wstawiania obrazków do dokumentów HTML. Elementy inline nie zaczynają nowej linii, więc obrazek dodany przez <img> wpasowuje się w tekst i nie wywołuje żadnej przerwy. Dlatego <img> nie jest elementem blokowym i nie nadaje się do dzielenia treści akapitów, co jest istotne w kontekście struktury dokumentu. Z kolei <span> też jest inline i głównie służy do stylizacji konkretnego fragmentu tekstu, bez zmiany jego ogólnej struktury. To przydatne, gdy chcesz zastosować CSS do wybranych części, ale nie pomoże w budowaniu większych sekcji treści. A znacznik <strong>? No cóż, jest używany do podkreślenia ważności tekstu, co zazwyczaj oznacza pogrubienie, ale i tak nie wpływa na układ strony w sensie blokowym. Elementy inline, jak <img>, <span> i <strong>, nie tworzą widocznych sekcji w treści, co ogranicza ich zastosowanie przy budowaniu struktury dokumentu. Żeby stworzyć logiczne bloki tekstowe i sekcje na stronie, warto korzystać z elementów blokowych, jak <p>, by zapewnić lepszą czytelność i spełniać zasady semantyczne HTML.

Pytanie 33

W instrukcji warunkowej w JavaScript powinno się zweryfikować sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza od 100. Taki warunek należy zapisać w następujący sposób:

A. if ( a > 0 || b > 0 || b > 100)
B. if ( a > 0 || (b > 0 && b < 100))
C. if ( a > 0 && b > 0 && b < 100)
D. if ( a > 0 && b > 0 || b > 100)
Odpowiedź if ( a > 0 && b > 0 && b < 100) jest poprawna, ponieważ precyzyjnie spełnia wszystkie wymagane warunki. Wyrażenie to sprawdza, czy obie zmienne a i b są dodatnie, przy czym dodatkowo b musi być mniejsze niż 100. W kontekście programowania, taki sposób sprawdzania warunków jest zgodny z najlepszymi praktykami, gdyż wykorzystuje operator logiczny AND (&&), co zapewnia, że wszystkie warunki muszą być spełnione jednocześnie. Na przykład, w aplikacji, w której mamy do czynienia z ograniczeniami dla zmiennej b, takie podejście pozwala na kontrolowanie wartości, co jest istotne w kontekście bezpieczeństwa danych. W przypadku, gdyby b miało mieć wartość większą lub równą 100, mogłoby to generować błędy, a więc taki warunek jest kluczowy w zabezpieczaniu logiki programu. Dodatkowo, stosowanie złożonych warunków w instrukcjach warunkowych pozwala na elastyczność i łatwość w modyfikacjach kodu w przyszłości, co jest zgodne z zasadą DRY (Don't Repeat Yourself).

Pytanie 34

Strona internetowa została napisana w języku XHTML. Który z poniższych kodów przedstawia implementację zamieszczonego fragmentu strony, przy założeniu, że nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
A. <b>Początki HTML</b><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył<b>prototyp hipertekstowego systemu informacyjnego - <i>ENQUIRE</i></b></p>
B. <h1>Początki HTML</h1><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył<i>prototyp hipertekstowego systemu informacyjnego - <b>ENQUIRE</b></i></p>
C. <h1>Początki HTML</h1><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył<b>prototyp hipertekstowego systemu informacyjnego - <i>ENQUIRE</i></b></p>
D. <b>Początki HTML</b><p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<hr /> stworzył<b>prototyp hipertekstowego systemu informacyjnego - <i>ENQUIRE</i></b></p>
Odpowiedź druga jest prawidłowa, ponieważ w XHTML stosowanie znaczników zgodnych z HTML jest kluczowe. Nagłówek <h1> wskazuje na najbardziej wyróżniający się element na stronie, co jest zgodne z prezentowanym obrazem, gdzie 'Początki HTML' jest nagłówkiem. XHTML wymaga, by wszystkie elementy były poprawnie zagnieżdżone i zamknięte, a tag <br /> jest poprawnie użyty jako samo zamykający się, co jest wymagane w XHTML. Ponadto, struktura dokumentu XHTML musi być bardziej restrykcyjna, co oznacza, że używanie semantycznych znaczników jak <h1> dla nagłówków sprzyja lepszej interpretacji struktury dokumentu przez przeglądarki i narzędzia dostępności. Poprawne użycie <b> i <i> do wyróżniania tekstu jest zgodne ze standardami, chociaż w nowoczesnym HTML5 zaleca się używanie <strong> i <em> dla semantycznego formatowania. Takie podejście wspomaga dostępność oraz ułatwia zrozumienie kodu przez inne osoby. Dobór tagów w tej odpowiedzi pokazuje zrozumienie zasad semantyki oraz poprawnej struktury dokumentów w XHTML co jest zgodne z dobrymi praktykami web developmentu.

Pytanie 35

Zdefiniowano bazę danych z tabelą sklepy, która zawiera pola: nazwa, ulica, miasto, branza. W celu zlokalizowania wszystkich nazw sklepów spożywczych, które znajdują się tylko we Wrocławiu, należy wykorzystać kwerendę:

A. SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław"
B. SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław"
C. SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław"
D. SELECT sklepy FROM nazwa WHERE branza="spożywczy" BETWEEN miasto="Wrocław"
Odpowiedź 'SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław";' jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do pobrania danych. W tym przypadku chcemy wybrać nazwy sklepów z tabeli 'sklepy', które spełniają dwa warunki: branża musi być równa 'spozywczy', a miasto musi być równe 'Wrocław'. Użycie operatora AND zapewnia, że oba kryteria muszą być spełnione jednocześnie, co jest kluczowe w tym zadaniu. Ponadto, dobrym zwyczajem jest stosowanie podwójnych cudzysłowów dla nazw kolumn i wartości tekstowych. Przykładowo, w praktyce taka kwerenda może być użyta do analizy lokalizacji sklepów spożywczych w danym mieście, co może być istotne dla strategii marketingowej lub planowania rozwoju sieci handlowej. Zrozumienie struktury SQL oraz sposób formułowania zapytań jest fundamentem efektywnego zarządzania danymi w relacyjnych bazach danych.

Pytanie 36

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. grupowania.
B. części wspólnej.
C. wykluczenia.
D. sumy.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 37

Program debugger służy do

A. analizy kodu źródłowego w celu odnalezienia błędów składniowych.
B. analizy wykonywanego programu w celu lokalizacji błędów.
C. interpretacji kodu w wirtualnej maszynie Java.
D. tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy.
W tym pytaniu łatwo się pomylić, bo kilka pojęć brzmi podobnie, ale dotyczy zupełnie innych narzędzi. Debugger nie służy ani do interpretacji kodu, ani do kompilacji, ani do sprawdzania samej składni. To narzędzie do analizy programu w trakcie jego działania. Czyli nie patrzymy tylko na kod źródłowy, ale na to, jak program faktycznie się wykonuje krok po kroku. Interpretacja kodu w wirtualnej maszynie Java to zadanie interpretera/JVM. Maszyna wirtualna Javy pobiera bajtkod (plik .class) i go wykonuje, optymalizuje, czasem kompiluje JIT-em do kodu maszynowego. To zupełnie inna warstwa niż debugowanie. Debugger może się podłączyć do JVM, ale sam z siebie nie interpretuje kodu. To typowe pomylenie roli środowiska uruchomieniowego z narzędziem diagnostycznym. Analiza kodu źródłowego w celu znalezienia błędów składniowych też nie jest zadaniem debuggera. Błędy składniowe wychwytuje kompilator albo linter, ewentualnie statyczna analiza kodu. Debugger działa dopiero, gdy program się kompiluje i da się go uruchomić. Jeśli są błędy składni, program w ogóle nie wystartuje, więc nie ma co debugować. Częsty błąd myślowy jest taki, że „narzędzie do błędów” musi ogarniać wszystkie rodzaje błędów. W praktyce dzieli się to na: składniowe (kompilator), logiczne i wykonania (debugger), a także problemy jakościowe (analiza statyczna, testy). Tłumaczenie kodu z języka wysokiego poziomu na maszynowy to z kolei klasyczna rola kompilatora. Kompilator generuje kod wynikowy (np. plik .exe czy .class), a debugger ten gotowy program tylko obserwuje i steruje jego wykonaniem. Moim zdaniem warto jasno rozdzielić te pojęcia: kompilator kompiluje, interpreter wykonuje, a debugger pomaga nam zrozumieć i naprawić działający program, śledząc jego zachowanie, zmienne i przepływ sterowania. To pomaga unikać mieszania narzędzi, co później bardzo ułatwia naukę bardziej zaawansowanych technologii.

Pytanie 38

Ile razy zostanie wykonana poniższa pętla w PHP?

for($i = 0; $i < 25; $i += 5) { ... }
A. 0
B. 26
C. 25
D. 5
Pętla for w PHP jest jednym z fundamentalnych narzędzi kontrolnych używanych do wykonywania powtarzających się zadań. W przedstawionym przykładzie pętli mamy następującą składnię: for($i = 0; $i < 25; $i += 5). Pętla rozpoczyna się od wartości początkowej zmiennej $i równej 0, a warunek kontynuacji pętli określa, że $i musi być mniejsze niż 25. W każdym przebiegu pętli zmienna $i zwiększa się o 5. Dzięki tej konstrukcji pętla wykona się dla wartości $i wynoszących kolejno 0, 5, 10, 15 i 20, co oznacza, że pętla zostanie wykonana dokładnie 5 razy. Takie konstrukcje są powszechnie stosowane w programowaniu do iteracyjnego przetwarzania danych, takich jak iterowanie przez tablice lub generowanie ciągów. Warto zwrócić uwagę na dobre praktyki programistyczne, które nakazują klarowność i czytelność kodu, dzięki czemu inni programiści mogą go łatwo zrozumieć i utrzymywać. Projektowanie pętli z precyzyjnie zdefiniowanymi warunkami początkowymi i końcowymi jest kluczowe dla unikania błędów logicznych, takich jak nieskończone pętle lub błędne iteracje. Użycie odpowiednich inkrementacji, jak w tym przypadku $i += 5, pozwala na kontrolowanie tempa i liczby iteracji zgodnie z zamierzonymi celami algorytmu.

Pytanie 39

Dostępna jest tabela pracownicy zawierająca pola id, nazwisko, imię oraz wynagrodzenie. Kolumnę wynagrodzenie można usunąć przy użyciu następującej instrukcji

A. ALTER TABLE pracownicy DELETE wynagrodzenie
B. DROP TABLE pracownicy DELETE COLUMN wynagrodzenie
C. ALTER TABLE pracownicy DELETE COLUMN wynagrodzenie
D. ALTER TABLE pracownicy DROP COLUMN wynagrodzenie
W prawidłowej odpowiedzi powinno być 'ALTER TABLE pracownicy DROP COLUMN wynagrodzenie;'. To polecenie ALTER TABLE to coś, co używamy, żeby zmodyfikować to, co już mamy w tabeli w bazie danych. Jak chcemy usunąć kolumnę, to kluczowe jest użycie DROP COLUMN, bo to dokładnie mówi, co chcemy zrobić – usunąć konkretną kolumnę. W praktyce często tak usuwamy zbędne dane, kiedy kolumna już nie jest potrzebna. Usunięcie kolumny upraszcza strukturę bazy danych i może zwiększyć wydajność, bo mamy mniej danych do przechowywania. Fajnie jest też pamiętać, żeby zanim coś zmienimy, zrobić kopię zapasową tabeli – nigdy nie wiadomo, kiedy mogą się przydać stare dane. No i jak pracujesz z dużą bazą danych, to najlepiej robić takie rzeczy w nocy czy w weekend, żeby nie wpływać na działanie systemu w godzinach szczytu.

Pytanie 40

W języku JavaScript zdefiniowano obiekt ```obiekt = { q: 1, w: 2, e: 3, r: 4 };``` W jaki sposób można uzyskać wartość właściwości ```w```?

A. obiekt::w
B. obiekt.w
C. obiekt:w
D. obiekt->w
Niepoprawne odpowiedzi wskazują na nieporozumienia dotyczące składni języka JavaScript. Użycie obiekt:w sugeruje, że istnieje jakiś operator dostępu do właściwości za pomocą dwukropka, co jest niezgodne z zasadami składniowymi JavaScript. W rzeczywistości dwukropek w tym kontekście nie ma znaczenia i jest błędnie interpretowany. Podobnie, obiekt::w użytkuje podwójny dwukropek, co z kolei jest składnią nieznaną w JavaScript i nie ma zastosowania w kontekście odwoływania się do właściwości obiektu. Z kolei obiekt->w sugeruje, że programista próbuje skorzystać z operatora strzałki, który występuje w innych językach programowania, takich jak C++ czy PHP, ale nie jest on używany w JavaScript. W JavaScript stosuje się wyłącznie notację kropkową lub nawiasową do odwoływania się do właściwości obiektów. Chociaż różne języki programowania mogą mieć swoje własne konwencje dotyczące operatorów dostępu do właściwości, JavaScript pozostaje konsekwentny w swojej składni, co ułatwia zrozumienie i naukę. Ważne jest, aby programiści zapoznali się z podstawami składni JavaScript, aby unikać takich błędów i poprawnie wykorzystywać możliwości obiektowego modelu tego języka.