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: 23 kwietnia 2026 22:48
  • Data zakończenia: 23 kwietnia 2026 23:10

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

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

Deklaracja z właściwością background-attachment: scroll sprawia, że

A. tło strony będzie przesuwane razem z zawartością tekstową
B. grafika tła będzie widoczna w prawym górnym rogu strony
C. grafika tła będzie się powtarzać (kafelki)
D. tło strony zostanie zamocowane, a tekst będzie się poruszał
Właściwość CSS 'background-attachment: scroll' oznacza, że tło elementu będzie przewijane w równym tempie z treścią na stronie. Kiedy użytkownik przegląda stronę i przewija ją w dół lub w górę, tło przesuwa się razem z zawartością, co tworzy wrażenie głębokości i dynamiki. Przykładem zastosowania tej właściwości może być strona internetowa z długim tekstem, gdzie tło, takie jak kolor lub obraz, jest częścią estetyki projektu, ale nie powinno być statyczne. Warto zauważyć, że można to osiągnąć, ustawiając 'background-attachment' na 'scroll', co jest najczęściej stosowanym ustawieniem. W standardach CSS3 'background-attachment' ma cztery możliwe wartości: 'scroll', 'fixed', 'local', oraz 'inherit'. Stosowanie 'scroll' jest najbardziej intuicyjne i wspiera responsywność, ponieważ zmienia się w zależności od interakcji użytkownika z zawartością. To podejście jest zgodne z praktykami projektowania stron internetowych, które kładą nacisk na użytkownika i interaktywność.

Pytanie 2

Który typ danych SQL należy użyć, jako optymalny, do zapisania numeru PESEL?

A. TINYINT
B. FLOAT(11)
C. BLOB
D. CHAR(11)
W przypadku numeru PESEL kluczowe jest zrozumienie, że mamy do czynienia z identyfikatorem, a nie z liczbą, na której będziemy wykonywać obliczenia. To rozróżnienie jest bardzo ważne w projektowaniu baz danych, bo prowadzi do innego doboru typów danych. Częsty błąd polega na tym, że skoro PESEL składa się tylko z cyfr, to „na logikę” powinien być przechowywany jako typ liczbowy. W praktyce to podejście generuje więcej problemów niż pożytku. Typ TINYINT jest zdecydowanie zbyt mały – w większości systemów pozwala przechować zakres od 0 do 255 lub podobny, a PESEL ma 11 cyfr, więc nawet nie ma fizycznej możliwości, żeby taki typ pomieścił pełną wartość. To jest po prostu zupełnie nieadekwatny zakres. Z kolei użycie typu zmiennoprzecinkowego, takiego jak FLOAT(11), jest jeszcze gorszym pomysłem. Typ FLOAT służy do przybliżonego zapisu liczb rzeczywistych i może wprowadzać błędy zaokrągleń. W przypadku identyfikatora, który musi być zapisany dokładnie co do cyfry, jakikolwiek błąd reprezentacji jest niedopuszczalny. Dodatkowo typy zmiennoprzecinkowe nie gwarantują zachowania wszystkich cyfr w sposób bezstratny przy dużych wartościach, a PESEL ma ich 11. Można też natknąć się na problem utraty zer wiodących, bo liczby w SQL nie „pamiętają” formatu, tylko samą wartość liczbową. BLOB natomiast służy do przechowywania danych binarnych: plików, obrazów, dokumentów, zaszyfrowanych bloków danych. Używanie BLOB‑a do trzymania prostego tekstowego identyfikatora jest sprzeczne z dobrymi praktykami projektowania. Utrudnia to indeksowanie, wyszukiwanie, sortowanie i walidację, a do tego zużywa niepotrzebnie więcej zasobów. W profesjonalnych projektach baz danych przyjmuje się zasadę: dane tekstowe o znanej długości przechowujemy w typach znakowych (CHAR/VARCHAR), liczby do obliczeń w typach numerycznych, a typy binarne zostawiamy na pliki i dane nieustrukturyzowane. Błędne odpowiedzi wynikają zwykle z automatycznego kojarzenia „cyfry = liczba” i z braku rozróżnienia między wartością liczbową a identyfikatorem, który tylko składa się z cyfr, ale nie jest przeznaczony do liczenia. Właśnie dlatego optymalnym i zgodnym z dobrymi praktykami wyborem dla PESEL jest typ znakowy o stałej długości, czyli CHAR(11).

Pytanie 3

Instrukcja ```REVOKE SELECT ON nazwa1 FROM nazwa2``` w SQL pozwala na

A. przyznawanie dostępu do tabeli
B. odbieranie przyznanych uprawnień użytkownikowi
C. przyznawanie uprawnień zgodnie z określonym schematem
D. usunięcie użytkownika z bazy danych
Polecenie REVOKE SELECT ON nazwa1 FROM nazwa2 w języku SQL jest używane do odbierania uprawnień użytkownikowi, co jest kluczowym aspektem zarządzania bezpieczeństwem w bazach danych. Umożliwia to administratorom kontrolowanie dostępu do danych, co jest istotne w kontekście ochrony informacji oraz zgodności z regulacjami prawnymi. Przykładowo, jeśli użytkownik 'nazwa2' miał wcześniej przyznane uprawnienia do wykonywania zapytań SELECT na tabeli 'nazwa1', użycie polecenia REVOKE pozwoli na ich cofnięcie. W praktyce, administratorzy baz danych często stosują to polecenie, aby ograniczyć dostęp do wrażliwych informacji, na przykład po zakończeniu projektu, w którym dany użytkownik nie powinien już mieć dostępu do danych. Takie działania są zgodne z najlepszymi praktykami w zakresie zabezpieczeń, które zalecają minimalizowanie uprawnień użytkowników do tylko tych niezbędnych do wykonywania ich obowiązków. Dodatkowo, warto również stosować audyty dostępu, aby na bieżąco monitorować, które uprawnienia są przyznawane i odbierane, co pozwala na lepsze zarządzanie bezpieczeństwem systemu.

Pytanie 4

W CSS określono styl dla pola do edycji, które będzie miało tło w kolorze jasnozielonym po aktywacji.

input:focus { background-color: LightGreen; }
A. gdy jest to pierwsze użycie tego elementu w dokumencie
B. w każdej sytuacji
C. jeśli zostanie na nie najechane kursorem bez kliknięcia
D. po kliknięciu myszką w celu wprowadzenia tekstu
Typowe błędy myślowe prowadzące do niepoprawnych odpowiedzi często obejmują mylenie różnych stanów interakcji z elementami formularzy. Na przykład, odpowiedź sugerująca, że stylizowane tło zostaje aktywowane "gdy zostanie wskazane kursorem myszy bez kliknięcia" myli pojmowanie stanu focus z prostym najechaniem kursorem. W rzeczywistości, stan focus aktywuje się tylko w wyniku interakcji, takiej jak kliknięcie lub nawigacja za pomocą klawiatury. Kolejną nieścisłością jest stwierdzenie, że formatowanie ma zastosowanie "w każdym przypadku". Takie podejście nie uwzględnia faktu, że styl focus jest specyficzny dla interakcji użytkownika, a więc jego zastosowanie jest ograniczone do sytuacji, w których element jest aktywny. Warto zauważyć, że dobrze zaprojektowane formularze online powinny wykorzystywać zdarzenia focus i blur, aby dostarczać użytkownikom pomocnych wskazówek oraz ułatwić wprowadzanie danych. Ignorowanie tych koncepcji prowadzi do projektowania interfejsów, które nie są w pełni responsywne wobec potrzeb użytkowników. Dlatego zrozumienie różnicy między focus a zwykłym wskazaniem kursorem jest kluczowe dla tworzenia efektywnych i przyjaznych dla użytkownika aplikacji internetowych.

Pytanie 5

Jaką wartość zwróci ten algorytm?

Z = 0
N = 1
dopóki Z < 3:
    N = N * 2 + 1
    Z = Z + 1
wypisz N
A. 7
B. 5
C. 3
D. 15
Zrozumienie działania tego algorytmu jest kluczowe dla programowania i matematyki obliczeniowej. Algorytm ten wykorzystuje pętlę 'dopóki', która wykonuje operacje na dwóch zmiennych: Z i N. Na początku Z jest równe 0, a N jest równe 1. Pętla trwa dopóki Z jest mniejsze od 3. W każdej iteracji pętli zmienna N jest aktualizowana zgodnie z wyrażeniem N = N * 2 + 1 oraz Z jest zwiększane o 1. Przy pierwszej iteracji Z wynosi 0, więc N staje się 1 * 2 + 1 = 3, a Z zostaje zwiększone do 1. W drugiej iteracji Z wynosi 1, więc N staje się 3 * 2 + 1 = 7, a Z wynosi 2. W trzeciej iteracji Z wynosi 2, dlatego N staje się 7 * 2 + 1 = 15, a Z zostaje zwiększone do 3, co kończy pętlę. W rezultacie, gdy algorytm kończy działanie, zmienna N ma wartość 15, która zostaje wypisana. To podejście jest zgodne z dobrymi praktykami w pisaniu algorytmów, gdzie dbałość o zrozumienie pętli i operacji na zmiennych jest fundamentalna dla tworzenia wydajnych programów.

Pytanie 6

W CSS właściwość font-size może przyjmować wartości według słów kluczowych

A. tylko smali, smaller, large, larger
B. z zestawu xx-small, x-small, smali, medium, large, x-large, xx-large
C. wyłącznie smali, medium, large
D. jedynie big i smali
Właściwość font-size w CSS pozwala na określenie rozmiaru czcionki za pomocą zestawu wartości słownikowych, które obejmują xx-small, x-small, small, medium, large, x-large oraz xx-large. Użycie tych słów kluczowych jest zgodne z wytycznymi CSS i zapewnia spójne i zrozumiałe podejście do projektowania. Przykładowo, definiując klasę CSS dla nagłówka, możemy zastosować: h1 { font-size: large; } co skutkuje odpowiednim zwiększeniem rozmiaru czcionki, co jest zgodne z hierarchią typograficzną dokumentu. Zastosowanie wartości słownikowych zwiększa czytelność i dostępność treści, ponieważ są one zrozumiałe zarówno dla programistów, jak i dla przeglądarek. Ponadto, korzystając z tych wartości, projektanci mogą łatwiej dostosować wygląd strony do różnych urządzeń, co jest kluczowe w kontekście responsywnego web designu. Warto również wspomnieć, że wartości te są niezależne od jednostek miary, takich jak em czy px, co sprawia, że są bardziej elastyczne w użyciu.

Pytanie 7

Dostępna jest tabela uczniowie, która zawiera pól id, imie, nazwisko, data_ur (format rrrr-mm-dd). Które zapytanie w SQL wyświetli tylko imiona oraz nazwiska uczniów urodzonych w roku 2001?

A. SELECT id, imie, nazwisko, data_ur FROM uczniowie WHERE data_ur like "2001-*-*"
B. SELECT * FROM uczniowie WHERE data_ur == 2001-%-%
C. SELECT imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%"
D. SELECT * FROM uczniowie WHERE data_ur like "2001"
Analizowane odpowiedzi niepoprawne zawierają błędy wynikające z niewłaściwego zrozumienia składni SQL oraz mechanizmu wyszukiwania danych w bazach. Pierwsza odpowiedź wykorzystuje operator 'LIKE' w kontekście '2001', co jest nieadekwatne, ponieważ nie uwzględnia pełnego formatu daty. Operator 'LIKE' wymaga wzorca, który odpowiada pełnemu formatowi 'rrrr-mm-dd', a jedynie podanie roku prowadzi do pominięcia istotnych informacji o miesiącu i dniu. W drugiej opcji również zredukowano zapytanie do wykorzystania operatora 'LIKE', lecz zastosowanie wzorca '2001-%-%' jest niepoprawnie sformułowane w kontekście tego, co ma być wyświetlane - brakuje klarownego wskazania kolumn. Kolejne propozycje wykorzystują błędny operator '==' oraz niepoprawny wzorzec, co może prowadzić do błędów wykonania zapytania. W SQL operator '==' nie jest standardem; zamiast tego powinno się używać '=' do porównań. Te pomyłki pokazują typowe nieporozumienia dotyczące składni SQL oraz koncepcji dotyczących wzorców wyszukiwania. Prawidłowe zrozumienie tych zasad jest kluczowe w kontekście efektywnego zarządzania bazami danych oraz ich optymalizacji, co jest niezbędne dla osiągnięcia wysokiej wydajności aplikacji bazodanowych.

Pytanie 8

W pokazanym fragmencie zapytania w języku SQL, polecenie SELECT ma na celu uzyskanie wyników z komendy SELECT COUNT(wartosc) FROM....?

A. sumę wartości w kolumnie wartosc
B. średnią wartości w tabeli
C. średnią wartości w kolumnie wartosc
D. liczbę rekordów
W kontekście zapytania SQL, komenda SELECT COUNT(wartosc) ma na celu zwrócenie liczby wierszy w danej tabeli, które spełniają określone kryteria. Funkcja COUNT jest jedną z agregujących funkcji zapytań SQL, która zlicza liczbę niepustych wartości w kolumnie. Jeżeli argumentem funkcji jest konkretna kolumna, to zostaną zliczone tylko te wiersze, w których ta kolumna zawiera wartości, natomiast jeżeli użyjemy COUNT(*) bez podawania kolumny, zliczymy wszystkie wiersze tabeli, niezależnie od tego, czy kolumny zawierają wartości. Przykład praktyczny: jeśli mamy tabelę 'Zamówienia' i chcemy zliczyć liczbę dokonanych zamówień, można użyć zapytania SELECT COUNT(*) FROM Zamówienia; co zwróci całkowitą liczbę zamówień w tabeli. Istotne jest, aby zrozumieć, że COUNT zwraca liczbę wierszy, a nie sumę, średnią lub inne statystyki. W standardzie SQL nie ma specyfikacji, która by zmieniała tę funkcjonalność, co czyni ją uniwersalną w różnych bazach danych, takich jak MySQL, PostgreSQL, czy SQL Server.

Pytanie 9

Jakie możliwości daje funkcja phpinfo()?

A. analizowanie kodu PHP
B. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
C. uruchomienie kodu w języku PHP
D. zweryfikowanie wartości zmiennych użytych w kodzie PHP
Funkcja phpinfo() jest niezwykle przydatnym narzędziem, które dostarcza szczegółowych informacji na temat konfiguracji środowiska PHP na serwerze. Wywołanie tej funkcji generuje stronę HTML z danymi takimi jak wersja PHP, załadowane rozszerzenia, zmienne konfiguracyjne oraz informacje o systemie operacyjnym. Przykładowo, podczas rozwiązywania problemów z aplikacjami PHP, programiści mogą skorzystać z phpinfo() w celu weryfikacji, czy odpowiednie rozszerzenia są załadowane, co może być kluczowe dla poprawnego działania aplikacji. Dodatkowo, funkcja ta umożliwia identyfikację potencjalnych problemów z konfiguracją, takich jak niewłaściwie ustawione ścieżki do skryptów czy braki w wymaganych rozszerzeniach. Zgodnie z najlepszymi praktykami, phpinfo() powinno być używane tylko w środowiskach deweloperskich, a nie produkcyjnych, aby nie ujawniać wrażliwych informacji o serwerze. Dobrą praktyką jest również usunięcie lub zabezpieczenie dostępu do stron, które wywołują tę funkcję, aby zminimalizować ryzyko ataków.

Pytanie 10

Za pomocą stylu CSS zdefiniowano obramowanie pojedyncze o następujących kolorach krawędzi:

border: solid 1px;
border-color: red blue green yellow;
Jakie kolory będą miały poszczególne krawędzie?
A. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółta.
B. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta.
C. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta.
D. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta.
Problem z tym pytaniem najczęściej wynika z pomylenia kolejności przypisywania kolorów do krawędzi albo z założenia, że CSS „idzie” po krawędziach w innej logice niż w rzeczywistości. Własność `border-color` w wersji skróconej przy czterech wartościach ma sztywną, zdefiniowaną w specyfikacji CSS kolejność: najpierw krawędź górna, potem prawa, następnie dolna i na końcu lewa. To jest dokładnie ten sam schemat, który stosuje się w `margin`, `padding`, `border-width` i kilku innych właściwościach związanych z box modelem. Można to sobie zapamiętać jako ruch po obwodzie prostokąta zgodnie z ruchem wskazówek zegara: top → right → bottom → left. Błędne odpowiedzi sugerują inne mapowania, np. że pierwsza wartość to prawa krawędź albo lewa, albo że kolory „obracają się” w innym kierunku. To jest dość typowe nieporozumienie, bo ktoś intuicyjnie myśli: „może zaczyna się od lewej strony” albo „może idzie poziomo, a nie pionowo”. Niestety takie skojarzenia nie mają pokrycia w standardzie. Specyfikacja CSS jest tutaj jednoznaczna, a przeglądarki implementują ją konsekwentnie od lat. Jeśli więc przypiszemy `border-color: red blue green yellow;`, to jakiekolwiek inne skojarzenie niż góra–prawa–dół–lewa spowoduje błędny wynik. W praktyce prowadzi to do sytuacji, że obramowanie wygląda „dziwnie”, kolory nie są tam, gdzie projektant oczekiwał, a późniejsze debugowanie zajmuje niepotrzebnie czas. Dobrym nawykiem jest porównywanie tej składni z `margin` i `padding`, bo one działają identycznie przy czterech wartościach. Jeżeli ktoś myśli, że kolejność może być np. prawa–dół–lewa–góra, to jest to już sprzeczne z dokumentacją i nie będzie działało poprawnie w żadnej nowoczesnej przeglądarce. Lepiej trzymać się zapisanej w standardzie konwencji, bo to gwarantuje przewidywalny wygląd elementów na stronie i ułatwia współpracę w zespole front‑endowym.

Pytanie 11

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

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

Pytanie 12

Który paragraf w przedstawionym kodzie zostanie wyświetlony czcionką o kolorze niebieskim?

<!DOCTYPE html>
<html>
<head>
<style>
div~p { color: blue; }
</style>
</head>
<body>
  <div>
    <p>pierwszy paragraf</p>
      <div>
        <p>drugi paragraf</p>
        <p>trzeci paragraf</p>
      </div>
    <p>czwarty paragraf</p>
  </div>
</body>
</html>
A. Trzeci.
B. Czwarty.
C. Drugi.
D. Pierwszy.
Źródłem problemu w tym zadaniu jest zrozumienie, jak dokładnie działa selektor `div~p`. Na pierwszy rzut oka wiele osób patrzy po prostu na kolejność paragrafów w kodzie i zakłada, że skoro wewnątrz diva są kolejne `<p>`, to one wszystkie będą niebieskie. To jest typowe mieszanie działania selektora rodzeństwa z selektorem potomków. Zapis `div p` rzeczywiście oznaczałby „każdy paragraf znajdujący się gdziekolwiek wewnątrz diva”, ale w pytaniu użyto operatora tyldy `~`, który ma inne znaczenie. Selektor `div~p` wskazuje elementy `<p>`, które są rodzeństwem elementu `<div>`, czyli mają tego samego rodzica w drzewie DOM, i jednocześnie występują po nim w kodzie. To oznacza, że przeglądarka w ogóle nie patrzy na paragrafy zagnieżdżone głębiej, np. w dodatkowym `<div>` w środku. One nie są rodzeństwem, tylko potomkami, więc selektor ich nie obejmuje. Częsty błąd polega też na myleniu selektora `div~p` z `div+p`. Ten drugi wybiera wyłącznie pierwszy paragraf bezpośrednio po divie na tym samym poziomie, natomiast `~` obejmuje wszystkie późniejsze rodzeństwa danego typu. W tym przykładzie jedynym `<p>`, który jest na tym samym poziomie co zewnętrzny `<div>` i stoi po nim, jest „czwarty paragraf”. Pozostałe, mimo że wizualnie znajdują się „w środku” tego diva, nie są rodzeństwem, tylko są bardziej zagnieżdżone. Z mojego doświadczenia wynika, że dopóki nie narysuje się sobie drzewa DOM albo nie podejrzy struktury w DevTools, bardzo łatwo o takie pomyłki. Dobra praktyka w CSS to zawsze myśleć o relacjach: rodzic–dziecko, rodzeństwo, potomek, a dopiero potem o kolejności w kodzie. Dzięki temu selektory są pisane świadomie, bardziej precyzyjnie i nie powodują niespodziewanych efektów w większych projektach.

Pytanie 13

W CSS, aby stylizować tekst przy użyciu przekreślenia, podkreślenia dolnego lub górnego, należy użyć atrybutu

A. text-indent
B. text-align
C. text-decoration
D. text-transform
Atrybut text-decoration w CSS jest kluczowy do formatowania tekstu, umożliwiając zastosowanie efektów takich jak przekreślenie, podkreślenie dolne oraz górne. Można go użyć w prosty sposób, na przykład: 'text-decoration: underline;' dodaje podkreślenie do tekstu, natomiast 'text-decoration: line-through;' umożliwia przekreślenie. Dzięki tym efektom, projektanci stron mogą skutecznie komunikować różne stany tekstu, takie jak usunięte lub nieaktualne informacje. Standardy CSS, określone przez W3C, zalecają użycie text-decoration w kontekście dostępności, co poprawia czytelność i umożliwia lepsze zrozumienie treści przez użytkowników. Warto pamiętać, że text-decoration posiada również wartość 'none', co pozwala na usunięcie wszelkich dekoracji z tekstu. Dzięki temu deweloperzy mogą z łatwością dostosować wygląd tekstu zgodnie z wymaganiami projektu, co stanowi dobrą praktykę w responsywnym web designie.

Pytanie 14

Która z czynności nie wpłynie na objętość zajmowanej pamięci pliku graficznego?

A. Zmiana rozmiaru obrazu przy użyciu atrybutów HTML
B. Kompresja
C. Modyfikacja rozdzielczości obrazu
D. Interpolacja
Zmiana rozdzielczości obrazu, kompresja oraz interpolacja to techniki, które zdecydowanie wpływają na rozmiar pliku graficznego. Zmiana rozdzielczości obrazu polega na modyfikacji liczby pikseli w obrazie, co bezpośrednio wpływa na jego wagę. Im większa rozdzielczość, tym więcej danych jest przechowywanych, co skutkuje większym plikiem. W praktyce, jeśli zredukujemy rozdzielczość obrazu, jego rozmiar pliku również zmaleje, co może być przydatne w kontekście optymalizacji stron internetowych. Kompresja to kolejny kluczowy proces, który może znacznie wpłynąć na rozmiar pliku. Polega ona na zmniejszeniu ilości danych w pliku graficznym, co może być realizowane bez widocznej utraty jakości. Istnieją różne metody kompresji, takie jak JPEG, PNG czy WebP, z których każda ma swoje zastosowania w zależności od rodzaju obrazu i wymagań projektu. Interpolacja, z kolei, to technika stosowana podczas zmiany rozmiaru obrazów, która polega na obliczaniu nowych wartości pikseli na podstawie istniejących. W procesie tym może dojść do degradacji jakości obrazu, co w przypadku niewłaściwego zastosowania prowadzi do niepożądanych efektów wizualnych. Zrozumienie, jak te techniki wpływają na pliki graficzne, jest kluczowe dla każdego twórcy treści, który pragnie optymalizować swoje zasoby i zapewniać użytkownikom jak najlepsze doświadczenia podczas przeglądania stron internetowych.

Pytanie 15

Który z rysunków obrazuje efekt działania przedstawionego fragmentu kodu HTML?

<table border="1">
 <tr><td rowspan="2">pierwszy</td><td>drugi</td></tr>
 <tr><td>trzeci</td></tr>
</table>
Ilustracja do pytania
A. B.
B. A.
C. D.
D. C.
Hmm, niestety źle. Ale spoko, każdy czasem myli. Rysunki pokazują różne układy tabel, ale tylko rysunek C oddaje to, co masz w kodzie HTML. Zwłaszcza ważne jest tu użycie atrybutu rowspan='2', który sprawia, że komórka 'pierwszy' rozciąga się na dwa wiersze. W pierwszym wierszu jest 'drugi', a w drugim tylko 'trzeci', bo 'pierwszy' zajmuje już sporo miejsca. Może pomyliłeś rowspan z colspan? To drugie dotyczy kolumn, podczas gdy pierwsze to wiersze. Spróbuj jeszcze raz, mając to na uwadze. Zrozumienie układu tabeli w HTML jest kluczowe dla stworzenia fajnych stron.

Pytanie 16

W programie do edycji grafiki rastrowej, aby skoncentrować się na wybranej części obrazu, nie wpływając na pozostałe jego fragmenty, można zastosować

A. odwrócenie
B. przycinanie
C. warstwy
D. zmianę rozmiaru
Warstwy w edytorach grafiki rastrowej to fundamentalne narzędzie umożliwiające pracę na poszczególnych elementach obrazu bez wpływu na całość. Dzięki zastosowaniu warstw można oddzielić różne elementy graficzne, co pozwala na edytowanie, przekształcanie i manipulowanie nimi niezależnie. Na przykład, można umieścić tekst na oddzielnej warstwie, a następnie dowolnie zmieniać jego położenie, rozmiar czy kolor, nie wpływając na tło. Dodatkowo, warstwy umożliwiają łatwe tworzenie efektów przezroczystości oraz cieni, co zwiększa możliwości artystyczne i techniczne podczas projektowania. W praktyce, standardy dotyczące pracy z warstwami są powszechnie stosowane w branży, co podkreśla ich znaczenie w profesjonalnych edytorach takich jak Adobe Photoshop czy GIMP. Warto również dodać, że organizacja pracy z warstwami, poprzez odpowiednie ich nazywanie i grupowanie, znacznie ułatwia zarządzanie złożonymi projektami graficznymi.

Pytanie 17

W języku SQL wydano polecenie

CREATE USER 'anna'@'localhost' IDENTIFIED BY '54RTu8';
Jednak operacja ta zakończyła się niepowodzeniem z powodu błędu: #1396 - Operation CREATE USER failed for 'anna'@'localhost'. Możliwą przyczyną tego problemu bazy danych może być:
A. nieznane polecenie CREATE USER
B. niewystarczająca siła hasła dla konta anna
C. istnienie użytkownika anna w bazie danych
D. błędna składnia polecenia CREATE USER
Dobra robota! Odpowiedź, którą wybrałeś, jest słuszna. Problem z utworzeniem użytkownika 'anna' wynika z tego, że już taki użytkownik istnieje w bazie. W systemach baz danych, jak MySQL, każdy użytkownik musi mieć unikalną nazwę i hosta, z którego się łączy. Kiedy próbujesz dodać kogoś, kto już jest, dostajesz błąd z kodem #1396. Fajnie jest przed dodawaniem nowego użytkownika sprawdzić, czy już nie jest zarejestrowany, żeby uniknąć nieporozumień. Jeśli już ktoś istnieje, można też pomyśleć o edytowaniu tego konta zamiast tworzenia nowego, używając komendy ALTER USER. Takie podejście sprawia, że zarządzanie użytkownikami jest dużo prostsze i bezpieczniejsze.

Pytanie 18

Zgodnie z zasadami ACID dotyczącymi transakcji, wymóg izolacji (ang. isolation) wskazuje, że

A. gdy wystąpi konflikt z inną transakcją, obie mogą modyfikować te same dane równocześnie
B. jeśli dwie transakcje są wykonywane równolegle, to zazwyczaj nie zauważają wprowadzanych przez siebie zmian
C. po zrealizowaniu transakcji system baz danych będzie w stanie spójności
D. pod określonymi warunkami dane modyfikowane przez transakcję mogą zostać anulowane
Izolacja, jako jedno z kluczowych wymagań standardu ACID w kontekście transakcji baz danych, oznacza, że transakcje wykonywane współbieżnie nie wpływają na siebie nawzajem w sposób widoczny. Gdy dwie transakcje są uruchamiane jednocześnie, każda z nich operuje na swoim zestawie danych, nie widząc zmian dokonanych przez drugą do momentu zakończenia transakcji. Dzięki temu, nawet w środowisku o dużym natężeniu operacji, możliwe jest zapewnienie spójności danych. Na przykład, w systemie bankowym, jeśli jeden użytkownik wykonuje przelew, a inny jednocześnie sprawdza stan konta, to proces sprawdzania nie powinien ujawniać niepotwierdzonych jeszcze operacji przelewu. W praktyce, mechanizmy takie jak blokady, czasowe znaczniki (timestamps) oraz protokoły kontroli współbieżności (np. MVCC - Multi-Version Concurrency Control) są wykorzystywane do zapewnienia tej izolacji, co jest fundamentalne dla zachowania integralności danych i poprawności operacji w wielu aplikacjach bazodanowych.

Pytanie 19

W języku JavaScript zapis ```x = przedmiot.nazwa();``` oznacza, że

A. zmienna x będzie przechowywać wynik działania metody nazwa.
B. nazwa jest polem klasy przedmiot.
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
D. nazwa jest właściwością obiektu przedmiot.
Twoja odpowiedź jest niepoprawna. Wybierając opcję, że 'nazwa jest właściwością obiektu przedmiot' możesz mylić funkcje i właściwości. Właściwości to wartości przechowywane w obiekcie, natomiast metody to funkcje związane z obiektem. Jeśli zapis jest w formie 'przedmiot.nazwa();', to 'nazwa' jest metodą, a nie właściwością obiektu. Druga niepoprawna odpowiedź, 'nazwa jest polem klasy przedmiot', sugeruje, że JavaScript jest językiem typu klasowego, jak Java czy C#. W rzeczywistości, JavaScript jest językiem prototypowym, co oznacza, że nie ma klas. Zamiast tego, obiekty dziedziczą bezpośrednio od innych obiektów. Ostatnia niepoprawna odpowiedź, 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', prawdopodobnie wynika z niezrozumienia różnicy między metodami a wolno stojącymi funkcjami. W JavaScript, funkcje są 'wolno stojące', co oznacza, że nie są związane z żadnym obiektem, podczas gdy metody są funkcjami zdefiniowanymi na obiekcie.

Pytanie 20

W jaki sposób funkcjonuje instrukcja do łączenia wyników zapytań INTERSECT w SQL?

A. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego zapytania
B. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
C. Zwraca część wspólną wyników dwóch zapytań
D. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
Instrukcja INTERSECT w języku SQL jest używana do zwracania wspólnych wyników dwóch lub więcej zapytań SELECT. W praktyce INTERSECT identyfikuje i zwraca jedynie te wiersze, które występują zarówno w pierwszym, jak i w drugim zbiorze wyników. Warto zauważyć, że podczas używania tej instrukcji, domyślnie usuwane są duplikaty, co oznacza, że każde unikalne wystąpienie wspólnych wierszy zostanie zwrócone tylko raz. Na przykład, jeżeli mamy dwa zapytania: pierwsze zwracające klientów z miasta A, a drugie klientów z miasta B, zastosowanie INTERSECT pozwoli nam uzyskać listę klientów, którzy znajdują się w obu zbiorach, co może być istotne w kontekście analizy danych lub segmentacji rynku. W kontekście standardów SQL, INTERSECT jest jednym z operatorów zbiorowych, obok UNION i EXCEPT, co czyni go fundamentalnym narzędziem w pracy z relacyjnymi bazami danych. Użycie INTERSECT może być korzystne w sytuacjach, gdy chcemy uzyskać analizę porównawczą lub zidentyfikować wspólne elementy pomiędzy różnymi zestawami danych, co jest kluczowe w wielu zastosowaniach analitycznych i raportowych.

Pytanie 21

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Przenikanie zdjęć.
C. Zmniejszenie kontrastu zdjęcia.
D. Zwiększenie ostrości zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 22

W języku PHP zmienna globalna $_POST, służąca do odbierania danych z formularza przesłanych metodą POST, jest: 

A. obiektem klasy stdClass.
B. tablicą asocjacyjną.
C. ciągiem znaków zakodowanym w JSON.
D. zmienną tekstową.
Poprawnie – w PHP zmienna superglobalna $_POST jest tablicą asocjacyjną, czyli zbiorem par klucz ⇒ wartość. Kluczami są nazwy pól formularza (atrybut name w HTML), a wartościami – dane przesłane metodą POST. Dzięki temu po stronie PHP możesz wygodnie odwoływać się do konkretnych pól, np.: $imie = $_POST['imie']; $email = $_POST['email'];. To jest bardzo naturalne, bo struktura formularza HTML też opiera się na nazwach pól, więc mapowanie na tablicę asocjacyjną jest po prostu praktyczne. Moim zdaniem ważne jest też zrozumienie, że $_POST zawsze jest tablicą (array w PHP), nawet jeśli w formularzu jest tylko jedno pole. Jeżeli użytkownik nic nie wyśle, to będzie to pusta tablica, a nie null czy ciąg znaków. Z mojego doświadczenia warto zawsze sprawdzać isset($_POST['nazwa']) albo używać filter_input(INPUT_POST, 'nazwa'), co jest zgodne z dobrymi praktykami bezpieczeństwa. $_POST jest jedną z tzw. superglobali, obok $_GET, $_SERVER, $_FILES, $_SESSION itd. Są one dostępne w całym skrypcie, niezależnie od zasięgu (scope) funkcji. W kontekście formularzy webowych przyjętym standardem jest: używamy $_GET do danych z adresu URL (zapytania typu ?id=5), a $_POST do danych z formularzy, szczególnie gdy przesyłamy hasła, większe teksty, dane wrażliwe. To jest zgodne z typową architekturą aplikacji webowych w PHP. Warto też wiedzieć, że wartości w $_POST są zawsze typu string (lub tablica stringów, gdy używasz nazw pól z nawiasami, np. name="interesy[]"), ale sama zmienna $_POST jest tablicą asocjacyjną. Dobra praktyka: nie ufaj ślepo zawartości $_POST – zawsze waliduj i filtruj dane wejściowe przed zapisaniem do bazy czy wyświetleniem użytkownikowi, żeby unikać np. XSS i SQL injection.

Pytanie 23

Obraz przedstawia formatowanie CSS paragrafu. Aby otrzymać czerwony kolor poza obramowaniem, tak jak przedstawiono na obrazie, należy zdefiniować własność

Oto przykład paragrafu który poza ramką ma kolor grubości 10 px

A. border
B. outline
C. padding
D. background
Niestety, to nie jest poprawna odpowiedź. Możliwe, że pomyliłeś niektóre właściwości CSS. 'Padding' zwiększa wewnętrzny odstęp w elemencie, ale nie zmienia koloru obramowania. Z kolei 'background' odpowiada za tło elementu. Pamiętaj, że 'border' tworzy obramowanie i to wpływa na rozmiar elementu. Natomiast 'outline' to kontur, który tylko otacza element bez wpływania na jego układ. Warto przemyśleć tę różnicę, bo to kluczowe, żeby dobrze ogarniać CSS. Pracuj nad tym i spróbuj jeszcze raz.

Pytanie 24

Jakie uprawnienia posiada użytkownik jan po wykonaniu poniższych poleceń na bazie danych? ```GRANT ALL PRIVILEGES ON klienci TO jan;``` ```REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;```

A. Będzie miał możliwość usuwania rekordów z tabeli klienci
B. Będzie miał możliwość wstawiania rekordów do tabeli klienci
C. Będzie miał możliwość wyszukiwania danych w tabeli klienci
D. Będzie miał możliwość zmiany struktury tabeli klienci
Odpowiedź jest poprawna, ponieważ po wykonaniu poleceń SQL użytkownik jan ma przyznane wszystkie uprawnienia do tabeli klienci, a następnie odebrano mu konkretne uprawnienia do wykonywania operacji SELECT, INSERT, UPDATE oraz DELETE. Oznacza to, że jedynym uprawnieniem, które pozostaje jemu po tych operacjach, jest możliwość zmiany struktury tabeli, co oznacza operacje takie jak ADD COLUMN czy DROP COLUMN. W praktyce, gdy przyznajemy użytkownikowi rolę, często stosujemy uprawnienia do wykonywania operacji DDL (Data Definition Language), które są niezbędne do modyfikacji schematu bazy danych. Odpowiedzi na pytania dotyczące uprawnień powinny uwzględniać kontekst celów administracyjnych, ponieważ różne role użytkowników mogą mieć różne poziomy dostępu. W związku z tym, zrozumienie systemu uprawnień w kontekście zarządzania bazą danych jest kluczowe, a dobrym standardem jest nadawanie użytkownikom tylko tych uprawnień, które są niezbędne do wykonywania ich zadań.

Pytanie 25

Fragment kodu JavaScript, który sumuje dwie liczby, przedstawia się następująco. Aby wykonać dodawanie po kliknięciu przycisku o nazwie dodaj, należy umieścić kod w wykropkowanym miejscu.

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
....
<script>
function dodaj()
{
// ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onselect="return dodaj()">oblicz</button>
B. <button onselect="return dodaj()">dodaj</button>
C. <button onclick="return oblicz()">dodaj</button>
D. <button onclick="return dodaj()">dodaj</button>
W omawianym zadaniu kluczowym aspektem jest prawidłowe przypisanie funkcji do zdarzenia kliknięcia. Atrybut onselect jest nieodpowiedni w tym kontekście, ponieważ dotyczy zdarzeń związanych z zaznaczeniem tekstu, a nie z kliknięciem przycisku. Wprowadzenie onselect jako atrybutu w odpowiedziach 1 i 2 jest błędne, gdyż nie spełnia funkcji wywoływania zdarzenia kliknięcia, które jest wymagane do uruchomienia procesu dodawania. Obsługa zdarzeń w JavaScript bazuje na przypisaniu odpowiednich funkcji do określonych sytuacji interakcji użytkownika z elementami interfejsu. Kliknięcie jest jednym z najczęściej używanych zdarzeń, dlatego poprawne użycie onclick zapewnia zgodność z podstawowymi zasadami projektowania aplikacji webowych. W odpowiedzi 3 atrybut onclick jest użyty poprawnie, jednak nazwa funkcji oblicz() nie jest tożsama z wymaganą funkcją dodaj(), przez co nie spełnia wymogów zadania. Ważne jest, aby nazwa funkcji w atrybucie onclick dokładnie odpowiadała nazwie funkcji, która ma być wykonana. To unikanie niezgodności w kodzie źródłowym pozwala na efektywne zarządzanie funkcjami i zapewnia prawidłowe działanie skryptu. Atrybut onclick powinien być stosowany, gdy chcemy zareagować na bezpośrednie działania użytkownika takie jak kliknięcie przycisku. Dzięki temu możemy tworzyć dynamiczne i interaktywne aplikacje internetowe, które odpowiadają na potrzeby użytkownika w czasie rzeczywistym, co jest jednym z kluczowych celów nowoczesnego projektowania stron internetowych.

Pytanie 26

W systemach bazodanowych, aby przedstawić dane, które spełniają określone kryteria, należy stworzyć

A. formularz
B. makropolecenie
C. relację
D. raport
Raport w kontekście baz danych to coś, co naprawdę pomaga w uporządkowanej prezentacji danych. Dzięki niemu możemy pokazać informacje w taki sposób, żeby było to zrozumiałe i zgodne z tym, czego potrzebujemy. Raporty to świetne narzędzie do zbierania danych, ich analizy i wizualizacji, co jest bardzo ważne w biznesie. Na przykład, można za ich pomocą stworzyć zestawienie sprzedaży za dany okres, porównać finanse różnych działów firmy albo sprawdzić, jak skuteczne były kampanie marketingowe. W praktyce często korzysta się z takich raportów w programach jak Microsoft Access, gdzie można wybrać źródło danych, odpowiednie pola i ustawić filtry. To wszystko po to, żeby stworzyć dokument, który jasno przedstawia wyniki analizy. Warto pamiętać, że tworzenie raportów powinno opierać się na dobrych zasadach, takich jak czytelność i estetyka, a także dostosowanie do potrzeb użytkownika, bo to naprawdę się liczy, jeśli chodzi o UX.

Pytanie 27

W PHP do zapisywania informacji w pliku służy funkcja

A. fputs()
B. fopen()
C. freadfile()
D. fgets()
Analizując inne funkcje wymienione w pytaniu, można zauważyć, że każda z nich pełni inną rolę w kontekście operacji na plikach. fgets() służy do odczytywania linii tekstu z otwartego pliku, co sprawia, że jest całkowicie nieodpowiednia do zapisu danych. Użytkownicy mogą myśleć, że skoro fgets() dotyczy plików, to może również być używana do ich modyfikacji, co jest błędnym założeniem, gdyż funkcja ta nie ma możliwości zapisu. Z kolei fopen() jest używana do otwierania plików, a nie do zapisywania. Chociaż jest to pierwsza czynność przed zapisaniem danych, sama fopen() nie wykonuje operacji zapisu. Użytkownicy mogą mylić otwieranie pliku z jego zapisaniem, co prowadzi do nieporozumienia w zakresie operacji na plikach. freadfile() natomiast jest przeznaczona do odczytu zawartości pliku i jej wyświetlenia, co również czyni tę funkcję nieodpowiednią do zapisu. Wszelkie nieporozumienia związane z tymi funkcjami mogą wynikać z braku zrozumienia ich podstawowych zastosowań i funkcji w PHP. Aby uniknąć takich pomyłek, ważne jest, aby podczas nauki programowania w PHP szczegółowo zaznajomić się z dokumentacją oraz przykładami zastosowania każdej funkcji, co pomoże w lepszym zrozumieniu, jak prawidłowo manipulować plikami.

Pytanie 28

Który zapis CSS wprowadzi niebieskie tło dla bloku?

A. div {background-color: blue;}
B. div {color: blue;}
C. div {shadow: blue;}
D. div {border-color: blue;}
Odpowiedzi div {border-color: blue;}, div {color: blue;} oraz div {shadow: blue;} nie są poprawne z kilku powodów, które warto szczegółowo omówić. Pierwsza z tych odpowiedzi odnosi się do właściwości 'border-color', która zmienia kolor obramowania elementu. Chociaż może to wpłynąć na wygląd bloku, nie ma wpływu na tło, co jest celem pytania. Z kolei 'color' to właściwość, która definiuje kolor tekstu wewnątrz elementu, a nie tła. Oznacza to, że użycie tej właściwości zmieni tylko kolor tekstu, pozostawiając tło bez zmian. Wreszcie, zapis 'shadow' nie istnieje w standardzie CSS, co wskazuje na nieporozumienie dotyczące właściwości stylizacji. Możliwe, że użytkownik miał na myśli 'box-shadow', która stosuje cień do elementu, ale nie dotyczy to koloru tła. Kluczowym błędem jest brak zrozumienia podstawowych właściwości CSS oraz ich zastosowania. Warto pamiętać, że CSS ma określone zasady i właściwości, które należy stosować zgodnie z ich przeznaczeniem, aby osiągnąć zamierzony efekt wizualny. Zrozumienie tych różnic jest fundamentalne dla każdego, kto chce efektywnie posługiwać się CSS i projektować atrakcyjne oraz funkcjonalne strony internetowe.

Pytanie 29

W programie Microsoft Access metodą zabezpieczającą dostęp do danych związanych z tabelą oraz kwerendą jest

A. przydzielenie uprawnień
B. nałożenie limitów przestrzeni dyskowej
C. ustalanie przestrzeni tabel
D. użycie makr
Przypisanie uprawnień w programie Microsoft Access jest kluczowym mechanizmem zabezpieczającym dostęp do danych w tabelach i kwerendach. Uprawnienia definiują, kto ma dostęp do jakich zasobów oraz jakie operacje mogą być na nich wykonywane, co jest istotne w kontekście ochrony danych przed nieautoryzowanym dostępem. W Microsoft Access uprawnienia można przydzielać na poziomie użytkownika lub grupy użytkowników, co umożliwia granularne zarządzanie dostępem. Przykładem może być sytuacja, w której administrator przydziela uprawnienia do odczytu, edycji lub usuwania danych tylko wybranym użytkownikom, co jest niezbędne w środowiskach, gdzie dane są wrażliwe i wymagają ochrony. Przypisanie uprawnień opiera się na standardzie modelu kontroli dostępu, który definiuje zasady dotyczące uprawnień oraz poziomów dostępu. W praktyce, proces ten obejmuje tworzenie ról użytkowników oraz przypisywanie im odpowiednich uprawnień, co wspiera zgodność z regulacjami prawnymi dotyczącymi ochrony danych osobowych, takimi jak RODO.

Pytanie 30

W PHP operatorem odpowiedzialnym za sumę logiczną jest

A. &&
B. !
C. +
D. ||
Suma logiczna oznaczona jako ! to operator negacji, który zmienia wartość logiczną na przeciwną. Na przykład, jeśli warunek jest prawdziwy, użycie ! zwróci wartość fałszywą. Operator + w kontekście PHP nie jest przypisany do operacji logicznych, lecz do dodawania wartości liczbowych, co może prowadzić do nieporozumień. Operator && oznacza koniunkcję, co oznacza, że obie strony muszą być prawdziwe, aby wynik był prawdziwy. Często mylone jest znaczenie operatorów logicznych, co prowadzi do błędnych wniosków przy tworzeniu warunków. Kluczowe jest zrozumienie, że nie każdy operator logiczny działa w taki sam sposób - operator OR (||) zwraca prawdę, jeśli przynajmniej jedna z metod jest prawdziwa, podczas gdy operator AND (&&) wymaga, aby obydwie były prawdziwe. W praktyce, wykorzystanie złych operatorów w warunkach sterujących może prowadzić do błędnych decyzji w kodzie, co wpływa na stabilność aplikacji. Dlatego znajomość zastosowania operatorów logicznych w PHP jest niezbędna dla każdego programisty, aby unikać problemów w logice biznesowej aplikacji.

Pytanie 31

W tabeli zwierzeta znajdują się pola: nazwa, gatunek, gromada, cechy oraz dlugosc_zycia. Aby uzyskać listę nazw zwierząt, które dożywają przynajmniej 20 lat i są ssakami, należy wykonać zapytanie:

A. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20;
B. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
C. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 AND gromada = 'ssak';
D. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 OR gromada = 'ssak';
W przypadku pierwszej odpowiedzi, zapytanie nie sprawdza, czy zwierzęta są ssakami, co jest bardzo ważne. W efekcie zwraca wszystkie zwierzęta, które żyją co najmniej 20 lat, a nie tylko ssaki. Takie coś może doprowadzić do błędnych wniosków, bo wyniki będą obejmować też inne grupy zwierząt, co nie odpowiada wymaganiom pytania. W drugiej odpowiedzi brakuje kluczowego warunku dotyczącego długości życia, bo ta odpowiedź zwraca tylko ssaki. To uniemożliwia spełnienie obu wymagań jednocześnie. Trzecia odpowiedź nie bierze pod uwagę długości życia i skupia się tylko na ssakach, co znowu nie jest zgodne z pytaniem. Ostatnia odpowiedź źle używa operatora OR, przez co zwróci wszystkie zwierzęta, które spełniają przynajmniej jeden warunek, a nie oba. Taki logiczny błąd może sprawić, że wyniki będą zawierały zwierzęta, które w ogóle nie spełniają żadnego z warunków, co czyni zapytanie nieskutecznym. Często takie pomyłki wynikają z braku zrozumienia, jak działają operatorzy logiczni i pomijania kontekstu pytania.

Pytanie 32

Standard kodowania ISO-8859-2 jest używany do poprawnego wyświetlania

A. symboli matematycznych
B. znaków specjalnych dla języka kodu strony
C. polskich liter, takich jak: ś, ć, ń, ó, ą
D. znaków zarezerwowanych dla języka opisu strony
Kodowanie w standardzie ISO-8859-2, znane również jako Latin-2, jest szczególnie istotne dla poprawnego wyświetlania znaków diakrytycznych, które są charakterystyczne dla języków słowiańskich, w tym polskiego. W standardzie tym zdefiniowane są znaki reprezentujące polskie litery takie jak: ś, ć, ń, ó, ą oraz inne znaki diakrytyczne. Przykładem zastosowania tego kodowania może być strona internetowa zawierająca treści w języku polskim, która wymaga użycia odpowiednich znaków w swoich nagłówkach, akapitach czy formularzach. Stosowanie ISO-8859-2 w HTML-u, np. poprzez deklarację w metatagach, zapewnia, że przeglądarki internetowe będą w stanie prawidłowo interpretować i wyświetlać te znaki, co zwiększa czytelność i dostępność treści dla użytkowników. W kontekście dobrych praktyk, warto zauważyć, że dla nowych projektów często zaleca się korzystanie z kodowania UTF-8, które obejmuje znaki ze wszystkich języków, jednak ISO-8859-2 nadal znajduje zastosowanie w wielu starszych systemach i aplikacjach, gdzie zachowanie zgodności z istniejącymi danymi jest kluczowe.

Pytanie 33

Web designer pragnie wstawić w znaczniku <header> nagłówek do treści. Zgodnie z zasadami użycia znaczników semantycznych, powinien wykorzystać znacznik

A. <title>
B. <p>
C. <strong>
D. <h1>
Zastosowanie znacznika <h1> w nagłówkach strony internetowej jest zgodne z zasadami semantycznymi HTML. Znacznik <h1> jest przeznaczony do oznaczania głównego nagłówka dokumentu i powinien być używany do przedstawienia najważniejszej treści. Dobrą praktyką jest, aby każda strona miała tylko jeden znacznik <h1>, co pomaga wyszukiwarkom zrozumieć hierarchię treści na stronie. Na przykład, w przypadku artykułu, tytuł artykułu mógłby być umieszczony w znaczniku <h1>, a podtytuły w <h2>, <h3> itd. W ten sposób struktura dokumentu jest jasna, co poprawia dostępność oraz SEO. Dodatkowo, stosowanie semantycznych znaczników ułatwia nawigację po stronie osobom korzystającym z technologii asystujących, takich jak czytniki ekranu, które interpretują hierarchię treści na podstawie użytych znaczników.

Pytanie 34

Przedstawiono fragment HTML, który nie przechodzi poprawnej walidacji. Błąd walidacyjny tego kodu dotyczy

<!DOCTYPE html>
<html>
 <head>
  <title>Test</title>
 </head>
 <body>
  <img src="obraz.gif alt="Obrazek">
  <h1>Rozdział 1</h1>
  <p>To jest tekst paragrafu, ... </p>
  <br>
  <img src="obraz.gif" alt="Obrazek">

 </body>
</html>
A. niedomknięcia znacznika img.
B. niedomknięcia znacznika br.
C. powtórzenia nazwy pliku graficznego.
D. braku cudzysłowu.
Wybrane odpowiedzi sugerują pewne nieporozumienia dotyczące zasad walidacji kodu HTML. Po pierwsze, znacznik <img> nie wymaga domknięcia, a więc niedomknięcie tego znacznika nie byłoby błędem walidacji. Jest to znacznik samozamykający się, służący do osadzania obrazów na stronie. Podobnie, nie ma wymogu domknięcia znacznika <br>, który jest również samozamykający się i służy do tworzenia linii przerwy. Ponadto, powtórzenie nazwy pliku graficznego w kodzie HTML nie jest błędem walidacji. Możliwe jest użycie tego samego obrazu w wielu miejscach na stronie, co wiązałoby się z wielokrotnym użyciem tej samej nazwy pliku. Kluczowe jest zrozumienie, że walidacja HTML polega głównie na sprawdzaniu poprawności składni, a nie na ocenie decyzji projektowych, takich jak wybór grafik. Zasadniczy błąd walidacji w analizowanym fragmencie kodu polega na braku cudzysłowu otaczającego atrybuty w znaczniku <img>, co jest wymogiem poprawnej walidacji kodu HTML.

Pytanie 35

Która z czynności NIE WPŁYNIE na wielkość zajmowanej pamięci pliku graficznego?

A. Skalowanie obrazu przy użyciu atrybutów HTML
B. Zmiana rozdzielczości obrazu
C. Interpolacja
D. Kompresja
Skalowanie obrazu za pomocą atrybutów HTML nie wpływa na rozmiar pliku graficznego, ponieważ ta operacja odbywa się po stronie klienta, w przeglądarce, a nie na samym pliku. Gdy obraz jest wyświetlany w HTML, atrybuty takie jak 'width' i 'height' mogą zmienić jego wizualny rozmiar na stronie, ale nie modyfikują samego pliku. W praktyce oznacza to, że niezależnie od tego, jak duży lub mały wyświetlany jest obraz, jego rzeczywisty rozmiar na dysku pozostaje niezmieniony. Dobrą praktyką w web designie jest stosowanie odpowiednich rozmiarów i formatów obrazów w zależności od kontekstu, co może poprawić szybkość ładowania strony i doświadczenie użytkownika. Warto również pamiętać, że zbyt duże obrazy mogą powodować dłuższy czas ładowania, co wpływa na SEO i oceny wydajności witryny. Dlatego zaleca się optymalizację obrazów przed ich dodaniem do strony, co jest bardziej efektywne niż poleganie na zmianie rozmiarów przez HTML.

Pytanie 36

Narzędziem do zarządzania bazą danych, które jest zintegrowane w pakiecie XAMPP, jest

A. MySQL Workbench
B. pgAdmin
C. SQLite
D. phpMyAdmin
phpMyAdmin jest popularnym narzędziem wbudowanym w pakiet XAMPP, które służy do zarządzania bazą danych MySQL. Umożliwia użytkownikom łatwe wykonywanie operacji takich jak tworzenie, edytowanie i usuwanie baz danych oraz tabel, a także zarządzanie użytkownikami i uprawnieniami. Interfejs phpMyAdmin jest oparty na przeglądarkach internetowych, co sprawia, że jego obsługa jest intuicyjna nawet dla osób bez zaawansowanej wiedzy technicznej. Przykładowo, można szybko importować lub eksportować dane w różnych formatach, takich jak SQL, CSV czy XML, co jest niezwykle przydatne podczas migracji danych między różnymi środowiskami. Standardy dobrych praktyk przewidują korzystanie z narzędzi takich jak phpMyAdmin w celu minimalizacji ryzyka błędów manualnych, a także w celu zwiększenia efektywności pracy z bazami danych. Dzięki phpMyAdmin, użytkownicy mogą również łatwo monitorować wydajność bazy danych i optymalizować zapytania, co jest kluczowe dla utrzymania wysokiej jakości aplikacji webowych.

Pytanie 37

Fragment formularza zaprezentowany powyżej został przetworzony w skrypcie PHP. Wskaż poprawny sposób pobierania wartości z pola edycyjnego.

Ilustracja do pytania
A. $name = $_POST['imie']
B. name = $_GET[imie]
C. name = GET['imie']
D. $name = $POST['Imię']
W przypadku niepoprawnych odpowiedzi kluczowym problemem jest niezrozumienie sposobu działania metod przesyłania danych w HTTP oraz odpowiedniego ich odczytywania w PHP. Odpowiedź z użyciem GET['imie'] pomija istotny element składniowy: znak dolara ($) przed GET, co jest konieczne w PHP dla wszystkich zmiennych. Ponadto, $_GET nie jest odpowiednia dla formularza, który został przesłany metodą POST jak w przedstawionym formularzu; użycie $_GET wskazuje na próbę pobrania danych z URL-a, co nie jest zgodne z metodą POST. Kolejna odpowiedź z użyciem $POST['Imię'] jest błędna z dwóch powodów: brak znaku dolara przy POST oraz niezachowanie poprawnej nazwy klucza który jest case-sensitive. Klucz 'Imię' różni się od 'imie' co prowadzi do błędu, gdy próbujemy odwołać się do nieistniejącego klucza. W PHP, nazwy kluczy w superglobalnych tablicach są case-sensitive, co oznacza, że każde odstępstwo od zadeklarowanej nazwy w formularzu będzie prowadziło do błędów. Te błędy często wynikają z pośpiechu lub niedokładności, co podkreśla wagę staranności i dokładności podczas pracy z kodem. Zarówno GET jak i POST mają swoje zastosowania, ale muszą być używane zgodnie z przeznaczeniem i w odpowiedni sposób, co jest kluczowe dla poprawnego działania aplikacji webowych. Zrozumienie tych różnic jest istotne dla programistów, aby unikać typowych pułapek związanych z bezpieczeństwem i funkcjonalnością aplikacji webowych. Poprawne użycie superglobalnych tablic PHP jest fundamentem tworzenia solidnych i bezpiecznych aplikacji internetowych.

Pytanie 38

Na ilustracji przedstawiającej tabelę muzyka, zrealizowano poniższe zapytanie SQL. Jaki rezultat zwróci ta kwerenda?

SELECT wykonawca FROM`muzyka`
WHERE wykonawca LIKE 'C%w';
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzesław Niemen2005Przyjdź W Taka Noc itp.
2IkonaStan Borys2014
3AerolitCzesław Niemen2017Winylowa reedycja płyty "Aerolit"
4JourneyMikołaj Czechowski2013
A. Czesław, Czechowski
B. Czesław, Niemen
C. pusty wynik
D. Czesław
W przypadku zapytania SQL które wykorzystuje operator LIKE z wzorcem C%W często dochodzi do nieporozumienia dotyczącego działania tego operatora. LIKE jest używany do porównywania wzorców tekstowych a procent % służy do zastępowania dowolnej liczby znaków. Można by błędnie założyć że skoro zapytanie ma zwrócić wykonawców których imiona zaczynają się na C i kończą na W to którąś z dostępnych opcji w tabeli spełnia ten warunek. Jednakże w tej konkretnej tabeli nie ma wykonawcy który by spełniał te kryteria. Czesław Niemen kończy się na M a nie na W natomiast Mikołaj Czechowski rozpoczyna się od litery M zamiast C. Przykładem typowego błędu jest nieprawidłowa interpretacja tego jak działają wzorce w operatorze LIKE lub przeoczenie że wzorzec musi być dokładnie zgodny z wymaganiami. Ważnym aspektem jest też zrozumienie że w praktyce biznesowej dokładność danych jest kluczowa a niepoprawne zrozumienie wzorców prowadzi do niepoprawnych wyników zapytań. Dlatego zawsze warto przetestować zapytanie na mniejszym zbiorze danych aby upewnić się że zwraca oczekiwane wyniki co jest dobrą praktyką w zarządzaniu bazami danych.

Pytanie 39

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

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

Pytanie 40

Które z formatowań nie jest wyrażone w języku CSS?

Ilustracja do pytania
A. Formatowanie 1
B. Formatowanie 2
C. Formatowanie 4
D. Formatowanie 3
W tym zadaniu kluczowe jest rozróżnienie, co tak naprawdę jest wyrażone w języku CSS, a co jest tylko "udawanym" formatowaniem, opartym o stare atrybuty HTML. W trzech pokazanych fragmentach stylowania tła strony faktycznie użyto CSS, tylko w różnych formach. W jednym przypadku styl został umieszczony w sekcji `<style>` wewnątrz dokumentu HTML. Taki zapis jest standardowym przykładem tzw. stylu wbudowanego w dokument i zgodnie ze specyfikacją CSS używa selektora `body` oraz deklaracji `background-color: yellow;`. W innym przykładzie ten sam kod znalazł się w osobnym pliku `.css`. To zewnętrzny arkusz stylów, który jest uznawany za najlepszą praktykę przy większych projektach, bo pozwala centralnie zarządzać wyglądem wielu stron. Trzecia forma to atrybut `style` wpisany bezpośrednio w znacznik `<body>`, np. `style="background-color: yellow;"`. Chociaż wygląda to trochę inaczej, w środku atrybutu nadal znajduje się zwykły kod CSS: nazwy właściwości, wartości, średniki – wszystko tak jak w arkuszu stylów. To wciąż jest CSS, tylko tzw. styl inline. Z mojego doświadczenia bywa on nadużywany, ale technicznie nie można powiedzieć, że nie jest to CSS. Jedyną formą, która nie korzysta z języka CSS, jest zapis z atrybutem `bgcolor`, czyli `<body bgcolor="yellow">`. Tutaj kolor tła jest określony przez specjalny, prezentacyjny atrybut HTML, który pochodzi z czasów, gdy CSS jeszcze raczkował. Ten sposób formatowania jest dziś uznawany za przestarzały i niezgodny z nowoczesnym podejściem "separation of concerns" – oddzielania struktury dokumentu od warstwy prezentacji. Typowym błędem jest myślenie, że skoro coś zmienia wygląd strony, to na pewno jest CSS. Tymczasem liczy się język i mechanizm, a nie sam efekt wizualny. Właśnie dlatego, analizując takie pytania, warto patrzeć na składnię: jeżeli widzimy selektory, nawiasy klamrowe i pary `właściwość: wartość;`, to mamy do czynienia z CSS, nawet jeśli jest wpisany inline. Jeśli natomiast widzimy stare atrybuty typu `bgcolor`, to jest to czysto HTML‑owe, historyczne rozwiązanie, które w nowych projektach lepiej omijać szerokim łukiem.