Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 10 kwietnia 2026 12:39
  • Data zakończenia: 10 kwietnia 2026 12:52

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

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

Wskaż wszystkie symbole, które pozwalają na komentowanie kodu w języku PHP.

A. /* */ oraz <!-- -->
B. tylko /* */
C. <?php ?> oraz //
D. /* */ oraz // oraz #
Wybór odpowiedzi wskazującej jedynie na znaki /* */ jako mechanizmy komentowania jest niekompletny i wprowadza w błąd. Komentarze są istotnym elementem każdego skryptu, ponieważ pozwalają na dodawanie uwag, które nie wpływają na wykonanie programu, ale znacząco przyczyniają się do jego zrozumienia. Ograniczanie się jedynie do komentarzy wieloliniowych oznaczonych przez /* */ pomija inne, równie istotne metody komentowania, które są dostępne w PHP. Innym błędem jest sugerowanie, że <?php ?> oraz // są metodami komentowania. Znak <?php ?> służy do otwierania bloku kodu PHP, a nie do tworzenia komentarzy, co jest fundamentalnym nieporozumieniem. Wprowadzenie znaku <!-- --> jako sposobu na komentowanie w PHP jest również mylące, ponieważ ten zapis jest używany w HTML, a nie w PHP, co prowadzi do nieporozumień dotyczących kontekstu użycia. Użycie nieodpowiednich znaków do komentowania może prowadzić do problemów w interpretacji kodu przez interpreter PHP oraz utrudniać jego konserwację. Właściwe rozumienie mechanizmów komentowania jest kluczowe dla każdej osoby programującej w PHP, ponieważ pozwala na tworzenie bardziej czytelnych, zrozumiałych i utrzymywalnych skryptów.

Pytanie 2

Przedstawione zapytanie SQL przydziela uprawnienie SELECT

GRANT SELECT ON hurtownia.*
TO 'sprzedawca'@'localhost';
A. do wszystkich kolumn w tabeli hurtownia
B. dla użytkownika root na serwerze sprzedawca
C. do wszystkich tabel w bazie hurtownia
D. dla użytkownika root na serwerze localhost
Polecenie GRANT SELECT ON hurtownia.* pozwala na przyznanie prawa do wykonywania operacji SELECT na wszystkich tabelach w bazie danych hurtownia. Użycie symbolu * po nazwie bazy danych wskazuje na wszystkie tabele w tej konkretnej bazie. Jest to standardowe podejście w systemach zarządzania bazami danych takich jak MySQL, gdzie specyfikacja bazy danych z symbolem * oznacza pełny zakres tabel. Praktycznie oznacza to, że użytkownik ma możliwość przeglądania danych ze wszystkich tabel bez możliwości modyfikacji czy usuwania danych. Takie rozwiązanie stosowane jest często w przypadku ról użytkowników, którzy potrzebują jedynie dostępu do raportowania i analizy danych. Dobre praktyki w zakresie zarządzania uprawnieniami zalecają przydzielanie dokładnie takich praw, jakie są potrzebne do wykonania określonych zadań, co ogranicza ryzyko niepożądanych zmian w bazie danych. Warto zaznaczyć, że precyzyjne zarządzanie prawami dostępu jest kluczowe dla bezpieczeństwa danych w każdej organizacji.

Pytanie 3

Aby uzyskać płynne przejścia obrazów w filmie, liczba klatek (niewchodzących w interakcję ze sobą) na sekundę powinna znajdować się w co najmniej takim zakresie

A. 20 - 23 fps
B. 16 - 19 fps
C. 24 - 30 fps
D. 31 - 36 fps
Wybór wartości spośród opcji takich jak 16 - 19 fps lub 20 - 23 fps nie zapewnia wystarczającej płynności obrazu w filmie. Kiedy liczba klatek na sekundę spada poniżej 24 fps, widzowie mogą doświadczyć efektów skoków w ruchu, co negatywnie wpływa na postrzeganie całości obrazu. Wartości te są przypisane do starszych technologii filmowych oraz do zastosowań, w których nie zależało na pełnej płynności. Na przykład, 18 fps był używany w niektórych wczesnych filmach niemych, ale ze względu na niewystarczającą ilość klatek na sekundę może prowadzić do niedoskonałości wizualnych. Podobnie, wybór 20 - 23 fps, chociaż teoretycznie bliższy standardowi 24 fps, w praktyce nie zapewnia odpowiedniej płynności dla współczesnych produkcji filmowych. W przypadku transmisji telewizyjnych, 30 fps jest bardziej akceptowalnym standardem, jednak nadal nie jest to idealne dla kinematografii, gdzie 24 fps preferuje się ze względu na estetykę i bardziej naturalne odwzorowanie ruchu. Wybierając niższe liczby klatek, można także napotkać problemy z synchronizacją dźwięku i obrazu, co skutkuje nieprzyjemnymi doświadczeniami wizualnymi. Dlatego warto pamiętać, że standardowe praktyki w branży filmowej są oparte na wieloletnich badaniach i doświadczeniach, które podkreślają znaczenie płynności w odbiorze wizualnym.

Pytanie 4

Ile razy zostanie wykonana zaprezentowana pętla w języku PHP, zakładając, że zmienna sterująca nie jest zmieniana wewnątrz pętli?

 for ($i = 0; $i <= 10; $i++) {
    // kod pętli
}
A. 10
B. 11
C. Nieskończenie wiele
D. 0
Nieprawidłowe odpowiedzi mogą wynikać z kilku błędnych założeń dotyczących działania pętli for. Jednym z częstszych błędów jest myślenie, że pętla for będzie iterować tylko do wartości 10, co skutkuje odpowiedzią 10. W rzeczywistości jednak warunek '$i <= 10' oznacza, że wartość 10 także jest wliczana do całkowitej liczby iteracji, przez co pętla będzie wykonana 11 razy. Z kolei odpowiedź sugerująca nieskończoną liczbę iteracji może pojawić się u osób, które nie zauważają, że zmienna $i jest inkrementowana w każdej iteracji. Warto również wspomnieć, że w przypadku początkowej wartości zmiennej $i wynoszącej 0 oraz braku modyfikacji tej zmiennej wewnątrz pętli nie może wystąpić sytuacja, w której pętla nie kończy się, co prowadzi do błędnego wniosku o 0 iteracjach. Kluczowe jest zrozumienie, jak struktura pętli for działa i jakie warunki wpływają na liczbę jej iteracji. Świadomość tych zasad jest niezbędna do pisania efektywnego i poprawnego kodu w PHP oraz innych językach programowania.

Pytanie 5

Poniżej przedstawiono sposób obsługi:

<?php
if (!isset($_COOKIE[$nazwa]))
    echo "nie ustawiono!";
else
    echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. ciasteczek
B. sesji
C. baz danych
D. zmiennych tekstowych
Analizując przedstawione odpowiedzi, najpierw rozważmy zmienne tekstowe. Kod PHP nie odnosi się bezpośrednio do operacji na zmiennych tekstowych, które zazwyczaj obejmują manipulację ciągami znaków przy użyciu funkcji takich jak strlen czy str_replace. Kod dotyczy mechanizmu przechowywania danych między żądaniami HTTP, co nie jest typowe dla obsługi zmiennych tekstowych. Kolejna opcja to baza danych. Skrypty PHP często współpracują z bazami danych w celu przechowywania i pobierania danych, ale w tym przypadku żadna operacja na bazie danych nie jest wykonywana. Nie ma użytych funkcji typowych dla obsługi baz danych, takich jak mysqli_query czy PDO. Skrypt nie ustanawia połączenia z bazą danych ani nie wykonuje zapytań. Natomiast sesje to mechanizm do przechowywania danych o użytkownikach między żądaniami, ale działa inaczej niż ciasteczka. Sesje zwykle przechowują informacje na serwerze, a jedynie identyfikator sesji jest przechowywany po stronie klienta, często w ciasteczku, ale niekoniecznie. Kod nie wykorzystuje zmiennej $_SESSION, która jest typowa dla obsługi sesji. Każda z tych koncepcji ma swoje zastosowania i ograniczenia, jednak w kontekście przedstawionego kodu kluczowe jest zrozumienie, że podstawową operacją wykonywaną jest manipulacja ciasteczkami, co wyklucza inne podane rozwiązania i wskazuje na prawidłową odpowiedź jako na obsługę ciasteczek w PHP. Kod ilustruje prosty przykład sprawdzania i wyświetlania wartości ciasteczka, co jest podstawowym zastosowaniem tej technologii po stronie klienta.

Pytanie 6

Która komenda algorytmu odpowiada graficznej wizualizacji bloku przedstawionego na ilustracji?

Ilustracja do pytania
A. n > 20
B. n <- n + 5
C. Wykonaj podprogram sortowania tablicy t
D. Wypisz n
Analizując dostępne opcje należy zrozumieć że poprawna identyfikacja elementów algorytmu zależy od znajomości symboli używanych w schematach blokowych. Wybór n>20 jako poprawnej odpowiedzi wynika z rozpoznania rombu jako symbolu decyzji. Opcja Wypisz n sugeruje operację wyjściową która w schematach blokowych zwykle reprezentowana jest przez prostokąt z zakrzywionymi narożnikami co oznacza wyświetlanie wartości zmiennej. Instrukcja n <- n + 5 jest przykładem operacji przypisania lub inkrementacji która zazwyczaj oznacza modyfikację wartości zmiennej i byłaby przedstawiona jako prostokąt oznaczający proces. Natomiast Wykonaj podprogram sortowania tablicy t to wywołanie funkcji które także mieści się w zakresie standardowego bloku procesowego. Wybór tych opcji wskazuje na brak poprawnego zrozumienia jakie typy operacji reprezentują różne kształty w schematach blokowych co może prowadzić do błędów w projektowaniu algorytmów. Zrozumienie znaczenia każdego bloku jest kluczowe w procesie tworzenia dokładnych i funkcjonalnych modeli algorytmicznych które są podstawą efektywnego rozwiązywania problemów w informatyce i inżynierii oprogramowania. Warto zwrócić uwagę na standardy takie jak UML czy BPMN które także definiują podobne symbole i konwencje co ułatwia komunikację i dokumentację w zespołach projektowych.

Pytanie 7

Jakie polecenie należy zastosować, aby cofnąć uprawnienia przyznane użytkownikowi?

A. DROP PRIVILEGES
B. GRANT NO PRIVILEGES
C. REVOKE
D. REMOVE
Polecenie REVOKE jest standardowym poleceniem w systemach zarządzania bazami danych, które służy do odebrania wcześniej przyznanych uprawnień użytkownikowi. Używając tego polecenia, administrator może skutecznie kontrolować dostęp do różnych zasobów w bazie danych. Na przykład, jeśli użytkownik A otrzymał uprawnienia do edytowania danych w tabeli 'Zamówienia', a administrator postanowi, że użytkownik A nie powinien mieć już takich uprawnień, może użyć polecenia REVOKE, aby je odebrać. W praktyce użycie REVOKE wygląda następująco: "REVOKE UPDATE ON Zamówienia FROM 'użytkownikA'". Dzięki temu podejściu administratorzy mogą zapewnić, że dostęp do wrażliwych danych jest odpowiednio zarządzany i zgodny z zasadami bezpieczeństwa danych. Dobrą praktyką jest regularne przeglądanie przyznanych uprawnień i ich aktualizacja w zależności od zmieniających się potrzeb organizacji oraz polityki zarządzania dostępem.

Pytanie 8

Dla strony internetowej stworzono grafikę rysunek.jpg o wymiarach: szerokość 200 px, wysokość 100 px. Jak można wyświetlić tę grafikę jako miniaturę – pomniejszoną z zachowaniem proporcji, używając znacznika?

A. <img src="rysunek.png">
B. <img src="rysunek.png" style="width: 25px; height:50px;">
C. <img src="rysunek.png" style="width: 50px">
D. <img src="rysunek.png" style="width: 25px; height:25px;">
Pozostałe odpowiedzi niestety nie trzymają się zasady zachowania proporcji, jak zmniejszamy grafikę. W pierwszej opcji, <img src="rysunek.png" style="width: 25px; height:50px"> zestawione wartości szerokości i wysokości są krzywe, co powoduje zniekształcenie obrazu. Oryginalny rysunek ma proporcje 2:1, a tu wychodzi 1:2, co może wprowadzać ludzi w błąd. W trzeciej opcji, <img src="rysunek.png"> brak wskazania szerokości i wysokości sprawia, że obrazek wyświetla się w swoim pierwotnym rozmiarze, a to nie jest cel, bo chcemy mieć miniaturę. A ostatnia odpowiedź, <img src="rysunek.png" style="width: 25px; height:25px;"> ustala jednakowe wymiary, przez co wychodzi kwadratowa miniaturka, co nie zgadza się z oryginalnymi proporcjami. Generalnie, niepoprawne odpowiedzi mogą wynikać z braku zrozumienia, dlaczego dbanie o proporcje w grafikach jest takie ważne. To kluczowe zagadnienie w projektowaniu stron, bo dobre proporcje to podstawa estetyki i funkcjonalności wizualnych elementów na stronie.

Pytanie 9

Na stronie internetowej znajduje się formularz, do którego trzeba zaprogramować następujące funkcje:
– walidacja: podczas wypełniania formularza na bieżąco jest kontrolowana poprawność danych
– przesyłanie danych: po wypełnieniu formularza i jego zatwierdzeniu informacje są przesyłane do bazy danych na serwerze
Aby zrealizować tę funkcjonalność w możliwie najprostszy sposób, należy zapisać

A. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
B. walidację i przesyłanie danych w języku PHP
C. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
D. walidację i przesyłanie danych w języku JavaScript
Walidacja w języku JavaScript jest kluczowym elementem tworzenia interaktywnych formularzy internetowych, ponieważ pozwala na sprawdzenie poprawności danych w czasie rzeczywistym, zanim użytkownik prześle formularz na serwer. Dzięki temu użytkownik otrzymuje natychmiastową informację zwrotną i może poprawić ewentualne błędy, co znacząco poprawia doświadczenie użytkownika. Typowe przykłady walidacji obejmują sprawdzanie, czy pola nie są puste, czy wprowadzone dane odpowiadają oczekiwanemu formatowi (np. adres e-mail czy numer telefonu). Po zatwierdzeniu formularza, przesyłanie danych do bazy danych powinno odbywać się przez skrypt PHP, który efektywnie obsługuje komunikację z serwerem i umożliwia zapis danych w bazie. PHP jest powszechnie stosowany w backendzie, co czyni go idealnym wyborem do przetwarzania i przechowywania danych. Przy takiej architekturze aplikacji webowej korzystamy z dobrych praktyk, takich jak oddzielenie logiki frontendowej od backendowej, co zwiększa bezpieczeństwo oraz łatwość w utrzymaniu aplikacji. Ponadto, zastosowanie AJAX w JavaScript do asynchronicznego przesyłania danych bez przeładowania strony stanowi dodatkowy atut, który poprawia płynność działania aplikacji.

Pytanie 10

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

A. CREATE DATABASE
B. ALTER TABLE
C. INSERT INTO
D. CREATE TABLE
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 11

Którą relację w projekcie bazy danych należy ustalić między tabelami widocznymi na ilustracji zakładając, że każdy klient sklepu internetowego dokona przynajmniej dwóch zamówień?

Ilustracja do pytania
A. n:n
B. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
C. 1:n, gdzie 1 jest po stronie Zamówienia, a wiele po stronie Klienta
D. 1:1
W tym zadaniu pułapka polega głównie na poprawnym zrozumieniu biznesowego sensu relacji. Opis mówi jasno, że mamy tabelę Klient i tabelę Zamówienie w sklepie internetowym oraz że każdy klient złoży co najmniej dwa zamówienia. To automatycznie sugeruje relację, w której pojedynczy klient jest powiązany z wieloma zamówieniami, ale każde konkretne zamówienie należy tylko do jednego klienta. Relacja 1:1 między Klientem a Zamówieniem byłaby sensowna wtedy, gdyby na jednego klienta przypadało dokładnie jedno zamówienie. W praktyce systemów sprzedażowych to bardzo rzadki przypadek i raczej zły model. Prowadziłby do sytuacji, że dla kolejnego zamówienia tego samego klienta trzeba by tworzyć nowy rekord klienta, czyli duplikować dane osobowe, adres, NIP itd. To łamie podstawowe zasady normalizacji (szczególnie pierwszą i trzecią postać normalną) i bardzo utrudnia późniejsze raportowanie. Relacja n:n sugeruje, że jedno zamówienie mogłoby należeć do wielu klientów, a jeden klient do wielu zamówień jednocześnie, przy czym do poprawnego odwzorowania takiej relacji trzeba by wprowadzić tabelę pośredniczącą, np. Klient_Zamówienie. W kontekście sklepu internetowego takie założenie jest nielogiczne: jedno zamówienie ma jednego właściciela, nie ma sensu aby ten sam koszyk zakupowy był przypisany do kilku różnych klientów. Relacja n:n jest typowa raczej dla powiązań typu Produkt–Zamówienie (wiele produktów w wielu zamówieniach), a nie Klient–Zamówienie. Z kolei relacja 1:n odwrócona, gdzie „1” jest po stronie Zamówienia, a „n” po stronie Klienta, oznaczałaby, że jedno zamówienie może być przypisane do wielu klientów. To dokładnie odwrócenie poprawnego modelu i w praktyce niewykonalne biznesowo – kto byłby płatnikiem, kto odbiorcą, jak liczyć historię zakupów? Taki projekt łamie też zasadę jednoznacznej odpowiedzialności rekordu: zamówienie powinno mieć jednego, jasno określonego właściciela. Typowym błędem myślowym przy takich pytaniach jest mylenie relacji Klient–Zamówienie z relacją Zamówienie–Produkt. Tam rzeczywiście często stosuje się n:n z tabelą pośrednią (pozycje zamówienia). Warto zawsze zatrzymać się i odpowiedzieć sobie na proste pytanie: czy ten obiekt może realnie „należeć” do więcej niż jednego innego obiektu? W przypadku zamówienia odpowiedź brzmi: nie, dlatego poprawnym podejściem jest właśnie relacja 1:n z jednym klientem i wieloma jego zamówieniami.

Pytanie 12

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
B. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
C. Wyświetli długość tekstu ze zmiennej n
D. Przypisze zmienną n do zmiennej s
Analizując błędne odpowiedzi można zauważyć kilka typowych nieporozumień związanych z właściwością length w JavaScript. Pierwszym z nich jest mylne założenie że length służy do wycinania fragmentu napisu co sugeruje odpowiedź o przypisaniu zmiennej s fragmentu napisu. W rzeczywistości length to właściwość która zwraca liczbę elementów w stringu a nie jego część. Aby wyciąć fragment stringa należy użyć metod takich jak slice lub substring które są przeznaczone do tego celu. Kolejne nieporozumienie polega na traktowaniu length jako funkcji która wyświetla długość napisu. Właściwość length po prostu zwraca wartość dlatego jeśli chcemy ją wyświetlić musimy użyć dodatkowych konstrukcji takich jak console.log w środowisku programistycznym przeglądarki. Następne potencjalne nieporozumienie związane jest z przypisaniem zmiennej n do zmiennej s. Bezpośrednie przypisanie całego stringa do innej zmiennej wymagałoby użycia operatora przypisania (=) bez kontekstu length. Takie błędne rozumowanie często wynika z nieuwagi lub braku doświadczenia w pracy z właściwościami obiektów w JavaScript. Programując w tym języku warto pamiętać że każda właściwość i metoda ma swoje konkretne zastosowanie i przeznaczenie stąd znajomość ich specyfiki jest kluczowa dla efektywnego kodowania. Dzięki tej wiedzy programista może unikać typowych pułapek i optymalizować procesy przetwarzania danych co jest szczególnie istotne w kontekście aplikacji webowych rozwijanych w JavaScript.

Pytanie 13

W SQL, aby dodać nowy wiersz do bazy danych, należy użyć polecenia

A. SELECT ROW
B. CREATE ROW
C. CREATE INTO
D. INSERT INTO
Wybór innych opcji zamiast 'INSERT INTO' wskazuje na nieporozumienie dotyczące podstawowych komend SQL. 'SELECT ROW' nie jest poprawnym poleceniem w SQL i nie służy do wstawiania danych. W SQL 'SELECT' jest używane do pobierania danych z bazy, a nie do ich wstawiania. Takie myślenie może prowadzić do błędnego założenia, że wystarczy jedynie wybrać dane, aby je dodać. Z kolei 'CREATE ROW' i 'CREATE INTO' są także niepoprawnymi komendami, ponieważ nie istnieją w standardzie SQL. 'CREATE' jest używane do definicji nowych struktur, takich jak tabele czy bazy danych, a nie do operacji wstawiania danych. Użytkownicy mogą mylić proces tworzenia z procesem dodawania, co prowadzi do zamieszania w zakresie funkcji każdej z komend. To zrozumienie jest kluczowe, ponieważ skutkuje tym, że nieprawidłowe komendy mogą prowadzić do błędów przy próbie interakcji z bazą danych, a w konsekwencji do utraty danych lub naruszenia integralności bazy. Właściwe przyswojenie funkcji 'INSERT INTO' jest zatem niezbędne dla efektywnej pracy z bazami danych.

Pytanie 14

Jakie polecenie wydane z terminala systemu operacyjnego, które zawiera opcję --repair, pozwala na naprawę bazy danych?

A. mysqlcheck
B. mysqldump
C. create
D. truncate
Polecenie mysqlcheck jest narzędziem dostarczanym przez system zarządzania bazami danych MySQL, które służy do sprawdzania, naprawiania i optymalizowania tabel w bazach danych. Opcja --repair w tym kontekście umożliwia automatyczne naprawienie uszkodzonych tabel, co jest istotne dla zachowania integralności danych. Użytkownicy mogą zastosować to polecenie w sytuacjach, gdy występują problemy z danymi, na przykład po awarii systemu lub nieprawidłowym zamknięciu serwera. Przykład użycia to: 'mysqlcheck --repair --databases nazwa_bazy', co sprawia, że narzędzie automatycznie przeszuka wszystkie tabele w danej bazie i podejmie próby ich naprawy. Warto również zauważyć, że mysqlcheck pozwala na optymalizację tabel, co może przyspieszyć działanie bazy danych. W kontekście standardów, MySQL jako jeden z najpopularniejszych systemów bazodanowych jest szeroko stosowany w różnych aplikacjach, co czyni to narzędzie niezbędnym dla administratorów baz danych.

Pytanie 15

Narzędzie phpMyAdmin służy do administrowania serwerem

A. WWW
B. FTP
C. baz danych
D. plików
Poprawnie – phpMyAdmin to narzędzie służące do administrowania serwerem baz danych, najczęściej MySQL lub MariaDB. Działa jako aplikacja webowa, czyli obsługujesz ją przez przeglądarkę, ale jej głównym zadaniem nie jest zarządzanie stroną WWW, tylko właśnie strukturą i danymi w bazie. Dzięki phpMyAdmin możesz tworzyć nowe bazy danych, zakładać i usuwać tabele, definiować typy kolumn, klucze główne i obce, indeksy, a także wykonywać zapytania SQL, eksportować i importować dane (np. do formatu SQL, CSV, czasem też JSON), robić backupy i przywracać je, zarządzać użytkownikami i ich uprawnieniami do konkretnych baz. W praktyce, gdy stawiasz stronę w PHP opartą na WordPressie, Joomla czy autorskim CMS-ie, to bardzo często pierwsze narzędzie, po które się sięga do ogarnięcia bazy, to właśnie phpMyAdmin. Z mojego doświadczenia to jest taki „szwajcarski scyzoryk” do MySQL – niby prosty interfejs, ale pod spodem pełna moc SQL-a. Warto też wiedzieć, że phpMyAdmin nie zastępuje poprawnie napisanego kodu aplikacji czy mechanizmów migracji baz danych, ale w codziennej pracy administratora i programisty webowego jest niesamowicie przydatny: do szybkiego podglądu rekordów, debugowania problemów z danymi, sprawdzania wydajności zapytań czy ręcznej korekty błędnie zapisanych wpisów. Dobrą praktyką jest ograniczanie dostępu do phpMyAdmina (np. przez hasło, IP, HTTPS), bo daje on bardzo szerokie możliwości ingerencji w dane – a więc jest newralgicznym punktem z punktu widzenia bezpieczeństwa.

Pytanie 16

Dla dowolnego a z zakresu (0,99) celem funkcji napisanej w języku JavaScript jest
function fun(a)
 {
    for(n=a; n <=100; n++)
    document.write(n);
    return(n);
 }

A. zwrócenie liczb z zakresu a .. 99
B. wypisanie wartości zmiennej a i zwrócenie wartości zmiennej n
C. wypisanie liczb z zakresu a .. 99 oraz zwrócenie wartości 100
D. wypisanie liczb z zakresu a .. 100 oraz zwrócenie wartości zmiennej n
Funkcja napisana w JavaScript przewiduje iterację w celu wypisania liczb z przedziału ustalonego przez zmienną 'a' do 100. W kodzie zastosowano pętlę for, która zaczyna się od wartości a, a kończy na 100. Wartość zmiennej 'n' jest używana jako iterator, zaczynając od 'a' i zwiększając się o 1 w każdym obiegu pętli, aż osiągnie 100. Warto zauważyć, że funkcja wykorzystuje metodę 'document.write()', która służy do zapisywania danych na stronie internetowej. Po zakończeniu iteracji funkcja zwraca wartość zmiennej 'n', co w kontekście tego zadania oznacza, że zwróci ona wartość 101, ponieważ po ostatniej iteracji n przekroczy wartość 100. Przykład użycia tej funkcji w praktyce może obejmować generowanie dynamicznych treści na stronach internetowych, które wymagają wyświetlenia zakresu wartości liczbowych. Warto również dodać, że zgodnie z aktualnymi standardami JavaScript, kod mógłby być bardziej elegancko zapisany, wykorzystując np. funkcję 'console.log()' zamiast 'document.write()', co jest bardziej zalecane w nowoczesnym podejściu do programowania w JavaScript.

Pytanie 17

Podczas tworzenia witryny internetowej zastosowano kod definiujący jej wygląd. Jaką szerokość przeznaczono na zawartość strony?

Ilustracja do pytania
A. 2 px
B. 560 px
C. 600 px
D. 640 px
Definiowanie szerokości elementu w CSS jest kluczowym aspektem projektowania responsywnych stron internetowych. W przedstawionym kodzie CSS zauważamy definicję width 560px która określa szerokość elementu body. Ta wartość bezpośrednio przekłada się na dostępną przestrzeń dla treści wewnętrznej tego elementu. W praktyce definiowanie szerokości w pikselach pozwala na precyzyjne kontrolowanie układu strony co jest szczególnie istotne w kontekście projektowania interfejsów użytkownika. Takie podejście jest jednak najczęściej stosowane w środowiskach gdzie mamy pełną kontrolę nad urządzeniami wyświetlającymi stronę. W kontekście nowoczesnych praktyk często stosuje się jednostki względne lub techniki takie jak media queries aby zapewnić lepszą responsywność i elastyczność. Ważne jest także rozważanie dodatkowych aspektów takich jak marginesy i wypełnienia które mogą wpływać na rzeczywistą ilość dostępnej przestrzeni na treść. Właściwe zrozumienie i zastosowanie szerokości jest kluczowe dla tworzenia estetycznych i funkcjonalnych układów strony internetowej.

Pytanie 18

Jakie informacje można uzyskać na temat normalizacji tej tabeli?

Ilustracja do pytania
A. Tabela nie jest znormalizowana
B. Tabela znajduje się w trzeciej postaci normalnej
C. Tabela znajduje się w pierwszej postaci normalnej
D. Tabela jest w drugiej postaci normalnej
Tabela nie jest znormalizowana ponieważ zawiera nieatomowe wartości w kolumnie Adres. Wartości te składają się z kilku elementów takich jak ulica kod pocztowy i miasto co jest sprzeczne z zasadą atomowości wymaganą w pierwszej postaci normalnej (1NF). Normalizacja danych jest kluczowym krokiem w projektowaniu baz danych mającym na celu eliminację redundancji i poprawę integralności danych. W praktyce dla osiągnięcia pierwszej postaci normalnej każda kolumna w tabeli powinna zawierać tylko jedną wartość co oznacza że Adres powinien być podzielony na kilka kolumn takich jak Ulica Kod Pocztowy i Miasto. Dalsze etapy normalizacji obejmują usuwanie zależności funkcyjnych oraz zapewnianie że wszystkie atrybuty niekluczowe są zależne wyłącznie od klucza głównego tabeli co jest celem drugiej i trzeciej postaci normalnej. Poprawne znormalizowanie danych ułatwia ich zarządzanie i zmniejsza ryzyko występowania niezgodności w bazie danych co jest standardem w branży IT zwłaszcza w dużych systemach informatycznych gdzie integralność danych jest kluczowa dla poprawnego działania aplikacji.

Pytanie 19

p { font-family: Arial, Helvetica, sans-serif; }
Zdefiniowany styl dla selektora p spowoduje, że tekst w paragrafie zostanie wyświetlony czcionką:
A. dekoracyjną.
B. bezszeryfową.
C. szeryfową.
D. maszynową.
W tym pytaniu łatwo się pomylić, bo wiele osób bardziej kojarzy konkretne nazwy fontów niż ich rodziny. Kluczowe jest zrozumienie, jak działa właściwość font-family w CSS. Zapis font-family: Arial, Helvetica, sans-serif definiuje listę krojów w kolejności priorytetu. Przeglądarka sprawdza po kolei: najpierw próbuje użyć Ariala, potem Helvetiki, a jeśli żaden z nich nie jest dostępny na urządzeniu, wybiera dowolny systemowy font z rodziny sans-serif. I to właśnie ostatni element – sans-serif – określa typ czcionki, czyli że ma to być krój bezszeryfowy. Czcionka szeryfowa (serif) to np. Times New Roman czy Georgia, z charakterystycznymi „ogonami” i ozdobnikami na końcach liter. Tutaj nie ma ani nazwy serif, ani generycznego słowa serif, więc nie ma podstaw, by mówić o kroju szeryfowym. Czcionka maszynowa, nazywana w CSS monospace, to taka, w której wszystkie znaki mają tę samą szerokość, jak w starych maszynach do pisania (np. Courier New). W kodzie nie pojawia się słowo monospace ani żaden typowy font maszynowy, więc to też odpada. Z kolei określenia typu „dekoracyjna” mogą mylić, bo w CSS istnieje kiedyś częściej używany generic fantasy, czasem kojarzony z ozdobnymi krojami, ale w tym przykładzie nie mamy ani fantasy, ani cursive, tylko wyraźnie sans-serif. Typowy błąd myślowy polega na tym, że ktoś patrzy na nazwę Arial i nie kojarzy jej z rodziną bezszeryfową, albo sugeruje się wyglądem przykładowego tekstu z jakiegoś edytora. W praktyce jednak to właśnie Arial i Helvetica są klasycznymi reprezentantami rodziny sans-serif. Warto patrzeć na ostatni człon deklaracji font-family – ten generyczny typ jest zawsze najważniejszą wskazówką, do jakiej kategorii należy krój pisma w danym stylu.

Pytanie 20

Aby zwiększyć wydajność operacji w bazie danych, należy skupić się na polach, które są często wyszukiwane lub sortowane

A. stworzyć oddzielną tabelę przechowującą wyłącznie te pola
B. dodać klucz obcy
C. dodać więzy integralności
D. utworzyć indeks
Dodawanie kluczy obcych nie jest bezpośrednią metodą na przyspieszenie operacji na bazie danych. Klucze obce są używane do zapewnienia integralności referencyjnej, co oznacza, że ich celem jest zapewnienie spójności danych w relacjach pomiędzy tabelami. Choć klucze obce mogą wpłynąć na wydajność w kontekście zapytań, nie przyspieszają one ani nie optymalizują wyszukiwania w obrębie pojedynczych tabel. Tworzenie osobnych tabel przechowujących tylko te pola również nie jest metodą optymalizacji efektywności wyszukiwania. Tego rodzaju podejście może prowadzić do komplikacji w zarządzaniu danymi oraz zmniejszenia wydajności przy łączeniu tabel w zapytaniach. Dodanie więzów integralności, które zapewniają, że dane w tabelach są poprawne i zgodne z określonymi zasadami, jest również istotne, ale nie wpływa bezpośrednio na szybkość operacji na bazie danych. Takie podejścia mogą prowadzić do błędnych przekonań, że poprawa wydajności bazy danych można osiągnąć poprzez wprowadzenie dodatkowych ograniczeń lub zmian w strukturze danych, co w rzeczywistości może generować dodatkowe koszty obliczeniowe przy wykonywaniu podstawowych operacji. Kluczowe jest stosowanie odpowiednich technik indeksacji, które są powszechnie uznawane za najlepszą praktykę w kontekście optymalizacji zasobów bazy danych.

Pytanie 21

Pole insert_id zdefiniowane w bibliotece MySQLi języka PHP może być wykorzystane do

A. pobrania najwyższego indeksu bazy, aby po jego zwiększeniu wstawić pod niego dane
B. uzyskania id ostatnio dodanego wiersza
C. otrzymania kodu błędu, gdy wstawienie wiersza się nie powiodło
D. uzyskania pierwszego dostępnego indeksu bazy, tak, aby można było pod nim wstawić nowe dane
Każda z niepoprawnych odpowiedzi zawiera błędne założenia dotyczące funkcji insert_id w kontekście MySQLi. Odpowiedź, która sugeruje, że pole to może być użyte do otrzymania kodu błędu w przypadku niepowodzenia procesu wstawiania wiersza, jest myląca, ponieważ kod błędu jest uzyskiwany za pomocą innych mechanizmów, takich jak mysqli_errno() oraz mysqli_error(). Takie podejście może prowadzić do nieporozumień w zarządzaniu błędami w bazach danych, co jest istotnym aspektem programowania. Ponadto, pomysł, że insert_id może być używany do pobrania najwyższego indeksu bazy, aby po jego inkrementacji wstawić nowe dane jest nieprawidłowy, ponieważ insert_id nie działa w ten sposób; identyfikator jest automatycznie generowany przez bazę danych w momencie dodawania rekordu. Takie podejście może prowadzić do trudności w synchronizacji danych i jest niezgodne z zasadami dobrego projektowania baz danych. Również koncepcja pozyskiwania pierwszego wolnego indeksu jest błędna; w praktyce nie jest zalecane ręczne zarządzanie indeksami, ponieważ może to prowadzić do konfliktów i naruszenia integralności danych. MySQL automatycznie zarządza numerami ID, co jest bardziej efektywne i zmniejsza ryzyko błędów. Wreszcie, stosując te nieprawidłowe koncepcje, programiści mogą napotkać trudności w utrzymaniu kodu i jego rozwoju, co może zwiększyć złożoność aplikacji.

Pytanie 22

Która z podanych funkcji napisanych w PHP oblicza sumę połowy a oraz połowy b?

A. function licz($a, $b) { return $a/2 + $b/2; }
B. function licz($a, $b) { return $a/2 + $b; }
C. function licz($a, $b) { return ($a/2 + $b)/2; }
D. function licz($a, $b) { return 2/$a + 2/$b; }
Jak spojrzymy na błędne odpowiedzi, to widać, że pojawiło się kilka typowych problemów. Często wynika to z mylnego rozumienia operacji matematycznych i niewłaściwego użycia operatorów. Na przykład, jeśli ktoś wybrał odpowiedź zwracającą 2/$a + 2/$b, to zamiast obliczać połówki, funkcja daje wartości odwrotne, co mija się z celem pytania. To może być spowodowane niezrozumieniem, jak działają operatory. Inna odpowiedź, która zwraca ($a/2 + $b)/2, dodaje jeszcze jedno dzielenie przez 2, co daje niepoprawny wynik, bo to już nie jest suma połowy a i b, ale połowa sumy tych połów. Z kolei odpowiedź, która zwraca $a/2 + $b, dodaje połówkę a do całej wartości b, co też niezgodne z tym, co powinno być zrobione. W programowaniu kluczowe jest rozumienie, jak działają operacje i ich poprawne zastosowanie. Te błędy pokazują, jak ważne jest dokładne analizowanie wymagań i korzystanie z testów jednostkowych, żeby upewnić się, że wszystko działa, zanim kod zostanie wdrożony. W codziennym programowaniu warto też dodawać komentarze w kodzie, bo to ułatwia innym zrozumienie, co autor miał na myśli.

Pytanie 23

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie (100, 200>, należy użyć następującego zapisu:

A. If (liczba > 100 || liczba <=200)
B. If (liczba < 100 && liczba <=200)
C. If (liczba > 100 && liczba <=200)
D. If (liczba < 100 || liczba >=200)
Wyrażenie warunkowe 'if (liczba > 100 && liczba <= 200)' jest całkiem dobrze skonstruowane. Precyzyjnie wskazuje, że interesują nas liczby od 101 do 200, z tym że 200 jest uwzględniona, a 100 już nie. Operator '&&' (AND) działa tutaj, bo musi być spełniony zarówno pierwszy, jak i drugi warunek, co jest bardzo istotne w tym przypadku. W praktyce takie warunki można często spotkać w aplikacjach webowych, szczególnie przy walidacji danych. Na przykład w formularzach, gdzie użytkownicy muszą podać wartości mieszczące się w danym zakresie. Umiejętne korzystanie z operatorów logicznych to dobra praktyka w programowaniu. Dzięki temu kod jest bardziej czytelny oraz łatwiejszy do utrzymania. Warto też pamiętać, że różne biblioteki i frameworki mają własne metody walidacji, ale znajomość podstawowych zasad programowania w JavaScript jest kluczowa, żeby móc je dobrze wykorzystywać.

Pytanie 24

Instrukcja SQL przedstawiona w formie graficznej

ALTER TABLE 'miasta'
ADD 'kod' text;
A. dodaje do tabeli kolumnę o nazwie kod typu text
B. wprowadza do tabeli dwie kolumny o nazwach: kod i text
C. zmienia nazwę tabeli miasta na nazwę kod
D. w tabeli miasta zmienia nazwę kolumny kod na nazwę text
Polecenie ALTER TABLE w SQL to naprawdę przydatne narzędzie, które pozwala na modyfikowanie struktury tabeli w bazie danych. W Twoim przypadku dodajesz nową kolumnę o nazwie 'kod' typu text do tabeli 'miasta'. To słowo kluczowe ADD oznacza, że chcemy coś dorzucić do tej tabeli. Typ text jest fajny, bo jest używany do przechowywania różnych dłuższych tekstów, co sprawia, że idealnie nadaje się do takich danych jak opisy czy kody pocztowe. Pamiętaj, że przed robieniem zmian w tabelach warto pomyśleć, jak to wpłynie na całe działanie aplikacji i procesów w firmie. Na przykład, jeśli musisz przechować dodatkowe info o miastach, jak właśnie kody pocztowe, to dodanie tego jest super pomysłem. Znajomość ALTER TABLE jest mega przydatna w zarządzaniu bazami danych, bo pozwala na elastyczne dostosowanie tabel do zmieniających się potrzeb. To naprawdę może zwiększyć efektywność systemu, jeśli dobrze to ogarniesz.

Pytanie 25

Jak można zmodyfikować nałożone na siebie fragmenty obrazu, nie zmieniając innych elementów?

A. Wykres histogramu
B. Kanał przezroczystości
C. Przycinanie
D. Warstwy
Warstwy są kluczowym elementem w edycji grafiki komputerowej, umożliwiając precyzyjne zarządzanie różnymi elementami obrazu. Dzięki zastosowaniu warstw, użytkownik może na przykład oddzielić tło od obiektów na pierwszym planie, co pozwala na edytowanie jednego z tych elementów bez wpływu na resztę kompozycji. Zastosowanie warstw jest szczególnie przydatne w programach graficznych, takich jak Adobe Photoshop, GIMP czy CorelDRAW, gdzie umożliwia łatwą manipulację oraz efektywną organizację projektu. Dzięki warstwom można również stosować różne efekty i style, takie jak cienie, przezroczystości czy gradienty, co pozwala na stworzenie bardziej złożonych i interesujących grafik. Warto również zauważyć, że korzystanie z warstw jest zgodne z najlepszymi praktykami w branży, jako że sprzyja to lepszej organizacji pracy oraz ułatwia wprowadzanie zmian w projekcie. Uczy to również umiejętności przydatnych w pracy zespołowej, gdzie różne osoby mogą pracować nad różnymi warstwami równocześnie, co zwiększa efektywność i kreatywność procesu twórczego.

Pytanie 26

W tabeli artykuly w bazie danych sklepu znajduje się pole o nazwie nowy. Jak należy wykonać kwerendę, aby wypełnić to pole wartościami TRUE dla wszystkich rekordów?

A. INSERT INTO artykuly VALUE nowy=TRUE;
B. UPDATE nowy FROM artykuly VALUE TRUE;
C. INSERT INTO nowy FROM artykuly SET TRUE;
D. UPDATE artykuly SET nowy=TRUE;
Żeby zaktualizować wartości w kolumnie 'nowy' w tabeli 'artykuły' na TRUE, musisz użyć komendy SQL UPDATE. To jest standardowy sposób, żeby zmieniać już istniejące rekordy w tabelach. W tym przypadku komenda 'UPDATE artykuly SET nowy=TRUE;' oznacza, że wszystkie rekordy w tabeli 'artykuły' będą miały pole 'nowy' ustawione na TRUE. To dość prosta i skuteczna operacja, która pozwala na jednolitą zmianę w całej tabeli. Na przykład, jeśli w tabeli 'artykuły' jest 1000 rekordów, to wszystkie z nich dostaną wartość TRUE w polu 'nowy', co może być pomocne, jeśli chcemy oznaczyć nowe produkty. Pamiętaj, żeby robić kopie zapasowe bazy danych przed takimi masowymi zmianami. To może uratować Cię od utraty ważnych danych, gdyby coś poszło nie tak. Użycie tej komendy jest zgodne z ogólnymi zasadami SQL, więc jest to bezpieczny sposób działania dla każdego, kto zarządza bazą danych.

Pytanie 27

Taki styl CSS sprawi, że na stronie internetowej

ul{ list-style-image: url('rys.gif'); }
A. rys.gif stanie się ramką dla listy nienumerowanej
B. rys.gif wyświetli się jako tło dla listy nienumerowanej
C. punkt listy nienumerowanej będzie rys.gif
D. każdy punkt listy zyska osobne tło z grafiki rys.gif
Deklaracja CSS ul{ list-style-image: url('rys.gif'); } powoduje, że każdy element listy nienumerowanej (ul) używa obrazu rys.gif jako punktora. Właściwość list-style-image pozwala na zamianę domyślnego stylu punktów listy, takiego jak kropki czy kwadraty, na dowolny obrazek. Jest to przydatne, gdy chcemy nadać stronie unikalny wygląd lub dostosować ją do identyfikacji wizualnej marki. W praktyce oznacza to, że zamiast klasycznego punktora, użytkownicy zobaczą wybrany obraz, co może wpłynąć na estetykę i czytelność strony. Ważne jest, aby obraz był odpowiednio skalowany, aby nie zaburzał układu listy. List-style-image to standardowa właściwość CSS uznawana przez większość przeglądarek, co czyni ją uniwersalnym narzędziem w rękach projektanta stron. W procesie projektowania warto upewnić się, że wybrany obrazek jest dostępny dla wszystkich użytkowników, co można osiągnąć np. poprzez dodanie atrybutu alt w wersji tekstowej listy dla lepszej dostępności.

Pytanie 28

Program napisany w PHP ma na celu obliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6.
Warunek selekcji ocen w pętli liczącej średnią powinien zawierać wyrażenie logiczne

A. $ocena > 2 or $ocena < 6
B. $ocena > 2 and $ocena < 6
C. $ocena >= 2 and $ocena <= 6
D. $ocena >= 2 or $ocena <= 6
Analiza pozostałych odpowiedzi ujawnia szereg nieporozumień dotyczących wykorzystania operatorów logicznych. W przypadku wyrażenia $ocena > 2 or $ocena < 6, pojawia się problem z interpretacją, ponieważ ta konstrukcja pozwalałaby na zaakceptowanie ocen, które są znacznie poniżej 2 lub powyżej 6. Na przykład, ocena 1 spełniałaby ten warunek, co jest absolutnie niezgodne z założeniem dotyczącym obliczania średniej pozytywnych ocen. Podobnie, w odpowiedzi $ocena >= 2 or $ocena <= 6, znowu występuje niebezpieczeństwo, gdyż oceny mniejsze niż 2 lub większe niż 6 również by przeszły, co jest w sprzeczności z oczekiwanym zakresem ocen. Odpowiedź $ocena > 2 and $ocena < 6 nie uwzględnia ocen 2 oraz 6, co znacząco zawęża zakres, a tym samym ogranicza pełen przekrój danych, które powinny być brane pod uwagę przy obliczaniu średniej. Takie błędne podejścia są rezultatem nieprecyzyjnego rozumienia logiki i zakresu danych. Kluczowe jest, aby przy definiowaniu warunków logicznych rozumieć konsekwencje używanych operatorów, co stanowi fundamentalny element programowania. Wybór odpowiednich operatorów i ich logiczne połączenie są kluczowe dla zapewnienia, że w przetwarzanych danych zostaną uwzględnione tylko te wartości, które są zgodne z ustalonymi kryteriami.

Pytanie 29

Kolor zielony w skróconej notacji szesnastkowej można zapisać w CSS jako sekwencję

A. #0F0
B. #00F
C. #F00
D. #FFF
Kolor zielony w notacji szesnastkowej skróconej, zapisany jako #0F0, jest standardowym sposobem reprezentacji koloru w CSS. W tej notacji każdy kanał koloru (czerwony, zielony, niebieski) jest reprezentowany przez dwucyfrową liczbę szesnastkową. W przypadku koloru zielonego, kanał czerwony jest ustawiony na 0, kanał zielony na maksymalną wartość (FF) i kanał niebieski na 0. Wartości te odpowiadają skali RGB, gdzie 0 oznacza brak koloru, a FF oznacza pełną intensywność. Przykładowo, w CSS można wykorzystać ten kolor w stylach dla elementów HTML, np. dla tła: 'background-color: #0F0;'. Dzięki temu możliwe jest osiągnięcie jasnego, intensywnego zielonego koloru. Notacja szesnastkowa jest powszechnie używana w projektowaniu webowym i jest zgodna ze standardami W3C, co czyni ją uniwersalnym narzędziem dla programistów i projektantów stron internetowych. Kolor zielony, uzyskiwany przez kombinację pełnej intensywności zielonego i braku czerwonego oraz niebieskiego, jest często wykorzystywany w interfejsach użytkownika, co czyni jego znajomość kluczową dla efektywnego projektowania stron.

Pytanie 30

Jakiego znacznika używamy do definiowania list w HTML?

A. <ul>
B. <th>
C. <tr>
D. <td>
<ul> to znacznik w języku HTML, który definiuje nienumerowaną listę, co czyni go kluczowym elementem do strukturyzacji zawartości w dokumentach. Użycie <ul> pozwala na grupowanie powiązanych elementów, co zwiększa czytelność i dostępność treści. Zgodnie z zasadami semantycznego HTML, stosowanie list poprawia organizację informacji i ułatwia ich przetwarzanie przez maszyny, w tym wyszukiwarki internetowe. Przykład zastosowania: w sekcji strony internetowej przedstawiającej cechy produktu możemy użyć <ul> do wypisania jego zalet. Dobrym zwyczajem jest także dodawanie odpowiednich znaczników <li> dla poszczególnych elementów listy. Przykład: <ul><li>Zaleta 1</li><li>Zaleta 2</li></ul>. Dzięki temu tworzony jest bardziej przejrzysty i strukturalny układ treści, co przekłada się na lepsze doświadczenia użytkownika oraz spełnia standardy W3C dotyczące semantyki HTML.

Pytanie 31

W poniższym zapytaniu SQL, co oznacza symbol gwiazdki w jego wyniku?

SELECT * FROM mieszkancy WHERE imie = 'Anna';
A. pokazanie pola o nazwie '*' (gwiazdka)
B. wyświetlenie wszystkich kolumn z tabeli mieszkancy
C. zignorowanie warunku dotyczącego imienia
D. wyświetlenie wszystkich rekordów z tabeli mieszkancy
W zapytaniu SQL znak gwiazdki (*) nie oznacza wyświetlenia wszystkich rekordów w tabeli, lecz wskazuje, że w wyniku zapytania mamy otrzymać wszystkie kolumny. To ważne rozróżnienie, ponieważ mylenie tych pojęć prowadzi do nieporozumień dotyczących struktury wyników. Każde zapytanie z gwiazdką ograniczone jest jedynie kolumnami nie rekordami. W tym przypadku część WHERE imie = 'Anna' dodatkowo sie mplementuje ograniczenie do konkretnych rekordów co należy do odrębnej części logiki zapytania. Z kolei interpretacja gwiazdki jako pola o nazwie '*' jest błędnym założeniem ponieważ w standardzie SQL nie istnieje możliwość nadania pola o takiej nazwie poprzez użycie gwiazdki. Gdybyśmy chcieli wyświetlić pole o konkretnej nazwie musielibyśmy użyć jego dokładnej nazwy a nie gwiazdki. Interpretacja gwiazdki jako zignorowania warunku WHERE również jest niepoprawna ponieważ WHERE jest integralną częścią zapytania SQL określającą kryteria filtrowania rekordów i działa niezależnie od gwiazdki. Zrozumienie różnic między wyborem kolumn a wyborem rekordów jest kluczowe dla prawidłowego konstruowania zapytań SQL i optymalizacji ich działania w praktycznych zastosowaniach.

Pytanie 32

Gdzie powinien być umieszczony znacznik meta w języku HTML?

A. w obrębie znaczników paragrafu.
B. w dolnej części witryny internetowej.
C. w obrębie znaczników <body> ... </body>
D. w sekcji nagłówkowej strony.
Znacznik meta języka HTML jest kluczowym elementem, który powinien znajdować się w sekcji nagłówkowej witryny, oznaczonej znacznikami <head> ... </head>. Znaczniki meta dostarczają przeglądarkom oraz wyszukiwarkom internetowym informacji o stronie, takich jak jej opis, słowa kluczowe, a także informacje dotyczące kodowania czy autorstwa. Przykładowo, znacznik <meta charset="UTF-8"> informuje przeglądarkę o używanym kodowaniu znaków, co jest istotne dla prawidłowego wyświetlania tekstu w różnych językach. Dodatkowo, metadane takie jak <meta name="description" content="Opis strony"> są często wykorzystywane przez wyszukiwarki do generowania opisów w wynikach wyszukiwania, co może wpłynąć na wskaźnik klikalności (CTR) w SERP. Warto również dodać, że znaczniki meta mogą być używane do definiowania polityki prywatności i zabezpieczeń, na przykład poprzez <meta http-equiv="X-UA-Compatible" content="IE=edge">. Użycie odpowiednich metadanych w nagłówku jest zatem kluczowe dla optymalizacji SEO oraz zapewnienia odpowiedniej interakcji użytkowników z witryną.

Pytanie 33

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

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

Pytanie 34

W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. zaindeksować zmienną tab, tab[0] to pierwsze imię
B. użyć polecenia mysql_fetch
C. wyświetlić zmienną $db
D. zastosować pętlę z poleceniem mysqli_fetch_row
Pojawiające się koncepcje w odpowiedziach błędnych wskazują na niezrozumienie procesu pobierania danych z bazy danych w PHP. Zaindeksowanie zmiennej tab, w myśli o tym, że tab[0] zwróci pierwsze imię, jest podejściem, które nie uwzględnia, że zmienna $tab nie jest tablicą, lecz wynikiem zapytania, które może zawierać wiele wierszy. Otrzymujemy obiekt typu mysqli_result, który musi być przetworzony przez odpowiednie funkcje, a nie za pomocą prostego indeksowania. Zastosowanie polecenia mysql_fetch jest również niepoprawne, ponieważ mysql_fetch jest przestarzałą funkcją z rodziny mysql, która nie jest już wspierana i powinna być zastąpiona przez mysqli_fetch_ lub PDO. Wyświetlanie zmiennej $db nie ma sensu w kontekście uzyskania wyników zapytania, ponieważ zmienna ta odnosi się do połączenia z bazą danych, a nie do danych z zapytania. Te błędne podejścia prowadzą do szerszego problemu, którym jest brak znajomości mechanizmów obsługi baz danych w PHP oraz różnicy między różnymi typami metod dostępu do danych. Kluczowe jest, aby nie tylko znać składnię, ale także rozumieć koncepty stojące za pobieraniem i przetwarzaniem danych w systemach baz danych. Właściwe podejście do zarządzania danymi wymaga umiejętności korzystania z odpowiednich funkcji oraz znajomości struktur danych, które są wykorzystywane w PHP.

Pytanie 35

W stylu CSS zdefiniowano klasę uzytkownik:

p.uzytkownik {
    color: blue;
}
Na stronie będą wyświetlane czcionką w kolorze niebieskim:
A. wszystkie akapity.
B. wszystkim elementom w sekcji <body> z przypisaną klasą uzytkownik.
C. tylko elementy tekstowe typu <p>, <h1>.
D. paragrafy, do których została przypisana klasa uzytkownik.
Deklaracja selektora p.uzytkownik oznacza w CSS połączenie selektora typu z selektorem klasy. Innymi słowy: przeglądarka wybierze tylko te elementy <p>, które mają w atrybucie class wpisaną klasę uzytkownik, np. <p class="uzytkownik">Treść</p>. Sama kropka przed nazwą klasy definiuje selektor klasy, a litera p przed kropką zawęża go wyłącznie do paragrafów. Gdyby w stylu było samo .uzytkownik { color: blue; }, wtedy reguła objęłaby wszystkie elementy z tą klasą, niezależnie czy to <p>, <div>, <h1> czy cokolwiek innego. Moim zdaniem to jedno z podstawowych, ale bardzo ważnych rozróżnień w CSS: kombinacja selektorów pozwala dokładnie kontrolować, które elementy są stylowane. Dzięki temu nie trzeba nadawać unikalnych klas dla każdego typu elementu, tylko łączyć selektor typu (np. p, h1, li) z klasą, gdy jest to potrzebne. W praktyce w projektach spotyka się dużo takich zapisów: np. li.active, a.button-primary, input.error. To pomaga utrzymać porządek w arkuszu stylów i unikać niepotrzebnie szerokiego działania reguł. Warto też zwrócić uwagę na specyficzność: p.uzytkownik ma większą specyficzność niż samo p, ale mniejszą niż np. #idElementu. Przy konfliktach stylów przeglądarka bierze to pod uwagę. Dobra praktyka jest taka, żeby nie pisać zbyt ogólnych selektorów, które kolorują „pół strony” przypadkiem. Taki selektor jak w pytaniu jest bezpieczny i precyzyjny – wiadomo dokładnie, że kolor niebieski trafi tylko do tych paragrafów, którym świadomie przypiszemy klasę uzytkownik w HTML.

Pytanie 36

Zmienna należąca do typu integer lub int jest w stanie przechować

A. liczbę całkowitą
B. ciąg znaków
C. znak
D. liczbę rzeczywistą
Typ zmiennych integer, czyli int, jest super ważny w programowaniu, bo służy do przechowywania liczb całkowitych. To takie liczby, co nie mają części dziesiętnych. Jest sporo języków programowania, które go używają, na przykład C++, Java czy Python. Głównie dzięki nim możemy efektywnie przechowywać i operować na tych liczbach. Wartości tego typu mogą być różne w zależności od systemu, na przykład w 32-bitowym typ int przechowuje liczby od -2 147 483 648 do 2 147 483 647. Używamy liczb całkowitych w różnych algorytmach, zwłaszcza tam, gdzie liczy się precyzja, jak w zliczaniu elementów albo w operacjach matematycznych. W standardzie C99 mamy różne typy całkowite, co pomaga w dokładnym określeniu, co potrzebujemy. Moim zdaniem, ogarnięcie typu integer to podstawa dla każdego, kto chce coś programować, bo na tym buduje się operacje matematyczne i logiczne.

Pytanie 37

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

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

Wskaż prawidłową definicję funkcji w języku JavaScript?

A. new nazwa_funkcji(argumenty) {instrukcje;}
B. function nazwa_funkcji(argumenty) {instrukcje;}
C. nazwa_funkcji(argumenty) {instrukcje;}
D. typ_funkcji nazwa_funkcji(argumenty) {instrukcje;}
Definicja funkcji w języku JavaScript przy użyciu słowa kluczowego 'function' jest standardowym sposobem deklaracji funkcji. Poprawny zapis 'function nazwa_funkcji(argumenty) {instrukcje;}' jasno wskazuje, że tworzona jest nowa funkcja, której nazwa oraz argumenty są zdefiniowane. Przykładowo, można stworzyć funkcję dodającą dwie liczby: 'function dodaj(a, b) { return a + b; }'. Funkcje w JavaScript mogą być wywoływane w dowolnym miejscu w kodzie, co czyni je niezwykle elastycznymi. Dodatkowo, dzięki temu, że JavaScript obsługuje funkcje jako obiekty pierwszej klasy, można je przekazywać jako argumenty do innych funkcji, przypisywać do zmiennych oraz zwracać z innych funkcji. Warto również zauważyć, że w kontekście dobrych praktyk, używanie funkcji z jasnymi nazwami i dobrze zdefiniowanymi argumentami zwiększa czytelność oraz utrzymanie kodu, co jest istotne w pracy zespołowej oraz przy rozwijaniu większych aplikacji.

Pytanie 39

Przygotowując raport w systemie zarządzania relacyjnymi bazami danych, można uzyskać

A. aktualizowanie danych w tabelach
B. usuwanie danych z tabel
C. dodawanie danych do tabel
D. analizę wybranych danych
W kontekście systemów obsługi relacyjnych baz danych, raportowanie odgrywa kluczową rolę w analizie danych. Wykonywanie raportu umożliwia użytkownikom dostęp do wybranych informacji, co pozwala na podejmowanie świadomych decyzji opartych na danych. Analiza danych to proces przetwarzania informacji w celu wydobycia wartościowych wniosków. Przykłady zastosowania to generowanie raportów sprzedażowych, finansowych czy analizy trendów klientów. W raportach można wykorzystać różne techniki, takie jak filtrowanie, grupowanie czy agregowanie danych, co umożliwia prezentację wyników w przystępnej formie graficznej. Dodatkowo, standardy takie jak SQL (Structured Query Language) są powszechnie używane do wykonywania zapytań w relacyjnych bazach danych, co pozwala na efektywne przeszukiwanie i analizowanie danych. W praktyce, raporty mogą być generowane na podstawie zapytań do bazy danych i mogą obejmować różne parametry, co zwiększa ich użyteczność w podejmowaniu decyzji strategicznych i operacyjnych.

Pytanie 40

Która z poniższych funkcji w języku PHP zamienia słowo "kota" na "mysz" w ciągu "ala ma kota"?

A. str_replace("ala ma kota", "kota", "mysz");
B. str_replace( "kota", "mysz", "ala ma kota");
C. replace("ala ma kota", "kota", "mysz");
D. replace("kota", "mysz", "ala ma kota");
Odpowiedzi, które nie wykorzystują funkcji str_replace, są nieprawidłowe, ponieważ nie uwzględniają właściwej składni oraz logiki działania funkcji w PHP. Przykładowo, w pierwszej odpowiedzi funkcja replace nie istnieje w standardowej bibliotece PHP. Użytkownicy mogą myśleć, że jakakolwiek funkcja o nazwie replace jest wystarczająca do zamiany tekstu, ale w rzeczywistości PHP wymaga zastosowania funkcji str_replace, aby uzyskać zamierzony efekt. Podobnie, trzecia odpowiedź wykorzystuje niewłaściwą kolejność argumentów, co prowadzi do nieporozumienia dotyczącego działania funkcji. W funkcji str_replace pierwszy argument powinien być szukanym ciągiem, a nie tekstem źródłowym. Czwarta odpowiedź również wprowadza w błąd, ponieważ umieszcza tekst źródłowy w pierwszym argumencie, co jest niezgodne z dokumentacją funkcji. Użytkownicy muszą zrozumieć, że poprawne zrozumienie argumentów w funkcjach jest kluczowe dla ich poprawnego działania. Typowe błędy myślowe prowadzące do takich wniosków często wynikają z braku znajomości dokumentacji PHP, co jest kluczowe dla efektywnego programowania. Dlatego warto zaznajomić się z oficjalną dokumentacją oraz przykładami użycia, aby unikać takich pomyłek w przyszłości.