Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 7 maja 2026 19:02
  • Data zakończenia: 7 maja 2026 19:15

Egzamin zdany!

Wynik: 37/40 punktów (92,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

W języku PHP nie można wykonać

A. Dynamicznej zmiany treści strony HTML w przeglądarce
B. Operacji na danych zgromadzonych w bazie danych
C. Obsługiwania danych z formularzy
D. Tworzenia dynamicznej treści strony
Zmienianie dynamiczne zawartości strony HTML w przeglądarce nie jest możliwe za pomocą języka PHP, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP generuje kod HTML, który jest następnie przesyłany do przeglądarki, ale nie ma możliwości modyfikacji tego kodu po jego załadowaniu. Przykładowo, gdy użytkownik wypełnia formularz na stronie i przesyła dane, PHP może przetworzyć te dane na serwerze, ale wszelkie zmiany muszą być wysłane do przeglądarki jako nowa strona lub w odpowiedzi Ajax. W praktyce oznacza to, że dla dynamicznych interakcji na stronie, takich jak zmiana zawartości bez przeładowania, stosuje się JavaScript, który działa po stronie klienta i jest odpowiedzialny za manipulację DOM. W kontekście dobrych praktyk, warto pamiętać o rozdzieleniu logiki przetwarzania danych (PHP) i interakcji użytkownika (JavaScript), co prowadzi do bardziej modułowych i łatwych w utrzymaniu aplikacji webowych.

Pytanie 2

W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia

setcookie("osoba", "Anna Kowalska", time()+(3600*24));
A. zostanie usunięty po 24 godzinach od jego stworzenia
B. będzie przechowywany na serwerze przez 24 godziny
C. będzie przechowywany na serwerze przez jedną godzinę
D. zostanie usunięty po jednej godzinie od momentu jego utworzenia
W języku PHP funkcja setcookie służy do ustawiania plików cookie w przeglądarce użytkownika. Trzeci parametr tej funkcji określa czas wygaśnięcia cookie w postaci znacznika czasowego UNIX co oznacza liczbę sekund od początku epoki UNIX (01.01.1970). W podanym kodzie użyto funkcji time która zwraca aktualny czas w sekundach i dodano do niego wartość 3600 pomnożoną przez 24. Oznacza to dodanie liczby sekund odpowiadającej jednemu pełnemu dniu (24 godziny x 3600 sekund na godzinę). Takie ustawienie skutkuje tym że plik cookie zostanie usunięty automatycznie z przeglądarki użytkownika po upływie dokładnie jednego dnia od jego stworzenia. Jest to zgodne z najlepszymi praktykami zarządzania sesjami i danymi użytkowników w aplikacjach internetowych ponieważ pozwala na kontrolę nad czasem przechowywania danych wrażliwych. Dzięki temu użytkownicy mogą być pewni że ich dane nie będą przechowywane dłużej niż to konieczne co wpływa na zwiększenie bezpieczeństwa i zaufania do aplikacji.

Pytanie 3

W przedstawionym diagramie bazy danych biblioteka, elementy: czytelnik, wypozyczenie i ksiazka są

Ilustracja do pytania
A. polami.
B. krotkami.
C. encjami.
D. atrybutami.
W diagramie bazy danych pokazanym w pytaniu elementy „czytelnik”, „wypozyczenie” i „ksiazka” to klasyczne przykłady encji. Encja w modelu relacyjnym (a dokładniej w modelu ER – Entity-Relationship) oznacza pewien typ obiektu ze świata rzeczywistego, o którym chcemy przechowywać dane w bazie. W praktyce encja odpowiada tabeli w relacyjnej bazie danych: encja CZYTELNIK → tabela czytelnik, encja KSIĄŻKA → tabela ksiazka, encja WYPOŻYCZENIE → tabela wypozyczenie. Każda z tych encji ma swój klucz główny (np. czytelnik_id, ksiazka_id, wypozyczenie_id), czyli atrybut jednoznacznie identyfikujący rekord. To jest dokładnie to, co w dobrych praktykach projektowania baz danych (np. wg standardowych metodologii ERD używanych w SQL Server, MySQL Workbench czy Oracle Data Modeler) uważa się za podstawę poprawnego modelu danych. Moim zdaniem bardzo ważne jest rozróżnienie poziomów: encja to „typ obiektu” (tabela), atrybut to „cecha obiektu” (kolumna), a krotka/rekord to „konkretne wystąpienie obiektu” (pojedynczy wiersz). Na przykład: encja CZYTELNIK opisuje wszystkich możliwych czytelników biblioteki, atrybuty tej encji to imie, nazwisko, ulica itd., a jedna konkretna krotka w tabeli czytelnik opisuje jedną osobę, np. Jana Kowalskiego z ulicy Lipowej 5. W projektowaniu systemów bibliotecznych, systemów sprzedażowych, magazynowych czy w aplikacjach webowych z bazą danych zawsze zaczyna się właśnie od zidentyfikowania encji: klient, zamówienie, produkt, faktura itd. Dopiero potem dopisuje się atrybuty, ustala relacje (tak jak tu: czytelnik – wypożyczenie – książka) i definiuje klucze obce. To podejście jest zgodne z normalizacją i ogólnymi zasadami projektowania relacyjnych baz danych – pomaga uniknąć nadmiarowości danych i błędów logicznych w aplikacji.

Pytanie 4

W jakim języku została napisana podana linia kodu

Ilustracja do pytania
A. PHP
B. Python
C. JavaScript
D. C#
Kod pokazany na obrazku jest zapisany w języku JavaScript. JavaScript jest językiem programowania, który odgrywa kluczową rolę w tworzeniu dynamicznych i interaktywnych stron internetowych. Linia kodu wykorzystuje metodę document.getElementById która jest częścią Document Object Model (DOM) w JavaScript. DOM pozwala na manipulację elementami HTML strony internetowej. W tym wypadku, metoda getElementById odwołuje się do elementu o identyfikatorze paragraf1, a właściwość innerHTML umożliwia zmianę zawartości tego elementu. To podejście jest powszechnie stosowane w celu dynamicznej aktualizacji treści na stronach bez konieczności przeładowania całej strony. Znajomość JavaScriptu pozwala na tworzenie bardziej responsywnych i atrakcyjnych wizualnie aplikacji webowych. JavaScript jest integralną częścią stosu technologii sieciowych i jest szeroko stosowany w praktycznie każdej nowoczesnej witrynie internetowej. Standardy ECMAScript definiują zasady i poprawne użycie JavaScript, co wspiera rozwój profesjonalny i zgodny z dobrymi praktykami.

Pytanie 5

Aby przywrócić bazę danych o nazwie Sklep z pliku towary.sql, należy w miejsce gwiazdek wpisać nazwę użytkownika. Polecenie wygląda następująco:

mysql -u ******* -p Sklep < towary.sql
A. liczbę importowanych obiektów bazy.
B. nazwę odzyskiwanej tabeli.
C. nazwę użytkownika.
D. adres IP bazy danych.
W tym poleceniu kluczowy jest fragment „-u *******”. Przełącznik -u w kliencie mysql zawsze oznacza nazwę użytkownika bazy danych, pod której kontem chcemy się połączyć z serwerem MySQL/MariaDB. Dlatego w miejsce gwiazdek wpisujemy konkretną nazwę użytkownika, np. root, admin, albo konto utworzone specjalnie do obsługi danej aplikacji, np. sklep_user. To jest standardowa składnia narzędzia wiersza poleceń mysql: mysql -u NAZWA_UŻYTKOWNIKA -p NAZWA_BAZY < plik.sql. Opcja -p mówi, że program ma poprosić o hasło dla tego użytkownika (nie podajemy hasła wprost w poleceniu, ze względów bezpieczeństwa). Nazwa bazy danych, do której importujemy dane, pojawia się dalej, w tym przykładzie jest to Sklep. Z kolei po znaku < podajemy plik z kopią bazy, czyli skryptem SQL zawierającym instrukcje CREATE TABLE, INSERT i inne potrzebne do odtworzenia struktury i danych. W praktyce przy przywracaniu baz danych zawsze łączymy się jako użytkownik, który ma odpowiednie uprawnienia: przynajmniej do tworzenia tabel i wstawiania danych w tej bazie (INSERT, CREATE, ALTER, czasem DROP). W środowiskach produkcyjnych dobrą praktyką jest nie używać konta root, tylko dedykowanego użytkownika z ograniczonymi uprawnieniami. Moim zdaniem warto też pamiętać, że adres IP serwera bazy (opcjonalnie podawany przez -h) i port (-P) to zupełnie inne parametry niż -u. One określają, z jakim serwerem się łączymy, a -u i -p – kim się logujemy. To rozróżnienie jest bardzo ważne przy codziennej administracji i automatyzacji backupów oraz importów.

Pytanie 6

Przykład zapytania SQL przedstawia instrukcję:

UPDATE katalog SET katalog.cena = [cena]*1.1;
A. usuwającej
B. dołączającej
C. aktualizującej
D. krzyżowej
Instrukcja SQL przedstawiona w pytaniu używa słowa kluczowego UPDATE co jest charakterystyczne dla kwerend aktualizujących. Komenda ta modyfikuje istniejące dane w tabeli poprawiając je zgodnie z podanymi kryteriami. W tym przykładzie wszystkie wartości w kolumnie cena tabeli katalog są zwiększane o 10 procent co jest typowym zastosowaniem instrukcji aktualizującej. W praktyce takie zmiany są niezbędne w przypadku modyfikacji cen produktów lub aktualizacji informacji biznesowych. Stosowanie kwerend aktualizujących wymaga zachowania szczególnej ostrożności aby nie naruszyć integralności danych. Dobre praktyki obejmują przygotowanie backupu danych przed wykonaniem operacji oraz przetestowanie kwerendy na mniejszym zbiorze danych w celu uniknięcia błędów. Aktualizacja danych to jedna z najczęstszych operacji w systemach bazodanowych dlatego zrozumienie mechanizmu działania kwerend SQL tego typu jest kluczowe dla efektywnego zarządzania danymi w każdej organizacji. SQL jako język deklaratywny umożliwia łatwe definiowanie co chcemy osiągnąć bez konieczności szczegółowego opisywania jak to zrobić co ułatwia pracę z dużymi i złożonymi zbiorami danych.

Pytanie 7

Aby uzyskać dane dotyczące środowiska, w którym działa serwer obsługujący PHP, należy użyć funkcji

A. phpinfo()
B. phpinformation()
C. php()
D. phpgetinfo()
Funkcja phpinfo() jest kluczowym narzędziem dla programistów i administratorów systemów, pozwalającym na uzyskanie szczegółowych informacji o środowisku PHP zainstalowanym na serwerze. Po jej wywołaniu otrzymujemy kompletny zestaw danych, który obejmuje wersję PHP, zainstalowane rozszerzenia, konfiguracje oraz informacje o serwerze, takie jak wersja serwera HTTP. Przykładowe użycie polega na umieszczeniu w skrypcie PHP linii <?php phpinfo(); ?>, co spowoduje wygenerowanie strony z informacjami, które mogą być przydatne w diagnostyce problemów lub podczas optymalizacji aplikacji. Funkcja ta jest zgodna ze standardami PHP i jest powszechnie stosowana w celu monitorowania środowiska pracy. Ważne jest, aby pamiętać, że udostępnianie wyników phpinfo() publicznie może stanowić zagrożenie dla bezpieczeństwa, dlatego zaleca się ograniczenie dostępu do tej informacji tylko do zaufanych użytkowników i środowisk deweloperskich. W kontekście rozwoju aplikacji, phpinfo() jest również pomocne przy identyfikacji dostępnych ustawień konfiguracyjnych oraz ich wartości, co jest nieocenione podczas procesu rozwoju i testowania.

Pytanie 8

W posiadanej tabeli zwanej przedmioty, która zawiera kolumny ocena oraz uczenID, aby wyliczyć średnią ocen dla ucznia z ID równym 7, należy użyć zapytania

A. AVG SELECT ocena FROM przedmioty WHERE uczenID = 7
B. COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7
C. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7
D. SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7
Odpowiedź 'SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7;' jest poprawna, ponieważ wykorzystuje funkcję agregującą AVG, która oblicza średnią ocen dla wszystkich wpisów w tabeli 'przedmioty', gdzie 'uczenID' jest równy 7. W SQL funkcje agregujące są niezwykle przydatne do analizy danych, pozwalając na uzyskanie statystyk dotyczących zbiorów danych. Użycie klauzuli WHERE pozwala na filtrowanie danych do tych, które dotyczą konkretnego ucznia, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi. Na przykład, w praktycznych zastosowaniach, może to być użyte do generowania raportów dotyczących wyników ucznia w określonym przedziale czasowym lub w porównaniu do innych uczniów. Warto również zauważyć, że poprawna konstrukcja zapytania SQL jest kluczowa dla utrzymania integralności i wydajności bazy danych, co podkreśla znaczenie płynnego zapisu zapytań. Takie umiejętności są nieocenione w pracy z bazami danych oraz w kontekście analizy danych w różnych dziedzinach.

Pytanie 9

Jakie zdarzenie należy wykorzystać, aby funkcja JavaScript była aktywowana za każdym razem, gdy użytkownik wprowadza jakikolwiek znak w polu tekstowym?

A. onload
B. onclick
C. onmouseout
D. onkeydown
Funkcja JavaScript, która ma być wywoływana za każdym razem, gdy użytkownik wpisuje dowolny znak do pola edycji, powinna korzystać ze zdarzenia 'onkeydown'. Zdarzenie to jest wywoływane w momencie naciśnięcia klawisza, co oznacza, że natychmiast odzwierciedla zmiany wprowadzone przez użytkownika. Dzięki temu możemy w czasie rzeczywistym reagować na dane wprowadzane przez użytkownika, co jest niezwykle przydatne w aplikacjach interaktywnych. Przykładowo, jeśli mamy pole tekstowe, w którym użytkownik wprowadza swoje imię, możemy użyć zdarzenia 'onkeydown', aby sprawdzić, czy imię nie jest za krótkie lub nie zawiera niedozwolonych znaków. Można to zrealizować w następujący sposób: <input type='text' onkeydown='myFunction()'>. Standardy W3C definiują zdarzenia klawiaturowe jako kluczowy element interakcji użytkownika z aplikacjami webowymi, co czyni 'onkeydown' bardzo istotnym w kontekście UX/UI.

Pytanie 10

DELETE FROM Pracownicy ORDER BY rok_urodzenia LIMIT 1;
W wyniku wykonania powyższego zapytania SQL zostanie:
A. usunięta tabela Pracownicy.
B. usunięta kolumna rok_urodzenia z tabeli Pracownicy.
C. usunięty rekord najstarszego pracownika.
D. usunięty rekord z danymi pracownika, który miał wpisaną datę urodzenia.
Poprawnie – to polecenie SQL usuwa dokładnie jeden rekord, i to taki, który odpowiada najstarszemu pracownikowi w tabeli. Kluczowe są tu dwie rzeczy: klauzula ORDER BY oraz LIMIT 1. Najpierw baza danych sortuje wiersze z tabeli Pracownicy po kolumnie rok_urodzenia rosnąco, czyli od najstarszego do najmłodszego (mniejszy rok urodzenia = starsza osoba). Dopiero na tak posortowanym zbiorze polecenie DELETE z LIMIT 1 usuwa pierwszy rekord z góry, czyli właśnie najstarszego pracownika. Warto zauważyć, że taka składnia (DELETE ... ORDER BY ... LIMIT ...) jest charakterystyczna m.in. dla MySQL i MariaDB. W standardowym SQL nie zawsze można użyć ORDER BY bezpośrednio w DELETE, ale w praktyce, w aplikacjach webowych, bardzo często pracuje się właśnie na tych silnikach, więc to rozwiązanie jest jak najbardziej realne. W innych systemach (np. PostgreSQL) podobny efekt robi się przez podzapytanie lub CTE. Moim zdaniem to jest bardzo przydatny wzorzec, gdy chcemy usuwać „najstarsze” lub „najmłodsze” rekordy, np. najstarszy log systemowy, najstarsze zamówienie w statusie roboczym, najstarszy wpis w kolejce zadań. Ważna dobra praktyka: takie operacje powinny opierać się na jednoznacznym kryterium sortowania (np. rok_urodzenia + id), żeby uniknąć sytuacji, że przy tych samych wartościach pola baza wybierze losowo któryś rekord. W projektach produkcyjnych często dodaje się dodatkową kolumnę typu data_utworzenia albo używa klucza głównego w ORDER BY, żeby zachować deterministyczne zachowanie. Zwróć też uwagę, że DELETE operuje na wierszach (rekordach), a nie na strukturze tabeli. Do usuwania kolumn służy ALTER TABLE, a do kasowania całej tabeli – DROP TABLE. To rozróżnienie jest absolutna podstawa pracy z SQL w każdej większej aplikacji.

Pytanie 11

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
B. tworzenia oraz modyfikowania struktury w tabeli sklep
C. dodawania i modyfikacji danych w tabeli sklep
D. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
To, co zaznaczyłeś, jest jak najbardziej na miejscu. W tym SQL-u, 'GRANT CREATE, ALTER ON sklep.* TO adam;' dajesz użytkownikowi, czyli adamowi, możliwości tworzenia i zmieniania struktury wszystkich tabel w bazie 'sklep'. Słowo 'CREATE' pozwala mu na tworzenie nowych tabel, a 'ALTER' umożliwia mu wprowadzanie zmian w tych istniejących, na przykład dodawanie czy usuwanie kolumn. Ważne, żeby ogarnąć, że 'sklep.*' oznacza wszystkie tabele w danej bazie, co jest zgodne z dobrymi praktykami w zarządzaniu bazami danych. No bo jakby adam miał ochotę dodać nową tabelę albo zmodyfikować istniejącą, to musi mieć odpowiednie uprawnienia. Przykładem może być sytuacja, gdy administrator daje programiście dostęp do zmian w strukturze tabel, żeby móc dodać nowe funkcje do aplikacji – to naprawdę ważne dla rozwoju systemu.

Pytanie 12

Integralność referencyjna w relacyjnych bazach danych wskazuje, że

A. klucz główny lub klucz obcy nie zawierają żadnych wartości NULL
B. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w danej tabeli lub powiązanych tabelach
C. wartość klucza głównego oraz klucza obcego nie może być pusta
D. wartość klucza obcego w konkretnej tabeli musi być równa wartości klucza głównego w powiązanej tabeli lub mieć wartość NULL
Pierwsza z niepoprawnych odpowiedzi odnosi się do stwierdzenia, że wartość klucza głównego oraz klucza obcego nie jest pusta. Choć jest to istotne, nie uwzględnia to kontekstu integralności referencyjnej, gdyż klucz obcy może przyjąć wartość NULL, co jest zgodne z zasadą, że nie każdy rekord musi mieć przypisane powiązanie. Kolejny błąd pojawia się w twierdzeniu, że klucz główny lub klucz obcy nie zawierają wartości NULL. Z definicji klucz główny nie może mieć wartości NULL, ale klucz obcy może, co jest istotne dla elastyczności projektowania baz danych. Również stwierdzenie, że każdemu kluczowi głównemu odpowiada dokładnie jeden klucz obcy, jest mylne, ponieważ klucz główny może być powiązany z wieloma kluczami obcymi w innych tabelach, co umożliwia bardziej złożone relacje. W kontekście relacyjnych baz danych, klucz obcy może odnosić się do jednego klucza głównego, ale nie wymaga, aby istniał tylko jeden klucz obcy do danego klucza głównego, co jest typowe w praktyce projektowania baz danych. Tak więc, w kontekście integralności referencyjnej, klucz obcy może być NULL i może odnosić się do jednego klucza głównego, ale nie ogranicza się do jednego powiązania, co czyni te odpowiedzi niepoprawnymi.

Pytanie 13

Model fizyczny replikacji bazy danych pokazany na ilustracji jest modelem

Ilustracja do pytania
A. centralnego subskrybenta
B. rozproszonym
C. centralnego wydawcy
D. równorzędnym
Model centralnego wydawcy jest popularnym rozwiązaniem w replikacji baz danych gdzie jeden centralny serwer działa jako główny wydawca danych do wielu subskrybentów. Kluczowa cecha tego modelu polega na tym że wszystkie zmiany są inicjowane na głównym serwerze co pozwala na scentralizowane zarządzanie danymi. Centralny wydawca zapewnia że dane są spójne i aktualizowane we wszystkich subskrybentach zmniejszając ryzyko konfliktów danych. Taka architektura jest często stosowana w organizacjach z rozproszonymi jednostkami gdzie centralny serwer w centrali obsługuje oddziały terenowe. Przykładami zastosowań są systemy ERP i CRM które wymagają jednoczesnej replikacji danych do wielu lokalizacji. Dobre praktyki w tej architekturze obejmują regularne monitorowanie wydajności serwerów oraz optymalizację przepustowości sieci by minimalizować opóźnienia. Modele centralnego wydawcy wykorzystują technologie takie jak SQL Server Replication czy Oracle Streams które są dobrze udokumentowane i szeroko stosowane w branży zapewniając niezawodność i skalowalność.

Pytanie 14

Fragment kodu w języku HTML zawarty w ramce ilustruje zestawienie

Ilustracja do pytania
A. numerowaną.
B. skrótów.
C. wypunktowaną.
D. odnośników.
Kod HTML zawierający znaczniki <ol> oraz <li> tworzy listę numerowaną ponieważ <ol> oznacza ordered list czyli listę uporządkowaną co skutkuje automatycznym numerowaniem każdego elementu w przeglądarkach internetowych. Znaczniki <li> reprezentują pojedyncze elementy listy zapewniając organizację danych w czytelnej formie. Taki sposób przedstawiania informacji jest powszechnie stosowany w tworzeniu dokumentów HTML i stron internetowych gdzie hierarchia i kolejność elementów ma kluczowe znaczenie. Za pomocą CSS można dodatkowo dostosować styl numerowania oraz wizualne aspekty listy co pozwala na większą elastyczność w projektowaniu interfejsu użytkownika. Standardy internetowe takie jak te rekomendowane przez W3C zachęcają do stosowania semantycznych znaczników co poprawia dostępność i SEO strony. Ponadto listy numerowane są użyteczne w sytuacjach gdy wymagana jest jasna kolejność wykonywania zadań lub prezentacja kroków w procesie co czyni je idealnym narzędziem zarówno w dokumentacji technicznej jak i w interaktywnych przewodnikach online.

Pytanie 15

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. floor(x)
B. sqrt(x)
C. ceil(x)
D. exp(x)
Poprawna jest metoda Math.floor(x), ponieważ w JavaScript odpowiada ona za zaokrąglenie liczby w dół do najbliższej liczby całkowitej. Dla x = 2.8 wynik Math.floor(2.8) to 2, bo funkcja „odcina” część ułamkową i schodzi do najbliższej liczby całkowitej mniejszej lub równej podanej wartości. To zachowanie jest zdefiniowane w specyfikacji ECMAScript i jest spójne we wszystkich nowoczesnych przeglądarkach oraz środowiskach typu Node.js. W praktyce Math.floor bardzo często wykorzystuje się przy pracy z indeksami tablic, generowaniu losowych liczb całkowitych czy przy obliczeniach, gdzie fragment ułamkowy nie ma znaczenia, np. liczba stron, liczba pełnych paczek produktu, paginacja rekordów. Typowy wzorzec to na przykład Math.floor(Math.random() * 10), który daje liczby całkowite z zakresu 0–9. Warto też świadomie odróżniać Math.floor od innych metod zaokrąglania: Math.ceil(2.8) zwróci 3, bo zaokrągla „w górę”, a Math.round(2.8) również zwróci 3, bo zaokrągla do najbliższej liczby całkowitej. Z mojego doświadczenia w JS często używa się właśnie floor tam, gdzie ważna jest przewidywalność w dół, np. przy obliczaniu indeksów czy dzieleniu na równe segmenty, żeby nie wyjść poza zakres. Warto też pamiętać, że Math.floor działa poprawnie również dla liczb ujemnych, ale tam „w dół” oznacza w kierunku −∞, więc Math.floor(−2.8) da −3, co czasem potrafi zaskoczyć, jeśli ktoś myśli tylko o „obcięciu” części po przecinku.

Pytanie 16

Poniżej przedstawiono fragment kodu obsługującego

<?php
if ( !isset($_COOKIE[$nazwa]) )
  echo "nie ustawiono!";
else
  echo "ustawiono, wartość: " . $_COOKIE[$nazwa];
?>
A. sesji
B. baz danych
C. zmiennych tekstowych
D. ciasteczek
Odpowiedź "ciasteczek" jest poprawna, ponieważ kod PHP przedstawiony w pytaniu zajmuje się obsługą ciasteczek HTTP. Ciasteczka są to małe pliki przechowywane na urządzeniu użytkownika, które pozwalają na zachowanie stanu sesji oraz przechowywanie danych o użytkowniku. W tym przypadku, kod sprawdza, czy ciasteczko o danej nazwie (przechowywane w zmiennej $nazwa) zostało ustawione. Jeśli nie, wyświetla komunikat "nie ustawiono!", a jeśli tak, wyświetla jego wartość. Przykład zastosowania ciasteczek obejmuje przechowywanie preferencji użytkowników na stronach internetowych, takich jak wybór języka czy ostatnio przeglądane produkty w sklepie internetowym. Ważne jest, aby pamiętać o dobrych praktykach dotyczących bezpieczeństwa ciasteczek, takich jak ustalanie odpowiednich flag (np. HttpOnly, Secure), aby chronić je przed atakami typu XSS oraz CSRF. Ciasteczka pozwalają również na śledzenie sesji, co jest istotne dla personalizacji treści i analizy zachowań użytkowników. Zgodnie z RODO, należy również informować użytkowników o używaniu ciasteczek oraz uzyskać ich zgodę na ich przetwarzanie.

Pytanie 17

W zamieszczonym kodzie PHP, zamiast znaków zapytania powinien być wyświetlony komunikat:

$x = mysql_query('SELECT * FROM mieszkancy');
if (!$x)
    echo '??????????????????????';
A. Niepoprawna nazwa bazy danych
B. Zapytanie zostało poprawnie przetworzone
C. Niepoprawne hasło do bazy danych
D. Błąd w trakcie przetwarzania zapytania
W przedstawionym kodzie PHP, komunikat "??????????????????????" powinien wskazywać na błąd przetwarzania zapytania SQL. Kiedy wynik funkcji mysql_query() jest równy fałszowi (false), oznacza to, że zapytanie nie mogło zostać poprawnie wykonane. Może to być spowodowane różnymi czynnikami, takimi jak błędy w składni zapytania, problemy z połączeniem z bazą danych, lub nieprawidłowe tabele. W tym przypadku, dobrym podejściem jest użycie funkcji mysql_error() w celu uzyskania bardziej szczegółowych informacji na temat natury błędu. Przykład poprawnego kodu mógłby wyglądać tak: <p>$x = mysql_query('SELECT * FROM mieszkancy');<br>If (!$x) {<br>echo mysql_error();<br>}</p> Używanie tej metody pomaga w diagnostyce problemu i pozwala na szybsze jego rozwiązanie. Znalezienie i naprawienie błędów w zapytaniach SQL jest kluczowe w pracy z bazami danych, szczególnie w kontekście aplikacji internetowych, które muszą być niezawodne i efektywne.

Pytanie 18

Przedstawiony algorytm umożliwia wyliczenie

Ilustracja do pytania
A. średniej arytmetycznej n liczb a wprowadzonych przez użytkownika.
B. reszty z dzielenia kolejnych liczb a przez liczbę n.
C. najmniejszego wspólnego dzielnika dla n kolejnych liczb a.
D. średniej geometrycznej n liczb a wprowadzonych przez użytkownika.
Algorytm z diagramu realizuje dokładnie klasyczny wzór na średnią arytmetyczną. Najpierw wczytywana jest liczba n – ile wartości użytkownik poda. Potem zmienna „Wynik” jest zerowana, a zmienna sterująca pętlą i ustawiana na 0. Następnie działa pętla z warunkiem i < n: w każdej iteracji program wczytuje kolejną liczbę a, dodaje ją do zmiennej Wynik (czyli de facto sumuje wszystkie podane liczby), a licznik i zwiększa o 1. Gdy i przestaje być mniejsze od n, pętla się kończy i dopiero wtedy wykonywana jest operacja Wynik = Wynik / n. To jest dokładnie to, co robi wzór: średnia = (a1 + a2 + … + an) / n. Z praktycznego punktu widzenia taki algorytm to absolutna podstawa w programowaniu, szczególnie przy pracy z danymi wejściowymi: wynikami pomiarów, ocenami uczniów, czasami odpowiedzi serwera itp. W wielu językach programowania (C, Java, JavaScript, PHP) napisanie tego w kodzie sprowadza się do jednej pętli for lub while, sumowania zmiennej i jednego dzielenia na końcu. Dobrą praktyką jest, żeby dzielenie wykonywać dopiero po zsumowaniu wszystkich elementów, dokładnie tak jak na diagramie, a nie w każdej iteracji, bo to ogranicza błędy zaokrągleń i jest po prostu wydajniejsze obliczeniowo. W aplikacjach webowych ten schemat pojawia się np. przy liczeniu średniej oceny produktu z wielu głosów użytkowników, średniego czasu odpowiedzi API albo średniego czasu spędzonego na stronie. Moim zdaniem to jedno z kluczowych ćwiczeń na zrozumienie pętli i zmiennych pomocniczych, bo łączy matematykę z bardzo praktyczną logiką algorytmiczną.

Pytanie 19

Styl ten generuje pojedyncze obramowanie, które charakteryzuje się następującymi właściwościami:

border: solid 1px;
border-color: red blue green yellow;
A. krawędź górna jest czerwonego koloru, krawędź lewa jest w kolorze niebieskim, krawędź dolna ma kolor zielony, krawędź prawa ma kolor żółty
B. krawędź prawa jest koloru czerwonego, krawędź dolna ma kolor niebieski, krawędź lewa ma kolor zielony, krawędź górna ma kolor żółty
C. krawędź górna ma kolor czerwony, krawędź prawa jest w kolorze niebieskim, krawędź dolna ma kolor zielony, krawędź lewa jest koloru żółtego
D. krawędź lewa ma kolor czerwony, krawędź dolna jest w kolorze niebieskim, krawędź prawa jest koloru zielonego, krawędź górna ma kolor żółty
Podana odpowiedź jest prawidłowa, ponieważ opisuje właściwe przypisanie kolorów do krawędzi obramowania według standardów CSS. W zapisie border-color: red blue green yellow; kolory są przypisywane zgodnie z kierunkiem wskazówek zegara, zaczynając od góry. Zatem krawędź górna jest koloru czerwonego, prawa koloru niebieskiego, dolna zielonego, a lewa żółtego. Jest to zgodne z praktykami projektowania stron internetowych, gdzie priorytetem jest zrozumiała i spójna struktura kodu. W praktyce takie zrozumienie pozwala na efektywne tworzenie stylów w CSS, przyspieszając proces tworzenia responsywnych i estetycznych interfejsów użytkownika. Wiedza o przypisywaniu kolorów do krawędzi jest przydatna w tworzeniu zaawansowanych układów graficznych, pozwalając na lepsze wykorzystanie przestrzeni wizualnej i wprowadzenie unikalnych elementów stylistycznych. Takie podejście do CSS jest zgodne z nowoczesnymi standardami projektowania, które kładą nacisk na czytelność i efektywność kodu oraz zapewniają lepsze doświadczenia użytkownika.

Pytanie 20

Jakie oprogramowanie NIE JEST systemem do zarządzania treścią (CMS)?

A. Apache
B. Mambo
C. WordPress
D. Joomla
Apache to serwer HTTP, który jest wykorzystywany do hostowania stron internetowych. Nie jest to system zarządzania treścią (CMS), ponieważ jego głównym zadaniem jest obsługa żądań HTTP i dostarczanie plików do przeglądarek internetowych. Systemy zarządzania treścią, takie jak Joomla, WordPress czy Mambo, to aplikacje, które umożliwiają użytkownikom łatwe tworzenie, edytowanie i zarządzanie treściami na stronach internetowych bez konieczności posiadania zaawansowanej wiedzy technicznej. Przykładem zastosowania Apache może być hostowanie strony internetowej stworzonej w jednym z wymienionych CMS, gdzie Apache dostarcza zasoby, a CMS zarządza treścią i logiką aplikacji. Dobrą praktyką w branży jest oddzielanie warstwy serwera od warstwy aplikacji, co pozwala na lepszą skalowalność i utrzymanie, a także na łatwiejszą aktualizację i zarządzanie bezpieczeństwem.

Pytanie 21

Jaką instrukcję pętli stosuje się do przeprowadzenia określonej liczby operacji na obiekcie lub zmiennej, która nie jest tablicą?

A. foreach
B. if
C. switch
D. for
Instrukcja pętli 'for' jest jednym z najczęściej używanych narzędzi programistycznych, które pozwala na wykonywanie określonej liczby operacji na zmiennej. Kluczową cechą pętli 'for' jest jej zdolność do precyzyjnego zdefiniowania liczby iteracji, co czyni ją idealną do zadań, w których liczba powtórzeń jest znana z góry. Na przykład, jeśli chcemy iterować po liczbach od 1 do 10 i wyświetlić każdą z nich, możemy użyć pętli 'for' w następujący sposób: 'for (int i = 1; i <= 10; i++) { System.out.println(i); }'. Takie podejście pozwala na łatwe zarządzanie zmiennymi oraz kontrolowanie mocy obliczeniowej programu. Pętla 'for' jest również bardzo elastyczna i może być stosowana w różnych kontekstach, takich jak przetwarzanie danych w tablicach czy lista elementów. W kontekście najlepszych praktyk, ważne jest, aby używać pętli 'for' tam, gdzie jest to najbardziej odpowiednie, unikając jej stosowania w sytuacjach, gdy mamy do czynienia z kolekcjami obiektów, które mogą wymagać bardziej zaawansowanych technik iteracyjnych. Zrozumienie zastosowania pętli 'for' jest kluczowe dla każdego programisty, który chce efektywnie zarządzać iteracjami w swoich aplikacjach.

Pytanie 22

Na przedstawionym diagramie ER zapis FK1 oznacza

Ilustracja do pytania
A. klucz podstawowy.
B. relację 1:N.
C. klucz obcy.
D. relację 1:1.
Skrót FK1 na diagramie ER oznacza klucz obcy (ang. foreign key) i jest to dokładnie to, co powinno łączyć tabelę Zamówienia z tabelą Klienci. W relacyjnych bazach danych klucz obcy to atrybut lub zestaw atrybutów, który wskazuje na klucz podstawowy w innej tabeli. Dzięki temu baza danych wie, że konkretne zamówienie należy do konkretnego klienta. W twoim diagramie pole NR_klienta w tabeli Zamówienia jest oznaczone jako FK1, czyli jest kluczem obcym odwołującym się do NR_klienta będącego kluczem podstawowym (PK) w tabeli Klienci. To jest klasyczny przykład relacji 1:N – jeden klient może mieć wiele zamówień, a każde zamówienie jest powiązane z dokładnie jednym klientem. W praktyce, w SQL, taka relacja jest definiowana mniej więcej tak: `FOREIGN KEY (NR_klienta) REFERENCES Klienci(NR_klienta)`. Taka definicja pozwala silnikowi bazy danych pilnować spójności referencyjnej, czyli np. nie pozwoli wstawić zamówienia z numerem klienta, który nie istnieje w tabeli Klienci, ani usunąć klienta, do którego wciąż istnieją zamówienia (chyba że jawnie zdefiniujemy CASCADE). Z mojego doświadczenia poprawne używanie kluczy obcych bardzo upraszcza później raportowanie, łączenie tabel w zapytaniach JOIN i ogólnie utrzymanie porządku w bazie. W modelowaniu ER oznaczenie FK wraz z numerem (FK1, FK2 itd.) to po prostu sposób na jednoznaczne nazwanie konkretnych kluczy obcych, gdy w systemie jest ich więcej. W dobrze zaprojektowanych bazach danych zawsze warto jawnie definiować foreign key, zamiast tylko „ufać”, że aplikacja będzie podawała poprawne dane – to jest po prostu dobra praktyka i standard w profesjonalnych projektach.

Pytanie 23

Jaki zapis w języku C++ definiuje komentarz jednoliniowy?

A. //
B. <
C. #
D. /*
Komentarz jednoliniowy w języku C++ jest definiowany przez zapis //. Używanie tej składni pozwala programiście na dodanie uwag w kodzie, które są ignorowane przez kompilator. Komentarze są niezwykle przydatne, gdyż umożliwiają dokumentowanie kodu, co ułatwia jego zrozumienie i utrzymanie w przyszłości. Na przykład, jeśli mamy fragment kodu, który oblicza sumę dwóch liczb, możemy dodać komentarz jednoliniowy, aby wyjaśnić, co dany fragment robi: // Oblicza sumę dwóch liczb. Warto dodać, że w standardzie C++ zaleca się użycie komentarzy w miejscach, gdzie kod może być trudny do zrozumienia lub wymaga dodatkowego wyjaśnienia. Dobre praktyki programistyczne podkreślają znaczenie dokumentowania kodu, co ułatwia współpracę w zespole oraz przyszłe modyfikacje. Warto również wspomnieć, że komentarze nie powinny być nadmierne, aby nie wprowadzać w błąd lub nie zniechęcać do czytania samego kodu.

Pytanie 24

Do jakich zadań można wykorzystać program FileZilla?

A. analizowania skryptu na stronie
B. sprawdzania poprawności strony internetowej
C. kompilowania skryptu na stronie
D. publikacji strony internetowej
Walidacja strony internetowej polega na sprawdzaniu poprawności kodu HTML lub CSS, co zapewnia, że witryna jest zgodna z określonymi standardami, takimi jak W3C. Narzędzia do walidacji, takie jak W3C Validator, służą do analizy kodu źródłowego, wskazując błędy, które mogą wpłynąć na wyświetlanie strony w różnych przeglądarkach. W kontekście FileZilla, to oprogramowanie nie jest zaprojektowane do tego celu, a jego użycie w tej roli byłoby mylnym podejściem. Debugowanie skryptu na stronie, na przykład w językach JavaScript czy PHP, wymaga zastosowania narzędzi takich jak debugger w przeglądarkach internetowych lub IDE. FileZilla nie oferuje żadnych funkcji debugowania, co sprawia, że jest to nieodpowiedni wybór dla programistów zajmujących się rozwiązywaniem problemów w kodzie. Podobnie, kompilacja skryptu, jak w przypadku języków programowania, takich jak C++ czy Java, wymaga narzędzi kompilacyjnych, a nie klienta FTP. FileZilla nie przetwarza ani nie kompiluje kodu, więc nie może być użyta w tym kontekście. Typowym błędem myślowym jest mylenie narzędzi używanych do transferu plików z tymi, które są używane do programowania i rozwoju aplikacji webowych. Właściwe zrozumienie ról poszczególnych narzędzi w ekosystemie tworzenia stron internetowych jest kluczowe dla efektywnej pracy i unikania nieporozumień.

Pytanie 25

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. zmienna x będzie przechowywać wynik działania metody nazwa.
B. nazwa to właściwość obiektu przedmiot.
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
D. nazwa to pole klasy przedmiot.
Odpowiedź jest prawidłowa, ponieważ wyrażenie w języku JavaScript x = przedmiot.nazwa(); oznacza, że zmienna x zostanie przypisana do wyniku działania metody nazwa, która jest wywoływana na obiekcie przedmiot. W JavaScript metody są funkcjami zdefiniowanymi jako właściwości obiektów. Kiedy wywołujemy metodę, dodajemy nawiasy okrągłe do jej nazwy, co powoduje jej wykonanie. W przypadku poprawnego zdefiniowania metody nazwa w obiekcie przedmiot, wykonanie tej metody zwróci wartość, która zostanie przypisana do zmiennej x. Taki sposób przypisywania wartości jest powszechnie stosowany w programowaniu obiektowym, co umożliwia dynamiczne uzyskiwanie danych z obiektów. Przykładem zastosowania może być np. obiekt Uzytkownik z metodą pobierzImie(), która zwraca imię użytkownika. Dzięki temu można elastycznie zarządzać danymi obiektów i tworzyć złożone aplikacje. Dobre praktyki programistyczne zalecają czytelne nazywanie metod i korzystanie z nich wtedy, gdy logicznie grupują funkcjonalność, co ułatwia utrzymanie i rozwijanie kodu.

Pytanie 26

Na tabeli dania, której wiersze zostały pokazane poniżej, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
63wierzbowy przysmak35
72Mintał w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 8
C. 13
D. 2
Twoja odpowiedź jest jak najbardziej trafna. To zapytanie SQL, które mamy, wybiera z tabeli 'dania' te wiersze, gdzie 'typ' jest mniejszy niż 3, a 'cena' nie przekracza 30. Wiem, że dodanie 'LIMIT 5' może wydawać się istotne, ale w tym przypadku tak naprawdę nie wpływa to na wynik, bo tylko jeden wiersz pasuje – danie 'Gazpacho'. Warto pamiętać, że w SQL, gdy używamy warunku 'WHERE', łączymy je z operatorem AND, co oznacza, że muszą być spełnione jednocześnie. Klauzula 'LIMIT' jest przydatna w różnych sytuacjach, ale tutaj, nawet z ograniczeniem do 5, i tak mamy tylko jeden wynik.

Pytanie 27

W CSS, poniższy zapis spowoduje, że czerwony kolor zostanie zastosowany do

h1::first-letter {color:red;}
A. tekst nagłówka pierwszego poziomu
B. pierwsza linia akapitu
C. pierwsza litera nagłówka pierwszego poziomu
D. pierwsza litera nagłówka drugiego poziomu
Wiesz, użycie selektora CSS ::first-letter w połączeniu z stylem h1 to fajny sposób na zmianę wyglądu pierwszej litery w nagłówku. Kiedy używasz tego, kolor czerwony sprawi, że ta litera będzie się wyróżniać, co jest super, zwłaszcza w przypadku nagłówków czy akapitów. To technika, którą często stosuje się w projektowaniu stron, żeby nadać im trochę typograficznego stylu, jak w książkach z dużymi inicjałami. Ale pamiętaj, że ten selektor działa tylko z blokowymi elementami, takimi jak <p> czy <h1>, więc jeżeli spróbujesz zastosować go z elementami liniowymi, to niestety efekty nie będą takie, jak się spodziewasz. Zawsze warto też mieć na uwadze standardy W3C, bo one pomagają w tworzeniu dostępnych stron. No i ten selektor jest częścią specyfikacji CSS Pseudo-Elements Level 3, więc przeglądarki go dobrze wspierają. Zrozumienie, jak i kiedy stosować takie selektory, to klucz do tworzenia nowoczesnych stron.

Pytanie 28

Wskaż polecenie, które działa identycznie jak instrukcja while w PHP.

$x = 0;
while($x < 5) {
    echo "$x,";
    $x++;
}

Instrukcja 1
for ($x=0; $x<5; $x++) {
    echo "$x,";
    $x++;
}

Instrukcja 2
for ($x=0; $x<5; $x+=2) {
    echo "$x,";
    $x++;
}

Instrukcja 3

for ($x=0; $x<5; $x++) {
    echo "$x,";
}

Instrukcja 4
for ($x=1; $x<=5; $x++) {
    echo "$x,";
}
A. Instrukcja 2
B. Instrukcja 1
C. Instrukcja 4
D. Instrukcja 3
Instrukcja 3 jest funkcjonalnie równoważna podanej instrukcji while w języku PHP. W obu przypadkach pętla zaczyna się z wartością zmiennej x równej 0 i kontynuuje dopóki x jest mniejsze od 5. W każdej iteracji zmienna x jest zwiększana o 1. Wyrażenie warunkowe w pętli for to x<5 co odpowiada warunkowi while $x<5. Część inicjalizacyjna for ustawia zmienną na 0 co jest zgodne z inicjalizacją przed pętlą while. Instrukcje zawarte w pętli wykonują te same operacje wyświetlania wartości x i inkrementacji. W praktyce stosowanie pętli for może być korzystne dla czytelności gdyż wszystkie elementy sterujące pętlą są zgrupowane w jednej linii co ułatwia zrozumienie jej działania. Jest to zgodne z dobrymi praktykami programistycznymi które promują klarowność kodu. Instrukcje for są często wykorzystywane w sytuacjach gdy liczba iteracji jest z góry znana co czyni je bardziej intuicyjnymi w takich przypadkach.

Pytanie 29

W trakcie edycji grafiki rastrowej w oprogramowaniu obsługującym kanały, dodanie kanału alfa wskazuje na

A. ustalenie prawidłowego balansu bieli
B. zwiększenie głębi ostrości obrazu
C. wyostrzenie krawędzi obrazu
D. dodanie warstwy z przezroczystością
Dodanie kanału alfa w obróbce grafiki rastrowej oznacza wprowadzenie warstwy odpowiedzialnej za przezroczystość obrazu. Kanał alfa rozszerza możliwości tradycyjnych obrazów, które składają się tylko z trzech podstawowych kanałów kolorystycznych: czerwonego, zielonego i niebieskiego (RGB). Dzięki kanałowi alfa, każdy piksel w obrazie może mieć przypisaną wartość przezroczystości, co pozwala na tworzenie efektów takich jak cienie, rozmycia, a także na precyzyjne maskowanie elementów w projekcie. Przykładem zastosowania kanału alfa może być tworzenie grafik do użycia w reklamach czy wideo, gdzie elementy muszą być płynnie nałożone na różnorodne tła. W profesjonalnym oprogramowaniu graficznym, takim jak Adobe Photoshop czy GIMP, dodanie kanału alfa jest standardową praktyką w procesie tworzenia i edycji obrazów. Ponadto, tworząc animacje czy interaktywne projekty multimedialne, kanał alfa pozwala na bardziej elastyczne zarządzanie przezroczystością poszczególnych warstw, co jest kluczowe dla finalnego efektu wizualnego.

Pytanie 30

Jakim znacznikiem można wprowadzić listę numerowaną (uporządkowaną) w dokumencie HTML?

A. <ol>
B. <li>
C. <ul>
D. <dl>
Znacznik <ol> służy do wstawiania list numerowanych (uporządkowanych) w dokumentach HTML. Jego zastosowanie pozwala na tworzenie list, gdzie każdy element jest automatycznie numerowany, co jest szczególnie przydatne w sytuacjach, gdy kolejność elementów ma znaczenie, na przykład w przepisach kulinarnych, instrukcjach czy krokach do wykonania. Warto pamiętać, że elementy listy umieszczane są w znaczniku <li>, który określa każdy pojedynczy wpis na liście. Stosowanie znaczników zgodnych z zaleceniami W3C zapewnia, że strona jest zgodna z zasadami dostępności oraz ułatwia interpretację treści przez wyszukiwarki. Przykład użycia: <ol><li>Krok pierwszy</li><li>Krok drugi</li></ol>, co wygeneruje numerowaną listę z dwoma krokami. Przestrzeganie standardów oraz dobrych praktyk w tworzeniu struktury HTML jest kluczowe dla zapewnienia przejrzystości i efektywności strony internetowej.

Pytanie 31

W formularzu zdefiniowano kontrolki do wpisania imienia i nazwiska. Który atrybut reprezentuje podpowiedź umiejscowioną w polu kontrolki, znikającą w momencie, gdy użytkownik rozpocznie wpisywanie wartości?

<label for="imie">Imię: </label>
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">
A. placeholder
B. value
C. for
D. title
Dobrze! Poprawna odpowiedź to 'placeholder'. Atrybut 'placeholder' w elemencie input HTML jest używany do wyświetlania podpowiedzi wewnątrz pola formularza, która znika, gdy użytkownik zaczyna wpisywanie danych. Jest to zgodne z pytaniem, w którym poproszono o atrybut reprezentujący podpowiedź w polu formularza, która znika, gdy użytkownik rozpoczyna wpisywanie. Przykładem może być formularz logowania, gdzie w polach 'Użytkownik' i 'Hasło' można umieścić podpowiedzi 'Wpisz nazwę użytkownika' i 'Wpisz hasło' odpowiednio. Atrybut 'placeholder' jest bardzo przydatny w interaktywnym designie, pomagając użytkownikom zrozumieć, jakie informacje są od nich oczekiwane w danym polu formularza.

Pytanie 32

Zapis CSS postaci:

 ul {
    list-style-image: url('rys.gif');
}

sprawi, że na stronie internetowej
A. każdy z punktów listy będzie miał osobne tło pobrane z grafiki rys.gif
B. punktorem listy nienumerowanej będzie rys.gif
C. rys.gif będzie stanowił ramkę dla listy nienumerowanej.
D. wyświetli się rysunek rys.gif jako tło listy nienumerowanej.
Gratulacje! Poprawnie zidentyfikowałeś, że w podanym kodzie CSS, obrazek 'rys.gif' będzie służył jako punktor listy nienumerowanej. Według standardów CSS, właściwość list-style-image jest używana do określenia obrazka, który będzie używany jako punktor w liście nienumerowanej. Zasada ta jest bardzo przydatna, kiedy chcemy stworzyć niestandardowe punktory listy, które lepiej pasują do designu naszej strony. Możemy użyć dowolnego obrazka, który jest dostępny online lub zasobu z naszej lokalnej przestrzeni roboczej. Pamiętaj jednak, że obrazek powinien być mały i czytelny. W tym konkretnym przypadku, obrazek 'rys.gif' zostanie ustawiony jako punktor dla każdego elementu listy <li> wewnątrz listy nienumerowanej <ul>. Używając tej techniki, możemy stworzyć atrakcyjniejsze i bardziej interaktywne listy na naszej stronie internetowej.

Pytanie 33

Dla strony internetowej stworzono styl, który będzie stosowany tylko do wybranych znaczników, takich jak niektóre nagłówki oraz kilka akapitów. W tej sytuacji, aby przypisać styl do konkretnych znaczników, najodpowiedniejsze będzie użycie

Ilustracja do pytania
A. selektora akapitu
B. pseudoklasy
C. klasy
D. identyfikatora
Użycie klasy w CSS jest najlepszym rozwiązaniem, gdy chcemy zastosować ten sam styl do wielu elementów HTML, ale nie do wszystkich. Klasy w CSS są definiowane za pomocą kropki przed nazwą klasy, np. .nazwa-klasy, i mogą być przypisane do dowolnego elementu HTML za pomocą atrybutu class. Dzięki temu możemy elastycznie i efektywnie zarządzać stylami na stronie internetowej. Klasy są bardzo przydatne w dużych projektach, gdzie powtarzalność i spójność stylów są kluczowe. Pozwalają także na ponowne wykorzystanie tych samych stylów w różnych miejscach projektu bez konieczności kopiowania kodu CSS. Użycie klas zwiększa czytelność i organizację kodu, co jest zgodne z najlepszymi praktykami programowania. Stosowanie klas jest także zalecane w kontekście frameworków CSS, takich jak Bootstrap, które intensywnie wykorzystują klasy do definiowania komponentów i układów. Przykład zastosowania klasy: .align-right { text-align: right; } można przypisać do różnych nagłówków czy akapitów, które mają być wyrównane do prawej.

Pytanie 34

W SQL, aby ustawić klucz główny na polu id w tabeli uczniowie, można użyć polecenia

A. INSERT TABLE uczniowie ADD PRIMARY KEY (id)
B. INSERT TABLE uczniowie PRIMARY KEY (id)
C. ALTER TABLE uczniowie ADD PRIMARY KEY (id)
D. ADD TABLE uczniowie PRIMARY KEY (id)
Odpowiedź 'ALTER TABLE uczniowie ADD PRIMARY KEY (id);' jest poprawna, ponieważ polecenie ALTER TABLE w SQL służy do modyfikacji istniejącej struktury tabeli. W tym przypadku chcemy dodać klucz podstawowy do istniejącej tabeli uczniowie, co jest zgodne z zasadami normalizacji baz danych. Klucz podstawowy jest unikalnym identyfikatorem dla każdego rekordu, co zapewnia integralność danych. Przykładowo, jeśli tabela uczniowie zawiera kolumnę id, która jest już zdefiniowana, użycie polecenia ALTER TABLE pozwala na dodanie klucza podstawowego do tej kolumny. Ważne jest, aby pamiętać, że przed dodaniem klucza podstawowego, kolumna musi być unikalna i nie może zawierać wartości NULL. Dodatkowo, zgodnie z najlepszymi praktykami, warto wcześniej sprawdzić, czy w tabeli nie ma duplikatów w kolumnie, aby uniknąć błędów w trakcie dodawania klucza. W kontekście systemów zarządzania bazami danych, takich jak MySQL czy PostgreSQL, poprawne zarządzanie kluczami podstawowymi jest kluczowe dla zapewnienia efektywności operacji na tabelach oraz dla poprawności logiki aplikacji korzystającej z bazy danych.

Pytanie 35

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. wykluczenia.
C. grupowania.
D. części wspólnej.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 36

Model, w którym wszystkie dane są zapisane w jednej tabeli, określa się mianem

A. jednorodnym
B. sieciowym
C. hierarchicznym
D. relacyjnym
Model jednorodny to taka podstawowa struktura w bazach danych, gdzie wszystko trzymamy w jednej tabeli. To się fajnie sprawdza w prostych aplikacjach, bo wtedy relacje między danymi są dość oczywiste. Klasycznym przykładem może być baza kontaktów, gdzie każdy ma swoje info w jednym miejscu. Dzięki temu mamy łatwy dostęp do danych i prosto nimi zarządzać. Z mojego doświadczenia, to rozwiązanie jest super efektywne, ale jak system staje się większy i złożony, to zaczynają się schody. Wtedy inne modele, jak relacyjne, mogą mieć więcej sensu. W branży często korzysta się z modelu jednorodnego, zwłaszcza tam, gdzie szybki dostęp do danych jest kluczowy, a sztywne struktury tylko przeszkadzają. Na codzień to naprawdę przydatna rzecz, jak ktoś nie chce się męczyć z komplikacjami.

Pytanie 37

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

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

Pytanie 38

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. wszystkie operacje na bazach danych serwera
B. zakładanie użytkowników serwera oraz definiowanie ich haseł
C. nadzór nad serwerem
D. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
Wybór odpowiedzi, która sugeruje, że rola DBManager przyznaje prawa do monitorowania serwera, tworzenia użytkowników serwera oraz wykonywania wszystkich operacji na bazach danych i użytkownikach, może prowadzić do mylnych wniosków na temat rzeczywistych możliwości tej roli. Monitorowanie serwera jako funkcja nie jest bezpośrednio związane z rolą DBManager. Chociaż monitorowanie jest istotnym aspektem zarządzania bazami danych, odpowiednie uprawnienia związane z tą funkcjonalnością są przyznawane innym rolom lub użytkownikom posiadającym konkretne przywileje, takie jak rola DBMonitor. Tworzenie użytkowników serwera i ustawianie im haseł również wykracza poza standardowe uprawnienia roli DBManager. Zwykle te czynności są przypisane administratorom systemu, którzy mają kontrolę nad bezpieczeństwem całego środowiska bazodanowego. Odpowiedzi sugerujące możliwość wykonywania wszelkich operacji na bazach danych i użytkownikach mogą sugerować, że rola DBManager obejmuje pełne uprawnienia administracyjne, co nie jest zgodne z praktykami bezpieczeństwa, które zalecają ograniczanie uprawnień w oparciu o zasadę najmniejszych uprawnień. Takie zrozumienie jest kluczowe, ponieważ przyznawanie zbyt szerokich uprawnień może prowadzić do luk w zabezpieczeniach i nadużyć, co narusza standardy zarządzania danymi i bezpieczeństwa w organizacjach. Dlatego ważne jest, aby dokładnie rozumieć zakres dostępnych ról i ich odpowiedzialności, aby zapewnić właściwe zarządzanie dostępem i bezpieczeństwem danych.

Pytanie 39

Upload danych to termin, który oznacza

A. pobieranie plików z serwera.
B. przesyłanie plików na serwer.
C. opóźnienie w transmisji pliku.
D. trasę transferu pliku.
Pojęcie „upload danych” w praktyce oznacza wysyłanie, czyli przesyłanie plików lub innych danych z komputera klienta (Twojego urządzenia) na zdalny serwer albo do chmury. W typowym środowisku webowym klientem jest przeglądarka lub aplikacja, a serwerem – np. serwer HTTP, FTP, serwer aplikacyjny czy usługa w chmurze typu AWS S3 czy Google Drive. W standardowym modelu klient–serwer upload to ruch „w górę” – od użytkownika do usługi sieciowej. Download jest odwrotnością, czyli pobieraniem danych z serwera na komputer użytkownika. W protokołach takich jak HTTP upload odbywa się najczęściej poprzez żądania POST lub PUT, gdzie treść wysyłana jest w body requestu. W formularzach HTML odpowiada za to atrybut enctype="multipart/form-data" oraz odpowiednia konfiguracja input type="file". To właśnie wtedy następuje upload pliku – plik z Twojego dysku jest przesyłany na serwer, który może go zapisać w systemie plików, w bazie danych lub przetworzyć w inny sposób. W FTP termin upload jest wręcz podstawowy: komenda STOR służy do wysyłania pliku na serwer. Z mojego doświadczenia warto kojarzyć upload również z kwestiami bezpieczeństwa i wydajności. Dobrą praktyką jest ograniczanie maksymalnego rozmiaru przesyłanych plików, filtrowanie rozszerzeń, skanowanie antywirusowe oraz walidacja typu MIME, żeby nie dopuścić do wgrania złośliwych skryptów. W regulaminach usług i politykach RODO często pojawia się też zapis, że użytkownik jest odpowiedzialny za dane, które uploaduje na serwer. W pracy admina czy programisty webowego umiejętność poprawnej obsługi uploadu (limit czasu, przerwane połączenie, obsługa błędów) jest absolutnie standardem branżowym i jednym z podstawowych elementów każdej poważniejszej aplikacji internetowej.

Pytanie 40

Jakie właściwości języka CSS mogą mieć wartości: underline, overline, line-through?

A. font-style
B. font-weight
C. text-style
D. text-decoration
Odpowiedź 'text-decoration' jest poprawna, ponieważ właściwość ta jest używana w CSS do stylizacji tekstu, a jej wartości mogą obejmować 'underline', 'overline' i 'line-through'. Właściwość 'text-decoration' umożliwia dodawanie dekoracji do tekstu, co jest szczególnie przydatne w przypadku podkreślania, przekreślania tekstu czy dodawania linii nad tekstem. Przykład zastosowania: aby podkreślić tekst, można użyć reguły CSS: `p { text-decoration: underline; }`. Dzięki temu wszystkie akapity na stronie będą miały podkreślony tekst. Warto również zauważyć, że w ramach standardów CSS3, właściwość ta zyskała dodatkowe wartości, takie jak 'none' czy 'blink', co jeszcze bardziej rozszerza jej funkcjonalność. W praktyce, 'text-decoration' jest często stosowane w projektach webowych, aby poprawić czytelność i estetykę treści. Dobrą praktyką jest jednak używanie tej właściwości w umiarkowany sposób, aby nie przytłoczyć użytkownika zbyt wieloma dekoracjami, co mogłoby wpłynąć na ogólną użyteczność strony.