Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 13:22
  • Data zakończenia: 8 czerwca 2026 13:43

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

Jak brzmi nazwa metody sortowania, która polega na wielokrotnym analizowaniu kolejnych elementów tablicy oraz zamianie miejscami sąsiadujących elementów, aby utrzymać porządek według ustalonej reguły?

A. Sortowanie kubełkowe
B. Sortowanie bąbelkowe
C. Sortowanie przez wybór
D. Sortowanie szybkie
Wybór sortowania przez wybór, sortowania szybkiego oraz sortowania kubełkowego odnosi się do różnych metod organizacji danych, które różnią się zarówno w zakresie algorytmicznym, jak i zastosowaniami praktycznymi. Sortowanie przez wybór (Selection Sort) polega na znajdowaniu najmniejszego (lub największego) elementu z nieposortowanej części tablicy i zamienieniu go z pierwszym elementem tej części. To podejście jest mniej efektywne dla dużych zbiorów danych, ponieważ również ma złożoność O(n²) i nie korzysta z optymalizacji, które mogłyby przyspieszyć proces sortowania. Z kolei sortowanie szybkie (Quick Sort) to bardziej zaawansowana technika, która dzieli tablicę na mniejsze podtablice i sortuje je rekurencyjnie, co daje średnią złożoność O(n log n). To sprawia, że jest preferowane w aplikacjach, gdzie wydajność jest kluczowa. Sortowanie kubełkowe (Bucket Sort) z kolei polega na podziale danych na kilka "kubełków" i sortowaniu ich wewnętrznie, co również ma na celu zwiększenie efektywności sortowania, zwłaszcza w przypadku danych rozłożonych równomiernie. Typowe błędy myślowe, które mogą prowadzić do niepoprawnych wniosków, to mylenie różnorodnych technik sortowania na podstawie ich nazwy lub złożoności, a także zakładanie, że prostsze metody, jak sortowanie bąbelkowe, są wystarczające dla wszystkich przypadków bez uwzględnienia wymagań dotyczących wydajności.

Pytanie 2

W semantycznym HTML odpowiednikiem tagu <b>, który nie tylko pogrubia tekst, ale również oznacza go jako istotniejszy, jest

A. <em>
B. <strong>
C. <mark>
D. <ins>
Znacznik <strong> w języku HTML semantycznym służy do oznaczania tekstu, który ma szczególne znaczenie w kontekście treści. Oprócz stylistycznego pogrubienia czcionki, <strong> wskazuje, że dany fragment tekstu jest ważny dla zrozumienia treści dokumentu. Przykładowo, w artykule omawiającym bezpieczeństwo w Internecie, można użyć <strong> do wyróżnienia kluczowych terminów, takich jak 'szyfrowanie' czy 'firewall', co podkreśla ich znaczenie w ochronie danych. Użycie znaczników semantycznych, takich jak <strong>, jest zgodne z najlepszymi praktykami dostępności, co zapewnia lepszą interpretację treści przez technologie asystujące, takie jak czytniki ekranu. Takie podejście poprawia nie tylko nawigację po stronie, ale również SEO, ponieważ wyszukiwarki lepiej rozumieją kontekst i hierarchię treści. Warto również zauważyć, że w przeciwieństwie do <b>, który jedynie zmienia wygląd tekstu, <strong> wnosi dodatkowy sens do struktury dokumentu, co jest szczególnie istotne w kontekście tworzenia witryn internetowych, które są zarówno estetyczne, jak i funkcjonalne.

Pytanie 3

Zapis CSS w postaci:

ul{ list-style-image:url('rys.gif');}
spowoduje, że na stronie internetowej
A. każdy element listy zyska indywidualne tło pochodzące z grafiki rys.gif
B. rysunek rys.gif zostanie wyświetlony jako punkt listy nienumerowanej
C. punktorem nienumerowanej listy stanie się rys.gif
D. rys.gif będzie służyć jako tło dla nienumerowanej listy
W CSS właściwość 'list-style-image' służy do określenia obrazu, który ma być użyty jako znacznik punktu dla list nienumerowanych. W podanym przykładzie zapis 'ul{ list-style-image:url('rys.gif'); }' informuje przeglądarkę, aby zamiast domyślnego punktu, wykorzystała obrazek 'rys.gif'. Oznacza to, że każdy element listy (li) w tej nienumerowanej liście będzie miał przypisany obraz jako punkt. To podejście jest zgodne ze standardami CSS i jest szeroko stosowane w celu dodania indywidualnego stylu do elementów listy. Przykładowo, zamiast tradycyjnego kropkowania, możemy użyć ikon lub obrazów, które lepiej oddają tematykę strony. Ważne jest, aby plik graficzny był dostępny i poprawnie załadowany, co zapewni, że znacznik wyświetli się na stronie. Istotne jest również, aby pamiętać o optymalizacji obrazków dla sieci, co może poprawić szybkość ładowania strony.

Pytanie 4

Jaką metodę zastosowano do dodania arkusza stylów do dokumentu HTML w pokazanym kodzie?

Ilustracja do pytania
A. Styl wpisany, lokalny
B. Styl alternatywny, zewnętrzny
C. Styl zewnętrzny
D. Styl wewnętrzny
Styl wpisany lokalny w HTML to metoda definiowania stylów CSS bezpośrednio wewnątrz elementów HTML za pomocą atrybutu style. Jest to często stosowane, gdy chcemy szybko zdefiniować unikalne style dla pojedynczego elementu bez tworzenia lub edytowania zewnętrznego pliku CSS. Przykładowo poniższy kod HTML pokazuje jak możemy zmienić kolor tekstu w paragrafie na czerwony używając właśnie stylu pisanego zwanego również inline. Choć jest to proste i szybkie rozwiązanie nie jest zalecane dla większych projektów ze względu na brak możliwości ponownego użycia kodu i problematyczną jego konserwację. W praktyce najlepszym podejściem jest stosowanie stylów zewnętrznych które umożliwiają centralne zarządzanie wyglądem całego dokumentu. Standardy HTML i CSS promują modularność i oddzielenie warstwy prezentacyjnej od struktury co jest bardziej efektywne i zgodne z zasadami projektowania responsywnych aplikacji internetowych. Styl wpisany może być jednak przydatny w testach szybkich prototypach lub sytuacjach gdy zmiany muszą być wprowadzone lokalnie i mają one charakter jednorazowy. Dla bardziej złożonych aplikacji zaleca się jednak stosowanie bardziej zorganizowanych metod stylizacji takich jak style zewnętrzne.

Pytanie 5

Który z przedstawionych poniżej fragmentów kodu HTML5 zostanie uznany przez walidator HTML za niepoprawny?

A. <p class= "stl" id= "a">tekst</p>
B. <p class= "stl" style= "color: #F00 ">tekst</p>
C. <p class= "stl">tekst</p>
D. <p class= "stl"><style>.a{color:#F00}</style>tekst</p>
Poprawna odpowiedź, która została wskazana, to <p class= "stl"><style>.a{color:#F00}</style>tekst</p>. W kontekście HTML5, element <style> jest przeznaczony do umieszczania w nagłówkach dokumentu (<head>), a nie wewnątrz elementów blokowych, takich jak <p>. Umieszczanie tagu <style> w tagu <p> narusza zasady dotyczące struktury dokumentu HTML. Walidatory HTML5, które sprawdzają zgodność kodu z obowiązującymi standardami W3C, uznają takie umieszczenie za błąd, ponieważ stylizacja powinna być oddzielona od treści. Zgodnie z najlepszymi praktykami, CSS powinno być zaimplementowane w plikach zewnętrznych lub sekcjach <head>, co ułatwia utrzymanie i modyfikację kodu. Przykładem poprawnej struktury może być: <head><style>.a{color:#F00}</style></head><body><p class="stl">tekst</p></body>. To zapewnia przejrzystość i zgodność z zasadami HTML5, co jest kluczowe dla SEO oraz dostępności strony.

Pytanie 6

W formularzu wartość z pola input o typie number została przypisana do zmiennej a i następnie przetworzona w skrypcie JavaScript w poniższy sposób. Jaki typ będzie miała zmienna z?

var z = parseFloat(a);
A. liczbowego, całkowitego
B. napisowego
C. zmiennoprzecinkowego
D. NaN
W języku JavaScript funkcja parseFloat() jest używana do konwersji wartości tekstowych na liczby zmiennoprzecinkowe. Podczas pobierania danych z pola input typu number, wartość często jest traktowana jako string i konieczne jest jej przekształcenie w liczbę, aby móc na niej wykonywać operacje matematyczne. Funkcja parseFloat() analizuje łańcuch znaków i próbuje wyodrębnić z niego liczbę zmiennoprzecinkową. Nawet jeśli podana wartość jest zapisana jako liczba całkowita, parseFloat() przekształci ją w liczbę zmiennoprzecinkową, co oznacza, że zmienna z będzie tego właśnie typu. Jest to standardowa praktyka w programowaniu w JavaScript, aby zapewnić, że dane numeryczne są przetwarzane w odpowiednim formacie. Konwersja na typ zmiennoprzecinkowy gwarantuje także, że wszelkie ułamki dziesiętne będą poprawnie obsługiwane, co jest kluczowe w wielu zastosowaniach, takich jak obliczenia finansowe czy prace związane z precyzyjnymi pomiarami. Warto zaznaczyć, że parseFloat() zwraca wartość NaN tylko wtedy, gdy dany ciąg nie zaczyna się od liczby, co czyni ten sposób konwersji bardzo elastycznym i często stosowanym w praktyce.

Pytanie 7

Który element blokowy HTML5 jest przeznaczony na nawigację witryny?

A.
main
B.
aside
C.
nav
D.
header
Element semantyczny <nav> wydziela blok NAWIGACJI witryny - zwykle menu główne lub zestaw linków do najważniejszych podstron, np. <nav><a href="/">Start</a> <a href="/kontakt">Kontakt</a></nav>. Semantyka jest ważna nie tylko porządkowo: czytniki ekranu i wyszukiwarki rozpoznają po <nav>, że to nawigacja. Zapamiętaj: „nav” jak nawigacja.

Pytanie 8

Który efekt został zaprezentowany na filmie?

A. Zwiększenie ostrości zdjęcia.
B. Zmiana jasności zdjęć.
C. Zmniejszenie kontrastu zdjęcia.
D. Przenikanie zdjęć.
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 9

W bazie danych znajduje się tabela uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL należy wykorzystać, aby znaleźć imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
B. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
C. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
D. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = 'M%';
Wybrana odpowiedź jest poprawna, ponieważ używa operatora LIKE, który jest standardowym rozwiązaniem w SQL do wyszukiwania wzorców w danych. W tym przypadku 'M%' oznacza, że chcemy znaleźć wszystkie nazwiska, które zaczynają się na literę M. Operator LIKE jest szczególnie przydatny w sytuacjach, gdy potrzebujemy elastycznego wyszukiwania, umożliwiającego zastosowanie symboli wieloznacznych, takich jak '%' oznaczający dowolną liczbę znaków. Przykład zastosowania tego zapytania może obejmować generowanie listy uczniów dla nauczycieli, którzy chcą szybko zobaczyć wszystkich uczniów z nazwiskiem zaczynającym się na M, co może być przydatne przy organizowaniu wydarzeń czy klas. Dobrą praktyką jest także używanie odpowiednich indeksów w bazie danych, co może znacznie przyspieszyć wykonanie zapytań, zwłaszcza w dużych zbiorach danych. Znajomość operatorów SQL i ich zastosowań, jak również umiejętność formułowania zapytań, jest kluczowa w pracy z relacyjnymi bazami danych.

Pytanie 10

Jak należy poprawnie udokumentować wzorzec weryfikacji dla pola nazwa w kodzie aplikacji JavaScript?

Ilustracja do pytania
A. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
B. /* Pole nazwa musi składać się w tej kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużych liter i dwóch małych liter. */
C. /* Pole nazwa powinno składać się w tej kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
D. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
Niepoprawne odpowiedzi zakładają niewłaściwą interpretację wymagań dotyczących wzorca walidacji. Pierwsza opcja sugeruje że pole 'nazwa' może składać się z dowolnych cyfr i liter co nie uwzględnia wymogu specyficznej kolejności i liczby znaków co może prowadzić do wprowadzenia nieprawidłowych danych. Taki brak restrykcji mógłby skutkować potencjalnymi lukami w zabezpieczeniach aplikacji. Inna odpowiedź zakłada że po cyfrze musi wystąpić duża litera a następnie ciąg małych liter co nie spełnia wymogu co najmniej dwóch małych liter. Podejście to ignoruje szczegółowe wymagania dotyczące liczby małych liter w końcowej części ciągu. Kolejne błędne założenie mówi o konieczności posiadania dwóch małych liter ale nie wymaga dużej litery co również jest sprzeczne ze wzorcem przedstawionym w zadaniu. Częstym błędem jest nieuwzględnianie pełnej struktury wzorca co powoduje że walidacja jest niekompletna i potencjalnie niewystarczająca do zapewnienia integralności danych. Prawidłowe użycie wyrażeń regularnych wymaga szczegółowego zrozumienia zarówno składni jak i logiki stojącej za walidacją danych aby skutecznie zabezpieczyć aplikację przed nieprawidłowymi wpisami które mogą wpłynąć na jej funkcjonalność i bezpieczeństwo. Zrozumienie zasad poprawnej walidacji jest kluczowym elementem w procesie tworzenia bezpiecznych i niezawodnych aplikacji webowych.

Pytanie 11

Przedstawiona w języku C++ definicja typu wyliczeniowego sprawi, że enumerator CZWARTEK będzie równy

enum dni {PONIEDZIALEK = 1, WTOREK, SRODA, CZWARTEK, PIATEK, SOBOTA, NIEDZIELA};
A. liczbie 1
B. napisowi 'CZWARTEK'
C. liczbie 4
D. napisowi "CZWARTEK"
Odpowiedzi wskazujące na napisy, zarówno w pojedynczych cudzysłowach, jak i podwójnych, są niepoprawne, ponieważ w kontekście definicji typów wyliczeniowych w C++ wartością enumeratora nie jest tekst, lecz liczba całkowita. Typy wyliczeniowe zostały zaprojektowane, aby reprezentować zestaw stałych, które mają konkretne wartości numeryczne, co czyni je bardziej efektywnymi w użyciu w porównaniu do zwykłych zmiennych. Próbując utożsamiać CZWARTEK z napisem, można dojść do mylnego wniosku, że nazwy enumeratorów są tego samego rodzaju co stringi, co prowadzi do nieprawidłowego zrozumienia ich roli w programowaniu. Warto również zauważyć, że w C++ używanie typów wyliczeniowych przyczynia się do zwiększenia bezpieczeństwa typów, ponieważ pozwala na ograniczenie wartości, które zmienna może przyjąć. Typowe błędy myślowe, które mogą prowadzić do nieprawidłowych odpowiedzi, obejmują mylenie reprezentacji tekstowej zmiennych z ich wartościami numerycznymi lub nieuważne czytanie definicji enum, co może prowadzić do błędnych wniosków na temat tego, jak działają enumeratory. W systemach, które operują na złożonych danych, takich jak dni tygodnia, wykorzystanie enumów jest kluczowe dla poprawnego działania logiki programu, dlatego istotne jest zrozumienie ich właściwego użycia i przypisania wartości.

Pytanie 12

W języku działającym po stronie serwera tworzysz ankietę, której wynik ma być zapamiętany w postaci małego pliku po stronie użytkownika. Jaki mechanizm wykorzystasz?

A. tablicę globalną $_FILES
B. bazę danych SQL
C. sesję
D. ciasteczka (cookies)
Ciasteczko (cookie) to niewielki plik zapisywany przez serwer w przeglądarce użytkownika i odsyłany przy kolejnych żądaniach. Idealnie nadaje się do zapamiętania drobnej informacji po stronie klienta, np. że ktoś wziął już udział w ankiecie. W PHP ustawia się je funkcją setcookie(). Dlatego dane zapisywane w małym pliku u użytkownika to ciasteczka.

Pytanie 13

Aby sprawdzić, czy kod JavaScript działa poprawnie, należy skorzystać z:

A. konsoli w przeglądarce internetowej
B. interpretera PHP
C. interpretera PERL
D. kompilatora C++
JavaScript jest językiem wykonywanym po stronie klienta, czyli bezpośrednio w przeglądarce internetowej. Dlatego do sprawdzenia, czy kod działa, służy konsola w narzędziach deweloperskich przeglądarki (otwierana zwykle klawiszem F12). Można w niej uruchamiać fragmenty kodu, oglądać wypisane wartości, a przede wszystkim czytać komunikaty o błędach składniowych i logicznych wraz z numerem linii. To podstawowe środowisko testowe front-end developera - i dlatego jest poprawną odpowiedzią.

Pytanie 14

Wskaż funkcję w JavaScript, która pozwoli obliczyć połowę kwadratu liczby podanej jako argument.

A. function wynik(a) { return a*2/2; }
B. function wynik(a) { return a*a/2; }
C. function wynik(a) { return 2*a/a; }
D. function wynik(a) { return a/2+a/2; }
Funkcja function wynik(a) { return a*a/2; } jest całkiem w porządku. Działa, bo fajnie oblicza połowę kwadratu liczby, którą podajesz jako argument. W praktyce, 'a*a' to nic innego jak kwadrat liczby 'a', a potem dzielimy to przez 2, co nam daje wartość połowy tego kwadratu. To, co zrobiłeś, jest zgodne z zasadami matematyki i jak na programowanie w JavaScript to też się sprawdza. Na przykład, jak podstawisz '4', to funkcja zwróci 8, bo (4*4)/2 = 16/2 = 8. Takie obliczenia mogą się przydać w różnych aplikacjach, np. przy obliczeniach inżynieryjnych czy analizie danych, gdzie często korzysta się z takich wzorów. Użycie zmiennych i funkcji w programowaniu ułatwia zarządzanie danymi, a do tego można łatwiej się orientować w kodzie, co jest super.

Pytanie 15

Kiedy zachowana jest integralność ENCJI w bazie danych?

A. gdy każdy klucz główny ma odpowiadający klucz obcy w innej tabeli
B. gdy klucz główny jest zawsze liczbą całkowitą
C. gdy każda kolumna ma przypisany typ danych
D. gdy każda tabela ma utworzony klucz główny
Pozostałe warunki nie dotyczą integralności encji. Klucz główny nie musi być liczbą całkowitą (może być np. tekstem). Przypisanie typu kolumnom to osobna kwestia. Powiązanie z kluczem obcym w innej tabeli to integralność REFERENCYJNA, nie encji. Integralność encji zapewnia klucz główny w każdej tabeli.

Pytanie 16

W programie MS Access w ustawieniach pola klasa należy określić maskę wprowadzania danych. Jaką maskę należy ustawić, aby dane wprowadzone składały się z trzech znaków w formacie: obowiązkowa cyfra, następnie dwie obowiązkowe litery?

Ogólne
Rozmiar pola3
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. 000
B. CLL
C. 0CC
D. 0LL
W przypadku maski wprowadzania danych w MS Access, należy zrozumieć, jakie znaczenie mają poszczególne symbole używane do stworzenia maski. Symbole te określają, co użytkownik może wprowadzić w każdym miejscu pola. Często spotykanym błędem jest wybór niewłaściwego symbolu, co prowadzi do niepoprawnego formatu danych. W przypadku masek takich jak 0CC, 000 i CLL, każda z nich stosuje niewłaściwe podejście do formatu wymaganego w pytaniu. Maska 0CC zakłada, że po cyfrze mogą znajdować się dowolne znaki, co nie spełnia wymagań dotyczących dwóch obowiązkowych liter. Maska 000 z kolei wymusza wprowadzenie trzech cyfr, co całkowicie mija się z celem, ponieważ wymagany jest format składający się z jednej cyfry i dwóch liter. Maska CLL sugeruje, że pierwszy znak może być dowolnym znakiem (cyfrą lub literą), co również jest niezgodne z wymaganiami, gdzie pierwszą pozycję musi zajmować cyfra. Takie nieporozumienia mogą wynikać z braku zrozumienia znaczenia symboli używanych w maskach wprowadzania danych. Kluczem do poprawnego zastosowania masek w MS Access jest więc dokładne poznanie, jakie symbole są dostępne i jakie mają zastosowanie, aby zwiększyć spójność i integralność danych w systemach bazodanowych. Zrozumienie tych zasad pozwala również uniknąć typowych błędów wynikających z niepoprawnej interpretacji wymagań dotyczących formatowania danych, co jest istotne nie tylko w kontekście egzaminacyjnym, ale także w praktycznej pracy z bazami danych. Poprawne zrozumienie i stosowanie masek wprowadzania danych jest elementem profesjonalnego zarządzania danymi, gdzie każda baza musi spełniać określone standardy jakości i wydajności.

Pytanie 17

Aby strona poprawnie skalowała się na urządzeniach mobilnych, w sekcji <head> należy umieścić:

A.
<meta name="viewport" content="width=device-width, initial-scale=1">
B.
<link rel="stylesheet">
C.
<title>
D.
<meta charset="utf-8">
Znacznik <meta name="viewport" content="width=device-width, initial-scale=1"> mówi przeglądarce mobilnej, że szerokość rzutni (viewport) ma odpowiadać szerokości urządzenia, a strona ma startować w skali 1:1. Bez niego telefon renderuje stronę jako szeroką i pomniejsza ją, przez co media queries nie działają jak należy. Dlatego dla poprawnego skalowania na komórkach niezbędny jest meta viewport.

Pytanie 18

W tabeli o nazwie zadania znajduje się kolumna tekstowa status. Jakie zapytanie należy wykorzystać, aby usunąć te rekordy, w których status to ‘zamknięte’?

A. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
B. DELETE FROM zadania;
C. TRUNCATE TABLE zadania;
D. DELETE FROM zadania WHERE status = 'zamknięte';
Odpowiedź 'DELETE FROM zadania WHERE status = 'zamknięte';' jest poprawna, ponieważ ta kwerenda w sposób precyzyjny usuwa tylko te rekordy z tabeli 'zadania', które mają status 'zamknięte'. Użycie klauzuli WHERE jest kluczowe, ponieważ pozwala na ograniczenie operacji usunięcia do konkretnych wierszy w tabeli, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych. Należy unikać bezwarunkowego usuwania wszystkich rekordów, jak w przypadku kwerendy 'DELETE FROM zadania;', co mogłoby spowodować utratę danych, które są nadal potrzebne. Przykłady zastosowania tej kwerendy można znaleźć w wielu systemach zarządzania projektami, gdzie często musimy archiwizować lub usuwać zakończone zadania. Dodatkowo stosowanie klauzuli WHERE jest zgodne z zasadą minimalizacji zmian w bazie danych, co jest istotne dla zapewnienia integralności danych i umożliwienia ich późniejszej analizy.

Pytanie 19

Do czego służy w PHP funkcja mysqli_select_db()?

A. do wskazania bazy, z której będą pobierane dane
B. do nawiązania połączenia z serwerem SQL
C. do wskazania tabeli, z której pobierane są dane
D. do pobrania danych na podstawie zapytania
Pozostałe opisy dotyczą innych funkcji w łańcuchu pracy z bazą. Nawiązanie połączenia z serwerem to mysqli_connect(), a nie wybór bazy. Pobranie danych na podstawie zapytania realizuje mysqli_query(). mysqli_select_db() nie wskazuje też pojedynczej TABELI - operuje na poziomie całej BAZY danych.

Pytanie 20

Efekt AutoDuck w obróbce dźwięku jest stosowany do

A. ściszenia dźwięku w tle, gdy pojawia się dźwięk pierwszoplanowy.
B. ocieplenia głosu i dźwięków pochodzących z tła.
C. eliminacji szumów pochodzących z dźwięków w tle.
D. wyrównania głośności całej ścieżki dźwiękowej.
Efekt AutoDuck dokładnie robi to, co opisuje poprawna odpowiedź: automatycznie ścisza dźwięk w tle (np. muzykę), gdy pojawia się dźwięk pierwszoplanowy, zwykle głos lektora lub prowadzącego. W praktyce wygląda to tak, że masz dwie ścieżki: na jednej mówiony komentarz, na drugiej muzykę w tle. AutoDuck „podgląda” poziom głośności ścieżki z głosem i gdy wykryje, że ktoś zaczyna mówić, automatycznie obniża poziom głośności ścieżki z muzyką o zadaną liczbę decybeli. Kiedy mówienie się kończy, muzyka wraca płynnie do poprzedniego poziomu. To jest klasyczny przykład tzw. duckingu, bardzo często stosowany w radiu, podcastach, vlogach, prezentacjach wideo, a nawet w prostych materiałach szkoleniowych. Z mojego doświadczenia to jedna z tych funkcji, które naprawdę oszczędzają czas – zamiast ręcznie rysować obwiednię głośności, ustawiasz próg zadziałania, czas narastania i opadania (attack/release) oraz głębokość tłumienia. Dobre praktyki mówią, żeby nie przesadzać z tłumieniem tła – zwykle wystarcza w okolicach 10–18 dB, tak żeby głos był czytelny, ale muzyka nadal była słyszalna. Ważne jest też ustawienie odpowiednio długiego „release”, żeby muzyka nie „podskakiwała” nerwowo pomiędzy pauzami w mowie. W narzędziach typu Audacity, Adobe Audition czy Reaper AutoDuck (lub sidechain ducking) jest standardowym narzędziem w pracy z multimediami na potrzeby internetu: spoty reklamowe, intro do kanałów YouTube, kursy e-learningowe – wszędzie tam, gdzie chcesz, żeby głos był zawsze na pierwszym planie, a tło samo się grzecznie cofa, gdy ktoś coś mówi.

Pytanie 21

W tabeli mieszkancy znajdują się dane o osobach z całego kraju. Aby ustalić, ile unikalnych miast występuje w tej tabeli, trzeba zapisać kwerendę

A. SELECT COUNT(miasto) FROM mieszkancy;
B. SELECT COUNT(DISTINCT miasto) FROM mieszkancy;
C. SELECT DISTINCT miasto FROM mieszkancy;
D. SELECT COUNT(miasto) FROM mieszkancy DISTINCT;
Wybór odpowiedzi "SELECT COUNT(DISTINCT miasto) FROM mieszkancy;" jest naprawdę trafny. Używasz funkcji COUNT razem z DISTINCT, co pozwala na zliczenie tylko unikalnych miast w tabeli 'mieszkancy'. Funkcja COUNT liczy wszystkie wiersze, a DISTINCT usuwa duplikaty, dzięki czemu dostajemy dokładną liczbę miast. Fajnie jest to wykorzystać, gdy analizujesz dane demograficzne – wtedy wiesz, jakie masz rozkłady w różnych miastach. W bazach danych to standardowy sposób, bo dzięki temu unikasz powielania danych i masz lepsze analizy. Ważne jest też, żeby pamiętać o wydajności zapytań; połączenie DISTINCT z COUNT może być bardziej efektywne niż próba szukania duplikatów później. No i zasady normalizacji bazy danych? One rzeczywiście pomagają w tym, żeby dane były uporządkowane, co ułatwia ich przetwarzanie i analizowanie.

Pytanie 22

Który zapis w języku JavaScript daje taki sam wynik jak poniższy kod?

x = 0;
x += 10;
A. x = 0; x++; x = x + 9
B. x = 10; x = 0
C. x = 0; x--; x *= 9
D. x = 10; x = x + 10
Analiza odpowiedzi prowadzi do zrozumienia, że w niektórych przypadkach programiści mogą mieć trudności z interpretacją operacji na zmiennych. W przypadku pierwszej z niepoprawnych odpowiedzi, x = 0; x--; x *= 9; prowadzi to do innej logiki. Po przypisaniu x = 0, użycie x-- zmienia wartość x na -1, a następnie mnożenie przez 9 skutkuje -9, co nie ma nic wspólnego z oczekiwaną wartością 10. To pokazuje, jak nieprawidłowe zrozumienie podstawowych operacji arytmetycznych może prowadzić do błędów. W drugiej niepoprawnej odpowiedzi, x = 10; x = x + 10; przypisanie 10 do x oraz dodanie 10 do x daje wartość 20, co również jest dalekie od oczekiwanego wyniku. Takie nieprawidłowe podejście do operacji przypisania i dodawania może być wynikiem niedostatecznej znajomości reguł działania operatorów w JavaScript. Wreszcie, ostatnia odpowiedź, x = 10; x = 0; jest sprzeczna sama w sobie, ponieważ po przypisaniu 10, nadpisanie wartości na 0 bez żadnej operacji arytmetycznej skutkuje wartością 0, co jest jeszcze bardziej mylące. Wnioskując, kluczowe jest zrozumienie, jak działają operatory w JavaScript oraz unikanie typowych pułapek wynikających z niepoprawnego łączenia przypisania i operacji arytmetycznych. Takie błędy mogą prowadzić do trudności w debugowaniu i utrzymaniu kodu, dlatego warto przestrzegać dobrych praktyk programistycznych oraz dokładnie analizować operacje na zmiennych.

Pytanie 23

Pole tabeli „czyWypozyczona” może przyjmować tylko wartości true lub false. Który typ danych jest dla niego najlepszy?

A.
CHAR
B.
BOOLEAN
C.
DOUBLE
D.
VARCHAR(5)
Pozostałe typy są nieadekwatne do dwustanowej flagi. CHAR przechowuje znaki o stałej długości - użyty do „T”/„N” działałby, ale jest mniej czytelny i nie ogranicza wartości do dwóch stanów. DOUBLE to typ liczbowy zmiennoprzecinkowy, przeznaczony do liczb rzeczywistych, więc do prawda/fałsz zupełnie nie pasuje. VARCHAR(5) trzyma tekst (np. „true”) - zajmuje więcej miejsca i dopuszcza dowolne, także błędne, wpisy. Dwie wartości logiczne najlepiej odda BOOLEAN, dlatego ta odpowiedź jest poprawna.

Pytanie 24

W języku JavaScript, aby zmienić wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById, należy zastosować

A. metodę getAttribute
B. pole innerHTML
C. pole attribute i podać nazwę atrybutu
D. metodę setAttribute
Wybór innych metod lub pól do zmiany wartości atrybutów w elementach HTML wskazuje na pewne nieporozumienia dotyczące sposobu działania DOM w JavaScript. Metoda getAttribute służy do odczytywania wartości atrybutu, a nie do jego modyfikacji. Użytkownik może mylnie sądzić, że wystarczy odczytać wartość atrybutu, aby następnie ją zmienić, co jest błędne. Podobnie, pole innerHTML jest używane do manipulacji zawartością wewnętrzną elementu, a nie bezpośrednio do zmiany atrybutów. Umożliwia to wstawienie lub zmianę HTML w obrębie elementu, ale nie wpływa na atrybuty, co może prowadzić do niezamierzonych efektów, takich jak utrata istniejących atrybutów. W przypadku, gdy ktoś zdecyduje się użyć pola attribute, wprowadza zamieszanie, ponieważ nie istnieje takie pole w standardowym obiekcie DOM. Dlatego kluczowe jest zrozumienie różnicy pomiędzy odczytem a zapisem atrybutów, co jest fundamentalne dla efektywnego programowania w JavaScript. Aby uniknąć typowych błędów, programiści powinni skupić się na wykorzystaniu właściwych metod i narzędzi, co zapewni prawidłowe zarządzanie atrybutami w dokumentach HTML.

Pytanie 25

W języku JavaScript należy sformułować warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (również nie zerową) lub gdy zmienna b będzie liczbą mieszczącą się w przedziale od 10 do 100, włącznie. Wyrażenie logiczne zastosowane w tym warunku powinno mieć formę

A. (a>0) && ((b>=10) || (b<=100))
B. (a>0) && ((b>=10) && (b<=100))
C. (a>0) || ((b>=10) && (b<=100))
D. (a>0) || ((b>=10) || (b<=100))
Analizując inne odpowiedzi, widać, że zawierają one różne błędne koncepcje w interpretacji warunków logicznych. W przypadku (a>0) && ((b>=10) || (b<=100)), użycie operatora || w drugiej części powoduje, że warunek dla b zawsze będzie spełniony, niezależnie od wartości b, co jest niezgodne z założeniem, że b powinno znajdować się w przedziale od 10 do 100. Takie błędne zrozumienie operatorów logicznych prowadzi do niepoprawnych interpretacji. W odpowiedzi (a>0) || ((b>=10) || (b<=100)), ponownie użycie operatora || w drugiej części sprawia, że warunek b również nie działa zgodnie z założeniem, ponieważ b może być każdą liczbą, co nie spełnia wymogu ograniczenia do przedziału 10-100. Kolejna odpowiedź, (a>0) && ((b>=10) && (b<=100)), wprowadza błędny wniosek, że obie części muszą być spełnione jednocześnie. Takie podejście jest zrozumiałe, ale nie odpowiada na pierwotne założenie, że wystarczy, aby jeden z warunków był spełniony. Rozumienie logiki warunkowej w programowaniu jest kluczowe dla tworzenia efektywnych algorytmów i unikania problemów z bezpieczeństwem danych. Dlatego ważne jest, aby dokładnie analizować składnię i semantykę wyrażeń logicznych, co przekłada się na jakość kodu i jego łatwość w utrzymaniu.

Pytanie 26

W bibliotece mysqli w PHP, aby uzyskać najbardziej aktualny komunikat o błędzie, można użyć funkcji

A. mysqli_use_result()
B. mysqli_error_list()
C. mysqli_errno()
D. mysqli_error()
W kontekście użycia funkcji do uzyskania komunikatów o błędach w bibliotece mysqli, niektóre z odpowiedzi mogą prowadzić do nieporozumień. Na przykład, mysqli_use_result() jest funkcją, która służy do pobierania zestawu wyników z zapytania SELECT w trybie pamięci. Jej głównym zadaniem jest przetwarzanie wyników, a nie błędów, co czyni ją nieodpowiednią w tym kontekście. Użycie tej funkcji nie zapewnia informacji o błędach, czego można się spodziewać w przypadku zapytań, które mogą zakończyć się niepowodzeniem. Z kolei mysqli_errno() zwraca numer błędu związanego z ostatnią operacją, co może być przydatne, ale samo w sobie nie dostarcza opisu błędu, a tym samym nie spełnia wymagań dotyczących uzyskania ostatniego komunikatu o błędzie w formie tekstowej. Mimo że może być użyteczne w niektórych kontekstach, np. w logice warunkowej, nie jest w stanie dostarczyć pełnego opisu, którego można oczekiwać. Funkcja mysqli_error_list() zwraca tablicę wszystkich błędów związanych z ostatnią operacją, co również jest przydatne w określonych sytuacjach, jednak wciąż nie spełnia wymagań dotyczących prostego i bezpośredniego uzyskania ostatniego komunikatu o błędzie. Ostatecznie, przy wyborze metody obsługi błędów, kluczowe jest zrozumienie, że funkcje te mają różne zastosowania i nie każda z nich będzie odpowiednia w kontekście uzyskania pełnego opisu błędu. Podsumowując, wybór odpowiednich funkcji do obsługi błędów jest kluczowy dla efektywnego debugowania i poprawnego działania aplikacji opartych na PHP.

Pytanie 27

Atrybut NOT NULL kolumny jest konieczny w przypadku:

A. definicji wszystkich pól tabeli
B. użycia atrybutu DEFAULT
C. klucza podstawowego
D. wszystkich pól typu numerycznego
Klucz podstawowy (primary key) jednoznacznie identyfikuje każdy wiersz, dlatego nie może być pusty - stąd jego kolumny muszą mieć atrybut NOT NULL (w wielu systemach jest on dla klucza wymuszany automatycznie). Inne kolumny mogą dopuszczać brak wartości (NULL), zależnie od projektu. Dlatego NOT NULL jest konieczny w przypadku klucza podstawowego.

Pytanie 28

Tabele Osoby oraz Zainteresowania są połączone relacją jeden do wielu. Jakie zapytanie SQL należy użyć, aby w oparciu o tę relację poprawnie wyświetlić imiona i odpowiadające im hobby?

Ilustracja do pytania
A. SELECT imie, hobby FROM Osoby, Zainteresowania;
B. SELECT imie, hobby FROM Osoby, Zainteresowania WHERE Osoby.id = Zainteresowania.id;
C. SELECT imie, hobby FROM Osoby.Zainteresowania_id = Zainteresowania.id FROM Osoby, Zainteresowania;
D. SELECT imie, hobby FROM Osoby JOIN Zainteresowania ON Osoby.Zainteresowania_id = Zainteresowania.id;
Odpowiedź numer 1 jest poprawna, ponieważ wykorzystuje składnię JOIN, która jest standardowym sposobem łączenia dwóch tabel w SQL. W tym przypadku tabele Osoby i Zainteresowania są połączone za pomocą klucza obcego Osoby.Zainteresowania_id, który odwołuje się do klucza głównego w tabeli Zainteresowania. Dzięki użyciu klauzuli ON możemy precyzyjnie określić warunek łączenia tych tabel. Takie podejście jest zgodne z dobrymi praktykami projektowania baz danych, ponieważ pozwala na efektywne zarządzanie relacjami między danymi. Stosowanie JOIN umożliwia również ograniczenie wyniku do konkretnych wierszy, co zwiększa wydajność zapytań. Praktyczne zastosowanie tego rodzaju zapytań obejmuje różne systemy zarządzania danymi, gdzie konieczne jest pobieranie powiązanych informacji z wielu źródeł danych. Warto również pamiętać, że JOIN-y są ustandaryzowanym elementem języka SQL, co gwarantuje ich poprawne działanie w różnych systemach bazodanowych, takich jak MySQL, PostgreSQL czy Oracle SQL. W kontekście relacyjnych baz danych stanowią one fundament w optymalizacji i organizacji danych, co jest kluczowe dla profesjonalistów z branży IT.

Pytanie 29

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 2 razy
B. 27 razy
C. 3 razy
D. 26 razy
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia działania pętli do-while oraz mechanizmu iteracji w kodzie. Częstym błędem jest założenie, że pętla wykona się tak wiele razy, jak wynosi ostateczna wartość x. Jednak w rzeczywistości, każda iteracja zwiększa x przez jego pomnożenie przez 3, a nie przez dodawanie. Począwszy od wartości 1, zmienna x przyjmuje wartości 3, 9, i 27, co oznacza, że pętla musi wykonać się trzykrotnie, zanim osiągnie wartość równą 27. Innym częstym błędem jest założenie, że pętla do-while nie różni się od standardowej pętli while. W rzeczywistości, do-while wykonuje swój blok kodu przynajmniej raz, zanim oceni warunek, co jest kluczowe dla zrozumienia, dlaczego pętla wykonuje się dokładnie tyle razy. Niewłaściwe zrozumienie tego mechanizmu może prowadzić do nadmiernego wykonywania pętli lub nieoczekiwanego zakończenia przed osiągnięciem zamierzonego celu. Dobre praktyki programistyczne wymagają dokładnego przemyślenia warunków początkowych i końcowych pętli, aby uniknąć błędów logicznych i zapewnić poprawne działanie kodu w różnych sytuacjach praktycznych, takich jak przetwarzanie danych czy iteracyjne obliczenia matematyczne.

Pytanie 30

Jak nazywa się model prostej bazy, w której wszystkie dane są w JEDNEJ tabeli?

A. hierarchicznym
B. jednorodnym
C. relacyjnym
D. sieciowym
Pozostałe modele są bardziej złożone. Relacyjny opiera się na wielu powiązanych tabelach, hierarchiczny na strukturze drzewa, a sieciowy na grafie powiązań. Dane w jednej tabeli to model jednorodny.

Pytanie 31

Co robi funkcja napisana w języku JavaScript?

function fun1(f)
{
  if(f < 0)
    f = f * (-1);
  return f;
}
A. zwrócenie wartości bezwzględnej z f
B. wypisanie wartości bezwzględnej z f
C. wypisanie wartości odwrotnej do f
D. zwrócenie wartości odwrotnej do f
Patrząc na błędne odpowiedzi, trzeba zauważyć, że funkcja w ogóle nie zajmuje się wypisywaniem wartości ani obliczaniem odwrotności liczby. W JavaScript do wypisywania danych używamy polecenia console.log(), a tutaj go nie ma. Ta funkcja tylko zwraca wynik, co w programowaniu jest super ważne, bo później można wykorzystać tę wartość w dalszym kodzie. Kolejna pomyłka to myślenie, że funkcja zwraca odwrotność liczby. Odwrotność to zupełnie co innego i związane z tym, że musimy znaleźć liczbę, która pomnożona przez pierwotną daje 1. W tym wypadku funkcja tylko zmienia znak liczby, gdy jest ona ujemna, co jest typowe dla obliczania wartości bezwzględnej. Zrozumienie tych różnic jest naprawdę kluczowe, jeśli chcesz uniknąć typowych błędów w programowaniu i lepiej pisać kod.

Pytanie 32

Aby zapisać prostą animację na potrzeby strony internetowej, można skorzystać z formatu:

A. PNG
B. CDR
C. JPG
D. GIF
Do zapisania prostej animacji na stronę internetową nadaje się format GIF. Plik GIF może przechowywać wiele klatek wyświetlanych po kolei w pętli, więc tworzy krótką animację bez potrzeby stosowania wideo. Obsługuje też przezroczystość, choć ogranicza paletę do 256 kolorów. To dlatego proste, lekkie animacje (np. ikony, banery) zapisuje się właśnie jako GIF.

Pytanie 33

Co wchodzi w skład standardowego frameworka?

A. domena oraz obsługa błędów
B. zarządzanie komunikacją z bazą danych, system uruchamiania i przetwarzania akcji
C. system uruchamiania i przetwarzania akcji oraz certyfikat http
D. przetwarzanie formularzy oraz wbudowany serwer
Wybór odpowiedzi, który nie odnosi się do zarządzania komunikacją z bazą danych oraz mechanizmu uruchamiania i przetwarzania akcji, może prowadzić do mylnych przekonań na temat roli frameworków. Na przykład, odpowiedzi dotyczące certyfikatu HTTP i serwera wbudowanego mogą sugerować, że te elementy są kluczowe dla frameworków, podczas gdy w rzeczywistości to mechanizmy, które są bardziej związane z infrastrukturą sieciową i konfiguracją serwera. Certyfikat HTTP jest istotny dla bezpieczeństwa komunikacji, ale nie jest częścią samego frameworka aplikacyjnego. Podobnie, obsługa formularzy jest funkcją, którą wiele frameworków oferuje, lecz nie jest ona wystarczająca do pełnego operowania w kontekście aplikacji webowych. Ponadto, odpowiedź dotycząca domeny i obsługi błędów może wprowadzać w błąd, ponieważ domena to szerszy termin związany z architekturą aplikacji, a obsługa błędów to mechanizm usprawniający interakcję użytkownika, ale nie definiujący samego frameworka. Właściwe zrozumienie roli zarządzania danymi i mechanizmów przetwarzania akcji jest kluczowe dla efektywnego tworzenia aplikacji, które są skalowalne i łatwe w utrzymaniu.

Pytanie 34

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Ta odpowiedź jest prawidłowa, ponieważ używa funkcji agregującej AVG, która oblicza średnią wartość z określonego pola, w tym przypadku pensji. Warunek WHERE zapewnia, że tylko pracownicy z stażem od 10 do 20 lat są brani pod uwagę w obliczeniach. Użycie funkcji AVG w kontekście SQL jest standardową praktyką, gdy chcemy uzyskać średnią z danych numerycznych. Na przykład, jeśli w tabeli mamy pracowników z różnymi pensjami, a chcemy zrozumieć, jak wygląda średnia wynagrodzeń w określonym przedziale stażu, to właśnie ta kwerenda dostarcza nam niezbędnej informacji. Dobre praktyki w analizie danych wskazują, że obliczenie średniej pensji jest kluczowe dla zarządzania zasobami ludzkimi i podejmowania decyzji dotyczących polityki wynagrodzeń. Przykładem może być sytuacja, gdy firma decyduje o podwyżkach lub bonusach, a analiza średniej pensji w danej grupie pracowników może znacząco wpłynąć na te decyzje.

Pytanie 35

W którym przypadku interpreter PHP zgłosi błąd i nie wykona kodu?

A. gdy zabraknie średnika kończącego instrukcję
B. gdy pobierze wartość z niewypełnionego pola formularza
C. gdy zmienne deklaruje się wewnątrz warunku
D. gdy kod nie ma wcięć
PHP wymaga średnika na końcu każdej instrukcji. Gdy go zabraknie, interpreter napotyka błąd składni (parse error) i NIE wykona kodu. Dlatego błąd zgłosi brak średnika kończącego instrukcję.

Pytanie 36

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

A. walidację i przesyłanie danych w języku PHP
B. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
C. walidację i przesyłanie danych w języku JavaScript
D. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
Wybór walidacji i przesyłania danych w języku PHP jest nieefektywny w kontekście nowoczesnych aplikacji webowych. Język PHP jest używany głównie po stronie serwera i nie jest przeznaczony do walidacji danych w czasie rzeczywistym. Oczekiwanie na przesłanie formularza do serwera, aby uzyskać informację o błędach, prowadzi do nieprzyjemnych doświadczeń użytkowników. Użytkownik musi czekać na odpowiedź serwera, co może być czasochłonne i frustrujące. Ponadto, walidacja po stronie serwera może sprawić, że użytkownik straci wprowadzone dane, jeśli wystąpią błędy. To podejście nie tylko obniża użyteczność formularzy, ale także może prowadzić do większych obciążeń serwera, ponieważ każde wprowadzenie danych wymaga zaangażowania zasobów serwerowych. Implementując walidację w JavaScript, można natychmiast informować użytkownika o niewłaściwych danych, co nie tylko zaspokaja potrzeby użytkownika, ale także zmniejsza ilość niepotrzebnych zapytań do serwera. Ostatecznie, korzystanie z jednego języka do obu zadań jest sprzeczne z zasadą separacji obowiązków, co jest kluczowe w inżynierii oprogramowania. Zamiast tego, prawidłową praktyką jest wykorzystanie JavaScript do walidacji danych przed ich przesłaniem, co pozwala na znacznie bardziej responsywne i przyjazne dla użytkownika doświadczenia.

Pytanie 37

Na ilustracji ukazano rezultat stylizacji za pomocą CSS oraz kod HTML generujący ten przykład. Zakładając, że marginesy wewnętrzne wynoszą 50 px, a zewnętrzne 20 px, jak wygląda styl CSS dla tego obrazu?

Ilustracja do pytania
A. C.
B. B.
C. A.
D. D.
Poprawna odpowiedź C wskazuje na właściwe zastosowanie właściwości CSS z użyciem solidnego czarnego obramowania o grubości 4 pikseli oraz marginesów wewnętrznych i zewnętrznych. Właściwa konfiguracja stylów CSS pozwala na precyzyjne kontrolowanie wyglądu elementów na stronie, co jest kluczowe w tworzeniu responsywnych i estetycznych stron internetowych. Użycie właściwości background-color z wartością Teal pozwala na ustawienie koloru tła, co może być istotne dla zachowania spójności wizualnej projektu. Padding ustawia wewnętrzne marginesy elementu umożliwiając kontrolę nad przestrzenią wokół zawartości, co może wpływać na czytelność i estetykę. Margins z kolei określają przestrzeń zewnętrzną oddzielając element od innych sąsiednich elementów. Poprawne zrozumienie tych stylów pozwala na efektywne projektowanie UI z myślą o użytkowniku końcowym. Dodatkowo praktyczne zastosowanie solidnych obramowań jest powszechne w podkreślaniu istotnych sekcji wizualnych, co jest zgodne z dobrymi praktykami w projektowaniu stron.

Pytanie 38

Aby podczas tworzenia tabeli zdefiniować klucz obcy na wielu kolumnach, należy użyć zapisu:

A.
CONSTRAINT (nazwisko, imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
B.
CONSTRAINT fk_osoba_uczen FOREIGN KEY ON(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
C.
CONSTRAINT fk_osoba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
D.
CONSTRAINT (nazwisko, imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
Pozostałe zapisy łamią składnię definicji klucza obcego. W dwóch brakuje listy kolumn zaraz po FOREIGN KEY albo przestawiono słowa kluczowe (FOREIGN REFERENCES KEY zamiast FOREIGN KEY ... REFERENCES) - serwer odrzuci je jako błąd. W jeszcze innym po FOREIGN KEY dopisano zbędne ON, którego w tej konstrukcji nie ma. Prawidłowy wielokolumnowy klucz obcy to CONSTRAINT nazwa FOREIGN KEY(kolumny) REFERENCES tabela(kolumny), dlatego to ten zapis jest poprawny.

Pytanie 39

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

Ilustracja do pytania
A. posłużyć się funkcją gradientu
B. zastosować funkcję wykluczenia z kołem
C. wykorzystać funkcję sumy z kołem
D. skorzystać z funkcji wstaw / dopasuj tekst do ścieżki
Wybierając odpowiednie narzędzia do osiągnięcia skomplikowanych efektów typograficznych ważne jest zrozumienie właściwości każdej funkcji Dostępne odpowiedzi sugerują nieprawidłowe podejścia do problemu Gradient jest narzędziem używanym głównie do tworzenia płynnych przejść między kolorami w obiektach wektorowych Nie wpływa on bezpośrednio na układ tekstu wzdłuż ścieżki Wybór tej opcji może wynikać z błędnego rozumienia że gradient wpływa na formę obiektu w tym przypadku tekstu Funkcja sumy w kontekście programów graficznych takich jak Inkscape czy CorelDraw dotyczy operacji booleowskich na obiektach co prowadzi do łączenia kształtów Wynikowa forma jest sumą obszarów wyjściowych jednak znów nie wpływa to na układ tekstu wzdłuż ścieżki Działanie funkcji wykluczenia z kolei polega na tworzeniu przecięcia dwóch kształtów i usunięciu wspólnego obszaru co jest używane głównie w tworzeniu złożonych kształtów Nie ma to zastosowania przy dopasowywaniu tekstu do ścieżki Myślenie że te operacje booleowskie mogą wpływać na tekst wynika z niezrozumienia jak działają te funkcje w kontekście obiektów i tekstu w programach graficznych Kluczowym błędem jest tutaj założenie że funkcje do manipulacji kształtami mogą być bezpośrednio stosowane do tekstu bez zrozumienia specyfiki narzędzi jakimi są gradient sumowanie czy wykluczanie które nie dotyczą bezpośrednio zarządzania tekstem wzdłuż ścieżki

Pytanie 40

Jakiego protokołu należy użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. IRC
B. SMTP
C. HTTP
D. FTP
Protokół FTP (File Transfer Protocol) jest standardowym rozwiązaniem służącym do transferu plików pomiędzy komputerami w sieci. Dzięki FTP użytkownicy mogą przesyłać pliki na serwer hostingowy, co jest kluczowym krokiem w procesie publikacji stron internetowych. Protokoły FTP działają w oparciu o model klient-serwer, gdzie klient łączy się z serwerem, aby przesłać lub pobrać dane. Przykładem praktycznego wykorzystania FTP jest wgrywanie plików HTML, CSS, obrazków oraz innych zasobów potrzebnych do działania strony. Warto również zwrócić uwagę na to, że FTP może działać w trybie pasywnym lub aktywnym, co jest istotne w kontekście zapory sieciowej i konfiguracji sieci. Istnieją również inne protokoły, takie jak SFTP (Secure File Transfer Protocol), które oferują dodatkowe zabezpieczenia, co czyni je preferowanym wyborem w sytuacjach, gdy bezpieczeństwo danych jest priorytetem. W praktyce, FTP jest szeroko stosowany w branży web developmentu, a znajomość tego protokołu jest niezbędna dla każdego, kto zajmuje się tworzeniem i zarządzaniem stronami internetowymi.