Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 27 kwietnia 2026 21:23
  • Data zakończenia: 27 kwietnia 2026 21:28

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Który zapis jest selektorem pseudoklasy CSS?

A. body
B. td.wyroznienie
C. p#wyroznienie
D. a:link
Poprawna odpowiedź to „a:link”, ponieważ jest to zapis selektora pseudoklasy w CSS. Dwukropek po nazwie elementu „a” oznacza właśnie pseudoklasę – w tym przypadku chodzi o konkretny stan linku, czyli odnośnik, który jeszcze nie został odwiedzony przez użytkownika. W specyfikacji CSS (np. CSS2.1, CSS Selectors Level 3/4) pseudoklasy opisują stany dynamiczne albo logiczne cechy elementu, których nie da się łatwo zapisać w samym HTML, jak :hover, :active, :visited, :focus, :first-child, :nth-child() i wiele innych. Moim zdaniem warto od razu kojarzyć, że jeżeli widzisz dwukropek po selektorze, a potem słowo-klucz, to prawie na pewno jest to pseudoklasa. Przykładowo: a:hover { text-decoration: underline; } a:visited { color: purple; } input:focus { border-color: #00aaff; } Takie selektory pozwalają stylować elementy w zależności od interakcji użytkownika lub ich położenia w drzewie DOM. W praktyce front-endowej bardzo często używa się zestawu pseudoklas dla linków w kolejności: :link, :visited, :hover, :active (tzw. LVHA), żeby przeglądarka stosowała style w przewidywalny sposób. Dobrą praktyką jest też rozróżnianie kolorów linków odwiedzonych (:visited) i nieodwiedzonych (:link), ale w granicach czytelności interfejsu. W nowoczesnym CSS mamy też pseudoklasy takie jak :not(), :is(), :has(), które bardzo ułatwiają pisanie złożonych selektorów bez nadmiernego kombinowania z klasami w HTML. Jednak fundament pozostaje ten sam: pseudoklasa to coś po dwukropku, co opisuje stan, a nie zwykły typ, klasę czy id elementu. Dlatego w tym pytaniu jedynie „a:link” spełnia definicję selektora pseudoklasy.

Pytanie 2

Zmienna należąca do typu integer lub int jest w stanie przechować

A. liczbę rzeczywistą
B. ciąg znaków
C. liczbę całkowitą
D. znak
Typ zmiennych integer, czyli int, jest super ważny w programowaniu, bo służy do przechowywania liczb całkowitych. To takie liczby, co nie mają części dziesiętnych. Jest sporo języków programowania, które go używają, na przykład C++, Java czy Python. Głównie dzięki nim możemy efektywnie przechowywać i operować na tych liczbach. Wartości tego typu mogą być różne w zależności od systemu, na przykład w 32-bitowym typ int przechowuje liczby od -2 147 483 648 do 2 147 483 647. Używamy liczb całkowitych w różnych algorytmach, zwłaszcza tam, gdzie liczy się precyzja, jak w zliczaniu elementów albo w operacjach matematycznych. W standardzie C99 mamy różne typy całkowite, co pomaga w dokładnym określeniu, co potrzebujemy. Moim zdaniem, ogarnięcie typu integer to podstawa dla każdego, kto chce coś programować, bo na tym buduje się operacje matematyczne i logiczne.

Pytanie 3

Dla których imion klauzula LIKE jest prawdziwa?

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
A. Oksana, Ola, Olga
B. Oktawia, Oktawian, Olga
C. Oda, Oksana, Oktawia
D. Oksana, Oktawia, Olga
Odpowiedź „Oksana, Oktawia, Olga" jest prawidłowa. Aby zrozumieć, dlaczego właśnie te imiona spełniają warunek, należy dokładnie przeanalizować wzorzec użyty w klauzuli LIKE. Wzorzec 'o_%_a' składa się z pięciu elementów: litery „o" na początku, znaku podkreślenia oznaczającego dokładnie jeden dowolny znak, symbolu procentu reprezentującego zero lub więcej dowolnych znaków, kolejnego znaku podkreślenia (znów dokładnie jeden znak) oraz litery „a" na końcu. Z tej struktury wynika, że prawidłowe imię musi spełniać trzy warunki: zaczynać się od litery „o", kończyć się na literę „a" oraz mieć co najmniej cztery znaki długości. Ta ostatnia zasada jest kluczowa - dwa znaki podkreślenia wymuszają obecność minimum dwóch znaków pomiędzy pierwszą a ostatnią literą. Dlatego imiona takie jak „Ola" czy „Oda", mimo że zaczynają się na „o" i kończą na „a", są zbyt krótkie. Z kolei „Oktawian" odpada, ponieważ kończy się na literę „n", nie „a". Pozostają więc Oksana, Oktawia i Olga - każde z nich ma odpowiednią długość i właściwe litery na początku oraz końcu.

Pytanie 4

Który efekt został zaprezentowany na filmie?

A. Zmniejszenie kontrastu zdjęcia.
B. Zmiana jasności zdjęć.
C. Zwiększenie ostrości zdjęcia.
D. Przenikanie zdjęć.
W tym zadaniu łatwo pomylić kilka różnych rodzajów operacji na obrazie, bo wszystkie jakoś „zmieniają wygląd zdjęcia”, ale działają zupełnie inaczej. Efekt pokazany na filmie to przenikanie dwóch zdjęć w czasie, czyli animowane przejście między jednym obrazem a drugim. Kluczowa cecha: widzimy jednocześnie dwa zdjęcia, jedno stopniowo zanika, a drugie stopniowo się pojawia. To nie jest typowa operacja edycyjna na pojedynczym pliku graficznym, tylko efekt animacyjny, często wykorzystywany w pokazach slajdów, sliderach na stronach WWW i w montażu wideo. Zmiana jasności zdjęć to zupełnie inny rodzaj przetwarzania. Jasność modyfikuje poziom luminancji całego obrazu lub jego fragmentów – obraz staje się ciemniejszy albo jaśniejszy, ale dalej jest to to samo zdjęcie. Nie pojawia się nowe, drugie zdjęcie, nie ma nakładania dwóch kadrów. W programach do grafiki mamy to jako „Brightness”, „Exposure” czy „Levels”. Jeśli na filmie widać, że jeden obraz przechodzi płynnie w inny, to nie jest korekta jasności, tylko przejście między dwiema warstwami. Podobnie z ostrością – zwiększenie ostrości polega na podbiciu kontrastu na krawędziach, żeby szczegóły wyglądały wyraźniej. W praktyce używa się filtrów typu Unsharp Mask, Smart Sharpen albo algorytmów wyostrzania w czasie rzeczywistym. Obraz przed i po wyostrzeniu to ciągle ta sama klatka, tylko z innym przetworzeniem detali, nie ma efektu zanikania jednego zdjęcia i pojawiania się drugiego. Zmniejszenie kontrastu to kolejna korekta globalna, która spłaszcza różnice między jasnymi a ciemnymi partiami obrazu. Zdjęcie robi się bardziej „szare”, mniej dynamiczne. Znowu – cały czas pracujemy na jednym ujęciu, bez miksowania dwóch fotografii. Typowym błędem myślowym przy takich pytaniach jest to, że skoro coś się „zmienia w czasie”, to musi chodzić o jakąś regulację parametrów typu jasność czy kontrast. Tymczasem w efektach multimedialnych bardzo często operujemy na wielu warstwach – dwa obrazy, dwie klatki wideo – i animujemy ich wzajemną przezroczystość. Właśnie to jest esencją przenikania zdjęć i odróżnia je od zwykłych korekt obrazu.

Pytanie 5

Jakie zdarzenie umożliwia uruchomienie kodu w języku JavaScript w momencie przesyłania formularza HTML oraz kontrolowanie tego, czy ma on zostać wysłany?

A. onClick
B. onEnter
C. onChange
D. onSubmit
Odpowiedź onSubmit jest rzeczywiście na miejscu, bo to zdarzenie uruchamia się, gdy wysyłasz formularz HTML. Dzięki temu można wprowadzić kod JavaScript, który pozwoli na przeprowadzenie dodatkowych walidacji przed wysłaniem danych na serwer. To super sprawa, bo jeśli coś jest nie tak, to można zablokować wysłanie formularza. Można też zrobić inne rzeczy, na przykład zapisać dane lokalnie albo pokazać jakiś komunikat użytkownikowi. Weźmy na przykład formularz logowania – sprawdzamy, czy hasło i login są odpowiednie przed wysłaniem. Takie podejście to norma w branży, bo walidacja danych po stronie klienta naprawdę poprawia doświadczenia użytkownika i zmniejsza obciążenie serwera. Fajnie jest też korzystać z metod asynchronicznych, jak AJAX, żeby przetwarzać formularze bez potrzeby przeładowywania strony, co naprawdę dodaje interaktywności aplikacjom webowym.

Pytanie 6

Wskaż prawidłową definicję funkcji w języku JavaScript?

A. new nazwa_funkcji(argumenty) {instrukcje;}
B. function nazwa_funkcji(argumenty) {instrukcje;}
C. typ_funkcji nazwa_funkcji(argumenty) {instrukcje;}
D. nazwa_funkcji(argumenty) {instrukcje;}
Definicja funkcji w języku JavaScript przy użyciu słowa kluczowego 'function' jest standardowym sposobem deklaracji funkcji. Poprawny zapis 'function nazwa_funkcji(argumenty) {instrukcje;}' jasno wskazuje, że tworzona jest nowa funkcja, której nazwa oraz argumenty są zdefiniowane. Przykładowo, można stworzyć funkcję dodającą dwie liczby: 'function dodaj(a, b) { return a + b; }'. Funkcje w JavaScript mogą być wywoływane w dowolnym miejscu w kodzie, co czyni je niezwykle elastycznymi. Dodatkowo, dzięki temu, że JavaScript obsługuje funkcje jako obiekty pierwszej klasy, można je przekazywać jako argumenty do innych funkcji, przypisywać do zmiennych oraz zwracać z innych funkcji. Warto również zauważyć, że w kontekście dobrych praktyk, używanie funkcji z jasnymi nazwami i dobrze zdefiniowanymi argumentami zwiększa czytelność oraz utrzymanie kodu, co jest istotne w pracy zespołowej oraz przy rozwijaniu większych aplikacji.

Pytanie 7

Wskaźnik HTML, który umożliwia oznaczenie tekstu jako błędnego lub nieodpowiedniego poprzez jego przekreślenie, to jaki?

A. <s> </s>
B. <u> </u>
C. <b> </b>
D. <em> </em>
Element <s> w HTML służy do oznaczania tekstu jako nieaktualnego, błędnego albo już nieobowiązującego poprzez jego przekreślenie. Przeglądarka domyślnie renderuje taki fragment z poziomą linią przez środek tekstu. W praktyce używa się go np. przy cenach promocyjnych: <p>Stara cena: <s>199 zł</s> Nowa cena: 149 zł</p> albo przy korektach treści, kiedy chcemy pokazać, że coś zostało zmienione, ale wciąż widoczne jest, co było wcześniej. Warto wiedzieć, że historycznie do podobnych celów używano też <strike>, ale ten znacznik jest przestarzały (deprecated) w standardzie HTML i nie powinien być już stosowany. Moim zdaniem lepiej od razu przyzwyczajać się do poprawnych, aktualnych tagów, bo to się później opłaca przy większych projektach. W nowszych specyfikacjach HTML5 zaleca się stosowanie <s> właśnie do treści nieaktualnych, ale nie takich, które zostały formalnie wycofane – do tego jest znacznik <del>, który dodatkowo semantycznie wskazuje usunięcie fragmentu, często używany w systemach kontroli wersji treści. Z mojego doświadczenia warto rozróżniać <s>, <del> i <ins>, bo w połączeniu z CSS i narzędziami do dostępności (np. czytnikami ekranu) daje to lepszą semantykę dokumentu. Dobrą praktyką jest też nie nadużywać przekreśleń tylko dla „efektu wizualnego” – jeśli chcesz coś tylko wyróżnić graficznie, lepiej użyć CSS, a znaczników semantycznych używać zgodnie z ich przeznaczeniem.

Pytanie 8

W systemie bazy danych dotyczącej pojazdów, pole kolor w tabeli samochody może przyjmować wartości tylko z listy lakier. Aby zrealizować połączenie między tabelami samochody a lakier przez relację, należy użyć kwerendy

A. <br>ALTER TABLE samochody<br> ADD FOREIGN KEY kolor REFERENCES lakier;
B. <br>ALTER TABLE samochody<br> ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
C. <br>ALTER TABLE samochody<br> ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
D. <br>ALTER TABLE lakier<br> ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
Odpowiedź 4 jest poprawna, ponieważ dokładnie określa, jak należy zdefiniować relację między tabelą samochody a tabelą lakier w kontekście bazy danych. W tym przypadku, pole kolor w tabeli samochody pełni rolę klucza obcego, który odnosi się do kolumny lakierId w tabeli lakier. To połączenie jest niezbędne, aby zapewnić integralność danych oraz umożliwić korzystanie z relacyjnych własności baz danych. Klucz obcy stosowany w relacjach między tabelami pozwala na ograniczenie wartości, które mogą być wprowadzone do pola kolor, zapewniając, że będą one zgodne z wartościami zdefiniowanymi w tabeli lakier. Przykładowo, jeśli chcemy zapewnić, że każdy samochód ma przypisany kolor z określonej palety, stosowanie kluczy obcych jest najlepszą praktyką. Tego rodzaju podejście jest zgodne z normami ACID (Atomicity, Consistency, Isolation, Durability), co zwiększa niezawodność operacji na bazie danych.

Pytanie 9

W bazie danych znajduje się tabela o nazwie faktury, która posiada pola: numer, data, id_klienta, wartosc, status. Każdego dnia tworzony jest raport dotyczący faktur z danego dnia. W raporcie prezentowane są jedynie numery oraz wartości faktur. Która z poniższych kwerend SQL jest odpowiednia do wygenerowania tego raportu?

A. SELECT numer, wartosc FROM faktury WHERE data = CURRENT_DATE();
B. SELECT * FROM faktury WHERE data = CURRENT_DATE();
C. SELECT * FROM faktury;
D. SELECT numer, wartosc FROM faktury;
Wybrana kwerenda SQL, SELECT numer, wartosc FROM faktury WHERE data = CURRENT_DATE();, jest poprawna, ponieważ precyzyjnie spełnia wymagania dotyczące generowania raportu faktur dla bieżącego dnia. Kwerenda ta nie tylko wybiera odpowiednie kolumny, czyli 'numer' i 'wartosc', ale także filtruje wyniki, wykorzystując warunek WHERE, który ogranicza dane do tych, które mają datę równą aktualnej dacie. Użycie funkcji CURRENT_DATE() jest standardowym podejściem w SQL do uzyskiwania bieżącej daty, co pozwala na automatyzację raportowania. Praktycznie rzecz biorąc, takie kwerendy są kluczowe w aplikacjach biznesowych, gdzie codzienna analiza danych jest niezbędna, aby podejmować informowane decyzje. Przy tworzeniu raportów warto również zwrócić uwagę na indeksowanie kolumn używanych w filtrach, co może znacznie przyspieszyć czas odpowiedzi zapytania w dużych zbiorach danych. Dobrą praktyką jest również testowanie kwerend na mniejszych zestawach danych przed ich wdrożeniem na żywo, aby upewnić się, że zwracają oczekiwane wyniki.

Pytanie 10

Które stwierdzenie na temat funkcji fun1 zapisanej w języku JavaScript jest prawdziwe?

var x = fun1(3, 24, "Mnożymy");

function fun1(a, b, c) {
    return a * b;
}
A. Przyjmuje trzy parametry, lecz nie zwraca wartości.
B. Ma trzy parametry wejściowe, w tym jeden typu napisowego, i zwraca wartość numeryczną.
C. Zwraca dwie wartości przechowywane w zmiennych a i b.
D. Ma dwa parametry liczbowe i zwraca wartość typu napisowego.
Niestety, Twoja odpowiedź jest niepoprawna, ale nie zmartw się - przeanalizujmy to razem. Funkcja w JavaScript nie musi zwracać wartości, ale w przypadku funkcji fun1, zwraca ona wynik mnożenia dwóch pierwszych parametrów, co jest wartością numeryczną. Istotne jest zrozumienie, że funkcje w JavaScript mogą przyjmować dowolną liczbę argumentów, a także różne typy argumentów. Co więcej, zamiast zwracać wiele wartości, funkcje w JavaScript zwykle zwracają jedną wartość lub obiekt zawierający wiele wartości. Z tego powodu, stwierdzenie, że fun1 zwraca dwie wartości przechowywane w zmiennych a i b, jest błędne. Podobnie, twierdzenie, że fun1 nie zwraca żadnej wartości, też jest nieprawdziwe. Wybór odpowiedzi sugerującej, że fun1 ma dwa parametry liczbowe i zwraca wartość typu napisowego, jest również niewłaściwy, ponieważ fun1 przyjmuje trzy parametry, w tym jeden typu napisowego, i zwraca wartość numeryczną. Pamiętaj, że zrozumienie struktury i działania funkcji jest kluczowe dla efektywnego kodowania w JavaScript.

Pytanie 11

Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Krzysztof
B. Aleksandra
C. Tomasz
D. Anna
Odpowiedź Krzysztofa jest całkiem trafna, bo w PHP zaczynamy liczenie od zera. Czyli mamy pierwszy element na pozycji 0, drugi na 1, a trzeci na 2. W tym przypadku zmienna imiona to tablica z czterema elementami: 'Anna', 'Tomasz', 'Krzysztof' oraz 'Aleksandra'. Gdy używamy echo $imiona[2], to tak naprawdę sięgamy po trzeci element, czyli 'Krzysztofa'. Zasada indeksowania od zera jest właściwie standardem w wielu językach programowania, jak C, JavaScript czy Python. Dzięki temu PHP staje się bardziej spójne z innymi językami. To pozwala lepiej zarządzać danymi w kodzie, bo każdy element ma swój unikalny indeks. Ważne jest, żeby to zapamiętać, bo dzięki temu można unikać błędów, które wynikają z niewłaściwego dostępu do elementów tablic. No i lepiej wiedzieć, że wykraczający indeks może prowadzić do różnych problemów, więc warto zrozumieć to zagadnienie.

Pytanie 12

Baza danych MySQL została uszkodzona. Które z poniższych działań NIE przyczyni się do jej naprawy?

A. Wykonanie naprawy przy użyciu polecenia REPAIR
B. Utworzenie nowej bazy oraz przeniesienie do niej tabeli
C. Zrealizowanie replikacji bazy danych
D. Przywrócenie bazy z kopii zapasowej
Wykonanie replikacji bazy danych, mimo że jest zaawansowaną funkcją MySQL, nie pomoże w naprawie uszkodzonej bazy. Replikacja polega na tworzeniu kopii danych z jednej instancji bazy danych na drugą w celu zapewnienia dostępności i skalowalności. W przypadku uszkodzenia bazy danych kluczowym krokiem jest przywrócenie danych z kopii bezpieczeństwa, co jest standardową praktyką w zarządzaniu bazami danych. Odtworzenie bazy z kopii bezpieczeństwa zapewnia, że wszystkie dane, które mogły zostać utracone lub uszkodzone, są przywracane do stanu sprzed awarii. Ponadto, użycie polecenia REPAIR jest techniką, która może pomóc w naprawie uszkodzonych tabel w MySQL. W przypadku gromadzenia danych w różnych tabelach, przeniesienie ich do nowej bazy może również stanowić skuteczną strategię naprawy, ale replikacja nie ma bezpośredniego wpływu na usunięcie uszkodzeń w oryginalnej bazie, a jedynie może skopiować problematyczne dane.

Pytanie 13

Jakie jest określenie na element bazy danych, który umożliwia jedynie przeglądanie danych, przedstawiając je w formie tekstowej lub graficznej?

A. Tabela
B. Formularz
C. Raport
D. Zapytanie
Raport to element bazy danych, który umożliwia użytkownikom jedynie odczytywanie danych i prezentowanie ich w przystępnej formie, takiej jak tekst lub wykres. Kluczowym aspektem raportu jest jego zdolność do agregowania informacji pochodzących z różnych źródeł w bazie danych, co umożliwia generowanie syntetycznych przeglądów i analiz danych. Na przykład, w systemach zarządzania relacyjnymi bazami danych, takich jak Microsoft SQL Server, można stworzyć raport, który zbiera dane sprzedażowe z różnych tabel, a następnie prezentuje je w formie graficznej, co ułatwia interpretację wyników. Raporty są często używane w kontekście raportowania biznesowego, gdzie kluczowe jest przedstawienie danych w sposób zrozumiały dla decydentów. Standardy, takie jak SQL, umożliwiają tworzenie zapytań, które generują dane do raportów, a narzędzia takie jak Crystal Reports czy Microsoft Power BI wspierają ich wizualizację. Dzięki temu raporty stają się niezbędnym narzędziem w analizie danych i podejmowaniu strategicznych decyzji.

Pytanie 14

Jakie będzie rezultatem działania poniższego kodu PHP?

$a = $c = true; 
$b = $d = false;
if(($a && $b) || ($c && $d)) echo 'warunek1';
elseif(($a && $b) || ($c || $d)) echo 'warunek2';
elseif(($c && $d) || (!$a)) echo 'warunek3';
else echo 'warunek4';
A. warunek1
B. warunek2
C. warunek3
D. warunek4
Kod PHP zawiera kilka warunków logicznych w strukturze if-else. Przy początkowych wartościach zmiennych, $a i $c są równe true, natomiast $b i $d są false. Pierwszy warunek if sprawdza czy ($a && $b) || ($c && $d), co tłumaczy się na (true && false) || (true && false), co daje false || false, a w rezultacie false. Zatem warunek się nie spełnia i przechodzimy do kolejnego. W elseif mamy ($a && $b) || ($c || $d), co oznacza (true && false) || (true || false), co daje false || true, czyli true. Ten warunek się spełnia i wyświetla 'warunek2'. Kod przechodzi do następnego elseif tylko wtedy, gdy poprzednie warunki były false, co w tym przypadku nie ma miejsca. W praktyce, analizując kod PHP, ważne jest zrozumienie operatorów logicznych: && oznacza 'i', || oznacza 'lub', a ! oznacza negację. Prawidłowe stosowanie tych operatorów jest kluczowe w programowaniu warunkowym, pozwalając na kontrolę przepływu programu i podejmowanie decyzji w oparciu o złożone logiki. Użycie elseif pozwala na czytelne i klarowne rozgałęzienie kodu, co jest dobrą praktyką w pisaniu złożonych skryptów.

Pytanie 15

Kolor określony kodem RGB, mający wartość rgb(255, 128, 16) w przedstawieniu szesnastkowym, przyjmie jaką wartość?

A. #ff0fl0
B. #ff8011
C. #ff8010
D. #008010
Alternatywne odpowiedzi mają kilka błędów, jeśli chodzi o kolory w formacie szesnastkowym. Pierwsza opcja, #008010, nie pasuje w ogóle do wartości RGB, które dostaliśmy w pytaniu. Nic tu nie łączy wartości rgb(255, 128, 16) z #008010. Druga opcja, #ff0fl0, ma błąd, bo zawiera nieprawidłowy znak 'l', który w ogóle nie powinien się tam znaleźć. To czyni ją zupełnie niepoprawną. Ostatnia odpowiedź, #ff8011, zmienia wartość niebieską z '10' na '11', co też psuje kolor. Takie pomyłki często zdarzają się, bo ludzie nie pamiętają lub nie znają podstaw konwersji kolorów. Dlatego dobrze jest znać te zasady i umieć sprawdzić, czy wartości są poprawne. W praktyce projektanci i programiści mogą korzystać z różnych narzędzi, jak palety kolorów, które ułatwiają ten proces i zmniejszają ryzyko błędów.

Pytanie 16

Wymiary:4272x2848px
Rozdzielczość:72 dpi
Format:JPG

W ramce przedstawiono właściwości pliku graficznego. W celu optymalizacji czasu ładowania rysunku na stronę WWW należy
A. zwiększyć rozdzielczość
B. zmienić format grafiki na CDR
C. dostosować proporcje szerokości do wysokości
D. zmniejszyć rozmiary obrazu
Zmniejszenie wymiarów rysunku to kluczowy krok w optymalizacji czasu ładowania grafiki na stronę internetową. Wymiary rysunku 4272x2848px są znaczące, co oznacza, że obraz ma dużą ilość pikseli, co przekłada się na większy rozmiar pliku. Przy standardowej rozdzielczości 72 dpi, która jest odpowiednia do wyświetlania na ekranach, mniejsze wymiary skutkują zmniejszeniem liczby pikseli, co automatycznie obniża wagę pliku. Przykładem może być przeskalowanie obrazu do wymiarów 800x600px, co może znacznie przyspieszyć czas ładowania strony. W praktyce, witryny internetowe powinny dążyć do używania obrazów o wymiarach dostosowanych do wyświetlacza, a optymalne wymiary to te, które są zgodne z responsywnym designem. Ponadto, standardy dotyczące wydajności stron, takie jak Web Page Test czy Google PageSpeed Insights, zalecają minimalizację rozmiaru plików graficznych jako kluczowy element poprawy szybkości ładowania. Zmniejszenie wymiarów rysunku jest zatem jednym z najprostszych i najbardziej efektywnych rozwiązań, które mogą przynieść znaczące korzyści w zakresie wydajności stron internetowych.

Pytanie 17

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 10
B. 6
C. 5
D. 0
Prawidłowa odpowiedź to 6 iteracji, ponieważ pętla for w PHP jest zdefiniowana z inicjalizacją zmiennej $i na 0 oraz warunkiem kontynuacji, który sprawdza, czy $i jest mniejsze lub równe 10. Zmiana wartości $i zachodzi co 2 jednostki dzięki instrukcji $i+=2. Iteracje pętli będą wyglądały następująco: $i = 0, 2, 4, 6, 8, 10. W momencie, gdy $i osiągnie wartość 12, warunek $i <= 10 przestanie być spełniony. Zatem pętla wykona się 6 razy, co jest zgodne z dobrą praktyką programowania, polegającą na dokładnym zrozumieniu warunków i logiki pętli. Zrozumienie tego mechanizmu ma kluczowe znaczenie dla efektywnego pisania kodu, pozwalającego na automatyzację zadań i obliczeń. W praktycznych zastosowaniach pętle są używane do iteracji po elementach tablic, generowania raportów oraz w wielu algorytmach przetwarzania danych.

Pytanie 18

Weryfikację kompletności formularza, działającą po stronie przeglądarki, należy zrealizować w języku

A. Ruby on Rails
B. JavaScript
C. PHP
D. CSS
Poprawna odpowiedź to JavaScript, bo właśnie ten język działa bezpośrednio w przeglądarce użytkownika i pozwala na dynamiczną weryfikację formularzy jeszcze przed wysłaniem danych na serwer. JavaScript ma dostęp do drzewa DOM, więc może odczytać wartości pól, sprawdzić, czy nie są puste, czy e‑mail ma poprawny format, czy hasło ma odpowiednią długość, a nawet czy dwa pola hasła są identyczne. Z mojego doświadczenia to jest absolutny standard w nowoczesnych aplikacjach webowych: najpierw lekka walidacja po stronie klienta w JS, a dopiero potem solidna walidacja po stronie serwera. Dobrym przykładem jest formularz rejestracji: po wpisaniu zbyt krótkiego hasła JavaScript może od razu wyświetlić komunikat pod polem, bez przeładowania strony. Można też blokować przycisk „Wyślij”, dopóki wszystkie wymagane pola nie są poprawnie wypełnione. W praktyce często używa się zdarzeń takich jak onsubmit na formularzu albo input/blur na polach, żeby na bieżąco sprawdzać dane. Można też korzystać z gotowych bibliotek walidacyjnych, ale pod spodem i tak pracuje JavaScript. W dobrych praktykach przyjmuje się zasadę: walidacja po stronie klienta poprawia wygodę i szybkość obsługi (user experience), ale nie zastępuje walidacji po stronie serwera. JavaScript służy więc do „pierwszej linii obrony” i podpowiedzi użytkownikowi, a serwer (np. w PHP czy innym języku backendowym) musi i tak wszystko jeszcze raz sprawdzić ze względów bezpieczeństwa. Warto też pamiętać o wykorzystaniu wbudowanych mechanizmów HTML5 (atrybuty required, type="email" itd.), ale to JavaScript daje pełną kontrolę nad logiką i komunikatami błędów, bo pozwala tworzyć własne reguły i reagować na konkretne zachowania użytkownika.

Pytanie 19

Jednym z atrybutów tabeli ksiazki jest status czyWypozyczona, który może przyjmować dwie wartości: true lub false. Jaki typ danych będzie najbardziej odpowiedni dla tego atrybutu?

A. BOOLEAN
B. DOUBLE
C. CHAR
D. VARCHAR(5)
Odpowiedź BOOLEAN jest optymalnym wyborem dla pola status czyWypozyczona, ponieważ reprezentuje typ danych logicznych, które mogą przyjmować jedynie dwie wartości: prawda (true) lub fałsz (false). W kontekście systemów baz danych, typ BOOLEAN jest używany do efektywnego przechowywania informacji, które mają tylko dwa możliwe stany, co pozwala na oszczędność miejsca oraz przyspieszenie operacji zapytań. Na przykład, przy tworzeniu zapytań SQL, możemy łatwo filtrować wyniki na podstawie statusu wypożyczenia, co znacząco zwiększa czytelność i wydajność kodu. Warto również zauważyć, że wiele systemów baz danych, takich jak MySQL, PostgreSQL, czy SQLite, oferują dedykowane wsparcie dla typu BOOLEAN, co czyni go zgodnym z najlepszymi praktykami w projektowaniu baz danych, w których dąży się do maksymalnej klarowności i wydajności. Dzięki temu, stosując typ BOOLEAN, nie tylko upraszczamy model danych, ale także ułatwiamy jego dalsze wykorzystanie i konserwację.

Pytanie 20

Aby wykonać usunięcie wszystkich zapisów z tabeli, konieczne jest użycie kwerendy

A. CREATE COLUMN
B. TRUNCATE TABLE
C. ALTER COLUMN
D. INSERT INTO
Odpowiedź 'TRUNCATE TABLE' jest poprawna, ponieważ ta kwerenda służy do usuwania wszystkich rekordów z tabeli w bazach danych SQL. W przeciwieństwie do kwerendy 'DELETE', która usuwa rekordy jeden po drugim i może być stosowana z warunkiem, 'TRUNCATE TABLE' działa na poziomie strony i usuwa wszystkie wiersze za jednym razem, co czyni ją znacznie bardziej wydajną, szczególnie w przypadku dużych zbiorów danych. Gdy wykonujemy 'TRUNCATE TABLE', wszystkie dane są usuwane, a struktura tabeli pozostaje nienaruszona, co oznacza, że możemy natychmiast dodawać nowe dane do tej samej tabeli. Ponadto, użycie 'TRUNCATE TABLE' resetuje wszelkie generatory tożsamości (IDENTITY) w tabeli. W praktyce ta metoda jest często wykorzystywana w scenariuszach, gdzie potrzebne jest szybkie zresetowanie danych w tabeli, na przykład w aplikacjach testowych lub podczas czyszczenia danych w hurtowniach danych. Warto pamiętać, że 'TRUNCATE' nie można zastosować, jeśli tabela jest powiązana z innymi tabelami przez klucze obce, co jest zgodne z zasadami integralności referencyjnej w bazach danych.

Pytanie 21

W języku SQL dodanie nowej kolumny z nazwą miejscowości do istniejącej tabeli pracownicy umożliwia kwerenda

A. ALTER TABLE pracownicy ADD miejscowosc VARCHAR(100);
B. CREATE TABLE pracownicy ADD miejscowosc FLOAT(2);
C. ALTER TABLE pracownicy DROP COLUMN miejscowosc;
D. ALTER TABLE pracownicy ADD miejscowosc FLOAT(2);
Żeby dobrze zrozumieć to zadanie, trzeba rozdzielić trzy różne obszary: modyfikację istniejącej tabeli, tworzenie nowej tabeli oraz usuwanie elementów z tabeli. W pytaniu chodzi konkretnie o dodanie nowej kolumny do już istniejącej tabeli pracownicy. To od razu sugeruje użycie instrukcji ALTER TABLE z klauzulą ADD, bo właśnie ta kombinacja jest standardowym sposobem modyfikowania struktury tabeli w SQL. Jednym z częstych nieporozumień jest użycie nieodpowiedniego typu danych. W niektórych odpowiedziach pojawia się typ FLOAT(2) dla nazwy miejscowości. FLOAT jest typem liczbowym zmiennoprzecinkowym, używanym do przechowywania wartości numerycznych, np. cen, pomiarów czy wyników obliczeń. Nazwa miasta to typowe dane tekstowe, czyli powinna być przechowywana w typie znakowym, takim jak VARCHAR czy ewentualnie CHAR. Próba użycia typu liczbowego do przechowywania tekstu jest po prostu sprzeczna z logiką projektowania baz danych i dobrymi praktykami normalizacji, bo utrudnia walidację i późniejsze operacje na danych. Inny błąd to sięganie po instrukcję DROP COLUMN. DROP w kontekście ALTER TABLE oznacza usunięcie kolumny z tabeli, a nie jej dodanie. Jeśli ktoś nieuważnie czyta polecenie lub myli słowa kluczowe, może mu się wydawać, że DROP „coś zmienia w strukturze”, ale kierunek jest dokładnie odwrotny do wymaganego – kolumna miejscowosc zostałaby usunięta (o ile w ogóle istnieje), a nie dodana. W praktyce administracji bazą jest to bardzo niebezpieczna pomyłka, bo DROP COLUMN usuwa dane bezpowrotnie. Zdarza się też pomylenie CREATE TABLE z ALTER TABLE. CREATE TABLE służy do zakładania całkowicie nowej tabeli, a nie do modyfikacji istniejącej. Składnia CREATE TABLE nie przewiduje klauzuli ADD w środku, tylko od razu listę kolumn w nawiasach. Próba napisania czegoś w stylu CREATE TABLE pracownicy ADD ... jest po prostu składniowo błędna w SQL i żadna sensowna baza nie przyjmie takiego polecenia. To typowy błąd osób, które pamiętają, że „ADD dodaje kolumnę”, ale nie łączą tego poprawnie z kontekstem ALTER TABLE. Z mojego doświadczenia dobrą praktyką jest zawsze zadanie sobie dwóch pytań: czy tabela już istnieje, oraz czy chcę coś dodać, usunąć czy zmienić. Jeśli tabela istnieje i coś dokładamy – używamy ALTER TABLE ... ADD ..., dobierając typ danych zgodny z charakterem informacji. W tym zadaniu wszystkie błędne odpowiedzi łamią jedną z tych zasad: albo używają złego typu (FLOAT zamiast tekstu), albo złego słowa kluczowego (DROP zamiast ADD), albo złej instrukcji (CREATE TABLE zamiast ALTER TABLE).

Pytanie 22

Jakie typy danych w C++ są używane do reprezentacji liczb rzeczywistych?

A. double oraz bool
B. double oraz short
C. float oraz long
D. float oraz double
Odpowiedź 'float i double' jest prawidłowa, ponieważ te dwa typy danych w języku C++ są przeznaczone do reprezentowania liczb rzeczywistych. Typ 'float' zajmuje 4 bajty pamięci i służy do przechowywania liczb zmiennoprzecinkowych o pojedynczej precyzji, co oznacza, że może reprezentować liczby z ograniczoną dokładnością. Typ 'double', z kolei, zajmuje 8 bajtów pamięci i pozwala na przechowywanie liczb zmiennoprzecinkowych o podwójnej precyzji. Dzięki temu 'double' umożliwia reprezentację znacznie większych i bardziej precyzyjnych wartości. W praktyce, typ 'float' jest często używany w sytuacjach, gdzie oszczędność pamięci jest kluczowa, na przykład w grafice komputerowej, natomiast 'double' jest preferowany w obliczeniach naukowych i inżynieryjnych, gdzie precyzja jest priorytetem. Dlatego zrozumienie różnicy między tymi typami danych oraz ich zastosowań jest niezbędne do efektywnego programowania w C++. Zgodnie z najlepszymi praktykami, programiści powinni dobierać typy danych odpowiednio do wymagań swojego projektu, zwracając uwagę na równowagę między precyzją a wydajnością.

Pytanie 23

Kod umieszczony w ramce tworzy tabelę, która zawiera

Ilustracja do pytania
A. jeden wiersz i dwa słupki
B. dwa wiersze i dwa słupki
C. dwa wiersze i jeden słupek
D. jeden wiersz i jeden słupek
Analizując podane opcje należy zrozumieć że struktura tabeli w HTML opiera się na elementach <tr> które definiują wiersze oraz <td> które definiują komórki czyli kolumny w danym wierszu. Kod HTML zawsze zaczyna się od otwarcia znacznika <table> i kończy znacznikiem </table>. Wewnątrz tego bloku umieszczane są znaczniki <tr> i <td>. Częstym błędem jest mylenie liczby wierszy z liczbą kolumn co prowadzi do błędnych wniosków. Kod przedstawiony w pytaniu zawiera jeden znacznik <tr> co jednoznacznie wskazuje na jeden wiersz tabeli. Wiele osób błędnie zakłada że każda nowa komórka zaczyna nowy wiersz co jednak nie jest prawdą. Istnieją sytuacje w których tabele mogą wydawać się bardziej skomplikowane szczególnie gdy zagnieżdża się tabele lub stosuje colspan i rowspan ale w podstawowym domyślnym układzie każda linia <tr> zaczyna nowy wiersz a każda <td> jest nową komórką w bieżącym wierszu. Analizując dostępne odpowiedzi zauważamy że poprawne rozumienie struktury tabeli HTML wymaga ścisłego przestrzegania jej hierarchii a błędne odpowiedzi wynikają z niepoprawnego przypisania liczby wierszy lub kolumn co często jest wynikiem niedostatecznego zrozumienia budowy kodu HTML i jego renderowania w przeglądarkach. Kluczowe jest aby zawsze weryfikować strukturę poprzez liczenie <tr> i <td> co pozwala uniknąć podstawowych błędów przy tworzeniu i analizie tabel HTML. Takie podejście jest nie tylko poprawne w aspekcie technicznym ale również zgodne ze standardami tworzenia stron internetowych co jednocześnie podkreśla znaczenie solidnej wiedzy o strukturze HTML w pracy profesjonalnego web developera.

Pytanie 24

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

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

Pytanie 25

W języku CSS, aby ustalić wewnętrzny górny margines, czyli przestrzeń pomiędzy elementem a jego otaczającym obramowaniem, należy zastosować komendę

A. padding-top
B. outline-top
C. border-top
D. local-top
W języku CSS, aby zdefiniować wewnętrzny górny margines elementu, należy użyć właściwości padding-top. Marginesy wewnętrzne (padding) to przestrzeń, która znajduje się pomiędzy zawartością elementu a jego obramowaniem, co pozwala na stworzenie efektu oddzielenia treści od krawędzi. Wartości padding-top można ustalać w jednostkach takich jak px, em, rem czy %. Na przykład, kod CSS 'padding-top: 20px;' doda 20 pikseli odstępu od górnej krawędzi obramowania do zawartości elementu. Właściwość ta jest standardowo wspierana we wszystkich nowoczesnych przeglądarkach i jest częścią specyfikacji CSS Box Model, która określa, jak przestrzeń jest zorganizowana w obrębie elementów HTML. Użycie padding-top jest kluczowe, gdy chcemy, aby nasza strona była estetyczna i czytelna, co ma istotne znaczenie w projektowaniu responsywnym, gdzie różne urządzenia mogą wymagać różnych wartości paddingu, aby utrzymać spójność wizualną. Poprawne stosowanie padding-top przyczynia się również do lepszej dostępności strony, co jest istotnym aspektem w nowoczesnym web designie.

Pytanie 26

Dla którego akapitu zastosowano przedstawioną właściwość stylu CSS?

border-radius: 20%;

To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf

A

To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf

B

To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf

C

To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf, To jest paragraf

D
A. B.
B. C.
C. D.
D. A.
Niestety, tym razem nie trafiłeś. Właściwość CSS 'border-radius: 20%;' naprawdę służy do zaokrąglania rogów, a na obrazku tylko akapit B ma takie zaokrąglenia. Może pomyliłeś to z czymś innym? Ważne, żeby zrozumieć, jak działa 'border-radius' – robi on krawędzie ładniejsze. Jak widzisz, '20%;' to wartość procentowa i mówi, jak bardzo te rogi mają być zaokrąglone. Widziałeś inne odpowiedzi (A, C, D), ale one nie miały tych zaokrągleń. Najlepiej zwrócić uwagę na to, jak różne style CSS wpływają na wygląd naszych elementów. W przyszłości warto się tego nauczyć, bo to naprawdę przydatne.

Pytanie 27

Została stworzona baza danych z tabelą podzespoły, która zawiera pola: model, producent, typ, cena. W celu wyświetlenia wszystkich modeli pamięci RAM od firmy Kingston w porządku rosnącym według ceny, należy skorzystać z następującej kwerendy:

A. SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena DESC
B. SELECT model FROM podzespoly WHERE typ='RAM' OR producent='Kingston' ORDER BY cena DESC
C. SELECT model FROM producent WHERE typ='RAM' OR producent='Kingston' ORDER BY podzespoly ASC
D. SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC
Aby skutecznie wyświetlić wszystkie modele pamięci RAM firmy Kingston w kolejności od najtańszej do najdroższej, konieczne jest zrozumienie składni zapytań SQL oraz zasad filtrowania danych w bazie danych. Kwerenda SELECT model FROM podzespoly WHERE typ='RAM' AND producent='Kingston' ORDER BY cena ASC; jest poprawna, ponieważ precyzyjnie określa, że chcemy wybrać pole 'model' z tabeli 'podzespoly', gdzie warunki są spełnione dla typu 'RAM' oraz producenta 'Kingston'. Kluczowym aspektem jest użycie operatora AND, który zapewnia, że oba warunki muszą być spełnione, co pozwala na uzyskanie dokładnych wyników. Następnie, zastosowanie klauzuli ORDER BY cena ASC pozwala na posortowanie wyników w kolejności rosnącej według ceny, co jest istotne dla użytkowników poszukujących najtańszych opcji. Przykładem zastosowania tej kwerendy w praktyce może być analiza konkurencyjności cenowej produktów na rynku pamięci RAM, co jest istotne dla sprzedawców i konsumentów. W kontekście standardów SQL, konstrukcja ta przestrzega zasad definiowanych przez ANSI SQL, co czyni ją zgodną z większością systemów zarządzania bazami danych.

Pytanie 28

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Ta odpowiedź jest prawidłowa, ponieważ używa funkcji agregującej AVG, która oblicza średnią wartość z określonego pola, w tym przypadku pensji. Warunek WHERE zapewnia, że tylko pracownicy z stażem od 10 do 20 lat są brani pod uwagę w obliczeniach. Użycie funkcji AVG w kontekście SQL jest standardową praktyką, gdy chcemy uzyskać średnią z danych numerycznych. Na przykład, jeśli w tabeli mamy pracowników z różnymi pensjami, a chcemy zrozumieć, jak wygląda średnia wynagrodzeń w określonym przedziale stażu, to właśnie ta kwerenda dostarcza nam niezbędnej informacji. Dobre praktyki w analizie danych wskazują, że obliczenie średniej pensji jest kluczowe dla zarządzania zasobami ludzkimi i podejmowania decyzji dotyczących polityki wynagrodzeń. Przykładem może być sytuacja, gdy firma decyduje o podwyżkach lub bonusach, a analiza średniej pensji w danej grupie pracowników może znacząco wpłynąć na te decyzje.

Pytanie 29

Które z poniższych poleceń jest poprawne w kontekście walidacji HTML5?

A. &lt;img src = mojPiesek.jpg alt = pies&gt;
B. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
C. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
D. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
Odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt; jest poprawna zgodnie z wymaganiami HTML5, ponieważ przestrzega zasad dotyczących składni znaczników. W HTML5 atrybuty powinny być stosowane w formacie klucz-wartość, gdzie klucz jest nazwą atrybutu, a wartość jest przypisana w cudzysłowach. W tym przypadku atrybut 'src' wskazuje na źródło obrazu, a 'alt' dostarcza tekst alternatywny, co jest istotne z punktu widzenia dostępności. Tekst alternatywny jest używany przez technologie asystujące oraz wyświetlany, gdy obraz nie może być załadowany. Przykład użycia: &lt;img src=&quot;logo.png&quot; alt=&quot;Logo firmy&quot;&gt; jest zgodny z dobrymi praktykami, ponieważ informuje użytkowników o zawartości obrazu. Warto również pamiętać, że w HTML5 nie jest wymagane zamykanie tagu &lt;img&gt;, co czyni go bardziej elastycznym w użyciu. Poprawne stosowanie atrybutów oraz odpowiedzialność za dostępność treści to kluczowe aspekty projektowania stron internetowych w dzisiejszych czasach.

Pytanie 30

Która komenda algorytmu odpowiada graficznej wizualizacji bloku przedstawionego na ilustracji?

Ilustracja do pytania
A. Wypisz n
B. Wykonaj podprogram sortowania tablicy t
C. n > 20
D. n <- n + 5
Analizując dostępne opcje należy zrozumieć że poprawna identyfikacja elementów algorytmu zależy od znajomości symboli używanych w schematach blokowych. Wybór n>20 jako poprawnej odpowiedzi wynika z rozpoznania rombu jako symbolu decyzji. Opcja Wypisz n sugeruje operację wyjściową która w schematach blokowych zwykle reprezentowana jest przez prostokąt z zakrzywionymi narożnikami co oznacza wyświetlanie wartości zmiennej. Instrukcja n <- n + 5 jest przykładem operacji przypisania lub inkrementacji która zazwyczaj oznacza modyfikację wartości zmiennej i byłaby przedstawiona jako prostokąt oznaczający proces. Natomiast Wykonaj podprogram sortowania tablicy t to wywołanie funkcji które także mieści się w zakresie standardowego bloku procesowego. Wybór tych opcji wskazuje na brak poprawnego zrozumienia jakie typy operacji reprezentują różne kształty w schematach blokowych co może prowadzić do błędów w projektowaniu algorytmów. Zrozumienie znaczenia każdego bloku jest kluczowe w procesie tworzenia dokładnych i funkcjonalnych modeli algorytmicznych które są podstawą efektywnego rozwiązywania problemów w informatyce i inżynierii oprogramowania. Warto zwrócić uwagę na standardy takie jak UML czy BPMN które także definiują podobne symbole i konwencje co ułatwia komunikację i dokumentację w zespołach projektowych.

Pytanie 31

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

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

Pytanie 32

Jakie dane zostaną wybrane po wykonaniu poniższej kwerendy na pokazanych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";

idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Tylko id równe 8
B. Wszystkie id
C. Brak danych
D. Pole id równe 7 oraz 8
Odpowiedź jest prawidłowa, ponieważ zapytanie SQL SELECT id FROM samochody WHERE rocznik LIKE '2_4'; filtruje rekordy, które mają w kolumnie rocznik wartość z drugą cyfrą równą '2' i czwartą cyfrą równą '4'. W złożonym zapytaniu SQL zastosowano operator LIKE z użyciem symbolu podkreślenia (_) jako symbolu zastępczego dla pojedynczego znaku. To oznacza, że szukamy dowolnego roku, który zaczyna się od cyfry '2', ma dowolną cyfrę na drugiej pozycji i cyfrę '4' na ostatniej pozycji. Praktycznie oznacza to, że wybierane są identyfikatory pojazdów, które mają rocznik odpowiadający temu wzorcowi. W dostarczonym zbiorze danych tylko rekordy o id 7 i 8 spełniają ten warunek, ponieważ rocznik to 2014 i 2004. Tego rodzaju konstrukcja SQL jest użyteczna w sytuacjach, gdy potrzebujemy selektywnie uzyskać dane na podstawie wzorców. Operator LIKE jest bardzo efektywny w analizie danych tekstowych w bazach danych np. w raportach analitycznych gdzie kluczowe jest wyszukiwanie na podstawie wzorców. Warto zaznaczyć, że takie podejście jest zgodne ze standardami SQL, ułatwiającymi zarządzanie i filtrowanie danych w złożonych systemach bazodanowych.

Pytanie 33

W SQL przeprowadzono zapytanie, jednak jego realizacja nie powiodła się, co skutkowało błędem: #1396 - Operation CREATE USER failed for 'anna'@'localhost'. Możliwą przyczyną takiego zachowania bazy danych może być

CREATE USER 'anna'@'localhost' IDENTIFIED BY '54RTu8';
A. błędna składnia polecenia CREATE USER
B. nieznane polecenie CREATE USER
C. niewystarczające hasło dla konta anna
D. istnienie użytkownika anna w bazie
Odpowiedzi sugerujące zbyt słabe hasło, nieznane polecenie, czy też nieprawidłową składnię polecenia są mylące i wskazują na brak zrozumienia podstawowych zasad działania systemów zarządzania bazą danych MySQL. Po pierwsze, hasło '54RTu8' spełnia standardowe wymagania dotyczące złożoności, które zazwyczaj obejmują minimalną długość oraz kombinację liter i cyfr, co czyni tę odpowiedź nieprawidłową. Ponadto, polecenie CREATE USER jest standardowym poleceniem w SQL, więc stwierdzenie, że jest ono 'nieznane', również nie ma podstaw. Warto zauważyć, że składnia polecenia jest poprawna i nie zawiera żadnych błędów typograficznych. Takie myślenie może prowadzić do fałszywych wniosków, co jest szczególnie problematyczne w kontekście rozwiązywania problemów. W praktyce, użytkownicy powinni nauczyć się korzystać z dokumentacji oraz narzędzi diagnostycznych, takich jak logi błędów, aby lepiej zrozumieć przyczyny problemów. Przykładem dobrej praktyki jest stosowanie komendy SHOW GRANTS, aby sprawdzić, jakich uprawnień już istniejący użytkownik może potrzebować, zanim podejmie się decyzji o jego usunięciu czy modyfikacji.

Pytanie 34

Który element blokowy języka HTML5 jest przeznaczony do umieszczenia w nim nawigacji witryny? 

A. header
B. nav
C. aside
D. main
Poprawnie wskazany został element <nav>, który w HTML5 jest semantycznym kontenerem przeznaczonym specjalnie na nawigację. Według specyfikacji HTML Living Standard element <nav> służy do grupowania głównych bloków odsyłaczy nawigacyjnych, takich jak menu główne, menu w stopce, menu kategorii czy paginacja. Przeglądarki, czytniki ekranu i różne narzędzia asystujące rozpoznają ten znacznik jako obszar nawigacyjny, co bardzo poprawia dostępność (accessibility) strony. Z mojego doświadczenia, gdy struktura jest zrobiona semantycznie, screen readery potrafią jednym skrótem klawiaturowym przeskoczyć do nawigacji, co jest ogromnym ułatwieniem dla użytkowników niewidomych. W praktyce w <nav> umieszczamy listy linków, najczęściej w postaci <ul><li><a>…</a></li></ul>. Przykładowo: <nav><ul><li><a href="/">Strona główna</a></li><li><a href="/oferta">Oferta</a></li><li><a href="/kontakt">Kontakt</a></li></ul></nav>. Taka konstrukcja jest zgodna z dobrymi praktykami front-endu: semantyczny HTML, czytelna struktura, łatwiejsze stylowanie w CSS i prostsza nawigacja w JavaScript. Co ważne, <nav> nie jest zwykłym divem – jego nazwa od razu mówi, do czego służy, co ułatwia pracę całego zespołu projektowego. W projektach komercyjnych często stosuje się kilka bloków <nav> na jednej stronie: główne menu w headerze, dodatkowe menu w stopce, czasem boczne menu kategorii. Standardy W3C dopuszczają to, pod warunkiem że te sekcje rzeczywiście służą do nawigowania. Dobrym zwyczajem jest nie umieszczać w <nav> pojedynczych przypadkowych linków w tekście artykułu – ten znacznik jest przewidziany dla istotnych struktur nawigacyjnych, a nie dla zwykłych hiperłączy w treści. Dzięki temu kod HTML pozostaje przejrzysty, łatwiej go walidować i utrzymywać w większych projektach.

Pytanie 35

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

x = 0;
x += 10;
A. x = 10; x = 0;
B. x = 10; x = x + 10;
C. x = 0; x++; x = x + 9;
D. x = 0; x--; x *= 9;
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 36

Jakie skutki przyniesie zastosowanie przedstawionego formatowania CSS dla nagłówka trzeciego stopnia?

<style> h3 { background-color: grey; } </style> ... <h3 style="background-color: orange;"> Rozdział 1.2.2. </h3>
A. tło będzie szare
B. kolor tekstu będzie pomarańczowy
C. kolor tekstu będzie szary
D. tło będzie pomarańczowe
W kaskadowych arkuszach stylów CSS ważna jest zasada kaskadowania, która mówi o tym, jakie style powinny obowiązywać w przypadku konfliktów. Oparcie się na specyficzności selektorów i ich kolejności w kodzie to podstawa. W tym pytaniu mówimy o stylizacji nagłówka przy użyciu zewnętrznego stylu CSS i stylu wbudowanego. Styl wbudowany ma najwyższą specyficzność, czyli zawsze wygrywa z regułami z sekcji style, nawet jeśli są one globalne. To znaczy, że niezależnie od tego, co napisano w stylach dla nagłówka h3, to jednak styl wbudowany ustawi tło na pomarańczowe. Nie można zakładać, że zewnętrzne reguły mają wyższy priorytet, gdy nie są bardziej specyficzne albo nie używają !important. Zrozumienie tych zasad pozwala uniknąć typowych błędów w stylizacji, co jest wyjątkowo istotne w tworzeniu stron. Żeby wszystko ładnie wyglądało i było łatwe do zarządzania, lepiej unikać stylów wbudowanych przy większych projektach, gdzie oddzielenie struktury od prezentacji jest kluczowe dla utrzymania kodu. Lepiej skupić się na stylach zewnętrznych, mając na uwadze specyficzność i zasady kaskadowe, co zapewnia większą kontrolę nad wyglądem strony.

Pytanie 37

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
B. Liczbę wierszy, które zostały dodane do tabeli produkty.
C. Liczbę wierszy, które znajdują się w bazie danych.
D. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
Wybór niepoprawnej odpowiedzi może wynikać z nieporozumienia dotyczącego działania funkcji mysqli_affected_rows oraz zrozumienia zapytań SQL. Wiele osób może myśleć, że funkcja ta zwraca liczbę wierszy w tabeli, co jest błędne. mSQL i PHP oferują wiele funkcji do interakcji z bazą danych, a zrozumienie ich specyfikacji jest kluczowe dla efektywnego programowania. Odpowiedź sugerująca, że x przyjmuje liczbę wierszy znajdujących się w bazie danych, jest absolutnie nieprawidłowa, ponieważ mysqli_affected_rows nie ma nic wspólnego z ogólną liczbą wierszy w tabeli. To funkcja, która skupia się na rezultatach ostatniego zapytania, a nie na całkowitym stanie bazy danych. Podobnie, zrozumienie zapytania DELETE FROM jako operacji, która zmienia stan bazy danych, jest fundamentalne. Inną popularną pomyłką jest myślenie, że liczba wierszy dodanych do tabeli jest w jakiś sposób związana z tym, co robi zapytanie DELETE. W rzeczywistości, podczas usuwania danych, nie dodajemy nic nowego, a funkcja ta jedynie informuje nas o usuniętych elementach. Dobrą praktyką jest również sięganie po dokumentację oraz testowanie kodu, co pozwala na lepsze zrozumienie zachowań funkcji i operacji na bazach danych.

Pytanie 38

Definicja stylu przedstawiona w języku CSS dotyczy odnośnika, który

Ilustracja do pytania
A. ma wskaźnik myszy ustawiony nad nim
B. był już odwiedzany
C. jeszcze nie był odwiedzany
D. posiada niepoprawny adres URL
Podczas analizy CSS ważne jest rozumienie, jak działają pseudo-klasy, które umożliwiają stylizację elementów w określonych stanach. Pseudo-klasa :hover odpowiada za stan, gdy kursor myszy znajduje się nad elementem, co pozwala na dynamiczne zmiany wyglądu, takie jak podświetlenie elementu. Jest to często używane do interaktywnych efektów w interfejsach użytkownika. Tymczasem :link dotyczy linków, które jeszcze nie zostały odwiedzone przez użytkownika. Wprawdzie pozwala to na odróżnienie ich od odwiedzonych linków, ale stylizacja :link nie może zmienić się po kliknięciu, co jest kluczowe dla zachowania dostępności. Błędny adres URL nie jest związany z żadną z tych pseudo-klas i nie można go zidentyfikować ani zmodyfikować za pomocą CSS, ponieważ zarządzanie adresami URL odbywa się na poziomie HTML i JavaScript. W kontekście tworzenia stron internetowych zrozumienie tych różnic jest kluczowe, ponieważ wpływa na sposób, w jaki użytkownicy wchodzą w interakcję z treścią. Błędy w rozumieniu tych mechanizmów prowadzą do niepoprawnej nawigacji i mogą negatywnie wpływać na doświadczenie użytkownika, co jest sprzeczne z dobrymi praktykami w projektowaniu interfejsów i UX. Ważne jest, aby projektować strony zgodnie ze standardami, które umożliwiają intuicyjne korzystanie i zapewniają, że użytkownicy łatwo mogą rozpoznać odwiedzone i nieodwiedzone linki, co jest kluczowe dla ich doświadczenia i nawigacji.

Pytanie 39

W języku MySQL należy wykorzystać polecenie REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian wyłącznie w definicji struktury bazy danych. Polecenie, które służy do odebrania tych uprawnień, ma następującą formę

A. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE ALL ON tabela1 FROM 'anna'@'localhost'
Wybór innego podejścia do odbierania uprawnień użytkownikowi 'anna' jest niewłaściwy z kilku powodów. Po pierwsze, REVOKE ALL ON tabela1 FROM 'anna'@'localhost' jest zbyt ogólnie sformułowane, jako że odbiera wszystkie przydzielone uprawnienia, w tym te, które mogą być konieczne do wykonywania podstawowych operacji na danych. Taki ruch mógłby całkowicie zablokować użytkownika w interakcji z tabelą, co nie odzwierciedla zamierzonego celu, jakim jest jedynie ograniczenie możliwości modyfikacji struktury. Drugą nieodpowiednią propozycją jest REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'. Ta komenda również jest błędna, ponieważ wprowadza uprawnienie UPDATE, które nie jest związane z zarządzaniem strukturą bazy danych. Odbieranie tego uprawnienia sprawiłoby, że użytkownik nie mógłby wprowadzać danych do tabeli, co jest sprzeczne z intencją ograniczenia jedynie modyfikacji struktury. Kolejną niewłaściwą odpowiedzią jest REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost', która również nie spełnia wymogów, ponieważ odbiera uprawnienia związane z wstawianiem i usuwaniem danych, co jest istotne dla pracy z danymi w tabeli. W kontekście zarządzania bazami danych, istotne jest, aby precyzyjnie określać, jakie uprawnienia są odbierane, a także dokładnie rozumieć ich zastosowanie oraz potencjalne konsekwencje ich odebrania.

Pytanie 40

Używając komendy BACKUP LOG w MS SQL Server, można

A. zalogować się do kopii zapasowej
B. odczytać komunikaty generowane podczas tworzenia kopii
C. zrealizować pełną kopię zapasową
D. wykonać kopię zapasową dziennika transakcyjnego
Wybór odpowiedzi dotyczący logowania się do kopii bezpieczeństwa wykazuje nieporozumienie dotyczące funkcji, jakie pełnią operacje backupu w MS SQL Server. Proces tworzenia kopii zapasowej dziennika transakcyjnego nie ma nic wspólnego z logowaniem się do wygenerowanej kopii; jest to osobny proces, który polega głównie na archiwizacji danych transakcyjnych. Kolejne stwierdzenie, że możliwe jest przeczytanie komunikatów wygenerowanych podczas tworzenia kopii, zakłada, że operacja backupu dostarcza interaktywnych danych na temat jej przebiegu, co nie jest zgodne z rzeczywistością. MS SQL Server zwykle loguje wyniki operacji do dziennika zdarzeń lub plików logów, ale nie jest to funkcjonalność, na którą można liczyć w codziennym użytkowaniu. Wreszcie, stwierdzenie, że BACKUP LOG pozwala na wykonanie pełnej kopii bezpieczeństwa, jest także błędne. BACKUP LOG dotyczy tylko dziennika transakcyjnego, podczas gdy pełna kopia bezpieczeństwa wykonana jest przy użyciu polecenia BACKUP DATABASE. W praktyce, wiele osób myli te dwa procesy, co prowadzi do nieefektywnego zarządzania danymi i ryzyka utraty informacji. Zrozumienie technicznych aspektów działania tych poleceń jest kluczowe dla prawidłowego administrowania bazami danych.