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: 15 maja 2025 11:56
  • Data zakończenia: 15 maja 2025 12:43

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Model reprezentacji kolorów z parametrami: hue, saturation i value, to

A. HSV
B. RGB
C. CMY
D. CMYK
Odpowiedź HSV (Hue, Saturation, Value) jest poprawna, ponieważ ten model opisu przestrzeni barw koncentruje się na trzech kluczowych parametrach: odcieniu, nasyceniu i jasności. Odcień odnosi się do rzeczywistego koloru, nasycenie informuje o intensywności koloru, a jasność wskazuje na jego jasność. Model HSV jest szczególnie użyteczny w aplikacjach graficznych oraz podczas pracy z grafiką komputerową, ponieważ jest bardziej intuicyjny dla ludzi, niż inne modele, takie jak RGB czy CMYK. Przykładem zastosowania modelu HSV jest edytor graficzny, gdzie użytkownik może łatwo dostosować kolor, manipulując tymi trzema parametrami. Standardy branżowe, takie jak Adobe Photoshop, implementują ten model, co pozwala na efektywne tworzenie i edytowanie kolorów. Dodatkowo, model HSV jest używany w programowaniu komputerowym do tworzenia efektów wizualnych, gdzie precyzyjne dostosowanie kolorów jest kluczowe.

Pytanie 2

W CSS, stosowanie poniższego kodu na stronie z kilkoma akapitami, gdzie każdy składa się z kilku linijek, spowoduje, że

p::first-line
{
    font-size: 150%;
}

A. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
B. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
C. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
D. cały tekst w paragrafie zostanie powiększony o 150%
Zapis CSS p::first-line { font-size: 150%; } używa selektora pseudo-elementu ::first-line który stosuje stylizację do pierwszej linii każdego paragrafu. W tym przypadku zmieniamy rozmiar czcionki pierwszej linii na 150% jej domyślnej wartości co oznacza że będzie ona o 50% większa niż reszta tekstu. Pseudo-element ::first-line jest często stosowany w projektowaniu stron internetowych aby wyróżnić pierwsze zdanie lub akapit co może pomóc w lepszej organizacji treści i zwiększeniu czytelności. Ten sposób formatowania jest zgodny ze standardami CSS i jest wspierany przez większość nowoczesnych przeglądarek internetowych. Takie podejście może być użyteczne w projektach gdzie istotne jest nadanie unikalnego wyglądu nagłówkom sekcji lub wprowadzeniom bez zmieniania struktury HTML. Ważne jest aby pamiętać że ::first-line stosuje się tylko do elementów blokowych takich jak paragrafy co ogranicza jego użycie do tych specyficznych scenariuszy ale jednocześnie pozwala na precyzyjne dostosowanie stylu tekstu w dokumencie.

Pytanie 3

Rekord w bazie danych identyfikowany jest jednoznacznie przez pole

A. relacji
B. numeryczne
C. klucza podstawowego
D. klucza obcego
Klucz obcy jest to pole, które odnosi się do klucza podstawowego innej tabeli w celu utworzenia relacji pomiędzy nimi. Jego głównym celem jest zapewnienie integralności referencyjnej, co oznacza, że pozwala na łączenie danych z różnych tabel. Dlatego klucz obcy nie może być użyty jako jednoznaczny identyfikator rekordu w danej tabeli, gdyż nie gwarantuje on unikalności, a jedynie odniesienie do innego rekordu. Numeryczne pole samo w sobie nie jest wystarczające do identyfikacji rekordu, ponieważ nie każde pole numeryczne jest unikalne. Pola numeryczne mogą zawierać powtarzające się wartości, co czyni je niewłaściwym wyborem na identyfikator rekordu. Relacje, mimo że są kluczowym elementem w strukturze baz danych, nie są specyficznymi polami, które mogłyby pełnić rolę klucza. Relacje definiują, jak różne tabele interagują ze sobą, ale nie identyfikują konkretnych rekordów. W związku z tym, żadne z wymienionych pól nie mogą pełnić roli jednoznacznego identyfikatora rekordu w bazie danych, poza kluczem podstawowym, który jest fundamentalnym elementem relacyjnych baz danych.

Pytanie 4

To pytanie jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się lub utwórz konto aby zobaczyć pełną treść pytania.

Odpowiedzi dostępne po zalogowaniu.

Wyjaśnienie dostępne po zalogowaniu.


Pytanie 5

W języku HTML utworzono listę, która

Ilustracja do pytania
A. nie zawiera zagłębień i jest numerowana, słowo "niebieski" ma przyporządkowany numer 5
B. nie posiada zagłębień i jest punktowana, wyświetla 5 punktów
C. jest numerowana z zagłębioną listą punktowaną
D. jest punktowana z zagłębioną listą numerowaną
Niepoprawna odpowiedź. Wygląda na to, że mogło być małe nieporozumienie co do struktury list w HTML. Jeśli mówimy o liście punktowanej z zagnieżdżoną listą numerowaną, to trochę to nie tak, bo w HTML dla listy punktowanej używamy
    . Mówiąc o zagłębianiu, to typ listy zagnieżdżonej wskazuje, jak to wszystko będzie wyglądać. Jeśli piszesz, że lista wyświetla 5 punktów bez zagnieżdżeń, to sugeruje, że nie do końca łapiesz jak to działa. Lista punktowana nie numeruje elementów sama z siebie, to zależy od tego, ile masz znaczników
  • . A jeżeli mówisz, że 'niebieski' ma numer 5, to też jest błędne, bo w tym przypadku powinien mieć numer 3. Wygląda na to, że musisz jeszcze popracować nad zrozumieniem, jak HTML zarządza strukturą list, żeby lepiej implementować te elementy w swoim kodzie.

Pytanie 6

Aby poprawić prędkość ładowania strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie rozmiarów grafiki?

A. za pomocą właściwości CSS, podając rozmiar w pikselach
B. w programie graficznym
C. za pomocą właściwości CSS, podając rozmiar w procentach
D. za pomocą atrybutów HTML
Zwiększenie szybkości działania strony internetowej z grafiką o wymiarach 2000 px na 760 px jest kluczowym zadaniem dla zapewnienia lepszej wydajności i doświadczeń użytkowników. Zmniejszenie rozmiarów grafiki w programie graficznym przed jej umieszczeniem na stronie jest najlepszą praktyką. Poprzez optymalizację obrazu możemy znacznie zmniejszyć jego wagę, co przyspiesza ładowanie strony. Programy graficzne, takie jak Adobe Photoshop czy GIMP, oferują różne narzędzia do kompresji obrazów bez zauważalnej utraty jakości. Dodatkowo, stosowanie formatów plików odpowiednich do rodzaju grafiki, jak JPEG dla zdjęć lub PNG dla grafik z przezroczystością, może przyczynić się do dalszej optymalizacji. Warto również pamiętać o technikach, takich jak lazy loading, które pozwalają na ładowanie obrazów w miarę przewijania strony, co również wpływa na szybkość ładowania. Te czynności są zgodne z zasadami SEO i wynikami stron w wyszukiwarkach, co czyni je kluczowymi dla każdego twórcy internetowego.

Pytanie 7

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
B. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
C. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
D. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
Odpowiedź jest poprawna, ponieważ stosuje właściwą składnię języka JavaScript i prawidłowo określa warunki, które muszą być spełnione, aby cena farby zwiększyła się o 20%. Wyrażenie '(kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2' skutecznie sprawdza, czy zmienna 'kolor' przyjmuje wartość 'niebieski' lub 'zielony', a jednocześnie czy 'pojemnosc' wynosi 2. Użycie operatora logicznego '||' (lub) oraz '&&' (i) jest kluczowe w definiowaniu logiki warunkowej, co jest podstawą w programowaniu. Dzięki tej metodzie można z łatwością rozszerzyć logikę o inne kolory czy pojemności w przyszłości. Przykładem zastosowania tej logiki w praktyce może być tworzenie dynamicznego kalkulatora cen w aplikacji internetowej, gdzie użytkownicy wybierają różne kolory i pojemności, a program automatycznie oblicza cenę na podstawie zadanych reguł. Ważne jest przestrzeganie dobrych praktyk programistycznych, takich jak jasne nazewnictwo zmiennych i unikanie złożonych wyrażeń, co zwiększa czytelność kodu. Warto również pamiętać, że stosując operator '==' zamiast '=' unikamy przypisania wartości, co jest kluczowe w kontekście debugowania i poprawności działania skryptu.

Pytanie 8

Istnieje tabela o nazwie przedmioty, która zawiera kolumny ocena i uczenID. Jakie zapytanie należy wykorzystać, aby obliczyć średnią ocen ucznia z ID równym 7?

A. COUNT SELECT ocena FROM przedmioty WHERE uczenID=7;
B. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID=7;
C. SELECT AVG(ocena) FROM przedmioty WHERE uczenID=7;
D. AVG SELECT ocena FROM przedmioty WHERE uczenID=7;
Odpowiedź SELECT AVG(ocena) FROM przedmioty WHERE uczenID=7; jest prawidłowa, ponieważ wykorzystuje funkcję agregującą AVG, która oblicza średnią wartość dla podanego zestawu danych. W tym przypadku skupiamy się na ocenach ucznia o ID równym 7, co osiągamy poprzez zastosowanie klauzuli WHERE. Funkcje agregujące, takie jak AVG, są standardowym narzędziem w SQL do analizy danych, szczególnie przydatnym w kontekście raportowania i analityki. Dzięki takiemu zapytaniu możemy szybko uzyskać średnią ocen ucznia, co może być wykorzystane do oceny jego postępów w nauce lub do podejmowania decyzji z zakresu pedagogiki w oparciu o zebrane dane. W praktyce, takie podejście jest zgodne z najlepszymi praktykami w pracy z bazami danych, pozwalając na wydobycie istotnych informacji z dużych zbiorów danych bez konieczności przetwarzania ich ręcznie. Użycie AVG w połączeniu z klauzulą GROUP BY mogłoby również być zastosowane, gdybyśmy chcieli uzyskać średnie oceny dla wielu uczniów jednocześnie, co dodatkowo podkreśla elastyczność i moc SQL w analizie danych.

Pytanie 9

Prezentowany blok kodu ilustruje proces

Ilustracja do pytania
A. realizacji zadania w pętli
B. załadowania lub wyświetlenia informacji
C. użycia zdefiniowanej procedury lub funkcji
D. podjęcia decyzji
Symbol przedstawiony na obrazku to romb który w diagramach przepływu algorytmów i schematach blokowych oznacza podjęcie decyzji Jest to kluczowy element w programowaniu i inżynierii oprogramowania używany do podejmowania decyzji lub wyrażania warunków logicznych Decyzja to punkt w programie gdzie przetwarzanie może podążać różnymi ścieżkami w zależności od spełnienia określonych warunków Na przykład w językach programowania takich jak Python lub Java warunek if-else jest używany do podjęcia decyzji w zależności od wartości logicznych Wyobraźmy sobie sytuację w której program ma zdecydować czy użytkownik jest pełnoletni W takim przypadku instrukcja if sprawdza warunek wiek użytkownika większy lub równy 18 i w zależności od tego wykonuje odpowiednie instrukcje Takie podejście jest zgodne z dobrymi praktykami programowania które kładą nacisk na klarowność kodu i jego elastyczność Dzięki temu programiści mogą tworzyć bardziej złożone systemy które reagują na różne scenariusze i dostosowują swoje działanie do dynamicznie zmieniających się warunków co jest kluczowe w projektowaniu skalowalnych i efektywnych rozwiązań

Pytanie 10

W aplikacji PHP do bazy danych została wysłana kwerenda SELECT przy pomocy funkcji mysqli_query. Jaką funkcję powinien wykorzystać użytkownik, aby ustalić, ile rekordów zostało zwróconych przez zapytanie?

A. mysqli_fetch_row
B. mysqli_num_rows
C. mysqli_query
D. mysqli_connect
Funkcja mysqli_num_rows jest kluczowym narzędziem w interakcji z bazą danych w PHP, umożliwiającym sprawdzenie liczby rekordów zwróconych przez zapytanie SELECT. Po wywołaniu mysqli_query, które wykonuje zapytanie SQL, można uzyskać wynik, który jest obiektem typu mysqli_result. Używając mysqli_num_rows, możemy szybko i efektywnie dowiedzieć się, ile rekordów zostało zwróconych przez to zapytanie. Przykładowo, po wykonaniu zapytania do bazy danych można użyć poniższego kodu: $result = mysqli_query($conn, 'SELECT * FROM users'); $count = mysqli_num_rows($result); echo 'Liczba rekordów: ' . $count;. Dzięki temu użytkownik ma pełną kontrolę nad danymi, co jest zgodne z najlepszymi praktykami w programowaniu, gdzie liczenie rekordów może być niezbędne do dalszej logiki aplikacji, jak stronicowanie wyników czy walidacja danych. Warto również wiedzieć, że mysqli_num_rows nie tylko zwraca liczbę rekordów, ale także działa wydajnie, co ma znaczenie przy dużych zbiorach danych, gdzie minimalizowanie obciążenia serwera i bazy jest kluczowe.

Pytanie 11

 SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel"; 

Tabela samochody zawiera rekordy przedstawione na obrazie. Wydając przedstawione zapytanie SQL zostaną zwrócone dane:
idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017

A. zafira; insignia
B. opel zafira
C. opel zafira; opel insignia
D. zafira
Gratulacje, twoja odpowiedź jest poprawna. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik > 2017 AND marka = 'opel';' ma na celu wyświetlenie modelu samochodu marki 'opel' z roku produkcji późniejszego niż 2017. Analizując dostępną tabelę, możemy zauważyć, że tylko model 'zafira' spełnia oba kryteria. W tym przypadku wykorzystaliśmy dwa kluczowe elementy języka SQL, tj. instrukcję SELECT i klauzulę WHERE. Instrukcja SELECT służy do zapytań o konkretne dane z bazy, a klauzula WHERE to powszechnie stosowane narzędzie do filtrowania wyników zapytania według określonych kryteriów. Jest to bardzo praktyczny aspekt SQL, który pozwala na wydobywanie tylko tych danych, które są potrzebne, co jest niezwykle przydatne przy dużych bazach danych.

Pytanie 12

W języku C, aby zdefiniować stałą, należy zastosować

A. static
B. #INCLUDE
C. const
D. #const
W języku C, aby zadeklarować stałą, używamy słowa kluczowego 'const'. Oznaczenie zmiennej jako stałej z użyciem 'const' informuje kompilator, że wartość tej zmiennej nie może być zmieniana po jej inicjalizacji. Jest to istotne, ponieważ pozwala na większą kontrolę nad danymi w programie oraz może przyczynić się do zwiększenia bezpieczeństwa kodu. Na przykład, jeśli zadeklarujemy stałą długość tablicy jako 'const int length = 10;', kompilator zablokuje wszelkie próby zmiany tej wartości w późniejszej części programu. Dzięki temu, możemy uniknąć wielu błędów logicznych. Ponadto stosowanie stałych zwiększa czytelność kodu, ponieważ zamiast magicznych liczb w kodzie, używamy nazw, które jasno określają, co dana wartość reprezentuje. Warto również pamiętać, że stałe mogą być używane w różnych kontekstach, w tym przy definiowaniu parametrów funkcji, co pozwala na lepszą organizację i zarządzanie kodem. Praktyka używania 'const' jest zgodna z dobrymi praktykami programowania, które zalecają minimalizowanie zmienności danych tam, gdzie to możliwe.

Pytanie 13

Który model barw opisuje kolor za pomocą stożka przestrzeni barw?

A. CMYK
B. CIE
C. HSV
D. CMY
CIE to standard przestrzeni barw opracowany przez International Commission on Illumination, który opisuje sposób percepcji kolorów przez ludzkie oko. Choć model CIE jest fundamentalny w teorii kolorów, nie jest bezpośrednio reprezentowany jako stożek przestrzeni barw, lecz jako zbiór punktów w przestrzeni trójwymiarowej, co czyni go mniej intuicyjnym w praktycznych zastosowaniach niż model HSV. Model CMY to model barw subtraktywnych, który opiera się na absorpcji światła i jest stosowany głównie w druku. W praktyce, model ten nie uwzględnia wszystkich aspektów percepcji kolorów, co może prowadzić do niedokładności w odzwierciedleniu kolorów. Z kolei model CMYK, będący rozszerzeniem modelu CMY, dodaje czarny atrament do uzyskania głębszych odcieni, co czyni go lepszym do druku, ale nie jest on dogodny do reprezentacji kolorów w przestrzeni stożkowej. Te modele, choć mają swoje zastosowanie w różnych dziedzinach, nie są tak użyteczne, jak model HSV, gdyż nie oferują podobnej elastyczności w manipulacji kolorami i nie są oparte na intuicyjnym systemie odcieni, nasycenia i jasności.

Pytanie 14

Podany kod źródłowy ma na celu pokazanie

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}

A. kolejne liczby od 1 do 100
B. wylosowane liczby od 1 do 99
C. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
D. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
Odpowiedzi, które sugerują, że kod generuje kolejne liczby od 1 do 100, wylosowane liczby od 1 do 99, czy też wczytane z klawiatury liczby, zawierają fundamentalne błędy w interpretacji logiki działania przedstawionego kodu. Po pierwsze, pętla while w kodzie analizowanym opiera się na losowym generowaniu liczb z wykorzystaniem funkcji rand(), a nie na sekwencyjnym przydzielaniu wartości. Kod nie generuje przyrostu numerycznego, jak sugeruje odpowiedź sugerująca liczby od 1 do 100. Ponadto, nie ma żadnej logiki, która wprowadzałaby wartości do programu z klawiatury, co całkowicie wyklucza odpowiedzi sugerujące wczytywanie liczb. Ważne jest, aby zrozumieć, że w kontekście programowania różnica pomiędzy losowym generowaniem a sekwencyjnym przydzielaniem wartości ma kluczowe znaczenie. Niepoprawne koncepcje pochodzą często z mylenia pojęć losowości i deterministycznych sekwencji, co prowadzi do błędnych wniosków. Każdy programista musi być świadomy tych różnic, aby unikać nieporozumień w kodzie, co jest istotne zarówno w codziennej praktyce programistycznej, jak i w bardziej złożonych projektach, gdzie precyzyjne działanie kodu jest kluczowe dla uzyskania oczekiwanych wyników.

Pytanie 15

Określ rodzaj relacji między tabelami: Tabela1 oraz Tabela3?

Ilustracja do pytania
A. Wiele do jednego
B. Jeden do wielu
C. Wiele do wielu
D. Jeden do jednego
Rozważając różne typy relacji pomiędzy tabelami w relacyjnych bazach danych, istotne jest zrozumienie konceptu kluczy i połączeń. Relacja jeden do jednego implikuje, że każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej. Stosuje się ją tam, gdzie dane można logicznie podzielić na dwie części, jak np. dane osobowe i szczegółowe informacje kontaktowe danej osoby. Relacja jeden do wielu oznacza, że jeden rekord z pierwszej tabeli łączy się z wieloma rekordami w drugiej. Przykładowo, jeden autor może napisać wiele książek. Taka struktura jest typowa przy modelowaniu hierarchii danych i przy relacjach typu rodzic-dziecko. W przypadku relacji wiele do wielu, potrzebna jest trzecia tabela, która pośredniczy między dwoma głównymi tabelami, przechowując ich klucze obce. Umożliwia to powiązanie wielu rekordów z obu stron. Typowe błędy polegają na niepoprawnym wyborze typu relacji, co prowadzi do redundancji danych i problemów z integralnością. Zrozumienie i prawidłowe zastosowanie tych koncepcji jest kluczowe dla projektowania efektywnych i skalowalnych baz danych, wspierając jednocześnie złożone operacje i analizy. Wybór niewłaściwego typu relacji może prowadzić do trudności w zarządzaniu danymi i skomplikowanych zapytań, co jest znanym wyzwaniem w zarządzaniu bazami danych.

Pytanie 16

W CSS wartości underline, overline, blink są przypisane do atrybutu

A. text-decoration
B. text-style
C. font-style
D. font-weight
Właściwość CSS 'text-decoration' to coś, co naprawdę może zmienić wygląd tekstu na stronach internetowych. Dzięki niej możemy dodać różne efekty dekoracyjne, jak podkreślenie, przekreślenie, czy nadkreślenie. Zdarzają się też nowinki, jak efekt 'blink', chociaż nie jest on zbyt popularny w profesjonalnym kodzie. Warto pamiętać, że stosowanie tej właściwości poprawia czytelność i estetykę tekstu. Na przykład, gdy chcemy wyróżnić ważne informacje, możemy użyć 'text-decoration: underline;'. Ciekawostka: niektóre efekty, jak 'blink', mogą sprawić problemy z dostępnością, więc lepiej ich unikać. Właściwe użycie 'text-decoration' w połączeniu z odpowiednimi znacznikami HTML, jak lub , może naprawdę poprawić interaktywność naszej strony. Dobrze jest o tym pamiętać, gdy pracujemy nad projektami.

Pytanie 17

Który program komputerowy zamienia kod źródłowy, stworzony w danym języku programowania, na język zrozumiały dla komputera?

A. Edytor kodu źródłowego
B. Kompilator
C. Debugger
D. Środowisko programistyczne
Debugger, edytor kodu źródłowego oraz środowisko programistyczne to narzędzia, które pełnią różne funkcje w procesie tworzenia oprogramowania, ale nie są odpowiedzialne za przekształcanie kodu źródłowego na język maszynowy. Debugger to narzędzie, które umożliwia programistom analizowanie i poprawianie błędów w kodzie, pozwalając na zatrzymywanie wykonania programu w określonych punktach, aby sprawdzić wartości zmiennych i stan aplikacji. Choć jest to istotny element procesu programowania, nie zajmuje się kompilacją kodu. Edytor kodu źródłowego służy do pisania i edytowania kodu, jednak nie dokonuje konwersji na język maszynowy; przykładem edytora może być Visual Studio Code czy Sublime Text, które umożliwiają programistom wygodne pisanie kodu, ale same w sobie nie kompilują ani nie interpretują kodu. Środowisko programistyczne (IDE) to zintegrowane środowisko, które łączy edytor kodu, debugger oraz kompilator w jednym narzędziu, co ułatwia proces tworzenia oprogramowania. Mimo że IDE może zawierać kompilator, to jako całość nie jest odpowiedzialne za sam proces kompilacji, lecz raczej za organizację całego procesu programistycznego. Dlatego wszystkie wymienione narzędzia są istotne, ale żadne z nich nie pełni roli kompilatora.

Pytanie 18

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

A. display
B. list-style-type
C. text-transform
D. position
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 19

Dokument HTML określa akapit oraz grafikę. Aby grafika była umieszczona przez przeglądarkę w tej samej linii co akapit po jego lewej stronie, w stylu CSS grafiki należy ustawić właściwość

A. style:left;
B. align:left;
C. float:left;
D. alt:left;
Właściwość CSS 'float:left;' jest kluczowa dla umieszczania elementów w linii obok siebie. Umożliwia ona 'wypływanie' elementu, jakim jest obrazek, w lewo, co skutkuje tym, że tekst w akapicie będzie go otaczał od prawej strony. Jest to szczególnie przydatne w projektowaniu responsywnych układów stron internetowych, gdzie zachowanie porządku w rozmieszczeniu elementów jest istotne zarówno na desktopach, jak i urządzeniach mobilnych. Przykładowo, jeśli mamy akapit z opisem produktu, który chcemy wizualnie wzbogacić odpowiednim zdjęciem z jego lewej strony, zastosowanie 'float:left;' w stylach CSS sprawi, że tekst będzie płynnie dostosowywał się do rozmiaru obrazka. Zgodnie z dobrymi praktykami, warto również pamiętać o zastosowaniu 'clear:both;' w przypadku elementów, które mają pojawić się poniżej zaganianych elementów, aby uniknąć problemów z układem. Dodatkowo, warto zadbać o odpowiednie wymiary obrazka oraz użycie atrybutu 'alt' w tagu, aby poprawić dostępność strony oraz jej SEO.

Pytanie 20

Uprawnienia obiektowe przyznawane użytkownikom serwera bazy danych mogą umożliwiać lub ograniczać

A. zmieniać role i konta użytkowników
B. przechodzić uprawnienia
C. realizować operacje na bazie, takie jak wstawianie lub modyfikowanie danych
D. wykonywać polecenia, takie jak tworzenie kopii zapasowej
Uprawnienia obiektowe w kontekście baz danych pozwalają na kontrolowanie dostępu do różnych zasobów, takich jak tabele, widoki czy procedury składowane. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie czy modyfikowanie danych, jest prawidłowa, ponieważ uprawnienia te bezpośrednio wpływają na możliwości użytkownika w zakresie manipulacji danymi. Przykładowo, jeśli użytkownik posiada uprawnienie do INSERT, może dodawać nowe rekordy do tabeli, natomiast uprawnienie UPDATE pozwala na zmianę istniejących danych. Takie zarządzanie uprawnieniami jest kluczowe w kontekście bezpieczeństwa danych oraz zapewnienia integralności systemu, ponieważ pozwala na ograniczenie dostępu tylko do tych operacji, które są niezbędne dla danego użytkownika. W praktyce administratorzy baz danych stosują zasady minimalnych uprawnień, przyznając użytkownikom tylko te uprawnienia, które są niezbędne do wykonywania ich pracy, co jest zgodne z najlepszymi praktykami w zakresie zarządzania bezpieczeństwem baz danych.

Pytanie 21

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. trim()
B. replace()
C. concat()
D. slice()
Metoda slice() w języku JavaScript jest kluczowym narzędziem do wydobywania fragmentów ciągów tekstowych. Umożliwia wyodrębnienie podciągu na podstawie określonych indeksów początkowego i końcowego. Przykładowo, jeśli mamy napis 'JavaScript' i chcemy uzyskać 'Script', możemy użyć slice(4, 10). Indeks początkowy jest wliczany, a końcowy jest wykluczany, co zapewnia elastyczność w manipulacji ciągami. Metoda slice() nie modyfikuje oryginalnego ciągu, co jest zgodne z zasadą immutability w funkcjonalnym programowaniu, zwiększając bezpieczeństwo danych. Metoda ta obsługuje również ujemne indeksy, co pozwala na łatwe wyodrębnianie fragmentów z końca napisu. Warto pamiętać, że slice() jest preferowana, gdyż jest bardziej czytelna i intuicyjna w porównaniu z innymi metodami do manipulacji tekstem, jak substr() czy substring().

Pytanie 22

W języku HTML, aby osiągnąć efekt pogrubienia, kursywy lub zapisu w górnym indeksie, należy wpisać kod:

A. pogrubiony pochylony lub w górnym indeksie
B. pogrubionypochylony lub w górnym indeksie
C. pogrubionypochylony lub w górnym indeksie
D. pogrubiony pochylony lub wgórnym indeksie
Wybrane odpowiedzi zdają się sugerować nieprawidłowe zastosowanie tagów HTML, co może prowadzić do nieodpowiedniego formatowania tekstu. W pierwszym przypadku tag został użyty do pogrubienia tekstu, co jest błędne, ponieważ powinien być używany do wyświetlania tekstu w kursywie. Pogrubienie powinno być realizowane wyłącznie za pomocą tagu . Z kolei w trzecim przykładzie, połączenie tagów i w jednym elemencie może prowadzić do nieczytelności i zamieszania, ponieważ nie jest jasne, jaki efekt został zamierzony. Takie praktyki są sprzeczne z zasadami semantyki HTML, która kładzie nacisk na logiczne i poprawne użycie tagów w celu zachowania czytelności oraz SEO. Tag w odpowiedziach jest poprawnie użyty, jednak zastosowanie go w kontekście górnego indeksu jest błędne; tu powinien być użyty . Warto zwrócić uwagę, że stosowanie niewłaściwych tagów HTML prowadzi do złego renderowania strony przez przeglądarki i może ograniczać dostępność treści dla użytkowników z ograniczeniami, co jest niezgodne z najlepszymi praktykami projektowania stron internetowych. W związku z tym, ważne jest, aby zrozumieć funkcje każdego tagu i stosować je odpowiednio, by poprawić zarówno estetykę, jak i funkcjonalność strony.

Pytanie 23

W bazie danych MySQL przy tworzeniu tabeli zdefiniowano kolumnę id. Opcja AUTO_INCREMENT wskazuje, że ```id int NOT NULL AUTO_INCREMENT```

A. wartości tej kolumny będą automatycznie tworzone w trakcie dodawania nowego rekordu do bazy
B. kolumna id będzie mogła przyjmować wartości: NULL, 1, 2, 3, 4 i tak dalej
C. możliwe jest wprowadzenie rekordu z dowolną wartością dla kolumny id
D. wartość kolumny id zostanie automatycznie przypisana przez system i będzie to przypadkowo wygenerowana liczba całkowita
Odpowiedź jest poprawna, ponieważ w MySQL, gdy pole jest zdefiniowane jako AUTO_INCREMENT, oznacza to, że wartości tego pola będą automatycznie generowane przez system podczas dodawania nowych rekordów. Mechanizm ten jest szczególnie przydatny w przypadku identyfikatorów, ponieważ zapewnia unikalne wartości bez konieczności ręcznego ich przypisywania. Na przykład, jeśli do tabeli dodamy nowy rekord, a ostatni zarejestrowany identyfikator wynosił 5, to nowy rekord będzie miał pole 'id' ustawione na 6. Dzięki temu proces dodawania rekordów jest znacznie uproszczony i zautomatyzowany. Warto zauważyć, że pole AUTO_INCREMENT zwykle powinno być zdefiniowane jako klucz główny (PRIMARY KEY), co dodatkowo zapewnia unikalność wpisów oraz ich szybkie wyszukiwanie. W kontekście standardów branżowych, korzystanie z AUTO_INCREMENT to praktyka, która zwiększa efektywność operacji na bazach danych, zwłaszcza w aplikacjach o dużym obciążeniu, gdzie wiele rekordów jest dodawanych jednocześnie.

Pytanie 24

W języku PHPnie ma możliwości

A. obróbka informacji przechowywanych w bazie danych
B. tworzenie dynamicznej zawartości strony internetowej
C. przetwarzanie danych z formularzy
D. zmienianie dynamiczne treści strony HTML w przeglądarce
Odpowiedź dotycząca zmieniania dynamicznej zawartości strony HTML w przeglądarce jest poprawna, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP nie jest w stanie bezpośrednio modyfikować zawartości strony HTML po jej załadowaniu w przeglądarce użytkownika. Zamiast tego, PHP generuje HTML, który następnie jest przesyłany do przeglądarki. Dynamiczna zawartość strony może być generowana na podstawie danych z bazy danych lub formularzy, ale wszelkie zmiany w HTML po stronie klienta wymagają użycia języków, które działają po stronie przeglądarki, takich jak JavaScript. Przykładem może być sytuacja, w której użytkownik wypełnia formularz, a dane są przetwarzane przez PHP, które zwraca zaktualizowaną stronę. W przypadku potrzeby dynamicznych zmian, JavaScript może być użyty do manipulacji DOM po załadowaniu strony. Warto również zauważyć, że zgodnie z dobrymi praktykami, powinno się oddzielać logikę serwerową (PHP) od logiki klienckiej (JavaScript), co przyczynia się do lepszej struktury kodu i ułatwia jego utrzymanie.

Pytanie 25

Jaki jest efekt działania programu w JavaScript?

var osoba = prompt("Podaj imię", "Adam");

A. otwarcie okna z polem do edycji, w którym znajduje się domyślny tekst "Adam"
B. uzyskanie z formularza wyświetlonego na stronie HTML imienia "Adam"
C. przypisanie do zmiennej osoba wartości "Adam"
D. pojawi się okno z pustym polem do edycji
Funkcja prompt w JavaScript jest używana do wyświetlania okna dialogowego z polem edycyjnym pozwalającym użytkownikowi na wprowadzenie danych. W tym przypadku funkcja prompt przyjmuje dwa argumenty: pierwszy to komunikat wyświetlany użytkownikowi, a drugi to domyślna wartość w polu tekstowym. Kod var osoba = prompt('Podaj imię' 'Adam') otwiera okno dialogowe z tekstem Podaj imię i domyślnie wpisanym w polu tekstowym imieniem Adam. Domyślna wartość jest przydatna w sytuacjach gdzie chcemy zasugerować użytkownikowi pewne dane które mogą być dla niego odpowiednie lub często używane. Jest to wygodne rozwiązanie w aplikacjach internetowych pozwalające na szybkie i intuicyjne wprowadzanie danych przez użytkownika. Zastosowanie prompt jest przykładem interakcji między użytkownikiem a stroną internetową co jest kluczowym elementem dynamicznych aplikacji webowych. Ważne jest jednak by pamiętać że funkcja prompt może być blokowana w niektórych przeglądarkach dlatego jej użycie powinno być dobrze przemyślane i ewentualnie zastąpione bardziej nowoczesnymi rozwiązaniami takimi jak formularze HTML z odpowiednimi atrybutami i stylizacjami.

Pytanie 26

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();

A. zmienna x będzie przechowywać wynik działania metody nazwa
B. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
C. nazwa jest cechą obiektu przedmiot
D. nazwa jest atrybutem klasy przedmiot
Zapis przedmiot.nazwa() w języku JavaScript oznacza wywołanie metody nazwa na obiekcie przedmiot. Częstym błędem jest mylenie metody z polem klasy czy właściwością obiektu. Pole klasy odnosi się do zmiennej zdefiniowanej na poziomie klasy która przechowuje dane związane z instancjami tej klasy. Metody natomiast są funkcjami które wykonują operacje na danych obiektu. Jeśli chodzi o zmienną przechowującą wynik działania funkcji przedmiot nie jest to poprawna interpretacja ponieważ przedmiot w tym przypadku jest obiektem na którym działa metoda nazwa a nie funkcją. Kolejny błąd to mylenie wywołania metody z przypisaniem wartości właściwości obiektu. Właściwości to atrybuty które przechowują stany obiektu natomiast metody określają jego zachowanie i umożliwiają wykonywanie czynności. Często podczas nauki JavaScript błędnie interpretujemy składnię kropki jako odnoszącą się tylko do właściwości zamiast dostrzegać że może ona również oznaczać wywołanie metod. Dobra praktyka polega na jasnym rozróżnieniu pomiędzy metodami a właściwościami co zwiększa czytelność i niezawodność kodu ułatwiając jego późniejszą konserwację i rozwój przez zespoły programistyczne

Pytanie 27

Obiektem w bazie danych, który wykorzystywany jest do podsumowywania, prezentacji oraz drukowania danych, jest

A. raport
B. zapytanie
C. zestawienie
D. formularz
Raport jest obiektem baz danych, który służy do podsumowywania, wyświetlania oraz wydruków danych. Jego główną funkcją jest agregacja i prezentacja informacji w sposób przystępny dla użytkownika. Raporty mogą być wykorzystywane do analizy danych, prezentacji wyników oraz podejmowania decyzji biznesowych. Przykładem zastosowania raportu może być generowanie miesięcznego raportu sprzedaży, który zawiera szczegółowe informacje o przychodach, kosztach oraz zyskach w danym okresie. Z perspektywy dobrych praktyk, raporty powinny być projektowane w taki sposób, aby były czytelne i zrozumiałe, a ich struktura powinna być zgodna z wymaganiami użytkowników. W kontekście standardów, raporty mogą być również generowane automatycznie przy użyciu narzędzi business intelligence, co pozwala na zwiększenie efektywności i dokładności analiz. Dobrze zdefiniowane raporty przyczyniają się do lepszego zrozumienia zbiorów danych oraz wspierają procesy decyzyjne w organizacji.

Pytanie 28

Określ rezultat działania podanego kodu PHP, przy założeniu, że zmienna tab jest tablicą. ```$tab = explode(",", "jelenie,sarny,dziki,lisy,borsuki"); echo $tab[1]." ".$tab[2];```

A. dziki lisy
B. lisy borsuki
C. jelenie sarny
D. sarny dziki
Wybór odpowiedzi 'jelenie sarny' wskazuje na brak zrozumienia podstawowych zasad przydzielania indeksów w tablicach w PHP. Elementy tablicy są indeksowane od zera, co oznacza, że $tab[0] odpowiada pierwszemu elementowi, którym jest 'jelenie', a $tab[1] to 'sarny'. Stąd wynika, że kombinacja 'jelenie sarny' nie jest wynikiem wykonania podanego kodu. Podobnie, wybór 'lisy borsuki' także jest błędny, ponieważ $tab[3] to 'lisy', a $tab[4] to 'borsuki', co nie znajduje się w kontekście użycia echo. W przypadku 'dziki lisy', nie uwzględnia on odpowiednich indeksów, ponieważ $tab[2] to 'dziki', a $tab[3] to 'lisy', a więc również nie odpowiada wynikowi zwróconemu przez kod. Takie pomyłki mogą wynikać z nieuwagi lub braku zrozumienia struktury tablic oraz ich indeksowania. Kluczowe jest, aby programista zdawał sobie sprawę, jak funkcje PHP manipulują danymi oraz jak poprawnie odwoływać się do elementów tablicy, co jest fundamentalne dla efektywnego programowania i unikania błędów w aplikacjach.

Pytanie 29

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";

A. mysqli_query($zapytanie)
B. mysqli_fetch_array($zapytanie)
C. mysqli_num_fields($zapytanie)
D. mysqli_free_result($zapytanie)
Funkcja mysqli_fetch_array($zapytanie) jest używana do pobierania wyników zapytania SQL w formie tablicy asocjacyjnej lub indeksowanej. W kontekście podanego kodu, po wykonaniu zapytania SELECT do bazy danych, wyniki są zwracane jako zasób, który musi być przetworzony. Mysqli_fetch_array pozwala na iteracyjne przetwarzanie każdego wiersza z zestawu wyników, co umożliwia dostęp do poszczególnych wartości pól za pomocą indeksów lub kluczy. Jest to przydatne w sytuacjach, gdzie dane muszą być wyświetlane lub przetwarzane w pętli, jak w przykładowym kodzie. Tablica zwracana przez mysqli_fetch_array może zawierać pola zarówno z indeksami numerycznymi, jak i nazwami kolumn, co daje elastyczność w dostępie do danych. Zgodnie z dobrymi praktykami programistycznymi, zawsze należy sprawdzić, czy zapytanie zostało wykonane poprawnie, zanim zacznie się przetwarzać jego wyniki, oraz zwolnić pamięć po zakończeniu przetwarzania wyników. Stosowanie odpowiednich mechanizmów obsługi błędów i zabezpieczeń, takich jak przygotowane zapytania, jest również kluczowe dla bezpieczeństwa aplikacji.

Pytanie 30

Jakiego zdarzenia należy użyć, aby funkcja JavaScript była uruchamiana za każdym razem, gdy użytkownik wprowadzi jakikolwiek znak w polu edycji?

A. onload
B. onkeydown
C. onclick
D. onmouseout
Odpowiedź 'onkeydown' jest poprawna, ponieważ to zdarzenie jest wywoływane za każdym razem, gdy użytkownik naciśnie klawisz na klawiaturze, a zatem idealnie nadaje się do sytuacji, gdy chcemy reagować na wprowadzanie tekstu w polu edycji. W praktyce oznacza to, że nasza funkcja może być użyta do natychmiastowego przetwarzania danych wprowadzanych przez użytkownika, co jest szczególnie istotne w przypadku dynamicznych interfejsów użytkownika. Na przykład, możemy wykorzystać 'onkeydown' do implementacji funkcji autouzupełniania, gdzie na bieżąco prezentujemy możliwe opcje na podstawie wprowadzanego tekstu. Dobrą praktyką jest również umieszczanie dodatkowych warunków, aby nasza funkcja nie była wywoływana dla klawiszy, które nie mają znaczenia dla wprowadzania tekstu, takich jak klawisze funkcyjne czy kombinacje klawiszy. Warto również zrozumieć, że istnieją inne zdarzenia, takie jak 'input', które mogą być użyte w podobnym kontekście, ale 'onkeydown' daje bardziej bezpośrednią kontrolę nad interakcją użytkownika.

Pytanie 31

Aby uniknąć występowania zduplikowanych wierszy w wyniku zapytania, należy zastosować klauzulę

A. LIMIT
B. DISTINCT
C. ORDER BY
D. UNIQUE
Klauzula DISTINCT w języku SQL służy do eliminacji zduplikowanych wierszy w wynikach zapytania. Umożliwia to uzyskanie unikalnych wartości z określonej kolumny lub zestawu kolumn, co jest niezwykle przydatne, gdy chcemy analizować dane, unikając powtórzeń, które mogą zniekształcić wyniki. Na przykład, jeżeli posiadamy tabelę 'Pracownicy' z kolumną 'Miasto', a chcemy otrzymać listę unikalnych miast, w których pracownicy są zatrudnieni, możemy użyć zapytania: SELECT DISTINCT Miasto FROM Pracownicy. Warto zaznaczyć, że stosowanie DISTINCT może wpływać na wydajność zapytania, szczególnie w przypadku dużych zbiorów danych, dlatego należy używać tej klauzuli z rozwagą. Dobrą praktyką jest również łączenie DISTINCT z innymi klauzulami, takimi jak WHERE, aby jeszcze bardziej precyzyjnie określić kryteria wyszukiwania. Używanie DISTINCT pomaga utrzymać integralność danych oraz poprawia jakość analiz, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 32

W HTML, aby ustawić tytuł dokumentu na "Moja strona", który będzie widoczny na karcie przeglądarki internetowej, należy użyć zapisu

A. Moja strona
B.Moja strona
C.
D.
Wszystkie proponowane odpowiedzi zawierają błędy związane z niepoprawnym użyciem znaczników HTML. ZapisMoja stronajest najczęściej spotykaną pomyłką, polegającą na literówce w nazwie znacznika. Prawidłowy znacznik do definiowania tytułu strony w HTML to, a nie <ttle>. Odpowiedź <head>Moja strona</head> również jest niepoprawna, ponieważ znacznik <head> służy do oznaczenia sekcji dokumentu, która zawiera metadane, a tytuł powinien być umieszczony wewnątrz tego znacznika, w odpowiednim znaczniku <title>. Z kolei <meta name="ttle" content="Moja strona" /> to błędne podejście, ponieważ znacznik <meta> wykorzystywany jest do definiowania metadanych, takich jak opisy i słowa kluczowe, ale nie jest to odpowiedni sposób na nadanie tytułu dokumentu. Ostatnia propozycja, <meta ttle="Moja strona">, również nie jest poprawna, ponieważ użycie błędnej nazwy atrybutu oraz braku znacznika <title> sprawia, że przeglądarka nie jest w stanie poprawnie zinterpretować tytułu strony. Często błędy te wynikają z nieznajomości struktury HTML oraz roli poszczególnych znaczników, co podkreśla znaczenie solidnego zrozumienia podstaw języka HTML przed przystąpieniem do tworzenia stron internetowych. Właściwe podejście do strukturyzacji dokumentów HTML nie tylko zapewnia poprawne wyświetlanie strony, ale również wpływa na jej użyteczność oraz dostępność w sieci. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 33</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktory-znacznik-lub-grupa-znacznikow-nie-sa-stosowa-348e96b2" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Który z znaczników lub zespół znaczników nie jest używany do określenia struktury strony w HTML?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>A. <i>, <b>, <u></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. <header>, <footer></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>C. <div></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. <section></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Użycie znaczników <div>, <header>, <footer>, i <section> wskazuje na nieporozumienie dotyczące roli, jaką każdy z tych elementów pełni w strukturze HTML. Znacznik <div> jest uniwersalnym kontenerem, używanym do grupowania innych elementów, co ułatwia stylizację i układ strony. <header> i <footer> są semantycznymi znacznikami, które jasno definiują nagłówki i stopy strony, a ich użycie poprawia dostępność i SEO. Znacznik <section> z kolei służy do dzielenia strony na różne sekcje treści, co jest kluczowe dla strukturalnej organizacji dokumentu. Wprowadzenie zmiany w podejściu do budowy stron internetowych, w oparciu o semantykę, zaczyna być standardem webowym. Konwencje te nie tylko poprawiają czytelność kodu, ale także wpływają na jego interpretację przez różne technologie asystujące, takie jak czytniki ekranu. Zastosowanie znaczników semantycznych ułatwia zrozumienie treści przez przeglądarki i roboty wyszukiwarek, co może mieć kluczowe znaczenie dla widoczności strony w wynikach wyszukiwania. Typowe błędy, takie jak mylenie roli znaczników wizualnych z semantycznymi, prowadzą do nieefektywnego zarządzania treścią oraz wpływają na doświadczenia użytkowników, którzy korzystają z technologii wspomagających. Dlatego tak istotne jest zrozumienie i stosowanie właściwych znaczników w odpowiednich kontekstach. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 34</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="jakiego-znacznika-nalezy-uzyc-aby-przejsc-do-kole-fd10203c" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jakiego elementu musisz użyć, aby rozpocząć nową linię tekstu bez tworzenia akapitu na stronie internetowej?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>A. <p></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>B. <br></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. </br></span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. </b></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Znaczniki </br> i </b> są niepoprawne w kontekście wprowadzenia przerwy w tekstach bez tworzenia nowego akapitu. Znak </br> jest błędny, ponieważ nie występuje w standardowym HTML – znacznik <br> jest samodzielny i nie wymaga zamknięcia. Kolejne, </b> służy do pogrubiania tekstu, a nie do wprowadzania przerw. Użycie <b> zamiast <br> może prowadzić do nieporozumień w interpretacji kodu przez przeglądarki, które oczekują zamknięcia tagu, co może skutkować błędnym renderowaniem strony. Tag <p> z kolei, choć poprawny, definiuje nowy akapit i dodaje przestrzeń przed i po nim, co jest niezgodne z celem pytania. Powszechny błąd wynika z niewłaściwego zrozumienia funkcji poszczególnych tagów HTML. Kluczowe jest, aby twórcy stron internetowych byli dobrze zorientowani w semantyce HTML, aby unikać błędów w formatowaniu oraz zapewnić czytelność i estetykę treści. Niewłaściwe użycie znaczników może prowadzić do problemów z dostępnością oraz wpływać na SEO, co jest niekorzystne w kontekście najlepszych praktyk projektowania stron internetowych. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 35</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="wskaz-poprawna-zasade-dotyczaca-spojnosci-danych-w-1f81e7b7" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Wskaż właściwą zasadę związaną z integralnością danych w bazie danych?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. pole klucza obcego nie może być puste</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. pole klucza podstawowego musi mieć utworzony indeks</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. w relacji 1..n pole klucza obcego łączy się z polem klucza obcego innej tabeli</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. pole klucza podstawowego nie może pozostawać puste</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Pole klucza podstawowego, definiujące unikalność wierszy w tabeli, nie może być puste. Jest to fundamentalna zasada normalizacji baz danych, która zapewnia integralność danych oraz ich jednoznaczność. W praktyce oznacza to, że każda tabela w relacyjnej bazie danych musi mieć przynajmniej jeden klucz podstawowy, który nie dopuszcza do pojawienia się dwóch identycznych rekordów. Na przykład, w bazie danych klientów, numer identyfikacyjny klienta (np. PESEL lub ID) powinien być kluczem podstawowym. Dzięki temu można jednoznacznie identyfikować każdy rekord, co jest kluczowe dla operacji takich jak aktualizacja lub usunięcie danych. Dobrą praktyką jest także zapewnienie, aby klucz podstawowy był prosty w użyciu, zrozumiały dla użytkowników oraz, w miarę możliwości, niemożliwy do zmiany, co zmniejsza ryzyko błędów przy zarządzaniu danymi. Dodatkowo, klucz podstawowy powinien być indeksowany, co przyspiesza operacje wyszukiwania, ale jego podstawową cechą pozostaje unikalność i obowiązek posiadania wartości. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 36</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="najprostsza-i-najmniej-pracochonna-metoda-przete-02f2dda6" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Najłatwiejszym i najmniej czasochłonnym sposobem na przetestowanie działania strony internetowej w różnych przeglądarkach i ich wersjach jest</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. zainstalowanie różnych przeglądarek na kilku komputerach i testowanie strony</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>B. wykorzystanie walidatora kodu HTML</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>C. użycie emulatora przeglądarek internetowych, np. Browser Sandbox</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. sprawdzenie działania strony w programie Internet Explorer, zakładając, że inne przeglądarki będą kompatybilne</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Zainstalowanie na kilku komputerach różnych przeglądarek i testowanie witryny, choć może wydawać się sensowne, wiąże się z wieloma wadami. Po pierwsze, taka metoda jest czasochłonna i wymaga znacznych zasobów, zarówno w zakresie sprzętu, jak i czasu. Każda przeglądarka wymaga aktualizacji, a nowe wersje mogą wprowadzać zmiany, które wpływają na sposób wyświetlania witryny. Dodatkowo, różnorodność systemów operacyjnych i ich wersji, na których mogą działać te przeglądarki, dodatkowo komplikuje proces testowania. W kontekście walidatorów języka HTML, ich zastosowanie jest przede wszystkim ograniczone do sprawdzania poprawności kodu, a nie do testowania rzeczywistego działania witryny w różnych środowiskach. Z perspektywy praktycznej, testowanie w jednej przeglądarce, takiej jak Internet Explorer, z założeniem, że inne przeglądarki będą działać podobnie, jest nierealistyczne. Różne silniki renderujące i interpretujące kod HTML, CSS oraz JavaScript mogą prowadzić do odmiennych wyników. Właściwe przetestowanie witryny wymaga kompleksowego podejścia, które uwzględnia wszystkie możliwe przeglądarki i ich wersje, co czyni emulator najlepszym wyborem. Kluczem do sukcesu w testowaniu jest efektywność, a posłużenie się emulatorami znacząco podnosi jakość i szybkość weryfikacji funkcjonalności witryny. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 37</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ile-razy-nalezy-zapisac-instrukcje-warunkowa-aby-a876eb07" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Ile razy należy użyć instrukcji warunkowej, aby wdrożyć w danym języku programowania przedstawiony algorytm?</p> <figure class="figure mt-3"> <img src="/images/11307.png" class="figure-img img-fluid rounded" alt="Ilustracja do pytania" itemprop="image"> </figure> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. Czterokrotnie</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. Jednokrotnie</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>C. Dwukrotnie</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. Trzykrotnie</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Aby prawidłowo zaimplementować algorytm przedstawiony na diagramie, musisz zrozumieć jego strukturę. Diagram pokazuje dwa punkty decyzyjne, co wskazuje na konieczność użycia dwóch instrukcji warunkowych w kodzie. Każda instrukcja warunkowa odpowiada jednemu z tych punktów decyzyjnych. W praktyce, instrukcje warunkowe są kluczowe w programowaniu, pozwalając na podejmowanie decyzji i wykonywanie różnych działań w zależności od spełnienia określonych warunków. Można to zobrazować za pomocą języków programowania takich jak Python czy C++, gdzie 'if', 'else if' oraz 'else' są standardowymi konstrukcjami używanymi do tego celu. Warto zauważyć, że implementując algorytm, należy również zwrócić uwagę na poprawne użycie bloków kodu zagnieżdżonych w instrukcjach warunkowych, co jest dobrą praktyką programistyczną. Dzięki temu kod jest bardziej czytelny i łatwiejszy w utrzymaniu, co jest zgodne z zasadami czystego kodu i standardami branżowymi. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 38</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktory-zapis-suzy-do-ustawienia-klucza-obcego-w-my-a0f64e70" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Jaki zapis jest używany do definiowania klucza obcego w MySQL?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. PRIMARY KEY(ID)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. AUTO_INCREMENT(ID)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. UNIQUE KEY(ID)</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. FOREIGN KEY(ID)</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Odpowiedź FOREIGN KEY(ID) jest poprawna, ponieważ klucz obcy (foreign key) jest używany w bazach danych do ustanowienia i wymuszenia relacji pomiędzy dwiema tabelami. Klucz obcy w tabeli A wskazuje na klucz podstawowy (primary key) w tabeli B, co pozwala na utrzymanie integralności referencyjnej danych. Na przykład, jeżeli mamy tabelę 'Zamówienia', w której zapisujemy informacje o zamówieniach, i tabelę 'Klienci', w której mamy dane o klientach, możemy zastosować klucz obcy w tabeli 'Zamówienia', aby wskazywał na ID klienta w tabeli 'Klienci'. Dzięki temu, nie będzie możliwości dodania zamówienia dla nieistniejącego klienta, co zapewnia spójność i integralność bazy danych. Używanie kluczy obcych jest zgodne z najlepszymi praktykami projektowania baz danych, ponieważ pozwala na łatwiejsze zarządzanie danymi i ogranicza możliwość wystąpienia błędów. Warto również zauważyć, że klucze obce mogą być używane w kontekście kaskadowej aktualizacji lub usuwania, co dodatkowo ułatwia zarządzanie relacjami między tabelami. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 39</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="zdefiniowanie-klucza-obcego-jest-niezbedne-do-utwo-bb501838" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Ustalenie klucza obcego jest konieczne do skonstruowania</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. relacji 1..1</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>B. klucza podstawowego</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. transakcji</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>D. relacji 1..n</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Klucz obcy jest kluczowym elementem w modelowaniu relacji w bazach danych, szczególnie w kontekście relacji 1..n. Definiuje on powiązania pomiędzy dwiema tabelami, gdzie jedna tabela (tabela główna) może mieć wiele powiązanych rekordów w drugiej tabeli (tabela szczegółowa). Na przykład, w bazie danych dotyczącej studentów i ich zapisów na przedmioty, tabela studentów może mieć klucz obcy odnoszący się do tabeli przedmiotów. Dzięki temu, dla każdego studenta można przechowywać wiele zapisów na różne przedmioty, co jest istotne w kontekście analizy danych. Z perspektywy standardów, takie podejście jest zgodne z zasadami normalizacji, które mają na celu eliminację redundancji danych oraz zapewnienie integralności referencyjnej. Dobre praktyki w projektowaniu baz danych sugerują stosowanie kluczy obcych do zarządzania relacjami pomiędzy danymi, co ułatwia ich późniejsze przetwarzanie i analizy. </div> </div> </article> <hr class="my-4"> <article class="mb-4"> <!-- Pytanie --> <div class="mb-3"> <div class="d-flex justify-content-between align-items-start mb-3"> <h6 class="mb-0">Pytanie 40</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="do-zabezpieczen-serwera-bazy-danych-przed-atakami-ddbb36ea" aria-label="Zgłoś błąd"> <i class="fas fa-exclamation-triangle"></i> </button> </div> </div> <!-- Wyświetl pełną treść pytania dla widocznych pytań --> <p>Czego nie należy robić, aby zabezpieczyć serwer bazy danych przed atakami hakerów?</p> </div> <!-- Odpowiedzi --> <div class="mb-3"> <!-- Wyświetl odpowiedzi dla widocznych pytań --> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>A. używanie skomplikowanych haseł do bazy.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>B. defragmentacja dysków.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>C. aktywacja zapory.</span> </div> </div> </div> <div class="mb-3"> <div class="d-flex align-items-start p-2 rounded border border-1 border-secondary "> <div class="flex-grow-1"> <span>D. blokowanie portów związanych z bazą danych.</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Defragmentacja dysków nie jest bezpośrednio związana z zabezpieczaniem serwera bazy danych przed atakami hakerskimi. Choć defragmentacja może poprawić wydajność systemu plików poprzez uporządkowanie fragmentów plików na dysku, nie ma wpływu na kwestie bezpieczeństwa. Przykłady skutecznych działań w zakresie zabezpieczeń obejmują włączenie zapory, co stanowi pierwszą linię obrony, blokowanie portów, które mogą być wykorzystywane przez potencjalnych intruzów, oraz stosowanie złożonych haseł, co minimalizuje ryzyko nieautoryzowanego dostępu. W kontekście zarządzania bezpieczeństwem baz danych, kluczowe jest przestrzeganie najlepszych praktyk, takich jak regularne aktualizacje oprogramowania, monitorowanie logów dostępu oraz stosowanie zasad minimalnych uprawnień. Właściwe zabezpieczenia powinny być wdrażane zgodnie z wytycznymi standardów takich jak ISO/IEC 27001. </div> </div> </article> <!-- Przyciski nawigacyjne --> <div class="d-grid gap-2 mt-4"> <div class="d-inline-block mb-2"> <a href="/egzamin/?profession=technik-informatyk&qualification=inf-03" class="btn btn-outline-primary"> <i class="fas fa-redo me-2"></i>Rozpocznij nowy egzamin </a> </div> <div class="d-inline-block"> <a href="/" class="btn btn-outline-secondary"> <i class="fas fa-home me-2"></i>Powrót do strony głównej </a> </div> </div> </div> </div> </div> </main> <!-- Footer --> <footer class="footer mt-auto py-4"> <div class="container"> <div class="row"> <!-- About Section --> <div class="col-lg-4 footer-section"> <h2 class="h5">O Egzaminach Zawodowych</h2> <p> Portal z kompleksową bazą pytań egzaminacyjnych dla uczniów szkół technicznych. Przygotuj się do egzaminu zawodowego z naszymi materiałami. </p> </div> <!-- Popular Qualifications --> <div class="col-lg-4 footer-section"> <h2 class="h5">Losowe kwalifikacje</h2> <div class="row"> <div class="col-6"> <a href="/technik-hotelarstwa/HGT.06/" class="footer-link"> <span>HGT.06</span> <small class="text-muted">(1 409)</small> </a> </div> <div class="col-6"> <a href="/technik-elektryk/ELE.05/" class="footer-link"> <span>ELE.05</span> <small class="text-muted">(455)</small> </a> </div> <div class="col-6"> <a href="/technik-realizacji-nagran/AUD.09/" class="footer-link"> <span>AUD.09</span> <small class="text-muted">(456)</small> </a> </div> <div class="col-6"> <a href="/technik-organizacji-turystyki/HGT.08/" class="footer-link"> <span>HGT.08</span> <small class="text-muted">(316)</small> </a> </div> <div class="col-6"> <a href="/technik-mechanizacji-rolnictwa-i-agrotroniki/ROL.02/" class="footer-link"> <span>ROL.02</span> <small class="text-muted">(805)</small> </a> </div> <div class="col-6"> <a href="/technik-turystyki-na-obszarach-wiejskich/HGT.10/" class="footer-link"> <span>HGT.10</span> <small class="text-muted">(535)</small> </a> </div> <div class="col-6"> <a href="/technik-geodeta/BUD.18/" class="footer-link"> <span>BUD.18</span> <small class="text-muted">(326)</small> </a> </div> <div class="col-6"> <a href="/technik-realizacji-naglosnien/AUD.07/" class="footer-link"> <span>AUD.07</span> <small class="text-muted">(121)</small> </a> </div> <div class="col-6"> <a href="/technik-renowacji-elementow-architektury/BUD.23/" class="footer-link"> <span>BUD.23</span> <small class="text-muted">(211)</small> </a> </div> <div class="col-6"> <a href="/technik-pojazdow-samochodowych/MOT.05/" class="footer-link"> <span>MOT.05</span> <small class="text-muted">(858)</small> </a> </div> </div> </div> <!-- Additional Info --> <div class="col-lg-4 footer-section"> <h2 class="h5">O portalu</h2> <p> Baza pytań do egzaminów zawodowych dla uczniów szkół technicznych i branżowych. Materiały zgodne z wymaganiami CKE. </p> </div> </div> <!-- Copyright & Links --> <hr class="footer-divider"> <div class="row align-items-center"> <div class="col-md-8 text-center text-md-start"> <p class="mb-0">© 2025 <a href="https://brylka.net" class="footer-link" aria-label="brylka.net">brylka.net</a> | <a href="/about-me/" class="footer-link" aria-label="O mnie i zawodowe.edu.pl">Bartosz Bryniarski</a></p> </div> <div class="col-md-4 text-center text-md-end"> <!-- <a href="/sitemap.xml" class="footer-link" aria-label="Mapa strony"> <i class="fas fa-sitemap" aria-hidden="true"></i> <span>Mapa strony</span> </a> --> </div> </div> </div> </footer> <!-- Back to top button --> <button id="backToTop" class="btn btn-outline-primary back-to-top" aria-label="Przewiń do góry strony" style="display: none;"> <i class="fas fa-arrow-up" aria-hidden="true"></i> </button> <!-- Cookie Banner --> <div id="cookieConsent" class="position-fixed start-0 bottom-0 py-3 shadow rounded-end" style="display: none; z-index: 1050; max-width: 50%; background-color: rgba(248, 249, 250, 0.95);"> <div class="container-fluid px-4"> <div class="d-flex flex-column gap-2"> <div> <i class="fas fa-cookie-bite me-2 text-secondary" aria-hidden="true"></i> <span class="small"> Strona wykorzystuje pliki cookies do poprawy doświadczenia użytkownika oraz analizy ruchu. <a href="#" class="footer-link" id="cookieDetails" data-bs-toggle="modal" data-bs-target="#cookieModal"> Szczegóły </a> </span> </div> <div class="d-flex gap-2 justify-content-end"> <button id="cookieAccept" class="btn btn-outline-primary btn-sm">Akceptuję</button> <button id="cookieReject" class="btn btn-outline-secondary btn-sm">Odrzuć</button> </div> </div> </div> </div> <!-- Modal z informacjami o cookies --> <div class="modal fade" id="cookieModal" tabindex="-1" aria-labelledby="cookieModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <h2 class="modal-title fs-5" id="cookieModalLabel">Polityka plików cookies</h2> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zamknij"></button> </div> <div class="modal-body"> <h6 class="fw-bold">Czym są pliki cookies?</h6> <p> Cookies to małe pliki tekstowe, które są zapisywane na urządzeniu użytkownika podczas przeglądania stron internetowych. Służą one do zapamiętywania preferencji, śledzenia zachowań użytkowników oraz poprawy funkcjonalności serwisu. </p> <h6 class="fw-bold mt-4">Jakie cookies wykorzystujemy?</h6> <ul class="list-unstyled ps-3"> <li><i class="fas fa-check-circle text-success me-2"></i><strong>Niezbędne cookies</strong> - konieczne do prawidłowego działania strony</li> <li><i class="fas fa-check-circle text-success me-2"></i><strong>Funkcjonalne cookies</strong> - umożliwiające zapamiętanie wybranych ustawień (np. wybrany motyw)</li> <li><i class="fas fa-check-circle text-success me-2"></i><strong>Analityczne cookies</strong> - pozwalające zbierać informacje o sposobie korzystania ze strony</li> </ul> <h6 class="fw-bold mt-4">Jak długo przechowujemy cookies?</h6> <p> Pliki cookies wykorzystywane w naszym serwisie mogą być sesyjne (usuwane po zamknięciu przeglądarki) lub stałe (pozostają na urządzeniu przez określony czas). </p> <h6 class="fw-bold mt-4">Jak zarządzać cookies?</h6> <p> Możesz zarządzać ustawieniami plików cookies w swojej przeglądarce internetowej. Większość przeglądarek domyślnie dopuszcza przechowywanie plików cookies, ale możliwe jest również całkowite zablokowanie tych plików lub usunięcie wybranych z nich. </p> </div> <div class="modal-footer"> <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Zamknij</button> <button type="button" class="btn btn-outline-primary" id="acceptCookiesModal">Akceptuję wszystkie</button> </div> </div> </div> </div> <!-- JavaScript --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" defer></script> <script src="/static/exams/js/code.js" defer></script> <script src="/static/exams/js/report_modal.js" defer></script> <script> document.addEventListener('DOMContentLoaded', function() { // Dodaj obsługę motywów dla banera cookie function updateCookieBannerTheme() { const cookieBanner = document.getElementById('cookieConsent'); const currentTheme = document.body.getAttribute('data-theme'); if (!cookieBanner) return; // Ustaw domyślny jasny styl cookieBanner.style.backgroundColor = 'rgba(248, 249, 250, 0.95)'; cookieBanner.style.color = '#212529'; cookieBanner.classList.remove('border-top', 'border-white'); // Zastosuj style zgodnie z motywem if (currentTheme === 'dark') { cookieBanner.style.backgroundColor = 'rgba(52, 58, 64, 0.95)'; cookieBanner.style.color = '#fff'; } else if (currentTheme === 'high-contrast') { cookieBanner.style.backgroundColor = '#000'; cookieBanner.style.color = '#fff'; cookieBanner.classList.add('border-top', 'border-white'); } } // Sprawdź, czy użytkownik już dokonał wyboru if (!localStorage.getItem('cookieConsent')) { // Jeśli nie, pokaż banner const cookieBanner = document.getElementById('cookieConsent'); if (cookieBanner) { cookieBanner.style.display = 'block'; updateCookieBannerTheme(); // Dostosuj szerokość na małych ekranach function adjustWidth() { if (window.innerWidth < 768) { cookieBanner.style.maxWidth = '100%'; } else { cookieBanner.style.maxWidth = '50%'; } } // Wywołaj przy ładowaniu i przy zmianie rozmiaru okna adjustWidth(); window.addEventListener('resize', adjustWidth); } } // Obsługa zmiany motywu const themeButtons = document.querySelectorAll('.theme-btn'); themeButtons.forEach(btn => { btn.addEventListener('click', function() { setTimeout(updateCookieBannerTheme, 50); }); }); // Obsługa przycisku akceptacji document.getElementById('cookieAccept')?.addEventListener('click', function() { localStorage.setItem('cookieConsent', 'accepted'); document.getElementById('cookieConsent').style.display = 'none'; }); // Obsługa przycisku odrzucenia document.getElementById('cookieReject')?.addEventListener('click', function() { localStorage.setItem('cookieConsent', 'rejected'); document.getElementById('cookieConsent').style.display = 'none'; }); // Obsługa przycisku akceptacji w modalu document.getElementById('acceptCookiesModal')?.addEventListener('click', function() { localStorage.setItem('cookieConsent', 'accepted'); document.getElementById('cookieConsent').style.display = 'none'; // Zamknij modal var cookieModal = bootstrap.Modal.getInstance(document.getElementById('cookieModal')); cookieModal?.hide(); }); }); </script> <!-- Toast messages initialization --> <script> document.addEventListener('DOMContentLoaded', function() { const copyButton = document.getElementById('copy-link-button'); if (copyButton) { copyButton.addEventListener('click', function() { const input = document.getElementById('share-link-input'); input.select(); document.execCommand('copy'); // Zmień tekst przycisku na potwierdzenie const originalText = this.innerHTML; this.innerHTML = '<i class="fas fa-check me-1"></i> Skopiowano!'; // Przywróć oryginalny tekst po 2 sekundach setTimeout(() => { this.innerHTML = originalText; }, 2000); }); } }); </script> </body> </html>