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: 10 maja 2026 09:31
  • Data zakończenia: 10 maja 2026 09:53

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

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

Które zdarzenie języka JavaScript jest wyzwalane w momencie, gdy kursor myszy znajduje się na elemencie do którego jest przypisane?

A. onmousedown
B. onmouseover
C. onmouseout
D. onmouseup
Prawidłowa odpowiedź to onmouseover, bo właśnie to zdarzenie w JavaScript uruchamia się w momencie, kiedy kursor myszy *wchodzi* na dany element i znajduje się nad nim. Przeglądarka monitoruje położenie kursora i gdy tylko „najedziesz” na element z przypisanym zdarzeniem onmouseover, wywoływany jest podpięty handler, na przykład funkcja w JavaScript. W praktyce często używa się tego do tworzenia efektów typu podświetlanie przycisków, rozwijane menu, podpowiedzi (tooltips) albo lekkie animacje po najechaniu. Przykładowo: `<button onmouseover="this.style.backgroundColor='orange'">Najedź na mnie</button>` – w chwili najechania myszką kolor tła przycisku się zmienia. Moim zdaniem to jedno z bardziej podstawowych zdarzeń, które warto ogarnąć na początku nauki frontendu, bo pozwala szybko zrobić stronę bardziej „żywą”. W nowoczesnym kodzie raczej unika się pisania atrybutów typu onmouseover bezpośrednio w HTML i zamiast tego stosuje się `addEventListener("mouseover", handler)` w JavaScript. Jest to zgodne z dobrymi praktykami i oddziela logikę od struktury dokumentu. Warto też wiedzieć, że onmouseover różni się od onmouseenter: onmouseover propaguje się (bąbelkuje) w górę drzewa DOM, co ma znaczenie przy bardziej złożonych interfejsach. Standardowe API DOM dokładnie opisuje te różnice i przy projektowaniu interakcji dobrze jest świadomie wybierać odpowiedni typ zdarzenia. W typowych projektach webowych onmouseover jest używany głównie do prostych reakcji na najechanie, ale trzeba pamiętać, by nie przesadzać z efektami, żeby nie przeciążyć użytkownika i nie zepsuć użyteczności strony.

Pytanie 2

W bazie danych znajdują się dwie tabele, które są ze sobą połączone relacją 1..n. Jakiej klauzuli SQL należy użyć, aby uzyskać odpowiadające sobie dane z obu tabel?

A. INNER LINK
B. AND
C. JOIN
D. OUTER LINK
Klauzula JOIN w SQL służy do łączenia tabel w bazie danych, pozwalając na pobranie powiązanych danych z różnych tabel. W przypadku relacji 1..n, przy której jedna tabela (nazwa tabeli `A`) może mieć wiele powiązanych rekordów w drugiej tabeli (nazwa tabeli `B`), klauzula JOIN jest idealna do uzyskania korespondujących wartości z obu tabel. Przykład zastosowania to: SELECT A.*, B.* FROM A JOIN B ON A.id = B.a_id; W powyższym zapytaniu `A.id` to klucz główny tabeli `A`, a `B.a_id` to klucz obcy w tabeli `B`, który odnosi się do `A`. Klauzula JOIN może przyjmować różne formy, takie jak INNER JOIN, LEFT JOIN, RIGHT JOIN, i FULL JOIN, które różnią się sposobem łączenia danych i wynikami. JOIN jest standardem SQL, co oznacza, że jest wspierany przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle, czy Microsoft SQL Server. Użycie klauzuli JOIN jest kluczowe w relacyjnych bazach danych, gdzie dane są rozdzielone w różnych tabelach, ale muszą być analizowane łącznie.

Pytanie 3

Polecenie SQL:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:
A. do manipulowania danymi bazy danych klienci
B. do zarządzania strukturą tabeli klienci
C. do zarządzania strukturą bazy danych klienci
D. do manipulowania danymi w tabeli klienci
W kontekście analizy niepoprawnych odpowiedzi, odpowiedzi dotyczące zarządzania strukturą tabeli klienci oraz zarządzania strukturą bazy danych klienci są niepoprawne, ponieważ polecenie GRANT nie odnosi się do tych aspektów. Zarządzanie strukturą tabeli zazwyczaj obejmuje takie operacje jak tworzenie lub modyfikowanie tabel, co jest realizowane przez polecenia takie jak CREATE TABLE czy ALTER TABLE. W przypadku polecenia GRANT, nie ma mowy o wprowadzaniu zmian w strukturze tabeli, a jedynie o nadawaniu uprawnień do manipulacji danymi. Podobnie, zarządzanie strukturą bazy danych dotyczy bardziej operacji administracyjnych, takich jak tworzenie bazy danych, co również nie jest tożsame z uprawnieniami do operacji na danych. Ostatnia z niepoprawnych odpowiedzi, dotycząca manipulowania danymi bazy danych klienci, jest również myląca, ponieważ odnosi się do całej bazy danych jako całości, podczas gdy polecenie dotyczy wyłącznie konkretnej tabeli. W praktyce, zarządzanie danymi w kontekście bazy danych oznacza operacje na zbiorze danych, a nie na pojedynczych rekordach w tabelach. Dlatego kluczowe jest zrozumienie, że GRANT pozwala na nadawanie uprawnień do działania na konkretnej tabeli, a nie na całej bazie danych czy jej strukturze.

Pytanie 4

DOM oferuje funkcje i atrybuty, które w JavaScript umożliwiają

A. przesyłanie danych formularza bezpośrednio do bazy danych
B. wykonywanie operacji na zmiennych przechowujących wartości liczbowe
C. pobieranie i modyfikowanie elementów strony załadowanej w przeglądarce
D. manipulowanie łańcuchami zadeklarowanymi w kodzie
Manipulacja łańcuchami, wysyłanie danych formularzy do baz danych oraz operacje na zmiennych liczbowych to pojęcia, które nie są bezpośrednio związane z funkcjonalnościami DOM. Przykładowo, manipulacja łańcuchami odnosi się do operacji na stringach w JavaScript, takich jak łączenie, dzielenie czy modyfikowanie tekstu, co nie ma związku z strukturą dokumentu HTML. W przypadku formularzy, wysyłanie danych do bazy danych jest zazwyczaj realizowane przez backend, a nie bezpośrednio przez DOM. DOM może jednak wspierać ten proces, umożliwiając zebranie danych w formularzach, ale to skrypty po stronie serwera zajmują się obsługą i przechowywaniem tych danych. Operacje na zmiennych liczbowych również są częścią podstawowej składni JavaScript, ale nie mają związku z manipulowaniem strukturą dokumentu. Często podczas nauki programowania zdarza się mylić koncepcje związane z różnymi warstwami aplikacji, co prowadzi do nieporozumień. Kluczowe jest zrozumienie, że DOM jest narzędziem do interakcji z dokumentem strony w przeglądarkach, a nie do manipulacji danymi czy zmiennymi w ogólnym sensie. Właściwe zrozumienie roli DOM w kontekście aplikacji webowych jest istotne dla efektywnego rozwoju złożonych interfejsów użytkownika.

Pytanie 5

Zdefiniowano funkcję w języku PHP:

function policz($Z) { 
while($Z < 5) {
$Z += 2 * $Z + 1;
}
return $Z;
}
Funkcja policz została wywołana z parametrem $Z = 1. Jaki rezultat zostanie zwrócony?
A. 4
B. 1
C. 7
D. 13
Funkcja policz w języku PHP działa na zmiennej $Z, która jest inicjowana wartością 1. W pętli while sprawdzany jest warunek, czy $Z jest mniejsze niż 5. W przypadku, gdy $Z wynosi 1, warunek jest spełniony, a funkcja przechodzi do ciała pętli. Wewnątrz pętli $Z jest aktualizowane poprzez wyrażenie $Z += 2 * $Z + 1. Oznacza to, że do $Z dodawana jest wartość 2 * $Z + 1, co dla $Z = 1 daje 2 * 1 + 1 = 3. Po pierwszym kroku $Z osiąga wartość 4. Pętla while sprawdza ponownie warunek: 4 < 5, co również jest prawdą. W drugim kroku $Z = 4, więc $Z zostaje zaktualizowane do 4 + 2 * 4 + 1, co daje 4 + 8 + 1 = 13. Po tym kroku $Z staje się 13 i pętla while zakończy działanie, ponieważ 13 nie jest już mniejsze niż 5. Funkcja zwraca wartość 13, co czyni tę odpowiedź poprawną. Tego typu operacje są typowe w sytuacjach, gdzie potrzeba wielokrotnego aktualizowania wartości na podstawie obliczeń matematycznych, a ich zrozumienie jest kluczowe w programowaniu.

Pytanie 6

Rodzaj programowania, w którym sekwencja poleceń (instrukcji) dostarczanych komputerowi jest traktowana jako program, określa się mianem programowania

A. funkcyjnego
B. logicznogo
C. imperatywnego
D. stanowego
Programowanie funkcyjne, logiczne oraz stanowe to inne style kodowania, które się różnią od imperatywnego. Każdy z nich ma swoją specyfikę i zastosowania. Na przykład w programowaniu funkcyjnym tworzymy programy jako zestaw funkcji, które operują na danych, starając się zminimalizować skutki uboczne. To z kolei kłóci się z imperatywnym myśleniem, bo tam idziemy bardziej w sekwencje instrukcji. Programowanie logiczne skupia się na regułach i relacjach, a nie na tym, co się dzieje w jakiej kolejności. To sprawia, że jest lepsze do sztucznej inteligencji czy przetwarzania danych. Programowanie stanowe natomiast dotyczy stanów systemu i przejść między nimi, co jest pomocne w systemach reaktywnych. Te różnice są ważne, bo nie można uważać, że wszystkie te paradygmaty są takie same lub da się je zamieniać bez zastanowienia. Ważne jest, aby zrozumieć, kiedy i jak używać różnych narzędzi i metod, zależnie od projektu, który realizujemy.

Pytanie 7

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Sprawdzić rozmiar tabeli tab
B. Zadeklarować zmienną i
C. Zweryfikować, czy text ma typ string
D. Zainicjować zmienną text
Deklaracja zmiennej i jest już zawarta w nagłówku pętli for co czyni ją poprawną konstrukcją w kontekście iteracyjnego dostępu do elementów tablicy. Sprawdzanie typu zmiennej text przed pętlą mogłoby mieć znaczenie jedynie w szczególnych przypadkach gdyby istniała niepewność co do rodzaju danych z jakimi program ma do czynienia jednak w kontekście zadania najistotniejsze jest zapewnienie że zmienna ta jest zainicjowana. Rozmiar tablicy tab jest sprawdzany w warunku pętli for co stanowi standardową praktykę w celu uniknięcia przekroczenia granic tablicy lecz operacja ta nie ma wpływu na poprawność działania zmiennej text i jej przetwarzanie w pętli. Typowe błędy myślowe w zakresie inicjalizacji zmiennych to pomijanie tego kroku z założeniem że zmienne są automatycznie ustawiane na wartość domyślną co w przypadku JavaScript jest mylące podobnie jak błędne założenie że deklaracja zmiennej i jest opcjonalna przy iteracjach co prowadzi do trudno wykrywalnych błędów w dużych kodach. Kluczowym wnioskiem jest zrozumienie że inicjalizacja zmiennej jest fundamentem poprawnej i bezpiecznej obsługi danych w cyklu programistycznym.

Pytanie 8

Jak w języku PHP można przypisać wartość 4 do zmiennej sesyjnej o nazwie wyborID?

A. $_SESSION["wyborID"] = 4;
B. session.wyborID = {4};
C. session.wyborID = 4;
D. $_SESSION[4] = wyborID;
Wszystkie niepoprawne odpowiedzi wykazują fundamentalne błędy związane z zarządzaniem sesjami w PHP. W pierwszym przypadku, session.wyborID = {4}; użycie notacji z kropką jest nieodpowiednie, ponieważ w PHP nie istnieje coś takiego jak obiekt session. Zamiast tego, sesje są zarządzane przez superglobalną tablicę $_SESSION, co oznacza, że każda zmienna sesji musi być przypisana w kontekście tej tablicy. Kolejna odpowiedź, session.wyborID = 4;, ponownie nieodpowiednio korzysta z notacji obiektowej, co prowadzi do błędu wykonania, ponieważ PHP nie rozumie, że session to tablica. Ostatnia odpowiedź, $_SESSION[4] = wyborID;, wykorzystuje nieprawidłowy klucz, ponieważ klucz powinien być ciągiem znaków, a nie liczbą. Dodatkowo, nie zdefiniowano wcześniej zmiennej 'wyborID', co prowadzi do nieosiągalnego odniesienia. Takie błędy myślowe mogą wynikać z niepełnego zrozumienia struktury tablic w PHP oraz różnicy między zmiennymi lokalnymi a superglobalnymi. Zrozumienie, że sesje w PHP są przechowywane jako tablica asocjacyjna, jest kluczowe dla ich wykorzystania i unikania takich pomyłek.

Pytanie 9

Jakim słowem kluczowym można zestawić wyniki dwóch zapytań SELECT, które operują na różnych tabelach, aby utworzyć jeden zbiór danych?

A. UNION
B. AS
C. JOIN
D. DISTINCT
Odpowiedź 'UNION' jest poprawna, ponieważ słowo kluczowe UNION służy do łączenia wyników dwóch lub więcej kwerend SELECT w jeden zbiór, pod warunkiem, że te kwerendy mają tę samą liczbę kolumn oraz odpowiednie typy danych. Praktycznie, UNION jest niezwykle przydatne, gdy chcemy uzyskać zintegrowane wyniki z różnych tabel, które zawierają pokrewne dane. Na przykład, jeśli mamy tabelę klientów w systemie A oraz tabelę klientów w systemie B, możemy użyć kwerendy z UNION, aby uzyskać pełną listę klientów z obu systemów. Warto także zaznaczyć, że UNION domyślnie eliminuje zduplikowane rekordy, co jest zgodne z dobrymi praktykami w analizie danych, gdzie często dąży się do uzyskania unikalnych wyników. Można również używać UNION ALL, jeśli chcemy, aby wszystkie wyniki, w tym duplikaty, były zawarte w końcowym zbiorze. Wybór między UNION a UNION ALL powinien być uzależniony od potrzeb w zakresie unikalności danych w wynikach końcowych.

Pytanie 10

Aby zrealizować przycisk na stronę internetową zgodnie z wzorem, należy w programie graficznym skorzystać z opcji

Ilustracja do pytania
A. deformacje i zniekształcenia
B. zaokrąglenie lub wybranie opcji prostokąt z zaokrąglonymi rogami
C. propagacja wartości
D. wybór eliptyczny
Stworzenie przycisku na stronie internetowej, który ma zaokrąglone rogi, wymaga użycia opcji zaokrąglenia w programie do grafiki rastrowej lub wybrania narzędzia prostokąt z zaokrąglonymi rogami. Jest to podejście zgodne z aktualnymi trendami w projektowaniu interfejsów użytkownika, gdzie nacisk kładziony jest na estetykę i użyteczność. Zaokrąglone elementy są bardziej przyjazne dla oka i pomagają w tworzeniu wizualnie przyjemnych projektów. W programach graficznych takich jak Adobe Photoshop czy GIMP, opcja ta pozwala na szybkie i precyzyjne dostosowanie kształtu przycisku, co jest nieocenione przy tworzeniu prototypów i projektów graficznych. Stosowanie zaokrągleń jest również zgodne z zasadami projektowania responsywnego, gdyż takie elementy wyglądają dobrze na różnorodnych rozdzielczościach ekranów. Wybierając tę technikę, projektanci mogą skupić się na tworzeniu spójnych i nowoczesnych interfejsów, co jest istotne w kontekście doświadczenia użytkownika. Przykładem zastosowania jest przycisk 'Kontakt' na stronie internetowej, który dzięki zaokrąglonym rogom wygląda bardziej zachęcająco i nowocześnie, co wpływa na pozytywne postrzeganie strony przez użytkowników.

Pytanie 11

W języku JavaScript, aby w jednym poleceniu zweryfikować, czy dany ciąg tekstowy zawiera inny ciąg, można zastosować metodę

A. repeat()
B. valueOf()
C. substr()
D. includes()
Metoda includes() w JavaScript służy do sprawdzenia, czy dany ciąg znaków zawiera określony podciąg. Jest to niezwykle przydatne narzędzie, które pozwala na szybkie weryfikowanie zawartości zmiennych tekstowych. Przykład zastosowania to: let str = 'JavaScript jest świetny'; console.log(str.includes('świe')); // true. Warto zwrócić uwagę, że includes() jest metodą case-sensitive, co oznacza, że wielkość liter ma znaczenie w procesie wyszukiwania. Dobrą praktyką jest korzystanie z tej metody w sytuacjach, gdzie chcemy szybko i efektywnie analizować tekst, na przykład podczas walidacji danych wejściowych w formularzach. Ponadto, jest ona zgodna z ES6, co sprawia, że jest szeroko wspierana w nowoczesnych przeglądarkach oraz środowiskach JavaScript. Zastąpienie starszych metod, takich jak indexOf(), które zwracałoby pozycję podciągu, co wymagałoby dodatkowych operacji logicznych do weryfikacji, czyni includes() bardziej eleganckim i przejrzystym rozwiązaniem.

Pytanie 12

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

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

Pytanie 13

W dokumentacji CMS WordPress znajduje się zdanie:
"Enable comments for this post"
Co oznacza to zdanie?

A. Włącz formatowanie wpisu.
B. Włącz edycję wpisu.
C. Włącz możliwość dodawania komentarzy do wpisu.
D. Włącz publikację wpisu.
Poprawnie – komunikat „Enable comments for this post” w WordPressie oznacza dokładnie włączenie możliwości dodawania komentarzy do konkretnego wpisu. W praktyce jest to po prostu przełącznik, który decyduje, czy pod danym postem będzie widoczny formularz komentowania i lista komentarzy użytkowników. Z mojego doświadczenia to jedna z podstawowych opcji zarządzania interakcją z czytelnikami w systemach CMS. WordPress ma wbudowany system komentarzy i dla każdego wpisu z osobna można zdecydować, czy chcesz dopuścić dyskusję, czy raczej ma to być „statyczna” treść bez opinii użytkowników. Włączenie komentarzy nie wpływa na możliwość edycji, publikacji ani formatowania treści – to zupełnie osobne funkcje. Edycja odbywa się w edytorze blokowym lub klasycznym, publikacja jest kontrolowana przyciskiem „Opublikuj” / „Zaktualizuj”, a formatowanie dotyczy układu tekstu, nagłówków, obrazków, list itd. Włączanie komentarzy to raczej kwestia konfiguracji modułu dyskusji. W dobrych praktykach administracji WordPressa zaleca się świadome zarządzanie komentarzami: włączać je tam, gdzie istotna jest interakcja (np. blog, poradniki, aktualności), a wyłączać na stronach typu regulamin, polityka prywatności czy strony czysto informacyjne. W ustawieniach dyskusji można też ustawić moderację, wymóg zatwierdzania komentarzy, filtrowanie spamu czy ograniczenia dla niezalogowanych. W poważniejszych serwisach często łączy się natywne komentarze WordPressa z dodatkowymi wtyczkami (np. antyspam, integracja z social media), ale podstawowy przełącznik zawsze oznacza to samo: czy ten konkretny wpis ma mieć aktywną sekcję komentarzy, czy nie.

Pytanie 14

Które z poniższych oprogramowań nie jest systemem do zarządzania treścią (CMS)?

A. Joomla
B. Mambo
C. Apache
D. WordPress
Mambo, Joomla i WordPress to systemy zarządzania treścią (CMS), które umożliwiają użytkownikom tworzenie oraz zarządzanie treściami na stronach internetowych bez potrzeby posiadania specjalistycznej wiedzy technicznej. Mimo że wszystkie te platformy mają różne funkcje i podejścia do zarządzania treścią, ich wspólną cechą jest to, że są zaprojektowane do ułatwiania publikowania treści online. Często mylone jest pojęcie CMS z innymi technologiami wykorzystywanymi w rozwoju stron, co może prowadzić do nieporozumień. Na przykład, Apache, jako serwer HTTP, odgrywa kluczową rolę w udostępnianiu tych treści, ale sam w sobie nie zapewnia narzędzi do ich tworzenia ani zarządzania. Typowym błędem myślowym jest przyjęcie, że każdy komponent technologii webowej może pełnić rolę CMS-u, podczas gdy tylko te oprogramowania, które oferują intuicyjne interfejsy do edycji oraz organizacji treści, kwalifikują się jako systemy zarządzania treścią. Znajomość różnic między tymi technologiami jest kluczowa dla skutecznego tworzenia i utrzymywania stron internetowych oraz dla wykorzystania ich pełnego potencjału w zgodzie z najlepszymi praktykami w branży.

Pytanie 15

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 $a.
B. Do wszystkich pól.
C. Do pola $b.
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 16

Czy automatyczna weryfikacja właściciela witryny korzystającej z protokołu HTTPS jest możliwa dzięki

A. informacjom whois
B. danym kontaktowym zamieszczonym na stronie
C. prywatnym kluczom
D. certyfikatowi SSL
Certyfikat SSL (Secure Sockets Layer) jest kluczowym elementem w automatycznej weryfikacji właściciela strony internetowej, który jest udostępniany przez protokół HTTPS. Głównym zadaniem certyfikatu SSL jest zapewnienie, że komunikacja między przeglądarką a serwerem jest zaszyfrowana oraz że tożsamość serwera została potwierdzona przez zaufaną stronę trzecią, czyli urząd certyfikacji (CA - Certificate Authority). Certyfikaty SSL są wydawane po przeprowadzeniu odpowiednich weryfikacji tożsamości wnioskodawcy, co może obejmować sprawdzenie danych WHOIS, ale również inne procesy weryfikacyjne, takie jak potwierdzenie adresu e-mail lub dokumentów właściciela firmy. Przykładowo, witryny e-commerce korzystają z certyfikatów SSL, aby zapewnić bezpieczeństwo transakcji finansowych, co zwiększa zaufanie użytkowników do sklepu. Na poziomie technicznym, certyfikat SSL implementuje protokoły kryptograficzne, takie jak TLS (Transport Layer Security), co nie tylko zabezpiecza transmisję danych, ale także umożliwia autoryzację strony. W praktyce, posiadanie certyfikatu SSL wpływa również na pozycjonowanie w wyszukiwarkach, ponieważ Google promuje strony z bezpiecznym połączeniem HTTPS.

Pytanie 17

W programie MS Access w ustawieniach pola klasa należy określić maskę wprowadzania danych. Jaką maskę należy ustawić, aby dane wprowadzone składały się z trzech znaków w formacie: obowiązkowa cyfra, następnie dwie obowiązkowe litery?

Ogólne
Rozmiar pola3
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. 000
B. CLL
C. 0LL
D. 0CC
W MS Access maska wprowadzania danych jest używana do kontrolowania formatu danych wprowadzanych do pola. Dla pola, w którym dane muszą mieć postać jednej cyfry, a następnie dwóch liter, odpowiednia maska to 0LL. Zero (0) oznacza, że na tej pozycji musi znajdować się cyfra i jest to wymóg obowiązkowy. Litera L oznacza, że na tej pozycji musi znajdować się litera i jest to również wymóg obowiązkowy. W ten sposób maska 0LL wymusza, aby dane były dokładnie w formacie jednej cyfry i dwóch liter. Praktyczne zastosowanie tego typu maski może być widoczne w sytuacjach, gdzie istnieje konieczność katalogowania produktów, gdzie oznaczenie musiałoby zawierać numer identyfikacyjny w postaci cyfry i skrót literowy identyfikujący kategorię. Takie podejście do formatowania danych zapewnia spójność i poprawność danych wprowadzanych do bazy, zgodnie z dobrymi praktykami zarządzania danymi, co jest kluczowe w systemach bazodanowych, gdzie dane są często przetwarzane i analizowane.

Pytanie 18

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 19

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. dostosować proporcje szerokości do wysokości
B. zmienić format grafiki na CDR
C. zwiększyć rozdzielczość
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 20

Ile razy należy wprowadzić instrukcję warunkową, aby zrealizować przedstawiony algorytm w danym języku programowania?

Ilustracja do pytania
A. Dwa razy.
B. Cztery razy.
C. Raz.
D. Trzy razy.
Zrozumienie liczby potrzebnych instrukcji warunkowych w algorytmie jest kluczowe dla poprawnej implementacji logiki programu. Często spotykanym błędem jest myślenie, że każda decyzja w algorytmie wymaga oddzielnej instrukcji warunkowej, co prowadzi do niepotrzebnej komplikacji kodu. W rzeczywistości, niektóre warunki mogą być połączone lub zapisane w bardziej zwięzły sposób, co pokazuje znaczenie analizy logiki algorytmu przed implementacją. Założenie, że jedna instrukcja warunkowa wystarczy dla całego algorytmu, często wynika z niepełnego zrozumienia jego struktury i złożoności. Algorytmy często wymagają kilku punktów decyzyjnych, które muszą być odpowiednio odwzorowane w kodzie. Natomiast przypuszczenie, że potrzebne są cztery instrukcje, sugeruje nadmierną komplikację i nadmiarowość, co jest sprzeczne z zasadami optymalizacji i minimalizacji kodu. Dobre praktyki programistyczne zalecają pisanie kodu, który jest zarówno wydajny, jak i czytelny, unikając nadmiarowych instrukcji, które mogą prowadzić do błędów i trudności w późniejszym utrzymaniu. Ostatecznie, właściwe zastosowanie instrukcji warunkowych wpływa na elastyczność i skalowalność aplikacji, co jest kluczowe w profesjonalnym środowisku programistycznym.

Pytanie 21

Ikona funkcji w edytorze grafiki rastrowej oznaczona jako „różdżka” pozwala na

Ilustracja do pytania
A. zaznaczenie obszaru w oparciu o kolor
B. wybranie konkretnego koloru i ustawienie go jako aktywnego
C. wybiórcze nakładanie koloru przy użyciu pędzla
D. ręczne zaznaczanie fragmentów poprzez przeciąganie kursora
Pierwsza odpowiedź sugeruje, że narzędzie różdżki służy do rozsmarowywania koloru za pomocą pędzla, co jest nieprawidłowym zrozumieniem jego funkcji. Rozsmarowywanie koloru to technika, która zwykle wykorzystuje narzędzie smudge, które jest przeznaczone do symulacji efektu fizycznego rozmazywania farby na płótnie. Różdżka nie ma tej zdolności, jej działanie opiera się na zaznaczaniu pikseli o zbliżonej kolorystyce. Odręczne zaznaczanie obszarów przez przeciąganie kursora, jak to opisano w drugiej odpowiedzi, jest zadaniem wykonywanym przez narzędzie lasso lub pióro. Różdżka działa automatycznie na podstawie koloru, nie wymaga ręcznego prowadzenia kursora po krawędziach obszaru. Czwarta odpowiedź odnosi się do funkcji pipety, która służy do pobierania koloru z obrazu i ustawiania go jako aktywnego do dalszego użytku w projekcie. Różdżka nie modyfikuje aktywnego koloru, ale pomaga w identyfikacji i zaznaczeniu obszarów o podobnej kolorystyce w celu ich edycji. Błędne postrzeganie tych funkcji często wynika z nieuwagi lub braku zrozumienia specyfiki narzędzi graficznych, co jest kluczowe w profesjonalnej pracy z obrazami i wymaga jasnego zrozumienia różnic oraz zastosowań poszczególnych narzędzi w edytorze graficznym. Aby unikać takich nieporozumień, zaleca się regularną praktykę oraz zapoznanie się z dokumentacją i tutorialami dotyczącymi używanego oprogramowania graficznego, co pozwoli na bardziej efektywne wykorzystanie potencjału dostępnych narzędzi.

Pytanie 22

Istnieje tabela programisci z polami: id, nick, ilosc_kodu, ocena. Wartość w polu ilosc_kodu przedstawia liczbę linii kodu, które dany programista stworzył w określonym miesiącu. Aby obliczyć całkowitą liczbę linii kodu napisanych przez wszystkich programistów, należy zastosować następujące polecenie

A. SELECT COUNT(programisci) FROM ilosc_kodu;
B. SELECT SUM(ilosc_kodu) FROM programisci;
C. SELECT SUM(ocena) FROM ilosc_kodu;
D. SELECT MAX(ilosc_kodu) FROM programisci;
Poprawna odpowiedź to "SELECT SUM(ilosc_kodu) FROM programisci;" ponieważ to zapytanie dokładnie ilustruje, jak można obliczyć sumę wszystkich linii kodu napisanych przez programistów. Funkcja agregująca SUM() służy do sumowania wartości w podanym polu, które w tym przypadku jest polem "ilosc_kodu". W kontekście relacyjnych baz danych, stosowanie funkcji agregujących jest kluczowe do analizy danych w sposób statystyczny. W praktyce, takie zapytanie może być przydatne w raportach dotyczących wydajności zespołu programistycznego, gdzie analiza sumy napisanych linii kodu pozwala na ocenę produktywności oraz identyfikację programistów, którzy mogą potrzebować wsparcia w realizacji zadań. Ponadto, zgodnie z najlepszymi praktykami SQL, warto być świadomym kontekstu zapytań, a dobór odpowiednich funkcji agregujących, takich jak SUM(), COUNT(), AVG() itp., jest niezbędny do efektywnego przetwarzania danych.

Pytanie 23

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. bazami danych
B. formularzami
C. ciasteczkami
D. sesjami
Fragment kodu PHP przedstawiony w pytaniu dotyczy obsługi formularza i jest to typowa konstrukcja używana do walidacji danych przesyłanych metodą POST. W PHP dane z formularza przesyłane są za pomocą superglobalnej tablicy $_POST, co pozwala na ich łatwe przetwarzanie i walidację. W tym przypadku skrypt sprawdza, czy pole 'name' zostało wypełnione przez użytkownika. Funkcja empty() jest stosowana, aby wykryć, czy dane pole jest puste, co jest kluczowe dla zabezpieczenia aplikacji przed niekompletnymi danymi. Gdy pole jest puste, zmienna $nameErr zostaje ustawiona na wartość komunikatu błędu, informującą użytkownika o brakujących danych. Praktyczne zastosowanie tego rodzaju sprawdzania obejmuje różnorodne formularze internetowe, takie jak rejestracja użytkowników czy składanie zamówień. Dobre praktyki w PHP zalecają stosowanie walidacji po stronie serwera, ponieważ poprawia to bezpieczeństwo i integralność danych, nawet jeśli wcześniej dane były walidowane po stronie klienta za pomocą JavaScriptu. Warto również pamiętać o stosowaniu filtrów i walidacji danych wejściowych, aby zapobiec potencjalnym atakom, jak np. SQL injection

Pytanie 24

Kod JavaScript ma za zadanie szukanie wartości maksymalnej w tablicy. Wskaż błąd występujący w skrypcie.

14      max = tablica[0];
15      for (j == 1; j < 9; j++) {
16          if (max <= tablica[j]) {
17              max = tablica[j];
18          };
19      };
20      document.write("Największy element tablicy to: " + max);
A. Zmienna max ma niewłaściwie przypisaną wartość w linii 14.
B. Warunek w linii 16 powinien być odwrócony.
C. Zastosowano operator porównania zamiast przypisania w linii 15.
D. Kod zapisany w linii 20 ma nieprawidłową składnię.
W tym fragmencie kodu kluczowy problem faktycznie leży w linii 15, gdzie użyto operatora porównania `==` zamiast operatora przypisania `=`. W pętli `for` pierwsza część ma inicjalizować zmienną sterującą, czyli w JavaScripcie poprawny zapis to `for (j = 1; j < 9; j++) { ... }`. Konstrukcja `j == 1` nie ustawia wartości zmiennej, tylko porównuje bieżącą wartość `j` z liczbą 1 i zwraca wynik logiczny `true` lub `false`. W efekcie interpreter próbuje potraktować wynik porównania jako wyrażenie inicjalizujące, co jest po prostu błędem składniowym i skrypt się nie wykona. Z mojego doświadczenia to bardzo częsty błąd: programista myśli o „ustawieniu” wartości i z przyzwyczajenia wpisuje podwójny znak równości. Dlatego w językach takich jak JavaScript, C, Java trzeba mocno pilnować rozróżnienia: `=` oznacza przypisanie, `==` porównanie wartości (a `===` porównanie wartości i typu). Cała reszta algorytmu wyszukiwania maksimum jest w porządku: najpierw przypisujemy do `max` pierwszy element tablicy, potem w pętli przechodzimy kolejne elementy i jeśli aktualny element jest większy lub równy `max`, to aktualizujemy zmienną `max`. Taki schemat jest klasycznym algorytmem liniowego wyszukiwania wartości maksymalnej. W praktyce, gdy piszesz kod produkcyjny, warto dodatkowo zadbać o deklarację zmiennych (`let j = 1;`, `let max = tablica[0];`) oraz używać długości tablicy (`j < tablica.length`) zamiast stałej liczby 9, żeby kod był odporny na zmiany i łatwiejszy w utrzymaniu. W narzędziach typu ESLint często jest też reguła wychwytująca przypadkowe użycie `==` tam, gdzie spodziewane jest `=`, właśnie po to, żeby unikać takich subtelnych, ale groźnych pomyłek.

Pytanie 25

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. tr:hover { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:active { 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 26

Jakie znaki lub sekwencje oznaczają początek komentarza w języku JavaScript?

A. #
B. //
C. <!--
D. <?
W języku JavaScript komentarze są oznaczane na dwa podstawowe sposoby. Najbardziej powszechnym sposobem jest użycie podwójnego ukośnika, co wygląda jak '//' i jest stosowane do tworzenia komentarzy jednolinijkowych. Komentarze te są ignorowane przez interpreter JavaScript, co oznacza, że nie mają wpływu na działanie kodu. Na przykład, w kodzie można napisać: // To jest komentarz, który nie wpływa na wykonanie kodu. Oprócz tego, JavaScript obsługuje też komentarze wielolinijkowe, które rozpoczynają się od '/*' i kończą na '*/'. Umożliwiają one wstawienie dłuższego opisu, obejmującego kilka linii. Przykład: /* To jest komentarz, który zajmuje kilka linii. */ Komentarze w kodzie są niezwykle istotne, ponieważ poprawiają czytelność skryptu, umożliwiają dokumentację oraz ułatwiają pracę z zespołem. Warto zaznaczyć, że zgodność z ECMAScript, standardem, na którym oparty jest JavaScript, wymaga użycia tych znaczników w celu prawidłowego komentowania kodu.

Pytanie 27

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. Python
B. JavaScript
C. C#
D. PHP
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 28

Jaki znacznik w HTML jest używany do oznaczania fragmentów tekstu jako kodu programistycznego?

A. <blockquote> </blockquote>
B. <code> </code>
C. <span> </span>
D. <em> </em>
<code> to znacznik w HTML, który służy do oznaczania fragmentów tekstu jako kodu komputerowego. Użycie tego znacznika jest zgodne z wytycznymi W3C i stanowi istotny element semantycznej struktury dokumentów HTML. Zastosowanie <code> pozwala na wyróżnienie fragmentów tekstu, takich jak kawałki kodu źródłowego czy polecenia, co jest niezwykle ważne w kontekście programowania oraz dokumentacji technicznej. Przykłady użycia obejmują: <code>console.log('Hello, World!');</code> w JavaScript, co przekłada się na lepszą czytelność i zrozumienie dla programistów. Stosując <code>, przeglądarki często renderują ten tekst w sposób wyróżniający, na przykład z użyciem czcionki monospace, co dodatkowo podkreśla jego znaczenie w kontekście kodowania. Oprócz tego, znacznik <code> ma korzystny wpływ na SEO, ponieważ poprawia semantykę treści, co jest doceniane przez wyszukiwarki. W kontekście standardów W3C, <code> należy do rodziny znaczników, które mają na celu ułatwienie prezentacji i interpretacji treści webowych.

Pytanie 29

Wskaź złożony typ danych.

A. class
B. char
C. float
D. bool
Złożone typy w programowaniu to takie struktury, które mogą mieć wiele wartości albo różne rodzaje danych. W językach takich jak C++ czy Java, typ 'class' jest super ważny, bo dzięki niemu możemy tworzyć obiekty. Klasa działa jak szablon do tworzenia obiektów, gdzie możesz mieć różne dane (pola) i funkcje (metody), które z tymi danymi coś robią. Na przykład klasa 'Samochód' mogłaby mieć pola, takie jak 'marka' i 'model', a także metody jak 'przyspiesz()' lub 'hamuj()'. W programowaniu obiektowym mamy różne zasady, jak enkapsulacja czy dziedziczenie. Definiowanie klas pozwala na lepszą organizację kodu, co ułatwia pracę, zwłaszcza przy większych projektach. Klasy są teraz podstawowym elementem wielu nowoczesnych języków, więc warto się ich dobrze nauczyć, bo naprawdę pomagają w tworzeniu aplikacji.

Pytanie 30

Kanał alfa jest wykorzystywany do określenia

A. wybranego fragmentu obiektu graficznego
B. jasności oraz kontrastu kolorów
C. podstawowych właściwości obiektu graficznego
D. przezroczystości obiektu graficznego
Kanał alfa to bardzo ważny element w grafice komputerowej, który odpowiada za to, jak przezroczyste są różne obiekty graficzne. W systemach kolorów, jak RGBA, kanał alfa jest dodatkowym składnikiem obok kolorów czerwonego, zielonego i niebieskiego. Dzięki niemu możemy określić, jak przezroczysty jest dany piksel. Wartości kanału alfa wahają się od 0, co oznacza całkowitą przezroczystość, do 255, co daje pełną nieprzezroczystość. Przykładem użycia kanału alfa są aplikacje graficzne, takie jak Photoshop czy GIMP, gdzie można na przykład zmieniać przezroczystość warstw. Te technologie, jak OpenGL czy DirectX, też korzystają z kanału alfa, żeby renderować obiekty w 3D. To wszystko sprawia, że obrazy i sceny stają się bardziej realistyczne, a efekty wizualne, takie jak cienie czy odbicia, wyglądają znacznie lepiej.

Pytanie 31

Rozmycie Gaussa, wygładzanie oraz szum RGB to funkcje wykorzystywane w programach do obróbki

A. dźwięku w formacie MIDI
B. grafiki wektorowej
C. grafiki rastrowej
D. ścieżki dźwiękowej
Rozmycie Gaussa, wygładzanie i szum RGB to techniki stosowane w grafice rastrowej, która opiera się na bitmapach. Rozmycie Gaussa jest szczególnie użyteczne w przypadku usuwania szumów i wygładzania obrazów, co poprawia ich estetykę oraz jakość, a także umożliwia bardziej naturalne przejścia tonalne. Na przykład, fotografowie korzystają z rozmycia Gaussa przy edycji zdjęć, aby zmiękczyć ostre krawędzie i stworzyć efekt bokeh. Szum RGB odnosi się do różnych typów zakłóceń, które mogą występować w obrazach rastrowych i które można zredukować za pomocą odpowiednich filtrów. Wygładzanie, z kolei, może być stosowane w grafice komputerowej do poprawy jakości renderingu oraz eliminacji niepożądanych efektów aliasingu. W branży graficznej dobrą praktyką jest stosowanie tych technik w sposób przemyślany, aby uzyskać najlepszą jakość wizualną, zgodnie z zasadami profesjonalnej edycji obrazu, jak również przy poszanowaniu standardów kolorystycznych i rozdzielczości dostosowanej do różnych platform wyjściowych.

Pytanie 32

Którą rozdzielczość należy ustawić w opcjach kodera, aby przygotować do publikacji film w rozdzielczości HD Ready?

A. 1280x720
B. 1920x1080
C. 480x360
D. 720x480
W tym pytaniu pułapka polega na tym, że wszystkie podane rozdzielczości są w jakiś sposób „znane”, ale tylko jedna odpowiada standardowi HD Ready. Bardzo często myli się ogólne pojęcie „HD” z konkretnymi rozdzielczościami, a jeszcze częściej patrzy się tylko na to, która liczba jest większa, zamiast na obowiązujące standardy branżowe. Rozdzielczość 480x360 to typowa niska rozdzielczość kojarzona raczej ze starym streamingiem internetowym, materiałami SD do podglądu lub bardzo lekkimi plikami do słabego łącza. Ma inne proporcje niż klasyczne 16:9 i nie spełnia żadnego współczesnego standardu HD. Obraz w takiej rozdzielczości będzie wyraźnie mniej ostry, szczególnie na większych ekranach – to raczej jakość zbliżona do starego YouTube sprzed wielu lat. 720x480 z kolei bywa mylone z HD, bo liczba „720” sugeruje HD, ale tu akurat chodzi o coś zupełnie innego. 720x480 to typowa rozdzielczość SD z systemu NTSC (DVD-Video, stare kamery cyfrowe), często w proporcjach 4:3 lub 16:9 osiąganych dopiero przez tzw. piksele nieskwadratowe (aspect ratio pikseli). Jest to nadal standard definition, nie high definition. To klasyczny przykład błędu: ktoś kojarzy 720p, widzi 720 w liczbie, i automatycznie uznaje, że to HD. Niestety tak to nie działa. Z kolei 1920x1080 to już Full HD, czyli 1080p lub 1080i, zależnie od sposobu skanowania. Technicznie jest to jak najbardziej HD, ale inny poziom – wyższy niż HD Ready. Jeśli w zadaniu albo w dokumentacji projektu jest wyraźnie napisane „HD Ready”, to ustawienie Full HD jest po prostu inne niż wymagane. Plik będzie cięższy, będzie wymagał wyższego bitrate’u, a w wielu zastosowaniach webowych będzie to niepotrzebne obciążenie serwera i łącza użytkownika. Typowym błędem jest myślenie: „im większa rozdzielczość, tym lepiej”, bez zastanowienia się nad wymaganiami, możliwościami odtwarzania i standardami sprzętu (telewizory HD Ready natywnie mają matryce 1366x768, więc 1280x720 jest dla nich naturalnym formatem). Dlatego w kontekście przygotowania materiału do publikacji, szczególnie na strony WWW i do prostego streamingu, warto kojarzyć trzy podstawowe poziomy: SD (np. 720x480), HD Ready (1280x720) i Full HD (1920x1080). Wtedy łatwiej uniknąć pomyłek i dobrać taką rozdzielczość, która jest zgodna z założeniami projektu i możliwościami odbiorców, zamiast kierować się tylko intuicją albo większą liczbą pikseli.

Pytanie 33

Jakie oznaczenie w języku PHP wskazuje na komentarz wieloliniowy?

A. /* */
B. //
C. <!-- -->
D. #
Komentarze wieloliniowe w języku PHP definiuje zapis /* */. Umożliwia on umieszczanie dłuższych opisów lub wyjaśnień w kodzie, które są ignorowane przez interpreter PHP. Użycie tego typu komentarzy jest szczególnie przydatne w sytuacjach, kiedy chcemy opisać złożone fragmenty kodu lub zablokować dużą ilość kodu w czasie testowania. Przykładem może być zasłonięcie sekcji kodu, która nie jest aktualnie potrzebna: /* echo 'To jest test'; */. Warto pamiętać, że komentarze powinny być używane do poprawy czytelności kodu, co jest zgodne z dobrą praktyką programistyczną. Zaleca się również stosowanie komentarzy w sposób przemyślany, aby nie tworzyć nadmiernej ilości niepotrzebnych informacji, co mogłoby wprowadzać chaos w projekcie. W PHP można także łączyć różne typy komentarzy, co pozwala na elastyczne i czytelne dokumentowanie kodu.

Pytanie 34

Aby na stronie internetowej wyświetlić logo, którego tło jest przezroczyste, należy zastosować format

A. JPG
B. CDR
C. PNG
D. BMP
W tym zadaniu kluczowe jest zrozumienie, jakie właściwości mają różne formaty graficzne i do czego są projektowane. Wiele osób automatycznie wybiera JPG, bo „to przecież najpopularniejszy format obrazków w internecie”. I faktycznie, JPEG jest świetny do zdjęć, gdzie liczy się mocna kompresja i akceptowalna utrata jakości. Natomiast JPG nie obsługuje przezroczystości z prawdziwego zdarzenia – nie ma kanału alfa. Można co najwyżej kombinować z kolorem maskującym, ale w praktyce na stronach WWW kończy się to brzydkimi obwódkami i artefaktami na krawędziach logo. Dlatego stosowanie JPG do logo z przezroczystym tłem jest po prostu sprzeczne z dobrymi praktykami front-endu. Inny typowy trop to wybór formatu CDR, bo kojarzy się on z logotypami, poligrafią i projektowaniem. CDR to jednak natywny, wektorowy format programu CorelDRAW, przeznaczony do edycji, a nie do bezpośredniego wyświetlania w przeglądarce. Żadna standardowa przeglądarka nie wczyta pliku CDR jako obrazka w `<img>`. Pliki tego typu trzeba najpierw wyeksportować do formatu webowego, np. PNG, JPG albo SVG. Myślenie w stylu „logo jest z Corela, to dam CDR na stronę” wynika raczej z pomieszania formatu roboczego z formatem docelowym. Z kolei BMP to bardzo prosty, stary format map bitowych, który w praktyce w ogóle nie jest używany w profesjonalnym webdesignie. Co prawda można w nim zapisać informację o kolorach, ale nie oferuje on efektywnej kompresji, więc pliki są ogromne, a obsługa przezroczystości jest w praktyce problematyczna i nieprzystosowana do nowoczesnych wymagań stron WWW. Ładowanie ciężkiego BMP z logo na stronę tylko spowolni serwis i będzie sprzeczne z zasadami optymalizacji wydajności (performance, Core Web Vitals itd.). Dobra praktyka jest taka: dla logo z przezroczystym tłem wybieramy format, który zapewnia kanał alfa, bezstratną jakość i powszechną obsługę przez przeglądarki. W tym zestawie odpowiedzi spełnia to tylko PNG. Błędne odpowiedzi wynikają najczęściej z kierowania się popularnością formatu (JPG), skojarzeniem z narzędziem graficznym (CDR) albo z ignorowania wagi plików i standardów webowych (BMP). W projektowaniu stron warto zawsze myśleć o tym, jak przeglądarka faktycznie zinterpretuje dany format i czy spełni on wymagania: jakość, przezroczystość, rozmiar i kompatybilność.

Pytanie 35

Jakie mechanizmy przydzielania zabezpieczeń, umożliwiające wykonywanie działań na bazie danych, są związane z tematyką zarządzania kontami, użytkownikami oraz ich uprawnieniami?

A. Z właściwościami
B. Z przywilejami obiektowymi
C. Z przywilejami systemowymi
D. Z zasadami
Zarządzanie dostępem do baz danych często opiera się na kilku koncepcjach, które jednak nie są właściwymi odpowiedziami na postawione pytanie. Reguły, jako mechanizmy kontroli dostępu, mogą definiować warunki, które muszą być spełnione, aby użytkownik mógł uzyskać dostęp do danych, jednakże same w sobie nie są odpowiednie do opisywania systemowego nadawania uprawnień. Reguły mogą być stosowane w kontekście bardziej skomplikowanych polityk bezpieczeństwa, ale nie są bezpośrednio związane z przywilejami systemowymi. Atrybuty, z drugiej strony, odnoszą się do cech lub właściwości obiektów w bazie danych, takie jak typ danych, długość czy wartość, ale nie mają one wpływu na systemowe zarządzanie uprawnieniami. W kontekście zabezpieczeń atrybuty mogą być używane w modelach opartych na atrybutach, ale nie są one kluczowe w kontekście przydzielania przywilejów. Przywileje obiektowe to zbiór uprawnień przypisanych do konkretnych obiektów, takich jak tabele czy widoki, które pozwalają użytkownikom na wykonywanie określonych operacji, jak SELECT, INSERT, UPDATE czy DELETE. Chociaż są one istotnym elementem ochrony danych, to jednak nie obejmują one szerszego zarządzania kontami i użytkownikami, które obejmuje również przywileje systemowe. W związku z tym, odpowiedzi te nie dostarczają pełnego obrazu mechanizmów zabezpieczeń stosowanych w zarządzaniu bazami danych.

Pytanie 36

Wskaż zapis stylu CSS, który formatuje punktor listy numerowanej na wielkie cyfry rzymskie oraz listy punktowanej na kwadraty?

A. ol { list-style-type: disc; } ul { list-style-type: upper-alpha; }
B. ol { list-style-type: upper-alpha; } ul { list-style-type: disc; }
C. ol { list-style-type: upper-roman; } ul { list-style-type: square; }
D. ol { list-style-type: square; } ul { list-style-type: upper-roman; }
Odpowiedź jest poprawna, ponieważ styl CSS `ol { list-style-type: upper-roman; }` ustawia numerację dla listy uporządkowanej na wielkie cyfry rzymskie, co jest zgodne z wymaganiami. Użycie `ul { list-style-type: square; }` definiuje styl dla listy nieuporządkowanej, gdzie punkty są przedstawiane jako kwadraty. Stylizacja list w CSS jest kluczowa dla estetyki i czytelności dokumentu, a korzystanie z różnych typów markerów dla różnych rodzajów list potrafi znacząco poprawić organizację treści. Przykładem zastosowania może być dokumentacja techniczna, gdzie numery rzymskie używane są do oznaczania sekcji głównych, a kwadratowe punkty do podpunktów. Tego rodzaju stylizacja jest zgodna z dobrymi praktykami w projektowaniu stron internetowych, które wymaga dobrego zrozumienia CSS i jego właściwości. Ponadto, CSS pozwala na elastyczne dostosowywanie stylów, co jest istotne w kontekście responsywności i dostępności stron.

Pytanie 37

Programista stworzył w języku C++ pętlę mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż

int a = 1; 
for (int i=1; i < 5; i++)
{
a = a * i;
}
cout << a;
A. Parametr i pętli powinien być zmniejszany zamiast zwiększany.
B. Zmienna a powinna być inicjowana wartością 0 zamiast 1.
C. Parametr i pętli powinien być rozpoczęty od wartości 0 zamiast 1.
D. W drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5.
W analizowanej pętli występują błędy, które mogą prowadzić do niepoprawnych wyników. Inicjowanie zmiennej a wartością 0 zamiast 1 uniemożliwiłoby uzyskanie poprawnego wyniku mnożenia, ponieważ każdy wynik pomnożony przez 0 daje 0, co jest błędnym podejściem w obliczeniach silni. Dodatkowo, zmiana wartości początkowej parametru i pętli na 0 zamiast 1 również jest niewłaściwa. Przy takim ustawieniu pętla rozpoczęłaby od zera, co w przypadku mnożenia również prowadziłoby do błędnych wyników, ponieważ silnia nie jest zdefiniowana dla zera w kontekście mnożenia w tym przypadku. Ponadto, sugerowanie, że parametr i powinien być dekrementowany zamiast inkrementowany, jest całkowicie mylącym podejściem, ponieważ silnia jest definiowana jako iloczyn liczb całkowitych rosnących, a nie malejących. Wartości dekrementowane nie odpowiadają definicji silni i nie przyniosłyby zamierzonego efektu. Ostatecznie, brak porównania i < 6 w drugiej części pętli skutkuje pominięciem liczby 5, co jest kluczowe dla uzyskania właściwego wyniku. W programowaniu każda iteracja pętli musi być przemyślana, a końcowy warunek powinien zawsze obejmować wszystkie wartości, które mają być kalkulowane.

Pytanie 38

W języku HTML zapisano formularz. Który z efektów działania kodu będzie wyświetlony przez przeglądarkę zakładając, że w pierwsze pole użytkownik przeglądarki wpisał wartość "Przykładowy text"?

Ilustracja do pytania
A. Efekt 3.
B. Efekt 4.
C. Efekt 1.
D. Efekt 2.
Dobra robota! Odpowiedź, którą wybrałeś, to Efekt 2. W formularzu HTML masz różne elementy, które służą do zbierania danych od użytkownika. Tutaj mamy pole tekstowe i dwa checkboxy. Jak wpiszesz 'Przykładowy text' w pole tekstowe i wyślesz formularz, to właśnie to się wyświetli w przeglądarce. Efekt 2 pokazuje, że pole tekstowe ma wpisany tekst i dwa niezaznaczone checkboxy. Dlatego to jest zgodne z tym, co zobaczysz w przeglądarce. A to oznacza, że Efekt 2 jest poprawną odpowiedzią. Właściwie to wszystko jest zgodne z tym, jak HTML działa, czyli jak powinny wyglądać i działać różne elementy formularza.

Pytanie 39

Za pomocą podanego zapytania w tabeli zostanie wykonane

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. Dodana kolumna nazwa2 o typie zmiennoprzecinkowym.
B. Dodana kolumna nazwa2, która nie przyjmuje wartości domyślnej.
C. Zmieniono typ kolumny nazwa2 na DOUBLE.
D. Została zmieniona nazwa kolumny z nazwa1 na nazwa2.
Analizując dostępne odpowiedzi, warto zwrócić uwagę na kilka istotnych kwestii związanych z instrukcją ALTER TABLE oraz jej zastosowaniem. Pierwsza koncepcja, dotycząca zmiany nazwy kolumny z nazwa1 na nazwa2, jest niepoprawna, ponieważ zapytanie nie wskazuje na taką operację. Zamiast tego, tworzymy nową kolumnę, a nie modyfikujemy istniejącą. Przechodząc do drugiej odpowiedzi, zmiana wartości kolumny nazwa2 na DOUBLE jest błędna, ponieważ instrukcja nie odnosi się do zmian wartości, ale do struktury tabeli. Kolejna nieprawidłowa koncepcja, sugerująca dodanie kolumny nazwa2 przyjmującej wartość domyślną DOUBLE, jest również myląca, ponieważ w zapytaniu nie ma ustawienia wartości domyślnej, a jedynie określenie typu kolumny oraz ograniczenia NOT NULL. Typowe błędy myślowe, które prowadzą do takich wniosków, to nieścisłe rozumienie roli polecenia ALTER TABLE oraz mylenie operacji na kolumnach z ich definicjami. W praktyce, ważne jest, aby dokładnie rozumieć jak działają typy danych w SQL oraz jakie ograniczenia można na nich nakładać, aby zapewnić integralność i jakość przechowywanych danych.

Pytanie 40

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

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