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: 22 kwietnia 2026 13:58
  • Data zakończenia: 22 kwietnia 2026 14:21

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

Kod programu wraz z komentarzami oraz opisem algorytmów i metod stanowi dokumentację

A. techniczną.
B. graficzną.
C. audiowizualną.
D. urzędową.
Poprawnie – mówimy tutaj o dokumentacji technicznej. Kod programu razem z komentarzami w kodzie, opisem algorytmów, struktur danych, interfejsów, sposobu działania poszczególnych modułów czy klas to właśnie klasyczny przykład dokumentacji technicznej. W branży IT przyjmuje się, że dokumentacja techniczna jest skierowana głównie do programistów, administratorów, czasem też architektów systemów, czyli osób, które będą rozwijać, utrzymywać lub integrować dany system. Nie jest to materiał marketingowy ani „urzędowy”, tylko coś, co ma pomóc zrozumieć jak system działa od środka. W praktyce dokumentacja techniczna obejmuje na przykład: komentarze w kodzie źródłowym (zgodne z konwencją danego języka, np. PHPDoc, JSDoc), opisy algorytmów w plikach README, wiki projektowe, diagramy UML, schematy przepływu danych, opisy endpointów API, a nawet instrukcje uruchomienia środowiska developerskiego. Moim zdaniem im lepiej zrobiona taka dokumentacja, tym łatwiej jest później komuś „wejść” w projekt bez zadawania dziesiątek pytań. Dobre praktyki mówią, żeby dokumentacja techniczna była aktualna, wersjonowana razem z kodem (np. w Git), a komentarze w kodzie nie powtarzały tego, co oczywiste, tylko wyjaśniały „dlaczego tak”, a nie „co robi ta linijka”. W projektach webowych dokumentacja techniczna opisuje na przykład, jak działa logika logowania użytkownika, jak są zrobione zapytania do bazy, jakie są ograniczenia wydajnościowe. To wszystko pozwala utrzymać spójność systemu i ułatwia debugowanie oraz rozwój nowych funkcji. Dlatego odpowiedź „techniczną” jest jak najbardziej zgodna z tym, jak branża rozumie dokumentację w kontekście programowania i algorytmów.

Pytanie 2

W SQL, aby dodać kolumnę rozmiar typu znakowego o maksymalnej długości 20 znaków do tabeli Towar, należy wykonać następujące polecenie

A. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
B. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
C. ALTER TABLE Towar ADD rozmiar varchar(20)
D. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
Osoby, które wybrały niepoprawne odpowiedzi, mogły zauważyć, że polecenie ALTER TABLE jest używane do modyfikacji struktury tabeli, jednak niektóre z podanych opcji są niewłaściwe w kontekście dodawania kolumny. Przykładowo, użycie DROP COLUMN jest błędne, ponieważ służy ono do usuwania kolumny z tabeli, a nie jej dodawania. Implementacja DROP COLUMN nie jest zgodna z intuicyjnym zrozumieniem modyfikacji tabeli, ponieważ wprowadza chaos w danych, a nie ich rozszerzenie. Kolejna niepoprawna odpowiedź sugeruje użycie ALTER COLUMN, co jest również mylące, ponieważ to polecenie jest przeznaczone do modyfikacji istniejącej kolumny, a nie do dodawania nowej. Modyfikacja kolumny wymaga zdefiniowania jej typu lub atrybutów, co nie jest zgodne z koncepcją dodawania nowego elementu do tabeli. Ostatnia odpowiedź, która sugeruje polecenie CREATE COLUMN, jest niewłaściwa, ponieważ polecenie CREATE nie jest częścią standardowej składni SQL w kontekście zmiany struktury istniejącej tabeli. CREATE jest używane do tworzenia nowych tabel, indeksów, lub innych obiektów w bazie danych, a nie do dodawania kolumn do już istniejących tabel. W związku z tym, wszystkie wymienione odpowiedzi są błędne, ponieważ nie stosują właściwej składni SQL ani nie odzwierciedlają poprawnych operacji na tabelach.

Pytanie 3

Podczas walidacji strony napotkano błąd. Co to oznacza?

Ilustracja do pytania
A. oznaczenie ISO-8859-2 jest nieprawidłowe
B. w atrybucie charset dopuszczalna jest wyłącznie wartość "utf-8"
C. określenie kodowania znaków musi być zapisane bez użycia myślników
D. znacznik meta nie zawiera atrybutu charset
Odpowiedź jest poprawna ponieważ współczesne standardy tworzenia stron internetowych wymagają kodowania znaków w formacie UTF-8. Specyfikacja HTML5 zaleca używanie UTF-8 jako domyślnego kodowania ze względu na jego wszechstronność i szerokie wsparcie dla różnych znaków i symboli. UTF-8 jest kompatybilny z wieloma językami i zapewnia, że strony internetowe będą prawidłowo wyświetlane na różnych urządzeniach i przeglądarkach. Korzystanie z UTF-8 eliminuje również problemy związane z niepoprawnym wyświetlaniem znaków specjalnych co jest częstym problemem w kodowaniach takich jak ISO-8859-2. W praktyce oznacza to że wszystkie nowe projekty stron internetowych powinny deklarować kodowanie UTF-8 w znaczniku meta. Na przykład poprawnie zdefiniowany znacznik wyglądałby następująco meta charset="utf-8". Dobrym podejściem jest również upewnienie się że zarówno pliki HTML jak i serwer są zgodne z tym ustawieniem co zapobiega potencjalnym konfliktom Użycie UTF-8 zgodne jest z najlepszymi praktykami branżowymi wspierającymi tworzenie dostępnych i zróżnicowanych treści internetowych.

Pytanie 4

Do ilu pól edycyjnych zostanie przypisane tło Teal dla przedstawionego fragmentu dokumentu HTML i stylu CSS?

<input type="text">
<input type="number">
<input type="email">
<input type="number">
<input>

input[type="number"] {
    background-color: Teal;
}
A. Do żadnego.
B. Do trzech.
C. Do wszystkich.
D. Do dwóch.
Wybór niepoprawnej odpowiedzi sugeruje pewne nieporozumienia dotyczące zasad działania CSS i tego, jak style są aplikowane do elementów HTML. Wszystkie niepoprawne odpowiedzi sugerują, że tło Teal zostanie przypisane do innej liczby pól edycyjnych niż faktycznie. W tym przypadku, tło Teal jest zdefiniowane w stylu CSS i ma być zastosowane tylko do pól typu 'number'. W HTML, możemy określić różne typy pól edycyjnych, takie jak 'text', 'number', 'email' i inne. Typy te są używane przez przeglądarki, aby dostarczyć odpowiednie interfejsy użytkownika dla różnych typów danych. Niezrozumienie tego może prowadzić do błędnych wniosków, jak na przykład ten, że wszystkie pola edycyjne otrzymają styl, czy że żadne pole nie otrzyma stylu. Ważne jest, aby zrozumieć, jak selektory atrybutów w CSS pozwalają na precyzyjne określenie, do jakich elementów powinien być zastosowany dany styl.

Pytanie 5

W kodzie źródłowym zapisanym w języku HTML wskaż błąd walidacji dotyczący tego fragmentu: ```

CSS

Kaskadowe arkusze stylów (ang. Cascading Style Sheets)
to język służący ...```

A. Nieznany znacznik h6.
B. Znacznik br nie może występować wewnątrz znacznika p.
C. Znacznik br nie został poprawnie zamknięty.
D. Znacznik zamykający /b niezgodny z zasadą zagnieżdżania.
Twoja odpowiedź jest poprawna. Znacznik zamykający /b w badanym kodzie HTML jest niezgodny z zasadą zagnieżdżania. Zasada ta mówi, że znaczniki powinny być zamykane w odwrotnej kolejności do otwierania - zgodnie z modelem LIFO (Last In, First Out). W praktyce oznacza to, że jeśli otworzyliśmy na przykład najpierw znacznik <i>, a następnie <b>, to najpierw powinniśmy zamknąć <b>, a dopiero potem <i>. Nieprzestrzeganie tej zasady może prowadzić do nieoczekiwanych wyników podczas renderowania strony. Jest to istotne dla utrzymania czytelności i prawidłowego funkcjonowania kodu. W codziennej praktyce, szczególnie w większych projektach, stosowanie się do takich zasad pomaga utrzymać kod zrozumiałym i łatwym do zarządzania.

Pytanie 6

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

A. miasta i kodu pocztowego ze wszystkich zwróconych wpisów
B. ulicy oraz miasta z pierwszego zwróconego wpisu
C. miasta i kodu pocztowego z pierwszego zwróconego wpisu
D. ulicy oraz miasta ze wszystkich zwróconych wpisów
Fragment kodu PHP przedstawiony w pytaniu wykonuje zapytanie do bazy danych MySQL, a jego celem jest uzyskanie danych z tabeli 'adresy', w tym pola 'ulica', 'miasto' i 'kod_pocztowy'. Funkcja mysqli_query wykonuje zapytanie, a następnie mysqli_fetch_row pobiera pojedynczy wiersz wyników jako tablicę. Wartości z tablicy są dostępne za pomocą indeksów, gdzie $a[0] to 'ulica', $a[1] to 'miasto', a $a[2] to 'kod_pocztowy'. Kod wypisuje na ekranie wartości $a[1] i $a[2], co odpowiada miastu i kodowi pocztowemu z pierwszego zwróconego rekordu. W praktyce, aby uzyskać pełną funkcjonalność, należy również zadbać o obsługę błędów oraz o zabezpieczenia przed SQL Injection, stosując np. prepared statements. Kod ten jest zgodny ze standardami PHP i MySQL, które zalecają używanie obiektowej lub proceduralnej wersji funkcji mysqli, co przyczynia się do większej przejrzystości oraz bezpieczeństwa aplikacji.

Pytanie 7

Tabela filmy zawiera klucz główny id oraz klucz obcy rezyserID, natomiast tabela rezyserzy ma klucz główny id. Obydwie tabele są połączone relacją jeden do wielu, gdzie strona rezyserzy odnosi się do strony filmy. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.id ...
B. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
C. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmyID ...
D. ... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.filmyID ...
W przypadku błędnych odpowiedzi, takich jak używanie rezyserzy.filmyID lub porównywanie kluczy głównych tabeli rezyserzy z kluczami głównymi tabeli filmy, istotne jest zrozumienie, że klucze muszą być stosowane zgodnie z ich rolami w relacji. Klucz obcy w tabeli filmy (rezyserID) jest przeznaczony do wskazywania na odpowiedni klucz główny w tabeli rezyserzy (id). Używanie rezyserzy.filmyID jest całkowicie błędne, ponieważ tabela rezyserzy nie ma kolumny o takiej nazwie; nie ma relacji, która by wskazywała na filmy w tej tabeli. Z kolei porównywanie filmy.id z rezyserzy.id nie jest sensowne, ponieważ porównujemy dwa różne klucze, które nie mają ze sobą bezpośredniego związku, co prowadzi do niepoprawnych wyników zapytań. Klucz rezyserID w tabeli filmy jest odpowiedzialny za powiązanie konkretnego reżysera z filmem, a nie odwrotnie. Warto również zauważyć, że nieprzestrzeganie zasad normalizacji oraz poprawnego stosowania kluczy obcych może prowadzić do niejednoznacznych danych oraz trudności w utrzymaniu spójności bazy danych.

Pytanie 8

Aby prawidłowo udokumentować linię kodu w języku JavaScript, należy po znakach // wpisać komentarz.

x = Math.max(a, b, c); //
A. nieprawidłowe dane.
B. wybór losowej wartości ze zmiennych a, b i c
C. w zmiennej x maksymalna wartość ze zmiennych a, b, c
D. w zmiennej x minimalna wartość ze zmiennych a, b, c
Odpowiedź "w zmiennej x maksymalna wartość ze zmiennych a, b, c" jest poprawna, ponieważ odzwierciedla działanie funkcji Math.max() w języku JavaScript, która zwraca największą wartość spośród podanych argumentów. W kontekście tej linii kodu, przypisanie wartości do zmiennej x jest kluczowym elementem programowania, gdyż pozwala na dynamiczne ustalanie największej wartości zmiennych a, b i c w różnych scenariuszach. W praktyce, odpowiednia dokumentacja kodu, w tym komentarze, jest niezbędna do utrzymania czytelności i zrozumiałości kodu, zwłaszcza w większych projektach. Komentarze pomagają innym programistom (lub nawet samym autorom kodu w przyszłości) szybko zrozumieć, co dany fragment kodu robi. Używanie komentarzy w odpowiednich miejscach, szczególnie po operatorze "//", jest uznawane za dobrą praktykę w programowaniu. Dlatego ważne jest, aby jasno określić funkcję danej linii kodu, co czyni tę odpowiedź trafną.

Pytanie 9

Testy aplikacji webowej, których celem jest ocena wydajności aplikacji oraz bazy danych, a także architektury serwera i konfiguracji, określane są mianem testów

A. funkcjonalności
B. kompatybilności
C. użyteczności
D. bezpieczeństwa
Testy bezpieczeństwa koncentrują się na ocenie, jak dobrze aplikacja chroni dane użytkowników oraz jak reaguje na próby nieautoryzowanego dostępu. W tym kontekście testy te mają na celu identyfikację luk bezpieczeństwa, które mogłyby być wykorzystane przez atakujących. Testy te nie koncentrują się na aspektach skalowalności ani architektury serwera, a ich celem jest zapewnienie, że aplikacja jest odporna na zagrożenia. Z kolei testy funkcjonalności mają na celu weryfikację, czy wszystkie elementy aplikacji działają zgodnie z wymaganiami. Obejmują one testowanie poszczególnych funkcji i ich interakcji, ale nie badają wydajności systemu w warunkach dużego obciążenia ani nie analizują architektury bazy danych. Funkcjonalność aplikacji może być poprawna, ale nieprzystosowana do obsługi wzrastającej liczby użytkowników, co jest istotne w kontekście skalowalności. Testy użyteczności oceniają, jak łatwo użytkownicy mogą korzystać z aplikacji, koncentrując się na interfejsie, ergonomii oraz ogólnym doświadczeniu użytkownika. Choć te aspekty są niezwykle ważne, nie mają one bezpośredniego związku z testowaniem architektury serwera czy skalowalności systemu, co jest kluczowe dla odpowiedzi na postawione pytanie.

Pytanie 10

Aby utworzyć styl strony responsywnej dla ekranów o szerokości od 600 px do 800 px należy zastosować regułę CSS

A. @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}
B. @media screen (min-width: 800px) and (max-width: 600px){/*style css*/}
C. @media (min-width: 800px){/*style css*/}
D. @media (max-width: 800px) (min-width: 600px){/*style css*/}
W tym zadaniu cała trudność kręci się wokół poprawnego zapisania media queries i zrozumienia, jak działają warunki min-width oraz max-width. Wiele osób intuicyjnie czuje, o co chodzi z responsywnością, ale potyka się na szczegółach składni, a przeglądarka niestety jest bardzo „zero-jedynkowa” i najmniejszy błąd powoduje, że reguła po prostu nie zadziała. Jedno z podejść polega na użyciu tylko min-width, np. @media (min-width: 800px){...}. Taki zapis oznacza jednak: stosuj te style dla szerokości 800 px i większych, czyli w górę, bez żadnej górnej granicy. To jest typowy breakpoint dla większych ekranów, np. laptopów, a nie dla przedziału 600–800 px. To nie jest logicznie to, o co chodziło w pytaniu, bo nie ma tu żadnego ograniczenia od góry. Inny typ błędu to próba połączenia max-width i min-width bez słowa and, jak w @media (max-width: 800px) (min-width: 600px){...}. Taka składnia jest po prostu niepoprawna z punktu widzenia specyfikacji CSS – między warunkami musi wystąpić operator logiczny and, not lub only. Bez tego parser traktuje zapis jako błąd, więc reguła zostanie zignorowana. Kolejna pułapka to pomieszanie kolejności i logiki warunków, np. @media screen (min-width: 800px) and (max-width: 600px){...}. Tutaj po pierwsze brakuje and po słowie screen, więc typ medium nie jest poprawnie połączony z warunkami, a po drugie zakres jest nielogiczny: min-width: 800px i max-width: 600px tworzą zestaw warunków, którego żaden ekran nie spełni, bo nie może mieć jednocześnie szerokości co najmniej 800 px i maksymalnie 600 px. W praktyce oznacza to media query, które nigdy się nie aktywuje. To zresztą typowy błąd: ktoś zna pojęcia min i max, ale nie zastanawia się nad realnym przedziałem wartości. Dobra praktyka w responsywnym projektowaniu to zawsze sprawdzić: czy zakres ma sens matematyczny, czy składnia zawiera wszystkie konieczne słowa kluczowe (screen, and), oraz czy zapis jest spójny z resztą kodu. Wtedy media queries stają się przewidywalne i łatwiejsze do debugowania w narzędziach deweloperskich przeglądarki.

Pytanie 11

Jak za pomocą CSS ustawić opływanie obrazu tekstem, wprowadzając odpowiedni kod w stylu obrazu?

Ilustracja do pytania
A. clear: both;
B. float: right;
C. float: left;
D. table: left;
Stosowanie table: left; w tym kontekście to strzał w kolano, bo taka właściwość nie istnieje. W CSS do tabel używamy innych właściwości jak display: table; lub display: table-cell;, ale nie do opływania elementów. A clear: both; jest używane, żeby zlikwidować opływ po float, więc to ważna sprawa, bo inaczej wszystko się sypie. Float: left; może opływać, ale w tej sytuacji nie postawi obrazka po prawej, bo ustawia go po lewej stronie. Wiele osób myśli, że float działa na osi Y, ale tak naprawdę dotyczy tylko osi X. Pamiętaj, że float, chociaż przydatny, to nie jedyny sposób na układanie elementów w CSS. Flexbox i grid to nowoczesne metody, które często są znacznie lepsze. By zbudować ładne interfejsy, musimy rozumieć jak różne właściwości CSS ze sobą współpracują.

Pytanie 12

Selektor CSS a:link {color:red} w arkuszach stylów nazywanych kaskadowymi określa

A. klasę.
B. pseudoklasę.
C. identyfikator.
D. pseudoelement.
Pseudoklasa CSS to specjalny rodzaj selektora, który pozwala na stylizację elementów na podstawie ich stanu lub kontekstu w dokumencie HTML. Zapis 'a:link' wskazuje, że stylizacja dotyczy linków, które jeszcze nie zostały odwiedzone przez użytkownika. Przykładowo, w tym przypadku 'color:red' ustawia kolor tekstu linku na czerwony. Użycie pseudoklas jest zgodne z dobrymi praktykami, ponieważ pozwala na tworzenie bardziej dynamicznych i responsywnych interfejsów użytkownika, poprawiając jednocześnie doświadczenia użytkowników. Warto również zaznaczyć, że w CSS istnieją inne pseudoklasy, takie jak ':hover' czy ':active', które umożliwiają stylizację elementów w różnych interakcjach z użytkownikiem. Dzięki nim możemy na przykład zmieniać kolor linku, gdy użytkownik na niego najedzie myszką, co zwiększa przejrzystość i użyteczność strony. Używanie pseudoklas jest nie tylko praktyczne, ale także zalecane w dokumentacji CSS, co przyczynia się do lepszego zarządzania i organizacji kodu.

Pytanie 13

Do której właściwości można przypisać wartości: static, relative, fixed, absolute oraz sticky?

A. list-style-type
B. position
C. display
D. text-transform
Odpowiedź 'position' to strzał w dziesiątkę! To właściwość w CSS, która mówi nam, jak elementy mają być ustawione na stronie. Masz różne opcje, jak 'static', 'relative', 'fixed', 'absolute' i 'sticky', które każda z nich ma swoje przeznaczenie. Na przykład 'static' to standard, który nic nie zmienia w układzie, a 'relative' umożliwia przesunięcie elementu w stosunku do jego pierwotnej pozycji. Z kolei 'absolute' pozwala umieścić element w odniesieniu do najbliższego przodka, który nie jest ustawiony na 'static', co świetnie się sprawdza, gdy chcesz, żeby coś się ładnie ułożyło na stronie. 'fixed' trzyma element w tym samym miejscu na ekranie, nawet jak przewijasz stronę – idealne dla nagłówków. 'Sticky' łączy w sobie cechy 'relative' i 'fixed', co daje lepszą kontrolę nad pozycjonowaniem przy przewijaniu. Używanie tych wartości jest naprawdę ważne, jeżeli projektujesz responsywne interfejsy, więc dobrze, że to wiesz!

Pytanie 14

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

A. CREATE USER 'jan'@'localhost';
B. CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';
C. CREATE USER 'jan'@'localhost' PASSWORD EXPIRE;
D. CREATE USER 'jan'@'%localhost' IDENTIFIED VIA mysql_native_password USING 'janPass';
Odpowiedź ta jest poprawna, ponieważ prawidłowo wykorzystuje składnię polecenia SQL do tworzenia użytkownika w bazie danych MySQL. Polecenie 'CREATE USER 'jan'@'localhost' IDENTIFIED BY 'janPass';' tworzy nowego użytkownika o nazwie 'jan' z hasłem 'janPass', które jest wymagane do autoryzacji. Użycie 'IDENTIFIED BY' jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa, ponieważ pozwala na bezpośrednie zdefiniowanie hasła w momencie tworzenia konta użytkownika. W praktyce, stworzenie użytkownika z odpowiednim hasłem jest kluczowym krokiem w zarządzaniu bazą danych, zwłaszcza w kontekście bezpieczeństwa danych. Umożliwia to ograniczenie dostępu do zasobów bazy danych tylko do autoryzowanych użytkowników. Dodatkowo, w codziennej pracy należy regularnie aktualizować hasła użytkowników oraz stosować złożone hasła, aby zwiększyć poziom bezpieczeństwa. Warto również zaznaczyć, że w nowoczesnych wersjach MySQL możliwe jest użycie dodatkowych opcji, takich jak 'REQUIRE SSL', dla podniesienia poziomu zabezpieczeń przy nawiązywaniu połączeń.

Pytanie 15

W celu stylizacji strony internetowej stworzono odpowiednie reguły. Reguły te będą stosowane tylko do wybranych znaczników (np. niektóre nagłówki, kilka akapitów). W tej sytuacji, aby zastosować styl do kilku wybranych znaczników, najlepiej będzie użyć

{ text-align: right; }
A. identyfikatora.
B. selektora akapitu.
C. klasy.
D. pseudoklasy.
Wybór klasy jako metody przypisania stylu do konkretnych znaczników HTML jest uzasadniony, gdyż klasy pozwalają na wielokrotne zastosowanie tego samego stylu w różnych miejscach dokumentu. Klasy definiuje się w arkuszu stylów CSS i przypisuje się je do elementów HTML za pomocą atrybutu "class". Dzięki temu, na przykład, możemy zastosować ten sam zestaw stylów do kilku nagłówków, akapitów czy innych elementów, co znacznie ułatwia zarządzanie stylizacją strony. Stosując klasy, nie musimy powielać kodu, co jest zgodne z zasadą DRY (Don't Repeat Yourself), prowadzącą do bardziej zorganizowanego i łatwiejszego w utrzymaniu kodu. Przykład użycia: jeśli stworzymy klasę "highlight" w CSS, możemy zastosować ją do kilku elementów, np. <h1 class="highlight">Nagłówek 1</h1> oraz <p class="highlight">Akapit wyróżniony.</p>. Dzięki temu, zmieniając styl w jednym miejscu, mamy wpływ na wszystkie elementy, co znacznie zwiększa efektywność i konsekwencję wizualną naszej strony. Dobrą praktyką jest także nadawanie klas nazw, które odzwierciedlają ich funkcję lub wygląd, co ułatwia późniejsze zarządzanie kodem.

Pytanie 16

Która z wymienionych metod umożliwia wyświetlenie komunikatu w konsoli przeglądarki internetowej przy użyciu języka JavaScript?

A. console.log("test");
B. console.echo("test");
C. console.print("test");
D. console.write("test");
Odpowiedź 'console.log("test");' jest poprawna, ponieważ jest to standardowa metoda w JavaScript, służąca do wypisywania komunikatów w konsoli przeglądarki. Funkcja console.log jest powszechnie stosowana przez programistów do debugowania kodu i monitorowania wartości zmiennych w czasie rzeczywistym. Umożliwia to efektywne śledzenie działania aplikacji internetowych oraz szybkie identyfikowanie błędów. Przykładowo, jeśli chcemy sprawdzić wartość zmiennej, możemy użyć polecenia console.log(myVariable);, co pozwoli nam zobaczyć aktualny stan zmiennej w konsoli. Warto również pamiętać, że console.log obsługuje różne typy danych, w tym obiekty i tablice, co czyni go niezwykle wszechstronnym narzędziem w arsenale programisty. Używanie tej metody jest zgodne z dobrymi praktykami w programowaniu, ponieważ pozwala na przejrzystość i lepsze zrozumienie logiki aplikacji. W kontekście pracy z konsolą, warto zaznajomić się również z innymi metodami, takimi jak console.error, console.warn czy console.info, które umożliwiają różnicowanie wypisywanych komunikatów według ich znaczenia.

Pytanie 17

W jaki sposób można ustawić w CSS wygląd hiperłącza, aby linki nieodwiedzone miały kolor żółty, a odwiedzone kolor zielony?

A. a:hover {color: yellow;} a:visited{color: green;}
B. a:visited {color: yellow;} a:link{color: green;}
C. a:hover {color: green;} a:link{color: yellow;}
D. a:link {color: yellow;} a:visited{color: green;}
Aby zdefiniować w języku CSS formatowanie hiperłączy, które różnią się kolorem w zależności od ich stanu (odwiedzone lub nieodwiedzone), należy zastosować odpowiednie selektory CSS. W standardzie CSS wyróżniamy kilka pseudo-klas, które pozwalają na stylizację linków: :link, :visited, :hover, oraz :active. Pseudo-klasa :link odnosi się do linków, które jeszcze nie zostały odwiedzone przez użytkownika, a jej stylizację możemy zdefiniować za pomocą a:link {color: yellow;}. Z kolei pseudo-klasa :visited odnosi się do linków, które zostały już odwiedzone, a ich kolor możemy ustawić jako zielony, co realizuje reguła a:visited {color: green;}. W ten sposób, gdy użytkownik przegląda stronę, linki, które jeszcze nie były klikane, będą wyświetlane w kolorze żółtym, natomiast te, które zostały odwiedzone, zmienią swój kolor na zielony. To podejście jest zgodne z zasadami dostępności i użyteczności w Internecie, a także spełnia wymagania WCAG (Web Content Accessibility Guidelines), które zachęcają do jasnego oznaczania stanu linków. Przykład zastosowania CSS w pliku stylów może wyglądać następująco: .linki {text-decoration: none;} a:link {color: yellow;} a:visited {color: green;}. Takie podejście pozwala na intuicyjne odczytanie stanu linku przez użytkowników, co zwiększa komfort korzystania z serwisów internetowych.

Pytanie 18

Jakiej funkcji w edytorze grafiki rastrowej należy użyć, aby przygotować obraz do wyświetlenia na stronie tak, aby widoczne było jedynie to, co mieści się w ramce?

Ilustracja do pytania
A. Lustro
B. Kadrowanie
C. Zmiana rozmiaru
D. Perspektywa
Odbicie w edytorze grafiki rastrowej to jakby lustrzane odbicie całego obrazu albo jego fragmentów, co może być użyteczne, ale nie ma nic wspólnego z usuwaniem elementów z kadru. W przypadku skalowania chodzi o zmianę rozmiaru obrazu, a to nie za bardzo działa, jeśli chcemy skupić się na jednym obszarze. Perspektywa to natomiast coś, co zmienia geometrię obrazu, by dodać głębi, ale też nie służy do kadrowania konkretnej części. Często ludzie mylą te funkcje i przez to mają problemy. Ważne jest, żeby znać te różnice, bo pomagają nam lepiej używać narzędzi graficznych. Jeśli chcemy osiągnąć konkretne efekty wizualne i optymalizować grafikę na stronie, to musimy dobrze rozumieć, co jak działa. Używanie niewłaściwych narzędzi może strasznie skomplikować pracę i wpłynąć na jakość końcowego efektu. Warto znać specyfikę każdego narzędzia, żeby robić to dobrze i sprawnie w edycji grafiki rastrowej.

Pytanie 19

W skrypcie JavaScript zmienne mogą być definiowane

A. jedynie wtedy, gdy podamy typ zmiennej oraz jej nazwę
B. w chwili pierwszego użycia zmiennej
C. wyłącznie na początku skryptu
D. zawsze poprzedzone znakiem $ przed nazwą
W języku JavaScript zmienne mogą być zadeklarowane w momencie ich pierwszego użycia dzięki mechanizmowi hoisting. Oznacza to, że silnik JavaScript przenosi deklaracje zmiennych na początek ich zasięgu, co pozwala na ich użycie w kodzie przed ich faktycznym zadeklarowaniem. Przykładem może być sytuacja, gdy zmienną deklarujemy za pomocą słowa kluczowego 'let' lub 'const'. Chociaż sama deklaracja jest hoistowana, to inicjalizacja zmiennej pozostaje w miejscu, co oznacza, że nie można jej używać przed faktycznym przypisaniem wartości. Dobrą praktyką jest zawsze deklarowanie zmiennych przed ich użyciem, aby uniknąć niejasności i błędów, takich jak ReferenceError. Warto również zauważyć, że JavaScript pozwala na dynamiczne typowanie, więc nie trzeba określać typu zmiennej przy jej deklaracji, co zwiększa elastyczność i uproszcza kod.

Pytanie 20

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Progowanie.
B. Inwersja.
C. Krzywe.
D. Barwienie.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 21

Wyjątkowa metoda przynależąca do danej klasy w programowaniu obiektowym, która jest automatycznie wywoływana w momencie tworzenia obiektu i zazwyczaj ma na celu inicjalizację pól, to

A. destruktor
B. konstruktor
C. obiekt
D. specyfikator dostępu
Konstruktor to specjalna metoda, która jest wywoływana automatycznie w momencie tworzenia nowego obiektu danej klasy. Jego głównym celem jest zainicjowanie pól obiektu oraz, w razie potrzeby, wykonanie dodatkowych działań konfiguracyjnych. W praktyce konstruktor umożliwia przygotowanie obiektu do dalszego użytkowania. Na przykład, w języku Java, konstruktor o nazwie klasy pozwala na tworzenie instancji tej klasy z określonymi wartościami dla pól. Dobre praktyki wskazują, że konstruktor powinien być używany do przekazywania parametrów, które są niezbędne do prawidłowego działania obiektu. Warto również wspomnieć o koncepcji konstruktorów przeciążonych, która pozwala na definiowanie wielu konstruktorów w jednej klasie, umożliwiając różne sposoby inicjalizacji obiektów. To sprawia, że kod jest bardziej elastyczny i czytelny, co jest zgodne z zasadami programowania obiektowego i dobrymi praktykami inżynierii oprogramowania.

Pytanie 22

W języku JavaScript rezultat wykonania polecenia ```zmienna1 -= 1;``` będzie tożsamy z wynikiem polecenia

A. zmienna1 === zmienna1 - 1;
B. zmienna1++;
C. zmienna1 = zmienna1 - 0;
D. zmienna1--;
Odpowiedź zmienna1--; jest poprawna, ponieważ jest to skrócona forma wyrażenia zmienna1 -= 1;. Oba wyrażenia mają ten sam efekt, który polega na zmniejszeniu wartości zmiennej zmienna1 o 1. W języku JavaScript operator '--' jest operatorem dekrementacji, który zmienia wartość zmiennej o jeden w dół. Użycie tego operatora jest zgodne z dobrymi praktykami kodowania, gdyż zwiększa czytelność kodu, czyniąc intencje programisty bardziej jasnymi. Użycie dekrementacji jest powszechne w sytuacjach, gdzie iterujemy przez kolekcje z użyciem pętli, co ogranicza potrzebę stosowania bardziej skomplikowanych instrukcji. Na przykład, w przypadku pętli for, zamiast pisać for(let i = n; i > 0; i -= 1), można zastosować for(let i = n; i > 0; i--), co jest bardziej zwięzłe i zrozumiałe. W kontekście standardów kodowania, preferowanym podejściem jest używanie operatorów, które maksymalizują przejrzystość i minimalizują możliwość popełnienia błędów.

Pytanie 23

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. Nieokreślonego (undefined)
B. Liczbowego
C. Logicznego
D. String (ciąg znaków)
Odpowiedzi wskazujące na inne typy danych, takie jak typ logiczny czy liczbowy, zawierają istotne nieporozumienia dotyczące sposobu, w jaki JavaScript zarządza danymi. Typ logiczny w tym kontekście oznaczałby, że zmienna mogłaby przyjmować tylko wartości 'true' lub 'false', co jest mylnym założeniem, ponieważ 'true' jest tutaj częścią tekstu, a nie wartością logiczną. Z kolei typ liczbowy byłby właściwy dla zmiennych takich jak 1, 2 czy 3, które reprezentują liczby całkowite lub zmiennoprzecinkowe. W przypadku zadeklarowanej zmiennej 'var x="true";', wartość, która jest przypisywana, jest w rzeczywistości ciągiem tekstowym, mimo że zawiera słowo kluczowe 'true'. Typ danych 'undefined' z kolei oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości, co również nie odpowiada sytuacji przedstawionej w pytaniu. Zrozumienie typów danych w JavaScript jest kluczowe dla unikania błędów typowych, zwłaszcza w kontekście zmiennych, które mogą być używane w różnych operacjach. W praktyce, to zrozumienie typów pozwala programistom lepiej zarządzać danymi i pisać bardziej niezawodny kod. Warto również pamiętać, że JavaScript automatycznie konwertuje typy w wielu sytuacjach, co może prowadzić do niezamierzonych rezultatów, dlatego proszę zwracać szczególną uwagę na przypisania i operacje wykonywane na zmiennych.

Pytanie 24

Która z zasad dotyczących użycia semantycznych znaczników sekcji w języku HTML 5 jest poprawna?

A. Znacznik <main> może być użyty tylko raz w danym dokumencie
B. Znacznik <aside> jest wykorzystywany dla dodatkowej treści strony
C. Znacznik <footer> powinien być umieszczony na górze strony, a <header> na jej końcu
D. Znacznik <nav> jest przypisany do sekcji <article>
Znacznik <main> w HTML5 jest przeznaczony do określenia głównej treści dokumentu, która jest bezpośrednio związana z jego tematem lub celem. Warto podkreślić, że zgodnie z definicją W3C, <main> powinien być używany tylko raz na stronie, aby zapewnić jednoznaczność struktury dokumentu oraz ułatwić nawigację dla technologii wspomagających, takich jak czytniki ekranu. Przykładowo, gdy tworzysz stronę internetową z artykułami, sekcja <main> może zawierać wszystkie te artykuły, natomiast inne sekcje, takie jak <header>, <footer> czy <aside>, powinny być wykorzystywane do różnych celów, takich jak nawigacja, stopka czy treści poboczne. Użycie <main> zgodnie z jego przeznaczeniem nie tylko poprawia semantykę strony, ale także jej dostępność, co jest kluczowe dla dzisiejszego web developmentu.

Pytanie 25

W PHP, aby połączyć się z bazą danych MySQL przy użyciu biblioteki mysqli, w zapisie zamieszczonym poniżej, w miejscu litery 'c' powinno się wpisać

Ilustracja do pytania
A. hasło użytkownika
B. lokalizację serwera bazy danych
C. nazwę bazy danych
D. nazwę użytkownika
W języku PHP używając biblioteki mysqli do połączenia z bazą danych MySQL, jako drugi argument funkcji mysqli należy podać nazwę użytkownika. Konstruktor mysqli przyjmuje pięć głównych argumentów: lokalizację serwera, nazwę użytkownika, hasło użytkownika, nazwę bazy danych oraz opcjonalne port i socket. Nazwa użytkownika jest kluczowa, ponieważ określa, który użytkownik bazy danych będzie używany do połączenia. Najczęściej używanym użytkownikiem przy lokalnych połączeniach testowych jest 'root', ale w środowiskach produkcyjnych stosuje się bardziej restrykcyjne podejście, tworząc dedykowane konta z ograniczonymi uprawnieniami dostępowymi. Korzystając z odpowiednich danych uwierzytelniających, można także lepiej logować działania i zarządzać prawami dostępu. Dobra praktyka wymaga, aby hasło było przechowywane bezpiecznie, np. w plikach konfiguracyjnych poza dostępem zewnętrznym, a dane użytkownika zawsze były szyfrowane przy przesyłaniu. Znajomość poprawnej konfiguracji połączenia z bazą danych jest kluczowa dla bezpieczeństwa i wydajności aplikacji.

Pytanie 26

W jakiej technologii nie zachodzi możliwość przetwarzania danych wprowadzanych przez użytkowników na stronach internetowych?

A. AJAX
B. PHP
C. CSS
D. JavaScript
CSS (Cascading Style Sheets) to język stylów, który służy do opisywania wyglądu i formatu dokumentów HTML. Jego głównym celem jest kontrolowanie układu, kolorów, czcionek oraz innych aspektów wizualnych strony internetowej. CSS nie ma możliwości przetwarzania danych wprowadzanych przez użytkowników, gdyż nie posiada funkcji logiki programistycznej ani operacji na danych. Przykładowo, CSS może zmieniać kolor tła lub rozmiar tekstu, ale nie może zbierać informacji z formularzy ani reagować na interakcje użytkownika w sposób, w jaki robią to języki programowania takie jak JavaScript czy PHP. Może to prowadzić do mylnych przekonań, że CSS jest bardziej wszechstronny, niż jest w rzeczywistości, jednak jego zastosowanie ogranicza się wyłącznie do aspektów stylistycznych. W praktyce, aby przetwarzać dane użytkownika, niezbędne są inne technologie, które mogą współpracować z CSS, ale same w sobie nie są w stanie tego zrobić.

Pytanie 27

Po awarii serwera bazy danych, aby jak najszybciej przywrócić pełne działanie bazy, konieczne jest wykorzystanie

A. aktualnej wersji kopii zapasowej
B. opisu struktur danych w tabelach
C. najświeższej wersji instalacyjnej serwera
D. kompletnej listy użytkowników serwera
Aby skutecznie przywrócić działanie bazy danych po jej uszkodzeniu, kluczowe jest wykorzystanie aktualnej wersji kopii zapasowej. Kopie zapasowe są fundamentem każdego planu odzyskiwania danych i powinny być regularnie tworzone zgodnie z polityką zarządzania danymi. Przykładowo, jeśli korzystamy z bazy danych w środowisku produkcyjnym, zaleca się wykonywanie codziennych kopii zapasowych oraz pełnych kopii co tydzień. W przypadku awarii, przywrócenie systemu do stanu sprzed incydentu za pomocą najnowszej kopii zapasowej minimalizuje utratę danych i przestoje. Praktyki takie jak backup w czasie rzeczywistym (real-time backup) mogą być również rozważane, aby ograniczyć ryzyko utraty danych. W kontekście standardów branżowych, organizacje powinny stosować zasady RTO (Recovery Time Objective) i RPO (Recovery Point Objective), które pomogą w określeniu najodpowiedniejszej strategii tworzenia kopii zapasowych i ich przechowywania. Zastosowanie aktualnych kopii zapasowych jest zatem najskuteczniejszym sposobem na przywrócenie funkcjonalności bazy danych.

Pytanie 28

Grafik pragnie przekształcić obraz JPG na format PNG bez utraty jakości, tak aby wszędzie tam, gdzie w oryginalnym obrazie występuje kolor biały, w docelowej wersji była przezroczystość. W tym celu powinien

A. obniżyć rozdzielczość obrazu
B. dodać kanał alfa
C. zaimportować obraz do edytora grafiki wektorowej
D. przekształcić obraz w odcienie szarości
Dodanie kanału alfa do obrazu jest kluczowym krokiem, aby przekształcić JPEG w PNG z zachowaniem przezroczystości. Format PNG obsługuje kanał alfa, który może przechowywać informacje o przezroczystości każdego piksela, co oznacza, że można zdefiniować, które części obrazu są w pełni widoczne, a które są całkowicie przezroczyste. W praktyce, po dodaniu kanału alfa, można użyć narzędzi edycyjnych, aby ustawić białe obszary na przezroczyste. Na przykład w programie GIMP lub Adobe Photoshop, można użyć narzędzia 'Magiczne różdżka' do zaznaczenia białego tła, a następnie usunąć je, co zamieni białe piksele na przezroczystość. Istotne jest, aby pamiętać, że JPEG nie wspiera przezroczystości, dlatego przekształcenie do formatu PNG jest niezbędne. Dobrą praktyką jest zawsze pracować na kopii oryginalnego obrazu, aby móc wrócić do źródłowego pliku, jeśli zajdzie taka potrzeba.

Pytanie 29

Jaką wartość przyjmie zmienna $a po wykonaniu poniższej sekwencji poleceń w języku PHP?

$a = 1; $a++; $a += 10; --$a;
A. 12
B. 1
C. 11
D. 10
Gratulacje, Twoja odpowiedź jest prawidłowa. Instrukcje wykonane w kodzie PHP prowadzą do osiągnięcia wartości 11 przez zmienną 'a'. Proces ten jest realizowany w czterech krokach. Najpierw zmienna 'a' jest inicjowana wartością 1. Następnie wartość ta jest zwiększana o 1, co daje nam 2. Do tej wartości dodawane jest 10, co daje nam łącznie 12. Na końcu, wartość ta jest zmniejszana o 1, co daje nam ostateczną wartość 11. Warto przypomnieć, że w języku programowania PHP, tak jak w większości języków, operacje są wykonywane od lewej do prawej. To jest ważne do zapamiętania, gdy mamy do czynienia z bardziej skomplikowanymi sekwencjami operacji.

Pytanie 30

Kolor zdefiniowany kodem RGB o wartości rgb(128, 16, 8) w formacie szesnastkowym przyjmuje wartość

A. #FF1008
B. #800F80
C. #801008
D. #FF0F80
Odpowiedzi takie jak #FF1008, #800F80 i #FF0F80 są wynikiem błędnych konwersji wartości RGB do formatu szesnastkowego. Gdybyśmy przyjrzeli się pierwszej z tych odpowiedzi, widzimy, że wartość 'FF' oznacza 255 w systemie dziesiętnym, co nie odpowiada wartości 128 w kanale czerwonym tego koloru. Zastosowanie 'FF' w tym kontekście prowadzi do znacznego przeszacowania intensywności koloru czerwonego. Przechodząc do drugiej odpowiedzi, #800F80, wartość '0F' odpowiada 15, co również nie jest zgodne z pierwotną wartością 16 w kanale zielonym. To wskazuje na niedoszacowanie intensywności zielonej, co wpływa na percepcję koloru. Ostatnia odpowiedź, #FF0F80, znowu używa 'FF' w kanale czerwonym, co prowadzi do podobnych błędów jak w pierwszym przypadku. Kluczowym błędem, który można zidentyfikować w tych odpowiedziach, jest nieprawidłowe przeliczenie wartości RGB do formatu szesnastkowego, co jest powszechnym problemem dla osób, które nie są zaznajomione z konwersją systemów liczbowych. W praktyce, aby uniknąć takich pomyłek, warto korzystać z narzędzi online lub specjalistycznego oprogramowania, które automatycznie wykonuje te konwersje, co pozwala na zaoszczędzenie czasu i zminimalizowanie ryzyka błędów.

Pytanie 31

W jakiej technologii niemożliwe jest przetwarzanie danych wprowadzanych przez użytkownika na stronie WWW?

A. CSS
B. PHP
C. AJAX
D. JavaScript
CSS, czyli Kaskadowe Arkusze Stylów, jest technologią używaną do stylizacji stron internetowych. Jego głównym celem jest określenie, jak elementy HTML powinny wyglądać, w tym ich wygląd, kolor, rozmiar oraz układ na stronie. CSS nie ma możliwości przetwarzania danych użytkownika, ponieważ działa wyłącznie po stronie klienta i nie posiada funkcji interakcji z danymi użytkowników. Przykładem zastosowania CSS jest nadanie stylu nawigacji w serwisie internetowym, gdzie style mogą być określone w pliku CSS, ale nie mają zdolności do przechwytywania i przetwarzania informacji wprowadzonych przez użytkowników w formularzach. Standardy CSS rozwijane przez World Wide Web Consortium (W3C) podkreślają jego rolę w stylizacji i prezentacji, a nie w logice aplikacji czy przetwarzaniu danych. Użytkownicy mogą korzystać z CSS do tworzenia responsywnych układów, jednak bez zdolności do interakcji z danymi, co czyni go technologią czysto wizualną.

Pytanie 32

Który z parametrów obiektu graficznego zmieni się po zmianie wartości kanału alfa?

A. Przezroczystość
B. Kolejność wyświetlenia pikseli
C. Nasycenie barw
D. Ostrość krawędzi
Kanał alfa jest kluczowym parametrem w zarządzaniu przezroczystością obiektów graficznych. Przezroczystość definiuje, w jakim stopniu dany obiekt jest widoczny na tle innych elementów graficznych. W systemach graficznych, takich jak Adobe Photoshop czy GIMP, kanał alfa może przyjmować wartości od 0 (całkowicie przezroczysty) do 255 (całkowicie nieprzezroczysty). Kiedy zmieniamy wartość kanału alfa, manipuluje to stopniem przezroczystości danego obiektu, co ma kluczowe znaczenie w projektowaniu graficznym oraz w tworzeniu efektów wizualnych. Przykładowo, w projektowaniu interfejsów użytkownika często stosuje się przezroczystość do uzyskania efektów wizualnych, które poprawiają estetykę oraz funkcjonalność. Dobrą praktyką jest używanie przezroczystości w celu tworzenia głębi i warstwowości w grafice, co może być przydatne w animacjach oraz w aplikacjach mobilnych, gdzie przejrzystość elementów interfejsu wpływa na użyteczność i doświadczenie użytkownika. Warto pamiętać, że manipulowanie kanałem alfa powinno być wcześniej przemyślane, aby osiągnąć zamierzony efekt wizualny bez negatywnego wpływu na czytelność i odbiór projektu.

Pytanie 33

Zakładając, że żadne style CSS nie zostały zdefiniowane, przedstawiony efekt zostanie uzyskany przy pomocy

Tytuł
    Znaczniki języka HTML
Autor
    Ewa Konieczna
Słowa kluczowe
    witryny internetowe, HTML

Kod 1.
<ul>
  <li>Tytuł</li>
  <li>Znaczniki języka HTML</li>
  <li>Autor</li>
  <li>Ewa Konieczna</li>
  <li>Słowa kluczowe</li>
  <li>witryny internetowe, HTML</li>
</ul>

Kod 2.
<dl>
  <dt>Tytuł</dt>
  <dd>Znaczniki języka HTML</dd>
  <dt>Autor</dt>
  <dd>Ewa Konieczna</dd>
  <dt>Słowa kluczowe</dt>
  <dd>witryny internetowe, HTML</dd>
</dl>

Kod 3.
<ol>
  <li>Tytuł</li>
  <dl>Znaczniki języka HTML</dl>
  <li>Autor</li>
  <dl>Ewa Konieczna</dl>
  <li>Słowa kluczowe</li>
  <dl>witryny internetowe, HTML</dl>
</ol>

Kod 4.
<table>
  <tr>Tytuł</tr>
  <td>Znaczniki języka HTML</td>
  <tr>Autor</tr>
  <td>Ewa Konieczna</td>
  <tr>Słowa kluczowe</tr>
  <td>witryny internetowe, HTML</td>
</table>
A. Kodu 1.
B. Kodu 3.
C. Kodu 4.
D. Kodu 2.
Niestety, Twoja odpowiedź nie jest poprawna. Na podstawie analizy załączonego obrazka można stwierdzić, że efekt przedstawiony na zdjęciu zostanie uzyskany przy użyciu 'Kodu 2', który jest kodem HTML definiującym tabelę. Wybierając inne opcje, pomijasz ważną rolę, jaką tabele odgrywają w prezentowaniu informacji w strukturze danych. Tabele HTML są przydatne do prezentowania zestawów danych, które mają związek ze sobą. Za pomocą tabeli można łatwo zorganizować takie dane w czytelny sposób. Zwróć uwagę, że wybór nieodpowiedniego kodu do osiągnięcia określonego efektu może prowadzić do niepotrzebnych komplikacji, takich jak trudności w utrzymaniu kodu, problemów z dostępnością i nieprawidłowego wyświetlania na różnych urządzeniach czy przeglądarkach. Pamiętaj, że ważne jest zrozumienie podstawowych koncepcji HTML i CSS, aby być w stanie tworzyć efektywne i dostępne strony internetowe.

Pytanie 34

W języku PHP chcąc wyświetlić ciąg n znaków @, należy użyć funkcji

A. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki(@, $n);

B. function znaki($i){
   for($i = 0; $i < $n; $i++)
     print("@");
}
znaki($i);

C. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki($n);

D. function znaki($znak, $n){
   for($i = 0; $i < $n; $i++)
     print($znak);
}
znaki("@", $n);
A. B.
B. C.
C. D.
D. A.
Wybór odpowiedzi A, B lub C sugeruje pewne nieporozumienia dotyczące działania funkcji w PHP. W PHP, aby wyświetlić ciąg n znaków, musimy użyć funkcji, która przyjmuje dwa argumenty: znak do wyświetlenia i liczbę n określającą, ile razy znak powinien zostać wyświetlony. Żadne z podejść zaproponowanych w odpowiedziach A, B lub C nie spełniają tych kryteriów. Wszystkie one wydają się pomijać istotne aspekty tworzenia funkcji, takie jak użycie odpowiednich argumentów lub prawidłowe użycie pętli. Zrozumienie, jak działa ta konkretna funkcja w PHP, może pomóc Ci zrozumieć, jak działa ten język programowania i jak używać jego funkcji do tworzenia skutecznych programów. Warto poświęcić więcej czasu na naukę tych podstaw, ponieważ są one kluczowe dla pisanie skutecznego kodu w PHP.

Pytanie 35

W języku JavaScript obiekt typu array jest wykorzystywany do przechowywania

A. wielu wartości lub funkcji.
B. wielu wartości wyłącznie tekstowych.
C. wielu wartości dowolnego typu.
D. wielu wartości wyłącznie liczbowych.
Obiekt typu array w języku JavaScript jest strukturą danych, która służy do przechowywania wielu wartości dowolnego typu. Można w nim przechowywać liczby, napisy, obiekty, a nawet inne tablice. Dzięki temu arrays są niezwykle elastyczne i użyteczne w tworzeniu aplikacji. W JavaScript tablice są dynamiczne, co oznacza, że można do nich dodawać nowe elementy w trakcie działania programu za pomocą metod takich jak push() i unshift(). Przykład użycia tablicy: let fruits = ['jabłko', 'banan', 42, {color: 'zielony'}, [1, 2, 3]]; w tym przykładzie tablica fruits przechowuje różne typy danych, w tym napisy, liczbę, obiekt oraz inną tablicę. Warto również zauważyć, że tablice w JavaScript są obiektami, co pozwala na wykorzystanie różnych metod i właściwości typowych dla obiektów. Dokumentacja ECMAScript jasno określa zasady działania tablic, co potwierdza ich funkcjonalność jako kolekcji wartości. Warto zrozumieć, że tablice nie są ograniczone do przechowywania jednego typu danych, co czyni je idealnym narzędziem do zarządzania złożonymi zbiorami informacji.

Pytanie 36

Kod JavaScript aktywowany przez kliknięcie przycisku ma na celu ``` ```

A. zamienić obraz1.gif na obraz2.gif
B. zmienić styl obrazu o id i1
C. ukryć obraz2.gif
D. pokazać obraz2.gif obok obraz1.gif
Kod JavaScript w przedstawionym przykładzie został zaprogramowany w celu zamiany źródła obrazu na nowe po naciśnięciu przycisku. Gdy użytkownik kliknie na przycisk, wywołuje on funkcję, która zmienia atrybut 'src' elementu <img> z 'obraz1.gif' na 'obraz2.gif'. Jest to typowy sposób manipulacji elementami DOM w JavaScript, co jest fundamentalnym elementem programowania interakcji na stronach internetowych. Takie podejście jest zgodne z najlepszymi praktykami w zakresie programowania front-end, ponieważ pozwala na dynamiczne zmiany na stronie bez konieczności przeładowania całej strony. Przykładem praktycznego zastosowania może być użycie tego typu kodu w aplikacjach webowych, gdzie użytkownik może interaktywnie zmieniać widok, na przykład w galeriach zdjęć, grach przeglądarkowych czy aplikacjach do nauki. Zrozumienie tej techniki jest kluczowe dla każdego programisty front-end, ponieważ efektywne wykorzystanie JavaScript do manipulacji DOM jest jednym z podstawowych narzędzi w budowie nowoczesnych aplikacji webowych.

Pytanie 37

Na podstawie przypisania wartości do zmiennych zapisanych w języku PHP można stwierdzić, że

$zmienna1 = 15;
$zmienna2 = "15";
$zmienna3 = (string) $zmienna1;
A. zmienna2 i zmienna3 są tego samego typu.
B. zmienna1 i zmienna3 są tego samego typu.
C. Wszystkie zmienne są tego samego typu.
D. zmienna1 i zmienna2 są tego samego typu.
Niestety, twoja odpowiedź była nieprawidłowa. Wydaje się, że mogła wynikać z niezrozumienia typów zmiennych w języku PHP. W tym pytaniu zmienna1 była typu int (liczba całkowita), zmienna2 była typu string (ciąg znaków), natomiast zmienna3 była wynikiem rzutowania zmiennej1 na typ string. Stąd wynika, że zmienna2 i zmienna3 są obie typu string. Natomiast zmienna1, pomimo że miała taką samą wartość jak zmienna2 i zmienna3 (15), nie była tego samego typu. W językach programowania typ danych jest ważny, szczególnie przy operacjach porównania czy połączenia różnych typów danych. PHP jest językiem o dynamicznych typach, co oznacza, że typ zmiennej może ulec zmianie w trakcie wykonania skryptu, ale mimo to warto zawsze świadomie operować na typach zmiennych.

Pytanie 38

Jakie są określenia typowych komend języka SQL, które dotyczą przeprowadzania operacji na danych SQL DML (np.: dodawanie danych do bazy, usuwanie, modyfikowanie danych)?

A. SELECT, SELECT INTO
B. ALTER, CREATE, DROP
C. DELETE, INSERT, UPDATE
D. DENY, GRANT, REVOKE
Pierwsza odpowiedź DENY, GRANT, REVOKE odnosi się do zarządzania uprawnieniami w bazach danych, a nie do operacji na danych. Te polecenia są używane do kontrolowania dostępu do danych, co jest istotne dla bezpieczeństwa, ale nie mają one wpływu na manipulację danymi. W kontekście SQL DML, są one nieodpowiednie, ponieważ nie dotyczą wstawiania, aktualizowania ani usuwania danych. Odpowiedź SELECT, SELECT INTO odnosi się do operacji wyciągania danych z bazy. SELECT służy do pobierania danych, co jest fundamentalne dla analizy i raportowania, ale nie obejmuje modyfikacji danych. SELECT INTO jest używane do kopiowania danych do nowej tabeli, co również nie spełnia wymogu manipulacji danymi w kontekście DML. Odpowiedź ALTER, CREATE, DROP dotyczy struktury bazy danych i definiowania nowych obiektów, takich jak tabele i indeksy. Te polecenia są częścią języka SQL DDL (Data Definition Language) i nie mają zastosowania w kontekście operacji na danych, które są kluczowe dla DML. Zrozumienie różnicy między DML a DDL jest niezbędne, aby skutecznie zarządzać bazą danych i realizować odpowiednie operacje na danych.

Pytanie 39

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

Pytanie 40

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

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