Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 7 stycznia 2025 11:15
  • Data zakończenia: 7 stycznia 2025 12:08

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Metainformacja "Description" umieszczona w pliku HTML powinna zawierać

Ilustracja do pytania
A. informację na temat autora strony
B. spisy kluczowe, które są wykorzystywane przez wyszukiwarki internetowe
C. opis treści znajdującej się na stronie
D. nazwę aplikacji, za pomocą której stworzono stronę
Metainformacja Description nie jest odpowiednia do przechowywania nazwy programu użytego do stworzenia strony internetowej Taka informacja nie jest istotna z punktu widzenia użytkowników odwiedzających stronę czy też algorytmów wyszukiwania które analizują treść strony pod kątem jej użyteczności oraz zgodności z zapytaniami użytkowników Opisanie kluczowych informacji na stronie jest bardziej użyteczne ponieważ pozwala użytkownikom i wyszukiwarkom zrozumieć jej zawartość Wyszukiwarki analizują treść strony w tym opisy aby lepiej dopasować je do zapytań użytkowników Podczas gdy słowa kluczowe odgrywają rolę w SEO nie powinny być zamieszczane w metainformacji Description w formie listy ale raczej harmonijnie wplecione w naturalnie brzmiący tekst Opis strony ma za zadanie przyciągnąć uwagę i zachęcić do kliknięcia dlatego powinien być skonstruowany w sposób precyzyjnie oddający zawartość strony co jest zgodne z najlepszymi praktykami SEO i doświadczeniem użytkownika Ostatecznie informacje o autorze strony mogą być umieszczane w innych miejscach takich jak stopka strony lub w metainformacji Author ale nie są głównym przeznaczeniem metatagu Description Rozumienie tych zasad pomaga w skutecznym projektowaniu stron internetowych zgodnych z oczekiwaniami użytkowników i standardami branżowymi

Pytanie 2

W języku HTML w celu określenia słów kluczowych dla danej strony, należy zastosować następujący zapis

A.
B.
C.
D.
Poprawna odpowiedź to, ponieważ jest to zgodne z aktualnymi standardami HTML i poprawną składnią. Elementjest używany do dostarczania metadanych, które nie są wyświetlane bezpośrednio na stronie, ale mają kluczowe znaczenie dla wyszukiwarek internetowych i innych aplikacji. Atrybut 'name' definiuje typ metadanych, a 'content' zawiera konkretne informacje, w tym przypadku słowa kluczowe, które mają być używane przez wyszukiwarki do indeksowania strony. Przykład zastosowania tego elementu w kodzie HTML wyglądałby następująco:. Warto zauważyć, że chociaż atrybut 'keywords' nie jest już tak istotny jak kiedyś ze względu na zmiany w algorytmach wyszukiwarek, to jego poprawne zdefiniowanie wciąż pokazuje dbałość o standardy HTML. Dobrą praktyką jest aktualizowanie i dostosowywanie metadanych do aktualnych trendów SEO, co może zwiększyć widoczność strony w wynikach wyszukiwania.

Pytanie 3

Jaki rezultat uzyskamy po uruchomieniu załączonego skryptu?

<?php
class Owoc {
  function __construct() {     echo "test1";     }
  function __destruct() {     echo "test2";     }
}
$gruszka = new Owoc();
?>

A. Pojawi się tylko komunikat "test1"
B. Na ekranie pojawią się oba komunikaty: "test1" oraz "test2"
C. Pojawi się jedynie komunikat "test2"
D. Nie zostanie wyświetlony żaden komunikat
Skrypt w PHP definiuje klasę Owoc z dwoma metodami specjalnymi __construct() i __destruct(). Metoda __construct() jest automatycznie wywoływana podczas tworzenia instancji klasy. W tym wypadku, w momencie utworzenia obiektu $gruszka, zostanie wykonana metoda __construct(), która wyświetli napis test1. Następnie, gdy skrypt kończy działanie lub obiekt jest usuwany z pamięci, wywoływana jest metoda __destruct(). W tym przypadku, po zakończeniu skryptu, wywołana zostanie metoda __destruct(), która wyświetli napis test2. Metody konstruktorów i destruktorów są podstawą zarządzania cyklem życia obiektu w PHP, pozwalając na inicjalizację ustawień, jak również zwalnianie zasobów. Użycie ich jest kluczowe w projektowaniu obiektowo-zorientowanym, gdzie każda klasa może definiować własne sposoby obsługi zasobów. Praktyka ta wspiera modularność i utrzymanie kodu, co jest standardem w profesjonalnym programowaniu.

Pytanie 4

Aby obraz umieszczony na stronie www automatycznie dostosowywał się do rozmiaru ekranu, na którym strona jest wyświetlana, należy

A. nie zmieniać obu jego wymiarów przy użyciu stylów CSS
B. ustawić jeden z jego wymiarów w pikselach
C. ustawić oba jego wymiaru w pikselach
D. ustawić jego szerokość w wartościach procentowych
Ustalenie szerokości obrazu w procentach jest kluczowym krokiem w responsywnym projektowaniu stron internetowych. Pozwala to na automatyczne dopasowanie szerokości obrazu do szerokości kontenera, w którym się znajduje, co jest istotne w przypadku różnych rozmiarów ekranów, od komputerów stacjonarnych po urządzenia mobilne. Kiedy szerokość obrazu jest zadana w procentach, np. 'width: 100%;', obraz będzie zajmował 100% szerokości swojego rodzica, co umożliwia rozciąganie lub zmniejszanie obrazu w zależności od dostępnej przestrzeni. Jest to zgodne z zasadami responsywnego web designu (RWD), które zakładają elastyczność i dostosowanie UI do różnych warunków wyświetlania. Dodatkowo, stosowanie jednostek procentowych jest praktyką zalecaną przez W3C w kontekście utrzymania proporcji i jakości obrazu na różnych urządzeniach. Warto również dodać, że w przypadku używania CSS warto określić maksymalną szerokość obrazu (max-width), aby uniknąć nadmiernego rozciągania na dużych ekranach.

Pytanie 5

Źródłem danych dla raportu może być

A. inny raport
B. makropolecenie
C. zapytanie INSERT INTO
D. tabela
Inny raport, chociaż może zawierać dane, nie jest źródłem danych w sensie strukturalnym, lecz raczej wynikiem przetwarzania informacji zawartych w tabelach. Raporty są generowane na podstawie danych zgromadzonych w tabelach, a nie bezpośrednio z innych raportów, co ogranicza ich użyteczność jako źródła danych. Makropolecenie, będące zbiorem instrukcji do automatyzacji procesów, również nie stanowi źródła danych, lecz narzędzie do przetwarzania lub manipulacji danymi, które znajdują się w tabelach. Użycie makropolecenia może prowadzić do generowania raportów, jednak sama jego struktura nie zawiera danych, które mają być raportowane. Zapytanie INSERT INTO jest instrukcją SQL używaną do dodawania danych do tabeli, ale nie jest źródłem danych w kontekście raportowania. To polecenie umożliwia wprowadzenie nowych rekordów do tabeli, a więc odgrywa rolę w aktualizacji danych, a nie w ich źródłowym dostarczaniu. Każda z tych opcji nie spełnia wymogu bycia źródłem danych w kontekście tworzenia raportu, co czyni je niewłaściwymi odpowiedziami.

Pytanie 6

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. AVG
B. COUNT
C. NUMBER
D. SUM
Wybór funkcji SUM, AVG czy NUMBER nie jest najlepszy, jeśli chodzi o zliczanie rekordów. Funkcja SUM sumuje wartości w kolumnach, a nie zlicza rekordy. Na przykład, zapytanie SELECT SUM(wartość) FROM zamówienia pokaże nam całkowitą wartość zamówień, ale nie powie, ile ich było. Funkcja AVG natomiast oblicza średnią, więc też nie nadaje się do liczenia rekordów. Używając zapytania SELECT AVG(wiek) FROM pracownicy dostaniemy średni wiek, ale nie wiedząc, ile mamy pracowników. Co do NUMBER, to w SQL nie jest nawet standardową funkcją, więc może być tu jakieś nieporozumienie. Często mylimy te funkcje i to prowadzi do złych analiz. Zrozumienie, jakie są różnice między nimi, to klucz do robienia dobrych analiz danych. Dlatego warto zwracać na to uwagę.

Pytanie 7

W hurtowni utworzono tabelę sprzedaż, która zawiera pola: id, kontrahent, grupa_cenowa oraz obrot. Jakie polecenie należy wykorzystać, aby znaleźć tylko kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł?

A. SELECT sprzedaz FROM kontrahent WHERE obrot>4000
B. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 OR obrot>4000
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000
D. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa=2 AND obrot>4000
Aby skutecznie wyszukać kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000 zł, należy zastosować odpowiednie zapytanie SQL. W tym przypadku, kluczowe jest zrozumienie użycia klauzul WHERE, które filtrują wyniki na podstawie określonych warunków. Poprawne zapytanie to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa=2 AND obrot>4000;'. W tym zapytaniu wybieramy kolumnę kontrahent z tabeli sprzedaz, filtrując wyniki na podstawie dwóch warunków: przynależności do drugiej grupy cenowej oraz obrotu większego niż 4000 zł. Operator AND jest istotny, ponieważ oba warunki muszą być spełnione, aby dany rekord został zwrócony. Takie podejście jest zgodne z zasadami normalizacji baz danych, co pozwala na zachowanie integralności danych i efektywność zapytań. Przykładem może być sytuacja, w której w tabeli znajdują się kontrahenci o różnych grupach cenowych i obrotach; zastosowanie powyższego zapytania pozwoli nam na wyselekcjonowanie tylko tych kontrahentów, którzy spełniają oba kryteria, co jest niezwykle przydatne w analizie sprzedaży i podejmowaniu decyzji biznesowych.

Pytanie 8

Aby uzyskać dane z tabeli pracownicy dotyczące jedynie osób, które ukończyły 26 lat, należy zastosować zapytanie

A. SELECT * FROM pracownicy WHERE wiek > 25
B. SELECT * FROM wiek WHERE pracownicy > 25
C. SELECT * FROM pracownicy AND wiek > 25
D. SELECT * FROM pracownicy OR wiek > 25
Aby wyświetlić rekordy z tabeli pracownicy, które dotyczą pracowników powyżej 26 roku życia, należy zastosować odpowiednie zapytanie SQL. Poprawne zapytanie to 'SELECT * FROM pracownicy WHERE wiek > 25;'. W tym przypadku, klauzula WHERE filtruje wyniki, zapewniając, że tylko ci pracownicy, którzy mają więcej niż 25 lat, zostaną zwróceni. Warto zauważyć, że w SQL operator '>' oznacza, że zwracane będą tylko rekordy, dla których warunek jest spełniony. Ponadto, wybranie wszystkich kolumn poprzez SELECT * jest powszechną praktyką, gdyż pozwala na uzyskanie pełnych informacji o pracownikach, bez konieczności wskazywania poszczególnych kolumn. Jest to zgodne z zasadami użycia SQL, gdzie operacje na danych są wykonywane poprzez polecenia definiujące wybrane tabele i warunki. Przykład zastosowania tego zapytania może być użyty w aplikacjach biznesowych, gdzie analiza wieku pracowników jest niezbędna do podejmowania decyzji kadrowych, a także w raportach dotyczących zatrudnienia. Takie zapytanie jest fundamentalne dla zarządzania danymi w relacyjnych bazach danych.

Pytanie 9

Jakim poleceniem można uzyskać konfigurację serwera PHP, w tym dane takie jak: wersja PHP, system operacyjny serwera oraz wartości przedefiniowanych zmiennych?

A. print_r(ini_get_all());
B. phpcredits();
C. phpinfo();
D. echo phpversion();
Funkcja phpinfo() jest standardowym narzędziem w PHP, które dostarcza szczegółowych informacji o konfiguracji serwera oraz wersji PHP, która jest aktualnie używana. Wywołanie tej funkcji generuje stronę HTML z informacjami o ustawieniach PHP, w tym o zainstalowanych rozszerzeniach, włączonych opcjach oraz wartości przedefiniowanych zmiennych. Dodatkowo, phpinfo() prezentuje szczegóły dotyczące środowiska serwera, takie jak system operacyjny, serwer WWW oraz zmienne środowiskowe. Praktycznie, jest to niezwykle przydatne narzędzie dla programistów oraz administratorów serwerów, które umożliwia szybkie zdiagnozowanie problemów z konfiguracją czy identyfikację, które rozszerzenia PHP są dostępne. W kontekście bezpieczeństwa najlepiej jest używać tej funkcji tylko w środowisku developerskim lub lokalnym, aby uniknąć wycieku szczegółowych informacji o serwerze na produkcji. Zgodnie z najlepszymi praktykami, po zakończeniu diagnostyki, powinno się dezaktywować dostęp do tego typu informacji.

Pytanie 10

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 11

Wskaż PRAWIDŁOWE stwierdzenie dotyczące polecenia: CREATE TABLE IF NOT EXISTS ADRES(ulica VARCHAR(70) CHARACTER SET utf8);

A. Do tabeli nie można wprowadzać ulic, które zawierają w nazwie polskie znaki
B. Rekordem tabeli nie może być 3 MAJA
C. IF NOT EXISTS jest stosowane opcjonalnie, aby upewnić się, że tabela nie istnieje już w bazie danych
D. Klauzula CHARACTER SET utf8 jest wymagana
W kontekście analizy innych stwierdzeń, warto zauważyć, że nie jest prawdą, iż do tabeli nie można wprowadzać ulic zawierających w nazwie polskie znaki. Typ danych 'VARCHAR' w MySQL z użyciem zestawu znaków 'utf8' pozwala na przechowywanie wielu różnych znaków, w tym polskich. Użycie 'CHARACTER SET utf8' jest zalecane, aby zapewnić, że dane tekstowe będą poprawnie przechowywane i wyświetlane, jednak nie oznacza to, że ogranicza to możliwość użycia takich znaków w nazwach ulic. Klauzula 'CHARACTER SET' nie jest obowiązkowa. Jeśli zostanie pominięta, MySQL użyje domyślnego zestawu znaków dla danej bazy danych, co może być wystarczające w wielu przypadkach. W odniesieniu do stwierdzenia o rekordzie '3 MAJA', tabela może zawierać dowolne wartości, w tym daty, o ile spełniają wymagania typu danych. Zrozumienie tych koncepcji jest istotne, ponieważ niepotrzebne ograniczenia mogą prowadzić do błędów w implementacji oraz zaniżenia elastyczności aplikacji bazodanowych. Typowe błędy myślowe związane z tymi stwierdzeniami często wynikają z braku znajomości specyfikacji MySQL i zasad działania systemów zarządzania bazami danych.

Pytanie 12

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT ROWNUM() FROM Koty
B. SELECT COUNT(Koty) AS ROWNUM
C. SELECT COUNT(*) FROM Koty
D. SELECT COUNT(ROWNUM) FROM Koty
W przypadku niepoprawnych odpowiedzi zauważamy różne nieporozumienia dotyczące zliczania wierszy w tabelach. Pierwsza z błędnych odpowiedzi, 'SELECT COUNT(ROWNUM) FROM Koty', opiera się na nieprawidłowym zrozumieniu pojęcia ROWNUM w SQL. ROWNUM jest pseudokolumną, która numeruje wiersze w wynikach zapytania, ale nie jest odpowiednia do zliczania wszystkich wierszy w tabeli, ponieważ nie zwraca poprawnego wyniku w kontekście zliczania. To prowadzi do błędnych interpretacji oraz nieefektywnych zapytań. Dalej, odpowiedź 'SELECT COUNT(Koty) AS ROWNUM' w ogóle nie zrozumiała zasady działania funkcji COUNT. W tym przypadku, próbując użyć tabeli jako argumentu, nie uzyskujemy żadnego sensownego rezultatu, ponieważ COUNT powinien operować na kolumnie, a nie na samej tabeli. Ostatnia odpowiedź, 'SELECT ROWNUM() FROM Koty', jest również błędna, ponieważ ROWNUM nie jest funkcją, co skutkuje błędem składniowym. Warto zrozumieć, że na wczesnych etapach nauki SQL, błędne interpretacje i użycie funkcji mogą prowadzić do niezgodnych z oczekiwaniami wyników. Zrozumienie, jak działają funkcje agregujące i pseudokolumny, jest kluczowe dla efektywnego tworzenia zapytań i przeprowadzania analiz w bazach danych. Prawidłowe podejście do zliczania wierszy jest podstawą w pracy z danymi i fundamentalnym elementem w każdej aplikacji bazodanowej.

Pytanie 13

Jakie polecenie należy zastosować, aby wysłać dane przy pomocy funkcji mysqli_query() w skrypcie PHP, który dodaje informacje z formularza umieszczonego na stronie internetowej do bazy danych?

A. INSERT INTO
B. ALTER
C. UPDATE
D. SELECT
Wybór innych opcji związany jest z nieporozumieniami co do funkcji kwerend SQL. ALTER jest stosowany do modyfikacji struktury istniejącej tabeli, co nie ma zastosowania w kontekście wstawiania danych. Użycie tej komendy sugeruje chęć zmiany kolumn, ich typów czy nazw, a nie dodawania nowych rekordów. UPDATE służy do aktualizacji istniejących danych w tabelach, co również nie jest związane z dodawaniem nowych wartości. Użytkownicy często mylą operacje aktualizacji z wstawieniem nowych danych, co może prowadzić do błędnych implementacji. SELECT to zapytanie używane do pobierania danych z bazy, a nie do ich wstawiania. Stosowanie SELECT w kontekście wstawiania danych może prowadzić do nieporozumień, zwłaszcza gdy użytkownicy próbują zrozumieć, jak działa interakcja z bazą danych. Typowe błędy myślowe to mylenie operacji na danych z operacjami na strukturze bazy, co może być szczególnie problematyczne w przypadku pracy z większymi aplikacjami, w których zarządzanie danymi jest kluczowe dla ich funkcjonowania. Aby skutecznie zarządzać danymi w bazach, kluczowe jest zrozumienie różnic między tymi operacjami oraz ich właściwe zastosowanie.

Pytanie 14

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 rekordów.
B. ulicy i miasta z pierwszego zwróconego rekordu.
C. ulicy i miasta ze wszystkich zwróconych rekordów.
D. miasta i kodu pocztowego z pierwszego zwróconego rekordu.
Niestety, wybrałeś niepoprawną odpowiedź. W twoim fragmencie kodu PHP, wykonujesz zapytanie SQL, które wybiera kolumny 'ulica', 'miasto', 'kod pocztowy' z tabeli 'adresy'. Następnie używasz funkcji mysqli_fetch_row(), która pobiera pierwszy zwrócony rekord jako indeksowaną tablicę. Funkcja echo wyświetla drugi i trzeci element tej tablicy (indeksy 1 i 2), które odpowiadają kolumnom 'miasto' i 'kod pocztowy'. Niepoprawne odpowiedzi sugerują, że twój kod wypisze 'ulicę i miasto' lub 'miasto i kod pocztowy' ze wszystkich zwróconych rekordów, co jest nieprawdą. Niezrozumienie, jak funkcje PHP działają z MySQL i jaki jest ich wynik, może prowadzić do poważnych błędów w kodzie. Wskazane jest dokładne zrozumienie, jakie dane są zwracane przez SQL i jak je przetwarzać w PHP.

Pytanie 15

Gdzie są rejestrowane błędy interpretacji kodu PHP?

A. w logu, jeśli zostanie ustawiony odpowiedni parametr w pliku php.ini
B. nigdzie, są pomijane przez przeglądarkę oraz interpreter kodu PHP
C. w podglądzie zdarzeń systemu Windows
D. w oknie edytora, w którym pisany jest kod PHP
Błędy interpretacji kodu PHP są zapisywane w logach, które można aktywować poprzez ustawienie odpowiednich parametrów w pliku konfiguracyjnym php.ini. Wartości takiego parametru jak 'log_errors' muszą być ustawione na 'On', aby zapisywanie błędów było możliwe. Dodatkowo, należy określić lokalizację pliku logów za pomocą parametru 'error_log'. Dzięki temu, gdy wystąpią błędy, będą one rejestrowane w wyznaczonym pliku, co jest kluczowe dla późniejszej diagnostyki i debugowania aplikacji. Na przykład, programista, który rozwija aplikację internetową, może analizować te logi, aby zidentyfikować błędy w kodzie, co pozwala na szybsze wprowadzenie poprawek. Zgodnie z dobrymi praktykami w branży, logowanie błędów jest niezbędne, aby utrzymać wysoką jakość kodu i zapewnić jego niezawodność. Właściwe konfigurowanie logów jest szczególnie ważne w środowiskach produkcyjnych, gdzie błędy mogą wpływać na doświadczenia użytkowników.

Pytanie 16

Poniżej przedstawiono fragment kodu języka HTML. Jest on definicją listy:

<ol>
  <li>punkt 1</li>    <li>punkt 2</li>
  <ul>
    <li>podpunkt1</li>
    <ul>    <li>podpunkt2</li>  <li>podpunkt3</li>  </ul>
  </ul>
  <li>punkt3</li>
</ol>

A.

  1. punkt 1
  2. punkt 2
    • podpunkt1
    • podpunkt2
    • podpunkt3
  3. punkt3

B.

  1. punkt 1
  2. punkt 2
  3. punkt3
    • podpunkt1
    • podpunkt2
    • podpunkt3

C.

  1. punkt 1
  2. punkt 2
    • podpunkt1
      • podpunkt2
      • podpunkt3
  3. punkt3

D.

  • punkt 1
  • punkt 2
    1. podpunkt1
      • podpunkt2
      • podpunkt3
  • punkt3

A. D.
B. A.
C. C.
D. B.
Gratulacje, poprawnie zinterpretowałeś fragment kodu HTML przedstawiający definicję listy. W tym kodzie widzimy listę numerowaną (
    ), która zawiera trzy elementy listy (
  1. ). Szczególnością prezentowanej struktury jest fakt, że drugi element listy zawiera zagnieżdżoną listę nieuporządkowaną (
      ) z trzema podpunktami. Zgodność odpowiedzi C z przedstawionym kodem wynika z faktu, że punkt 2 prezentuje podpunkty oznaczone kropkami, co jest charakterystyczne dla listy nieuporządkowanej. Tego typu struktura jest często stosowana na stronach internetowych do prezentacji hierarchii informacji, na przykład menu nawigacyjnego czy spisu treści. Pamiętaj, że umiejętność czytania i zrozumienia kodu HTML jest kluczowa dla każdego, kto planuje pracować z technologiami webowymi i to pytanie to doskonały przykład na to, jak te umiejętności mogą być sprawdzane.

Pytanie 17

Aby cofnąć uprawnienia dostępu do serwera MySQL, należy wykorzystać polecenie

A. GRANT
B. REVOKE
C. DELETE
D. USAGE
Aby odebrać prawa dostępu do serwera MySQL, używa się polecenia REVOKE. To polecenie jest kluczowe w zarządzaniu uprawnieniami użytkowników w systemie zarządzania bazą danych MySQL. REVOKE pozwala na usunięcie wcześniej przydzielonych praw dostępu do określonych zasobów, takich jak tabele, bazy danych lub inne obiekty. Przykładowo, aby odebrać prawo SELECT dla użytkownika 'janek' na tabeli 'produkty', należy użyć komendy: REVOKE SELECT ON produkty FROM 'janek'@'localhost';. Dzięki temu użytkownik 'janek' nie będzie miał możliwości wykonywania zapytań SELECT na tej tabeli. Warto zaznaczyć, że REVOKE działa w oparciu o hierarchię uprawnień, co oznacza, że można je łączyć z innymi poleceniami, aby skutecznie zarządzać dostępem. Zgodnie z dokumentacją MySQL, REVOKE jest integralną częścią systemu autoryzacji, co czyni je niezbędnym dla zapewnienia bezpieczeństwa danych w bazach danych. Użycie REVOKE jest również istotne w kontekście audytów bezpieczeństwa, gdzie konieczne jest zarządzanie dostępem do danych.

Pytanie 18

O obiekcie zdefiniowanym w języku JavaScript można stwierdzić, że zawiera

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: functon() { … }
}

A. trzy metody
B. dwie właściwości oraz jedną metodę
C. dwie metody oraz jedną właściwość
D. trzy właściwości
Odpowiedź, że obiekt w JavaScript ma dwie właściwości i jedną metodę, jest poprawna. Przykład obiektu `obiekt1` zawiera dwie właściwości: `x` i `y`, które są liczbowymi wartościami. Dodatkowo, metoda `wsp` jest poprawnie zdefiniowana jako funkcja, co czyni ją metodą obiektu. W praktyce obiekty w JavaScript służą do grupowania danych i funkcji, co jest przydatne w programowaniu obiektowym. Wprowadzenie do obiektów i ich właściwości oraz metod jest kluczowym elementem zrozumienia, jak JavaScript operuje na danych. Standardowe praktyki zalecają, aby metody były używane do definiowania zachowań obiektów, co jest zgodne z zasadami programowania zorientowanego obiektowo, gdzie obiekt jest zbiorem właściwości i metod, które operują na tych właściwościach. W kontekście dbałości o czystość kodu, warto zwrócić uwagę na stosowanie dobrej nazewnictwa dla metod i właściwości, co zwiększa czytelność i zrozumienie kodu. Przykładowo, jeśli `wsp` miała by reprezentować funkcję obliczającą współrzędne, dobrze by było, aby jej nazwa była bardziej opisowa, na przykład `obliczWspolrzedne`.

Pytanie 19

W systemie baz danych MySQL komenda CREATE USER pozwala na

A. stworzenie nowego użytkownika
B. stworzenie użytkownika oraz przypisanie mu uprawnień do bazy
C. zmianę hasła dla już istniejącego użytkownika
D. zobaczenie danych o aktualnym użytkowniku
Polecenie CREATE USER w bazie danych MySQL jest kluczowym narzędziem do zarządzania użytkownikami w systemie zarządzania bazami danych. Jego podstawowym celem jest utworzenie nowego konta użytkownika, które pozwala na autoryzowany dostęp do różnych zasobów bazy danych. Użycie tego polecenia wiąże się z określeniem nazwy użytkownika oraz hasła, a także opcjonalnymi parametrami, takimi jak host, który określa, z jakiego adresu IP użytkownik może uzyskać dostęp do serwera. Przykładowe polecenie CREATE USER wygląda następująco: CREATE USER 'nazwa_użytkownika'@'host' IDENTIFIED BY 'hasło'; Po utworzeniu użytkownika można przypisać mu odpowiednie uprawnienia za pomocą polecenia GRANT, co pozwala na kontrolowanie, jakie operacje użytkownik może wykonywać na bazie danych. Dobrą praktyką jest regularne przeglądanie i aktualizacja uprawnień użytkowników, aby zapewnić bezpieczeństwo danych. Zgodnie z najlepszymi standardami bezpieczeństwa należy unikać nadawania zbyt szerokich uprawnień, co jest zgodne z zasadą najmniejszych uprawnień (principle of least privilege).

Pytanie 20

Wskaż definicję metody, którą należy wstawić w miejscu kropek, aby na stronie WWW wyświetlił się tekst: Jan Kowalski

<p id="wynik"></p>
<script type="text/javascript">
    var osoba = { nazwisko: "Kowalski", imie: "Jan" };
    …
    document.getElementById("wynik").innerHTML = osoba.dane();
</script>

osoba.dane = function() {
    return this.imie+" "+this.nazwisko;
};                 A.

dane() = function() {
    return this.imie+" "+this.nazwisko;
};                 B.

osoba.dane = function() {
    return imie+" "+nazwisko;
};                 C.

dane() = function {
    this.imie+" "+this.nazwisko;
};                 D.

A. B.
B. A.
C. C.
D. D.
Fajnie, że wybrałeś dobrą odpowiedź! Metoda 'dane' jest powiązana z obiektem 'osoba', co pozwala ci używać słowa kluczowego 'this', żeby odwołać się do 'imię' i 'nazwisko'. To naprawdę ważna zasada w programowaniu obiektowym. 'This' to taki klucz, dzięki któremu możesz wskazać, z którego obiektu korzystasz w danej chwili. W tym przypadku odnosisz się do obiektu 'osoba'. Wyobraź sobie, że tworzysz aplikację i chcesz pokazać informacje o użytkowników, na przykład na stronie profilu. Dzięki metodzie 'dane', która jest częścią obiektu 'osoba', możesz łatwo wyświetlić imię i nazwisko. O to chodzi w programowaniu!

Pytanie 21

Co oznacza jednostka ppi (pixels per inch)?

A. jest parametrem określającym rozdzielczość cyfrowych urządzeń wykonujących pomiary
B.
C. określa rozdzielczości obrazów generowanych przez drukarki i plotery
D. określa rozdzielczość obrazów rastrowych
Ppi, czyli pixels per inch, jest jednostką miary służącą do określania rozdzielczości obrazów rastrowych. W praktyce oznacza to, ile pikseli znajduje się na cal w obrazie. Wysoka wartość ppi wskazuje na dużą gęstość pikseli, co prowadzi do wyższej jakości obrazu, zwłaszcza w kontekście druku. Na przykład, obrazy o rozdzielczości 300 ppi są standardem w profesjonalnym druku fotograficznym, ponieważ zapewniają szczegółowość i ostrość, której oczekują klienci. W kontekście cyfrowym, ppi odgrywa kluczową rolę w określaniu jakości wyświetlania na ekranach komputerów, tabletów i smartfonów. Wartości ppi są również ważne przy projektowaniu grafiki, ponieważ różne media wymagają różnych gęstości pikseli dla optymalnej jakości. Standardy takie jak Adobe RGB czy sRGB mogą mieć różne zalecenia dotyczące ppi, co podkreśla znaczenie tej jednostki w branży kreatywnej.

Pytanie 22

Arkusze stylów w formacie kaskadowym są tworzone w celu

A. ułatwienia formatowania strony
B. połączenia struktury dokumentu strony z odpowiednią formą jej wizualizacji
C. nadpisywania wartości znaczników, które już zostały ustawione na stronie
D. blokowania wszelkich zmian w wartościach znaczników już przypisanych w pliku CSS
Wybór błędnych odpowiedzi może wynikać z nieporozumienia dotyczącego funkcji kaskadowych arkuszy stylów i ich zastosowania w procesie tworzenia stron internetowych. Odpowiedzi sugerujące blokowanie jakichkolwiek zmian w wartościach znaczników w pliku CSS są mylące, ponieważ CSS zaprojektowane jest właśnie po to, aby umożliwiać modyfikacje stylów. Arkusze stylów nie blokują zmian, tylko lepiej organizują i strukturalizują kod, co sprzyja łatwiejszemu wprowadzaniu przyszłych poprawek. Z kolei połączenie struktury dokumentu strony z właściwą formą prezentacji jest bardziej związane z HTML, który odpowiada za strukturę treści strony. CSS natomiast odpowiada głównie za stylizację i nie ma na celu bezpośredniego łączenia tych aspektów, lecz oddzielenie ich. Warto również zauważyć, że nadpisywanie wartości znaczników na stronie to szczególna funkcjonalność CSS, ale nie jest to jej główny cel. Główna idea CSS polega na uproszczeniu procesu formatowania, co podkreśla znaczenie kaskadowości, gdzie reguły mogą być dziedziczone i nadpisywane w sposób przemyślany i kontrolowany. Typowymi błędami myślowymi w tym kontekście są zamiana celów CSS z HTML oraz brak zrozumienia mechanizmów kaskadowości, co prowadzi do nieprawidłowych wniosków na temat roli, jaką CSS odgrywa w projektowaniu stron internetowych.

Pytanie 23

Aby na stronie internetowej umieścić logo z przezroczystym tłem, jaki format powinien być zastosowany?

A. BMP
B. JPG
C. CDR
D. PNG
Wybór formatu JPG (Joint Photographic Experts Group) do prezentacji logo z przezroczystym tłem jest błędny, ponieważ JPG nie obsługuje przezroczystości. Obrazy w tym formacie są kompresowane z utratą danych, co może prowadzić do pogorszenia jakości grafiki, szczególnie w obszarach z delikatnymi szczegółami i przejrzystością. Użytkownicy często myślą, że JPG może być stosowany w każdej sytuacji, jednak jego głównym przeznaczeniem są fotografie, gdzie bogate kolory i detale są kluczowe. Z kolei format CDR (CorelDRAW) jest formatem wektorowym, który nie jest przeznaczony do użytku w sieci bezpośrednio, ponieważ wymaga specjalnego oprogramowania do edycji, co czyni go mniej praktycznym dla stron internetowych. BMP (Bitmap) to format obrazu, który również nie wspiera przezroczystości, a dodatkowo ma dużą objętość plików, co może spowalniać ładowanie strony. Użytkownicy często mylą formaty, co prowadzi do wyborów, które nie tylko zmieniają jakość wizualną, ale także wpływają na wydajność strony internetowej. Dlatego kluczowe jest zrozumienie odpowiednich aplikacji dla różnych formatów graficznych, aby uniknąć typowych pułapek projektowych.

Pytanie 24

Który z poniższych znaczników wchodzi w skład sekcji <head> dokumentu HTML?

A.
B.</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. <img></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-success mb-0"> <title> jest jednym z kluczowych znaczników w sekcji <head> dokumentu HTML. Odpowiada za definiowanie tytułu strony, który jest wyświetlany w pasku tytułu przeglądarki oraz w wynikach wyszukiwania. Tytuł jest istotnym elementem SEO, ponieważ informuje zarówno użytkowników, jak i wyszukiwarki o tematyce strony. Przykład użycia znacznika <title>: <head><title>Moja Strona Internetowa. Należy pamiętać, że tytuł powinien być zwięzły, ale jednocześnie opisowy, zazwyczaj nie powinien przekraczać 60 znaków. W kontekście standardów, HTML5, który jest obecnie najnowszą wersją HTML, wciąż podkreśla znaczenie znacznikajako fundamentalnego dla struktury dokumentu. Odpowiedni tytuł nie tylko poprawia doświadczenia użytkowników, ale również zwiększa widoczność strony w wynikach wyszukiwania, dlatego jego prawidłowe użycie ma kluczowe znaczenie w web designie i marketingu internetowym. </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 25</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-formularzu-dokumentu-php-istnieje-pole-ltinput-a3c90a9c" 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>W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element</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. im z indeksem Janek</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. im z następnym numerem indeksu</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. Janek z następnym numerem indeksu</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. Janek o indeksie im</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Poprawna odpowiedź to "Janek o indeksie im", ponieważ w PHP, gdy formularz jest przesyłany, wartości pól formularza są przekazywane do tablicy globalnej $_POST, gdzie kluczami są nazwy pól, a wartościami są dane wprowadzone przez użytkownika. W przypadku pola <input name="im">, po wprowadzeniu przez użytkownika ciągu "Janek", w tablicy $_POST pojawi się element, w którym klucz to "im", a wartość to "Janek". Zgodnie z dobrymi praktykami programistycznymi, nazwy pól powinny być zrozumiałe i znaczące, co ułatwia późniejsze przetwarzanie danych. Przykładem może być sytuacja, w której tworzymy formularz rejestracyjny; odpowiednie nazewnictwo pól, takich jak "im" dla imienia, poprawia czytelność kodu oraz jego konserwowalność. Warto dodać, że dobrym zwyczajem jest również walidacja danych przed ich przetworzeniem, aby zapewnić bezpieczeństwo aplikacji oraz uniknąć potencjalnych ataków, takich jak SQL Injection. </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 26</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktory-z-obrazow-zosta-sformatowany-za-pomoca-prze-073640ba" 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 poniższych obrazów został sformatowany przy użyciu zaprezentowanego stylu CSS?</p> <figure class="figure mt-3"> <img src="/images/6269.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-2 bg-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>A. A</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. B</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. C</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. D</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Odpowiedź A jest prawidłowa, ponieważ zastosowane style CSS dokładnie odzwierciedlają podany kod. Styl img { padding: 5px; border: 1px solid grey; border-radius: 10px; } oznacza, że obrazek otrzymuje wewnętrzny margines o wartości 5 pikseli, szary, jednopikselowy, ciągły obramowanie oraz zaokrąglenie narożników o promieniu 10 pikseli. Efektem tego jest estetyczny wygląd, który umożliwia lepszą prezentację treści graficznych w projektach webowych. Padding pozwala na uzyskanie równowagi wizualnej, natomiast border-radius zapewnia miękkość krawędzi, co jest często stosowane w nowoczesnym web designie. Praktycznym zastosowaniem takich stylów jest m.in. tworzenie kart wizualnych na stronach internetowych, gdzie estetyka i czytelność są kluczowe. Dobrym przykładem jest stosowanie tych technik w responsywnych projektach, gdzie obrazy muszą dobrze współgrać z różnymi elementami interfejsu użytkownika. CSS umożliwia tworzenie atrakcyjnych wizualnie stron, które przyciągają uwagę i poprawiają interakcję użytkownika z treś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 27</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="kod-javascript-wywoany-zdarzeniem-klikniecia-prz-db9026f7" 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>Kod JavaScript aktywowany przez kliknięcie przycisku ma na celu ```<img id="i1" src="obraz1.gif"> <button onclick="document.getElementById('i1').src='obraz2.gif'"> test</button>```</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. pokazać obraz2.gif obok obraz1.gif</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. zmienić styl obrazu o id i1</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. ukryć obraz2.gif</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. zamienić obraz1.gif na obraz2.gif</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> 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. </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 28</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-css-wartosci-underline-overlineline-t-fc957532" 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>W CSS wartości: underline, overline, line-through oraz blink odnoszą się do właściwości</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-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>A. text-decoration</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. text-align</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. font-decoration</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. font-style</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> W języku CSS właściwość text-decoration służy do definiowania stylów dekoracji tekstu. Wartości takie jak underline (podkreślenie), overline (nadkreślenie), line-through (przekreślenie) oraz blink (miganie) są częścią tej właściwości i umożliwiają programistom kontrolowanie, jak tekst jest prezentowany na stronie internetowej. Wartość underline, na przykład, jest powszechnie używana w linkach, aby wskazać, że są one klikalne. Przykład zastosowania: 'text-decoration: underline;' zastosowany w stylach CSS dla elementu <a> sprawia, że tekst linku jest podkreślony. Overline może być używane do dodawania linii nad tekstem, co może być przydatne w kontekście nagłówków lub wyróżnień. Wartość line-through jest często stosowana w przypadku prezentowania informacji o promocjach, gdzie oryginalna cena jest przekreślona. Wartość blink, choć nie jest już szeroko wspierana, mogła być używana w przeszłości do tworzenia efektu migania tekstu. Wszystkie te dekoracje są zdefiniowane w standardzie CSS, co czyni text-decoration kluczową właściwością w stylizacji tekstu w dokumentach HTML. </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 29</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="ktory-ze-sposobow-wypisania-tekstu-nie-jest-zdefi-c6682e35" 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 poniższych sposobów wyświetlania tekstu nie jest określony w języku JavaScript?</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-success bg-opacity-10 border-success text-success "> <div class="flex-grow-1"> <span>A. Funkcja MessageBox()</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. Właściwość innerHTML</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. Funkcja window.alert()</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. Metoda document.write()</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Funkcja MessageBox() nie istnieje w JavaScript, więc to nie jest dobła odpowiedź, jeśli chodzi o wyświetlanie tekstu. W JavaScript mamy kilka fajnych metod, które można wykorzystać do pokazywania danych na stronie. Na przykład, możesz użyć innerHTML, żeby zmieniać zawartość HTML elementów. Możesz to zrobić tak: document.getElementById('elementId').innerHTML = 'Nowa zawartość';. Inna opcja to window.alert(), która wyświetla okno z komunikatem dla użytkownika, co czasem bywa przydatne. Z kolei, jeśli chcesz coś wypisać na stronie w momencie, gdy się ładuje, to możesz użyć document.write('Hello, World!');, choć to nie jest najlepszy pomysł w nowoczesnym kodowaniu. Warto pamiętać, że wszystkie te metody są częścią ECMAScript i naprawdę często się je stosuje w praktyce programowania. </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 30</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-tabeli-mieszkancy-z-polami-id-imie-nazwisko-u-3421ea78" 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>W tabeli mieszkancy, która zawiera pola id, imie, nazwisko, ulica, numer oraz czynsz (kwota całkowita), należy uzyskać informacje o osobach zamieszkujących ulicę Mickiewicza pod numerami 71, 72, 80, których czynsz nie przekracza 1000 zł. Klauzula WHERE w zapytaniu powinna wyglądać następująco</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. WHERE ulica = 'Mickiewicza' OR numer IN (71, 72, 80) OR czynsz < 1000</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. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) OR czynsz < 1000</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. WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000</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. WHERE ulica = 'Mickiewicza' AND numer > 70 AND numer < 81 OR czynsz < 1000</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Kiedy piszemy zapytanie SQL, klauzula WHERE powinna wyglądać tak: 'WHERE ulica = 'Mickiewicza' AND numer IN (71, 72, 80) AND czynsz < 1000'. Dlaczego to działa? Bo ta klauzula jasno określa, że interesują nas tylko mieszkańcy z ulicy Mickiewicza, mający numery 71, 72 lub 80, i którzy płacą czynsz mniejszy niż 1000 zł. Użycie AND sprawia, że wszystkie te warunki muszą być spełnione naraz, co jest naprawdę ważne. Możemy to sobie wyobrazić w kontekście zarządzania nieruchomościami, gdzie chcemy pokazać tylko wybraną grupę mieszkańców, na przykład do analizy ich sytuacji finansowej. I tak na marginesie – w SQL lepiej unikać OR, gdy chcemy dostąpić do jasno określonych danych, ponieważ może to dać nam za dużo wyników lub takie, których nie chcemy. </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 31</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="aby-zobaczyc-wyniki-dziaania-skryptu-napisanego-d9ffa7f5" 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>Aby uzyskać rezultaty działania skryptu napisanego w języku PHP, który jest częścią strony WWW, musi on być</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. zinterpretowany po stronie klienta</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. skomponowany po stronie klienta</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. skomponowany po stronie serwera</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>D. zinterpretowany po stronie serwera</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Pierwsza niepoprawna odpowiedź sugeruje, że PHP powinno działać po stronie klienta, a to nie ma sensu. PHP to język interpretowany, więc nie trzeba go kompilować do jakiegoś tam kodu maszynowego przed uruchomieniem. Nasze przeglądarki nie ogarniają kodu PHP, tylko chcą dostać gotowy HTML. Druga błędna odpowiedź znowu mówi o kompilacji, ale to nie tak działa. Choć są kompilatory PHP, to standardowo PHP działa na zasadzie interpretacji, a nie kompilacji. Ta interpretacja pozwala na to, żeby treści były generowane dynamicznie. Na koniec, ostatnia z błędnych odpowiedzi twierdzi, że PHP powinno działać po stronie klienta, co też jest totalnie nieprawda. PHP przetwarzany jest na serwerze, a klient dostaje już tylko wynik w HTML, CSS i JavaScript. Nie ma dostępu do źródłowego kodu PHP, bo jest on przerobiony przez serwer zanim trafi do klienta. To zapewnia bezpieczeństwo i wydajność stron, bo serwer ogarnia logikę, a klient tylko wyświetla to, co dostaje. </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 32</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="przedstawiona-funkcja-zapisana-kodem-javascript-ma-4ed73650" 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>Przedstawiona funkcja napisana w kodzie JavaScript ma na celu: <table style="border: 2px solid black; border-collapse: collapse; margin-bottom: 20px;"> <tr> <td style="border: 1px solid black; padding: 10px; font-family: monospace;"> function oblicz(a, n)<br> {<br>     wynik = 1;<br>     for(i = 0; i < n; i++)<br>         wynik *= a;<br>     return (wynik);<br> } </td> </tr> </table></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. wpisać kolejne liczby od a do n</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. zwrócić iloczyn kolejnych liczb od 1 do a</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. zwrócić wynik potęgowania a^n</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>D. wpisać wyniki mnożenia a przez n</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Przedstawiona funkcja nie zwraca iloczynu kolejnych liczb od 1 do a, ponieważ taka operacja wymaga iteracyjnego mnożenia zmiennych w rosnącym ciągu, co oznaczałoby konieczność użycia dwóch zmiennych jako zakresu pętli czy też dodawania kolejnych wartości, a nie prostego mnożenia przez stałą wartość. Odpowiedź mówiąca o wpisywaniu kolejnych liczb od a do n również nie jest poprawna, ponieważ funkcja nie wykorzystuje tablic ani nie przepisuje wartości w ten sposób do żadnej struktury danych. Kod nie zawiera mechanizmu iteracyjnego przydzielania wartości do zmiennej przechowującej liczby. W końcu, funkcja nie wpisuje wyników mnożenia a przez n bezpośrednio, ale realizuje operację arytmetyczną potęgowania poprzez mnożenie wyniku przez a n-krotnie. Takie podejście nie jest równoznaczne ze zwracaniem prostego iloczynu a * n, co oznaczałoby pojedyncze mnożenie dwóch liczb, a nie iteracyjne potęgowanie. Zrozumienie tego odróżnienia jest kluczowe w kontekście poprawnego interpretowania operacji matematycznych w programowaniu, zwłaszcza w kontekście implementacji algorytmów matematycznych i rozwiązywania problemów wymagających dokładnego modelowania operacji arytmetycznych. Pomyłki takie mogą prowadzić do błędnych wyników lub niewłaściwego stosowania kodu w praktycznych zastosowaniach informatycznych. </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="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 bg-success bg-opacity-10 text-success "> <div class="flex-grow-1"> <span>A. 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>B. 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-danger bg-opacity-10 border-danger text-danger "> <div class="flex-grow-1"> <span>C. blokowanie portów związanych z bazą danych.</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. aktywacja zapory.</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Włączenie zapory sieciowej jest istotnym krokiem w zabezpieczaniu serwera bazy danych. Zapora działa jako filtr, który kontroluje ruch przychodzący i wychodzący, blokując potencjalnie szkodliwe połączenia, co jest kluczowe w kontekście ochrony przed atakami DDoS oraz nieautoryzowanym dostępem. Ponadto stosowanie złożonych haseł jest fundamentalnym elementem bezpieczeństwa, jako że proste hasła mogą być łatwo złamane przez ataki typu brute-force. Wdrożenie polityki silnych haseł, które zawierają kombinacje liter, cyfr oraz symboli, znacząco zwiększa poziom ochrony dostępu do bazy danych. Blokowanie portów to kolejna ważna praktyka; poprzez zamykanie portów, które nie są używane przez serwer bazy danych, znacznie ograniczamy możliwości ataków, ponieważ wiele złośliwych działań opiera się na próbie skanowania otwartych portów w celu znalezienia luk w zabezpieczeniach. Zrozumienie tych aspektów jest kluczowe dla wszystkich administratorów baz danych, którzy muszą dbać o integralność i bezpieczeństwo danych. Ignorowanie tych praktyk w imię nieistotnych działań, takich jak defragmentacja, może prowadzić do poważnych naruszeń bezpieczeństwa, co podkreśla znaczenie stosowania znanych i sprawdzonych metod ochrony w środowisku IT. </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="baza-danych-zawiera-tabele-artykuy-z-polami-nazw-641d5f00" 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>Baza danych zawiera tabelę artykuły z kolumnami: nazwa, typ, producent, cena. Aby wypisać wszystkie nazwy artykułów jedynie typu pralka, których cena mieści się w zakresie od 1000 PLN do 1500 PLN, należy użyć zapytania</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. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena FROM 1000 TO 1500</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. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 OR 1500</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. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 AND 1500</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>D. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena BETWEEN 1000 AND 1500</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Błędne odpowiedzi opierają się na nieporozumieniach dotyczących składni SQL oraz logicznych błędach w użyciu operatorów. W pierwszym przypadku, użycie 'cena FROM 1000 TO 1500' jest niepoprawne, ponieważ składnia SQL nie wspiera takiego zapisu. Poprawne podejście wymagałoby użycia operatora 'BETWEEN'. Drugie podejście używa operatora 'OR', co skutkuje zwróceniem artykułów, które są typu 'pralka' lub mają cenę w podanym przedziale, a to jest niezgodne z wymaganiem, które wymaga obu warunków jednocześnie. Trzecia opcja z 'BETWEEN' jest bliska poprawnej, ale przez użycie operatora 'OR' dla ceny również nie spełnia wymagań. Ostatnia odpowiedź, która stosuje 'OR' w kontekście ceny, jest błędna, ponieważ nie można używać 'OR' w ten sposób przy definiowaniu zakresu. Typowe błędy myślowe, które mogą prowadzić do takich nieporozumień, obejmują mylenie operatorów logicznych oraz niewłaściwe rozumienie składni SQL. W rezultacie, kluczowe jest zrozumienie, że do filtrowania danych używamy 'AND' dla warunków, które muszą być spełnione jednocześnie oraz 'BETWEEN' do określenia zakresu 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 35</h6> <div class="d-inline-block"> <button type="button" class="btn btn-sm btn-outline-danger" data-report-question="w-jezyku-html-znacznik-ltstronggt-tekstltst-f60c6ca1" 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>W HTML-u znacznik <strong> tekst </strong> będzie prezentowany przez przeglądarkę w sposób identyczny do znacznika</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. <big>tekst</big></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. <h1>tekst</h1></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. <b>tekst</b></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. <sub>tekst</sub></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Znacznik <strong> w HTML jest używany do oznaczania tekstu, który ma być wyróżniony jako ważny. Jego domyślne stylizowanie w przeglądarkach polega na pogrubieniu tekstu, co jest również funkcją znacznika <b>. Oba znaczniki mają podobne zastosowanie, ale <strong> niesie dodatkowe znaczenie semantyczne, co oznacza, że informuje przeglądarki i maszyny o tym, że dany tekst jest istotny. Przykładem może być użycie <strong> w nagłówkach lub w miejscach, gdzie chcemy zwrócić uwagę na kluczowe informacje, jak np. 'Zamówienie <strong>pilne</strong> musi być dostarczone do jutra.' W kontekście dobrych praktyk zaleca się używanie znaku <strong> zamiast <b>, gdyż wspiera to dostępność i SEO - wyszukiwarki lepiej interpretują semantykę treści, co może wpłynąć na pozycjonowanie strony. Warto również pamiętać, że zgodnie z W3C, semantyka HTML ma kluczowe znaczenie dla strukturyzacji dokumentów oraz ich dostępnoś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="ktory-znacznik-lub-grupa-znacznikow-nie-sa-stoso-688fc120" 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 znacznik lub zestaw znaczników nie jest używany do określenia struktury dokumentu 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 border border-2 bg-success bg-opacity-10 border-success 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-1 border-secondary "> <div class="flex-grow-1"> <span>C. <section></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. <div></span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Te znaczniki, czyli <i>, <b> i <u>, nie są jakby do tworzenia struktury dokumentu HTML, ale bardziej do formatowania tekstu. Zgodnie z nowymi standardami HTML5, są to elementy semantyczne, które wpływają na to, jak coś wygląda, a nie na to, jak jest zorganizowane. Znacznik <i> używamy, jak chcemy coś napisać kursywą, <b>, żeby coś podkreślić, a <u>, żeby coś podkreślić. Często korzysta się z nich w stylach CSS, ale nie nadają one hierarchii ani kontekstu dokumentu. Jak chcesz wyróżnić jakiś tekst w kontekście kodu czy tytułu rozdziału, lepiej skorzystać z bardziej semantycznych znaczników, jak <em> dla podkreślenia znaczenia albo <strong> dla podkreślenia wagi. W czasach, kiedy dostępność i SEO są coraz ważniejsze, używanie semantycznych elementów to klucz do tworzenia lepszych i bardziej przejrzystych stron. </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="znacznik-ins-w-jezyku-html-suzy-do-oznaczenia-a20fd117" 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>Znacznik <ins> w HTML jest używany do wskazywania</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. tekstu, który został usunięty</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. cytowanego fragmentu tekstu</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. tekstu, który został przeformatowany</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>D. tekstu, który został dodany</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-danger mb-0"> Wybierając błędne odpowiedzi, pokazujesz, że coś może być niejasne, jeśli chodzi o znaczniki HTML. Na przykład, myślenie, że <ins> to znacznik do oznaczania cytatów, to pomyłka. Do tego zadania służy <blockquote> albo <q>, które mają swoje własne, zupełnie inne znaczenie. Jeśli wybrałeś opcję mówiącą o oznaczaniu usuniętego tekstu, to też jest błąd, bo do tego mamy znacznik <del>. A użycie <ins> w kontekście zmiany formatu tekstu to jeszcze jedna pomyłka, bo ten znacznik nie mówi nic o formatowaniu. Tak naprawdę, <ins> tylko wskazuje nowe fragmenty tekstu, a nie zmienia ich stylu. Jeżeli nie rozumiesz tych funkcji różnych znaczników HTML, to łatwo można wpaść w pułapkę błędów w kodzie, co później będzie miało wpływ na semantykę stron oraz ich dostępność. Dlatego tak ważne jest, żeby znać różnice między tymi znacznikami i korzystać z nich, jak należy. </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="deklaracja-w-jezyku-javascript-var-xtrue-powodu-3c8fd71d" 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>W języku JavaScript, deklaracja: ```var x=true;``` sprawia, że zmienna x ma typ</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. numeryczny</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. logiczy</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. łańcuch znakó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>D. enumeracyjny</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Zmienna x w JavaScript, która została zadeklarowana jako 'var x=true;', to typ logiczny, czyli boolean. W tym języku mamy dwie możliwe wartości: true (prawda) i false (fałsz). Ten typ jest naprawdę ważny, zwłaszcza gdy mówimy o warunkach w programach, bo to właśnie one są bazą dla programowania strukturalnego i obiektowego. Kiedy piszesz instrukcje if albo pętle, typ logiczny odgrywa kluczową rolę w tym, co się dzieje w programie. Fajnie jest korzystać z zmiennych logicznych, by kontrolować, co się dzieje w kodzie, a także sprawiać, że warunki są czytelniejsze. Ciekawe jest też to, że w JavaScript inne typy, jak liczby czy ciągi znaków, mogą być używane w kontekście wartości prawdziwych i fałszywych. To czyni typ logiczny bardzo elastycznym i wszechstronnym. Im lepiej rozumiesz ten typ, tym lepiej potrafisz tworzyć dynamiczne aplikacje, które dobrze reagują na różne sytuacje. </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="w-jezyku-php-nalezy-zapisac-warunek-ktory-bedzie-5137f4e3" 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>W języku PHP należy stworzyć warunek, który będzie prawdziwy, gdy zmienna $a będzie dowolną liczbą całkowitą mniejszą niż -10 lub gdy zmienna $b będzie jakąkolwiek liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku przyjmuje postać</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. ($a < -10) or (($b > 25) or ($b < 75))</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. ($a < -10) and (($b > 25) or ($b < 75))</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. ($a < -10) or (($b > 25) and ($b < 75))</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. ($a < -10) and (($b > 25) and ($b < 75))</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Wyrażenie logiczne ($a < -10) or (($b > 25) and ($b < 75)) jest poprawne, ponieważ spełnia przedstawione w pytaniu warunki. Wszelka liczba całkowita mniejsza od -10 dla zmiennej $a spełnia pierwszy warunek. Drugi warunek definiuje, że zmienna $b musi należeć do przedziału (25, 75), co oznacza, że $b musi być większe niż 25 i mniejsze niż 75. Użycie operatora 'or' jest kluczowe, ponieważ oznacza, że przynajmniej jedno z warunków musi być prawdziwe, aby całe wyrażenie zwróciło wartość prawda. Takie podejście jest zgodne z zasadami programowania, które preferują jednoznaczne i klarowne definiowanie warunków. Przykład użycia takiego wyrażenia mógłby być w kontekście walidacji danych wejściowych w formularzu, gdzie chcemy sprawdzić, czy użytkownik wprowadza poprawne wartości. Dobre praktyki programistyczne zalecają testowanie każdego warunku oddzielnie oraz czytelne komentowanie kodu, aby późniejsza analiza była łatwiejsza dla innych programistów. </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="dany-jest-fragment-kodu-php-z-zdeklarowana-zmienna-631ce45c" 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>Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?</p> <figure class="figure mt-3"> <img src="/images/6832.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. Anna</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. Tomasz</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. Aleksandra</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. Krzysztof</span> </div> </div> </div> </div> <!-- Feedback --> <div class="mt-3"> <!-- Wyświetl feedback dla widocznych pytań --> <div class="alert alert-success mb-0"> Odpowiedź Krzysztofa jest całkiem trafna, bo w PHP zaczynamy liczenie od zera. Czyli mamy pierwszy element na pozycji 0, drugi na 1, a trzeci na 2. W tym przypadku zmienna imiona to tablica z czterema elementami: 'Anna', 'Tomasz', 'Krzysztof' oraz 'Aleksandra'. Gdy używamy echo $imiona[2], to tak naprawdę sięgamy po trzeci element, czyli 'Krzysztofa'. Zasada indeksowania od zera jest właściwie standardem w wielu językach programowania, jak C, JavaScript czy Python. Dzięki temu PHP staje się bardziej spójne z innymi językami. To pozwala lepiej zarządzać danymi w kodzie, bo każdy element ma swój unikalny indeks. Ważne jest, żeby to zapamiętać, bo dzięki temu można unikać błędów, które wynikają z niewłaściwego dostępu do elementów tablic. No i lepiej wiedzieć, że wykraczający indeks może prowadzić do różnych problemów, więc warto zrozumieć to zagadnienie. </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-programista&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-reklamy/PGF.07/" class="footer-link"> <span>PGF.07</span> <small class="text-muted">(137)</small> </a> </div> <div class="col-6"> <a href="/technik-technologii-zywnosci/SPC.04/" class="footer-link"> <span>SPC.04</span> <small class="text-muted">(293)</small> </a> </div> <div class="col-6"> <a href="/technik-masazysta/MED.10/" class="footer-link"> <span>MED.10</span> <small class="text-muted">(1 445)</small> </a> </div> <div class="col-6"> <a href="/technik-agrobiznesu/ROL.05/" class="footer-link"> <span>ROL.05</span> <small class="text-muted">(622)</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-eksploatacji-portow-i-terminali/SPL.02/" class="footer-link"> <span>SPL.02</span> <small class="text-muted">(525)</small> </a> </div> <div class="col-6"> <a href="/technik-elektronik/ELM.05/" class="footer-link"> <span>ELM.05</span> <small class="text-muted">(232)</small> </a> </div> <div class="col-6"> <a href="/technik-mechanik/MEC.08/" class="footer-link"> <span>MEC.08</span> <small class="text-muted">(96)</small> </a> </div> <div class="col-6"> <a href="/opiekunka-srodowiskowa/SPO.05/" class="footer-link"> <span>SPO.05</span> <small class="text-muted">(791)</small> </a> </div> <div class="col-6"> <a href="/technik-programista/INF.04/" class="footer-link"> <span>INF.04</span> <small class="text-muted">(764)</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>