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: 26 maja 2026 22:47
  • Data zakończenia: 26 maja 2026 23:06

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

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

Baza danych zawiera tabelę artykuły z polami: nazwa, typ, producent, cena. Aby wyświetlić wszystkie nazwy artykułów wyłącznie typu pralka, dla których cena jest z przedziału 1 000 PLN i 1 500 PLN, należy zastosować polecenie

A. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500;
B. SELECT nazwa FROM artykuły WHERE typ=,pralka' OR cena BETWEEN 1000 AND 1500;
C. SELECT nazwa FROM artykuły WHERE typ=,pralka' OR cena BETWEEN 1000 OR 1500;
D. SELECT nazwa FROM artykuły WHERE typ=,pralka' AND cena BETWEEN 1000 AND 1500;
Poprawna odpowiedź to 'SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500;'. To zapytanie SQL w sposób właściwy wyszukuje wszystkie nazwy artykułów z tabeli 'artykuły', które mają typ 'pralka' oraz cenę mieszczącą się w przedziale od 1000 do 1500 PLN. Użycie operatora 'BETWEEN' jest standardem w SQL i pozwala na określenie zakresu wartości, co w tym przypadku jest kluczowe, aby uwzględnić wszystkie możliwe ceny w tym przedziale. Jest to bardziej efektywne niż stosowanie operatorów porównania, takich jak '>', '<', ponieważ 'BETWEEN' automatycznie wlicza granice. Przykład zastosowania takiego zapytania może być użyty w systemach zarządzania zamówieniami, gdzie często zachodzi potrzeba analizy produktów w określonych przedziałach cenowych, co umożliwia skuteczne podejmowanie decyzji zakupowych oraz optymalizację stanów magazynowych.

Pytanie 2

Jakie zdarzenie umożliwia uruchomienie kodu w języku JavaScript w momencie przesyłania formularza HTML oraz kontrolowanie tego, czy ma on zostać wysłany?

A. onChange
B. onClick
C. onSubmit
D. onEnter
Zdarzenia onClick, onEnter i onChange nie są związane z wysyłaniem formularzy i w ogóle nie pomagają w blokowaniu lub pozwalaniu na ich wysłanie. Owszem, onClick wywołuje się, gdy klikniesz jakiś element, ale to nie ma bezpośrednio związku z samym procesem wysyłania formularza. Jak użyjesz onClick do sterowania wysyłaniem formularza, to mogą być potem problemy, bo musisz sprawdzić poprawność danych, a to nie da się zrobić tylko klikając. Co do onEnter, to w ogóle dziwne, bo to nie jest standardowe zdarzenie w formularzach i nie działa tak, jak powinno. A onChange? No, on też tylko informuje o zmianach w polach, ale nie ma nic wspólnego z wysyłaniem formularza. Czasem użytkownicy myślą, że te zdarzenia mają moc kontrolowania wysyłania formularza, a to może prowadzić do zamieszania i błędnego rozumienia, jak używać JavaScript. Ważne jest, żeby zrozumieć, które zdarzenia są wywoływane i jak działają, to naprawdę klucz do efektywnego programowania aplikacji webowych.

Pytanie 3

Wskaż NIEPRAWIDŁOWE stwierdzenie dotyczące normalizacji dźwięku

A. Jeśli najgłośniejszy element dźwięku osiąga połowę skali, wszystko zostanie zwiększone razy dwa - tak, aby najgłośniejszy element dotarł do maksimum na skali
B. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do ustalonej wartości, a następnie proporcjonalnym zwiększeniu głośności pozostałych części sygnału
C. Opcja normalizacja znajduje się w menu programu do edycji dźwięku
D. W wyniku normalizacji następuje wyrównanie poziomu głośności całego nagrania
Odpowiedź jest prawidłowa, ponieważ proces normalizacji sygnału dźwiękowego faktycznie polega na dostosowywaniu głośności nagrania w taki sposób, aby najgłośniejszy fragment osiągał maksymalny poziom na skali. W praktyce, jeżeli najgłośniejszy element sygnału osiąga połowę skali, program do obróbki dźwięku zwiększa głośność wszystkich innych fragmentów, aby najgłośniejszy osiągnął pełną głośność. To działanie jest zgodne z powszechnie przyjętymi standardami normalizacji dźwięku, które zapewniają, że nagrania mają spójny poziom głośności, co jest istotne w produkcji audio, aby nie występowały nagłe zmiany głośności pomiędzy różnymi utworami. Normalizacja jest szczególnie przydatna w kontekście przygotowywania materiałów do publikacji, takich jak albumy muzyczne czy podcasty, gdzie istotne jest, by słuchacz nie musiał regulować głośności podczas odtwarzania różnych nagrań. Przykładem może być album muzyczny, gdzie różne utwory mogą mieć różne poziomy nagrania, a normalizacja pozwala na ich wyrównanie w celu uzyskania jednolitego doświadczenia słuchowego.

Pytanie 4

Program debugger służy do

A. tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy.
B. interpretacji kodu w wirtualnej maszynie Java.
C. analizy wykonywanego programu w celu lokalizacji błędów.
D. analizy kodu źródłowego w celu odnalezienia błędów składniowych.
Debugger to specjalistyczne narzędzie używane dokładnie do tego, co opisuje poprawna odpowiedź: do analizy wykonywanego programu w celu lokalizacji błędów. Chodzi tu głównie o błędy logiczne i wykonania (runtime), których kompilator zwykle nie wychwyci. Kompilator sprawdza składnię i typy, a debugger pozwala zajrzeć „do środka” działającego programu. Można zatrzymać program w wybranym miejscu (breakpoint), krokować instrukcja po instrukcji (step into, step over), podglądać wartości zmiennych, rejestrów, stos wywołań funkcji (call stack) i obserwować, jak zmienia się stan aplikacji w czasie rzeczywistym. W praktyce, w profesjonalnym programowaniu, praca z debuggerem to standard. W IDE takich jak Visual Studio, IntelliJ, Eclipse, VS Code debugowanie jest wbudowane i używane praktycznie codziennie. Moim zdaniem, kto dobrze opanuje debugger, ten dużo szybciej rozumie, co się faktycznie dzieje w kodzie, a nie tylko co „wydaje się” że się dzieje. Debugger świetnie sprawdza się przy szukaniu błędów związanych z nieprawidłowym przepływem sterowania, błędnym warunkiem w if-ach, problemami z pętlami, dereferencją pustych wskaźników, wyjątkiem w konkretnym miejscu, czy np. przy analizie wycieków pamięci. Dobre praktyki mówią też, żeby nie polegać wyłącznie na printach/logach, tylko łączyć je z debugowaniem krokowym. W nowoczesnych środowiskach można nawet debugować aplikacje webowe (np. JavaScript w przeglądarce, PHP z Xdebug), aplikacje zdalne na serwerze, a także w trybie attach do już działającego procesu. Debugger nie zastępuje testów jednostkowych ani code review, ale jest jednym z kluczowych narzędzi w całym procesie inżynierii oprogramowania.

Pytanie 5

Wartość kolumny w tabeli, która działa jako klucz podstawowy

A. musi być unikalna
B. może mieć wartość pustą (NULL)
C. jest wykorzystywana do szyfrowania treści tabeli
D. jest zawsze w formacie numerycznym
Wartość pola tabeli pełniącego rolę klucza podstawowego musi być unikalna, ponieważ klucz podstawowy identyfikuje jednoznacznie każdy rekord w tabeli bazy danych. To oznacza, że żadna z wartości w tym polu nie może się powtarzać, co zapewnia integralność danych. Przykładem zastosowania klucza podstawowego jest identyfikator użytkownika (UserID) w tabeli z danymi użytkowników; każdy użytkownik ma przypisany unikalny identyfikator, co umożliwia jednoznaczną identyfikację jego danych. Standardy relacyjnych baz danych, takie jak SQL, nakładają te wymagania na klucze podstawowe, co jest kluczowe dla prawidłowego działania relacji między tabelami. Dobre praktyki w projektowaniu baz danych sugerują, aby klucze podstawowe były nie tylko unikalne, ale także stabilne (czyli nie zmieniały się w czasie), co ułatwia zarządzanie danymi i ich integrację w systemie. W przypadku naruszenia zasady unikalności klucza podstawowego mogą wystąpić problemy z integralnością referencyjną, co sprawia, że niemożliwe staje się prawidłowe powiązanie rekordów w różnych tabelach.

Pytanie 6

Tabela o nazwie naprawy zawiera kolumny klient oraz czyNaprawione. Jakie polecenie należy wykonać, aby usunąć te rekordy, w których wartość w kolumnie czyNaprawione jest prawdziwa?

A. DELETE klient FROM naprawy WHERE czyNaprawione= TRUE;
B. DELETE FROM naprawy WHERE czyNaprawione= TRUE;
C. DELETE FROM naprawy;
D. DELETE naprawy WHERE czyNaprawione= TRUE;
Inne odpowiedzi zawierają błędne podejścia do operacji usuwania rekordów z tabeli 'naprawy'. Odpowiedź 'DELETE FROM naprawy;' jest niepoprawna, ponieważ usuwa wszystkie rekordy z tabeli, co jest zdecydowanie niezalecane, chyba że celem jest całkowite opróżnienie tabeli. Niezastosowanie klauzuli WHERE w takim przypadku prowadzi do utraty wszystkich danych, co jest sprzeczne z zasadą minimalizacji utraty danych. Odpowiedź 'DELETE klient FROM naprawy WHERE czyNaprawione= TRUE;' również jest błędna. W SQL nie można używać wyrażenia 'DELETE klient FROM', ponieważ syntaktyka polecenia DELETE nie wymaga wskazania kolumn. Poprawna składnia to po prostu 'DELETE FROM nazwa_tabeli WHERE warunek'. Tego rodzaju błędy syntaktyczne mogą prowadzić do frustracji i problemów w pracy z bazami danych. Ponadto, odpowiedź 'DELETE naprawy WHERE czyNaprawione= TRUE;' jest niewłaściwa, ponieważ również nie zawiera wymaganej frazy 'FROM', co jest kluczowe w kontekście SQL. W SQL, precyzyjne zapisywanie poleceń jest kluczowe, a nieprawidłowe użycie składni prowadzi do błędów wykonania i może zniechęcać do efektywnego korzystania z baz danych. Dlatego ważne jest, aby podczas formułowania poleceń SQL zwracać uwagę na poprawność zarówno semantyczną, jak i syntaktyczną.

Pytanie 7

Funkcja przedstawiona w kodzie JavaScript ma na celu

Ilustracja do pytania
A. pokazać wynik mnożenia a przez n
B. zwrócić wynik potęgowania an
C. zwrócić iloczyn kolejnych liczb od 1 do a
D. wyświetlić kolejne liczby od a do n
Wśród przedstawionych odpowiedzi, niektóre mogą wydawać się kuszące, ale są niepoprawne z powodu złego zrozumienia działania pętli for i operacji arytmetycznych w JavaScript. Opcja, że funkcja miałaby wypisać kolejne liczby od a do n, jest błędna. Kod nie zawiera żadnej instrukcji wyświetlania czy logowania, a jedynie operacje arytmetyczne i zwracanie wyniku. Podobnie, wypisywanie wyniku mnożenia a przez n jest niepoprawne, gdyż funkcja nie wykonuje jednokrotnego mnożenia a i n. Zamiast tego, wykonuje wielokrotne mnożenie a, co jest typowe dla operacji potęgowania. W końcu, mylne byłoby sądzenie, że funkcja oblicza iloczyn kolejnych liczb od 1 do a. Taki proces wymagałby zagnieżdżonej logiki, iteracji po zmiennej innej niż a, co nie jest obecne w danym kodzie. Błędne odpowiedzi mogą wynikać z niepełnego zrozumienia jak działa pętla for lub jak przypisuje się wartości w operacjach iteracyjnych. Kluczową umiejętnością jest umiejętność odczytywania i interpretowania kodu w kontekście wykonywanych operacji, co wymaga doświadczenia w pracy z językiem programowania i jego strukturami kontrolnymi.

Pytanie 8

Polecenie serwera MySQL postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
sprawi, że użytkownikowi tKowal zostaną
A. odebrane uprawnienia usuwania i modyfikowania danych w tabeli pracownicy
B. przydzielone uprawnienia do wszelkiej zmiany struktury tabeli pracownicy
C. przydzielone uprawnienia do usuwania i aktualizowania danych w tabeli pracownicy
D. odebrane uprawnienia usuwania i dodawania rekordów w tabeli pracownicy
Polecenie REVOKE w systemie zarządzania bazą danych MySQL jest używane do odebrania przydzielonych wcześniej uprawnień użytkownikowi lub grupie użytkowników. W przypadku instrukcji REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost', użytkownik 'tKowal' traci prawa do usuwania (DELETE) oraz aktualizowania (UPDATE) danych w tabeli 'pracownicy'. Przykładowo, jeśli wcześniej użytkownik 'tKowal' miał możliwość usuwania rekordów pracowników i modyfikacji ich danych, po wykonaniu tej instrukcji te uprawnienia zostaną odebrane. Ważne jest, aby zrozumieć, że REVOKE nie wpływa na inne uprawnienia, które użytkownik mógł posiadać, a jego działanie jest ograniczone do wymienionych operacji w kontekście konkretnej tabeli. W MySQL istnieje także możliwość przydzielania uprawnień za pomocą komendy GRANT, co stanowi odwrotność do REVOKE. Dokumentacja MySQL szczegółowo opisuje te mechanizmy, a ich właściwe użycie jest istotne dla bezpieczeństwa i administracji bazami danych. Aby lepiej zrozumieć praktyczne zastosowanie tych komend, można zapoznać się z przykładami na oficjalnej stronie MySQL, które ilustrują, jak zarządzać uprawnieniami użytkowników w różnych scenariuszach.

Pytanie 9

Jakie z wymienionych par znaczników HTML działają w ten sam sposób na stronie internetowej, jeżeli żadne style CSS nie zostały określone?

A. <p> oraz <h2>
B. <b> oraz <strong>
C. <b> oraz <big>
D. <meta> oraz <title>
Odpowiedź <b> i <strong> jest poprawna, ponieważ oba znaczniki służą do podkreślania ważności tekstu, aczkolwiek ich semantyka różni się nieco. Znacznik <b> jest używany do pogrubienia tekstu bez dodatkowego znaczenia semantycznego, natomiast <strong> nie tylko pogrubia tekst, ale dodatkowo wskazuje, że dany fragment jest istotny w kontekście treści. To rozróżnienie jest ważne w kontekście dostępności i SEO, ponieważ wyszukiwarki oraz technologie asystujące mogą traktować tekst oznaczony jako <strong> jako bardziej znaczący. Przykładem zastosowania może być nagłówek artykułu, w którym ważne informacje są wyróżnione znacznikiem <strong>, a nie tylko wizualnie poprzez <b>. Standardy W3C promują stosowanie znaczników z odpowiednią semantyką, co wspiera lepszą strukturę dokumentu HTML oraz jego interpretację przez różne urządzenia. Dlatego zaleca się stosowanie <strong> tam, gdzie chcemy przekazać znaczenie, zamiast używać <b> bez głębszego sensu.

Pytanie 10

W bazie danych produkt znajdują się artykuły wyprodukowane po 2000 roku, zawierające pola nazwa oraz rok_produkcji. Klauzula SQL wyświetli zestawienie artykułów wyprodukowanych

SELECT * FROM `produkt` WHERE
SUBSTR(rok_produkcji, 3, 2) = 17;
A. w latach innych niż 2017
B. przed rokiem 2017
C. w roku 2017
D. po roku 2017
To zapytanie SQL, które rozkminiamy, korzysta z funkcji SUBSTR, żeby wyrwać kawałek roku z kolumny rok_produkcji i porównać go z 17. Jasno z tego wynika, że wyciągamy dwie ostatnie cyfry, co odpowiada rokowi 2017. Dlatego odpowiedzi mówiące o innych latach są mylące. Jeśli ktoś myśli, że filtrujemy coś przed 2017, to się myli, bo zapytanie dotyczy końcówki roku, a nie pełnego roku. Są też błędne założenia, że to zapytanie pokazuje lata inne niż 2017. Dlatego warto pamiętać, że SUBSTR jasno mówi, że wybieramy lata kończące się na 17. A jeśli ktoś myśli o latach po 2017, to też jest w błędzie, bo zapytanie nie bierze pod uwagę pełnych lat, a tylko końce. Często ludzie źle interpretują takie zapytania, bo nie uwzględniają funkcji tekstowych, które zmieniają sposób filtrowania danych. Zrozumienie tych niuansów w SQL jest ważne dla przetwarzania i analizy danych. Te błędy mogą się brać z braku dokładnej analizy i zrozumienia użytych funkcji, co zdarza się często nowym użytkownikom SQL. Dobrze jest po prostu testować zapytanie i robić przeglądy kodu w zespole, co wspiera lepsze zrozumienie i użycie zapytań w praktyce.

Pytanie 11

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
B. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
C. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
D. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 12

Aby przyspieszyć operacje na bazie danych należy dla pól często wyszukiwanych lub sortowanych

A. dodać więzy integralności.
B. dodać klucz obcy.
C. utworzyć indeks.
D. utworzyć osobną tabelę przechowującą tylko te pola.
W tym pytaniu chodzi o przyspieszenie operacji wyszukiwania i sortowania, czyli stricte o wydajność wykonywania zapytań SELECT. Bardzo łatwo jest tu pomylić pojęcia z projektowania relacyjnych baz danych i sięgnąć po rozwiązania, które są ważne, ale rozwiązują inne problemy niż wydajność zapytań. Klucz obcy jest mechanizmem służącym do utrzymania spójności między tabelami. Określa on, że wartość w jednej tabeli musi odpowiadać istniejącemu rekordowi w innej tabeli. To świetne narzędzie do pilnowania integralności referencyjnej, ale samo dodanie klucza obcego nie przyspiesza wyszukiwania po dowolnej kolumnie. Co prawda silniki baz danych często automatycznie tworzą indeks na kolumnie będącej kluczem głównym, a czasem również na kluczu obcym, ale sednem optymalizacji jest właśnie indeks, nie sam fakt istnienia klucza obcego. Kolejna sprawa to więzy integralności, czyli różnego rodzaju ograniczenia typu NOT NULL, UNIQUE, CHECK czy wspomniane klucze obce. One pomagają w utrzymaniu poprawności danych, zapobiegają wprowadzaniu bzdurnych rekordów, ale nie są mechanizmem projektowanym z myślą o przyspieszaniu sortowania czy filtrowania. Można powiedzieć, że dbają o jakość danych, a nie o szybkość ich wyszukiwania. Ostatnia koncepcja, czyli tworzenie osobnej tabeli zawierającej tylko często wyszukiwane pola, to typowy przykład nadmiernej normalizacji albo wręcz niewłaściwej denormalizacji. Taki zabieg zazwyczaj zwiększa złożoność systemu, utrudnia zapytania (potrzeba dodatkowych JOIN-ów) i wcale nie gwarantuje lepszej wydajności. Bez indeksów na odpowiednich kolumnach nowa tabela dalej będzie skanowana w całości. Typowy błąd myślowy polega tu na założeniu, że „mniej kolumn = szybsze zapytania”, co w praktyce nie jest prawdą, jeśli baza i tak musi przeszukać każdy wiersz. Standardowa, sprawdzona w branży metoda to dobrze zaprojektowane indeksy, a nie mnożenie tabel czy ślepe dokładanie więzów integralności w nadziei na przyspieszenie bazy.

Pytanie 13

Formatem grafiki wektorowej jest

A. JPG
B. GIF
C. PNG
D. SVG
Poprawnie – format SVG to grafika wektorowa. SVG (Scalable Vector Graphics) jest oparty na XML i opisuje obraz za pomocą figur geometrycznych: linii, krzywych, prostokątów, okręgów, wielokątów oraz tekstu. Dzięki temu obraz nie składa się z pikseli, tylko z równań matematycznych, więc można go dowolnie skalować bez utraty jakości – logo w SVG będzie równie ostre na wizytówce, jak i na ogromnym billboardzie czy ekranie 4K. To jest właśnie główna przewaga grafiki wektorowej nad rastrową. Moim zdaniem w świecie webowym SVG to dzisiaj standard dla ikon, logotypów, prostych ilustracji, wykresów czy schematów. Przeglądarki traktują SVG jako natywny format wspierany przez specyfikację W3C, można go osadzać bezpośrednio w kodzie HTML (inline) albo jako zewnętrzny plik. Co ważne, elementy SVG da się stylować za pomocą CSS i animować przy użyciu CSS lub JavaScript, co daje ogromne możliwości w interfejsach użytkownika i nowoczesnych stronach WWW. W praktyce dobrym podejściem jest używanie SVG wszędzie tam, gdzie grafika ma być skalowalna, lekka i ostra na różnych urządzeniach: responsywne ikony menu, grafiki w interfejsie aplikacji webowych, piktogramy, infografiki. Dodatkowo SVG często ma mniejszy rozmiar pliku niż odpowiednik PNG w wysokiej rozdzielczości, zwłaszcza gdy obraz składa się głównie z prostych kształtów. Z mojego doświadczenia to jeden z kluczowych formatów, które warto dobrze ogarnąć, jeśli myśli się poważnie o grafice komputerowej i front-endzie.

Pytanie 14

Funkcja pg_connect w języku PHP służy do nawiązania połączenia z bazą danych

A. MS ACCESS
B. MS SQL
C. PostgreSQL
D. mySQL
Polecenie pg_connect w języku PHP jest dedykowane do nawiązywania połączeń z bazami danych PostgreSQL, które są relacyjnymi bazami danych znanymi z dużej wydajności, elastyczności oraz wsparcia dla zaawansowanych funkcji, takich jak transakcje, procedury składowane czy różnorodne typy danych. Użycie pg_connect pozwala programistom na łatwe integrowanie aplikacji PHP z PostgreSQL, co jest kluczowe w przypadku aplikacji wymagających solidnego zarządzania danymi. Przykładowo, aby nawiązać połączenie z bazą danych, można użyć kodu: $conn = pg_connect("host=localhost dbname=mydb user=myuser password=mypassword");. Taki sposób połączenia umożliwia nie tylko dostęp do danych, ale też wykonanie zapytań SQL i zarządzanie wynikami. Dobrą praktyką jest zawsze zamykanie połączeń oraz obsługa potencjalnych błędów, co przyczynia się do stabilności aplikacji. Zgodnie z wytycznymi dotyczącymi bezpieczeństwa, szczególnie w kontekście aplikacji webowych, ważne jest również stosowanie technik zabezpieczeń, takich jak przygotowane zapytania, aby zapobiec atakom typu SQL injection.

Pytanie 15

Ile razy zostanie wykonana pętla w języku PHP, jeśli zmienna kontrolna pozostaje niezmienna podczas działania pętli?

for($i=0; $i<=10; $i++) {
        .......
}
A. 10
B. 11
C. 0
D. Nieskończoność
Pętla for w języku PHP, zapisana jako for($i=0; $i<=10; $i++), będzie miała 11 iteracji ponieważ warunek $i<=10 pozwala na wykonanie pętli aż do momentu gdy $i wynosi 10 włącznie. Pętla zaczyna się od wartości 0 dla zmiennej $i i zwiększa jej wartość o 1 w każdej iteracji. Ponieważ warunek końcowy dopuszcza wartość 10 pętla wykona się dla wartości 0 1 2 3 4 5 6 7 8 9 i 10 co daje łącznie 11 iteracji. Tego typu pętla jest często wykorzystywana do iteracyjnego przetwarzania elementów tablic czy generowania sekwencji liczb. Jest to zgodne ze standardowymi praktykami programistycznymi gdzie pętle for są używane do iteracji tam gdzie liczba kroków jest z góry znana. Znajomość podstawowych struktur iteracyjnych takich jak pętla for jest kluczowa w efektywnym programowaniu i umożliwia tworzenie czytelnego i efektywnego kodu. Ważne jest też aby odpowiednio definiować warunki początkowe i końcowe oraz krok iteracji zgodnie z zamierzonym działaniem algorytmu aby uniknąć nieskończonych pętli lub błędów logicznych wynikających z niewłaściwie ustawionych warunków.

Pytanie 16

Pierwszym etapem w konwersji sygnału analogowego na cyfrowy jest

A. próbkowanie
B. filtrowanie
C. kwantyzacja
D. kodowanie
Zaczynamy od próbkowania, czyli pierwszego kroku w zamianie sygnału analogowego na cyfrowy. To po prostu znaczy, że regularnie mierzysz wartości sygnału w określonych momentach. Dzięki temu przekształcamy ciągły sygnał w zbiór dyskretnych wartości, co potem pozwala na dalsze działanie w cyfrowych systemach. I pamiętaj, próbkowanie powinno być zgodne z zasadą Nyquista, która mówi, że częstotliwość próbkowania musi być przynajmniej dwa razy większa od najwyższej częstotliwości w sygnale. Dla audio standard to 44,1 kHz, co zapewnia, że dźwięk wiernie odzwierciedla rzeczywistość. W praktyce dobrze przeprowadzone próbkowanie jest mega ważne, bo zapewnia jakość sygnału i zapobiega aliasingowi, który może zepsuć dźwięk. Są też normy, tak jak AES67, które ustalają standardy dla próbkowania audio i wideo, żeby wszystko brzmiało równo w różnych systemach.

Pytanie 17

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. tr:hover { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:active { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 18

Dana jest tabela ksiazki z polami: tytul, autor, cena (typu liczbowego). Aby kwerenda SELECT wybrała tylko tytuły, dla których cena jest mniejsza od 50 zł, należy zapisać

A. SELECT * FROM ksiazki WHERE cena < 50;
B. SELECT tytul FROM ksiazki WHERE cena > '50 zł';
C. SELECT tytul FROM ksiazki WHERE cena < 50;
D. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
Prawidłowa odpowiedź wybiera dokładnie to, o co chodzi w treści zadania: tylko kolumnę tytul z tabeli ksiazki, ale tylko dla tych rekordów, gdzie cena jest mniejsza niż 50. Składnia SELECT tytul FROM ksiazki WHERE cena < 50; jest zgodna ze standardowym SQL i pokazuje dobrą praktykę – pobieramy tylko te dane, które są nam potrzebne, zamiast używać SELECT *. Dzięki temu zapytanie jest lżejsze, szybsze i czytelniejsze, co w większych projektach ma naprawdę duże znaczenie. Moim zdaniem warto zwrócić uwagę na kilka elementów. Po pierwsze, w klauzuli SELECT podajemy konkretne nazwy kolumn (tu: tytul), nie nazwę tabeli. Po drugie, w FROM podajemy dokładnie nazwę tabeli, z której korzystamy (ksiazki). Po trzecie, warunek WHERE cena < 50 poprawnie porównuje wartość liczbową, bo kolumna cena ma typ liczbowy, więc nie używamy tu cudzysłowów ani żadnych „zł” w środku. W praktyce podobny wzorzec stosuje się cały czas, np.: SELECT tytul, autor FROM ksiazki WHERE cena <= 30; żeby dostać tańsze książki, albo SELECT tytul FROM ksiazki WHERE cena BETWEEN 20 AND 40; gdy interesuje nas konkretny przedział. W profesjonalnych aplikacjach webowych taka precyzja w definiowaniu zapytań SQL jest podstawą: ułatwia optymalizację, indeksowanie kolumn (np. indeks na kolumnie cena przyspiesza filtrowanie w WHERE) i minimalizuje przesyłanie niepotrzebnych danych między bazą a aplikacją. Dobra praktyka jest też taka, żeby dostosowywać typy danych: skoro cena jest liczbą, to porównujemy ją z liczbą, bez jednostek, a formatowanie typu „50 zł” robimy później w warstwie prezentacji, np. w PHP, JavaScript albo w szablonach widoków.

Pytanie 19

Jaką wartość zwróci funkcja empty($a); w języku PHP, gdy zmienna $a będzie miała wartość 0?

A. 0
B. TRUE
C. FALSE
D. NULL
Funkcja empty($a) w języku PHP zwraca TRUE, gdy zmienna $a jest uznawana za pustą. Zgodnie z definicją, pustą wartość w PHP mają zmienne, które są równoważne FALSE, co obejmuje m.in. wartość 0, pusty string, NULL oraz pustą tablicę. W przypadku, gdy zmienna $a przyjmuje wartość liczbową równą 0, funkcja empty() zwróci TRUE, ponieważ 0 jest interpretowane jako wartość uznawana za pustą. To zachowanie jest zgodne z zasadami silnej typizacji w PHP, które pozwalają na dynamiczne sprawdzanie typów zmiennych. W praktyce, funkcję empty() można wykorzystać do walidacji danych wejściowych, na przykład w formularzach, gdzie istotne jest, aby użytkownik wprowadził wartość. Zamiast porównywać zmienną z różnymi pustymi wartościami, wywołanie empty() pozwala na bardziej zwięzły i czytelny kod. Warto również pamiętać, że empty() nie generuje ostrzeżeń w przypadku nieistniejącej zmiennej, co czyni ją bezpieczniejszym wyborem niż inne metody sprawdzania wartości.

Pytanie 20

Fragment kwerendy SQL zaprezentowany w ramce ma na celu uzyskanie

SELECT COUNT(wartosc) FROM ...
A. sumę wartości w kolumnie wartosc.
B. liczbę wierszy.
C. średnią wartość w kolumnie wartosc.
D. liczbę kolumn.
Instrukcja COUNT w kwerendzie SQL służy do zliczania liczby wierszy w tabeli, które spełniają określone kryteria. Wyrażenie SELECT COUNT(wartosc) FROM ... zlicza wiersze, które mają niepustą wartość w kolumnie wartosc. Funkcja COUNT jest jedną z funkcji agregujących w SQL, które pozwalają na wykonywanie operacji na zestawach danych. Zastosowanie tej funkcji jest szczególnie istotne w sytuacjach, gdy potrzebujemy szybko uzyskać informację o liczebności danych, co jest kluczowe w analizie danych oraz raportowaniu. Warto zauważyć, że COUNT(*) policzyłoby wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, natomiast COUNT(kolumna) ignoruje wiersze z wartościami NULL w podanej kolumnie. To rozróżnienie jest kluczowe w optymalizacji zapytań oraz w zapewnieniu dokładności wyników. W praktyce biznesowej, zliczanie wierszy może być wykorzystywane do śledzenia liczby zamówień, ilości produktów w magazynie oraz innych wskaźników operacyjnych, co sprawia, że funkcja COUNT jest podstawowym narzędziem każdego analityka danych.

Pytanie 21

W języku JavaScript zdefiniowano obiekt ```obiekt = { q: 1, w: 2, e: 3, r: 4 };``` W jaki sposób można uzyskać wartość właściwości ```w```?

A. obiekt::w
B. obiekt->w
C. obiekt:w
D. obiekt.w
Aby uzyskać dostęp do wartości własności obiektu w JavaScript, stosuje się notację kropkową. Odpowiedź obiekt.w jest poprawna, ponieważ w JavaScript, odwołując się do właściwości obiektu, używamy kropki jako separatora między nazwą obiektu a nazwą właściwości. W podanym przykładzie obiekt ma cztery właściwości: q, w, e oraz r, z których każda ma przypisaną wartość. Używając notacji obiekt.w, możemy bezpośrednio uzyskać wartość 2, która jest przypisana do właściwości w. W praktyce, notacja kropkowa jest powszechnie stosowana i jest preferowaną metodą dostępu do właściwości obiektów, ponieważ jest bardziej czytelna i łatwiejsza w użyciu. Alternatywnie, można również użyć notacji nawiasowej, jak obiekt['w'], co może być przydatne, gdy nazwa właściwości zawiera znaki niedozwolone w identyfikatorach, ale w większości przypadków notacja kropkowa jest bardziej ergonomiczna i zalecana zgodnie z dobrymi praktykami programowania.

Pytanie 22

Jakie polecenie przywróci do działania uszkodzoną tabelę w SQL?

A. REGENERATE TABLE tbl_name
B. OPTIMIZE TABLE tbl_name
C. REPAIR TABLE tblname
D. ANALYZE TABLE tbl_name
REPAIR TABLE tblname jest komendą w SQL, która jest używana do naprawy uszkodzonych tabel w bazach danych, szczególnie w systemach zarządzania bazami danych, takich jak MySQL. Gdy tabela ulegnie uszkodzeniu z powodu awarii systemu, błędów oprogramowania lub innych problemów, użycie tej komendy pozwala na przywrócenie jej do stanu używalności. Przykładem może być sytuacja, gdy po awarii serwera tabela przestaje być dostępna. Wówczas wystarczy uruchomić polecenie REPAIR TABLE, aby zdiagnozować i naprawić problemy. Warto pamiętać, że ta komenda nie tylko przywraca integralność danych, ale także może poprawić wydajność tabeli, usuwając fragmentację. Praktyka wskazuje, że regularne sprawdzanie i naprawa tabel, zwłaszcza po dużych operacjach zapisu, jest dobrym nawykiem w zarządzaniu bazami danych. Dobrą praktyką jest również tworzenie kopii zapasowych tabel przed ich naprawą, co zabezpiecza dane przed potencjalną utratą w wyniku błędów przy naprawie.

Pytanie 23

W przedstawionej regule CSS: h1 {color: blue} h1 symbolizuje

A. selektor
B. klasę
C. deklarację
D. wartość
W podanej regule CSS, h1 {color: blue}, h1 jest selektorem, który identyfikuje elementy HTML, na które ma być zastosowany styl. Selektory są kluczowym elementem w CSS, ponieważ pozwalają na precyzyjne określenie, do których elementów stosować dane style. W tym przypadku h1 wskazuje na wszystkie nagłówki pierwszego poziomu w dokumentach HTML. Używając selektora h1, możemy na przykład zmienić kolor wszystkich tytułów na niebieski, co jest istotne dla poprawy estetyki i czytelności strony. Dobrą praktyką jest stosowanie odpowiednich selektorów, aby unikać niepotrzebnej redundancji w kodzie, co przyczynia się do lepszej wydajności ładowania strony. Zrozumienie selektorów CSS jest niezbędne do efektywnego stylizowania stron internetowych i jest zgodne z najlepszymi standardami w branży, takimi jak W3C. Na przykład, możemy również używać selektorów klas lub identyfikatorów, aby stosować różne style do konkretnych elementów, co pozwala na większą elastyczność i kontrolę nad wyglądem strony.

Pytanie 24

Zadaniem poniższego kodu napisanego w języku C++ jest wypisanie dla podanych dowolnych liczb całkowitych różnych od zera:

int main()
{
    int liczba;
    cin >> liczba;

    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;

        cin >> liczba;
    }
    return 0;
}
A. liczby pierwsze
B. jedynie liczby parzyste
C. wyłącznie liczby nieparzyste
D. wszystkie liczby
Kod źródłowy w języku C++ analizuje dane wejściowe i wypisuje jedynie liczby parzyste, co wynika z zastosowania operacji modulo. Mylnym podejściem jest sądzenie, że program wypisze wszystkie liczby, ponieważ warunek w if ogranicza wyjście jedynie do liczb, które przy dzieleniu przez 2 dają resztę 0. To podejście jest często stosowane w sytuacjach, gdzie konieczne jest filtrowanie danych według określonych kategorycznych kryteriów, np. przy oddzielaniu danych na podstawie ich właściwości matematycznych. Zakładanie, że kod wypisze tylko liczby nieparzyste lub liczby pierwsze, jest błędne, ponieważ nie ma dodatkowych warunków weryfikujących te cechy. Liczby nieparzyste miałyby resztę z dzielenia przez 2 równą 1, co nie spełnia warunku if, natomiast liczby pierwsze wymagają bardziej złożonego algorytmu weryfikacji, który badałby podzielność przez wszystkie liczby mniejsze od pierwiastka kwadratowego z danej liczby. Często popełnianym błędem jest niedokładne przeanalizowanie struktury warunkowej i pętli, co prowadzi do błędnych wniosków dotyczących działania programu. Zrozumienie działania operatora modulo i jego zastosowania w kontekście logicznych warunków pozwala na poprawną interpretację funkcji programu i unikanie wspomnianych błędów myślowych.

Pytanie 25

W języku HTML, aby stworzyć pole do wprowadzania hasła, w którym wpisywany tekst będzie ukrywany (zastępowany kropkami), należy zastosować znacznik

A. <input type="password" />
B. <form input type="password" />
C. <form="password" type="password" />
D. <input name="password" />
Odpowiedź <input type="password" /> jest poprawna, ponieważ ten znacznik HTML służy do tworzenia pola edycyjnego, w którym wprowadzane dane są maskowane. W przypadku pól do wpisywania haseł, istotne jest, aby użytkownik nie mógł zobaczyć wpisywanego tekstu, co zwiększa poziom bezpieczeństwa. W HTML, atrybut 'type' z wartością 'password' instruuje przeglądarkę, aby ukrywała znaki wprowadzane przez użytkownika, zastępując je zazwyczaj kropkami lub gwiazdkami. Przykładem zastosowania tego typu znacznika może być formularz logowania, gdzie użytkownicy wpisują swoje hasła. Dobrą praktyką jest również zastosowanie odpowiednich etykiet i walidacji, aby zapewnić, że formularz jest użyteczny i zgodny z WCAG (Web Content Accessibility Guidelines). Warto pamiętać, że bezpieczeństwo haseł powinno być również wspierane przez odpowiednie zabezpieczenia po stronie serwera, w tym haszowanie haseł oraz ochrona przed atakami typu brute force.

Pytanie 26

<script>
  var imiona = ["Ala", "Ola", "Ela", ""];
  tymczasowa=imiona.length;
</script>
Przedstawiony kod JavaScript powoduje przypisanie do zmiennej tymczasowa wartości:
A. 4
B. 9
C. 1
D. 3
W tym fragmencie kodu tworzona jest tablica `imiona` z czterema elementami: "Ala", "Ola", "Ela" oraz pusty łańcuch znaków `""`. W JavaScript właściwość `.length` tablicy zwraca liczbę elementów w tablicy, a nie długość tekstu, ani sumę długości napisów. Niezależnie od tego, że ostatni element jest pustym stringiem, on nadal jest pełnoprawnym elementem tablicy. Dlatego `imiona.length` zwraca wartość 4, która następnie jest przypisywana do zmiennej `tymczasowa`. Moim zdaniem warto zapamiętać jedną prostą zasadę: dla obiektów typu Array w JavaScript `.length` oznacza ilość elementów, a dla stringów `.length` oznacza ilość znaków w napisie. To jest częste źródło pomyłek, szczególnie na początku nauki. Gdybyśmy napisali `"Ala".length`, wtedy dostalibyśmy 3, bo napis ma trzy znaki. Ale `imiona.length` patrzy tylko na to, ile pozycji ma tablica, więc wynik to 4. W praktyce `.length` jest bardzo często używane w pętlach, np. `for (var i = 0; i < imiona.length; i++) { ... }`, żeby przejść po wszystkich elementach tablicy. Dobrą praktyką jest też świadome operowanie na długości tablicy, bo w JavaScript można ją zmienić: ustawienie `imiona.length = 2` przytnie tablicę do dwóch elementów, a ustawienie większej wartości doda puste miejsca (tzw. `empty slots`). W nowoczesnym kodzie warto też pamiętać o metodach takich jak `forEach`, `map`, `filter`, które ukrywają bezpośrednią pracę z `.length`, ale nadal działają na tej samej koncepcji liczby elementów w tablicy. Z mojego doświadczenia dokładne rozumienie, co zwraca `.length` w różnych typach danych, bardzo ułatwia debugowanie i pisanie czytelnego kodu.

Pytanie 27

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. SUM
B. AVG
C. NUMBER
D. COUNT
Funkcja COUNT jest naprawdę ważna w SQL, bo pozwala nam zliczać rekordy w naszych zbiorach danych. Używa się jej w różnych sytuacjach, na przykład przy robieniu raportów czy analizie danych. Możesz na przykład napisać zapytanie: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'. Dzięki temu dowiesz się, ilu klientów jest z Polski. To bardzo przydaje się do analizy demograficznej czy oceniania rynku. Co też warto wiedzieć, COUNT działa na wszystkich rekordach, bez względu na to, co jest w kolumnach. Takie wszechstronne narzędzie z pewnością ułatwia pracę z danymi. A jeśli dodasz klauzulę GROUP BY do COUNT, to możesz zliczać rekordy w różnych kategoriach, co jest mega pomocne przy skomplikowanych raportach. Ogólnie rzecz biorąc, używanie funkcji agregujących jak COUNT to dobra praktyka w SQL, bo sprawia, że kod jest bardziej efektywny i czytelny.

Pytanie 28

Aby ułatwić dodawanie oraz modyfikowanie danych w tabeli, konieczne jest zdefiniowanie

A. formularza.
B. zapytania SELECT.
C. filtru.
D. sprawozdania.
Formularz jest istotnym narzędziem w bazach danych, które umożliwia użytkownikom łatwe wprowadzanie oraz edytowanie danych. Zapewnia on przejrzysty interfejs, który jest bardziej przyjazny dla użytkownika niż bezpośrednia interakcja z tabelą. Tworząc formularz, można dostosować pola do specyficznych danych, co pozwala na walidację wprowadzanych informacji oraz ich formatowanie, co czyni proces bardziej intuicyjnym. Na przykład, formularze mogą zawierać różne typy pól, takie jak pola tekstowe, rozwijane listy czy przyciski wyboru, co zwiększa elastyczność w wprowadzaniu danych. Ponadto, formularze mogą być powiązane z odpowiednimi tabelami w bazie danych, co umożliwia automatyczne przetwarzanie danych po ich wprowadzeniu. Dzięki zastosowaniu formularzy, organizacje mogą znacznie przyspieszyć proces zbierania danych oraz zminimalizować błędy, co jest szczególnie istotne w środowiskach wymagających dużej precyzji i efektywności. Programy takie jak Microsoft Access czy Google Forms oferują możliwości tworzenia formularzy, które są zgodne z najlepszymi praktykami w zakresie zbierania danych.

Pytanie 29

Jaki program jest wykorzystywany do edycji dźwięku?

A. Audacity
B. GIMP
C. Inkscape
D. CorelDRAW
Audacity to naprawdę fajny program do obróbki dźwięku, który jest używany przez wielu, zarówno hobbystów, jak i profesjonalistów. Jest to open-source, więc można go ściągnąć za darmo. Dzięki niemu możesz nagrywać dźwięki z mikrofonu lub z innych źródeł, co jest super przydatne. Możliwości edytowania ścieżek dźwiękowych są ogromne – masz różne efekty, jak kompresja, EQ czy reverb, które naprawdę mogą wzbogacić Twoje nagrania. Obsługuje też wiele formatów plików, jak WAV, MP3 czy OGG, co sprawia, że jest wszechstronny. Sam z niego korzystam do nagrywania podcastów i muszę przyznać, że dobrze się sprawdza. Ważne, żeby pamiętać, że Audacity jest popularne w branży, bo pozwala na solidną pracę z dźwiękiem, co jest kluczowe, jeśli planujesz coś profesjonalnego. Jest też duża społeczność użytkowników, więc program ciągle się rozwija i aktualizuje. To na pewno coś, czego warto spróbować!

Pytanie 30

Do jakich działań można wykorzystać program FileZilla?

A. walidacji strony internetowej.
B. debugowania skryptu na stronie.
C. publikacji strony internetowej.
D. kompilacji skryptu na stronie.
FileZilla jest popularnym klientem FTP (File Transfer Protocol), który służy do przesyłania plików między lokalnym komputerem a serwerem. Publikacja strony internetowej polega na przesyłaniu plików HTML, CSS, JavaScript i innych zasobów związanych z witryną na serwer, aby były one dostępne w Internecie. Używając FileZilla, użytkownik może łatwo połączyć się z serwerem poprzez protokół FTP, co pozwala na wygodne zarządzanie plikami, ich przesyłanie oraz organizowanie folderów na serwerze. Przykładowo, po edytowaniu strony lokalnie na komputerze, można za pomocą FileZilla przesłać zmodyfikowane pliki na serwer w kilka kliknięć, co przyspiesza proces aktualizacji witryny. Zgodnie z dobrymi praktykami branżowymi, ważne jest także ustawienie odpowiednich uprawnień do plików oraz regularne tworzenie kopii zapasowych, co zwiększa bezpieczeństwo publikowanych treści. FileZilla obsługuje również protokoły SFTP i FTPS, które zapewniają dodatkowe warstwy bezpieczeństwa podczas transferu danych, co jest istotne w kontekście ochrony danych użytkowników i integracji z różnymi usługami hostingowymi.

Pytanie 31

Projektant stworzył logo dla witryny internetowej. Jest to czarny symbol na przezroczystym tle. Aby zachować wszystkie cechy obrazu i umieścić go na stronie, projektant powinien zapisać plik w formacie

A. PNG
B. JPG
C. BMP
D. CDR
Format PNG to super wybór do przechowywania obrazów z przezroczystością, zwłaszcza jeśli chodzi o logo na stronach www. Wiesz, co jest fajne? To, że PNG obsługuje kanał alfa – dzięki temu można zapisać obrazki z przezroczystym tłem. To jest mega ważne, bo logo często muszą się dobrze prezentować na różnych kolorach, prawda? A jeśli chodzi o jakość, to PNG kompresuje obrazy bezstratnie, co znaczy, że nie tracimy detali i jakość pozostaje na wysokim poziomie, a plik nie jest za duży. Graficy często sięgają po PNG, gdy robią ikony czy różne grafiki internetowe, które muszą wyglądać dobrze. W branży web designu to naprawdę standard, żeby korzystać z PNG, bo jest elastyczny na różnych platformach i urządzeniach, więc nie ma co się dziwić, że fachowcy go lubią.

Pytanie 32

Zamieszczony kod w języku PHP

Ilustracja do pytania
A. określa tablicę z sześcioma wartościami
B. jest błędny, indeksami tablicy mogą być wyłącznie liczby całkowite
C. jest niepoprawny, nieznany operator =>
D. definiuje tablicę z trzema wartościami
Kod przedstawiony w pytaniu to przykład definiowania tablicy asocjacyjnej w języku PHP. Tablica asocjacyjna to struktura danych, która pozwala na przechowywanie wartości związanych z kluczami, które nie muszą być liczbami. W tym przypadku kluczami są łańcuchy znaków: 'imie', 'nazwisko' oraz 'wiek'. Każdy klucz ma przypisaną wartość: 'Anna', 'Nowak' oraz 21. Zatem tablica ta rzeczywiście zawiera trzy pary klucz-wartość. Operator '=>' jest używany w PHP do przypisywania wartości kluczom w tablicach asocjacyjnych. Jest to poprawna składnia i bardzo popularny sposób reprezentowania danych, zwłaszcza w kontekście baz danych i przetwarzania formularzy, gdzie każda wartość ma swoje unikalne znaczenie i klucz. W praktyce tablice asocjacyjne są używane do przechowywania danych, które nie mają charakteru sekwencyjnego, ale są raczej zestawem właściwości lub atrybutów obiektu. Stosowanie tablic asocjacyjnych z odpowiednimi kluczami wspiera czytelność kodu i ułatwia jego zarządzanie zwłaszcza w większych projektach gdzie zrozumienie struktury danych odgrywa kluczową rolę.

Pytanie 33

Jakim zapisem można w dokumencie HTML stworzyć element, który wyświetla obraz kotek.jpg oraz zawiera tekst alternatywny „obrazek kotka”?

A. <img src="/kotek.jpg" alt="obrazek kotka">
B. <img src="/kotek.jpg" title="obrazek kotka">
C. <img href="/kotek.jpg" alt="obrazek kotka">
D. <img href="/kotek.jpg" title="obrazek kotka">
Poprawna odpowiedź to <img src="/kotek.jpg" alt="obrazek kotka">, ponieważ stosuje właściwe atrybuty do wyświetlania obrazów w HTML. Atrybut 'src' wskazuje na źródło obrazu, a 'alt' zawiera tekst alternatywny, który jest ważny dla dostępności oraz SEO. Standardy WCAG (Web Content Accessibility Guidelines) podkreślają znaczenie atrybutu 'alt', który zapewnia kontekst dla użytkowników korzystających z czytników ekranu. Ponadto, zastosowanie tego zapisu jest zgodne z dobrymi praktykami, które zachęcają do dostarczania informacji o obrazie, gdy nie może on być wyświetlony. Przykładem zastosowania może być dodanie obrazów w artykułach blogowych, gdzie 'alt' opisuje zawartość obrazu, co poprawia ogólne wrażenie oraz dostępność treści. Prawidłowe użycie atrybutów jest kluczowe dla stworzenia semantycznego i dostępnego kodu HTML.

Pytanie 34

Aby wykonać usunięcie wszystkich zapisów z tabeli, konieczne jest użycie kwerendy

A. INSERT INTO
B. ALTER COLUMN
C. CREATE COLUMN
D. TRUNCATE TABLE
Odpowiedź 'TRUNCATE TABLE' jest poprawna, ponieważ ta kwerenda służy do usuwania wszystkich rekordów z tabeli w bazach danych SQL. W przeciwieństwie do kwerendy 'DELETE', która usuwa rekordy jeden po drugim i może być stosowana z warunkiem, 'TRUNCATE TABLE' działa na poziomie strony i usuwa wszystkie wiersze za jednym razem, co czyni ją znacznie bardziej wydajną, szczególnie w przypadku dużych zbiorów danych. Gdy wykonujemy 'TRUNCATE TABLE', wszystkie dane są usuwane, a struktura tabeli pozostaje nienaruszona, co oznacza, że możemy natychmiast dodawać nowe dane do tej samej tabeli. Ponadto, użycie 'TRUNCATE TABLE' resetuje wszelkie generatory tożsamości (IDENTITY) w tabeli. W praktyce ta metoda jest często wykorzystywana w scenariuszach, gdzie potrzebne jest szybkie zresetowanie danych w tabeli, na przykład w aplikacjach testowych lub podczas czyszczenia danych w hurtowniach danych. Warto pamiętać, że 'TRUNCATE' nie można zastosować, jeśli tabela jest powiązana z innymi tabelami przez klucze obce, co jest zgodne z zasadami integralności referencyjnej w bazach danych.

Pytanie 35

Wskaż zapis stylu CSS, który formatuje punktor listy numerowanej na wielkie cyfry rzymskie oraz listy punktowanej na kwadraty?

A. ol { list-style-type: square; } ul { list-style-type: upper-roman; }
B. ol { list-style-type: upper-roman; } ul { list-style-type: square; }
C. ol { list-style-type: upper-alpha; } ul { list-style-type: disc; }
D. ol { list-style-type: disc; } ul { list-style-type: upper-alpha; }
Odpowiedź jest poprawna, ponieważ styl CSS `ol { list-style-type: upper-roman; }` ustawia numerację dla listy uporządkowanej na wielkie cyfry rzymskie, co jest zgodne z wymaganiami. Użycie `ul { list-style-type: square; }` definiuje styl dla listy nieuporządkowanej, gdzie punkty są przedstawiane jako kwadraty. Stylizacja list w CSS jest kluczowa dla estetyki i czytelności dokumentu, a korzystanie z różnych typów markerów dla różnych rodzajów list potrafi znacząco poprawić organizację treści. Przykładem zastosowania może być dokumentacja techniczna, gdzie numery rzymskie używane są do oznaczania sekcji głównych, a kwadratowe punkty do podpunktów. Tego rodzaju stylizacja jest zgodna z dobrymi praktykami w projektowaniu stron internetowych, które wymaga dobrego zrozumienia CSS i jego właściwości. Ponadto, CSS pozwala na elastyczne dostosowywanie stylów, co jest istotne w kontekście responsywności i dostępności stron.

Pytanie 36

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
B. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
C. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
D. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
Analizując niepoprawne odpowiedzi, można zauważyć kilka powszechnych błędów, które prowadzą do mylnych wniosków. Przede wszystkim, użycie operatora '=' zamiast '==' jest fundamentalnym błędem w kontekście języka JavaScript. Operator '=' służy do przypisania wartości, podczas gdy '==' jest operatorem porównania, który sprawdza, czy dwie wartości są sobie równe. Zastosowanie '=' w warunkach logicznych prowadzi do nieprawidłowego działania warunków, ponieważ zamiast porównania wykonujemy przypisanie, co zazwyczaj skutkuje zawsze prawdziwym wynikiem. Ponadto, użycie operatora '&&' w przypadku kolorów w odpowiedzi, która stwierdza, że kolor jest jednocześnie 'niebieski' i 'zielony', jest logicznie niemożliwe, ponieważ jedna zmienna nie może przyjmować dwóch różnych wartości jednocześnie. Tego typu niepoprawne podejścia mogą prowadzić do niezamierzonych wyników w kodzie, co jest sprzeczne z podstawowymi zasadami programowania, takimi jak zasada jedności odpowiedzialności. Kluczowe jest również zrozumienie, że warunki powinny być jasno sformułowane, aby kod był zarówno funkcjonalny, jak i łatwy do zrozumienia dla innych programistów. Dobre praktyki programistyczne wskazują na konieczność stosowania dobrze zdefiniowanych i jednoznacznych warunków, co znacznie ułatwia dalszy rozwój i konserwację kodu.

Pytanie 37

Aby móc edytować nałożone na siebie poszczególne części obrazu, zachowując inne elementy w niezmienionej formie, należy użyć

A. kanału alfa
B. kadrowania
C. histogramu
D. warstwy
Aby efektywnie edytować nakładające się na siebie fragmenty obrazu, najlepiej jest zastosować warstwy. Warstwy w programach graficznych, takich jak Adobe Photoshop, pozwalają na niezależne manipulowanie różnymi elementami obrazu, co daje ogromne możliwości w zakresie edycji. Dzięki zastosowaniu warstw, możesz dodawać, modyfikować lub usuwać poszczególne fragmenty bez wpływu na inne elementy kompozycji. Na przykład, jeśli chcesz zmienić kolor tylko jednego obiektu na obrazie, wystarczy, że wybierzesz odpowiednią warstwę i zastosujesz na niej odpowiednie filtry lub narzędzia. Warstwy umożliwiają również korzystanie z kanałów alfa, co pozwala na precyzyjne zarządzanie przezroczystością i maskowaniem. W standardach edycji graficznej, użycie warstw stało się normą, ponieważ pozwala to na większą elastyczność i kontrolę nad finalnym efektem wizualnym. Przykładowo, w projektach skomplikowanych grafik, takich jak plakaty czy infografiki, korzystanie z warstw jest kluczowe dla zachowania porządku i efektywności pracy.

Pytanie 38

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

Ilustracja do pytania
A. Styl alternatywny, zewnętrzny
B. Styl wpisany, lokalny
C. Styl wewnętrzny
D. Styl zewnętrzny
Styl zewnętrzny to metoda dołączania arkusza stylów do dokumentu HTML poprzez linkowanie pliku CSS zewnętrznego w sekcji head dokumentu. Jest to najbardziej powszechna i zalecana metoda stylizacji dużych projektów ponieważ pozwala na oddzielenie logiki prezentacyjnej od struktury dokumentu HTML co ułatwia zarządzanie i ponowne wykorzystanie kodu. Tymczasem styl wewnętrzny umieszczany jest w sekcji head jako blok <style> i stosuje się go gdy chcemy zdefiniować style dla całego dokumentu bez tworzenia dodatkowego pliku CSS. Jest to rozwiązanie kompromisowe ale wciąż nie tak elastyczne jak style zewnętrzne. Styl alternatywny zewnętrzny to mechanizm dołączania alternatywnych arkuszy stylów umożliwiający użytkownikowi wybór różnych stylów podczas przeglądania strony jednak nie jest to to samo co styl wpisany lokalny. Błędne myślenie może polegać na utożsamianiu stylów wewnętrznych z wpisanymi ze względu na ich lokalny charakter lecz zasadniczo różnią się one zakresem działania i sposobem implementacji. Styl wpisany jako atrybut elementu HTML działa tylko na ten konkretny element zaś style wewnętrzne i zewnętrzne mogą wpływać na wiele elementów jednocześnie co daje większą kontrolę i spójność w projektowaniu strony. Zrozumienie tych różnic jest kluczowe dla tworzenia efektywnych i dobrze zarządzanych aplikacji webowych. Dążenie do modularności i ponownego użycia kodu jest jedną z fundamentalnych zasad dobrych praktyk w branży.

Pytanie 39

W języku PHP, po wykonaniu poniższego fragmentu kodu, w zmiennej o nazwie Nowy_Napis zostanie zapisany:

$Napis = "ZaWszE SpRaWdZ swoj KoD";
$Nowy_Napis = strtolower($Napis);
A. zAwSZe sPrAwDz SWOJ kOd
B. zawsze sprawdz swoj kod
C. ZaWszE
D. ZAWSZE SPRAWDZ SWOJ KOD
Odpowiedź 'zawsze sprawdz swoj kod' jest poprawna, ponieważ funkcja strtolower() w PHP konwertuje wszystkie znaki w łańcuchu na małe litery. W przypadku podanego kodu, zmienna $Napis zawiera tekst 'ZaWszE SpRaWdZ swoj KoD', który po zastosowaniu funkcji strtolower() przekształca się na 'zawsze sprawdz swoj kod'. Praktyczne zastosowanie tej funkcji jest bardzo istotne w kontekście normalizacji danych wejściowych, szczególnie w aplikacjach internetowych, gdzie wielkość liter może wpływać na sposób przechowywania, wyszukiwania lub porównywania tekstów. Warto również podkreślić, że w przypadku korzystania z baz danych, stosowanie jednolitej konwencji zapisu (np. zawsze małe litery) może zminimalizować ryzyko błędów i niejednoznaczności. Dobrymi praktykami jest także walidacja danych użytkowników oraz przygotowywanie ich do dalszego przetwarzania, co sprzyja lepszej organizacji kodu i efektywności aplikacji.

Pytanie 40

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. adres serwera bazy danych
B. hasło dla użytkownika
C. nazwa użytkownika
D. nazwa bazy danych
Odpowiedź 'nazwa użytkownika' jest na pewno właściwa, bo w konstruktorze klasy mysqli w PHP musimy podać nazwę użytkownika jako drugi argument. To ważne, bo bez tych danych, czyli nazwy użytkownika i hasła, nie da się połączyć z bazą danych. Używanie mysqli to dobra praktyka, zwłaszcza jeśli chodzi o bezpieczeństwo przed atakami SQL injection. Jak chcemy się połączyć, to zapisujemy to tak: $a = new mysqli('localhost', 'nazwa_użytkownika', 'hasło', 'nazwa_bazy'). Dzięki temu możemy na przykład ściągnąć dane z tabeli 'użytkownicy'. Warto też pamiętać o walidacji danych wejściowych i korzystaniu z przygotowanych zapytań, bo to naprawdę podnosi poziom bezpieczeństwa naszej aplikacji. I nie zapominaj, żeby zamknąć połączenie po zakończonej pracy, używając metody close().