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: 24 kwietnia 2026 13:17
  • Data zakończenia: 24 kwietnia 2026 13:49

Egzamin zdany!

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

Z którego z pól klasy

class Dane {
    public $a;
    private $b;
    protected $c;
}
będzie można uzyskać dostęp z zewnątrz przy użyciu obiektu stworzonego jako instancja tej klasy?
A. Do pola $b.
B. Do pola $a.
C. Do wszystkich pól.
D. Do pola $c.
Odpowiedź 'Do pola $a' jest prawidłowa, ponieważ pole $a jest zdefiniowane jako publiczne, co oznacza, że jest dostępne z zewnątrz dla instancji klasy oraz dla kodu, który jest poza tą klasą. W praktyce, gdy tworzysz obiekt klasy Dane, możesz łatwo uzyskać dostęp do tego pola, na przykład za pomocą $obiekt->a. Zastosowanie publicznych pól jest typowe, gdy chcesz, aby dane były szeroko dostępne, na przykład w interfejsach API lub podczas tworzenia prostych klas modelujących dane. W przypadku pól prywatnych oraz chronionych, dostęp do nich jest ograniczony. Pole $b jest prywatne, co oznacza, że może być używane tylko wewnątrz tej samej klasy, a pole $c, będące chronionym, może być używane przez klasę i jej podklasy, ale nie przez kod zewnętrzny. Warto zaznaczyć, że dobre praktyki programowania obiektowego sugerują ograniczanie dostępu do pól, co sprzyja enkapsulacji i ochronie integralności danych, a publiczne pola należy stosować z ostrożnością, aby nie naruszyć zasad projektowania systemów oprogramowania.

Pytanie 2

Podczas działania skryptu JavaScript został w konsoli wygenerowany błąd związany z działaniami na atrybucie elementu DOM. Z komunikatu wynika, że próbowano ustawić atrybut dla

Ilustracja do pytania
A. odnośnika.
B. paragrafu.
C. obrazu.
D. tabeli.
Twoja odpowiedź była prawidłowa. Błąd 'Uncaught TypeError: Cannot set property 'src' of null' jest związany z próbą przypisania wartości do atrybutu 'src' nieistniejącego elementu DOM. Atrybut 'src' jest charakterystyczny dla elementów HTML obrazu, czyli <img>, i służy do określenia źródła obrazka. Gdy masz do czynienia z błędem tego typu, najczęściej wynika to z próby manipulacji atrybutem 'src' obrazu, który nie istnieje w strukturze DOM, co może wynikać na przykład z błędu w selektorze. Pamiętaj, że przed przypisaniem wartości atrybutu, warto upewnić się, że dany element DOM faktycznie istnieje. W przeciwnym razie, jak w tym przypadku, JavaScript zwróci błąd. Zrozumienie charakterystyki błędów i potrafiące identyfikowanie ich przyczyn jest kluczowe w procesie programowania.

Pytanie 3

Zdefiniowana jest tabela o nazwie wycieczki z atrybutami nazwa, cena oraz miejsca (jako liczba dostępnych miejsc). Aby wyświetlić jedynie nazwy tych wycieczek, dla których cena jest mniejsza niż 2000 złotych i które mają co najmniej cztery wolne miejsca, należy użyć zapytania

A. SELECT nazwa FROM wycieczki WHERE cena<2000 OR miejsca>4;
B. SELECT * FROM wycieczki WHERE cena<2000 OR miejsca>3;
C. SELECT nazwa FROM wycieczki WHERE cena<2000 AND miejsca>3;
D. SELECT * FROM wycieczki WHERE cena<2000 AND miejsca>4;
Zapytanie SQL, które pozwala na wyświetlenie nazw wycieczek, dla których cena jest niższa niż 2000 złotych i które mają przynajmniej cztery wolne miejsca, jest poprawnie sformułowane jako: SELECT nazwa FROM wycieczki WHERE cena<2000 AND miejsca>3. W tym zapytaniu używamy klauzuli SELECT, aby wskazać, że interesuje nas tylko kolumna 'nazwa'. Warunki zawarte w klauzuli WHERE filtrują wyniki na podstawie określonych kryteriów. Operator AND zapewnia, że oba warunki muszą być spełnione jednocześnie, co oznacza, że interesują nas tylko te wycieczki, które są tańsze niż 2000 zł i mają więcej niż 3 wolne miejsca. Technicznie rzecz biorąc, operator < jest używany do porównywania wartości, a operator > do określenia, że liczba miejsc musi być większa od 3. Przykładem działania tego zapytania może być sytuacja, w której w tabeli wycieczki znajdują się dane o takich wycieczkach jak: 'Wakacje w górach' (cena: 1800 zł, miejsca: 5) oraz 'Wczasy nad morzem' (cena: 2200 zł, miejsca: 2). W wyniku działania zapytania uzyskamy jedynie 'Wakacje w górach', ponieważ spełnia ono oba kryteria. Tego rodzaju zapytania są powszechnie stosowane w systemach baz danych, aby efektywnie przeszukiwać i filtryzować dane zgodnie z wymaganiami użytkownika.

Pytanie 4

Funkcja zaprezentowana w PHP

function dzialania(int $x, float $y) {
  $z = $x + $y;
  return $z;
}
A. jest zadeklarowana z dwoma parametrami rzeczywistymi.
B. zwraca wynik.
C. nie zwraca wyniku.
D. przyjmuje dwa argumenty z wartością domyślną.
Przedstawiona funkcja w języku PHP to przykład funkcji, która zwraca wartość. Z definicji funkcja działa na określonych wejściach, które w tym przypadku są typu int i float, a następnie wykonuje operację dodawania tych wejść. Zmienna $z przechowuje wynik dodawania, który jest następnie zwracany poprzez instrukcję return. Instrukcja ta kończy działanie funkcji, przekazując wynik na zewnątrz, co czyni funkcję użyteczną w kontekście programowania modularnego, gdzie wyniki obliczeń mogą być dalej przetwarzane lub wykorzystywane. W PHP zwracanie wartości z funkcji jest powszechną praktyką, szczególnie w kontekście aplikacji, gdzie funkcje pomagają w organizacji kodu, testowaniu jednostkowym oraz utrzymaniu. Dobre praktyki programistyczne zalecają zwracanie wartości, gdy funkcja ma wykonywać obliczenia lub przetwarzanie danych, co zwiększa jej elastyczność i ponowne użycie w różnych częściach programu. Funkcje zwracające wartości są często wykorzystywane w aplikacjach webowych do przetwarzania danych z formularzy czy generowania dynamicznych treści, co ilustruje ich wszechstronność i znaczenie w nowoczesnym programowaniu.

Pytanie 5

Która z wymienionych funkcji sortowania w języku PHP służy do sortowania tablicy asocjacyjnej według kluczy?

A. asort()
B. sort()
C. rsort()
D. ksort()
Funkcja ksort() w języku PHP jest dedykowana do sortowania tablic asocjacyjnych według ich kluczy. Dzięki zastosowaniu tej funkcji, tablica zostaje uporządkowana w sposób rosnący, co jest szczególnie przydatne, gdy potrzebujemy danych w zorganizowanej formie lub gdy chcemy prezentować je użytkownikowi w logicznej kolejności. Przykładowo, jeśli mamy tablicę asocjacyjną, gdzie klucze reprezentują nazwy produktów, a wartości to ich ceny, użycie ksort() pozwoli nam posortować produkty alfabetycznie. Dobrą praktyką jest stosowanie ksort() w projektach, gdzie istotna jest czytelność i przejrzystość danych, co może mieć wpływ na UX (User Experience) aplikacji. Warto również pamiętać, że jeśli tablica zawiera różne typy kluczy, to sortowanie może prowadzić do nieoczekiwanych wyników. Z tego względu, ksort() jest najlepszym wyborem, gdyż spełnia wymagania standardów sortowania oraz zapewnia zgodność z dobrymi praktykami programistycznymi.

Pytanie 6

W przypadku przedstawionego fragmentu kodu walidator HTML zgłosi błąd, ponieważ

<img src="kwiat.jpg alt="kwiat">
A. nie odnaleziono pliku kwiat.jpg
B. użyto niewłaściwego znacznika do wyświetlenia obrazu
C. nie zamknięto cudzysłowu
D. wprowadzono nieznany atrybut alt
Poprawna odpowiedź to nie domknięto cudzysłowu ponieważ w kodzie HTML atrybuty muszą być poprawnie zamknięte aby poprawnie interpretować ich wartości. W przedstawionym fragmencie kodu dla znacznika img brakuje końcowego cudzysłowu po wartości src co stanowi błąd składniowy. Tego typu błędy mogą prowadzić do nieprawidłowego działania strony ponieważ przeglądarka nie jest w stanie jednoznacznie określić końca wartości atrybutu co może skutkować nieprawidłowym renderowaniem danych. Zgodnie z najlepszymi praktykami każde otwarte cudzysłowie powinno być zamknięte aby zapewnić poprawną interpretację kodu. Ponadto stosowanie poprawnego zamykania cudzysłowów zwiększa czytelność kodu co jest istotne przy współpracy zespołowej i ułatwia jego utrzymanie. Warto także korzystać z walidatorów HTML które automatycznie wykrywają takie błędy pomagając w ich szybkim usunięciu. Tego rodzaju narzędzia są kluczowe w procesie tworzenia stron internetowych ponieważ umożliwiają weryfikację zgodności kodu z obowiązującymi standardami co ma bezpośredni wpływ na jego wydajność i kompatybilność z różnymi przeglądarkami.

Pytanie 7

Użycie standardu ISO-8859-2 ma na celu zapewnienie prawidłowego wyświetlania

A. symboli matematycznych
B. specjalnych znaków przeznaczonych dla języka kodu strony
C. polskich znaków, takich jak: ś, ć, ń, ó, ą
D. znaków zarezerwowanych dla języka opisu strony
Kodowanie w standardzie ISO-8859-2 jest kluczowe dla poprawnego wyświetlania liter charakterystycznych dla języków używających alfabetu łacińskiego, w tym polskiego. Standard ten obejmuje szereg znaków, które nie są dostępne w standardzie ASCII, umożliwiając wyświetlanie polskich liter, takich jak: ś, ć, ń, ó, ą. Użycie ISO-8859-2 w aplikacjach, na stronach internetowych oraz w bazach danych pozwala na zachowanie poprawności tekstów w języku polskim. Na przykład, jeśli strona internetowa nie korzysta z odpowiedniego kodowania, polskie litery mogą być wyświetlane jako błędne znaki, co negatywnie wpływa na czytelność i zrozumiałość treści. Dobrą praktyką jest stosowanie UTF-8 jako bardziej uniwersalnego rozwiązania, które obsługuje większą liczbę znaków z różnych języków, ale ISO-8859-2 wciąż pełni istotną rolę w wielu istniejących systemach. Warto również zaznaczyć, że poprawne kodowanie powinno być zawsze określone w nagłówku HTML lub w ustawieniach bazy danych, aby zapewnić odpowiednią interpretację zawartości przez przeglądarki oraz aplikacje.

Pytanie 8

Jaką wartość w systemie RGB uzyskamy dla koloru zapisanego w kodzie heksadecymalnym: #1510FE?

A. rgb(21,16,FE)
B. rgb(21,16,254)
C. rgb(21,16,255)
D. rgb(15,10,FE)
Odpowiedź rgb(21,16,254) jest poprawna, ponieważ kolor zapisany w systemie heksadecymalnym #1510FE można rozłożyć na składowe RGB. W kodzie heksadecymalnym każdy z trzech kolorów (czerwony, zielony, niebieski) jest reprezentowany przez dwie cyfry. W przypadku #1510FE, pierwsze dwie cyfry (15) odnoszą się do wartości czerwonej, drugie dwie (10) do wartości zielonej, a ostatnie dwie (FE) do wartości niebieskiej. Te wartości musimy przeliczyć na system dziesiętny: czerwony to 21 (15 w systemie szesnastkowym to 21 w dziesiętnym), zielony to 16 (10 w szesnastkowym to 16 w dziesiętnym), a niebieski to 254 (FE w szesnastkowym to 254 w dziesiętnym). Tak więc końcowy wynik to rgb(21,16,254). W praktyce, znajomość konwersji kolorów jest kluczowa w projektowaniu graficznym, stron internetowych oraz aplikacji, gdzie precyzyjne odwzorowanie kolorów jest niezbędne dla uzyskania poprawnej estetyki i spójności wizualnej. Warto zaznaczyć, że standardy takie jak sRGB są powszechnie stosowane do definiowania kolorów w cyfrowych mediach, co zapewnia zgodność i przewidywalność w różnych urządzeniach wyświetlających te kolory.

Pytanie 9

Jaką cechę wyróżnia format PNG?

A. kompresję bezstratną
B. możliwość reprezentacji grafiki wektorowej
C. możliwość obsługi animacji
D. niedostępność kanału alfa
Odpowiedzi dotyczące obsługi animacji, braku obsługi kanału alfa oraz reprezentacji grafiki wektorowej są niepoprawne na poziomie technicznym. Format PNG nie wspiera animacji, co czyni go innym od formatów takich jak GIF, które pozwalają na tworzenie prostych animacji. PNG został zaprojektowany do przechowywania statycznych obrazów, co jest istotną różnicą w jego zastosowaniach w porównaniu do animowanych formatów graficznych. Ponadto, PNG obsługuje kanał alfa, co oznacza, że można tworzyć obrazy z przezroczystością, umożliwiając projektantom używanie tego formatu do tworzenia złożonych kompozycji wizualnych z różnymi poziomami przezroczystości. Na koniec, PNG nie jest formatem do reprezentacji grafiki wektorowej. Grafika wektorowa opiera się na matematycznych opisach kształtów, a typowymi formatami dla takich zastosowań są SVG lub AI. PNG natomiast jest formatem rastrowym, który składa się z pikseli, co ogranicza jego zastosowanie do ilustracji złożonych z bitmap, a nie z definicji wektorowych. Dlatego dla każdego z wymienionych punktów istnieją konkretne podstawy techniczne, które potwierdzają, dlaczego nie są one odpowiednie dla opisanego formatu.

Pytanie 10

Zakładając, że tablica $tab zawiera liczby naturalne, co program wyświetli?

$liczba = $tab[0];
foreach ($tab as $element)
{
  if ($element > $liczba)
    $liczba = $element;
}
echo $liczba;
A. element tablicy o wartości $tab[0]
B. elementy, które przewyższają zmienną $liczba
C. największy element tablicy
D. najmniejszy element tablicy
Niepoprawne odpowiedzi wynikają z nieporozumień dotyczących działania pętli iteracyjnej oraz logiki porównywania i aktualizowania wartości. Propozycja wyboru najmniejszego elementu tablicy jest błędna, ponieważ w programie brakuje mechanizmu do aktualizacji zmiennej $liczba na mniejszą wartość, co jest kluczowym wymogiem w tym kontekście. Pętla foreach z warunkiem if sprawia, że zmienna $liczba zwiększa swoją wartość tylko wtedy, gdy znajdzie się element większy od aktualnie przechowywanej wartości, eliminując tym samym możliwość identyfikacji najmniejszego elementu. Z kolei opcja dotycząca wypisania elementów większych od zmiennej $liczba również jest nietrafiona, ponieważ program nie zawiera żadnej instrukcji wypisującej takie elementy na ekran, a jedynie aktualizuje zmienną w celu znalezienia największej wartości. Taka funkcjonalność wymagałaby dodatkowej logiki, która przechowywałaby i obsługiwała wiele większych elementów, co nie jest realizowane w obecnym kodzie. Wreszcie, pomysł, że program wypisuje element równy $tab[0], również nie jest poprawny. Chociaż zmienna $liczba jest inicjalizowana wartością $tab[0], to jednak ulega ona zmianom w trakcie iteracji przez tablicę, jeśli znajdzie się większy element, a więc w większości przypadków nie kończy z wartością początkową. Zrozumienie tych mechanizmów jest kluczowe w projektowaniu efektywnego kodu i unikaniu nieporozumień w implementacji algorytmów operujących na zbiorach danych.

Pytanie 11

Efektem wykonania kwerendy dla przedstawionej tabeli rezerwacje jest

SELECT sezon, SUM(liczba_dn) FROM rezerwacje
GROUP BY sezon;

id_pokliczba_dnsezon
110lato
24zima
15lato
26zima
15lato
39zima
18zima
A. lato 20, zima 27
B. lato 10, 5, 5; zima 4, 6, 9, 8
C. lato 3, zima 4
D. lato 10, zima 4, lato 5, zima 6, lato 5, zima 9, zima 8
Dobrze, że wybrałeś odpowiedź 'lato 20, zima 27'. Jest to poprawne rozwiązanie, ponieważ zapytanie SQL, które wykonujemy na tabeli rezerwacje, grupuje wyniki według sezonu i sumuje liczbę dni dla każdego sezonu. W praktyce, jeżeli mamy tabelę z danymi o rezerwacjach na różne sezony i chcemy zrozumieć, ile łącznie dni zostało zarezerwowanych dla każdego sezonu, musimy użyć takiego zapytania. W tym przypadku, suma dni dla sezonu 'lato' wynosi 20, a dla sezonu 'zima' - 27. Wiedza ta jest niezwykle przydatna, gdy na przykład chcemy zaplanować ilość dostępnych miejsc w hotelu na kolejne sezony, biorąc pod uwagę historię rezerwacji. Zwróć uwagę, że korzystanie z funkcji agregujących jak SUM w SQL jest kluczowe dla przeprowadzania analiz danych. Właściwe zrozumienie i stosowanie tych funkcji pozwoli Ci na przeprowadzanie skomplikowanych analiz i przewidywań na podstawie zgromadzonych danych.

Pytanie 12

Fragment tabeli gory prezentuje polskie łańcuchy górskie oraz ich najwyższe szczyty. Przedstaw kwerendę, która oblicza średnią wysokość szczytów dla każdego łańcucha górskiego.

Idpasmonazwa wysokosc
134Góry Bystrzyckie(brak nazwy)949
137Góry BystrzyckieAnielska Kopa871
74Beskid ŻywieckiBabia Góra (Diablak)1725
41Beskid ŚląskiBarania Góra1220
145Góry KarczewskieBaraniec723
128Góry BardzkieBardzka Góra (Kalwaria)583
297TatryBeskid2012
A. SELECT pasmo, COUNT(wysokosc) FROM gory ORDER BY pasmo
B. SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo
C. SELECT pasmo, SUM(wysokosc) FROM gory GROUP BY pasmo
D. SELECT pasmo, AVG(wysokosc) FROM gory LIMIT pasmo
Prawidłowa odpowiedź: SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo; jest właściwa, ponieważ pozwala na wyliczenie średniej wysokości szczytów dla każdego pasma górskiego indywidualnie. Kwerenda ta wykorzystuje klauzulę GROUP BY, która grupuje rekordy na podstawie kolumny pasmo, co jest niezbędne do uzyskania agregatów danych w SQL. Funkcja AVG() jest używana do obliczania średniej wartości w grupie, co w tym przypadku odnosi się do średniej wysokości szczytów. W praktyce takie zapytania są często używane w analizie danych, gdzie istnieje potrzeba podsumowania informacji w sposób umożliwiający wyciąganie wniosków na podstawie agregacji danych. Ważne jest również zrozumienie, że bez klauzuli GROUP BY funkcja AVG() obliczyłaby średnią z całej tabeli, a nie w ramach poszczególnych pasm. Dlatego poprawne użycie tej klauzuli jest kluczowe w kontekście uzyskania precyzyjnych wyników grupowania danych w relacyjnych bazach danych. Tego rodzaju operacje są fundamentalne w analizie danych i raportowaniu biznesowym, gdzie wymagana jest konsolidacja informacji z podziałem na różne kategorie czy segmenty.

Pytanie 13

Wskaż przycisk sformatowany przedstawionym stylem CSS.

#przycisk {
    background-color: white;
    padding: 10px;
    border-width: 2px;
    border-bottom-style: dashed;
}



Przycisk 1

Przycisk 2

Przycisk 3

Przycisk 4
A. Przycisk 2
B. Przycisk 3
C. Przycisk 4
D. Przycisk 1
Przycisk 2 jest jedynym, który spełnia wszystkie warunki określone w podanym stylu CSS. Białe tło, odstęp wewnętrzny 10 pikseli, szerokość obramowania 2 piksele oraz przerywana dolna krawędź obramowania są elementami, które zostały ustawione w stylach CSS dla przycisku 2. Ta wiedza jest niezwykle przydatna przy projektowaniu i tworzeniu stron internetowych, gdzie kształtowanie elementów interaktywnych, takich jak przyciski, jest często kluczowym elementem doświadczenia użytkownika. Pamiętaj, że CSS pozwala na dużą swobodę w dostosowywaniu wyglądu poszczególnych elementów strony, a zrozumienie, jak działa selekcja elementów i stylizacja, to fundamenty tworzenia atrakcyjnych i funkcjonalnych projektów webowych. Zrozumienie, jakie style zostały zastosowane do danego elementu, pozwala na szybkie i efektywne dostosowywanie strony do potrzeb klienta.

Pytanie 14

Wszelkie dane, które dostarczają informacji o innych danych, nazywane są

A. metalanguage.
B. databus.
C. markup language.
D. metadata.
Poprawna odpowiedź to „metadata”, czyli po polsku metadane. Metadane to wszystkie dane, które opisują inne dane. Można powiedzieć, że są to „informacje o informacji”. Przykład z życia: plik zdjęcia JPG. Sam obraz to dane, a takie elementy jak data wykonania, model aparatu, rozdzielczość, lokalizacja GPS, autor – to właśnie metadane zapisane np. w formacie EXIF. Podobnie w świecie WWW: w dokumencie HTML mamy sekcję <head>, a w niej znaczniki <meta>. Te znaczniki nie są wyświetlane użytkownikowi jako treść strony, ale przekazują wyszukiwarkom i przeglądarkom informacje o stronie, np. opis, słowa kluczowe, kodowanie znaków, język. To jest klasyczny przykład metadanych w praktyce. W bazach danych metadane to np. definicje tabel, typy kolumn, klucze główne, indeksy, ograniczenia. System zarządzania bazą danych przechowuje je w tzw. katalogach systemowych. Dzięki temu wie, jak interpretować rekordy, jakie są relacje między tabelami, jakie są dopuszczalne wartości. Bez metadanych dane byłyby po prostu chaotycznym zbiorem bitów, z którego niewiele da się wyciągnąć. W standardach branżowych stosuje się różne schematy metadanych, np. Dublin Core dla zasobów cyfrowych, czy schema.org dla stron internetowych, aby wyszukiwarki lepiej rozumiały zawartość. Z mojego doświadczenia warto od początku myśleć o metadanych jako o czymś, co podnosi jakość systemu: ułatwia wyszukiwanie, integrację, automatyczne przetwarzanie danych. Dobra praktyka jest taka, żeby dla ważnych zasobów (pliki, rekordy w bazie, strony WWW, API) zawsze planować strukturę metadanych: kto utworzył, kiedy, jaki typ, wersja, status. To bardzo pomaga przy utrzymaniu aplikacji, debugowaniu i rozwoju systemu.

Pytanie 15

Bitmapa stanowi typ obrazu

A. rastrowym
B. interakcyjnym
C. analogowym
D. wektorowym
Wybierając odpowiedzi inne niż 'rastrowym', można napotkać na szereg nieporozumień dotyczących typów obrazów i ich zastosowań. Przykładowo, odpowiedź 'interakcyjnym' może sugerować, że obraz bitmapowy ma zdolność do reagowania na działania użytkownika, co jest nieprawidłowe, ponieważ bitmapy są statycznymi reprezentacjami wizualnymi. Interaktywność w kontekście grafiki dotyczy raczej animacji lub elementów wideo. Odpowiedź 'wektorowym' odnosi się do zupełnie innego typu grafiki, która używa matematycznych równań do definiowania kształtów i linii, co pozwala na skalowanie bez utraty jakości. Wektory są wykorzystywane w projektach, które wymagają precyzyjnych linii i kształtów, jak logotypy czy ilustracje, a ich zastosowanie jest inne niż w przypadku bitmap. Wybór odpowiedzi 'analogowym' wskazuje na mylne pojęcie, że bitmapa mogłaby być obrazem fizycznym, takim jak slajdy czy zdjęcia wydrukowane, co jest sprzeczne z naturą cyfrowych obrazów; bitmapy są bytem cyfrowym, co oznacza, że są one przetwarzane i przechowywane w formacie elektronicznym. Tego rodzaju pomyłki mogą prowadzić do nieporozumień w pracy z grafiką, dlatego warto zwracać uwagę na różnice między tymi pojęciami oraz ich odpowiednie zastosowanie w praktyce.

Pytanie 16

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. tr { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 17

W CSS zapis w postaci ```h1::first-letter{color:red;}``` spowoduje, że kolor czerwony będzie dotyczył

A. pierwszej litery nagłówka drugiego poziomu
B. pierwszej linii akapitu
C. pierwszej litery nagłówka pierwszego poziomu
D. tekstów nagłówka pierwszego poziomu
Zapis CSS h1::first-letter {color: red;} odnosi się do selektora pseudo-elementu first-letter, który jest używany do stylizacji pierwszej litery bloku tekstowego w nagłówkach. W tym wypadku, gdy selektor jest zastosowany do elementu h1, oznacza to, że kolor pierwszej litery nagłówka pierwszego stopnia (h1) zostanie zmieniony na czerwony. Pseudo-element first-letter działa tylko dla elementów blokowych, takich jak nagłówki, akapity czy listy. W praktyce, jeśli w dokumencie HTML mamy element <h1> z tekstem, np. 'Witaj świecie', to wyłącznie litera 'W' zostanie wyświetlona w kolorze czerwonym. To podejście jest zgodne ze standardami CSS, które definiują pseudo-elementy jako specyficzne fragmenty dokumentu, które można stylizować niezależnie od reszty zawartości. Warto również zauważyć, że stosowanie takich selektorów pozwala na uzyskanie bardziej złożonych efektów wizualnych bez konieczności modyfikacji struktury HTML. Umożliwia to projektantom stron internetowych większą elastyczność i kontrolę nad estetyką treści.

Pytanie 18

ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
B. zmianę typu danych w kolumnie rok_produkcji na INT.
C. usunięcie kolumny rok_produkcji w tabeli transport.
D. dodanie kolumny rok_produkcji typu INT w tabeli transport.
Poprawnie – polecenie ALTER TABLE ... MODIFY COLUMN w MySQL służy do modyfikowania istniejącej kolumny, a nie do jej tworzenia czy usuwania. W podanym przykładzie baza danych szuka tabeli o nazwie `transport`, a następnie zmienia definicję kolumny `rok_produkcji` tak, aby jej typ danych był `INT`. Jeśli kolumna już istnieje (a musi istnieć, żeby MODIFY zadziałało), to po wykonaniu polecenia dalej będzie miała tę samą nazwę, ale jej typ i właściwości zostaną nadpisane nową definicją. W MySQL warto pamiętać, że przy MODIFY COLUMN trzeba podać pełną definicję kolumny, nie tylko sam typ. Czyli jeśli wcześniej była np. NOT NULL albo miała domyślną wartość, to dobra praktyka jest napisać coś w stylu: `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT NOT NULL DEFAULT 2000;` – inaczej można przypadkiem zgubić część ustawień. W praktyce takie polecenia stosuje się przy zmianach w projekcie bazy: np. najpierw kolumna jest typu VARCHAR, bo ktoś przechowuje tam rok jako tekst, a potem, zgodnie z lepszymi zasadami projektowania, zmienia się to na typ liczbowy INT, żeby można było łatwo filtrować, sortować, robić warunki typu `WHERE rok_produkcji > 2015`. Z mojego doświadczenia dobrze jest przed taką zmianą sprawdzić, czy wszystkie dane da się bezpiecznie skonwertować na liczbę, bo jeśli w kolumnie są jakieś śmieciowe wartości tekstowe, to MySQL może je obciąć albo zamienić na 0, co później robi bałagan w raportach. W środowiskach produkcyjnych takie ALTER TABLE najlepiej wykonywać po zrobieniu kopii zapasowej i często w oknie serwisowym, bo przy dużych tabelach operacja może chwilowo blokować dostęp do danych.

Pytanie 19

W języku SQL, jaki będzie efekt wykonania poniższego zapytania?

ALTER TABLE osoba DROP COLUMN grupa;
A. Dodana zostanie kolumna grupa.
B. Zmieniona zostanie nazwa kolumny na grupa.
C. Zmieniona zostanie nazwa tabeli na grupa.
D. Usunięta zostanie kolumna grupa.
Gratulacje, wybrałeś poprawną odpowiedź. W zaprezentowanym pytaniu skupiliśmy się na instrukcji 'ALTER TABLE' w języku SQL, a dokładniej na jej konkretnej odmianie, tj. 'DROP COLUMN'. Ta instrukcja służy do usunięcia kolumny z istniejącej tabeli. W tym konkretnym przypadku, użyto jej do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Jest to przydatne narzędzie w przypadku, gdy chcemy usunąć dane z bazy bez usuwania całej tabeli. Pamiętaj jednak o skutkach utraty wszystkich danych z tej kolumny. Zawsze warto zrobić backup bazy danych przed taką operacją. Dobrą praktyką jest także sprawdzenie, jakie inne elementy bazy są zależne od usuwanej kolumny, aby uniknąć niespodziewanych problemów.

Pytanie 20

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. utraty aktualizacji
B. niepowtarzalnych odczytów
C. odczytów widm
D. brudnych odczytów
Odpowiedź 'odczytów widm' jest właściwa, ponieważ poziom izolacji transakcji Repeatable Read zapobiega brudnym odczytom i niepowtarzalnym odczytom, ale nie rozwiązuje problemu odczytów widm. Odczyty widmowe występują, gdy w czasie trwania transakcji inne transakcje mogą dodać nowe wiersze, które spełniają kryteria zapytania tej transakcji, co prowadzi do sytuacji, w której transakcja widzi różne dane w kolejnych odczytach. W praktyce, implementując poziom izolacji Repeatable Read, aplikacje muszą być świadome tego, że mogą wystąpić takie sytuacje, co może prowadzić do nieprzewidywalnych wyników. Przykładowo, jeśli jedna transakcja odczytuje zestaw danych, a inna transakcja w międzyczasie dodaje nowe rekordy, to podczas kolejnego odczytu pierwsza transakcja może zobaczyć te nowe rekordy, co jest problemem. Z tego powodu standardy i dobre praktyki w projektowaniu aplikacji bazodanowych zalecają używanie bardziej ścisłych poziomów izolacji, takich jak Serializable, kiedy to konieczne, aby uniknąć takich problemów. Warto zwrócić uwagę, że stosowanie odpowiednich poziomów izolacji jest kluczowe dla zapewnienia spójności i integralności danych, co jest niezbędne w większości nowoczesnych aplikacji bazodanowych.

Pytanie 21

W trakcie edycji grafiki rastrowej w aplikacji obsługującej kanały, dodanie kanału alfa oznacza

A. ustalenie właściwego balansu bieli
B. wzmocnienie krawędzi obrazu
C. powiększenie głębi ostrości obrazu
D. wprowadzenie warstwy z przezroczystością
Dodanie kanału alfa do grafiki rastrowej jest kluczowym krokiem w procesie zarządzania przezroczystością w obrazach. Kanał alfa to dodatkowy kanał, który przechowuje informacje o przezroczystości pikseli, co pozwala na tworzenie efektów wizualnych, takich jak miękkie krawędzie i złożone kompozycje. W praktyce, zastosowanie kanału alfa umożliwia na przykład nałożenie obiektów na różne tła bez wyraźnych granic, co jest szczególnie przydatne w grafice komputerowej, projektowaniu stron internetowych czy produkcji wideo. Dobrą praktyką w branży jest korzystanie z programów graficznych, takich jak Adobe Photoshop czy GIMP, gdzie dodanie kanału alfa można zrealizować poprzez stworzenie warstwy maski. Podczas pracy w takich programach warto również pamiętać o wykorzystaniu formatu PNG, który obsługuje przezroczystość, co jest standardem w zapewnieniu wysokiej jakości grafiki w sieci.

Pytanie 22

Aby baza danych działała poprawnie i konsekwentnie, konieczne jest wprowadzenie w każdej tabeli

A. kluczy PRIMARY KEY i FOREIGN KEY
B. klucza FOREIGN KEY z wartością NOT NULL
C. klucza obcego z wartością NOT NULL i UNIQUE
D. klucza PRIMARY KEY z wartością NOT NULL i UNIQUE
W kontekście baz danych, klucz PRIMARY KEY jest fundamentalnym elementem struktury każdej tabeli, ponieważ zapewnia unikalną identyfikację rekordów. Klucz ten musi spełniać dwie podstawowe zasady: być unikalny oraz nie pozwalać na wartości NULL. Dzięki temu każda linia w tabeli może być jednoznacznie zidentyfikowana, co jest niezbędne do zapewnienia integralności danych oraz efektywności operacji CRUD (tworzenie, odczyt, aktualizacja, usuwanie). Przykładem zastosowania klucza PRIMARY KEY może być tabela 'Użytkownicy', w której kolumna 'ID_Użytkownika' pełni rolę klucza głównego, zapewniając, że każdy użytkownik ma unikalny identyfikator. Wartości NULL w kluczu głównym byłyby problematyczne, ponieważ uniemożliwiałyby identyfikację danego rekordu. Dodatkowo, klucz ten może być użyty w relacjach między tabelami, gdzie klucz FOREIGN KEY w innej tabeli nawiązuje do PRIMARY KEY, tworząc spójną strukturę danych. Ustanawiając klucz PRIMARY KEY, projektanci baz danych mogą również efektywnie korzystać z indeksów, co przyspiesza operacje wyszukiwania oraz zwiększa wydajność bazy danych.

Pytanie 23

Jakie mechanizmy przyznawania zabezpieczeń, umożliwiające przeprowadzanie operacji na bazie danych, są powiązane z tematyką zarządzania kontami, użytkownikami oraz uprawnieniami?

A. Z przywilejami obiektowymi
B. Z przywilejami systemowymi
C. Z atrybutami
D. Z zasadami
Przywileje systemowe to kluczowy element zarządzania bezpieczeństwem w systemach baz danych. Obejmują one uprawnienia, które są przypisane do konta użytkownika na poziomie systemu, a niekoniecznie na poziomie obiektów bazy danych, takich jak tabele czy widoki. Dzięki nim możemy kontrolować dostęp do różnych funkcji systemowych, takich jak możliwość tworzenia nowych użytkowników, modyfikacji struktury bazy danych czy przydzielania uprawnień innym użytkownikom. Przykładem zastosowania przywilejów systemowych jest sytuacja, w której administrator bazy danych przydziela użytkownikom różne role, takie jak DBA (Database Administrator), która daje pełny dostęp do zasobów, lub rola z ograniczonymi uprawnieniami, co pozwala na wykonywanie tylko wybranych operacji. Dobrym przykładem standardów w tej dziedzinie jest podejście oparte na zasadzie minimalnych uprawnień, gdzie użytkownicy otrzymują jedynie te uprawnienia, które są absolutnie niezbędne do wykonywania ich zadań. Dzięki zastosowaniu przywilejów systemowych można skutecznie zarządzać bezpieczeństwem bazy danych oraz minimalizować ryzyko nieautoryzowanego dostępu.

Pytanie 24

Element lub grupa elementów, która w jednoznaczny sposób identyfikuje każdy pojedynczy rekord w tabeli w bazie danych, nazywa się kluczem

A. obcy
B. inkrementacyjny
C. przestawny
D. podstawowy
Klucz inkrementacyjny to termin, który może być mylnie stosowany w kontekście kluczy podstawowych. Choć klucz podstawowy może być inkrementacyjny, co oznacza, że jego wartość rośnie w miarę dodawania nowych rekordów, nie jest to jego jedyna możliwa forma. Klucz podstawowy może być również złożony z kilku pól (klucz złożony) lub oparty na wartościach, które nie są inkrementowane. Z kolei klucz przestawny (ang. pivot key) to termin nieznany w klasycznej terminologii baz danych; nie odnosi się on do identyfikacji wierszy, a raczej do organizacji danych w tabelach przestawnych, które służą do agregacji danych. Klucz obcy (ang. foreign key) jest innym pojęciem, oznaczającym pole, które wskazuje na klucz podstawowy w innej tabeli i służy do zapewnienia powiązań między danymi, ale nie identyfikuje ono pojedynczych rekordów w danej tabeli. Typowe błędy w rozumieniu tych pojęć to mylenie ich ról oraz funkcji, co prowadzi do niewłaściwego projektowania baz danych, w którym integralność oraz relacje pomiędzy danymi są niewłaściwie zaimplementowane. Kluczowe jest, aby zrozumieć, że klucz podstawowy jest podstawowym komponentem dla każdej tabeli, a inne typy kluczy pełnią różne funkcje w kontekście relacji między danymi.

Pytanie 25

Baza danych, która fizycznie znajduje się na wielu komputerach, lecz logicznie postrzegana jako całość, opiera się na architekturze

A. relacyjną
B. abstrakcyjną
C. rozproszoną
D. lokalną
Architektura rozproszona baz danych polega na tym, że dane są przechowywane na wielu fizycznych komputerach, które razem tworzą jedną logiczną całość. Taki system umożliwia zwiększenie dostępności, niezawodności oraz wydajności baz danych, co jest szczególnie istotne w dużych organizacjach czy systemach, które wymagają obsługi dużej ilości danych. Przykładem zastosowania architektury rozproszonej może być system zarządzania danymi w chmurze, gdzie dane użytkowników są przechowywane w wielu lokalizacjach geograficznych. Dzięki temu, nawet w przypadku awarii jednego z serwerów, system może dalej funkcjonować, co minimalizuje ryzyko utraty danych. Dodatkowo, architektury rozproszone często korzystają z technologii takich jak replikacja danych, co pozwala na synchronizowanie danych pomiędzy różnymi lokalizacjami. Warto podkreślić, że w kontekście rozwoju technologii SQL i NoSQL, architektura rozproszona zyskuje na znaczeniu, stając się standardem w nowoczesnych rozwiązaniach bazodanowych.

Pytanie 26

Do podzbioru DML (ang. Data Manipulation Language) języka SQL należą polecenia:

A. INSERT, UPDATE, DELETE
B. BEGIN, COMMIT, ROLLBACK
C. GRANT, REVOKE, DENY
D. CREATE, DROP, ALTER
Prawidłowo – INSERT, UPDATE i DELETE to klasyczne polecenia z podzbioru DML (Data Manipulation Language) w SQL. DML służy do manipulowania danymi już zapisanymi w tabelach, a nie do tworzenia struktury bazy. Można sobie to skojarzyć z pracą na rekordach: dodajemy nowe wiersze, zmieniamy istniejące, usuwamy niepotrzebne. INSERT wstawia nowe rekordy do tabeli, np. gdy zapisujesz nowego użytkownika w systemie logowania: INSERT INTO users(login, haslo) VALUES ('jan', 'tajne');. UPDATE modyfikuje dane, np. zmianę hasła albo adresu e‑mail: UPDATE users SET email='[email protected]' WHERE id=5;. DELETE usuwa rekordy, np. nieaktywne konta: DELETE FROM users WHERE active=0;. W praktyce webowej te trzy polecenia działają zwykle razem z transakcjami i warunkami WHERE, żeby nie „przestrzelić” i nie ruszyć zbyt wielu wierszy. Standard SQL (ANSI/ISO) właśnie te komendy zalicza typowo do DML, obok instrukcji SELECT, która też jest często traktowana jako część DML, ale w wielu materiałach omawia się ją osobno, jako zapytania wybierające dane. Dobra praktyka jest taka, żeby przy UPDATE i DELETE zawsze podawać sensowny warunek WHERE i często używać LIMIT/TRANSACTION, szczególnie w aplikacjach produkcyjnych. Moim zdaniem warto od początku myśleć o DML w kontekście logiki biznesowej aplikacji: formularz rejestracji to INSERT, edycja profilu to UPDATE, usunięcie konta to DELETE – i nagle wszystko układa się w bardzo logiczną całość.

Pytanie 27

W celu uzyskania efektu widocznego na rysunku, w kodzie HTML, należy umieścić znacznik skrótu <abbr> z atrybutem

Ilustracja do pytania
A. dfn
B. alt
C. name
D. title
Gratulacje, to jest prawidłowa odpowiedź. Znacznik &lt;abbr&gt; w HTML jest używany do określenia skrótu lub akronimu. Atrybut 'title' jest używany w połączeniu z tym znacznikiem, aby dostarczyć pełną formę skrótu, która jest wyświetlana, gdy użytkownik najedzie na skrót. Jest to zgodne ze standardami i dobrymi praktykami branżowymi, które zalecają ułatwianie zrozumienia treści dla wszystkich użytkowników, w tym tych z dysfunkcjami. Atrybut 'title' jest zatem przydatny, gdy skrót jest ryzykowny lub ma wiele znaczeń. Na przykład, skrót 'WHO' może oznaczać 'World Health Organization' lub 'Whois protocol' w zależności od kontekstu. Dlatego atrybut 'title' pomaga wyjaśnić zamierzone znaczenie.

Pytanie 28

Jakie znaczenie ma akronim ACID w kontekście SQL?

A. atomic, constaint, isolated, dependable
B. atomic, consistent, isolated, durable
C. atomic, consistent, iss, dependable
D. atomic, comming, is, do
Akronim ACID odnosi się do czterech kluczowych właściwości transakcji w systemach zarządzania bazami danych, które zapewniają ich niezawodność i integralność. Pierwszym elementem jest atomowość (atomic), co oznacza, że transakcje są niepodzielne; albo wszystkie operacje w ramach transakcji są wykonane, albo żadna. Przykładem może być przeniesienie pieniędzy z jednego konta na drugie, gdzie zarówno operacja debetowa, jak i kredytowa muszą być zakończone pomyślnie. Drugą właściwością jest spójność (consistent), co zapewnia, że wszystkie transakcje prowadzą do spójnego stanu bazy danych, przestrzegając wszelkich reguł i ograniczeń. Izolacja (isolated) gwarantuje, że równolegle wykonywane transakcje nie wpływają na siebie nawzajem, co jest kluczowe w przypadku dużych systemów, aby uniknąć konfliktów. Ostatnim aspektem jest trwałość (durable), co oznacza, że po zakończeniu transakcji, wszystkie zmiany są trwale zapisane, nawet w przypadku awarii systemu. Te cztery właściwości są fundamentem dla standardów takich jak SQL, co czyni je kluczowymi dla projektowania i zarządzania bazami danych.

Pytanie 29

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

A. tekstu, który został przeformatowany
B. tekstu, który został dodany
C. tekstu, który został usunięty
D. cytowanego fragmentu tekstu
Wiesz, znacznik <ins> w HTML to coś, co używamy, żeby pokazać tekst dodany w stosunku do poprzedniej wersji dokumentu. To mega przydatne, zwłaszcza kiedy edytujemy różne treści, bo od razu widać, co się zmieniło. Zastosowanie tego znacznika można znaleźć w różnych dokumentach, jak blogi czy umowy, gdzie ważne jest, żeby pokazać, co się zmieniło w treści. Zgodnie z tym, co mówią wytyczne W3C, używanie znaczników semantycznych, jak <ins>, sprzyja lepszej dostępności tekstów i ułatwia ich zrozumienie przez wyszukiwarki oraz technologie wspierające. Przykładowo, gdy robisz poprawki w dokumencie, właśnie dzięki <ins> możesz wyróżnić nowe informacje, co sprawi, że użytkownicy łatwiej ogarną, co się zmieniło. Dobrze jest też dodać odpowiedni styl CSS, żeby nadać tym elementom wyraźniejszy wygląd.

Pytanie 30

Jakie formaty wideo są obsługiwane przez standard HTML5?

A. Ogg, AVI, MPEG
B. Ogg, QuickTime
C. MP4, AVI
D. MP4, Ogg, WebM
Wybór odpowiedzi MP4, AVI, Ogg czy Ogg, AVI, MPEG jest błędny z kilku powodów. Format AVI, mimo swojej popularności, nie jest obsługiwany w standardzie HTML5. AVI to stary format, który nie jest zoptymalizowany do użytku w sieci, co prowadzi do problemów z kompatybilnością i wydajnością. Z kolei QuickTime, chociaż używany w niektórych aplikacjach, nie jest standardowo wspierany przez HTML5, co ogranicza jego zastosowanie w nowoczesnych stronach internetowych. W przypadku formatu MPEG, choć jest on dość powszechnie stosowany, to nie jest preferowany w kontekście HTML5, a jego wsparcie jest ograniczone w porównaniu do MP4, Ogg i WebM. Warto zaznaczyć, że najnowsze przeglądarki internetowe szybko przechodzą na otwarte standardy, co sprawia, że formaty, które opierają się na patencie, stają się mniej popularne. W związku z tym, korzystanie z formatów takich jak MP4, Ogg czy WebM nie tylko zapewnia lepszą jakość i wydajność, ale również zwiększa dostępność treści w sieci. Wybór niewłaściwych formatów może prowadzić do problemów z odtwarzaniem na różnych platformach, co negatywnie wpływa na doświadczenia użytkowników oraz zasięg treści. W efekcie, aby zachować optymalne standardy w tworzeniu stron internetowych, kluczowe jest stosowanie formatów zgodnych ze specyfikacją HTML5.

Pytanie 31

Który z poniższych fragmentów kodu JavaScript zwróci true?

A. "ab" > "c"
B. "a" > "b"
C. "def" > "abc"
D. "abc" > "def"
Porównania 'a' > 'b', 'ab' > 'c' oraz 'abc' > 'def' nie zwracają wartości true z powodu zasad leksykalnego porównania ciągów tekstowych w JavaScript. W pierwszym przypadku, porównując 'a' do 'b', 'a' ma wartość Unicode 97, a 'b' wartość 98. Ponieważ 97 jest mniejsze niż 98, porównanie zwraca false. W drugim przypadku, 'ab' i 'c' są analizowane w ten sposób, że 'a' (97) jest mniejsze niż 'c' (99), co również skutkuje wynikiem false, ponieważ porównanie zaczyna się od pierwszych znaków. Ostatnie porównanie 'abc' > 'def' także zwraca false, ponieważ pierwszy znak 'd' (100) jest większy niż 'a' (97), co sprawia, że całe porównanie jest fałszywe. Warto zauważyć, że w przypadku porównań ciągów tekstowych, wielkość liter ma wpływ na wynik, dlatego 'A' będzie mniejsze od 'a', co może prowadzić do nieporozumień, szczególnie przy pracy z danymi użytkowników lub przy sortowaniu. Zrozumienie tych zasad jest kluczowe dla programistów, aby unikać błędów logicznych w kodzie.

Pytanie 32

Która z poniższych definicji funkcji w języku C++ przyjmuje argument typu rzeczywistego i zwraca wynik typu całkowitego?

A. float fun1(int a);
B. float fun1(void a);
C. void fun1(int a);
D. int fun1(float a);
Kiedy deklaracje funkcji nie są zgodne z wymaganiami co do parametrów i typów zwracanych, to może być kłopot. Na przykład, 'void fun1(int a);' nie zwraca nic, a to w kontekście pytania nie działa. Mamy też 'float fun1(int a);', która przyjmuje liczbę całkowitą, ale zwraca zmiennoprzecinkową, co też jest nie to, co nam potrzebne. A 'float fun1(void a);' to już totalne nieporozumienie, bo 'void' jako typ parametru to nieporozumienie. Musi być jasno określony typ dla każdego parametru. Jak widać, te błędy pokazują, jak istotne jest rozumienie typów danych w C++, bo jeśli coś się pomyli, to mogą być błędy w kompilacji albo w trakcie działania programu. W praktyce to oznacza, że programiści muszą naprawdę zwracać uwagę na definicje funkcji, żeby mieć pewność, że parametry i typy zwracane są zgodne z tym, co chcemy osiągnąć. Zrozumienie tych zasad to podstawa, żeby tworzyć łatwy do utrzymania kod.

Pytanie 33

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 34

Instrukcję for można zastąpić inną instrukcją

A. case
B. while
C. switch
D. continue
Odpowiedź 'while' jest poprawna, ponieważ obie instrukcje, 'for' oraz 'while', służą do iteracji, czyli powtarzania pewnego bloku kodu w określonych warunkach. Instrukcja 'for' jest najczęściej używana, gdy znamy liczbę iteracji z góry, podczas gdy 'while' pozwala na bardziej elastyczne podejście, w którym kontynuujemy wykonanie pętli, aż do spełnienia określonego warunku. Przykład zastosowania instrukcji 'while' może wyglądać następująco: int i = 0; while (i < 10) { System.out.println(i); i++; }. W tym przypadku pętla 'while' będzie kontynuować swoje działanie tak długo, jak długo i jest mniejsze od 10. W praktyce, wybór między 'for' a 'while' powinien być podejmowany na podstawie kontekstu oraz przejrzystości kodu, co jest zgodne z najlepszymi praktykami programistycznymi. Warto również zauważyć, że w pewnych sytuacjach, takich jak przetwarzanie strumieni danych, stosowanie pętli 'while' może być bardziej intuicyjne i czytelne. Dzięki temu, programista może zachować większą kontrolę nad logiką iteracyjną, co sprzyja utrzymaniu i rozwijaniu kodu w przyszłości.

Pytanie 35

Możliwość utworzenia konta użytkownika jan z hasłem janPass można osiągnąć przy pomocy polecenia

A. CREATE USER 'jan'@'%localhost' IDENTIFIED VIA mysql_native_password USING 'janPass';
B. CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';
C. CREATE USER 'jan'@'localhost';
D. CREATE USER 'jan'@'localhost' PASSWORD EXPIRE;
Pozostałe odpowiedzi zawierają błędy związane z używaniem składni SQL do tworzenia użytkowników. W pierwszym przypadku, polecenie 'CREATE USER 'jan'@'localhost';' nie definiuje hasła, co sprawia, że użytkownik nie będzie mógł się zalogować, ponieważ brak jest wymaganego elementu autoryzacji. W kontekście bezpieczeństwa i standardów zarządzania użytkownikami, każdemu utworzonemu kontu należy przypisać odpowiednie hasło, aby uniemożliwić dostęp osobom nieuprawnionym. Następnie, polecenie 'CREATE USER 'jan'@'localhost' PASSWORD EXPIRE;' jest niepoprawne, ponieważ nie tworzy użytkownika z hasłem; zamiast tego, sugeruje jedynie, że hasło ma wygasnąć, co nie jest sensowną operacją przy tworzeniu nowego konta. Warto zauważyć, że takie podejście do zarządzania użytkownikami może prowadzić do poważnych luk w zabezpieczeniach. Wreszcie, odpowiedź 'CREATE USER 'jan'@'%localhost' IDENTIFIED VIA mysql_native_password USING 'janPass';' również zawiera błąd. Choć używa poprawnej składni, to 'USING' oraz 'IDENTIFIED VIA' nie są odpowiednie w kontekście tworzenia użytkowników w MySQL, co prowadzi do niepoprawnego rozumienia procesu autoryzacji. Poprawne podejście do zarządzania użytkownikami w MySQL koncentruje się na odpowiednim zabezpieczeniu i zarządzaniu hasłami, co nie zostało odzwierciedlone w powyższych odpowiedziach.

Pytanie 36

W języku JavaScript zapis ```x = przedmiot.nazwa();``` oznacza, że

A. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
B. nazwa jest właściwością obiektu przedmiot.
C. zmienna x będzie przechowywać wynik działania metody nazwa.
D. nazwa jest polem klasy przedmiot.
Twoja odpowiedź jest niepoprawna. Wybierając opcję, że 'nazwa jest właściwością obiektu przedmiot' możesz mylić funkcje i właściwości. Właściwości to wartości przechowywane w obiekcie, natomiast metody to funkcje związane z obiektem. Jeśli zapis jest w formie 'przedmiot.nazwa();', to 'nazwa' jest metodą, a nie właściwością obiektu. Druga niepoprawna odpowiedź, 'nazwa jest polem klasy przedmiot', sugeruje, że JavaScript jest językiem typu klasowego, jak Java czy C#. W rzeczywistości, JavaScript jest językiem prototypowym, co oznacza, że nie ma klas. Zamiast tego, obiekty dziedziczą bezpośrednio od innych obiektów. Ostatnia niepoprawna odpowiedź, 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', prawdopodobnie wynika z niezrozumienia różnicy między metodami a wolno stojącymi funkcjami. W JavaScript, funkcje są 'wolno stojące', co oznacza, że nie są związane z żadnym obiektem, podczas gdy metody są funkcjami zdefiniowanymi na obiekcie.

Pytanie 37

W języku HTML kolor biały można przedstawić przy użyciu wartości

A. #000000
B. rgb(FFFF,FF)
C. rgb(255,255,255)
D. #255255
Biały kolor w HTML zapisujemy jako rgb(255,255,255). W systemie RGB kolory tworzą się z trzech podstawowych barw: czerwonej, zielonej i niebieskiej. Każda z nich ma wartość od 0 do 255, więc maksymalna intensywność danego koloru to 255, a najniższa to 0. W przypadku białego koloru wszystkie trzy barwy są na maksa, stąd właśnie rgb(255,255,255) oznacza pełną moc czerwonego, zielonego i niebieskiego, co razem daje kolor biały. Wartości RGB są super ważne w CSS i w różnych programach do grafiki. Moim zdaniem, warto je znać, bo to podstawy przy robieniu stron internetowych. Warto też zwrócić uwagę na standardy W3C dotyczące kolorów w HTML, bo pomagają zadbać o estetykę i dostępność stron.

Pytanie 38

W HTML, aby dodać obrazek z tekstem umieszczonym pośrodku obrazka, konieczne jest użycie znacznika

A. <img src="obrazek.png" alt="obraz3" height="50%"> tekst
B. <img src="obrazek.png" alt="obraz1" hspace="30px"> tekst
C. <img src="obrazek.png" alt="obraz2" align="middle"> tekst
D. <img src="obrazek.png" alt="obraz4"> tekst
Odpowiedzi, które nie są poprawne, zawierają różne koncepcje i podejścia, które nie spełniają wymogów wyśrodkowania tekstu wokół obrazka. Na przykład, użycie <img src="obrazek.png" alt="obraz3" height="50%"> tekst jest niewłaściwe, ponieważ atrybut height nie wpływa na położenie tekstu w stosunku do obrazka. W rzeczywistości, atrybut ten jedynie zmienia wysokość obrazka, co nie ma związku z umiejscowieniem tekstu. To podejście może prowadzić do błędnych wniosków, że zmiana wymiarów obrazka automatycznie wpływa na układ tekstu, co jest mylne. Z kolei, <img src="obrazek.png" alt="obraz4"> tekst nie zawiera żadnych atrybutów, które mogłyby zdefiniować położenie tekstu, co sprawia, że tekst będzie po prostu wyświetlany obok obrazka, bez jakiejkolwiek kontroli nad jego wyrównaniem. W kontekście nowoczesnych standardów HTML5, brak zastosowania CSS do stylizacji układu nie tylko obniża estetykę strony, ale również nie spełnia oczekiwań dotyczących dostępności. Wiele aplikacji internetowych i stron korzysta z CSS do precyzyjnego zarządzania położeniem elementów, co jest zgodne z zasadami responsywnego projektowania. Użycie atrybutu align z wartością middle w odpowiedzi 2 jest najodpowiedniejszym sposobem na zapewnienie poprawnego wyśrodkowania tekstu, co jest kluczowe w projektowaniu stron internetowych, gdzie zarówno estetyka, jak i funkcjonalność mają duże znaczenie.

Pytanie 39

W języku C++ funkcja, która zwraca rezultat potęgowania i operuje na dwóch argumentach: liczbie x oraz wykładniku w, powinna mieć taką deklarację

A. int potega(int x, int w);
B. int potega(int x);
C. void potega(int x, int w);
D. void potega(int x, int w, int wynik);
Zgadzasz się, że 'int potega(int x, int w);' to trafna odpowiedź. Funkcja do potęgowania faktycznie potrzebuje dwóch rzeczy: podstawy x i wykładnika w, a na końcu powinna zwrócić liczbę całkowitą, która jest wynikiem potęgowania. Jakby to wyglądało w praktyce? Można by to napisać jako 'int potega(int x, int w) { return pow(x, w); }'. Przy czym 'pow' pochodzi z biblioteki cmath i robi te wszystkie magiczne obliczenia. Ważne jest, by przy projektowaniu funkcji myśleć o ich użyteczności, czyli żeby miały jasno określone wejście i wyjście. A jak już mówimy o potęgowaniu, to musimy też pamiętać o specjalnych przypadkach, jak potęgowanie zera do zera, które w matematyce jest równe 1. Dlatego dobrze zrobiona funkcja powinna to uwzględniać. W programowaniu kluczowe jest, by obliczenia były efektywne i poprawne, zwłaszcza w naukowych i inżynieryjnych projektach, gdzie precyzja jest bardzo istotna.

Pytanie 40

Jak wybrać nazwy produktów z tabeli sprzet zawierającej pola: nazwa, cena, liczbaSztuk, dataDodania, które zostały dodane w roku 2021, a ich cena jest poniżej 100 zł lub liczba sztuk przekracza 4, w sekcji WHERE?

A. WHERE dataDodania LIKE '2021%' OR cena < 100 OR liczbaSztuk > 4
B. WHERE dataDodania LIKE '2021%' AND (cena < 100 OR liczbaSztuk > 4)
C. WHERE dataDodania LIKE '2021%' OR (cena < 100 AND liczbaSztuk > 4)
D. WHERE dataDodania LIKE '2021%' AND cena < 100 AND liczbaSztuk > 4
W analizowanych odpowiedziach błędy wynikają z niepoprawnego rozumienia operatorów logicznych oraz ich zastosowania w kontekście filtracji danych. Pierwsza z propozycji, która używa operatora OR w każdym warunku, powoduje, że zapytanie obejmie zbyt szeroki zakres danych. Oznacza to, że każdy produkt dodany w 2021 roku, niezależnie od ceny czy liczby sztuk, zostanie uwzględniony, co jest sprzeczne z zamierzonym celem. Operator OR w tym przypadku nie spełnia wymagań, ponieważ musimy mieć produkty, które są jednocześnie związane z danym rokiem oraz spełniają przynajmniej jeden z dwóch dodatkowych kryteriów. Odpowiedzi korzystające z operatora AND w każdym warunku również są błędne, ponieważ wykluczą z wyników produkty, które mogą mieć cenę wyższą niż 100 zł, ale liczba sztuk przekracza 4. Taki sposób myślenia prowadzi do zbyt restrykcyjnych filtrów, co może uniemożliwić pozyskanie wartościowych danych. Ważne jest, aby w zapytaniach SQL stosować operator AND do łączenia warunków, gdzie wszystkie muszą być spełnione, oraz operator OR w sytuacjach, gdy wystarczy spełnienie jednego z warunków. Poprawny dobór tych operatorów ma kluczowe znaczenie dla wydajności zapytań oraz dokładności wyników, zwłaszcza w kontekście dużych zbiorów danych, takich jak bazy danych produktów.