Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 9 czerwca 2026 07:23
  • Data zakończenia: 9 czerwca 2026 07:38

Egzamin zdany!

Wynik: 33/40 punktów (82,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

W języku skryptowym JavaScript operatory: || oraz && należą do grupy operatorów

A. logicznych.
B. przypisania.
C. bitowych.
D. arytmetycznych.
Operatory || oraz && w JavaScript to klasyczne operatory logiczne. Działają na wartościach, które można zinterpretować jako prawdę lub fałsz (tzw. wartości truthy i falsy) i zwracają wynik wyrażenia logicznego. && oznacza „i” logiczne – całe wyrażenie jest prawdziwe tylko wtedy, gdy oba operandy są traktowane jako prawdziwe. || oznacza „lub” logiczne – wystarczy, że jeden z operandów jest prawdziwy, żeby całe wyrażenie było uznane za prawdę. W praktyce bardzo często wykorzystuje się je w instrukcjach warunkowych, np.: if (isLoggedIn && isAdmin) { … } albo if (isMobile || isTablet) { … }. W JavaScript te operatory mają jeszcze jedną, moim zdaniem bardzo przydatną cechę: nie zwracają po prostu true/false, tylko konkretną wartość jednego z operandów. Na przykład: const name = userName || "Gość"; – jeśli userName jest wartością „falsy” (np. pusty string, null, undefined), to do name trafi "Gość". To jest tzw. krótkie spięcie (short-circuit evaluation): przy operatorze &&, jeśli pierwszy operand jest falsy, drugi nie jest już w ogóle obliczany; przy ||, jeśli pierwszy jest truthy, drugi też nie jest sprawdzany. W dobrych praktykach front-endu wykorzystuje się to do prostego ustawiania wartości domyślnych, zabezpieczania wywołań funkcji (np. callback && callback()) oraz budowania bardziej czytelnych warunków. Warto też pamiętać o różnicy między operatorami logicznymi (&&, ||, !) a porównania (===, !==), bo to są różne grupy operatorów, chociaż często używa się ich razem w tych samych warunkach. Z mojego doświadczenia, świadome używanie tych operatorów logicznych bardzo upraszcza kod i zmniejsza liczbę if-ów rozrzuconych po skryptach.

Pytanie 2

Jak czyta się po angielsku znak @?

A. ape
B. monkey
C. on
D. at
Pozostałe nazwy to potoczne lub błędne określenia. „Monkey” i „ape” („małpa”) to skojarzenia z polską nazwą, nie angielskie czytanie znaku. „On” znaczy „na”, ale nie jest nazwą @. Po angielsku znak czyta się „at”.

Pytanie 3

Jaką formę przybierze data po wykonaniu poniższego kodu PHP?

<?php
echo date('l, dS F Y');
?>
A. 10, Monday July 2017
B. Monday, 10th July 17
C. Monday, 10 July 2017
D. Monday, 10th July 2017
Błędne odpowiedzi wynikają z niepoprawnego zrozumienia specyfikacji formatów używanych w funkcji date() w PHP. Formatowanie daty w PHP wymaga precyzyjnego zastosowania odpowiednich znaków formatujących, które określają sposób wyświetlania poszczególnych elementów daty. Wykorzystanie 'l' daje pełną nazwę dnia tygodnia, co eliminuje wszelkie opcje, które tego nie uwzględniają. 'd' zwraca dwucyfrowy dzień miesiąca, a 'S' dodaje sufiks porządkowy, co jest charakterystyczne dla języka angielskiego. Dlatego też formaty, które nie zawierają sufiksu porządkowego, są niepoprawne. 'F' oznacza pełną nazwę miesiąca, więc każdy format, który nie przedstawia miesiąca w pełni, jest błędny. 'Y' z kolei formatuje rok w pełnej czterocyfrowej formie, co jest standardem dla aplikacji wymagających precyzji i unikania nieporozumień związanych z rokiem dwucyfrowym. Pomyłki często wynikają z mylnego przyjęcia założenia, że PHP automatycznie dostosuje format do oczekiwanego rezultatu, co nie jest prawdą i wymaga świadomego użycia odpowiednich specyfikatorów formatujących.

Pytanie 4

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. nazwa to właściwość obiektu przedmiot.
B. nazwa to pole klasy przedmiot.
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
D. zmienna x będzie przechowywać wynik działania metody nazwa.
Rozważając inne proponowane odpowiedzi, należy zrozumieć, że język JavaScript często wykorzystuje programowanie obiektowe, gdzie właściwości i metody obiektów różnią się w użyciu. Pierwsza opcja sugeruje, że nazwa jest właściwością obiektu przedmiot, co jest błędne w kontekście przedstawionego kodu, ponieważ użyto nawiasów okrągłych, co jednoznacznie wskazuje na wywołanie metody, a nie na odwołanie się do właściwości. Druga opcja mówi o nazwie jako polu klasy przedmiot, co jest mylące, ponieważ w JavaScript nie istnieje formalny podział na pola i metody w taki sposób, jak w statycznie typowanych językach jak Java czy C++. JavaScript, jako język dynamiczny, używa właściwości obiektu do przechowywania zarówno danych, jak i funkcji. Czwarta propozycja, że zmienna x będzie przechowywać wynik działania funkcji przedmiot, również jest błędna, ponieważ w kodzie widzimy wywołanie metody nazwa() na obiekcie przedmiot, a nie wywołanie funkcji przedmiot. Typowe błędy myślowe mogą wynikać z niewłaściwego rozróżnienia między funkcjami i metodami, czy też z niepoprawnego przypisywania ról poszczególnym elementom składni w dynamicznie typowanych językach, co prowadzi do nieporozumień w kontekście konwencji programistycznych stosowanych w JavaScript.

Pytanie 5

Jaką postać ma kolor zdefiniowany w formacie szesnastkowym jako #11FE07 w modelu RGB?

A. rgb(17, 254, 7)
B. rgb(17, FE, 7)
C. rgb(ll, 127, 7)
D. rgb(17, 255, 7)
Odpowiedź rgb(17, 254, 7) jest jak najbardziej trafna, bo wartości RGB ustalamy na podstawie kolorów, które mamy w formacie szesnastkowym. Dla koloru #11FE07, pierwsza część '11' to czerwień (R), druga część 'FE' to zieleń (G), a ostatnia '07' to niebieski (B). Jak to zliczamy? Wartości szesnastkowe przeliczamy na dziesiętne. Czyli '11' w szesnastkowym to 17 w dziesiętnym, 'FE' to 254, a '07' to po prostu 7. Te kolory RGB są super ważne w wielu dziedzinach, jak na przykład w projektowaniu stron www czy w grafice komputerowej. W3C ustala standardy dla tych wartości, dlatego są one spójne i użyteczne w sieci. Dopasowanie kolorów RGB jest kluczowe, kiedy tworzymy ładne palety kolorów, które są nie tylko estetyczne, ale też dostępne dla wszystkich. Takim przykładem może być dobór kolorów dla przycisków na stronie - jak dobrze je dobierzemy, to użytkownik łatwiej zauważy, co ma kliknąć.

Pytanie 6

Aby w MySQL nadać użytkownikowi prawo do nadawania i modyfikowania uprawnień innym użytkownikom, należy użyć klauzuli:

A.
TRIGGER
B.
ALL PRIVILEGES
C.
FLUSH PRIVILEGES
D.
GRANT OPTION
Pozostałe opcje dotyczą czego innego. TRIGGER to wyzwalacz uruchamiany automatycznie przy zmianie danych w tabeli - nie ma związku z nadawaniem praw. ALL PRIVILEGES przyznaje wszystkie uprawnienia do obiektu, ale samo w sobie nie pozwala przekazywać ich dalej. FLUSH PRIVILEGES przeładowuje uprawnienia z tablic systemowych po ręcznych zmianach - to czynność administracyjna, nie delegowanie. Prawo nadawania uprawnień innym daje WITH GRANT OPTION, dlatego to ono jest poprawne.

Pytanie 7

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

<!DOCTYPE html>
<html>
<head>
<style>
div~p { color: blue; }
</style>
</head>
<body>
  <div>
    <p>pierwszy paragraf</p>
      <div>
        <p>drugi paragraf</p>
        <p>trzeci paragraf</p>
      </div>
    <p>czwarty paragraf</p>
  </div>
</body>
</html>
A. Trzeci.
B. Pierwszy.
C. Czwarty.
D. Drugi.
Poprawnie wskazany został czwarty paragraf, bo dokładnie tak działa selektor CSS użyty w tym przykładzie. Zapis `div~p` to tzw. selektor rodzeństwa (general sibling selector). Oznacza on: „wybierz każdy element `<p>`, który jest młodszym rodzeństwem jakiegokolwiek elementu `<div>` i znajduje się z nim na tym samym poziomie drzewa DOM (ma tego samego rodzica)”. Kluczowe są tu dwie rzeczy: ten sam rodzic oraz to, że dany element musi występować w kodzie **po** elemencie `div`. W podanym fragmencie HTML wszystkie paragrafy znajdują się wewnątrz jednego głównego `<div>`. Jednak tylko „czwarty paragraf” jest rodzeństwem zewnętrznego `<div>` i jednocześnie pojawia się po nim jako element `<p>` na tym samym poziomie zagnieżdżenia. „Pierwszy”, „drugi” i „trzeci” paragraf są zagnieżdżone wewnątrz divów, więc nie są rodzeństwem dla tagu `div`, do którego odnosi się selektor. W praktyce selektor `A~B` często stosuje się np. do stylowania elementów formularza i opisów, które pojawiają się po jakimś polu, albo do tworzenia efektów typu: „wszystkie akapity po tym bloku mają inny kolor”. Warto też znać różnicę między `div p` (wszystkie potomne akapity w divie), `div>p` (tylko bezpośrednie dzieci) oraz `div+p` (tylko pierwszy akapit bezpośrednio po divie). To są podstawowe narzędzia przy precyzyjnym stylowaniu struktury HTML zgodnie z dobrymi praktykami CSS i zaleceniami specyfikacji W3C.

Pytanie 8

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

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

Pytanie 9

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. nav { float: right; }
C. nav { float: right; } section { float: right; }
D. aside {float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie.

W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie.

Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 10

Na podstawie jakiego parametru oraz z ilu tabel będą zwrócone wiersze w wyniku podanego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
producent.nr_id = hurtownia.nr_id AND
producent.wyrob_id = serwis.wyrob_id AND
hurtownia.nr_id = sklep.nr_id AND
sklep.nr_id = serwis.nr_id AND
producent.nr_id = 1;
A. Na podstawie parametru nr_id tylko dla trzech tabel
B. Na podstawie parametru nr_id dla wszystkich tabel
C. Na podstawie parametru wyrob_id tylko dla trzech tabel
D. Na podstawie parametru wyrob_id tylko dla trzech tabel
Zapytanie SQL w poleceniu jest skonstruowane tak by pobierać dane z czterech tabel: producent hurtownia sklep i serwis W warunku WHERE użyto klauzuli dotyczącej parametru nr_id co powoduje że połączenia między tabelami są realizowane na podstawie tego właśnie parametru Jest to typowe podejście w relacyjnych bazach danych gdzie klucz główny jednej tabeli jest kluczem obcym w innej umożliwiając łączenie danych Parametr nr_id pojawia się wielokrotnie w klauzuli WHERE jako kryterium dla różnych połączeń między tabelami To pozwala na uzyskanie spójnej listy wierszy które spełniają wszystkie zdefiniowane warunki Dzięki temu zapytanie zwraca wiersze dla wszystkich czterech tabel co jest zgodne z odpowiedzią numer 1 Takie podejście umożliwia tworzenie złożonych raportów i analiz danych branżowych Warto także zauważyć że użycie JOIN w taki sposób często optymalizuje wydajność zapytań co jest dobrą praktyką w zarządzaniu bazami danych SQL

Pytanie 11

Aby uzyskać informacje o środowisku pracy serwera obsługującego PHP, należy skorzystać z funkcji

A.
phpinformation()
B.
phpgetinfo()
C.
php()
D.
phpinfo()
Funkcja phpinfo() po wywołaniu generuje gotową stronę z kompletem informacji o środowisku, w którym działa PHP. Znajdziesz tam wersję interpretera, listę załadowanych rozszerzeń, aktywne ustawienia z pliku php.ini, ścieżki i zmienne środowiskowe oraz dane o serwerze HTTP. Dzięki temu szybko sprawdzisz, czy potrzebny moduł jest dostępny i jak skonfigurowane jest środowisko - to podstawowe narzędzie diagnostyczne przy wdrażaniu i uruchamianiu aplikacji. Wystarczy umieścić w skrypcie wywołanie tej funkcji i otworzyć stronę w przeglądarce. Pamiętaj jednak, by nie zostawiać takiego pliku na działającym serwerze publicznie - ujawnia on szczegóły konfiguracji, które mogą pomóc atakującemu.

Pytanie 12

Która wbudowana funkcja agregująca SQL oblicza średnią wartość w kolumnie?

A.
SUM
B.
AVG
C.
COUNT
D.
MIN
Funkcja agregująca AVG (od average) oblicza średnią arytmetyczną wartości w danej kolumnie, np. SELECT AVG(cena) FROM produkty; zwróci przeciętną cenę. Jak inne funkcje agregujące, działa na grupie wierszy i często łączy się ją z GROUP BY. Pomija wartości NULL. Dlatego średnią wartość w kolumnie oblicza AVG.

Pytanie 13

Aby stworzyć poprawną kopię zapasową bazy danych, która będzie mogła zostać później przywrócona, należy najpierw sprawdzić

A. poprawność składni zapytań
B. spójność bazy
C. uprawnienia dostępu do serwera bazy danych
D. możliwość udostępnienia bazy danych
Spójność bazy danych jest kluczowym elementem, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa, ponieważ zapewnia, że wszystkie dane są zgodne i nie zawierają błędów. Spójność oznacza, że wszelkie reguły i ograniczenia, takie jak klucze główne, klucze obce oraz unikalne indeksy, są spełnione. W przypadku naruszenia spójności, kopia bazy danych mogłaby zawierać uszkodzone lub niekompletne dane, co mogłoby uniemożliwić jej prawidłowe odtworzenie w przyszłości. Przykładem może być sytuacja, gdy mamy tabelę zamówień, która odwołuje się do tabeli klientów. Jeśli rekord klienta został usunięty, a zamówienia pozostają, to mamy do czynienia z naruszeniem spójności. Standardy, takie jak ACID (Atomicity, Consistency, Isolation, Durability), podkreślają znaczenie spójności w zarządzaniu bazami danych, co czyni ją niezbędnym krokiem w procesie tworzenia kopii zapasowych.

Pytanie 14

Zdefiniowana jest tabela uczniowie z polami id, nazwisko, imie oraz klasa. Jakie zapytanie SQL pozwoli nam uzyskać liczbę osób w danym klasa i wskazać jej nazwę?

A. SELECT SUM(id), klasa FROM uczniowie GROUP BY klasa
B. SELECT COUNT(id), klasa FROM uczniowie GROUP BY klasa
C. SELECT SUM(id), klasa FROM uczniowie ORDER BY klasa
D. SELECT COUNT(id), klasa FROM uczniowie ORDER BY klasa
Odpowiedź 'SELECT COUNT(id), klasa FROM uczniowie GROUP BY klasa;' jest prawidłowa, ponieważ wykorzystuje funkcję agregującą COUNT do zliczenia liczby uczniów w każdej klasie. Kluczowym elementem jest tutaj klauzula GROUP BY, która grupuje wyniki według kolumny 'klasa'. Dzięki temu uzyskujemy dla każdej klasy osobny wynik z liczbą uczniów. To podejście jest zgodne z dobrymi praktykami w SQL, gdzie użycie funkcji agregujących z grupowaniem pozwala na efektywne przetwarzanie danych. Przykładowo, w przypadku szkoły, taka analiza może być użyta do zarządzania zasobami lub planowania, na przykład, przy ustalaniu liczby nauczycieli potrzebnych w danej klasie. Użycie COUNT zapewnia również, że wynik będzie liczbowy, co jest istotne dla dalszej analizy danych. Warto również pamiętać, że korzystanie z odpowiednich aliasów dla wyników może poprawić czytelność wyników zapytania.

Pytanie 15

Którego złączenia należy użyć, aby z dwóch tabel pobrać wszystkie wiersze tabeli po lewej stronie, nawet jeśli nie mają dopasowania w prawej?

A.
CROSS JOIN
B.
RIGHT JOIN
C.
INNER JOIN
D.
LEFT JOIN
Pozostałe złączenia działają inaczej. INNER JOIN zwraca wyłącznie wiersze, które mają dopasowanie w obu tabelach - pominie więc te z lewej bez pary. RIGHT JOIN zachowuje komplet wierszy tabeli prawej, czyli odwrotnie niż w pytaniu. CROSS JOIN tworzy iloczyn kartezjański, łącząc każdy wiersz z każdym, co nie dotyczy dopasowywania po kluczu. Wszystkie wiersze lewej tabeli (z NULL w miejscach bez pary) zwraca LEFT JOIN, dlatego to ono jest poprawne.

Pytanie 16

Przedstawiona transformacja obrazu, w edytorze grafiki rastrowej, została wykonana przy pomocy filtru

Ilustracja do pytania
A. szum HSV.
B. błysk gradientowy.
C. redukcja szumu.
D. rozmycia Gaussa.
Gratulacje, twoja odpowiedź jest prawidłowa. Wybrałeś 'rozmycie Gaussa', które jest odpowiednią odpowiedzią. Na przedstawionym obrazie widzimy, że obraz po prawej stronie jest rozmyty w sposób ciągły i jednolity - to jest charakterystyczne dla rozmycia Gaussa. Filtr rozmycia Gaussa jest powszechnie stosowany w edytorach grafiki rastrowej do uzyskania efektu miękkiego rozmycia, który symuluje efekt obserwacji obiektu przez nieostre medium lub z dużą głębią ostrości. Jest to praktyczne narzędzie, które ma szerokie zastosowanie zarówno w fotografii, jak i w grafice komputerowej. Filtr ten jest często używany do poprawy estetyki obrazów, redukcji szumu i artefaktów, a także w szeroko pojętym przetwarzaniu obrazów, takim jak detekcja krawędzi. Jego nazwa pochodzi od matematyka Karla Gaussa, który opracował koncepcję rozkładu normalnego, na którym opiera się ten filtr.

Pytanie 17

Którego znacznika należy użyć, aby przejść do nowej linii tekstu, nie tworząc nowego akapitu?

A.
<br>
B.
</br>
C.
<p>
D.
</b>
Znacznik <br> wymusza złamanie wiersza - przenosi dalszy tekst do nowej linii, nie rozpoczynając przy tym nowego akapitu ani dodatkowych odstępów. Jest to element pusty (void), więc w HTML5 zapisuje się go bez ukośnika i bez znacznika zamykającego (poprawnie <br>, a nie </br>). Używa się go np. w adresach czy wierszach wiersza, gdzie liczy się dokładny podział linii. Do oddzielania bloków tekstu właściwy jest jednak akapit <p>. Dlatego nową linię bez akapitu daje <br>.

Pytanie 18

Tabela o nazwie naprawy posiada kolumny klient oraz czyNaprawione. W celu usunięcia rekordów, w których wartość pola czyNaprawione wynosi prawda, należy użyć komendy

A. DELETE FROM naprawy WHERE czyNaprawione = TRUE;
B. DELETE FROM naprawy;
C. DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
D. DELETE naprawy WHERE czyNaprawione = TRUE;
Odpowiedź "DELETE FROM naprawy WHERE czyNaprawione = TRUE;" jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do usunięcia rekordów z tabeli. Komenda DELETE jest używana do usuwania danych z bazy danych, a klauzula WHERE precyzuje, które rekordy mają być usunięte na podstawie określonych warunków. W tym przypadku, usuwane są tylko te rekordy, które mają wartość TRUE w polu czyNaprawione. Zastosowanie klauzuli WHERE jest kluczowe, ponieważ umożliwia precyzyjne wybranie danych do usunięcia, co zapobiega przypadkowemu skasowaniu wszystkich rekordów w tabeli. W praktyce, taką komendę można wykorzystać w różnych aplikacjach związanych z zarządzaniem danymi, np. w systemach informatycznych do obsługi klienta, gdzie zachodzi potrzeba bieżącego zarządzania statusami napraw. Dobre praktyki w programowaniu baz danych nakazują zawsze stosować klauzulę WHERE przy usuwaniu danych, aby uniknąć niezamierzonych skutków. Warto również przetestować zapytania w środowisku testowym przed ich zastosowaniem w produkcji, co zwiększa bezpieczeństwo operacji na danych.

Pytanie 19

Które stwierdzenie dotyczy SKALOWANIA obrazu?

A. łączy lub odejmuje kształty
B. wycina fragment obrazu (kadrowanie)
C. zmienia format zapisu, by zmienić kompresję
D. zmienia rozmiar obrazu bez utraty istotnej zawartości
Skalowanie obrazu to zmiana jego ROZMIARU (powiększenie lub pomniejszenie) z zachowaniem istotnej zawartości wizualnej - całość zostaje, zmieniają się wymiary. Stosuje się je np. przy dopasowaniu zdjęcia do układu strony. Dlatego skalowanie to zmiana rozmiaru obrazu bez utraty istotnej zawartości.

Pytanie 20

Została zaprezentowana tabela o nazwie konta. Aby obliczyć liczbę rejestracji w poszczególnych latach oraz wyświetlić te wartości razem z rokiem rejestracji, należy wykonać zapytanie

A. ```SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
B. ```SELECT rejestracja, COUNT(rejestracja) FROM konta;```
C. ```SELECT COUNT(rejestracja) FROM konta JOIN rejestracja ON id;```
D. ```SELECT COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
Aby policzyć, ile rejestracji dokonano w poszczególnych latach, musimy użyć funkcji agregującej SQL, która umożliwia grupowanie wyników według określonych kryteriów. Odpowiedź 4: 'SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;' wykorzystuje funkcję COUNT(), która zlicza liczbę wystąpień każdej wartości w kolumnie 'rejestracja'. Klauzula GROUP BY jest niezbędna, aby wynikiem zapytania było grupowanie danych według lat rejestracji. Jest to zgodne z dobrymi praktykami, które zalecają użycie GROUP BY z funkcjami agregującymi do zliczania i analizy danych w bazach danych. Praktyka ta pozwala na efektywną agregację i prezentację danych, co jest przydatne w raportowaniu i analizie. Użycie GROUP BY zapewnia również zoptymalizowane operacje na dużych zbiorach danych, co jest kluczowe w systemach zarządzania bazami danych. Poprzez takie podejście, można generować raporty i wglądy, które wspierają decyzje biznesowe.

Pytanie 21

W języku SQL, w wyniku wykonania poniższego zapytania:

ALTER TABLE osoba DROP COLUMN grupa;
A. zostanie usunięta kolumna grupa
B. zostanie dodana kolumna grupa
C. zostanie zmieniona nazwa tabeli na grupa
D. zostanie zmieniona nazwa kolumny na grupa
Zapytanie SQL 'ALTER TABLE osoba DROP COLUMN grupa;' jest komendą, która służy do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Komenda ta wykorzystuje instrukcję ALTER TABLE, która jest standardową konstrukcją SQL używaną do modyfikacji struktury istniejącej tabeli. W kontekście baz danych, usunięcie kolumny może być nieodwracalne, co oznacza, że wszystkie dane zawarte w tej kolumnie zostaną trwale usunięte. Przykładem zastosowania tej komendy może być sytuacja, w której kolumna 'grupa' nie jest już potrzebna, na przykład, po zmianie wymagań aplikacji lub po analogicznym przekształceniu modelu danych. Zgodnie z normami SQL, aby uniknąć błędów, przed wykonaniem takiej operacji warto wykonać kopię zapasową bazy danych. Warto również pamiętać, że niektóre systemy zarządzania bazami danych mogą wymagać dodatkowych opcji, aby zrealizować tę operację, na przykład, jeśli kolumna jest kluczem obcym lub jest związana z innymi strukturami. Podsumowując, użycie tej komendy skutkuje trwałym usunięciem kolumny 'grupa' z tabeli 'osoba'.

Pytanie 22

Wynik wykonania zapytania SQL to

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. suma ocen uczniów, których średnia ocen to 5
B. liczba uczniów, których średnia ocen wynosi 5
C. średnia ocen wszystkich uczniów
D. całkowita liczba uczniów
Poprawna odpowiedź to liczba uczniów, których średnia ocen wynosi 5. Zapytanie SQL zawiera funkcję agregującą count(*), która zlicza wszystkie rekordy spełniające warunek określony w klauzuli WHERE. W tym przypadku filtrujemy uczniów, których średnia ocen jest równa 5. Tego rodzaju operacje są powszechnie stosowane w bazach danych do uzyskiwania statystyk oraz analizowania danych. Na przykład, jeśli chcemy ocenić skuteczność programu nauczania, możemy zastosować podobne zapytanie, aby zidentyfikować liczbę uczniów osiągających określony poziom w nauce. W praktyce ważne jest, aby zrozumieć, że przy używaniu funkcji agregujących w SQL, wyniki mogą być niezwykle cenne dla menedżerów edukacyjnych, którzy podejmują decyzje na podstawie danych. Rekomendowane jest również zrozumienie kontekstu, w jakim są stosowane takie zapytania, oraz sposób, w jaki można je optymalizować dla większych zbiorów danych, aby uzyskać szybkie i dokładne wyniki.

Pytanie 23

Który typ komunikatu jest przesyłany WYŁĄCZNIE „w dół” - od kierownika do pracownika?

A. uwagi dotyczące polityki organizacji
B. zgłaszanie
C. poszukiwanie rozwiązań
D. powierzenie zadania
Pozostałe komunikaty płyną inaczej. „Zgłaszanie” (np. problemu) idzie „w GÓRĘ”, od pracownika do kierownika. „Poszukiwanie rozwiązań” to zwykle współpraca dwustronna, a „uwagi o polityce organizacji” mogą płynąć w obie strony. Wyłącznie „w dół” idzie powierzenie zadania.

Pytanie 24

Aby w tabeli praca, tworzonej w SQL, dodać warunek w kolumnie stawka, który nakazuje przyjmowanie dodatnich wartości rzeczywistych mniejszych niż 50, należy zastosować zapis

A. ... stawka float CHECK(stawka BETWEEN 0 AND 50.00)
B. ... stawka float CHECK(stawka>0 OR stawka<50.00)
C. ... stawka float CHECK(stawka IN (0, 50.00))
D. ... stawka float CHECK(stawka>0 AND stawka<50.00)
Aby w tabeli SQL dodać warunek dla kolumny 'stawka', który zapewni, że wartości będą rzeczywiste, dodatnie i mniejsze od 50, należy skorzystać z klauzuli CHECK. Odpowiedni zapis to 'CHECK(stawka > 0 AND stawka < 50.00)'. Klauzula CHECK w SQL pozwala na definiowanie ograniczeń dla wartości kolumny, co jest kluczowe w zapewnieniu integralności danych. W tym przypadku, użycie operatora AND jest istotne, ponieważ umożliwia jednoczesne sprawdzenie dwóch warunków: że 'stawka' jest większa od 0 oraz mniejsza od 50. Zastosowanie tego warunku jest zgodne z zasadami normalizacji bazy danych, która ma na celu eliminację nieprawidłowych danych. Przykładowo, jeśli spróbujesz wprowadzić wartość 0 lub 50 do kolumny 'stawka', system zwróci błąd, co zapobiega wprowadzeniu niepożądanych danych. Takie podejście jest również zalecane w standardach SQL, takich jak ANSI SQL, które podkreślają znaczenie walidacji danych.

Pytanie 25

Wymień dwa sposoby na zabezpieczenie bazy danych Microsoft Access

A. Ustalenie zabezpieczeń na poziomie użytkownika oraz w sesji
B. Zaszyfrowanie pliku bazy danych oraz wiadomości SMS z kodem autoryzacyjnym
C. Ustalanie hasła do otwarcia bazy danych oraz zabezpieczeń na poziomie użytkownika
D. Funkcje anonimowe oraz ustawienie hasła do otwarcia bazy danych
Ustalanie hasła do otwarcia bazy danych oraz zabezpieczeń na poziomie użytkownika to kluczowe elementy ochrony danych w Microsoft Access. Ustalenie hasła otwarcia bazy danych zapewnia podstawowy poziom bezpieczeństwa, uniemożliwiając nieautoryzowanym użytkownikom dostęp do pliku. W praktyce, aby ustawić hasło, wystarczy przejść do opcji 'Informacje' w menu, a następnie wybrać 'Szyfrowanie z hasłem'. Zabezpieczenia na poziomie użytkownika natomiast pozwalają na definiowanie ról i uprawnień dla różnych użytkowników, co jest istotne w sytuacjach, gdzie dostęp do danych powinien być ograniczony do wybranych osób. Implementacja tych rozwiązań jest zgodna z dobrymi praktykami bezpieczeństwa danych, które zalecają stosowanie wielowarstwowych mechanizmów ochrony. Przykładem może być firma, która przechowuje wrażliwe dane klientów, gdzie konieczne jest, aby tylko wyznaczeni pracownicy mieli dostęp do konkretnych informacji, co można zrealizować właśnie poprzez zabezpieczenia na poziomie użytkownika.

Pytanie 26

$liczba = 10;
while($liczba<50){
   echo "$liczba";
   $liczba=$liczba+5;
}
Jakie liczby zostaną wyświetlone w wyniku działania tej pętli w języku PHP?

A. 10 15 20 25 30 35 40 45 50
B. 10 15 20 25 30 35 40 45
C. 0 5 10 15 20 25 30 35 40 45
D. 0 5 10 15 20 25 30 35 40 45 50
Wynik działania pętli w języku PHP jest poprawny, ponieważ zaczyna się od wartości 10, a następnie w każdej iteracji zwiększa tę wartość o 5, aż osiągnie 50, które nie jest wliczane do wypisywanych wyników. Wartości wypisywane w trakcie działania pętli to: 10, 15, 20, 25, 30, 35, 40, 45. Wartością graniczną jest 50, która przerywa działanie pętli. Taki mechanizm jest często stosowany w programowaniu, zwłaszcza w sytuacjach, gdzie musimy iteracyjnie przetwarzać dane w określonym zakresie. Dobrą praktyką jest również upewnienie się, że warunki pętli są jasno określone, co zapobiega niepożądanym wynikom, takim jak nieskończone pętle. W PHP używamy pętli takich jak 'while', 'for' i 'foreach', które są kluczowymi elementami w programowaniu i pozwalają na efektywne przetwarzanie danych.

Pytanie 27

1       <script>
2       const liczba = 1;
3       let gora = 10, dol = 1;
4       let podaj = parseInt(prompt("Podaj liczbę całkowitą z zakresu <1-10>"));
5       liczba = Math.random() * ( gora - dol + 1 ) + dol;
6       liczba = parseInt(liczba);
7       if (liczba == podaj) {
8           document.write("Liczba została odgadnięta");
9       } else {
10          document.write("Niestety nie tym razem");
11      }
12      </script>
Przedstawiony fragment kodu JavaScript powinien wylosować liczbę całkowitą z zakresu <1 , 10> i porównać ją z liczbą podaną przez użytkownika w oknie dialogowym. Skrypt po uruchomieniu generuje błąd, którego przyczyną jest
A. niepotrzebne użycie konwersji z funkcji prompt do liczby całkowitej.
B. błędna składnia instrukcji warunkowej if ... else.
C. przypisanie wartości do stałej liczba w piątej linii skryptu .
D. błędna składnia deklaracji zmiennych gora i dol w drugiej linii skryptu.
Przyczyną błędu w tym skrypcie jest próba nadpisania stałej zadeklarowanej słowem kluczowym const. W drugiej linii kodu mamy `const liczba = 1;`, czyli tworzymy stałą o nazwie `liczba` i nadajemy jej wartość początkową 1. Zgodnie ze specyfikacją ECMAScript, zmienne zadeklarowane przez `const` nie mogą być później modyfikowane poprzez przypisanie. Innymi słowy: raz ustawiona wartość const jest niezmienna. Tymczasem w piątej linii skryptu występuje instrukcja `liczba = Math.random() * (gora - dol + 1) + dol;`, która dokładnie próbuje przypisać nową wartość do tej stałej. Przeglądarka reaguje na to błędem typu `TypeError` lub `Assignment to constant variable`, i skrypt się sypie zanim w ogóle dojdzie do porównania z wartością wprowadzoną przez użytkownika. W praktyce, jeśli chcemy losować liczbę, zmienna powinna być zadeklarowana przez `let` lub `var`, np. `let liczba;` w drugiej linii, a dopiero potem przypisywać wartość wylosowaną z `Math.random()`. Dobra praktyka jest taka, żeby do `const` dawać rzeczy, które naprawdę nie będą zmieniane w logice programu, np. `const GORA = 10; const DOL = 1;` albo stałe konfiguracyjne, adresy URL API itp. Natomiast zmienne, które w czasie działania skryptu mają się zmieniać (liczniki pętli, wyniki obliczeń, losowania), deklarujemy jako `let`. Z mojego doświadczenia jednym z częstszych błędów początkujących jest właśnie mechaniczne używanie `const` „bo jest nowoczesne” bez zrozumienia, że to blokuje późniejsze przypisania. Warto też zauważyć, że sama konstrukcja losowania liczby całkowitej z przedziału <1,10> jest poprawna: `Math.random()` daje liczbę z zakresu <0,1), potem skalujemy ją do odpowiedniego przedziału i na końcu obcinamy część ułamkową przez `parseInt` lub lepiej `Math.floor`. Gdyby `liczba` była zadeklarowana jako `let`, skrypt by działał zgodnie z założeniami.

Pytanie 28

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

A. PHP
B. JavaScript
C. Python
D. Perl
JavaScript to język skryptowy, który super nadaje się do interakcji z użytkownikami w przeglądarkach. Właściwie to jedyny język z tej całej paczki, który działa po stronie klienta. To znaczy, że skrypty w JavaScript są interpretowane przez przeglądarkę, a nie przez serwer. Można go używać na przykład do zmieniania treści stron w locie, walidacji formularzy, animacji i różnych interaktywnych elementów. Jest też ważnym elementem w technologiach internetowych, obok frameworków jak React, Angular czy Vue.js, które pomagają tworzyć nowoczesne aplikacje webowe. Uważam, że każdy programista webowy powinien znać JavaScript przynajmniej na poziomie średnim, żeby wdrażać dobre praktyki dotyczące wydajności i UX. Standardy takie jak ECMAScript mówią, jak ten język ma działać, a jego wszechstronność sprawia, że obecnie jest jednym z najpopularniejszych języków programowania na świecie. Ostatnio dużo mówi się też o używaniu go po stronie serwera z Node.js.

Pytanie 29

Obraz o rozdzielczości 72 PPI oznacza, że ma 72 piksele na:

A. cal
B. centymetr
C. milimetr
D. megabajt
Skrót PPI to „pixels per inch”, czyli piksele na CAL - więc 72 PPI oznacza 72 piksele przypadające na jeden cal długości obrazu. To miara gęstości obrazu rastrowego. Zapamiętaj: „inch” = cal, więc PPI zawsze odnosi się do cala, nie do centymetra czy milimetra.

Pytanie 30

Która instrukcja PHP wysyła tekst do przeglądarki (wyświetla go)?

A.
break
B.
echo
C.
exit
D.
type
Instrukcja echo w PHP wysyła tekst (lub wartość zmiennej) na wyjście, czyli do przeglądarki - np. echo "Witaj";. Dlatego tekst wyświetla echo.

Pytanie 31

Do czego służy polecenie GRANT w SQL?

A. do nadawania użytkownikom praw do obiektów
B. do aktualizacji istniejących danych
C. do odbierania użytkownikom praw
D. do wstawiania nowych danych do bazy
Polecenie GRANT należy do DCL i służy do NADAWANIA użytkownikom praw do obiektów bazy (np. SELECT, INSERT na tabeli). Dlatego GRANT nadaje użytkownikom uprawnienia.

Pytanie 32

Który format to RASTROWY format graficzny z kompresją BEZSTRATNĄ?

A. CDR
B. JNG
C. SVG
D. PNG
PNG to rastrowy format graficzny z kompresją BEZSTRATNĄ - zmniejsza rozmiar pliku bez pogorszenia jakości obrazu, dodatkowo obsługując przezroczystość. Dlatego nadaje się do grafik, w których liczy się czystość krawędzi i kolorów. Zapamiętaj: PNG = raster + bezstratność (+ kanał alfa).

Pytanie 33

Jak nazywa się technika sortowania, która polega na podziale zbioru na n przedziałów o równej długości, gdzie przeprowadza się sortowanie, a następnie analizuje i prezentuje posortowane elementy z tych przedziałów?

A. Sortowanie szybkie
B. Sortowanie bąbelkowe
C. Sortowanie kubełkowe
D. Sortowanie przez wybór
Sortowanie szybkie (ang. quicksort) jest algorytmem typu „dziel i zwyciężaj”, który działa poprzez wybór tzw. pivota i podział danych na mniejsze podzbiory, które są sortowane rekurencyjnie. Choć jest to jedna z najszybszych metod sortowania w praktyce, nie polega na podziale na kubełki, co czyni ją nieodpowiednią odpowiedzią na postawione pytanie. Sortowanie bąbelkowe (ang. bubble sort) natomiast, to algorytm, który porównuje sąsiadujące ze sobą elementy i wymienia je, jeśli są w złej kolejności. Jest to metoda mało efektywna, szczególnie dla dużych zbiorów danych, i nie ma zastosowania w kontekście podziału na przedziały. Z kolei sortowanie przez wybór (ang. selection sort) działa poprzez znajdowanie minimalnego (lub maksymalnego) elementu w zbiorze i przenoszenie go na początek, co również nie związane jest z koncepcją kubełków. Typowym błędem myślowym jest mylenie różnych metod sortowania, co często wynika z nieznajomości ich specyfiki i zasad działania. Różne algorytmy mają swoje unikalne cechy i zastosowania, a ich wybór powinien być oparty na charakterystyce danych oraz wymagań dotyczących wydajności, co jest kluczowe w praktycznych zastosowaniach informatycznych.

Pytanie 34

W języku PHP symbol "//" oznacza

A. operator dzielenia całkowitego
B. początek komentarza jednoliniowego
C. początek skryptu
D. operator alernatywy
W PHP znak "//" oznacza początek komentarza jednoliniowego. Komentarze są niezwykle ważnym elementem kodu, ponieważ pozwalają programistom na dodawanie objaśnień i notatek, które nie są wykonywane przez interpreter. Dzięki temu kod staje się bardziej czytelny i łatwiejszy w utrzymaniu, zwłaszcza w projektach zespołowych czy przy dłuższych skryptach. Na przykład, można użyć komentarza, aby wyjaśnić, jak działa dana funkcjonalność lub dlaczego podjęto określoną decyzję projektową. Ponadto, stosowanie komentarzy zgodnie z dobrymi praktykami zwiększa jakość dokumentacji projektu oraz ułatwia przyszłym programistom (lub samemu autorowi) zrozumienie logiki kodu. Warto również zauważyć, że w PHP istnieją inne sposoby komentowania, takie jak "#" dla komentarzy jednoliniowych oraz "/* ... */" dla komentarzy wieloliniowych. Użycie komentarzy w kodzie źródłowym jest istotnym aspektem programowania, promującym najlepsze praktyki związane z czytelnością i zarządzaniem projektami.

Pytanie 35

Aby obraz na stronie automatycznie dopasowywał się do rozmiaru ekranu, na którym strona jest wyświetlana, należy:

A. jego szerokość ustawić w wartościach procentowych
B. jeden z wymiarów ustawić w pikselach
C. oba jego wymiary ustawić w pikselach
D. nie zmieniać jego wymiarów stylami CSS
Responsywny obraz skaluje się razem z układem strony. Uzyskuje się to, ustawiając jego szerokość w jednostce względnej - w procentach, na przykład img { width: 100%; max-width: 100%; }. Obraz dopasowuje się wtedy do szerokości kontenera, a wysokość zwykle pozostawia się jako auto, by zachować proporcje. Dlatego szerokość obrazu ustawia się w wartościach procentowych.

Pytanie 36

W tej definicji obiektu JavaScript która składowa jest METODĄ?

var obj1 = {
  czescUlamkowa: 10,
  czescCalkowita: 20,
  oblicz: function() {...}
}
A.
czescUlamkowa
B.
czescCalkowita
C.
obj1
D.
oblicz
W obiekcie JavaScript składowa będąca FUNKCJĄ to metoda. Tutaj oblicz: function() {...} przypisuje funkcję, więc oblicz jest metodą. Dlatego metodą jest oblicz.

Pytanie 37

Brak którego elementu spowoduje BŁĄD/ostrzeżenie walidatora HTML?

A.
<link>
B.
<title>
C. przynajmniej jednego <h1>
D.
<meta name="author">
W poprawnym dokumencie HTML wymagany jest znacznik <title> (w sekcji <head>) - określa tytuł strony widoczny na karcie przeglądarki i w wynikach wyszukiwania. Jego brak walidator zgłasza jako błąd. Dlatego chodzi o <title>.

Pytanie 38

W zamieszczonym przykładzie pseudoklasa hover sprawi, że styl pogrubiony będzie przypisany

a:hover { font-weight: bold; }
A. wszystkim odnośnikom odwiedzonym.
B. odnośnikowi, w momencie kiedy najechał na niego kursor myszy.
C. wszystkim odnośnikom nieodwiedzonym.
D. każdemu odnośnikowi niezależnie od aktualnego stanu.
Twoja odpowiedź jest prawidłowa. Pseudoklasa :hover w CSS jest używana do stylizacji elementów, na które najechał kursor myszy. Na przykład, jeżeli użyjemy stylu 'font-weight: bold;' z pseudoklasą :hover, tekst odnośnika stanie się pogrubiony tylko wtedy, kiedy na niego najedziemy kursorem. Jest to bardzo przydatne w interaktywnym designie strony internetowej, gdzie możemy w prosty sposób zasygnalizować użytkownikowi, że dany element jest aktywny lub interaktywny. Pamiętaj, że pseudoklasy w CSS są potężnym narzędziem, które pozwala nam na tworzenie zaawansowanych efektów bez konieczności użycia JavaScriptu. Znajomość i umiejętność wykorzystania pseudoklas jest zatem kluczową umiejętnością każdego front-end developera.

Pytanie 39

Która para znaczników HTML daje (bez stylów CSS) taki sam efekt wizualny - pogrubienie tekstu?

A. <b> i <strong>
B. <meta> i <title>
C. <p> i <h2>
D. <b> i <big>
Znaczniki <b> i <strong> domyślnie dają ten sam efekt wizualny - pogrubienie tekstu. Różnią się jednak znaczeniem (semantyką): <b> to czysto wizualne pogrubienie, a <strong> oznacza treść WAŻNĄ, co wykorzystują m.in. czytniki ekranu i wyszukiwarki. Podobna para to <i> i <em> (pochylenie). Dlatego wizualnie identyczny efekt daje para <b> i <strong>.

Pytanie 40

Tabele Osoby oraz Adresy są ze sobą połączone relacją typu jeden do wielu. Jakie zapytanie SQL powinno być użyte, aby poprawnie wyświetlić nazwiska oraz odpowiadające im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby, Adresy
B. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id=Adresy.id
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id=Adresy.id FROM Osoby, Adresy
D. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id=Adresy.id
Użycie składni JOIN w zapytaniu SQL to naprawdę dobra decyzja, jeśli chodzi o pokazywanie powiązanych danych z różnych tabel w bazie danych. W odpowiedzi zastosowałeś INNER JOIN, co jest jednym z tych najpopularniejszych sposobów łączenia tabel, zwłaszcza gdy mamy wspólny klucz. W tym przypadku klucz obcy Adresy_id w tabeli Osoby łączy się z kluczem głównym id w tabeli Adresy, co pozwala na wyciągnięcie nazwisk z Osób oraz odpowiadających im miast z Adresów. W praktyce takie użycie JOIN jest zgodne z najlepszymi praktykami, bo ułatwia zarządzanie danymi i sprawia, że wszystko jest czytelniejsze. Gdy pracujesz nad bardziej skomplikowanymi systemami, umiejętność poprawnego łączenia tabel jest kluczowa. Umożliwia to utrzymanie porządku w danych i zmniejszenie ich powtarzalności przez normalizację. I naprawdę, takie zapytania są mega przydatne w analizie danych, generowaniu raportów czy w aplikacjach, które operują na dużych zbiorach, gdzie wydajność i przejrzystość kodu SQL są niezwykle ważne.