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: 10 czerwca 2026 14:45
  • Data zakończenia: 10 czerwca 2026 14:59

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

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

Podczas przygotowywania grafiki na stronę internetową konieczne jest wycięcie jedynie określonego fragmentu. Jak nazywa się ta operacja?

A. lustrzane odbicie obrazu.
B. łączenie warstw.
C. zmiana rozmiaru.
D. kadrowanie.
Kadrowanie to proces polegający na wycinaniu fragmentu obrazu w celu skupienia uwagi na określonym elemencie lub poprawienia kompozycji. W kontekście grafiki internetowej, kadrowanie jest kluczowe, aby dostosować zdjęcia do wymagań wizualnych strony, zachowując jednocześnie wysoką jakość obrazu. Przykładowo, jeśli tworzymy stronę dla restauracji, możemy wyciąć fragment zdjęcia dania, aby lepiej zaprezentować jego szczegóły. Dobre praktyki w kadrowaniu obejmują stosowanie zasady trzech, która polega na umiejscowieniu kluczowych elementów obrazu w punktach przecięcia linii podziału. Warto również pamiętać o rozdzielczości i proporcjach, aby uniknąć rozmycia lub zniekształcenia obrazu. Kadrowanie jest często używane w różnych formatach wizualnych, takich jak posty w mediach społecznościowych, banery reklamowe czy galerie zdjęć. W ten sposób, odpowiednie kadrowanie przyczynia się do lepszej prezentacji treści oraz poprawia estetykę i przejrzystość strony internetowej.

Pytanie 2

W trakcie weryfikacji stron internetowych nie analizuje się

A. zgodności z różnymi przeglądarkami
B. źródeł pochodzenia narzędzi edytorskich
C. błędów składniowych w kodzie
D. funkcjonowania linków
W procesie walidacji stron internetowych kluczowym celem jest upewnienie się, że kod HTML, CSS i inne zasoby są zgodne z obowiązującymi standardami W3C (World Wide Web Consortium). Walidacja skutecznie identyfikuje błędy składniowe, które mogą wpływać na renderowanie strony, analizuje działanie linków, a także sprawdza, jak strona zachowuje się w różnych przeglądarkach. Jednak aspekty związane z pochodzeniem narzędzi edytorskich nie są istotnym elementem tego procesu. Narzędzia edytorskie, takie jak edytory tekstowe czy IDE, są jedynie środkiem do tworzenia kodu, a ich źródło nie powinno wpływać na to, czy strona jest poprawnie zaimplementowana. Na przykład, strona może być poprawnie zwalidowana niezależnie od tego, czy została zbudowana w popularnym edytorze, takim jak Visual Studio Code, czy innym mniej znanym narzędziu. Dlatego koncentrowanie się na źródłach narzędzi edytorskich w kontekście walidacji byłoby nieuzasadnione i nieprzydatne.

Pytanie 3

Dostosowanie wyglądu witryny do indywidualnych preferencji użytkownika oraz jego identyfikacja w systemie są możliwe dzięki mechanizmowi

A. formularzy
B. obiektów DOM
C. łączenia z bazą
D. cookie
Odpowiedź dotycząca cookies jest dobra. To ważny element, bo dzięki nim można lepiej dopasować serwis do użytkowników. Cookies to takie małe pliki, które przeglądarka zapisuje na naszym urządzeniu. Pozwalają na zbieranie różnych informacji, jak na przykład co użytkownik lubi, co robi na stronie czy jego dane do logowania. Dzięki temu, gdy wracasz na stronę, serwis może sam dostosować, co widzisz, do tego, co robiłeś wcześniej. Przykłady to zapamiętywanie języka, zawartości koszyka w sklepach online czy automatyczne logowanie. Ważne jest, żeby serwisy informowały użytkowników o cookies i prosiły o zgodę, zwłaszcza w kontekście RODO. Znanie tych zasad jest istotne, jeśli myślisz o pracy w tworzeniu aplikacji webowych, bo to pomaga w lepszym zrozumieniu potrzeb użytkowników.

Pytanie 4

W CSS należy ustawić tło dokumentu na obraz rys.png, który powinien się powtarzać tylko w poziomie. Którą definicję trzeba przypisać selektorowi body?

A. {background-image: url("rys.png"); background-repeat: repeat-x;}
B. {background-image: url("rys.png"); background-repeat: repeat-y;}
C. {background-image: url("rys.png"); background-repeat: round;}
D. {background-image: url("rys.png"); background-repeat: repeat;}
Wybrana odpowiedź {background-image: url("rys.png"); background-repeat: repeat-x;} jest poprawna, ponieważ dokładnie definiuje sposób wyświetlania tła w dokumencie HTML. W języku CSS, właściwość background-image ustala źródło obrazu, który ma być użyty jako tło, a background-repeat kontroluje, jak ten obraz się powtarza. Ustawienie repeat-x sprawia, że obraz będzie powtarzany tylko w poziomie, co oznacza, że ​​będzie się ukazywał wielokrotnie od lewej do prawej, ale nie będzie powtarzany w pionie. Taki sposób wyświetlania tła jest przydatny w wielu kontekstach, na przykład w projektowaniu stron internetowych, gdzie chcemy uzyskać efekt pasów lub linii w poziomie, bez nadmiaru treści w pionie. Szereg dobrych praktyk w CSS wskazuje, że należy dbać o efektywność i estetykę, a odpowiednie powtarzanie tła może znacząco wpłynąć na wizualną atrakcyjność strony. Ponadto, użycie właściwego formatu URL i umiejętne stosowanie obrazów tła może poprawić doświadczenia użytkowników, podczas gdy nieodpowiednie podejście może prowadzić do problemów z wydajnością, szczególnie na urządzeniach mobilnych, gdzie ładowanie zbyt dużych lub nieoptymalnych obrazów może obniżyć responsywność strony.

Pytanie 5

Jak przy użyciu języka PHP można zapisać w ciasteczku wartość z zmiennej dane na okres jednego dnia?

A. setcookie("dane",$dane,time())
B. setcookie("dane",$dane,0)
C. setcookie("dane","dane",0)
D. setcookie("dane",$dane,time()+(3600*24))
W przypadku odpowiedzi, które nie spełniają wymagań dotyczących prawidłowego ustawienia ciasteczka, można zauważyć kilka typowych błędów myślowych. Na przykład odpowiedź setcookie("dane", $dane, 0); ustawia czas wygaśnięcia ciasteczka na 0, co oznacza, że ciasteczko będzie dostępne tylko przez bieżącą sesję, a po zamknięciu przeglądarki zostanie usunięte. To podejście nie spełnia założenia przechowywania danych na jeden dzień. Z kolei odpowiedź setcookie("dane", "dane", 0); również ustawia ciasteczko na czas trwania sesji, a dodatkowo przechowuje w nim literalny tekst "dane" zamiast wartości zmiennej, co może prowadzić do dezorientacji i błędów, jeśli zmienna $dane miała zawierać dynamiczne dane użytkownika. W odpowiedzi setcookie("dane", $dane, time()); brakuje określenia czasu wygaśnięcia, co skutkuje tym, że ciasteczko również wygasa po zamknięciu przeglądarki. Kluczowym błędem jest więc nieustawienie prawidłowego czasu, co jest fundamentalne w kontekście sesji użytkowników w aplikacjach webowych. Ciasteczka są często wykorzystywane do personalizacji doświadczeń użytkownika, a ich prawidłowe ustawienie jest kluczowe dla zachowania danych przez adekwatny czas. Dlatego ważne jest zrozumienie, że odpowiednie zarządzanie ciasteczkami wymaga świadomości dotyczącej czasu wygaśnięcia oraz poprawnego przypisywania wartości.

Pytanie 6

Którą wartość atrybutu name znacznika <meta> wykorzystuje się do kontrolowania obszaru widzialnego na różnych urządzeniach, na których jest wyświetlana strona internetowa?

A. viewport
B. keywords
C. generator
D. description
Poprawnie wskazana została wartość „viewport”. W praktyce właśnie meta name="viewport" służy do kontrolowania tzw. obszaru widzialnego (ang. viewport) na urządzeniach mobilnych i desktopowych. Przeglądarka mobilna domyślnie zakłada szeroką stronę i sztucznie ją pomniejsza, żeby „zmieściła się” na ekranie telefonu. Dopiero meta viewport mówi jej: potraktuj szerokość ekranu urządzenia jako bazową szerokość strony. Najczęściej spotykana, zgodna z dobrymi praktykami konstrukcja to: <meta name="viewport" content="width=device-width, initial-scale=1.0">. Parametr width=device-width ustawia szerokość obszaru widzialnego na szerokość ekranu urządzenia, a initial-scale=1.0 definiuje początkowe powiększenie. Dzięki temu layout responsywny oparty na media queries w CSS działa poprawnie, bez dziwnych przeskalowań i zbyt małej czcionki. W nowoczesnym front-endzie przyjmuje się, że każda strona, która ma być używalna na telefonach, tabletach i laptopach, powinna mieć prawidłowo ustawiony meta viewport. Moim zdaniem to jest absolutna podstawa RWD, zaraz obok poprawnego użycia jednostek względnych (np. %, vw, em) i zaprojektowania siatki w CSS. Warto też pamiętać, żeby nie przesadzać z blokowaniem powiększania (np. user-scalable=no), bo to pogarsza dostępność strony dla osób słabiej widzących i jest uznawane za złą praktykę. Podsumowując: jeśli chcesz mieć stronę, która naprawdę „żyje” na różnych ekranach, meta name="viewport" to obowiązkowy element w sekcji <head>.

Pytanie 7

W kontekście PGP zmienna $_GET jest zmienną

A. zdefiniowaną przez autora strony, wykorzystywaną do przesyłania danych z formularzy przez adres URL
B. zwykłą, stworzoną przez autora strony
C. predefiniowaną, stosowaną do przesyłania informacji do skryptów PHP poprzez adres URL
D. predefiniowaną, służącą do zbierania wartości z formularzy po nagłówkach zapytań HTTP (dane z formularzy nie są widoczne w URL)
Zmienna $_GET w języku PHP jest predefiniowaną superglobalną tablicą, która umożliwia dostęp do danych przesyłanych metodą GET za pomocą adresu URL. Oznacza to, że można przekazywać dane do skryptu PHP poprzez dodanie parametrów do adresu strony, co jest powszechnie stosowane w aplikacjach webowych. Na przykład, w adresie URL 'example.com/page.php?name=John&age=30', zmienna $_GET będzie zawierać tablicę z danymi ['name' => 'John', 'age' => '30']. Dzięki temu programista może łatwo odczytać i wykorzystać te dane w skrypcie, co jest kluczowe dla dynamicznych stron internetowych. Zgodnie z dokumentacją PHP, zmienna $_GET jest jedną z kilku superglobalnych tablic, obok takich jak $_POST, $_SESSION, i $_COOKIE, które ułatwiają zarządzanie danymi użytkownika. Ważne jest, aby pamiętać o zabezpieczeniach, takich jak walidacja i sanitizacja danych wejściowych, aby uniknąć ataków typu SQL Injection czy XSS (Cross-Site Scripting).

Pytanie 8

Aby stworzyć tabelę, należy wykorzystać polecenie

A. CREATE TABLE
B. CREATE DATABASE
C. ALTER TABLE
D. INSERT INTO
Polecenie CREATE TABLE to naprawdę ważna sprawa, jeśli chodzi o budowanie struktury bazy danych w systemach DBMS. Dzięki niemu możemy stworzyć nową tabelę w bazie, nadając jej różne nazwy i typy danych dla kolumn. Na przykład, można użyć takiego zapisu: CREATE TABLE pracownicy (id INT PRIMARY KEY, imie VARCHAR(50), nazwisko VARCHAR(50), data_zatrudnienia DATE); W efekcie mamy tabelę 'pracownicy' z czterema kolumnami, a 'id' to nasz klucz główny. W praktyce, poprawne stworzenie tabeli to podstawa dalszej pracy z danymi, więc warto się postarać, żeby schematy baz danych były dobrze zaprojektowane, w zgodzie z zasadami normalizacji. To zmniejsza zbędne powtarzanie danych i sprawia, że potem łatwiej nimi zarządzać. Pamiętaj, żeby przed użyciem CREATE TABLE dobrze zaplanować strukturę bazy danych, bo to pomoże w wydajności i elastyczności aplikacji. Fajnie jest też dodać różne ograniczenia, jak klucze obce, żeby mieć pewność, że nasze dane są w porządku.

Pytanie 9

Który link jest poprawnie sformułowany?

A. <a src="/www.strona.pl">strona</a>
B. <a href="http::/strona.pl>strona</a>
C. <a href="http://strona.pl">strona</a>
D. <a href=http://strona.pl>strona</a>
Odpowiedź <a href="http://strona.pl">strona</a> jest poprawna, ponieważ używa atrybutu "href" do definiowania odnośnika. Atrybut ten jest standardem w języku HTML i służy do określenia docelowego adresu URL, do którego ma prowadzić link. W przypadku tej odpowiedzi, składnia jest prawidłowa: adres URL jest umieszczony w cudzysłowach, a prefiks HTTP jest poprawny. W praktyce, poprawne użycie atrybutu href jest kluczowe dla zapewnienia, że użytkownicy mogą bezproblemowo nawigować po stronie internetowej. Na przykład, w dokumentacji HTML5, wyraźnie zaznaczone jest, że atrybut href powinien być używany, aby wskazać lokalizację zasobu. W rezultacie, stosując tę poprawną składnię, można uniknąć potencjalnych błędów w działaniu strony oraz poprawić jej dostępność, co jest istotne z punktu widzenia najlepszych praktyk webowych oraz SEO.

Pytanie 10

Które wyrażenie logiczne należy zastosować w języku JavaScript, aby wykonać operacje tylko dla dowolnych liczb ujemnych z przedziału jednostronnie domkniętego <-200, -100)?

A. (liczba >= -200) || (liczba > -100)
B. (liczba >= -200) && (liczba < -100)
C. (liczba <= -200) && (liczba < -100)
D. (liczba -100)
Poprawne wyrażenie to (liczba >= -200) && (liczba < -100), bo dokładnie odwzorowuje zapis matematyczny przedziału jednostronnie domkniętego <-200, -100). W matematyce nawias kwadratowy oznacza, że granica jest włączona do przedziału, a nawias okrągły – że granica jest wyłączona. Czyli chcemy wszystkie liczby większe lub równe -200, ale jednocześnie mniejsze niż -100. W JavaScript przekłada się to właśnie na dwa porównania połączone operatorem logicznym AND, czyli &&. Warunek liczba >= -200 pilnuje dolnej granicy, a liczba < -100 pilnuje górnej, która jest otwarta. Jeśli którakolwiek z tych części będzie fałszywa, całe wyrażenie zwróci false, co jest dokładnie tym, czego oczekujemy przy opisie takiego przedziału. W praktyce taki zapis pojawia się bardzo często, np. przy walidacji danych wejściowych, filtrowaniu wyników, ustawianiu zakresów sliderów w interfejsie użytkownika albo przy sprawdzaniu warunków w grach (np. pozycja x obiektu ma być w jakimś zakresie). Przykład w JS: if (liczba >= -200 && liczba < -100) { // wykonaj kod tylko dla liczb z tego zakresu } Moim zdaniem warto od razu wyrobić sobie nawyk zapisywania zakresów w postaci dwóch prostych porównań połączonych &&, bo to jest czytelne dla innych programistów i zgodne z powszechną praktyką w branży. W wielu językach (nie tylko JavaScript, ale też C, Java, PHP) taki schemat warunków jest standardem. Trzeba też pamiętać, że w JS nie ma osobnego operatora „przedziału”, więc zawsze rozbijamy to właśnie na takie składowe porównania logiczne.

Pytanie 11

Funkcję session_start() w PHP należy zastosować przy realizacji

A. przetwarzania formularza
B. ładowania danych z zewnętrznych plików
C. wielostronicowej strony, która wymaga dostępu do danych podczas przechodzenia pomiędzy stronami
D. jakiejkolwiek strony internetowej, która obsługuje cookies
Funkcja session_start() w języku PHP jest kluczowym elementem przy tworzeniu wielostronicowej witryny, która wymaga przechowywania i dostępu do danych pomiędzy różnymi stronami. Ta funkcja inicjalizuje sesję, co pozwala na przechowywanie danych użytkownika w zmiennych sesyjnych, które są dostępne na wszystkich stronach witryny. Przykładem zastosowania może być koszyk zakupowy w sklepie internetowym – użytkownik dodaje przedmioty do koszyka na jednej stronie, a na innej stronie (np. stronie podsumowania zamówienia) może z łatwością zobaczyć swoje wybory. Z perspektywy dobrych praktyk, użycie sesji zwiększa bezpieczeństwo danych, ponieważ nie są one przechowywane w cookies ani jako parametry URL, co zmniejsza ryzyko ich ujawnienia. Ponadto, sesje ułatwiają zarządzanie autoryzacją, ponieważ można łatwo sprawdzić, czy użytkownik jest zalogowany na dowolnej stronie witryny, co jest niezbędne w przypadku aplikacji wymagających logowania. Dlatego właściwe zastosowanie session_start() jest kluczowe dla interaktywności i użytkowalności rozbudowanych aplikacji webowych.

Pytanie 12

Jakie znaczniki należy zastosować, aby w pliku z rozszerzeniem php umieścić kod napisany w języku PHP?

A. <php ..................................... />
B. <?php ................................ ?>
C. <?php> .......................... <php?>
D. <php>  .......................  </php>
Żeby umieścić kod PHP w pliku o rozszerzeniu .php, trzeba użyć znaczników <?php i ?>. Te znaczniki mówią serwerowi, że wszystko, co jest między nimi, należy traktować jako kod PHP. To jest standardowa praktyka w PHP, ważne jest, aby kod był właściwie przetwarzany przez interpreter. Na przykład, jeżeli chcemy pokazać napis na stronie, możemy użyć: <?php echo 'Witaj świecie!'; ?>. Dzięki temu można w łatwy sposób wpleść kod PHP w plik HTML i robić różne rzeczy, jak np. pracować z bazami danych czy obsługiwać formularze. Zrozumienie tych znaczników jest mega ważne dla każdego programisty, bo wpływa to na wydajność i bezpieczeństwo aplikacji. Jeszcze jedno, PHP to język dynamicznie typowany, więc jego interpretacja może się różnić w zależności od kontekstu. Dlatego tak istotne jest, żeby dobrze formatować kod.

Pytanie 13

W języku PHP, aby otworzyć już istniejący plik lektury.txt w trybie dodawania treści, tak aby wskaźnik pliku został umieszczony na końcu tego pliku należy zastosować instrukcję

A. fopen("lektury.txt", "a")
B. fopen("lektury.txt", "x")
C. fopen("lektury.txt", "w")
D. fopen("lektury.txt", "r")
W tym zadaniu kluczowe są dwa elementy: tryb otwarcia pliku oraz pozycja wskaźnika pliku. W PHP funkcja fopen() przyjmuje drugi parametr właśnie po to, żeby określić, co chcemy zrobić z plikiem: tylko czytać, tylko pisać, nadpisywać, dopisywać, tworzyć nowy itd. Pomyłki biorą się najczęściej z tego, że ktoś zna ogólne działanie funkcji, ale nie pamięta dokładnie znaczenia poszczególnych liter. Tryb "r" oznacza otwarcie pliku tylko do odczytu. Wskaźnik pliku ustawiany jest na początku, a nie na końcu. W tym trybie nie wolno pisać do pliku – próba użycia fwrite() skończy się ostrzeżeniem lub błędem. To dobry wybór, gdy chcemy np. wczytać konfigurację lub treść pliku, ale zupełnie nie nadaje się do dopisywania nowych danych. Typowym błędem myślowym jest założenie, że skoro fopen otwiera plik, to zawsze można do niego pisać. Niestety, nie – tryb ma tutaj kluczowe znaczenie. Tryb "w" otwiera plik do zapisu, ale przy tym kasuje jego dotychczasową zawartość (truncation). W praktyce oznacza to, że gdy użyjemy fopen("lektury.txt", "w"), cały wcześniejszy tekst zostanie usunięty, a wskaźnik pliku znajdzie się na początku pustego pliku. To jest bardzo ważne: "w" jest dobre, gdy chcemy stworzyć nową wersję pliku od zera, np. generowany raport, ale całkowicie sprzeczne z wymaganiem zadania, które mówi o „dodawaniu treści” do istniejącego pliku bez utraty danych. Tryb "x" z kolei służy do tworzenia nowego pliku i zakończy się błędem, jeśli plik już istnieje. To mechanizm ochronny, używany często tam, gdzie nie chcemy przypadkiem nadpisać istniejącego pliku (np. przy generowaniu unikalnych plików). W kontekście pytania jest to odwrotność tego, co trzeba: my właśnie chcemy pracować z już istniejącym plikiem, a nie wymuszać jego nowość. Moim zdaniem najczęstsza pułapka polega na myleniu „w” i „a”. Oba tryby umożliwiają zapis, ale tylko "a" gwarantuje, że wskaźnik ustawi się na końcu, a dane będą dopisywane, a nie nadpisywane. Dlatego, gdy w zadaniu pojawia się fraza „tryb dodawania treści” i „wskaźnik na końcu pliku”, praktycznie zawsze chodzi o tryb append, czyli właśnie "a".

Pytanie 14

Według zasad walidacji HTML5, właściwym zapisem dla znacznika hr jest

A. </ hr />
B. </hr?>
C. <hr>
D. </ hr>
Odpowiedź <hr> jest poprawna, ponieważ zgodnie z regułami HTML5, znacznik <hr> jest znakiem samodzielnym, co oznacza, że nie wymaga zamknięcia. Jest to element blokowy, który służy do wprowadzania poziomej linii w dokumencie, co często wykorzystuje się do rozdzielania sekcji treści. Standard HTML5 zezwala na użycie skróconej formy, a zatem <hr> jest wystarczające do oznaczenia poziomej linii. W praktyce, użycie tego znacznika jest istotne dla strukturyzacji dokumentów i poprawy ich czytelności. Dobrą praktyką jest również stosowanie odpowiednich atrybutów, takich jak 'class' czy 'id', co może ułatwić późniejsze stylizowanie za pomocą CSS. Warto pamiętać, że w HTML5, chociaż można używać atrybutów takich jak 'style' czy 'title', powinny one być stosowane odpowiedzialnie, aby nie zaburzać semantyki dokumentu. Ponadto, korzystanie z tego znacznika jest zgodne z WAI-ARIA, co wspiera dostępność aplikacji webowych.

Pytanie 15

Tabela Pracownicy zawiera informacje na temat pracowników różnych działów, co jest zaznaczone przez pole liczbowe dzial. Z racji tego, że zazwyczaj kwerendy dotyczą tylko działu 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania

A. CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;
B. VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
C. VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2;
D. CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
Wybór odpowiedzi, która nie zawiera pełnej składni SQL, prowadzi do nieporozumień w zrozumieniu, jak działa tworzenie widoków w bazach danych. Odpowiedzi takie jak 'CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;' są błędne, ponieważ użycie słowa kluczowego 'FROM' jest niewłaściwe w kontekście definicji widoku. W standardowym SQL używa się 'AS' do określenia zapytania, które definiuje widok, co jest kluczowe dla poprawnego przetwarzania zapytania przez silnik bazy danych. Z kolei odpowiedzi, które zaczynają się od 'VIEW', takie jak 'VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;' oraz 'VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2;', są całkowicie niepoprawne, ponieważ w SQL nie istnieje polecenie 'VIEW' jako samodzielne polecenie do tworzenia widoków. To może prowadzić do mylnego przekonania, że komendy SQL są bardziej elastyczne w kwestii składni, co nie jest zgodne z rzeczywistością. Użytkownicy powinni zawsze odnosić się do dokumentacji SQL oraz standardów, aby upewnić się, że struktura zapytań jest zgodna z wymaganiami danego systemu bazy danych. Rozumienie poprawnej składni i semantyki SQL jest podstawowym elementem efektywnego zarządzania bazami danych i kluczowym krokiem w procesie nauki oraz implementacji skutecznych rozwiązań bazodanowych.

Pytanie 16

Jakie znaki będą przechowywane w zmiennej $napis po uruchomieniu poniższego kodu PHP?

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. og
B. ogram
C. gr
D. gramo
Wybrana odpowiedź jest niepoprawna, ponieważ nie uwzględnia prawidłowego działania funkcji substr w PHP. Ta funkcja wyodrębnia określoną liczbę znaków z ciągu, zaczynając od określonego indeksu. Tutaj funkcja substr wyodrębniła 5 znaków, zaczynając od czwartego znaku (indeks 3). Stąd poprawna odpowiedź to 'gramo', nie 'og', 'ogram' czy 'gr'. W przypadku odpowiedzi 'og', wydaje się, że nastąpiło błędne zrozumienie jak działa indeksowanie w PHP. Indeksy zaczynają się od zera, nie od jednego. Dlatego też czwarty znak ma indeks 3, a nie 4. W przypadku odpowiedzi 'ogram', prawdopodobnie zrozumiano, że substr wyodrębni całe słowo od indeksu 3, a nie tylko 5 znaków. Natomiast odpowiedź 'gr' sugeruje, że nie zrozumiano liczby znaków do wyodrębnienia. To jest typowy błąd, gdzie zakłada się, że funkcja substr wyodrębni tylko dwa następne znaki, a nie określoną liczbę znaków.

Pytanie 17

Wskaż warunek w języku JavaScript, który ma na celu sprawdzenie, czy przynajmniej jeden z poniższych przypadków jest spełniony: 1) dowolna naturalna liczba a jest liczbą trzycyfrową 2) dowolna liczba całkowita b jest liczbą ujemną

A. ((a>99)||(a<1000))||(b<0)
B. ((a>99)&&(a<1000))&&(b<0)
C. ((a>99)||(a<1000))&&(b<0)
D. ((a>99)&&(a<1000))||(b<0)
Wszystkie pozostałe odpowiedzi zawierają błędy w logice warunków, które prowadzą do niepoprawnych wywołań logicznych. W przypadku pierwszego zapisu ((a>99)||(a<1000))||(b<0) użycie operatora '||' w pierwszej części oznacza, że wystarczy, aby a było większe niż 99 lub mniejsze niż 1000, co w praktyce nigdy nie wyklucza a z zakresu liczb naturalnych, ponieważ wszystkie liczby naturalne (w tym te jedno- i dwu-cyfrowe) spełniają ten warunek. To powoduje, że wynik będzie zawsze prawdziwy, niezależnie od wartości a. Kolejny zapis ((a>99)&&(a<1000))&&(b<0) również jest błędny, ponieważ wymaga, aby obie części były prawdziwe równocześnie. Oznacza to, że zarówno warunek trzycyfrowości liczby a, jak i warunek, że b musi być liczbą ujemną, muszą być spełnione, aby całość była prawdziwa. W sytuacji, gdy a jest liczbą trzycyfrową, ale b jest liczbą dodatnią, wynik będzie fałszywy, co nie spełnia założonych wymagań, które mówią o tym, że wystarczy, aby jeden z przypadków był prawdziwy. Wreszcie, ostatni zapis ((a>99)&&(a<1000))&&(b<0) jest identyczny w swej logice do poprzedniego, jedynie potwierdza, że oba warunki muszą być spełnione jednocześnie, co z kolei ogranicza możliwości otrzymania prawdziwego wyniku. W kontekście programowania i analizy logicznej, kluczowe jest zrozumienie operatorów logicznych oraz ich zastosowanie w konstrukcjach warunkowych, aby uzyskać zamierzony efekt działania.

Pytanie 18

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. wyświetli długość tekstu z zmiennej t
B. przypisze zmiennej s zmienną t
C. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
D. przypisze zmiennej s długość tekstu z zmiennej t
W podanym kodzie zmiennej t przypisano wartość ciągu znaków Ala ma kota.. Następnie zmiennej s przypisano wynik wywołania właściwości length na zmiennej t. W JavaScript length jest właściwością obiektów String używaną do określenia długości łańcucha znaków czyli liczby znaków w napisie. W tym przypadku t.length zwróci liczbę 12 ponieważ włącznie ze spacjami i kropką ciąg Ala ma kota. składa się z 12 znaków. Przypisanie tego wyniku do zmiennej s oznacza że s będzie miało wartość 12. Takie wykorzystanie właściwości length jest zgodne z dobrymi praktykami i często stosowane w programowaniu w JavaScript. Pozwala na dynamiczne określanie długości łańcuchów co jest przydatne przy przetwarzaniu danych tekstowych. Umiejętność manipulacji łańcuchami znaków jest kluczowa w tworzeniu aplikacji webowych i skryptów które muszą obsługiwać dane użytkowników. Prawidłowe zrozumienie jak działa właściwość length pozwala na efektywne zarządzanie i przetwarzanie tekstu co jest istotne w pracy każdego programisty.

Pytanie 19

Jakiego języka skryptowego ogólnego zastosowania powinno się użyć do tworzenia aplikacji internetowych, które są zintegrowane z HTML i działają na serwerze?

A. JavaScript
B. PHP
C. C#
D. Perl
PHP (Hypertext Preprocessor) to język skryptowy ogólnego przeznaczenia, który został zaprojektowany do tworzenia dynamicznych stron internetowych, co czyni go idealnym rozwiązaniem do budowy aplikacji webowych. Jako język uruchamiany po stronie serwera, PHP generuje HTML, który jest następnie przesyłany do przeglądarki użytkownika, co pozwala na interakcję z bazami danych, sesjami użytkowników i innymi elementami. Dzięki bogatej bibliotece funkcji oraz rozbudowanej społeczności, PHP jest często wykorzystywany w aplikacjach takich jak WordPress, Drupal czy Joomla. Ponadto, PHP wspiera różnorodne bazy danych, w tym MySQL, co umożliwia tworzenie zaawansowanych aplikacji zintegrowanych z danymi. Przykładem dobrych praktyk w PHP jest stosowanie wzorców projektowych, takich jak MVC (Model-View-Controller), które zwiększają czytelność i modularność kodu. Dzięki temu, programiści mogą łatwiej utrzymywać i rozwijać aplikacje, co jest kluczowe w dynamicznie zmieniającym się świecie technologii webowych.

Pytanie 20

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 3
B. Efekt 2
C. Efekt 4
D. Efekt 1
Efekt 3 jest poprawny ponieważ formatowanie CSS zawiera ustawienie padding 20px co oznacza że wokół tekstu znajduje się przestrzeń o szerokości 20 pikseli Dodatkowo kolor tekstu jest niebieski zgodnie z ustawieniem color blue Także font-weight 900 wskazuje że tekst powinien być pogrubiony w najwyższym stopniu co jest widoczne w trzecim efekcie Obramowanie ma szerokość 1 piksel i jest solidne co oznacza że jest to ciągła linia wokół tekstu Efekt 3 dokładnie odzwierciedla te właściwości Formatowanie takie jest użyteczne w tworzeniu przyciągających uwagę nagłówków lub wyróżnień w treści strony internetowej W praktyce taki styl można zastosować do elementów interfejsu użytkownika które wymagają większej czytelności lub estetycznego oddzielenia od reszty treści Ważne jest aby odpowiednio zrozumieć i wykorzystać właściwości CSS dla uzyskania maksymalnej efektywności w projektowaniu stron internetowych Dobre praktyki obejmują także testowanie stylów na różnych urządzeniach aby upewnić się że wygląd spełnia zamierzone cele we wszystkich kontekstach

Pytanie 21

Reguła CSS, która ustawia tekst paragrafu w pionie na środku, to:

A. text-align: center
B. align: middle
C. vertical-align: middle
D. vertical-align: center
Odpowiedzi, które zostały podane jako alternatywne, są niepoprawne z różnych powodów. 'Vertical-align: center' nie jest uznawane za poprawną regułę CSS, ponieważ nie istnieje właściwość 'center' w kontekście 'vertical-align'. Tylko wartości takie jak 'top', 'middle', 'bottom' oraz 'baseline' są dozwolone. Z kolei 'text-align: center' jest właściwością, która odpowiada za poziome centrowanie tekstu wewnątrz elementu blokowego lub kontenera, a nie za wyśrodkowanie w pionie. Użycie tej reguły sprawi, że tekst będzie wyśrodkowany w poziomie, co jest zupełnie inną operacją niż pionowe centrowanie. Ostatnia propozycja, 'align: middle', jest również niepoprawna, ponieważ nie jest to właściwość CSS. W kontekście wyśrodkowywania elementów w CSS, 'align' nie jest używane, a zamiast tego powinno się stosować 'vertical-align' lub techniki takie jak flexbox, które pozwalają na bardziej elastyczne i nowoczesne podejście do układania elementów. Zrozumienie różnicy między tymi właściwościami jest kluczowe dla efektywnego projektowania stron internetowych, ponieważ stosowanie niewłaściwych reguł może prowadzić do nieoczekiwanych rezultatów w układzie strony.

Pytanie 22

W PHP funkcja trim służy do

A. redukcji tekstu o liczbę znaków określoną w parametrze
B. porównywania dwóch tekstów i wyświetlania ich części wspólnej
C. podawania długości tekstu
D. usuwania białych znaków lub innych znaków wymienionych w parametrze z obu końców tekstu
Analizując pozostałe odpowiedzi, można zauważyć, że pierwsza sugeruje, iż funkcja trim ma na celu podawanie długości napisu. Jest to błędne, ponieważ funkcja ta nie zwraca informacji o długości łańcucha, lecz modyfikuje jego zawartość, usuwając określone znaki. Długość napisu można uzyskać za pomocą funkcji strlen, która jest dedykowana do mierzenia długości ciągów. Kolejna odpowiedź sugeruje, że funkcja trim porównuje dwa napisy i wypisuje część wspólną. Również ta informacja jest nieprawdziwa, ponieważ trim nie ma funkcji porównywania. Do porównywania napisów służy funkcja strcmp lub różne operatory porównania. Ostatnia niepoprawna odpowiedź wskazuje, że trim zmniejsza napis o wskazaną w parametrze liczbę znaków. Funkcja trim nie przyjmuje argumentów dotyczących liczby znaków do usunięcia, a jedynie znaki, które mają być usunięte. Użytkownik nie może określić liczby znaków, które zostaną odjęte od początku lub końca łańcucha. Dlatego wszystkie wymienione odpowiedzi są błędne w kontekście działania funkcji trim w PHP.

Pytanie 23

Na ilustracji zaprezentowano koncepcję układu bloków strony internetowej. Przyjmując, że bloki są realizowane za pomocą znaczników sekcji, a szerokość jest określona tylko dla bloków 2, 3 oraz 4, ich stylowanie powinno uwzględniać właściwość

Ilustracja do pytania
A. float: left dla wszystkich bloków
B. float: left jedynie dla bloków 3 i 4 oraz clear: both dla bloku 2
C. clear: both dla bloku 5 i float: left jedynie dla bloków 2, 3 oraz 4
D. clear: both dla wszystkich bloków
Odpowiedź jest prawidłowa, ponieważ wykorzystanie float: left dla bloków 2, 3 i 4 pozwala na ich ustawienie obok siebie w poziomie. Jest to klasyczna technika stosowana w CSS do tworzenia layoutów, gdzie elementy mają płynąć obok siebie. Definiując float: left, elementy zaczynają od lewej krawędzi rodzica i układają się w linii poziomej. Użycie clear: both dla bloku 5 zapewnia, że blok ten zacznie się poniżej pływających bloków 2, 3 i 4, a nie obok nich. Clear: both jest konieczne, aby zapewnić, że blok 5 nie zostanie zakłócony przez floating, co jest powszechną praktyką przy tworzeniu wielokolumnowych layoutów. Kiedy float jest używany bez clear, może prowadzić do overlapania elementów, co jest niepożądane w strukturze layoutu. Praktyczne zastosowanie tego podejścia obejmuje układy z nagłówkiem, treścią i stopką, gdzie nagłówek i stopka powinny być pełnej szerokości, a treść podzielona na kolumny obok siebie. To podejście jest zgodne z tradycyjnymi metodami budowania stron przed wprowadzeniem flexboxa i grida, gdzie float był jednym z podstawowych narzędzi do zarządzania układem strony. Współczesne dobre praktyki wciąż uznają jego istotność, zwłaszcza w kontekście starszych projektów utrzymywanych z biegiem czasu.

Pytanie 24

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. tr { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 25

Liczba 0x142, przedstawiona w kodzie JavaScript, przyjmuje formę

A. ósemkową
B. szesnastkową
C. dziesiętną
D. dwójkową
Liczba 0x142 jest zapisana w systemie szesnastkowym, co oznacza, że jest reprezentowana w bazie 16. W systemie szesnastkowym posługujemy się cyframi od 0 do 9 oraz literami od A do F, gdzie A odpowiada 10, B to 11, C to 12, D to 13, E to 14, a F to 15 w systemie dziesiętnym. Przykład zastosowania tego systemu można zauważyć w programowaniu oraz w różnych standardach, takich jak HTML, gdzie kolory są często reprezentowane w formacie szesnastkowym, np. #FFFFFF dla bieli. Można także spotkać się z systemem szesnastkowym w adresacji pamięci oraz w reprezentacji liczb dużych, co jest szczególnie przydatne w kontekście programowania niskopoziomowego i systemów wbudowanych. Zrozumienie różnych systemów liczbowych, w tym szesnastkowego, jest niezbędne dla każdego programisty, szczególnie podczas pracy z danymi binarnymi, hex i podczas obliczeń niskopoziomowych.

Pytanie 26

Wypisanie tekstu w języku JavaScript nie jest możliwe przy użyciu

A. metody window.alert()
B. własności innerHTML
C. metody document.write()
D. funkcji MessageBox()
Poprawnie wskazana została funkcja MessageBox(), bo w standardowym JavaScripcie działającym w przeglądarce taka funkcja po prostu nie istnieje. JavaScript udostępnia kilka mechanizmów do wypisywania tekstu, ale są one ściśle określone przez środowisko (głównie DOM i obiekt window), a nie przez jakieś ogólne, „systemowe” funkcje typu MessageBox. Właściwość innerHTML należy do elementów DOM i służy do modyfikowania ich zawartości HTML. Przykład: const div = document.getElementById('wynik'); div.innerHTML = 'Witaj w <b>JavaScript</b>'; To jest typowy, zgodny ze standardami sposób dynamicznej zmiany treści na stronie. W praktyce używa się go bardzo często, choć moim zdaniem lepiej w prostych przypadkach stosować textContent, bo jest bezpieczniejsze (nie interpretuje HTML-a, więc mniejsze ryzyko XSS). Metoda window.alert() jest wbudowaną funkcją interfejsu przeglądarki. Wyświetla prosty modalny komunikat z przyciskiem OK. Przykład: alert('Komunikat dla użytkownika'); W wielu poradnikach to pierwszy sposób „wypisania” czegokolwiek, bo od razu widać efekt. W profesjonalnych aplikacjach używa się go rzadko, raczej do szybkiego debugowania, bo blokuje interakcję z użytkownikiem. Metoda document.write() pozwala wpisać tekst bezpośrednio do strumienia dokumentu HTML podczas jego ładowania: document.write('Hello world'); Historycznie było to popularne, ale w nowoczesnych projektach uważa się to za złą praktykę. Po załadowaniu strony document.write() może nadpisać cały dokument, co jest mocno niepożądane. Lepszym standardem jest manipulacja DOM (np. innerHTML, createElement, appendChild). Natomiast MessageBox() kojarzy się z funkcjami z innych środowisk (np. WinAPI, C#, VBA), ale w JavaScripcie w przeglądarce taka funkcja nie jest zdefiniowana w żadnym oficjalnym standardzie. Jeśli ktoś jej użyje bez własnej definicji, skończy się to błędem „MessageBox is not defined”. Dlatego właśnie ta odpowiedź jest poprawna – nie da się w czystym, standardowym JS wypisać tekstu przy użyciu funkcji MessageBox(), chyba że samemu ją wcześniej napiszemy, ale to już zupełnie inna historia.

Pytanie 27

Która jednostka miary CSS ma charakter względny i wyraża wielkość proporcjonalną do rozmiaru aktualnej czcionki?

A. em
B. in
C. px
D. pt
Poprawna jest jednostka „em”, bo w CSS jest to jednostka względna, która odnosi się do aktualnego rozmiaru czcionki elementu. Mówiąc prościej: 1em to 100% bieżącego font-size. Jeśli na przykład dla body ustawisz font-size: 16px, to 1em w środku body będzie równe 16px, 2em to 32px, 0.75em to 12px itd. Co ważne, w wielu projektach stosuje się em właśnie po to, żeby interfejs był elastyczny i skalował się razem z tekstem. Dzięki temu, gdy użytkownik zwiększy rozmiar czcionki w przeglądarce, odstępy, marginesy czy wcięcia oparte na em też się proporcjonalnie zmienią. To jest zgodne z dobrymi praktykami dostępności (WCAG) i ogólnie z nowoczesnym podejściem do RWD. Moim zdaniem em jest szczególnie wygodne do definiowania np. paddingów i line-height w komponentach, które mają być spójne wizualnie niezależnie od miejsca użycia. Na przykład: przycisk może mieć font-size: 1rem, padding: 0.5em 1em; wtedy gdy zmienisz rozmiar tekstu w tym przycisku, jego wewnętrzne odstępy automatycznie się dostosują. To dość eleganckie i bardzo często spotykane w profesjonalnych arkuszach stylów. W odróżnieniu od jednostek absolutnych, takich jak px, pt czy in, em zawsze patrzy na kontekst – czyli na bieżący element lub jego rodzica, w zależności od właściwości. W efekcie projekt jest bardziej responsywny, a kod CSS łatwiej utrzymać i ponownie wykorzystać w różnych miejscach serwisu.

Pytanie 28

Dla jakiej wartości zmiennej x instrukcja warunkowa w JavaScript jest spełniona?

if ((x < -5) || (x > 2))
    x++;
A. 3
B. -1
C. -4
D. 2
Analizując dostarczone odpowiedzi, kluczowe jest zrozumienie działania operatora logicznego OR oraz warunków logicznych w języku JavaScript. Instrukcja warunkowa wykonuje się, jeśli którykolwiek z warunków jest prawdziwy. Przy wartości x równej -4, żaden z warunków (x < -5) lub (x > 2) nie jest spełniony, ponieważ -4 jest większe niż -5 i mniejsze niż 2, więc instrukcja x++ się nie wykona. Dla x = -1 sytuacja jest podobna; -1 także nie spełnia obu warunków. Gdy x = 2, nadal nie spełniamy żadnego z wyrażonych warunków, ponieważ 2 nie jest większe niż 2 ani mniejsze niż -5. Typowym błędem myślowym przy rozwiązywaniu takich zadań jest błędne rozumienie zakresu działania operatora OR. Warto pamiętać, że wystarczy jedno prawdziwe wyrażenie, aby cała instrukcja została zaakceptowana. Błędne jest także myślenie, że brak bezpośredniej równości w warunku (jak x > 2) oznacza akceptację wartości granicznej. W tym przypadku konieczne jest pełne spełnienie warunku, co podkreśla znaczenie dokładności w formułowaniu logiki programistycznej. Takie zrozumienie operatorów logicznych i warunków jest niezbędne dla efektywnego tworzenia kodu, który odpowiada na wymagania logiki biznesowej w aplikacjach. Pasjonaci programowania powinni koncentrować się na testowaniu różnych scenariuszy, aby dokładnie zrozumieć, jak wartości zmiennych wpływają na przepływ działania ich kodu. Taka wiedza jest fundamentalna przy tworzeniu skalowalnych i niezawodnych rozwiązań programistycznych, które muszą operować na wielu danych wejściowych i warunkach w dynamicznie zmieniającym się środowisku.

Pytanie 29

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ą atrybutów HTML
D. za pomocą właściwości CSS, podając rozmiar w procentach
Wykorzystywanie atrybutów HTML do zmiany rozmiarów grafiki może wydawać się prostym rozwiązaniem, jednak nie jest ono najlepszym podejściem do optymalizacji wydajności strony. Atrybuty 'width' i 'height' w tagu <img> jedynie modyfikują sposób wyświetlania obrazu na stronie, a nie jego rzeczywisty rozmiar pliku. Taki zabieg nie zmniejsza wagi samego pliku graficznego, co może prowadzić do dłuższego czasu ładowania strony. Również definiowanie rozmiaru grafiki za pomocą właściwości CSS, zarówno w pikselach, jak i procentach, jest niewłaściwą metodą w kontekście optymalizacji. Choć zmniejszają one wizualny rozmiar obrazu, nie wpływają na jego rzeczywistą wagę, co prowadzi do nieefektywnego zarządzania zasobami. W praktyce, wprowadzenie dużych plików graficznych na stronę bez ich uprzedniej optymalizacji, może skutkować nie tylko dłuższym czasem ładowania, ale również negatywnie wpłynąć na doświadczenie użytkownika oraz pozycjonowanie w wyszukiwarkach. Warto zatem zainwestować czas w odpowiednią obróbkę graficzną przed publikacją, aby uniknąć takich problemów.

Pytanie 30

Przedstawione zapytanie SELECT wykonane na tabeli przechowującej dane o uczestnikach konkursu ma za zadanie wybrać

SELECT MAX(wiek) - MIN(wiek) FROM uczestnicy;
A. średnią arytmetyczną wieku uczestników.
B. minimalny oraz maksymalny wiek uczestników.
C. liczbę najstarszych uczestników.
D. różnicę wieku pomiędzy najstarszym i najmłodszym uczestnikiem.
Gratulacje, ta odpowiedź jest poprawna. Zapytanie SQL używa funkcji agregujących MAX i MIN do określenia maksymalnej i minimalnej wartości wieku w tabeli uczestników. Użycie tych funkcji umożliwia nam zidentyfikowanie najstarszego i najmłodszego uczestnika. Następnie, zapytanie oblicza różnicę między tymi wartościami, co odpowiada różnicy wieku między najstarszym i najmłodszym uczestnikiem. To jest standardowe podejście w SQL do wykonywania tego typu zapytań. W praktyce, takie zapytania są często używane w analizie danych do określania różnorodności danych, takiej jak zakres wieku uczestników w danym konkursie. Pamiętaj, że funkcje agregujące w SQL, takie jak MAX i MIN, są niezwykle przydatne w analizie danych, umożliwiając nam podsumowanie i analizę dużych zbiorów danych.

Pytanie 31

Jak nazywa się proces, w trakcie którego identyfikuje się oraz eliminuje błędy w kodzie źródłowym aplikacji?

A. Debugowanie
B. Kompilacja
C. standaryzacja
D. Normalizacja
Debugowanie to proces, który polega na identyfikacji, analizie i usuwaniu błędów w kodzie źródłowym programów. Jest to kluczowy etap w cyklu życia oprogramowania, który zapewnia, że aplikacje działają zgodnie z zamierzonymi specyfikacjami. W praktyce debugowanie może obejmować różnorodne techniki, takie jak używanie narzędzi do analizy statycznej, wykonanie testów jednostkowych oraz korzystanie z debuggerów, które pozwalają na śledzenie wykonania kodu w czasie rzeczywistym. Dobre praktyki debugowania obejmują dokumentowanie napotkanych błędów, co może ułatwić ich ponowne wystąpienie oraz szybsze ich usunięcie w przyszłości. Debugowanie nie tylko poprawia jakość kodu, ale również ułatwia rozwój i utrzymanie oprogramowania, co jest zgodne z zasadami Agile i DevOps, gdzie ciągła integracja i dostarczanie są kluczowymi elementami procesu. W ten sposób debugowanie stanowi integralną część programowania, która wpływa na wydajność i stabilność tworzonych aplikacji.

Pytanie 32

Walidacja formularzowych pól polega na zweryfikowaniu

A. czy wprowadzone dane spełniają określone reguły.
B. czy użytkownik jest zalogowany.
C. który użytkownik wprowadził informacje.
D. czy istnieje plik PHP, który odbierze dane.
Walidacja pól formularza to mega ważny krok, kiedy zbieramy dane od użytkowników. Dzięki niej możemy mieć pewność, że wszystko, co użytkownik wprowadza, jest zgodne z pewnymi zasadami. To sprawia, że aplikacja działa jak należy i że dane są w miarę bezpieczne. Na przykład, walidacja może sprawdzać, czy użytkownik wpisał coś w pole tekstowe, czy adres e-mail wygląda jak należy, albo czy hasło ma odpowiednią długość i trudność. Fajnie jest, jak walidacja działa zarówno po stronie klienta, jak i serwera. Ta po stronie klienta jest super, bo użytkownik od razu widzi, że coś poszło nie tak i nie musi czekać na odpowiedź z serwera. A walidacja po stronie serwera dodaje jeszcze więcej bezpieczeństwa, bo broni aplikacji przed błędnymi danymi i różnymi atakami, jak na przykład SQL injection. Dlatego walidacja danych to absolutna podstawa w nowoczesnych systemach przetwarzania informacji.

Pytanie 33

Tablica tab[] jest wypełniona losowymi liczbami całkowitymi. Jaka będzie wartość zmiennej zm2 po wykonaniu poniższego fragmentu kodu?

int tab[10];
int zm1 = 0;
double zm2 = 0;

for (int i=0; i < 10; i++)
{
    zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Średnia arytmetyczna liczb z tablicy
B. Średnia geometryczna liczb od 0 do 9
C. Suma elementów z tablicy
D. Suma liczb od 1 do 10
W tym kodzie jest trochę do zrozumienia, zwłaszcza w kontekście pętli for i operacji matematycznych. Mylisz się, myśląc, że zm2 to średnia geometryczna liczb od 0 do 9, bo w tym kodzie nie ma ani mnożenia, ani pierwiastkowania, które są konieczne do obliczenia średniej geometrycznej. Zmienna zm2 odnosi się do liczb w tablicy tab[], a nie do tych od 0 do 9. Ponadto, twierdzenie, że zm2 to suma liczb od 1 do 10, jest błędne, bo kod nie operuje na takich liczbach. Sumowanie dotyczy tylko wartości w tablicy. Mylna jest też informacja, że zm2 to suma z tablicy – to zm1 przechowuje tę sumę, a zm2 to średnia po podzieleniu przez 10. Błędy takie mogą wynikać z braku zrozumienia działania pętli i operacji matematyk. Ważne, żeby zawsze śledzić, co się dzieje z danymi w kodzie i jakie operacje są wykonywane, bo to klucz do rozwiązywania problemów w programowaniu. Warto dokładnie zrozumieć strukturę kodu i rolę zmiennych, aby unikać błędów logicznych.

Pytanie 34

Jakie parametry trzeba przekazać do polecenia PHP, aby wprowadzić dane do bazy?

mysqli_query($zm1, $zm2);
A. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie INSERT INTO w $zm2
B. NULL w $zm1, aby baza mogła zapisać tam kod błędu oraz zapytanie SELECT w $zm2
C. identyfikator połączenia z bazą danych w $zm1 oraz zapytanie SELECT w $zm2
D. id wiersza w $zm1 oraz zapytanie INSERT INTO w $zm2
Problem ze zrozumieniem jak należy przekazywać parametry do funkcji mysqli_query może wynikać z niezrozumienia struktury połączenia z bazą danych i operacji jakie można na niej wykonywać. Pierwszy błędny pomysł zakłada użycie zapytania SELECT które służy do pobierania danych a nie ich dodawania. Stąd nie pasuje do kontekstu wstawiania danych. Identyfikator połączenia to kluczowy element oznaczający uchwyt do sesji z bazą a nie id wiersza który w tym kontekście nie ma zastosowania. Próba użycia NULL jako parametru wskazuje na błędne zrozumienie mechanizmów obsługi błędów w PHP. Bazy danych nie zapisują kodów błędów w zmiennej przekazywanej do zapytania. Takie podejście świadczy o braku świadomości jak zarządzać błędami w programowaniu z wykorzystaniem PHP gdzie standardem jest analiza wartości zwracanych przez funkcje i wykorzystanie funkcji takich jak mysqli_error do diagnozowania problemów. W kontekście wstawiania danych do bazy poprawne rozumienie mechanizmu polega na znajomości struktury SQL i obsługi połączeń z bazą co jest fundamentalne dla efektywnej pracy z bazami danych w PHP. Zrozumienie tych koncepcji pozwala na bezpieczne i skuteczne wykonywanie operacji na danych a także na efektywne diagnozowanie i obsługę błędów dzięki czemu aplikacje są bardziej odporne na awarie i ataki zewnętrzne co jest kluczowe dla ich stabilności i bezpieczeństwa.

Pytanie 35

Na podstawie jakiego parametru oraz z ilu tabel zostaną zwrócone wiersze w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis
WHERE producent.nr_id = hurtownia.nr_id
AND producent.wyrob_id = serwis.wyrob_id
AND hurtownia.nr_id = sklep.nr_id
AND sklep.nr_id = serwis.nr_id
AND producent.nr_id = 1;
A. Na podstawie parametru wyrob_id ze wszystkich tabel
B. Na podstawie parametru wyrob_id wyłącznie z trzech tabel
C. Na podstawie parametru nr_id ze wszystkich tabel
D. Na podstawie parametru nr_id wyłącznie z trzech tabel
Problem z błędnymi odpowiedziami polega na niewłaściwym zrozumieniu użycia parametrów w zapytaniu SQL Pierwsza z nich sugeruje użycie parametru wyrob_id wyłącznie dla trzech tabel co jest błędne ponieważ w analizowanym zapytaniu wyrob_id jest używany do łączenia jedynie dwóch tabel producent i serwis Nie łączy on wszystkich czterech tabel co ogranicza zakres danych Druga odpowiedź mylnie zakłada że wyrob_id jest używany dla wszystkich tabel co wskazuje na nieprawidłową interpretację struktury samego zapytania Trzecia odpowiedź błędnie sugeruje że parametr nr_id ogranicza się do trzech tabel co również jest sprzeczne z rzeczywistością zapytania które używa nr_id jako wspólnego klucza dla wszystkich czterech tabel Często pomyłki tego typu wynikają z braku zrozumienia jak działa klucz podstawowy i obcy w bazach danych Klucze te są podstawą dla relacji pomiędzy tabelami i ich poprawne użycie jest kluczowe dla uzyskiwania poprawnych wyników z zapytań Skupienie się na zrozumieniu struktury relacyjnej oraz zasad normalizacji pomoże w unikaniu takich błędów w przyszłości co jest kluczowe dla zachowania integralności i spójności danych w systemach bazodanowych

Pytanie 36

Która z list jest interpretacją pokazanego kodu?

Ilustracja do pytania
A. Odpowiedź D
B. Odpowiedź B
C. Odpowiedź C
D. Odpowiedź A
Odpowiedź C jest prawidłowa, ponieważ odpowiada strukturze listy zagnieżdżonej w HTML. W kodzie źródłowym użyto listy uporządkowanej <ol>, co oznacza, że elementy listy będą numerowane. Każdy element <li> w tej liście może zawierać dodatkowe listy nieuporządkowane <ul>, które są oznaczane jako lista punktowana. W przypadku kodu przedstawionego na rysunku mamy dwie główne pozycje 'muzyka' i 'filmy' zawarte w liście uporządkowanej, stąd 1. muzyka i 2. filmy. Pod pozycjami 'muzyka' i 'filmy' znajdują się listy zagnieżdżone nieuporządkowane, zawierające wpisy 'Wpis1', 'Wpis2', 'Wpis3' i 'Wpis4'. Dobre praktyki w projektowaniu stron sugerują użycie list zagnieżdżonych do klarownego przedstawienia hierarchii informacji. Wykorzystanie list uporządkowanych i nieuporządkowanych jest standardem w semantycznym HTML, co wpływa na dostępność stron internetowych oraz ich zgodność z różnymi urządzeniami i technologiami wspomagającymi. Taka struktura ułatwia również nawigację wśród treści dla użytkowników i algorytmów indeksujących wyszukiwarek internetowych.

Pytanie 37

W kaskadowych arkuszach stylów do oznaczenia selektora klasy wykorzystuje się symbol

A. . (kropka)
B. *
C. #
D. : (dwukropek)
Odpowiedź . (kropka) jest prawidłowa, ponieważ w kaskadowych arkuszach stylów (CSS) selektor klasy definiuje się poprzez użycie symbolu kropki przed nazwą klasy. Przykład: jeśli mamy klasę o nazwie 'przyklad', to w CSS zapisujemy selektor jako '.przyklad'. Taki selektor pozwala na stosowanie określonych stylów do wszystkich elementów HTML, które zawierają tę klasę. Dobrą praktyką jest używanie klas do grupowania elementów, co ułatwia zarządzanie stylami oraz zwiększa czytelność kodu. Na przykład, możemy zdefiniować wspólny wygląd dla przycisków: .przycisk { background-color: blue; color: white; }. Ponadto, korzystanie z klas zamiast identyfikatorów (które definiuje się przez symbol #) pozwala na wielokrotne stosowanie jednego stylu w różnych miejscach dokumentu. Klasy są bardziej elastyczne i umożliwiają lepszą organizację kodu, co jest zgodne z zasadami DRY (Don't Repeat Yourself) w programowaniu.

Pytanie 38

W JavaScript wynik operacji przyjmuje wartość NaN, jeśli skrypt próbował wykonać

A. operację arytmetyczną, a zmienna miała postać napisu
B. funkcję sprawdzającą długość napisu, a zawartość zmiennej była liczbą
C. operację arytmetyczną na dwóch zmiennych liczbowych dodatnich
D. funkcję parseFloat zamiast parseInt na zmiennej typu liczbowego
Odpowiedzi, które nie są poprawne, można analizować z perspektywy ich logicznych i technicznych uzasadnień. W przypadku pierwszej sugestii, użycie funkcji parseFloat zamiast parseInt na zmiennej liczbowej nie prowadzi bezpośrednio do uzyskania wartości NaN, ponieważ obie funkcje są zaprojektowane do konwersji wartości tekstowych na liczby. Działanie parseFloat zwróci wartość liczbową, co pozwoli uniknąć błędu NaN. W konsekwencji, niezależnie od wyboru funkcji konwertującej, jeśli dane są poprawne, wynik nie będzie NaN. Kolejna niepoprawna odpowiedź odnosi się do przypadku, w którym działanie arytmetyczne jest wykonywane na dwóch zmiennych liczbowych dodatnich. W takim przypadku, jeśli obie zmienne są liczbami, wynik operacji arytmetycznej będzie również liczbą, a nie NaN. Ostatnia analiza dotyczy sytuacji, w której funkcja sprawdzająca długość napisu jest używana na zmiennej, która jest liczbą. Metoda ta, .length, działa na obiektach typu string i nie ma wpływu na zwracanie NaN, nawet jeśli wejściowe dane są liczbowe. Dlatego wszystkie te odpowiedzi nie są trafne w kontekście pytania dotyczącego pojawienia się wartości NaN w JavaScript.

Pytanie 39

Dostępna jest tabela ksiazki z kolumnami: tytul (typ tekstowy) oraz cena (typ liczbowy). W celu uzyskania z kwerendy SELECT jedynie tytułów, dla których cena jest mniejsza od 50 zł, należy użyć następującego zapisu:

A. SELECT ksiazki FROM tytul WHERE cena<'50 zł';
B. SELECT tytul FROM ksiazki WHERE cena<50;
C. SELECT tytul FROM ksiazki WHERE cena>'50 zł';
D. SELECT * FROM ksiazki WHERE cena<50;
Wybrana odpowiedź jest poprawna, ponieważ zapytanie SQL "SELECT tytul FROM ksiazki WHERE cena<50;" prawidłowo zwraca tylko kolumnę z tytułami książek, gdzie cena jest mniejsza od 50 zł. W kontekście pracy z bazami danych, kluczowe jest umiejętne formułowanie zapytań, które ograniczają zwracane dane do tych istotnych dla użytkownika. Użycie operatora porównania '<' w klauzuli WHERE jest zgodne z typowymi praktykami w SQL, a przy tym umożliwia precyzyjne filtrowanie danych. Warto również zwrócić uwagę, że w SQL nie potrzebujemy podawać jednostki walutowej, dlatego zapis '50 zł' jest błędny. Właściwa analityka zapytań pozwala na efektywne pozyskiwanie informacji, co ma kluczowe znaczenie w aplikacjach bazodanowych. W praktyce, umiejętność selekcji danych za pomocą zapytań jest podstawą pracy analityka danych oraz programisty.

Pytanie 40

Jaki wynik pojawi się po wykonaniu zaprezentowanego kodu HTML?

Ilustracja do pytania
A. Odpowiedź B
B. Odpowiedź D
C. Odpowiedź C
D. Odpowiedź A
W analizie kodu HTML istotne jest zrozumienie struktury zagnieżdżonych list. Błędne odpowiedzi wynikają z niedokładnej interpretacji hierarchii i stylizacji list. Listy uporządkowane oznaczone tagiem ol oraz nieuporządkowane ul są podstawą do strukturalizacji informacji w HTML. Częsty błąd polega na nieuwzględnieniu, jak przeglądarki interpretują zagnieżdżone listy. Element ol z atrybutami type i start zmienia styl numeracji. Wersje z atrybutem type=A zmieniają numerację na literową, a start=4 decyduje o punkcie startowym. Pominięcie tego aspektu prowadzi do błędnych wniosków. Dobre praktyki obejmują klarowność struktury HTML poprzez właściwe użycie tagów i atrybutów, co jest kluczowe dla dostępności i użyteczności stron. Przy projektowaniu, warto pamiętać o spójności formatowania i zgodności z semantyką HTML, co poprawia doświadczenia użytkowników i wydajność SEO. Właściwe zrozumienie i zastosowanie atrybutów list ułatwia zarządzanie złożonymi strukturami na stronach internetowych.