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: 4 maja 2026 12:06
  • Data zakończenia: 4 maja 2026 12:46

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Które z poniższych zapytań SQL zwróci wszystkie kolumny z tabeli 'produkty'?

A. GET * FROM produkty;
B. FETCH * FROM produkty;
C. SELECT * FROM produkty;
D. SELECT produkty FROM *;
Zapytanie SQL, które zwraca wszystkie kolumny z tabeli, wykorzystuje składnię SELECT * FROM nazwa_tabeli. Gwiazdka (*) jest symbolem, który oznacza, że chcemy pobrać wszystkie kolumny z danej tabeli. Jest to bardzo przydatne, gdy chcemy szybko uzyskać pełne dane z tabeli bez konieczności wymieniania każdej kolumny z osobna. W praktyce często używa się tej składni w sytuacjach, gdy chcemy wykonać operacje diagnostyczne lub szybkie przeglądanie zawartości tabeli. Jednakże, w środowiskach produkcyjnych, zaleca się raczej precyzyjne określanie potrzebnych kolumn zamiast używania "*", ponieważ pozwala to na optymalizację zapytań i może zmniejszyć obciążenie bazy danych. Niemniej jednak, zapytanie SELECT * FROM produkty; jest poprawne i zgodne z SQL-owym standardem, co czyni je prawidłowym wyborem w tym kontekście.

Pytanie 2

Funkcja CONCAT() w SQL służy do

A. uzyskiwania podłańcucha ze wskazanego tekstu
B. łączenia tekstów do wyświetlenia
C. usuwania określonego tekstu
D. przycinania tekstu do wyświetlenia
Funkcja CONCAT() w SQL nie ma nic wspólnego z usuwaniem tekstu, przycinaniem go ani wyznaczaniem podłańcuchów. Usunięcie wskazanego tekstu to inaczej operacja związana z funkcją REPLACE lub DELETE, które służą do usuwania fragmentów danych z tabel, a nie ich łączenia. Przycinanie tekstu, z kolei, może być realizowane za pomocą funkcji CHARINDEX lub LEN, które są używane do określenia długości tekstu lub jego pozycji, ale nie mają one zastosowania w kontekście łączenia różnych elementów. Odpowiedź sugerująca, że CONCAT() wyznacza podłańcuchy znaków, również jest mylna, ponieważ do tego celu służą funkcje takie jak SUBSTRING czy LEFT, które pozwalają na wyodrębnianie określonych części tekstu na podstawie pozycji. Typowym błędem myślowym jest mylenie różnych funkcji SQL, które pełnią odrębne role. Należy pamiętać, że każda z tych operacji ma swoje unikalne zastosowanie i są one wykorzystywane w różnych kontekstach. Dlatego przed przystąpieniem do użycia konkretnej funkcji, warto dokładnie zrozumieć jej przeznaczenie i działanie, aby uniknąć nieporozumień i błędów w zapytaniach SQL.

Pytanie 3

W przedstawionej regule CSS ```h1 {color : blue}``` h1 reprezentuje

A. selektor
B. klasę
C. deklarację
D. wartość
Wybierając błędną odpowiedź odnośnie reguły CSS `h1 {color: blue}`, można zauważyć, że czasami nie rozumiemy dobrze podstawowych terminów w CSS. Deklaracja to nie tylko selektor, ale wszystkie właściwości i wartości, które zmieniają dany element. Przykład `blue` to tylko kolor, nie jest selektorem. Klasa to inny rodzaj selektora, który zaczyna się od kropki i pozwala stylizować wiele elementów naraz, a nie tylko pojedyncze tagi HTML. Problemem często jest mylenie tych pojęć i nieznajomość ich definicji w CSS. Musisz wiedzieć, że selektory wskazują, do jakich elementów stosujemy style, a inne rzeczy, jak klasy czy różne wartości, mają inne zadania. Lepiej zrozumieć te różnice, bo to podstawa, żeby efektywnie pracować z CSS i tworzyć strony www. Fajnie byłoby także poczytać dokumentację CSS, żeby lepiej poznać różne selektory i ich zastosowanie w stylizacji.

Pytanie 4

Systemem zarządzania wersjami w projekcie oprogramowania, który jest rozproszony, jest

A. TotalCommander
B. GIT
C. FileZilla
D. Eclipse
GIT jest rozproszonym systemem kontroli wersji, który umożliwia programistom śledzenie zmian w kodzie źródłowym oraz współpracę nad projektami w zespole. Rozproszona architektura GIT pozwala każdemu deweloperowi na posiadanie pełnej kopii repozytorium, co zwiększa bezpieczeństwo i elastyczność pracy. W przeciwieństwie do centralnych systemów kontroli wersji, gdzie jedna centralna kopia repozytorium jest głównym źródłem, GIT umożliwia każdemu użytkownikowi wprowadzanie zmian lokalnie, a następnie synchronizację z innymi. Przykładem zastosowania GIT-a jest platforma GitHub, która umożliwia hosting projektów oraz wspiera pracę zespołową poprzez funkcje takie jak pull requesty czy zarządzanie problemami. GIT jest zgodny z wieloma standardami, w tym z Open Source, co czyni go narzędziem dostępnym dla szerokiej społeczności deweloperów. Jego wszechstronność i bogate możliwości, takie jak branżowanie i łączenie gałęzi, sprawiają, że jest on niezbędnym narzędziem w pracy nad nowoczesnymi projektami programistycznymi.

Pytanie 5

Jakim poleceniem SQL można zlikwidować z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE FROM artykuly WHERE tresc LIKE "%sto%"
B. DELETE FROM artykuly WHERE tresc = "%sto%"
C. DELETE * FROM artykuly WHERE tresc LIKE "%sto%"
D. DELETE * FROM artykuly WHERE tresc = "%sto%"
Odpowiedź "DELETE FROM artykuly WHERE tresc LIKE '%sto%';" jest okej, bo używasz operatora LIKE. To pozwala na szukanie wzorców w tekście. W SQL to polecenie usunie wszystkie wiersze z tabeli 'artykuly', które mają słowo 'sto' w polu 'tresc', niezależnie od tego, gdzie się ono znajduje. Te znaki procentu (%) przed i po 'sto' to takie wildcardy, które mogą oznaczać dowolny tekst przed lub po. To zgodne z dobrymi praktykami programowania w SQL, gdzie można używać LIKE, gdy nie mamy ściśle określonego formatu. Na przykład, takie zapytanie może się przydać, żeby usunąć artykuły z niepożądanym zwrotem, co ma znaczenie przy moderowaniu treści na stronach internetowych.

Pytanie 6

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", należy zastosować funkcję PHP

A. ucfirst("ala ma psa")
B. strtolower("ala ma psa")
C. strtoupper("ala ma psa")
D. strstr("ala ma psa")
Fajnie, że użyłeś funkcji strtoupper w PHP! Dzięki niej przekształcasz cały tekst na wielkie litery, co w tym przypadku zmienia 'ala ma psa' na 'ALA MA PSA'. To naprawdę przydatna funkcja, zwłaszcza w aplikacjach webowych, gdzie ważne jest, żeby tekst wyglądał tak, jak powinien, np. zgodnie z zasadami SEO czy przy prezentacji danych. Przykładowo, w formularzach warto, żeby nazwy użytkowników zawsze były w tym samym formacie. Poza tym jest cała masa innych funkcji w PHP, które mogą przydać się do manipulacji tekstem, a ich znajomość poprawia jakość kodu i jego czytelność.

Pytanie 7

Która z funkcji SQL nie przyjmuje żadnych argumentów?

A. len
B. year
C. upper
D. now
Funkcja SQL 'now' jest funkcją, która zwraca bieżącą datę i czas. Jest to przykład funkcji, która nie pobiera żadnych argumentów, co oznacza, że jej działanie jest niezależne od jakichkolwiek wartości wejściowych. W praktyce, użycie tej funkcji pozwala na uzyskanie aktualnego znacznika czasu w zapytaniach SQL, co jest szczególnie przydatne w kontekście logowania zdarzeń w bazach danych, generowania raportów lub wstawiania danych z bieżącą datą i czasem do tabeli. Na przykład, w poleceniu SQL 'INSERT INTO logi (data_czas) VALUES (now());' wstawiamy aktualny czas do kolumny 'data_czas'. Stosowanie funkcji, które nie wymagają argumentów, jak 'now', jest zgodne z najlepszymi praktykami, ponieważ upraszcza kod i minimalizuje ryzyko błędów związanych z przekazywaniem niepoprawnych argumentów.

Pytanie 8

W języku JavaScript rezultat wykonania polecenia zmienna++; będzie identyczny jak polecenia

A. zmienna --;
B. zmienna=zmienna+10;
C. zmienna===zmienna+1;
D. zmienna+=1;
W języku JavaScript operator inkrementacji '++' zwiększa wartość zmiennej o 1. Zapis 'zmienna++' jest równoważny z 'zmienna += 1', ponieważ obydwa polecenia prowadzą do tej samej końcowej wartości zmiennej. Operator '+=' to skrót, który dodaje wartość po prawej stronie operatora do aktualnej wartości zmiennej. Warto nadmienić, że 'zmienna++' działa w trybie post-inkrementacji, co oznacza, że zwraca pierwotną wartość przed inkrementacją, podczas gdy '++zmienna' działa w trybie pre-inkrementacji, zwracając wartość po inkrementacji. Przykładowo, jeśli zmienna wynosi 5, to po zastosowaniu 'zmienna++' jej nowa wartość stanie się 6, a jej wartość zwracana to 5. Zastosowanie operatora '+=' jest zgodne z ECMAScript, standardem, na którym oparty jest JavaScript. Użycie tych operatorów jest powszechne w programowaniu, zwłaszcza w iteracjach i obliczeniach. Przykładając to do praktyki, w kodzie można zobaczyć takie zastosowanie: let x = 5; x++; console.log(x); // wypisze 6, a let y = 5; y += 1; console.log(y); // również wypisze 6.

Pytanie 9

Aby poprawić prędkość ładowania strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie rozmiarów grafiki?

A. za pomocą właściwości CSS, podając rozmiar w procentach
B. w programie graficznym
C. za pomocą atrybutów HTML
D. za pomocą właściwości CSS, podając rozmiar w pikselach
Zwiększenie szybkości działania strony internetowej z grafiką o wymiarach 2000 px na 760 px jest kluczowym zadaniem dla zapewnienia lepszej wydajności i doświadczeń użytkowników. Zmniejszenie rozmiarów grafiki w programie graficznym przed jej umieszczeniem na stronie jest najlepszą praktyką. Poprzez optymalizację obrazu możemy znacznie zmniejszyć jego wagę, co przyspiesza ładowanie strony. Programy graficzne, takie jak Adobe Photoshop czy GIMP, oferują różne narzędzia do kompresji obrazów bez zauważalnej utraty jakości. Dodatkowo, stosowanie formatów plików odpowiednich do rodzaju grafiki, jak JPEG dla zdjęć lub PNG dla grafik z przezroczystością, może przyczynić się do dalszej optymalizacji. Warto również pamiętać o technikach, takich jak lazy loading, które pozwalają na ładowanie obrazów w miarę przewijania strony, co również wpływa na szybkość ładowania. Te czynności są zgodne z zasadami SEO i wynikami stron w wyszukiwarkach, co czyni je kluczowymi dla każdego twórcy internetowego.

Pytanie 10

ID_PracownikaNazwiskoImięStanowiskoWynagrodzenie
1KowalskiKrzysztofkasjer3215,76
2NowakAntonikierownik5350,00
3ZającAlicjaksięgowy4568,70
4KrólWitoldkasjer3045,00
5NowikGrzegorzkasjer2750,65
6KotulskiAndrzejkierowca3467,00
7TutkaKatarzynakierownik4935,33
8PoradaJakubmagazynier3321,56
Które zapytanie SQL należy wykonać na tabeli Pracownicy, aby otrzymać średnie wynagrodzenie dla pracownika na stanowisku kasjer?
A. SELECT AVG(kasjer.Wynagrodzenie) FROM Pracownicy;
B. SELECT SUM(*) FROM Pracownicy AND Stanowisko= 'kasjer';
C. SELECT SREDNIA(Wynagrodzenie) AND Stanowisko='kasjer' FROM Pracownicy;
D. SELECT AVG(Wynagrodzenie) FROM Pracownicy WHERE Stanowisko='kasjer';
Poprawne zapytanie to SELECT AVG(Wynagrodzenie) FROM Pracownicy WHERE Stanowisko='kasjer';, bo dokładnie robi to, o co chodzi w treści zadania. Funkcja AVG() w SQL jest standardową funkcją agregującą, która liczy średnią arytmetyczną z wartości liczbowych w danej kolumnie. W tym przypadku kolumna to Wynagrodzenie, czyli kwoty wypłat, a klauzula WHERE Stanowisko='kasjer' zawęża zestaw rekordów tylko do pracowników na stanowisku kasjera. Najpierw więc silnik bazy danych filtruje wiersze (kasjerów), a dopiero potem na tej ograniczonej grupie liczy średnią. To jest bardzo typowy i poprawny schemat pracy z danymi w SQL: najpierw filtrujesz, potem agregujesz. Moim zdaniem warto zauważyć, że taka konstrukcja jest uniwersalna – w praktyce w firmach często liczy się średnie wynagrodzenia dla różnych stanowisk, działów, lokalizacji. Wtedy zmienia się tylko warunek w klauzuli WHERE. Można też pójść krok dalej i użyć GROUP BY, np. SELECT Stanowisko, AVG(Wynagrodzenie) FROM Pracownicy GROUP BY Stanowisko; żeby dostać średnie dla wszystkich stanowisk naraz, co jest wygodne np. w raportach HR. To, co masz w odpowiedzi, to w zasadzie „wersja jednostanowiskowa” takiego raportu. Ważna dobra praktyka: zawsze filtrujemy w klauzuli WHERE, a nie próbujemy wpychać warunków do funkcji agregującej. Dzięki temu zapytanie jest czytelne, zgodne ze standardem SQL i dobrze optymalizowane przez silnik bazy. W realnych projektach staramy się też nadać alias wynikom agregacji, np. SELECT AVG(Wynagrodzenie) AS SredniaKasjera FROM Pracownicy WHERE Stanowisko='kasjer';, żeby w raportach i w kodzie aplikacji od razu było wiadomo, co oznacza zwracana kolumna.

Pytanie 11

Który z poniższych kodów HTML spowoduje taki sam efekt formatowania jak na zaprezentowanym rysunku?

Ilustracja do pytania
A. <p>W tym <i>paragrafie </i><b>zobaczysz</b><i> sposoby formatowania</i> tekstu w HTML</p>
B. <p>W tym <b>paragrafie <i>zobaczysz</i> sposoby formatowania</b> tekstu w HTML</p>
C. <p>W tym <i>paragrafie zobaczysz sposoby formatowania</i> tekstu w HTML</p>
D. <p>W tym <i>paragrafie <b>zobaczysz</b> sposoby formatowania </i> tekstu w HTML</p>
W błędnych odpowiedziach chodzi głównie o to, że znaczników HTML używasz niepoprawnie, przez co efekt wygląda inaczej niż na obrazku. Tag <i> ma być do kursywy, a <b> do pogrubienia. Trzeba zrozumieć, jak te znaczniki współdziałają, żeby uzyskać zamierzony efekt. Często ludzie mylą kolejność lub używają tylko jednego z nich, co psuje całe formatowanie. No i nie zapominaj, że czasem może być trudno zrozumieć, jak znacznik w HTML wpływa na inne. Każdy z nich ma swoją rolę, więc warto wiedzieć, co robi. W kontekście semantycznego HTML, dobrze jest używać odpowiednich znaczników nie tylko dla stylu, ale też dla poprawnej struktury. Chociaż najlepiej jest używać CSS do rozdzielenia stylów od treści, to w niektórych przypadkach, tak jak w tym, proste znaczniki HTML też mają swoje miejsce. Wiedza o tym, jak poprawnie używać znaczników, jest niezbędna do budowania ładnych i uporządkowanych stron oraz aplikacji internetowych.

Pytanie 12

W języku PHP, aby uzyskać dostęp do pliku dane.txt w trybie tylko do odczytu i odczytać jego zawartość, należy użyć funkcji:

A. fopen("dane.txt", "r") oraz fgets()
B. fopen("dane.txt", "r") oraz fputs()
C. fopen("dane.txt", "w") oraz fputs()
D. fopen("dane.txt", "w") oraz fgets()
Wszystkie pozostałe opcje są niepoprawne z kilku kluczowych powodów. Odpowiedź z użyciem 'fopen' w trybie 'w' (zapis) jest błędna, ponieważ otwiera plik do zapisu, co powoduje, że jego zawartość zostanie nadpisana, a nie odczytana. To fundamentalny błąd w zrozumieniu trybów otwierania plików w PHP. Funkcja 'fputs' służy do zapisywania danych do pliku, co jest nieadekwatne, gdy celem jest odczyt treści. Oprócz tego, nie można użyć 'fgets' do odczytu z pliku otwartego w trybie zapisu, ponieważ ta funkcja wymaga, aby plik był otwarty w trybie odczytu. Ponadto, wiele osób mylnie zakłada, że wystarczy otworzyć plik w dowolnym trybie, aby móc go odczytać, jednak w rzeczywistości każdy tryb ma swoje specyficzne zastosowanie. Błąd polegający na używaniu trybu 'w' zamiast 'r' może prowadzić do poważnych problemów w aplikacji, takich jak utrata danych. Dlatego krytycznie ważne jest, aby w pełni zrozumieć, jak różne tryby otwierania plików wpływają na ich późniejsze wykorzystanie. Bez tej wiedzy, programista może wprowadzić niezamierzone błędy do swojego kodu.

Pytanie 13

Czy przedstawione w języku CSS ustawienia czcionki będą dotyczyć dla ```* { font-family: Tahoma; color: Teal; }```?

A. znaczników o id równym *
B. znaczników z klasą przypisaną równą *
C. całego dokumentu HTML, niezależnie od późniejszych reguł CSS
D. całego dokumentu HTML, jako domyślne formatowanie dla wszystkich elementów strony
Właściwość CSS zastosowana w podanym kodzie dotyczy wszystkich elementów HTML na stronie, ponieważ użycie selektora * oznacza, że formatowanie będzie miało zastosowanie do każdego elementu, niezależnie od jego typu. Oznacza to, że czcionka Tahoma oraz kolor Teal będą domyślnie stosowane do tekstu we wszystkich znacznikach HTML. Tego rodzaju podejście jest zgodne z dobrymi praktykami w projektowaniu stron, ponieważ pozwala na jednolite formatowanie bez konieczności stylizowania każdego elementu z osobna. Przykładem zastosowania może być stworzenie spójnego wyglądu strony, gdzie wszystkie nagłówki, akapity i inne teksty mają ten sam styl, co poprawia czytelność i estetykę. Dodatkowo, takie zastosowanie stylów jest efektywne, gdyż zmiana stylu w kontekście całej strony odbywa się poprzez edytowanie jednego miejsca w kodzie CSS, co oszczędza czas i zmniejsza ryzyko błędów.

Pytanie 14

Wybierz prawidłowy sposób umieszczania komentarzy w kodzie źródłowym HTML

A. "" informacje komentarza ""
B. <!-- informacje komentarza -->
C. -- informacje komentarza --
D. /* informacje komentarza */
Poprawny komentarz w HTML musi być zapisany dokładnie w formie: <!-- treść komentarza -->. To jest jedyny format zgodny ze specyfikacją HTML (HTML5, ale też starsze wersje). Przeglądarka traktuje wszystko, co znajduje się między ciągiem znaków <!-- a -->, jako komentarz, czyli tego nie wyświetla użytkownikowi i nie interpretuje jako kod. Dzięki temu można w kodzie zostawiać sobie uwagi, opisy sekcji, tymczasowo coś „wyłączyć” albo oznaczyć fragment do późniejszej edycji. W praktyce stosuje się np.: <!-- Nawigacja główna strony --> albo <!-- TODO: dodać link do panelu logowania -->. Moim zdaniem komentarze są szczególnie ważne w większych projektach, bo po miesiącu naprawdę trudno pamiętać, po co była jakaś dziwna konstrukcja w HTML. Warto też wiedzieć, że w HTML nie stosujemy ani //, ani /* */ jak w JavaScript czy CSS. To są inne języki, inne reguły. Jeżeli wstawisz coś w stylu <!-- <p>Tekst</p> -->, to cały ten akapit jest ignorowany przez przeglądarkę, co jest wygodne przy testowaniu. Dobra praktyka jest też taka, żeby nie przesadzać z ilością komentarzy, ale tam gdzie struktura jest mniej oczywista (np. zagnieżdżone divy, rozbudowane formularze), lepiej dodać krótki, konkretny opis. W projektach komercyjnych często używa się komentarzy do oznaczania sekcji layoutu, np. <!-- HEADER START -->, <!-- FOOTER END -->, co ułatwia pracę całemu zespołowi. W skrócie: tylko zapis z nawiasami ostrymi i myślnikami, czyli <!-- ... -->, jest w HTML prawidłowy i rozpoznawany jako komentarz.

Pytanie 15

Zaprezentowano tabelę stworzoną przy użyciu kodu HTML, bez zastosowania stylów CSS. Która część kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. Rys. D
B. Rys. C
C. Rys. B
D. Rys. A
Pierwszy wiersz tabeli HTML zazwyczaj zawiera nagłówki kolumn i jest oznaczony za pomocą znaczników <th> (table header). Zgodnie z dobrymi praktykami tworzenia tabel w HTML, nagłówki powinny być oddzielone od danych, aby poprawić zarówno estetykę, jak i funkcjonalność tabeli. W odpowiedzi Rys. D użyto znaczników <th> co poprawnie definiuje nagłówki kolumn. W ten sposób przeglądarki potrafią wyróżnić nagłówki, np. poprzez pogrubienie tekstu, co jest domyślnym zachowaniem. Zastosowanie <th> poprawia również dostępność tabel, ponieważ technologie asystujące lepiej interpretują strukturę danych w tabelach, co jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines). Korzystając z <th>, można dodatkowo określić atrybut scope, który jeszcze bardziej precyzuje relacje w tabeli, co jest szczególnie przydatne w bardziej złożonych strukturach. W praktyce, kiedy projektujemy strony internetowe, stosowanie prawidłowych znaczników semantycznych jest kluczowe dla tworzenia zrozumiałego i dostępnego interfejsu użytkownika. Dlatego też wybór fragmentu z <th> jako reprezentującego pierwszy wiersz tabeli jest zgodny z zaleceniami i standardami nowoczesnego front-endu.

Pytanie 16

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

A. części wspólnej.
B. sumy.
C. grupowania.
D. wykluczenia.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 17

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <embed> </embed>
B. <div> </div>
C. <section> </section>
D. <video> </video>
Poprawna odpowiedź to umieszczenie znacznika `<source>` wewnątrz `<video>...</video>`. W HTML5 to właśnie element `<video>` jest kontenerem odpowiedzialnym za osadzanie plików wideo na stronie WWW. Atrybuty takie jak `controls`, `autoplay`, `loop`, `muted`, `width` czy `height` przypisujemy właśnie do `<video>`, a nie do `<source>`. Znacznik `<source>` służy głównie do wskazania konkretnego pliku multimedialnego i jego typu MIME, np.: `<video controls width="640" height="360"><source src="film.mp4" type="video/mp4"><source src="film.webm" type="video/webm">Twoja przeglądarka nie obsługuje elementu video.</video>`. Przeglądarka przechodzi po kolei po elementach `<source>` i wybiera pierwszy format, który potrafi odtworzyć. To jest zgodne ze specyfikacją HTML Living Standard (WHATWG) oraz zaleceniami W3C dotyczącymi multimediów w sieci. W praktyce, w projektach komercyjnych, często dodaje się kilka formatów (np. MP4, WebM), właśnie po to, by zapewnić maksymalną kompatybilność między różnymi przeglądarkami i systemami. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania pełnej, semantycznie poprawnej struktury: `<video>` jako główny element odtwarzacza, w środku jeden lub więcej `<source>` i ewentualnie tekst alternatywny. Dzięki temu kod jest czytelny, łatwiej go stylować w CSS, a także lepiej zachowuje się w kontekście dostępności (np. czytniki ekranu widzą, że to element wideo). Dodatkowo, `<video>` można łatwo obsługiwać z poziomu JavaScript, korzystając z jego API (play, pause, currentTime, volume itd.), co w praktyce daje sporą kontrolę nad odtwarzaniem multimediów na stronie.

Pytanie 18

W HTML znacznik <i> wywołuje taki sam efekt wizualny jak znacznik

A. <em>
B. <pre>
C. <strong>
D. <u>
Znacznik <em> (emphasis) w języku HTML jest używany do podkreślenia znaczenia słów lub fraz w kontekście tekstu, co jest zgodne z semantyką sieci. Użycie tego znacznika nie tylko zmienia styl prezentacji tekstu na kursywę, ale także wskazuje, że dany fragment tekstu jest istotny dla zrozumienia całości. Znacznik <i> (italic) również stosuje kursywę, ale nie ma znaczenia semantycznego, co oznacza, że nie informuje przeglądarek ani technologii wspomagających o istotności tego tekstu. W praktyce, stosując <em> w miejscach, gdzie chcemy zaakcentować ważne elementy, pomagamy w poprawie dostępności strony oraz w jej SEO, ponieważ wyszukiwarki mogą lepiej zrozumieć strukturę i kontekst treści. Warto pamiętać, że według standardów W3C, stosowanie znaczników semantycznych, takich jak <em>, jest zalecane dla poprawy struktury dokumentu HTML oraz dla lepszej interakcji z użytkownikami wykorzystującymi technologie asystujące. Przykład: <p>W tej książce <em>odkryjesz</em> nowe możliwości.</p>

Pytanie 19

W PHP zmienna $_SERVER zawiera między innymi dane o

A. nazwie ciasteczek zapisanych na serwerze oraz powiązanych z nimi danych
B. informacjach z formularza przetwarzanego na serwerze
C. informacjach związanych z sesjami
D. adresie IP serwera oraz nazwie protokołu
W kontekście zmiennej $_SERVER w PHP, nieprawidłowe odpowiedzi skupiają się na danych, które nie są przechowywane w tej superglobalnej zmiennej. Na przykład, informacje o danych formularza przetwarzanego na serwerze są dostępne w tablicy $_POST lub $_GET, a nie w $_SERVER. Zrozumienie różnicy między tymi tablicami jest kluczowe, ponieważ każda z nich ma swoją specyfikę i zastosowanie. $_POST zawiera dane przesyłane metodą POST, co jest najczęściej wykorzystywane w formularzach, natomiast $_GET zachowuje dane z parametrów URL. Kolejnym nieporozumieniem jest zrozumienie, że dane dotyczące sesji są zarządzane przez zmienną $_SESSION, która jest odrębna od $_SERVER i służy do przechowywania informacji o sesji użytkownika na serwerze. Zmienne ciastka, takie jak $_COOKIE, są również niezależne i nie mają związku z $_SERVER. Warto zauważyć, że niepoprawne odpowiedzi mogą wynikać z mylnego założenia, że $_SERVER gromadzi wszystkie dane związane z interakcją użytkownika z aplikacją webową. W rzeczywistości, każda z tych tablic ma swoje konkretne zastosowanie i zakres, co jest kluczowe dla prawidłowego przetwarzania żądań w PHP oraz efektywnego zarządzania danymi w aplikacjach internetowych.

Pytanie 20

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy, które znajdują się w bazie danych.
B. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
C. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
D. Liczbę wierszy, które zostały dodane do tabeli produkty.
Poprawna odpowiedź dotyczy liczby wierszy przetworzonych przez zapytanie DELETE FROM w bazie danych. Funkcja mysqli_affected_rows($db) zwraca liczbę wierszy, które zostały zmodyfikowane przez ostatnie wykonane zapytanie na danym połączeniu z bazą danych. W przypadku zapytania DELETE, zwróci ona liczbę wierszy, które zostały usunięte w wyniku działania tego zapytania. W kontekście dobrych praktyk, zawsze warto sprawdzać, jakie operacje zostały wykonane na bazie danych, aby zrozumieć wpływ zapytań na dane. Na przykład, w aplikacjach e-commerce, przed usunięciem produktów, można wykorzystać tę informację do potwierdzenia, że usunięcie danych nie wpływa negatywnie na inne elementy systemu. Użycie tej funkcji pozwala na efektywne zarządzanie danymi oraz na utrzymanie spójności w bazie danych, co jest kluczowe w kontekście bezpieczeństwa i integralności danych.

Pytanie 21

Wskaź złożony typ danych.

A. char
B. bool
C. class
D. float
Typy takie jak 'char', 'bool' i 'float' to prostsze typy, które mają na prawdę ograniczone możliwości w porównaniu do typów złożonych. 'char' to pojedynczy znak, więc może pomieścić na przykład 'A' albo '9', ale to wszystko. Używa się go czasami do przechowywania tekstu, ale jego funkcjonalność kończy się na prostych operacjach. Typ 'bool' to logiczny typ, który ma tylko dwie wartości - prawda (true) i fałsz (false). Jest istotny w podejmowaniu decyzji w programach, ale nie nadaje się do większych struktur danych. 'float' to typ liczbowy dla liczb zmiennoprzecinkowych, czyli takich z miejscami po przecinku. Jest przydatny w obliczeniach, ale jak widać, te wszystkie typy są dosyć ograniczone w porównaniu do złożonych typów, jak klasy, które pozwalają na tworzenie bardziej skomplikowanych struktur danych.

Pytanie 22

W bazie danych MySQL utworzono tabelę. Aby jednoznacznie zdefiniować, że pole ID jest kluczem głównym, należy dopisać

 CREATE TABLE Osoby ( ID int NOT NULL, nazwisko varchar(255) NOT NULL, wiek int); 
A. PK (ID) przed zamknięciem nawiasu.
B. PRIMARY KEY (ID) przed zamknięciem nawiasu.
C. FOREIGN KEY w linii, w której jest zdefiniowane pole ID.
D. PK w linii, w której jest zdefiniowane pole ID.
Niektóre odpowiedzi na to pytanie mogły zawierać błędne koncepcje, które warto omówić. W języku SQL, skrót 'PK' nie jest rozpoznawany jako oznaczenie klucza głównego. Poprawnym oznaczeniem jest klauzula 'PRIMARY KEY'. Innym błędnym podejściem jest próba oznaczenia pola ID jako klucz obcy za pomocą klauzuli 'FOREIGN KEY'. Klucze obce są używane do tworzenia powiązań między tabelami w relacyjnych bazach danych, a nie do definiowania unikalności rekordu. Dlatego takie podejście jest niezgodne ze standardami SQL i dobrymi praktykami w projektowaniu baz danych. Zrozumienie różnicy między kluczami głównymi a obcymi jest kluczowe dla efektywnego tworzenia i zarządzania relacyjnymi bazami danych. Za pomocą klucza głównego określamy unikalność rekordu, natomiast klucz obcy pozwala na tworzenie relacji między różnymi tabelami.

Pytanie 23

Jak, wykorzystując język PHP, można zapisać w ciasteczku wartość z zmiennej dane na okres jednego dnia?

A. setcookie("dane", $dane, 0);
B. setcookie("dane", $dane, time());
C. setcookie("dane", $dane, time() + (3600*24));
D. setcookie("dane", "dane", 0);
Odpowiedź setcookie("dane", $dane, time() + (3600*24)); jest prawidłowa, gdyż prawidłowo ustawia ciasteczko o nazwie 'dane' z wartością zmiennej $dane na czas jednego dnia. Funkcja setcookie w PHP wymaga trzech podstawowych argumentów: nazwy ciasteczka, wartości oraz czasu wygaśnięcia. W tym przypadku używamy time() + (3600*24), co oznacza aktualny czas plus 24 godziny (3600 sekund w godzinie pomnożone przez 24). Taki sposób określenia czasu wygaśnięcia jest zgodny z zaleceniami bezpieczeństwa i zarządzania danymi w aplikacjach webowych, ponieważ umożliwia precyzyjne kontrolowanie okresu ważności ciasteczek. Przykładowo, jeśli nasze ciasteczko jest używane do przechowywania sesji użytkownika, wartość 'dane' może zawierać identyfikator sesji, co pozwala na zachowanie stanu użytkownika przez 24 godziny. Ważne jest także, aby przed użyciem setcookie nie było wysyłanych żadnych danych do przeglądarki. Dobrą praktyką jest również ustawianie flagi HttpOnly, aby zwiększyć bezpieczeństwo, oraz SameSite, aby ograniczyć ryzyko ataków CSRF.

Pytanie 24

Jak można zweryfikować spójność danych w bazie MySQL?

A. mysqldump
B. REPAIR TABLE
C. CHECK TABLE
D. mysql
Polecenie CHECK TABLE w MySQL służy do sprawdzania integralności danych w tabeli. Umożliwia to identyfikację problemów, takich jak zduplikowane klucze, uszkodzone wskaźniki lub nieprawidłowe struktury danych. Przykładem zastosowania tego polecenia jest sytuacja, gdy administrator bazy danych podejrzewa, że tabela mogła ulec uszkodzeniu na skutek błędów systemowych lub nieprawidłowych operacji użytkownika. W takim przypadku używając CHECK TABLE, można szybko zdiagnozować problemy i podjąć odpowiednie działania, takie jak naprawa za pomocą polecenia REPAIR TABLE, jeśli to konieczne. Dobre praktyki w zakresie zarządzania bazami danych sugerują regularne sprawdzanie integralności tabel, co pozwala na szybsze wykrywanie problemów oraz minimalizację ryzyka utraty danych. Warto również pamiętać, że CHECK TABLE dostarcza szczegółowych informacji o stanie tabeli, co jest szczególnie przydatne w kontekście monitorowania wydajności i stabilności bazy danych. Z tego względu to polecenie jest kluczowym narzędziem w arsenale każdego administratora MySQL.

Pytanie 25

Jakiego języka należy użyć, aby stworzyć skrypt realizowany po stronie klienta w przeglądarki internetowej?

A. JavaScript
B. PHP
C. Perl
D. Python
No, wybór języka programowania do pisania skryptów po stronie klienta powinien być dobrze przemyślany. Python, pomimo że bardzo popularny i wszechstronny, to najczęściej jest używany po stronie serwera, na przykład w aplikacjach backendowych albo w analizie danych. W web development nie za bardzo się to sprawdza, chyba że mówimy o frameworkach jak Django czy Flask, które w przeglądarkach nie działają. A co do Perla, to kiedyś był na topie w programowaniu webowym, ale teraz jego użycie w tym kontekście jest niemal zerowe. Perl skupia się głównie na przetwarzaniu tekstu i skryptach serwerowych. PHP, chociaż powszechnie używane do tworzenia aplikacji webowych, również działa po stronie serwera, generując HTML, który potem idzie do przeglądarki. Więc, jak wybierzesz niewłaściwy język, to może być trudność przy wdrażaniu funkcji interaktywnych i w efekcie frustracja przy tworzeniu aplikacji. Dlatego ważne jest, żeby wiedzieć, że JavaScript to jedyny język, który ma pełne wsparcie dla dynamicznych interakcji w przeglądarkach, a ignorowanie go przy tworzeniu skryptów po stronie klienta skończy się kiepskimi rozwiązaniami.

Pytanie 26

Relacja opisana jako: "Rekord z tabeli A może odpowiadać wielu rekordom z tabeli B. Każdemu rekordowi z tabeli B przyporządkowany jest dokładnie jeden rekord z tabeli A" jest relacją

A. nieoznaczoną
B. wiele do wielu
C. jeden do wielu
D. jeden do jednego
Podejście pojmujące relację jako nieoznaczoną jest mylne, ponieważ nie uwzględnia struktury i powiązań między rekordami w tabelach. Nieoznaczona relacja nie definiuje w żaden sposób, jakie są zależności między danymi, co sprawia, że analizy przeprowadzane na takich danych mogą prowadzić do błędnych wniosków. Natomiast koncepcja relacji wiele do wielu, choć może wydawać się pasująca, nie odzwierciedla opisanego scenariusza, w którym z jednego rekordu w tabeli A wychodzi wiele rekordów w tabeli B, ale z każdego rekordu w tabeli B wychodzi dokładnie jeden rekord w tabeli A. Tego typu podejście prowadzi do błędnych wizji organizacji danych i często do skomplikowanych operacji przy próbie wyodrębnienia potrzebnych informacji. Również zrozumienie relacji jeden do jednego w tym kontekście jest niewłaściwe, ponieważ zakłada, że każdemu rekordowi z tabeli A odpowiada dokładnie jeden rekord w tabeli B, co nie jest zgodne z przedstawionym opisem. Zatem istotne jest, aby podczas projektowania baz danych i definiowania relacji między tabelami stosować klarowne i uzasadnione zasady, które umożliwią prawidłowe zarządzanie danymi i ich analizę. Właściwe zrozumienie tych relacji jest fundamentem dobrych praktyk w inżynierii danych i projektowaniu baz danych.

Pytanie 27

W instrukcji CREATE TABLE zastosowanie klauzuli PRIMARY KEY przy definiowaniu pola tabeli spowoduje, że to pole stanie się

A. indeksem unikalnym
B. kluczem obcym
C. indeksem klucza
D. kluczem podstawowym
Użycie klauzuli PRIMARY KEY w instrukcji CREATE TABLE oznacza, że pole, do którego jest ona przypisana, stanie się kluczem podstawowym tabeli. Klucz podstawowy to atrybut lub zbiór atrybutów, które jednoznacznie identyfikują każdy rekord w tabeli. Klucz podstawowy musi być unikalny dla każdego rekordu oraz nie może zawierać wartości NULL. Na przykład, w tabeli użytkowników, pole 'user_id' często pełni rolę klucza podstawowego, co pozwala na jednoznaczne odnalezienie informacji o każdym użytkowniku. Stosowanie kluczy podstawowych jest zgodne z najlepszymi praktykami w projektowaniu baz danych, ponieważ zapewnia integralność danych oraz umożliwia efektywne indeksowanie i wyszukiwanie informacji. Dodatkowo, klucze podstawowe mogą być używane w relacjach z innymi tabelami jako klucze obce, co ułatwia tworzenie powiązań między danymi. Klucz podstawowy jest zatem fundamentem struktury danych w bazie, co potwierdzają standardy SQL oraz normy projektowania baz danych.

Pytanie 28

Klucz obcy w bazie danych jest tworzony w celu

A. stworzenia formularza do wprowadzania danych do tabeli
B. łączenia go z innymi kluczami obcymi w tabeli
C. umożliwienia jednoznacznej identyfikacji rekordu w bazie danych
D. określenia relacji 1..n łączącej go z kluczem głównym innej tabeli
Klucz obcy w tabeli jest fundamentalnym elementem w relacyjnych bazach danych, który umożliwia tworzenie relacji pomiędzy tabelami. W szczególności, definiuje relację 1..n, co oznacza, że jeden rekord w tabeli, w której znajduje się klucz główny, może być powiązany z wieloma rekordami w tabeli, która posiada klucz obcy. Taki mechanizm pozwala na strukturalne powiązanie danych, co jest kluczowe dla zapewnienia integralności referencyjnej. Na przykład, w bazie danych zarządzającej informacjami o klientach i ich zamówieniach, klucz obcy w tabeli zamówień może wskazywać na klucz główny w tabeli klientów, co pozwala na łatwe śledzenie, które zamówienia są przypisane do konkretnego klienta. Zastosowanie kluczy obcych wspiera również dobre praktyki projektowania baz danych, takie jak normalizacja, co minimalizuje redundancję danych i poprawia ich spójność. Zgodność z tymi zasadami jest zgodna z wytycznymi organizacji takich jak ISO/IEC 9075 oraz ANSI SQL, które promują efektywne zarządzanie danymi.

Pytanie 29

Odizolowane środowisko ogólnego przeznaczenia, utworzone na fizycznym serwerze z wykorzystaniem technologii wirtualizacji, to

A. serwer VPS.
B. serwer aplikacji.
C. serwer DHCP.
D. serwer dedykowany.
Prawidłowo – opis dokładnie pasuje do serwera VPS (Virtual Private Server). VPS to odizolowane środowisko ogólnego przeznaczenia uruchomione na fizycznym serwerze z użyciem technologii wirtualizacji, np. KVM, VMware, Hyper-V czy Xen. Z punktu widzenia użytkownika taki VPS zachowuje się jak osobna maszyna: ma własny system operacyjny, własne konto root/administrator, własne usługi, własną konfigurację sieci, a jednocześnie współdzieli fizyczny sprzęt (CPU, RAM, dyski, interfejsy sieciowe) z innymi VPS-ami na tym samym serwerze. Moim zdaniem to jedno z najbardziej praktycznych rozwiązań dla nauki administracji i małych projektów komercyjnych. Na VPS-ie możesz zainstalować serwer WWW (np. Apache, Nginx), serwer baz danych (MySQL, PostgreSQL), środowisko uruchomieniowe dla PHP, Node.js czy Pythona, systemy cache (Redis, Memcached) i traktować go jak mini serwer dedykowany. W dobrej praktyce administracyjnej na VPS-ach wydziela się osobne środowiska dla różnych aplikacji (np. produkcja, test, staging) i dba o podstawowe zasady bezpieczeństwa: aktualizacje systemu, konfiguracja firewalla (iptables, nftables, ufw), certyfikaty SSL/TLS (Let’s Encrypt), kopie zapasowe. Branżowo przyjęło się, że VPS-y są elastycznym kompromisem między hostingiem współdzielonym a serwerem dedykowanym: dają izolację, własny adres IP, możliwość instalacji dowolnego oprogramowania, a jednocześnie są dużo tańsze niż fizyczna maszyna tylko dla jednego klienta. W praktyce webowej większość mniejszych sklepów internetowych, serwisów firmowych czy aplikacji SaaS na start ląduje właśnie na VPS-ach, bo łatwo je skalować (dokupując RAM, CPU, SSD) i migrować między serwerami bez zmiany architektury aplikacji.

Pytanie 30

W programie INKSCAPE / COREL aby uzyskać przedstawiony efekt napisu, należy

Ilustracja do pytania
A. skorzystać z funkcji gradientu.
B. zastosować funkcję sumy z kołem.
C. zastosować funkcję wykluczenia z kołem.
D. skorzystać z funkcji wstaw / dopasuj tekst do ścieżki.
Niestety, twoja odpowiedź nie była prawidłowa. Wybrane przez Ciebie odpowiedzi odwoływały się do operacji na obiektach (sumowanie, wykluczanie) lub do efektów wizualnych (gradient), które nie mają bezpośredniego związku z manipulacją tekstem wzdłuż ścieżki. W programach graficznych takich jak Inkscape czy CorelDRAW, aby uzyskać efekt tekstu dopasowanego do ścieżki, stosuje się funkcję dopasowania tekstu do ścieżki. Funkcje sumowania czy wykluczania obiektów służą do tworzenia nowych kształtów z istniejących obiektów, a nie do manipulacji tekstem. Podobnie, gradient to efekt wizualny, który pozwala na płynne przejście między dwoma lub więcej kolorami, ale nie wpływa on na kształt czy orientację tekstu. Ważne jest aby nie mylić tych różnych funkcji i umieć prawidłowo je zastosować w praktyce.

Pytanie 31

Wyrażenie JavaScript:

document.write(5==='5');
Co zostanie wyświetlone?
A. false
B. 0
C. true
D. 1
Odpowiedzi, które wybrałeś, jak '0', 'true' i '1', pokazują, że mogło dojść do pewnych nieporozumień w zrozumieniu, jak działają operatory porównania w JavaScript. Na przykład '0' może sugerować, że sądzisz, że wynik jest liczbowy, a nie logiczny. Warto pamiętać, że w JavaScript liczby i wartości logiczne to różne typy danych. '0' oznacza fałsz, więc to nie jest właściwy wynik. Odpowiedź 'true' świadczy o błędnym przekonaniu, że porównywane wartości są takie same, co nie jest zgodne z tym, co robi '===' . Natomiast odpowiedź '1' sugeruje, że mogłeś pomylić wynik porównania z kodem prawdy w formie 1, co zdarza się w niektórych językach, ale w JavaScript to nie działa. Kluczowe jest to, że '===' porównuje zarówno wartości, jak i typy, więc porównując liczbę i ciąg znaków, dostajemy 'false'. W JavaScript mamy 'true' i 'false', a porównania powinny uwzględniać typy danych, żeby uniknąć zamieszania. Fajnie byłoby, gdybyś zgłębił temat typów danych w JavaScript i sam spróbował różnych porównań, żeby lepiej to ogarnąć.

Pytanie 32

Który z poniższych formatów NIE umożliwia zapis plików animowanych?

A. GIF
B. ACE
C. SVG
D. SWF
Wybór formatu SWF sugeruje, że użytkownik myli zastosowania różnych formatów plików. SWF, czyli Shockwave Flash, to format, który był powszechnie używany do tworzenia animacji i interaktywnych aplikacji internetowych. Jest on oparty na wektorowej grafice i obsługuje dźwięk oraz skrypty, co czyni go idealnym do tworzenia złożonych animacji. Z kolei SVG, czyli Scalable Vector Graphics, to format oparty na XML, który pozwala na tworzenie grafiki wektorowej i również obsługuje animacje przy użyciu CSS oraz JavaScript. Poprzez błędne przypisanie funkcji animacyjnych do ACE, użytkownik może nie dostrzegać, jak różne formaty są projektowane z myślą o określonych zastosowaniach. GIF to format, który od lat jest popularny w sieci do prezentacji prostych animacji, zwłaszcza w mediach społecznościowych. Użytkownicy często mylą różne zastosowania formatów i mogą nie być świadomi, że istnieją formaty, które są specjalnie zaprojektowane do obsługi animacji, podczas gdy inne służą zupełnie innym celom, jak kompresja danych. Właściwe zrozumienie tych różnic jest kluczowe dla efektywnego projektowania treści multimedialnych oraz optymalizacji ich działania w różnych środowiskach.

Pytanie 33

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.

Pytanie 34

Na podstawie kodu widocznego na ilustracji można stwierdzić, że

Ilustracja do pytania
A. nie przypisano wartości do zmiennej nazwisko.
B. podano nieprawidłowy argument do funkcji alert.
C. nie zadeklarowano funkcji wyswietlNazwisko.
D. funkcja wyswietlNazwisko(nazwisko) musi być wywołana wewnątrz innej funkcji.
W tym kodzie funkcja wyswietlNazwisko(nazwisko) jest poprawnie zadeklarowana, a komunikat przekazywany do alert() też jest w porządku. Problem wcale nie leży w samej funkcji, tylko w tym, że wywołujemy ją z argumentem nazwisko, który nigdzie wcześniej nie został zdefiniowany ani nie ma do niego przypisanej żadnej wartości. Silnik JavaScript widzi wywołanie wyswietlNazwisko(nazwisko); i szuka zmiennej o nazwie nazwisko w aktualnym zasięgu (scope). Ponieważ jej nie znajduje, zgłasza błąd ReferenceError: nazwisko is not defined. To jest klasyczny przypadek braku inicjalizacji zmiennej przed użyciem. W praktyce, żeby to naprawić, trzeba najpierw zadeklarować zmienną, np.: var nazwisko = "Kowalski"; albo let nazwisko = prompt("Podaj swoje nazwisko:"); i dopiero potem wywołać funkcję: wyswietlNazwisko(nazwisko);. Dobra praktyka w JavaScript to zawsze jawne deklarowanie zmiennych przy użyciu let lub const (ewentualnie var w starszym kodzie) oraz nadawanie im czytelnych, przewidywalnych wartości początkowych. W aplikacjach webowych takie zmienne często pochodzą z pól formularza, np. z document.getElementById("nazwisko").value, i dopiero ta wartość jest przekazywana jako argument funkcji. Moim zdaniem warto wyrobić sobie nawyk, że zanim użyjesz jakiejś nazwy w wywołaniu funkcji, sprawdzasz, czy na pewno istnieje jej deklaracja w odpowiednim zasięgu i czy ma sensowną wartość. Dzięki temu unikniesz wielu irytujących błędów w konsoli i łatwiej będzie debugować kod.

Pytanie 35

Jednym z atrybutów tabeli ksiazki jest pole czyWypozyczona, które może mieć dwie wartości: true lub false. Jaki typ danych będzie najbardziej odpowiedni dla tego pola?

A. BOOLEAN
B. DOUBLE
C. CHAR
D. VARCHAR(5)
Odpowiedź 'BOOLEAN' jest poprawna, ponieważ jest to typ danych, który idealnie odpowiada na potrzeby pola 'czyWypozyczona', które przyjmuje jedynie dwie wartości: true (prawda) oraz false (fałsz). W przypadku baz danych, typ BOOLEAN jest optymalny do reprezentowania stanów logicznych, co pozwala na efektywniejsze zarządzanie danymi oraz ich przetwarzanie. Przykładowo, w systemie zarządzania biblioteką, pole 'czyWypozyczona' może być używane do szybkiego filtrowania książek, które są aktualnie dostępne lub wypożyczone. Użycie typu BOOLEAN eliminuje potrzebę zbędnych konwersji typu, zwiększa czytelność kodu oraz ułatwia optymalizację zapytań SQL. W praktyce, stosowanie typu BOOLEAN jest zgodne z najlepszymi praktykami projektowania baz danych, które promują przejrzystość i zgodność z modelowaniem danych. Warto również zauważyć, że w niektórych systemach zarządzania bazami danych (np. PostgreSQL) typ BOOLEAN jest natywnie obsługiwany, co dodatkowo wpływa na wydajność operacji na danych.

Pytanie 36

Jak nazywa się element systemu zarządzania treścią, który jest bezpośrednio odpowiedzialny za wygląd strony internetowej?

A. Wtyczka w systemie WordPress lub dodatek w systemie Joomla!
B. Motyw w systemie WordPress lub szablon w systemie Joomla!
C. Kokpit w systemie WordPress lub panel administracyjny w systemie Joomla!
D. Widżet w systemie WordPress lub moduł w systemie Joomla!
Wybranie kokpitu w systemie WordPress lub panelu administracyjnego w systemie Joomla! jako kluczowego elementu odpowiedzialnego za wygląd witryny jest błędne, ponieważ te interfejsy służą przede wszystkim do zarządzania treścią i konfiguracji strony, a nie do jej wizualizacji. Kokpit WordPressa oraz panel Joomla! to narzędzia służące do dodawania, edytowania i organizowania treści, zarządzania użytkownikami oraz różnymi funkcjami witryny. Użytkownicy często mylą te dwa pojęcia, nie zdając sobie sprawy, że odpowiedzialność za estetykę witryny leży w zupełnie innym miejscu. Wtyczki i dodatki, jak sugerowane w kolejnej odpowiedzi, są narzędziami rozszerzającymi funkcjonalność serwisu, ale nie wpływają bezpośrednio na jego wygląd. Wtyczki mogą zmieniać sposób, w jaki treści są prezentowane, ale to motywy i szablony decydują o ich ostatecznym układzie wizualnym. Widżety i moduły, które również były wymienione w odpowiedziach, są elementami interfejsu, które mogą wpływać na rozmieszczenie zawartości w obrębie istniejącego motywu, ale nie są odpowiedzialne za podstawowy wygląd. W związku z tym błędne jest przypisywanie wyglądu witryny do narzędzi administracyjnych czy rozszerzeń, które w rzeczywistości pełnią inne funkcje. Zrozumienie różnicy pomiędzy tymi terminami jest kluczowe dla efektywnego zarządzania i projektowania stron internetowych.

Pytanie 37

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

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

Pytanie 38

Jaką konstrukcją w języku C++ jest double *x;?

A. Zmienna rzeczywista
B. Wskaźnik
C. Formalny argument typu rzeczywistego
D. Zmienna całkowita
Deklaracja 'double *x;' w języku C++ oznacza, że 'x' jest wskaźnikiem, który może wskazywać na zmienną typu podwójnej precyzji (double). Wskaźniki są kluczowym elementem programowania w C++, umożliwiającym efektywne zarządzanie pamięcią oraz dostęp do dynamicznych struktur danych, takich jak tablice czy listy. W praktyce, wskaźniki są często używane do przekazywania dużych struktur danych do funkcji bez konieczności kopiowania całych obiektów, co jest wydajniejsze. Oto przykład: jeśli mamy funkcję, która modyfikuje tablicę, możemy przekazać wskaźnik do tej tablicy jako argument, co pozwala na bezpośrednią modyfikację oryginalnych danych. Dobre praktyki dotyczące wskaźników obejmują również ich odpowiednie inicjalizowanie oraz zarządzanie pamięcią, aby uniknąć wycieków pamięci. C++ pozwala na użycie wskaźników w połączeniu z dynamiczną alokacją pamięci za pomocą operatora 'new', co daje programiście dużą elastyczność w zarządzaniu zasobami.

Pytanie 39

W bazie danych dotyczącej sklepu znajduje się tabela artykuły, która posiada pole o nazwie nowy. Jak można zaktualizować to pole, aby dla każdego rekordu wprowadzić wartość TRUE, stosując odpowiednią kwerendę?

A. INSERT INTO artykuły VALUE nowy=TRUE
B. INSERT INTO nowy FROM artykuły SET TRUE
C. UPDATE nowy FROM artykuły VALUE TRUE
D. UPDATE artykuły SET nowy=TRUE
Odpowiedź UPDATE artykuły SET nowy=TRUE; jest poprawna, ponieważ wykorzystuje standardową składnię SQL do aktualizacji istniejących rekordów w tabeli. Kwerenda ta zmienia wartość pola 'nowy' na TRUE dla wszystkich rekordów w tabeli 'artykuły'. Metoda ta jest szeroko stosowana w praktyce, gdyż pozwala na masową aktualizację danych w bazie bez konieczności ich usuwania czy dodawania nowych rekordów. Z uwagi na fakt, że pole 'nowy' ma być uzupełnione dla wszystkich pozycji w tabeli, użycie kwerendy UPDATE jest najefektywniejszym i najbardziej intuicyjnym rozwiązaniem. Przykład zastosowania może obejmować sytuację, w której sklep wprowadza nową kategorię produktów, które są oznaczane jako 'nowe'. Stosowanie dobrze zdefiniowanych kwerend UPDATE jest zgodne z dobrymi praktykami w zarządzaniu bazami danych, ponieważ promuje integralność danych oraz umożliwia łatwą modyfikację i kontrolę nad bazą.

Pytanie 40

Które rozszerzenie pliku jest związane z formatem wideo?

A. *.avi
B. *.jpg
C. *.bmp
D. *.png
Poprawna odpowiedź to *.avi, ponieważ jest to klasyczne rozszerzenie pliku wideo opartego na formacie AVI (Audio Video Interleave), opracowanym przez firmę Microsoft. Ten format pozwala na przechowywanie zarówno strumienia obrazu, jak i dźwięku w jednym kontenerze, co jest typowe dla plików wideo. W praktyce oznacza to, że plik .avi może zawierać w sobie różne kodeki wideo (np. DivX, Xvid) i różne kodeki audio. Z punktu widzenia użytkownika – klikasz plik .avi i od razu odtwarzacz multimedialny uruchamia film, a nie pojedynczy obrazek. W branży multimedialnej przyjęło się, że rozszerzenie musi jasno sugerować typ zawartości. Dobre praktyki mówią, żeby nie mieszać formatów graficznych z wideo, bo potem powstaje chaos w projektach, katalogach i na serwerach. Jeżeli tworzysz stronę WWW i chcesz osadzić film, stosujesz formaty wideo, np. .mp4, .webm, .avi (choć dzisiaj na web .avi raczej się nie używa, ale nadal możesz się z nim spotkać w starszych materiałach). Natomiast .jpg, .png, .bmp to formaty grafiki statycznej. One nie mają strumienia czasu, klatek na sekundę, ścieżki audio itd. Moim zdaniem warto też pamiętać, że AVI jest formatem kontenerowym, a nie samym kodekiem. To znaczy, że jakość, rozmiar i kompatybilność pliku zależą nie tylko od .avi jako rozszerzenia, ale głównie od tego, jakim kodekiem zakodowano obraz i dźwięk. W praktyce, przy pracy z multimediami, zawsze zwraca się uwagę na trzy rzeczy: rozszerzenie (typ kontenera), kodek (np. H.264, MPEG-4) oraz docelową platformę (przeglądarka, odtwarzacz, telewizor Smart TV). W projektach webowych i e-learningowych standardem jest raczej .mp4 (H.264/AAC), ale znajomość .avi nadal jest potrzebna, choćby po to, żeby wiedzieć, jak konwertować stare materiały wideo do nowszych, bardziej wydajnych formatów.