Przejdź do głównej treści
  1. Strona główna
  2. Wyniki egzaminu

Wyniki egzaminu

Nowy egzamin

Informacje o egzaminie

  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Rozpoczęcie: 7 czerwca 2026 22:09
  • Zakończenie: 7 czerwca 2026 22:32

Egzamin zdany!

Wynik: 29/40 punktów (72,5%)

Wymagane minimum: 20 punktów (50%)

Twój wynik na tle innych

Twój wynik jest lepszy niż 59% podejść do kwalifikacji INF.03.

Porównanie z 39501 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).

Zachowaj ten wynik na koncie

Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.

Analiza przebiegu egzaminu - sprawdź jak rozwiązywałeś pytania Przebieg egzaminu

Analiza przebiegu egzaminu

Odtwarzaj przebieg egzaminu krok po kroku i ucz się na własnych błędach - kolejność rozwiązywania, czas nad każdym pytaniem, momenty zmiany odpowiedzi.

  • Suwak czasu - przeglądaj pytania w kolejności rozwiązywania.
  • Tryb nauki - poprawne odpowiedzi i wyjaśnienia.
  • Analiza czasu - ile czasu nad każdym pytaniem.
  • Monitoring focusu - momenty opuszczenia zakładki.

Pochwal się swoim wynikiem!

Szczegółowe wyniki

Pytanie 1

Jak wygląda poprawny zapis znaczników, który jest zgodny z normami języka XHTML i odpowiada za łamanie linii?

A. </br/>
B. </ br>
C. <br/>
D. <br/>
Zapis znacznika </ br> jest niepoprawny, ponieważ nie można w ten sposób zamknąć znacznika, który nie ma zawartości. W XHTML wszystkie tagi muszą być poprawnie sformatowane, a takie umieszczenie spacji w znaczniku zamknięcia oraz użycie nieodpowiedniego formatu są całkowicie niezgodne z wymaganiami standardów. Kolejną niepoprawną koncepcją jest użycie </br/> - chociaż syntaktyczna forma jest bliska poprawnej, znaczniki otwierające i zamykające muszą mieć odpowiednie konteksty. W przypadku znaczników samozamykających się, takich jak <br/>, nie ma potrzeby umieszczania pary znaczników, ponieważ ich funkcjonalność polega na wstawieniu łamania linii, a nie na wytwarzaniu dodatkowego bloku. Ostatnią z wymienionych odpowiedzi, <br>, również nie jest zgodna z odpowiednim formatowaniem XHTML, ponieważ brakuje ukośnika, co czyni go niepoprawnym w kontekście stricte przestrzegania standardu. Podstawowym błędem w myśleniu, który prowadzi do tych niepoprawnych wniosków, jest niewłaściwe zrozumienie zasady samozamykania znaczników oraz ich roli w strukturze dokumentu HTML. Ignorowanie zasadności i standardów tworzenia HTML prowadzi do wielu problemów z interpretacją kodu przez różne środowiska oraz przeglądarki, co wpływa na ostateczną jakość i dostępność stron internetowych.

Pytanie 2

Jakie formaty wideo są obsługiwane przez standard HTML5?

A. Ogg, AVI, MPEG
B. MP4, Ogg, WebM
C. Ogg, QuickTime
D. MP4, AVI
Wybór odpowiedzi MP4, AVI, Ogg czy Ogg, AVI, MPEG jest błędny z kilku powodów. Format AVI, mimo swojej popularności, nie jest obsługiwany w standardzie HTML5. AVI to stary format, który nie jest zoptymalizowany do użytku w sieci, co prowadzi do problemów z kompatybilnością i wydajnością. Z kolei QuickTime, chociaż używany w niektórych aplikacjach, nie jest standardowo wspierany przez HTML5, co ogranicza jego zastosowanie w nowoczesnych stronach internetowych. W przypadku formatu MPEG, choć jest on dość powszechnie stosowany, to nie jest preferowany w kontekście HTML5, a jego wsparcie jest ograniczone w porównaniu do MP4, Ogg i WebM. Warto zaznaczyć, że najnowsze przeglądarki internetowe szybko przechodzą na otwarte standardy, co sprawia, że formaty, które opierają się na patencie, stają się mniej popularne. W związku z tym, korzystanie z formatów takich jak MP4, Ogg czy WebM nie tylko zapewnia lepszą jakość i wydajność, ale również zwiększa dostępność treści w sieci. Wybór niewłaściwych formatów może prowadzić do problemów z odtwarzaniem na różnych platformach, co negatywnie wpływa na doświadczenia użytkowników oraz zasięg treści. W efekcie, aby zachować optymalne standardy w tworzeniu stron internetowych, kluczowe jest stosowanie formatów zgodnych ze specyfikacją HTML5.

Pytanie 3

W tabeli produkt znajdują się przedmioty wyprodukowane po roku 2000, z kolumnami nazwa i rok_produkcji. Klauzula SQL pokaże listę przedmiotów wyprodukowanych

SELECT * FROM `produkt` WHERE SUBSTR(rok_produkcji,3,2)=17;
A. przed rokiem 2017
B. po roku 2017
C. w latach innych niż 2017
D. w roku 2017
Wybór odpowiedzi "w roku 2017" jest prawidłowy, ponieważ zapytanie SQL stosuje funkcję SUBSTR do wydobycia części roku produkcji. Funkcja ta zaczyna od trzeciego znaku w łańcuchu reprezentującym rok produkcji i zwraca dwa znaki, co w przypadku roku 2017 daje nam '17'. W związku z tym zapytanie wyświetli jedynie te przedmioty, których rok produkcji kończy się na '17', co obejmuje rok 2017. Zastosowanie funkcji SUBSTR jest częstą praktyką w SQL, gdy chcemy analizować lub filtrować dane tekstowe według określonych wzorców. Na przykład, w przypadku bazy danych produktów, możemy wykorzystać tę metodę do kategoryzowania towarów według roczników lub do analizy sprzedaży w danym roku. Dobrą praktyką jest także zapewnienie, że dane w kolumnie rok_produkcji są przechowywane w jednolitym formacie, co ułatwia ich przetwarzanie i analizę.

Pytanie 4

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. napisowi "CZWARTEK"
B. napisowi 'CZWARTEK'
C. liczbie 4
D. liczbie 1
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 5

Od czego zależy WYSOKOŚĆ dźwięku?

A. od sposobu pobudzenia drgań
B. od częstotliwości drgań fali akustycznej
C. od czasu trwania drgań
D. od siły wzbudzenia drgań
Wysokość dźwięku zależy od CZĘSTOTLIWOŚCI drgań fali akustycznej - im wyższa częstotliwość (więcej drgań na sekundę, mierzona w Hz), tym dźwięk wyższy. Dlatego o wysokości decyduje częstotliwość drgań.

Pytanie 6

W dokumencie HTML zdefiniowano listę oraz dodano do niej formatowanie CSS. Który z efektów odpowiada tej definicji?

<ul>
  <li>Foksterier
  <li>Bokser
  <li>Baset
</ul>
li::after {
  content: " - Pies";
  background-color: teal;
  color: white;
}
Efekt 1
  • Foksterier
  • Bokser
  • Baset
Efekt 2
  • Foksterier
  • Bokser
  • Baset
Efekt 3
  • Foksterier
  • Bokser
  • Baset
Efekt 4
  • Foksterier
  • Bokser
  • Baset
A. Efekt 4.
B. Efekt 3.
C. Efekt 1.
D. Efekt 2.
Gratulacje, wybrałeś poprawną odpowiedź, która jest 'Efekt 4'. W tym przypadku, dokument HTML został odpowiednio sformatowany za pomocą kodu CSS. Widzimy, że pseudoelement ::after został użyty do dodania tekstu '- Pies' za każdym elementem listy. Jest to często stosowana technika w CSS do dodawania dekoracji lub dodatkowych informacji do elementów na stronie. Dodatkowo, widzimy, że styl CSS definiuje kolor tła jako 'teal' i kolor tekstu jako 'white'. Jest to zgodne z zasadami dobrego projektowania stron internetowych, które sugerują, że kontrast między kolorem tekstu a tłem powinien być wystarczający, aby tekst był łatwo czytelny. Również dobrym podejściem jest utrzymanie spójności kolorów na stronie internetowej, co poprawia jej estetykę i profesjonalizm. W praktyce, umiejętność manipulacji elementami HTML za pomocą CSS jest kluczowa dla każdego front-end developera.

Pytanie 7

W języku PHP komentarz w jednej linii zaczyna się od znaków

A. $ lub #
B. <! lub <?
C. // lub #
D. /* lub //
Jak popatrzysz na inne odpowiedzi, to zauważysz kilka rzeczy, które są błędne. Ta odpowiedź, gdzie mówi się, że komentarz jednoliniowy w PHP zaczyna się od $ lub #, jest pomyłką, bo $ oznacza zmienne, a nie komentarze. Używanie # jako jedynego sposobu na komentarze jednoliniowe też jest ograniczone, bo nie jest powszechnie akceptowany na serwerach, gdzie raczej korzysta się z //. Inna błędna odpowiedź sugeruje użycie znaków /* lub //, ale /* to zaczęcie komentarza wieloliniowego, co nie pasuje do komentarzy jednoliniowych. Komentarze wieloliniowe, zaczynające się od /* i kończące na */, przydają się do większych fragmentów, ale nie dotyczą ogólnie tego, co jest w pytaniu. Użycie <! lub <? to też błąd, bo te znaki służą do definiowania nagłówków HTML lub otwierania skryptów PHP. Takie nieporozumienia w komentarzach mogą prowadzić do bałaganu w kodzie, co z kolei negatywnie wpływa na jego jakość i współpracę w zespole. Na koniec, dobre użycie komentarzy w PHP to kluczowa sprawa, bo pomaga w utrzymaniu przejrzystości i zrozumiałości kodu.

Pytanie 8

Naciśnięcie przycisku o nazwie "niebieski" spowoduje uruchomienie podanego kodu JavaScript. Jaki będzie rezultat jego działania?

Ilustracja do pytania
A. Zmiana koloru tekstu "Przykładowy tekst" na niebieski
B. Zmiana koloru tekstu "i skrypt" na niebieski
C. Zmiana koloru tekstu "Przykładowy tekst i skrypt" na niebieski
D. Zmiana koloru przycisku na niebieski
Kod JavaScript przedstawiony w pytaniu korzysta z funkcji changeColor, która zmienia kolor tekstu elementu HTML. Funkcja ta przyjmuje parametr newColor, który w tym przypadku wynosi 'blue'. W momencie kliknięcia przycisku z atrybutem onClick, funkcja changeColor jest wywoływana z argumentem 'blue'. Kod wewnątrz funkcji używa metody document.getElementById aby uzyskać dostęp do elementu HTML o identyfikatorze 'para1'. Następnie zmienia kolor tekstu tego elementu, korzystając z właściwości style.color, na wartość przekazaną jako parametr, czyli 'blue'. Takie podejście jest zgodne z dobrymi praktykami w JavaScript, gdzie oddziela się logikę skryptu od treści HTML. W efekcie, po kliknięciu przycisku, zmieniony zostanie kolor tekstu zawartego w elemencie o id 'para1', co w tym przypadku odnosi się do tekstu 'Przykładowy tekst'. Takie rozwiązania są powszechnie stosowane w dynamicznych aplikacjach webowych, umożliwiając dynamiczną interakcję użytkownika z zawartością strony.

Pytanie 9

Określ właściwą sekwencję stylów CSS, biorąc pod uwagę ich priorytet w formatowaniu elementów strony WWW?

A. Rozciąganie stylu, Styl zewnętrzny, Styl lokalny
B. Styl wewnętrzny, Styl zewnętrzny, Rozciąganie stylu
C. Styl lokalny, Styl wewnętrzny, Styl zewnętrzny
D. Styl zewnętrzny, Wydzielone bloki, Styl lokalny
Wskazana odpowiedź, czyli Lokalny, Wewnętrzny, Zewnętrzny, jest zgodna z zasadami kaskadowego stylu arkuszy CSS. Istotą kaskadowości jest to, że style są stosowane według określonej hierarchii. Style lokalne (wbudowane) mają najwyższy priorytet, co oznacza, że jeśli na danym elemencie zastosowano styl lokalny, to zdominuje on wszelkie inne style. Przykład użycia stylu lokalnego to nadanie koloru tła dla konkretnego przycisku poprzez atrybut 'style': <button style='background-color: red;'>Przycisk</button>. W przypadku, gdy nie ma stylu lokalnego, przetwarzany jest styl wewnętrzny, który można zdefiniować w sekcji <style> w nagłówku dokumentu HTML. Na przykład: <style>p { color: blue; }</style> sprawi, że wszystkie akapity będą miały niebieski kolor. Dopiero na końcu brane są pod uwagę style zewnętrzne, które są definiowane w osobnych plikach CSS, na przykład: <link rel='stylesheet' href='style.css'>. Dlatego znajomość tej hierarchii jest kluczowa dla skutecznego tworzenia stylów, co przekłada się na lepsze zarządzanie wyglądem strony oraz unikanie konfliktów stylów. Warto również pamiętać o zasadzie „specyficzności”, która dodatkowo komplikuje temat, ponieważ style mogą mieć różny priorytet w zależności od ich specyfikacji.

Pytanie 10

Które imiona spełniają warunek

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
?
A. Krzysztof, Krystyna, Romuald
B. Gerald, Jarosław, Marek, Tamara
C. Arieta, Krzysztof, Krystyna, Tristan
D. Rafał, Rebeka, Renata, Roksana
Wzorzec '_r%' oznacza: jeden dowolny znak (_), potem litera „r”, potem dowolny ciąg (%) - czyli DRUGĄ literą imienia musi być „r”. Pasują np. Arieta, Krzysztof, Krystyna, Tristan. Dlatego to ten zestaw.

Pytanie 11

W języku HTML, atrybut shape w znaczniku area, który definiuje typ obszaru, może mieć wartość

A. rect, sąuare, circle
B. style="margin-bottom: 0cm;">rect, triangle, circle
C. style="margin-bottom: 0cm;">poły, square, circle
D. rect, poły, circle
W przypadku odpowiedzi, które nie są poprawne, należy zwrócić uwagę na kilka kluczowych aspektów. Po pierwsze, wartości 'triangle' oraz 'square' nie są uznawane w atrybucie shape znacznika area w HTML. Zamiast tego, 'triangle' nie ma odpowiedniego wsparcia w standardach, a więc nie może być używane do definiowania obszarów na mapach obrazów. Również 'square', chociaż może przypominać prostokąt, nie ma odrębnej definicji i nie jest akceptowany w specyfikacji. Mapa obrazów ogranicza się do określonych kształtów, takich jak 'rect', 'circle' oraz 'poly', co czyni te odpowiedzi niepoprawnymi. Dodatkowo, wspomnienie o 'sąuare' wskazuje na literówkę, co również podważa poprawność tej opcji. Termin 'poły' nie tylko nie istnieje w kontekście atrybutu shape, ale także nie odnosi się do żadnego znanego kształtu w HTML. Zrozumienie właściwych terminów oraz ich zastosowania w HTML jest kluczowe dla tworzenia funkcjonalnych stron internetowych, a każda niepoprawna odpowiedź może prowadzić do mylących implementacji.

Pytanie 12

Który operator w języku SQL zwraca resztę z dzielenia (modulo)?

A.
||
B.
/
C.
%
D.
&
Operator % w SQL (m.in. w MySQL) oblicza resztę z dzielenia całkowitego - modulo. Na przykład SELECT 7 % 3 zwróci 1, bo 7 podzielone przez 3 daje 2 i resztę 1. Bywa wykorzystywany np. do sprawdzenia parzystości (liczba % 2 = 0) czy cykliczności. W niektórych systemach dostępna jest też funkcja MOD(a, b). Dlatego resztę z dzielenia zwraca operator %.

Pytanie 13

Którą funkcją PHP zamienić "ala ma psa" na "ALA MA PSA"?

A.
ucfirst("ala ma psa");
B.
strstr("ala ma psa");
C.
strtoupper("ala ma psa");
D.
strtolower("ala ma psa");
Aby zamienić wszystkie litery napisu na WIELKIE, używa się strtoupper(), więc strtoupper("ala ma psa") zwróci „ALA MA PSA”. Funkcja przetwarza cały ciąg, a nie tylko pierwszą literę. Dlatego poprawna jest strtoupper().

Pytanie 14

W języku JavaScript, aby zmodyfikować wartość atrybutu znacznika HTML, po uzyskaniu obiektu przez metodę getElementById, należy zastosować

A. metody setAttribute
B. pola innerHTML
C. pola attribute i podać nazwę atrybutu
D. metody getAttribute
Wybór metody setAttribute do zmiany wartości atrybutu znacznika HTML jest najbardziej odpowiedni, ponieważ ta metoda pozwala na bezpośrednie modyfikowanie atrybutów elementów DOM. Metoda setAttribute przyjmuje dwa argumenty: nazwę atrybutu, który chcemy zmienić, oraz nową wartość, którą chcemy przypisać. Na przykład, jeśli mamy znaczniki HTML takie jak <input type='text' id='myInput'>, możemy użyć JavaScriptu: document.getElementById('myInput').setAttribute('value', 'Nowa wartość');, co ustawi nową wartość w polu tekstowym. Korzystanie z setAttribute jest zgodne z dobrymi praktykami programowania, ponieważ pozwala na elastyczne zarządzanie atrybutami różnych elementów bez konieczności bezpośredniego manipulowania ich właściwościami. To podejście zwiększa czytelność i utrzymywalność kodu, a także przyczynia się do lepszej separacji logiki aplikacji od struktury HTML. Ponadto, setAttribute jest standardową metodą, która działa na wszystkich nowoczesnych przeglądarkach, co zapewnia szeroką kompatybilność.

Pytanie 15

W pliku CSS znajdują się poniższe style. Kiedy klikniemy na hiperłącze i wrócimy na stronę, jego kolor zmieni się na

a { color: Brown; }
a:link { color: Green; }
a:visited { color: Red; }
a:hover { color: Yellow; }
A. brązowy
B. zielony
C. czerwony
D. żółty
W stylach CSS dla hiperłączy istnieją różne pseudoklasy które określają ich wygląd w zależności od stanu. W tym przypadku kolor czerwony przypisany jest do pseudoklasy a:visited co oznacza że po odwiedzeniu i późniejszym powrocie na stronę hiperłącze przyjmie kolor czerwony. Pseudoklasa a:visited jest używana aby oznaczyć linki które użytkownik już odwiedził co jest przydatne w nawigacji i pozwala użytkownikom zidentyfikować które strony już odwiedzili. Dobre praktyki w projektowaniu stron internetowych zalecają użycie wyraźnych i kontrastujących kolorów aby użytkownicy mogli łatwo rozpoznać odwiedzone linki co poprawia doświadczenie użytkownika. Warto pamiętać że przeglądarki mają różne poziomy wsparcia dla pseudoklasy a:visited w kontekście stylizacji innych właściwości niż kolor co wynika z wymogów prywatności. Dlatego w standardowych przypadkach kolorowe oznaczenie linków przynosi pożądany efekt zapewniając zgodność z wytycznymi WCAG dotyczącymi dostępności stron internetowych. Bardzo ważne jest aby projektując strony internetowe dbać o klarowność i intuicyjność nawigacji co zwiększa satysfakcję z użytkowania serwisu.

Pytanie 16

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

Pytanie 17

Jakie parametry powinny być ustawione w funkcji biblioteki mysqli, aby umożliwić połączenie z serwerem oraz bazą danych?

mysqli_connect($a, $b, $c, $d) or die('Brak połączenia z serwerem MySQL.');
A. adres serwera - $a, nazwa bazy danych - $b, login - $c, hasło - $d
B. adres serwera - $c, nazwa bazy danych - $d, login - $a, hasło - $b
C. adres serwera - $a, nazwa bazy danych - $d, login - $b, hasło - $c
D. adres serwera - $c, nazwa bazy danych - $d, login - $b, hasło - $a
W przypadku niepoprawnych odpowiedzi można zauważyć typowe błędy związane z zrozumieniem argumentów funkcji mysqli_connect. Wiele osób myli kolejność zmiennych oraz ich znaczenie. Na przykład, podanie adresu serwera jako $c lub $d jest błędne, ponieważ pierwszy argument zawsze powinien wskazywać na adres serwera. Warto również zwrócić uwagę na znaczenie loginu i hasła – nie można ich zamieniać miejscami, ponieważ każdy z tych parametrów pełni inną funkcję w kontekście autoryzacji do bazy danych. W ramach dobrych praktyk programistycznych, istotne jest także stosowanie raz jeszcze uwierzytelnienia użytkownika, co pozwala uniknąć nieautoryzowanego dostępu do danych. Przykłady niepoprawnych odpowiedzi pokazują też, że błędne przypisanie nazw bazy danych do zmiennych może prowadzić do błędów w aplikacji, co w efekcie utrudnia jej działanie oraz zwiększa ryzyko wycieków danych. Kluczowe jest zrozumienie, że każdy parametr pełni specyficzną rolę w tworzeniu połączenia. Niezrozumienie tego kontekstu może prowadzić do trudności w dalszym programowaniu oraz w diagnostyce problemów z bazą danych.

Pytanie 18

Zademonstrowano fragment kodu JavaScript. Po jego uruchomieniu zmienna str2 otrzyma wartość.

var str1 = "JavaScript";
var str2 = str1.substring(2, 6);
A. vaScri
B. vaSc
C. avaS
D. avaScr
Pierwsza z niepoprawnych odpowiedzi 'avaS' sugeruje, że odczytujemy znaki zaczynając od drugiego indeksu, jednak końcowy indeks 6 zmienia sposób odczytu. Możliwe, że ktoś mógł pomylić kolejność lub sposób, w jaki substring działa, co jest częstym błędem w zrozumieniu tej metody. Druga odpowiedź 'vaScri' wydaje się sugerować, że ktoś zrozumiał, jak działa substring, ale błędnie wyznaczył końcowy indeks, co prowadzi do wyodrębnienia znacznie większej ilości znaków. W rzeczywistości, aby uzyskać 'vaScri', należałoby użyć indeksów 2 i 8, co również jest nieprawidłowe. Ostatnia niepoprawna odpowiedź 'avaScr' wskazuje na błędne wyznaczenie pierwszego znaku. Użytkownik mógł pomylić interpretację indeksu zaczynając od 0, co w JavaScript jest istotne. W kontekście całego łańcucha, odpowiedzi te pokazują, jak ważne jest zrozumienie indeksowania i prawidłowego użycia metod do manipulacji tekstem, aby unikać błędów w kodzie. Rozwój umiejętności w pracy z łańcuchami tekstowymi jest kluczowy dla efektywnego programowania w JavaScript.

Pytanie 19

W którym z poniższych przykładów walidacja fragmentu kodu CSS zakończy się sukcesem?

A. <p style="font-size:bold;">
B. <p style="font-style:bold;">
C. p { text-size:bold; }
D. p { font-weight:bold; }
Odpowiedź p { font-weight:bold; } jest poprawna, ponieważ jest zgodna z obowiązującą składnią CSS. W tym przypadku użyto selektora typu, który odnosi się do wszystkich elementów <p> w dokumencie HTML, a właściwość font-weight umożliwia ustawienie grubości czcionki. Wartością 'bold' informujemy przeglądarkę, aby wyświetliła tekst w pogrubionej formie, co jest częstą praktyką w stylizacji tekstu. Stosowanie selektorów typu w CSS pozwala na efektywne zarządzanie stylami w całym dokumencie, zatem jest to zgodne z najlepszymi praktykami projektowania stron internetowych. Przykładowo, w celu nadania pogrubienia wszystkim nagłówkom w dokumencie, można by użyć: h1, h2, h3 { font-weight: bold; }. Zastosowanie takiej reguły pozwala na łatwe i szybkie wprowadzenie zmian w stylu dokumentu, co jest kluczowe w kontekście responsywnego projektowania i modernizacji stron. Dobre praktyki wskazują, aby unikać inline styles (stylów wewnętrznych) na rzecz zewnętrznych arkuszy stylów, co poprawia przejrzystość i utrzymanie kodu.

Pytanie 20

Wynikiem działania poniższej pętli for w przedstawionym kodzie PHP jest wyświetlenie liczb:

<?php
   for($i=5;$i>1;$i-=2)
       echo ($i%2)." ";
?>
A. 1 1
B. 1 0
C. 1 0 1 0
D. 1 0 1
Poprawna odpowiedź to 1 1, ponieważ analizując przedstawioną pętlę for, zaczynamy od zmiennej $i, która ma wartość 5. Pętla będzie działać tak długo, jak wartość $i jest większa od 1. W każdym kroku $i jest zmniejszane o 2, co oznacza, że w kolejnych iteracjach przyjmuje wartości 5, 3, a następnie 1. Wartości te są poddawane operacji modulo 2. Operacja modulo zwraca resztę z dzielenia, która dla liczb nieparzystych (5 i 3) wynosi 1 oraz dla liczby parzystej (0) wynosi 0. Zatem, w pierwszej iteracji, $i = 5, 5 % 2 = 1, a w drugiej iteracji, $i = 3, 3 % 2 = 1. Ostatecznie, pętla nie wykonuje się, gdy $i = 1, ponieważ warunek $i > 1 nie jest już spełniony. W rezultacie, poprawnym wynikiem działania tego fragmentu kodu jest wyświetlenie dwóch wartości 1. Przykład zastosowania takiej konstrukcji można znaleźć w sytuacjach, w których chcemy przetworzyć kolekcję liczb i wyodrębnić ich parzystość lub nieparzystość, co jest powszechną operacją w programowaniu.

Pytanie 21

Jakiej funkcji w języku PHP należy użyć, aby nawiązać połączenie z bazą danych pod nazwą zwierzaki?

A. $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki')
B. $polacz = sql_connect('localhost', 'root', '', 'zwierzaki')
C. $polacz = db_connect('localhost', 'root', '', 'zwierzaki')
D. $polacz = server_connect('localhost', 'root', '', 'zwierzaki')
Odpowiedź $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki'); jest poprawna, ponieważ wykorzystuje funkcję mysqli_connect, która jest dedykowana do nawiązywania połączeń z bazami danych MySQL w języku PHP. Funkcja ta przyjmuje cztery argumenty: adres serwera (w tym przypadku 'localhost'), nazwę użytkownika ('root'), hasło (które jest puste w tym przykładzie) oraz nazwę bazy danych ('zwierzaki'). Użycie mysqli jest zgodne z aktualnymi standardami i dobrą praktyką w programowaniu, ponieważ oferuje szereg usprawnień w porównaniu do starszych metod, takich jak mysql_connect, które zostały usunięte w nowszych wersjach PHP. Mysqli (MySQL Improved) wspiera zarówno programowanie obiektowe, jak i proceduralne, co czyni go bardziej elastycznym. W przypadku nawiązywania połączenia warto również pamiętać o obsłudze błędów, co można osiągnąć poprzez dodatkowe sprawdzenie, czy połączenie zostało nawiązane pomyślnie za pomocą funkcji mysqli_connect_error(). Przykład poprawnego użytkowania w kodzie mógłby wyglądać następująco: $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki'); if (!$polacz) { die('Connection failed: ' . mysqli_connect_error()); }

Pytanie 22

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Progowanie.
C. Krzywe.
D. Inwersja.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 23

W wyniku wykonania przedstawionego poniżej kodu JavaScript zmienna x ma wartość:

<script>
    var x = 10;
    x++;
    console.log(x);
</script>
A. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
B. 10 i zostanie wypisana w dokumencie HTML.
C. 11 i zostanie wypisana w oknie pop-up.
D. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript:

<script>
var x = 10;
x++;
console.log(x);
</script>

Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu.

Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego.

Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 24

Jakie dane zostaną wybrane po wykonaniu poniższej kwerendy na pokazanych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";

idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Tylko id równe 8
B. Wszystkie id
C. Pole id równe 7 oraz 8
D. Brak danych
Odpowiedź jest prawidłowa, ponieważ zapytanie SQL SELECT id FROM samochody WHERE rocznik LIKE '2_4'; filtruje rekordy, które mają w kolumnie rocznik wartość z drugą cyfrą równą '2' i czwartą cyfrą równą '4'. W złożonym zapytaniu SQL zastosowano operator LIKE z użyciem symbolu podkreślenia (_) jako symbolu zastępczego dla pojedynczego znaku. To oznacza, że szukamy dowolnego roku, który zaczyna się od cyfry '2', ma dowolną cyfrę na drugiej pozycji i cyfrę '4' na ostatniej pozycji. Praktycznie oznacza to, że wybierane są identyfikatory pojazdów, które mają rocznik odpowiadający temu wzorcowi. W dostarczonym zbiorze danych tylko rekordy o id 7 i 8 spełniają ten warunek, ponieważ rocznik to 2014 i 2004. Tego rodzaju konstrukcja SQL jest użyteczna w sytuacjach, gdy potrzebujemy selektywnie uzyskać dane na podstawie wzorców. Operator LIKE jest bardzo efektywny w analizie danych tekstowych w bazach danych np. w raportach analitycznych gdzie kluczowe jest wyszukiwanie na podstawie wzorców. Warto zaznaczyć, że takie podejście jest zgodne ze standardami SQL, ułatwiającymi zarządzanie i filtrowanie danych w złożonych systemach bazodanowych.

Pytanie 25

W MS SQL Server rola predefiniowana o nazwie dbcreator umożliwia użytkownikowi

A. zarządzanie bezpieczeństwem systemu
B. tworzenie, modyfikowanie, usuwanie oraz przywracanie bazy danych
C. zarządzanie plikami na dysku
D. wykonywanie wszelkich operacji na serwerze i posiadanie praw do każdej bazy
Wybór niewłaściwej odpowiedzi jest powszechnym błędem związanym z myleniem ról i uprawnień w MS SQL Server. Na przykład, stwierdzenie, że rola dbcreator pozwala na zarządzanie bezpieczeństwem systemu, jest nieprawidłowe, ponieważ bezpieczeństwo bazy danych i systemu zarządzania bazami danych w SQL Server podlega głównie roli sysadmin oraz uprawnieniom przyznanym przez administratorów. Rola dbcreator koncentruje się na operacjach dotyczących baz danych, a nie na bezpieczeństwie. Podobnie, stwierdzenie, że ta rola umożliwia zarządzanie plikami na dysku, jest błędne; te operacje są związane z rolą, która zarządza systemowymi operacjami plików, a nie bezpośrednio z rolą dbcreator. Natomiast twierdzenie, że rola ta pozwala na wykonywanie każdej operacji na serwerze i posiadanie prawa własności każdej bazy, jest całkowicie mylące, ponieważ taka szeroka moc jest zarezerwowana dla roli sysadmin, która nie ma ograniczeń w działaniach na serwerze SQL. Zrozumienie tych różnic jest niezbędne dla prawidłowego zarządzania uprawnieniami w systemach bazodanowych i może pomóc w uniknięciu kompromitacji danych czy nieautoryzowanego dostępu do krytycznych informacji. W przypadku nadawania uprawnień zawsze należy kierować się zasadą minimalnych uprawnień, aby zredukować ryzyko związane z nieautoryzowanym dostępem i zmianami. Zachowanie spójności w przydzielaniu ról i uprawnień jest kluczowe dla bezpieczeństwa i prawidłowego funkcjonowania systemów bazodanowych.

Pytanie 26

Które z poniższych poleceń przyznaje użytkownikowi uczen najniższy poziom uprawnień w zakresie zmiany danych i struktury tabel?

A. GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
B. GRANT DROP ON szkola.przedmioty TO uczen;
C. GRANT SELECT ON szkola.przedmioty TO uczen;
D. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
Rozpatrując inne polecenia, które zostały zaproponowane, należy zauważyć, że każde z nich przyznaje użytkownikowi 'uczen' szerszy zakres uprawnień, co nie jest zgodne z założeniem nadawania minimalnych uprawnień. Przyznanie uprawnień DROP, jak w przypadku polecenia GRANT DROP ON szkola.przedmioty TO uczen, pozwoliłoby użytkownikowi usunąć tabelę 'przedmioty', co jest nieakceptowalne w kontekście użytkownika edukacyjnego. Takie działanie nie tylko zagrażałoby integralności bazy danych, ale również mogłoby prowadzić do utraty ważnych informacji. Podobnie, przyznanie uprawnień INSERT, jak w poleceniu GRANT INSERT, DROP ON szkola.przedmioty TO uczen, umożliwia użytkownikowi dodawanie nowych rekordów do tabeli, co w przypadku ucznia nie jest pożądane, ponieważ jego rola powinna być ograniczona do przeglądania danych. Co więcej, polecenie GRANT ALTER, SELECT ON szkola.przedmioty TO uczen zawiera uprawnienie ALTER, które pozwala na modyfikację struktury tabeli, co również nie powinno mieć miejsca w kontekście użytkownika, który jest tylko uczniem. Wszelkie te niepoprawne podejścia prowadzą do niebezpieczeństwa związane z nieautoryzowanymi zmianami w bazie danych, co jest sprzeczne z najlepszymi praktykami w zakresie zarządzania uprawnieniami i bezpieczeństwa danych. Warto pamiętać, że właściwe zarządzanie uprawnieniami nie tylko zabezpiecza dane, ale również usprawnia procesy edukacyjne, zapewniając odpowiedni dostęp do informacji w sposób kontrolowany.

Pytanie 27

Klient wpisał adres nieistniejącego zasobu na serwerze. Próba nawiązania połączenia spowoduje wystąpienie błędu

A. 503
B. 400
C. 500
D. 404
Odpowiedź 404 jest prawidłowa, ponieważ oznacza, że serwer nie może znaleźć żądanego zasobu. Kiedy użytkownik wprowadza nieistniejący adres URL, serwer HTTP zwraca ten kod błędu jako odpowiedź informującą, że dany zasób nie został znaleziony. Jest to standardowy sposób na komunikowanie się z klientami, że ich prośba nie mogła zostać zrealizowana z powodu braku zasobu. W praktyce, kod 404 jest powszechnie używany do zarządzania sytuacjami, w których użytkownik wpisuje niewłaściwy adres lub gdy zasób został usunięty. Dobrą praktyką jest tworzenie własnych stron błędu 404, które informują użytkowników o tym, co mogą zrobić dalej, na przykład sugerując im powrót na stronę główną lub wyszukiwanie w serwisie. Z perspektywy bezpieczeństwa, warto również unikać ujawniania szczegółów dotyczących struktury serwera w odpowiedziach 404, aby zminimalizować potencjalne ryzyko ataków.

Pytanie 28

W SQL, używanym w bazie danych MySQL, aby przypisać wartość 0 do kolumny przebieg w tabeli samochody, jaką kwerendę należy zastosować?

A. UPDATE samochody SET przebieg = 0
B. UPDATE przebieg SET 0 FROM samochody
C. UPDATE samochody SET przebieg VALUE 0
D. UPDATE przebieg SET 0 TABLE samochody
Odpowiedź 'UPDATE samochody SET przebieg = 0;' jest jak najbardziej trafna! W SQL używamy klauzuli UPDATE, gdy chcemy coś zmienić w naszej tabeli. W tym konkretnym przypadku ustawiamy wartość kolumny 'przebieg' na 0 dla wszystkich samochodów. Fajne jest to, że operator '=' oznacza, iż zmieniamy wartość w wybranej kolumnie. To podstawa, żeby dobrze zarządzać danymi w bazach. Warto też pomyśleć, czy naprawdę chcemy zmieniać wszystkie rekordy, czy tylko część. Można to zrobić z klauzulą WHERE. Na przykład, jeśli chcemy ustawić przebieg na 0 tylko dla aut konkretnego producenta, to użyjemy: 'UPDATE samochody SET przebieg = 0 WHERE producent = 'NazwaProducenta'. Takie działania powinny być w kontekście transakcji, żeby móc cofnąć zmiany, jeśli coś pójdzie nie tak. Rozumienie tej kwerendy to klucz do zarządzania danymi w MySQL i innych systemach.

Pytanie 29

Funkcja
fun1(a,b) {
  if(a % 2 != 0) a++;
  for(let n = a; n <= b; n+=2) document.write(n);
}
ma na celu

A. wypisanie wszystkich liczb w przedziale od a do b
B. zwrócenie parzystych wartości liczb od a do b
C. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
D. wypisanie liczb parzystych w zakresie od a do b
Funkcja fun1 w JavaScript ma za zadanie wypisać liczby parzyste w przedziale od a do b. Na początku sprawdzamy, czy a jest liczbą nieparzystą, korzystając z operatora modulo. Jeśli a jest nieparzysta, to ją zwiększamy o 1, tym samym przekształcając ją w liczbę parzystą. Potem mamy pętlę for, która zaczyna od a i w każdym kroku zwiększa n o 2, co gwarantuje, że będziemy wypisywać tylko liczby parzyste. Pętla działa dopóki n jest mniejsze lub równe b. Wyniki są pokazywane na stronie dzięki document.write(). To się zgadza z tym, co ma robić ta funkcja, bo faktycznie wypisuje liczby parzyste. Na przykład, kiedy mamy a=3 i b=9, to wypisze 4, 6 i 8.

Pytanie 30

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Polega na modyfikacji sposobu zapisu obrazu, aby zmienić metodę kompresji
B. Powoduje wycięcie określonego fragmentu z pierwotnego obrazu w celu uzyskania lepszego widoku
C. Łączy lub odejmuje figury
D. Powoduje zmianę wymiarów obrazu bez modyfikacji istotnej zawartości wizualnej
Skalowanie obrazu to proces, który polega na zmianie jego rozmiaru, zachowując przy tym kluczowe elementy wizualne. Istotne jest, aby w trakcie skalowania nie doszło do zniekształcenia ważnych detali czy proporcji obrazu. W praktyce, stosowanie algorytmów interpolacji, takich jak biliniowa czy bikubiczna, pozwala na uzyskanie wysokiej jakości powiększeń lub pomniejszeń obrazów, co jest fundamentem w grafice komputerowej, projektowaniu stron internetowych oraz w fotografii cyfrowej. Dzięki odpowiednim technikom, możemy skalować zdjęcia do różnych rozmiarów bez utraty istotnych informacji, co jest niezwykle ważne w kontekście przygotowywania materiałów do druku lub publikacji online. Dobrze wykonane skalowanie obrazu zapewnia estetyczny wygląd i zgodność z wymogami technicznymi, co jest kluczowe w mediach, marketingu i projektowaniu graficznym.

Pytanie 31

Wykonanie zapytania SQL spowoduje skasowanie rekordów:

DELETE FROM mieszkania WHERE status = 1;
A. rekordów, w których wartość pola status jest równa 1, z tabeli mieszkania
B. elementów o nazwie status z tabeli mieszkania
C. tabeli mieszkania znajdującej się w bazie danych
D. tabel, w których wartość pola status wynosi 1, z bazy danych mieszkania
Odpowiedź wskazująca na usunięcie rekordów, w których pole status jest równe 1, z tabeli mieszkania jest poprawna ponieważ w zapytaniu SQL użyto składni DELETE, która jest odpowiedzialna za usuwanie danych z określonej tabeli. W kontekście tego zapytania, po słowie 'FROM' znajduje się nazwa tabeli, czyli 'mieszkania', a warunek 'WHERE status = 1' precyzuje, które rekordy mają zostać usunięte. Przykładowo, jeśli w tabeli mieszkania znajdują się mieszkania oznaczone jako dostępne (status = 1), to po wykonaniu tego zapytania wszystkie takie mieszkania zostaną trwale usunięte z bazy danych. Ważne jest, aby przed wykonaniem zapytania DELETE rozważyć konieczność wykonania kopii zapasowej danych, aby zapobiec ich nieodwracalnej utracie. Dobrą praktyką jest również stosowanie zapytania SELECT z tym samym warunkiem, aby najpierw zweryfikować, które rekordy zostaną usunięte. Tego rodzaju podejście umożliwia lepsze zarządzanie danymi oraz redukuje ryzyko pomyłek podczas operacji na bazach danych.

Pytanie 32

W języku JavaScript stworzono funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Jak powinno wyglądać prawidłowe wywołanie tej funkcji oraz uzyskanie jej wyniku?

A. var wynik=liczba_max(a,b,c);
B. liczba_max(a,b,c,wynik);
C. liczba_max(a,b,c);
D. liczba_max(a,b,c)=wynik;
Odpowiedź "var wynik=liczba_max(a,b,c);" jest poprawna, ponieważ w ten sposób prawidłowo wywołujemy funkcję liczba_max, przekazując do niej trzy argumenty: a, b oraz c. Funkcja ta ma na celu zwrócenie maksymalnej wartości z przekazanych liczb, więc przypisanie jej wyniku do zmiennej wynik jest logicznym krokiem. W języku JavaScript, operator przypisania (=) pozwala na zdefiniowanie zmiennych, co w tym przypadku oznacza, że zmienna wynik będzie zawierać wartość zwróconą przez funkcję. Wartością tą jest największa liczba spośród a, b i c. Zastosowanie takiego podejścia jest zgodne z koncepcją programowania funkcjonalnego, gdzie funkcje są traktowane jako „pierwszej klasy obywateli”, co oznacza, że można je przypisywać do zmiennych. Dobrą praktyką w programowaniu jest również używanie czytelnych nazw zmiennych oraz funkcji, co ułatwia zrozumienie kodu przez inne osoby. Dodatkowo, warto zwrócić uwagę na typy danych przekazywanych do funkcji, aby uniknąć nieprzewidzianych błędów podczas obliczeń.

Pytanie 33

Jak system CMS realizuje oddzielenie treści serwisu od jego wyglądu?

A. treść ze statycznych plików HTML, a wygląd we Flashu
B. treść generuje z bazy danych, a wygląd ze zdefiniowanego szablonu
C. treść ze statycznych plików HTML, a wygląd ze szablonu
D. treść z bazy danych, a wygląd za pomocą atrybutów HTML
Istotą CMS jest rozdział treści (baza) i wyglądu (szablon). Warianty z treścią w statycznych plikach HTML przeczą dynamicznemu zarządzaniu treścią. Wygląd nie powstaje z atrybutów HTML ani we Flashu (technologia przestarzała), lecz z szablonu. CMS generuje treść z bazy danych, a wygląd ze zdefiniowanego szablonu.

Pytanie 34

W JavaScript zapis a++; można przedstawić w inny sposób jako

A. 1 += a
B. a << 1
C. a = a + 1
D. a = a & 1
Odpowiedź 'a = a + 1;' jest poprawna, ponieważ dokładnie odzwierciedla działanie operatora inkrementacji 'a++;'. Operator '++' w JavaScript zwiększa wartość zmiennej o 1. W przypadku użycia 'a = a + 1;', operacja ta jest explicite zapisana jako przypisanie aktualnej wartości 'a' powiększonej o 1. Taki zapis jest często stosowany w sytuacjach, gdy chcemy lepiej zrozumieć, co się dzieje w kodzie, szczególnie dla początkujących programistów. Przykładowo, jeśli mamy zmienną, która przechowuje liczbę, możemy użyć 'a = a + 1;' w pętli, aby zliczać ilość iteracji. Warto zauważyć, że użycie operatora '++' jest bardziej zwięzłe i często preferowane w profesjonalnym kodzie, jednak zrozumienie, jak działa to na poziomie podstawowym, jest kluczowe. Dobrą praktyką jest dbałość o przejrzystość kodu, zwłaszcza w zespołach, gdzie różne osoby mogą pracować nad tym samym projektem.

Pytanie 35

Które polecenie SQL zmieni w tabeli tab wartość w kolumnie kol z „Ania” na „Zosia”?

A.
ALTER TABLE tab CHANGE kol = 'Zosia' kol = 'Ania';
B.
UPDATE tab SET kol = 'Ania' WHERE kol = 'Zosia';
C.
UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';
D.
ALTER TABLE tab CHANGE kol = 'Ania' kol = 'Zosia';
Aby zmienić istniejące dane, używa się UPDATE ... SET ... WHERE .... Zamiana „Ania” na „Zosia” to ustawienie nowej wartości SET kol = 'Zosia' tam, gdzie obecnie jest „Ania”: UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';. Dlatego ta kwerenda jest poprawna.

Pytanie 36

Skrypt napisany w języku JavaScript wylicza cenę promocyjną dla swetrów w kolorach: zielonym i niebieskim (zmienna kolor) przy zakupach powyżej 200 zł (zmienna zakupy). Warunek do obliczeń powinien być sformułowany za pomocą wyrażenia logicznego?

A. zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski'
B. zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski')
C. zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski')
D. zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski'
Poprawna odpowiedź to "zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski')". Wyrażenie to jest zgodne z logiką obliczeń cen promocyjnych. Użycie operatora koniunkcji (&&) wskazuje, że oba warunki muszą być spełnione, aby cena promocyjna mogła być zastosowana. Po pierwsze, wartość zakupów musi przekraczać 200 zł, co jest kluczowym warunkiem, aby móc skorzystać z promocji. Po drugie, kolor swetra musi być jednym z dozwolonych, czyli zielonym lub niebieskim, co zostało zrealizowane za pomocą operatora alternatywy (||). Używając nawiasów, wyraźnie wskazujemy, że sprawdzenie koloru jest niezależne od warunku dotyczącego wartości zakupów. Taka konstrukcja jest zgodna z dobrą praktyką programistyczną, zapewniając czytelność i ułatwiając późniejszą modyfikację kodu. W kontekście praktycznym, można zastosować tę logikę w aplikacjach e-commerce, gdzie dynamiczne obliczenia cen promocyjnych w zależności od różnych kryteriów są powszechne. Przykładowo, przy dodawaniu nowych kolorów lub zmieniając próg zakupów, wystarczy jedynie edytować odpowiednie warunki, co czyni kod bardziej elastycznym i łatwym do zarządzania.

Pytanie 37

Które narzędzie do zarządzania bazą danych jest wbudowane w pakiet XAMPP?

A. pgAdmin
B. phpMyAdmin
C. SQLite
D. MySQL Workbench
Pakiet XAMPP (Apache, MySQL/MariaDB, PHP) zawiera wbudowane narzędzie phpMyAdmin do zarządzania bazą przez przeglądarkę - tworzenia baz, tabel i uruchamiania zapytań. Dlatego w XAMPP znajdziesz phpMyAdmin.

Pytanie 38

W języku JavaScript zapisano funkcję. Co ona ma za zadanie?

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
A. wypisać wartość odwrotną do f
B. zwrócić wartość odwrotną do f
C. wypisać wartość bezwzględną z f
D. zwrócić wartość bezwzględną z f
Twoja odpowiedź jest poprawna. Funkcja, o której mówi pytanie, zwraca wartość bezwzględną z argumentu f. W języku programowania JavaScript wartość bezwzględną możemy obliczyć w różny sposób. W tym przypadku, dla f mniejszego od zera funkcja mnoży f przez -1, co jest równoznaczne z obliczeniem wartości bezwzględnej dla liczby ujemnej. Dla liczby nieujemnej, funkcja zwraca jej wartość bez zmian. To jest zgodne z definicją wartości bezwzględnej, która mówi, że jest to odległość liczby od zera na osi liczb rzeczywistych, bez względu na kierunek. W praktyce, wartość bezwzględna często jest używana w algorytmach, w których interesuje nas tylko 'rozmiar' wartości, a nie jej kierunek, np. w algorytmach statystycznych, graficznych czy fizycznych.

Pytanie 39

Przedstawiony blok reprezentuje czynność

Ilustracja do pytania
A. podjęcia decyzji.
B. wyświetlenia danych.
C. wczytania danych.
D. zastosowania gotowej procedury lub funkcji.
Ten blok w kształcie rombu to klasyczny symbol decyzji w schemacie blokowym algorytmu. Zgodnie z przyjętymi standardami notacji (np. ANSI/ISO dla diagramów przepływu), romb oznacza miejsce, w którym program musi coś sprawdzić i na podstawie wyniku tej kontroli wybrać jedną z gałęzi dalszego działania. Innymi słowy: następuje podjęcie decyzji na podstawie warunku logicznego, który zwykle daje odpowiedź typu TAK/NIE (TRUE/FALSE).

W praktyce, w kodzie programistycznym taki romb odpowiada instrukcjom warunkowym, takim jak if, if...else, switch, operator trójargumentowy itp. Przykład: „jeśli użytkownik jest zalogowany, pokaż panel administracyjny, w przeciwnym razie przekieruj do logowania”. W schemacie blokowym byłby to właśnie romb z pytaniem „Użytkownik zalogowany?”. Z rombu wychodziłyby dwie strzałki: jedna podpisana „tak”, druga „nie”, prowadzące do różnych bloków akcji.

Moim zdaniem warto wyrobić sobie nawyk automatycznego kojarzenia: romb = warunek = rozgałęzienie przepływu. Dzięki temu łatwiej później projektować algorytmy, niezależnie od języka programowania. W praktyce webowej też ma to duże znaczenie: np. sprawdzenie, czy dane z formularza są poprawne, czy użytkownik ma odpowiednie uprawnienia, czy plik istnieje na serwerze. Za każdym razem, gdy w głowie pojawia Ci się „jeśli… to… w przeciwnym razie…”, w schemacie blokowym powinien pojawić się właśnie taki romb, czyli blok podjęcia decyzji. To jest fundament logicznej struktury programu i jedna z podstawowych konstrukcji algorytmicznych.

Pytanie 40

Którą wartość atrybutu name znacznika <meta> wykorzystuje się do kontrolowania obszaru widzialnego na różnych urządzeniach, na których jest wyświetlana strona internetowa?

A. generator
B. viewport
C. keywords
D. description
Poprawnie wskazana została wartość „viewport”. W praktyce właśnie meta name="viewport" służy do kontrolowania tzw. obszaru widzialnego (ang. viewport) na urządzeniach mobilnych i desktopowych. Przeglądarka mobilna domyślnie zakłada szeroką stronę i sztucznie ją pomniejsza, żeby „zmieściła się” na ekranie telefonu. Dopiero meta viewport mówi jej: potraktuj szerokość ekranu urządzenia jako bazową szerokość strony.
Najczęściej spotykana, zgodna z dobrymi praktykami konstrukcja to: <meta name="viewport" content="width=device-width, initial-scale=1.0">. Parametr width=device-width ustawia szerokość obszaru widzialnego na szerokość ekranu urządzenia, a initial-scale=1.0 definiuje początkowe powiększenie. Dzięki temu layout responsywny oparty na media queries w CSS działa poprawnie, bez dziwnych przeskalowań i zbyt małej czcionki.
W nowoczesnym front-endzie przyjmuje się, że każda strona, która ma być używalna na telefonach, tabletach i laptopach, powinna mieć prawidłowo ustawiony meta viewport. Moim zdaniem to jest absolutna podstawa RWD, zaraz obok poprawnego użycia jednostek względnych (np. %, vw, em) i zaprojektowania siatki w CSS. Warto też pamiętać, żeby nie przesadzać z blokowaniem powiększania (np. user-scalable=no), bo to pogarsza dostępność strony dla osób słabiej widzących i jest uznawane za złą praktykę. Podsumowując: jeśli chcesz mieć stronę, która naprawdę „żyje” na różnych ekranach, meta name="viewport" to obowiązkowy element w sekcji <head>.