Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 4 maja 2026 18:53
  • Data zakończenia: 4 maja 2026 19:04

Egzamin zdany!

Wynik: 34/40 punktów (85,0%)

Wymagane minimum: 20 punktów (50%)

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

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

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

Pytanie 2

Gdzie w dokumencie HTML mogą być umieszczane fragmenty kodu JavaScript?

A. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
B. tak w sekcji <head>, jak i <body>, w znaczniku <java>
C. wyłącznie w sekcji <body>, w znaczniku <java>
D. jedynie w sekcji <head>, w znaczniku <script>
Wiesz, wstawianie kodu JavaScript do dokumentu HTML powinno odbywać się w znaczniku <script>. Możesz go umieścić zarówno w <head>, jak i w <body>. Często wrzucamy skrypty do <head>, bo chcemy, żeby załadowały się przed wyświetleniem treści. To się przydaje, gdy skrypty zmieniają coś w DOM. Z drugiej strony, jak wrzucisz je do <body>, to skrypty będą ładowane po całej treści, co może przyspieszyć to, co widzi użytkownik. Na przykład, jeśli tworzysz coś interaktywnego, lepiej umieścić skrypty na dole, żeby nie blokować renderowania. Dobrze jest też pamiętać o atrybucie 'defer' w <script>, bo dzięki temu skrypt się ściąga równolegle z innymi rzeczami, ale działa dopiero jak cały dokument jest załadowany. To ważne, żeby strony działały sprawnie i były przyjemne w użytkowaniu.

Pytanie 3

W JavaScript zdefiniowano obiekt. W jaki sposób można uzyskać dostęp do właściwości nazwisko?

var osoba = {imie: "Anna", nazwisko: "Kowalska", rok_urodzenia: 1985};
A. osoba[1]
B. osoba::nazwisko
C. osoba.nazwisko
D. osoba[2]
W przypadku niepoprawnych odpowiedzi osoba[2], osoba::nazwisko i osoba[1] odniesienie do właściwości obiektu w JavaScript zostało błędnie przedstawione. Metoda osoba[2] oraz osoba[1] sugeruje użycie notacji tablicowej, która jest stosowana do odwoływania się do elementów tablicy przez ich indeks. Jednak obiekt w JavaScript nie jest tablicą, a zestawem par klucz-wartość, dlatego stosowanie indeksów w tym kontekście nie ma zastosowania. Indeksowanie za pomocą nawiasów kwadratowych jest właściwe w przypadku tablic, natomiast obiekty wymagają dostępu przez klucze opisane jako stringi. Próba użycia osoba::nazwisko jest niepoprawna, ponieważ podwójny dwukropek nie jest częścią syntaksu JavaScript pozwalającego na dostęp do właściwości obiektu. Tego typu notacja może pojawiać się w innych językach programowania jak C++ jako operator zakresu, jednak w JavaScript jest pozbawiona sensu. Błędny wybór w tym przypadku wynika z niezrozumienia różnicy między różnymi strukturami danych oraz ich specyficznej składni w obrębie różnych języków programowania. Bardzo istotne jest zapamiętanie, że w JavaScript do właściwości obiektu najczęściej odwołuje się za pomocą notacji kropkowej, co jest nie tylko standardem, ale również poprawia czytelność i zrozumiałość kodu. Świadomość różnicy między tablicami a obiektami oraz umiejętność wyboru odpowiedniej składni są kluczowe w pisaniu efektywnego i poprawnego kodu w JavaScript. Poprawne zrozumienie tych różnic i składni pozwala unikać błędów i pisania kodu, który może być trudny do debugowania i zrównoważenia w przyszłości.

Pytanie 4

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

A. now
B. len
C. year
D. upper
Funkcja SQL 'now()' jest jedną z funkcji, które nie wymagają argumentów, a jej głównym zadaniem jest zwracanie bieżącej daty i godziny systemowej w formacie odpowiednim dla bazy danych. Użycie tej funkcji jest niezwykle przydatne w kontekście rejestrowania momentu wykonania operacji w bazie danych, na przykład przy dodawaniu nowych rekordów do tabeli. Przykładowe zastosowanie tej funkcji można zobaczyć w poniższym zapytaniu SQL: 'INSERT INTO wydarzenia (nazwa, data_utworzenia) VALUES ('Nowe Wydarzenie', now());'. Takie podejście nie tylko automatyzuje proces rejestrowania czasu, ale także zapewnia spójność danych, eliminując ryzyko błędów związanych z ręcznym wprowadzaniem daty. W praktyce, stosowanie funkcji, które nie wymagają argumentów, jest często zgodne z zasadami dobrych praktyk programistycznych, które promują czytelność i prostotę kodu.

Pytanie 5

Jakie będzie efektem zastosowanego formatowania CSS dla nagłówka trzeciego stopnia

<style> h3 { background-color: grey; } </style>

<h3 style="background-color: orange;">Rozdział 1.2.2.</h3>

A. kolor tekstu będzie pomarańczowy
B. tło nagłówka będzie pomarańczowe
C. tło nagłówka będzie w odcieniu szarości
D. kolor tekstu będzie szary
Odpowiedź, że tło będzie pomarańczowe, jest jak najbardziej trafna. W kodzie HTML użyto atrybutu "style" w tagu <h3>, który ma wyższy priorytet niż to, co jest zapisane w sekcji <style>. Wartość background-color to "orange", więc tło nagłówka trzeciego stopnia naprawdę będzie pomarańczowe. Znamy zasady kaskadowych arkuszy stylów, które mówią, że style bezpośrednio przypisane do elementów HTML mają pierwszeństwo. Kiedy chcemy, aby nagłówki miały różne kolory w zależności od tego, gdzie są użyte, inline styles są bardzo przydatne – zwłaszcza w prototypach. Ale z drugiej strony, z mojego doświadczenia, nadmiar inline styles może skomplikować późniejsze zarządzanie kodem, dlatego lepiej trzymać się klas CSS, żeby wszystko było bardziej uporządkowane.

Pytanie 6

Do czego służy funkcja PHP o nazwie mysql_num_rows?

A. oddawać następny rekord z wyników zapytania
B. podawać liczbę wierszy, które są w wynikach zapytania
C. zwracać rekord, którego numer został przekazany jako parametr funkcji
D. przyporządkować numery rekordom w bazie danych
Funkcja mysql_num_rows w PHP jest kluczowym narzędziem do interakcji z bazami danych MySQL, umożliwiając programistom efektywne zarządzanie danymi. Jej głównym zadaniem jest zwrócenie liczby wierszy, które zostały zwrócone w wyniku zapytania SQL. Jest to niezwykle przydatne w sytuacjach, gdy chcemy ocenić, ile rekordów spełnia określone kryteria, co może być istotne na przykład w przypadku paginacji wyników lub dynamicznego dostosowywania interfejsu użytkownika w zależności od liczby dostępnych danych. Użycie tej funkcji polega na przesłaniu do niej wskaźnika na wynik zapytania, co pozwala na bezpośrednie uzyskanie liczby wierszy bez konieczności przeszukiwania danych. Przykładowo, po wykonaniu zapytania SELECT, aby uzyskać liczbę wierszy, wystarczy użyć: $result = mysql_query('SELECT * FROM tabela'); $liczba_wierszy = mysql_num_rows($result);. Funkcja ta jest zgodna z wytycznymi dotyczącymi standardów SQL i jest szeroko stosowana w aplikacjach webowych, które wymagają efektywnego przetwarzania danych. Należy jednak pamiętać, że mysql_num_rows jest częścią przestarzałego rozszerzenia MySQL, a programiści powinni rozważyć użycie mysqli lub PDO, które oferują lepszą obsługę i bezpieczeństwo.

Pytanie 7

Która funkcja języka PHP służy do zapisu danych do pliku?

A. fgets()
B. fread()
C. fwrite()
D. readfile()
Poprawna odpowiedź to fwrite(), ponieważ jest to podstawowa funkcja PHP służąca do zapisu danych do pliku. W typowym scenariuszu najpierw otwierasz plik funkcją fopen(), np. w trybie 'w' (zapis, nadpisanie) albo 'a' (dopisywanie na koniec), a dopiero potem używasz fwrite($uchwyt, $dane). Taki schemat: $fp = fopen('log.txt', 'a'); fwrite($fp, "Nowy wpis\n"); fclose($fp); to w praktyce standardowy wzorzec pracy z plikami w PHP. Moim zdaniem warto od początku wyrabiać sobie nawyk sprawdzania, czy fopen() się udało (czy nie zwróciło false) oraz czy fwrite() nie zwróciło 0 lub false, bo to jedna z podstawowych dobrych praktyk w programowaniu webowym. W kontekście aplikacji internetowych fwrite() często wykorzystuje się do zapisywania logów (np. własny prosty system logowania błędów), przechowywania prostych danych konfiguracyjnych, cache’owania wygenerowanych stron HTML do plików statycznych, a nawet do eksportu danych do plików CSV. W realnych projektach PHP zapis do pliku trzeba łączyć z odpowiednimi uprawnieniami katalogów na serwerze oraz z kontrolą błędów, żeby aplikacja zachowywała się przewidywalnie nawet wtedy, gdy system plików odmawia zapisu. Dobre praktyki mówią też, żeby nie mieszać logiki aplikacji z zapisem do pliku w losowych miejscach kodu, tylko wydzielić osobne funkcje lub klasy (np. Logger, FileStorage). fwrite() jest wtedy używane pod spodem, a reszta aplikacji tylko woła te wyższe warstwy. Warto też pamiętać o kodowaniu znaków (UTF-8) i o tym, żeby przy danych binarnych (np. obrazki, PDF-y) otwierać plik w trybie 'wb' lub 'ab'. To niby drobiazgi, ale w praktyce często decydują o tym, czy program działa stabilnie na różnych serwerach i systemach operacyjnych.

Pytanie 8

Witryna internetowa powinna mieć zaprezentowaną strukturę bloków. Aby osiągnąć ten układ, należy przypisać sekcjom odpowiednie właściwości w następujący sposób:

Ilustracja do pytania
A. float tylko dla bloków: 3, 4; clear dla bloku 5
B. float tylko dla bloku 2; clear dla bloków: 3, 4
C. float wyłącznie dla bloku 5; clear dla bloku 2
D. float tylko dla bloków: 2, 3, 4; clear dla bloku 5
Żeby osiągnąć układ, który widzisz w pytaniu, musisz dobrze zrozumieć, jak działają właściwości CSS float i clear. Właściwość float umożliwia przesunięcie elementów w lewo lub w prawo w stosunku do ich kontenera oraz innych elementów. To jest przydatne do tworzenia układów kolumnowych. W tym przypadku bloki 2, 3 i 4 muszą być przesunięte w prawo, żeby ułożyły się obok siebie na poziomie. Blok 2 jest największy i pełni rolę ramki dla pozostałych bloków. Użycie float dla tych bloków daje oczekiwany efekt. Jednak żeby blok 5 znalazł się pod całą strukturą, musisz zastosować clear dla bloku 5. Dzięki temu clear, blok 5 nie będzie otoczony przez inne elementy z float i znajdzie się poniżej. Z mojego doświadczenia, praktyczne wykorzystanie float i clear jest świetne, bo pozwala na tworzenie responsywnych układów bez potrzeby sięgania po bardziej skomplikowane metody jak flexbox czy grid. Choć float nie jest już tak powszechnie stosowany w profesjonalnych projektach, dobrze jest znać jego działanie i ograniczenia, żeby lepiej rozumieć ewolucję CSS oraz móc pracować z kodem, który jeszcze wykorzystuje te klasyczne metody.

Pytanie 9

Przed przystąpieniem do tworzenia kopii zapasowej bazy danych, aby była ona poprawna i zdatna do późniejszego przywrócenia, konieczne jest sprawdzenie

A. poprawności składni zapytań
B. uprawnień dostępu do serwera bazy danych
C. spójności bazy danych
D. opcji udostępnienia bazy danych
Spójność bazy danych to kluczowy aspekt, który należy sprawdzić przed wykonaniem kopii bezpieczeństwa. Oznacza to, że wszystkie dane w bazie muszą być zgodne z ustalonymi regułami i zapewniać prawidłowe relacje między różnymi tabelami oraz rekordami. Na przykład, jeżeli w bazie danych znajdują się relacje między tabelami, to każda referencja musi wskazywać na istniejący rekord. W praktyce, przed wykonaniem kopii zapasowej, administratorzy często przeprowadzają operacje takie jak walidacja danych, aby upewnić się, że nie ma błędów, które mogłyby prowadzić do nieprawidłowych wyników po przywróceniu danych. Dobre praktyki w zarządzaniu bazami danych, takie jak regularne wykonywanie kontroli spójności oraz audytów danych, pomagają zminimalizować ryzyko problemów z danymi. Warto również korzystać z narzędzi automatyzacyjnych, które mogą wykrywać niezgodności w danych, co znacznie ułatwia proces przed wykonaniem kopii zapasowej.

Pytanie 10

Do zachowań moralnych w środowisku pracy można zaliczyć

A. przestrzeganie poufności zawodowej
B. używanie sprzętu biurowego w celach osobistych
C. udostępnianie znajomym informacji osobowych pracowników
D. przekazywanie członkom rodziny służbowych materiałów eksploatacyjnych
Przestrzeganie tajemnicy zawodowej jest kluczowym elementem etyki w miejscu pracy. Oznacza ono, że pracownicy są zobowiązani do nieujawniania informacji, które zdobyli w trakcie wykonywania swoich obowiązków zawodowych, a które mogą narazić firmę lub jej klientów na szkodę. Przykłady obejmują nieujawnianie danych finansowych firmy, informacji o kliencie czy szczegółów dotyczących strategii biznesowej. W praktyce, przestrzeganie tajemnicy zawodowej wspiera zaufanie między pracownikami a pracodawcą oraz z klientami, co jest niezbędne dla długofalowego sukcesu organizacji. Wiele branż, takich jak finanse, ochrona zdrowia czy prawo, posiada szczegółowe regulacje dotyczące ochrony danych i tajemnicy zawodowej. Dobrymi praktykami są m.in. przeprowadzanie szkoleń w zakresie ochrony danych, stosowanie polityki zarządzania informacjami oraz wprowadzenie procedur zgłaszania incydentów związanych z naruszeniem tajemnicy zawodowej. Ogólnie rzecz biorąc, etyczne podejście do tajemnicy zawodowej przyczynia się do budowy pozytywnego wizerunku organizacji oraz minimalizowania ryzyka prawnego i reputacyjnego.

Pytanie 11

Definicja stylu w CSS, którą zaprezentowano, dotyczy odsyłacza, który

a:visited {color: orange;}
A. ma wskaźnik myszy umieszczony nad sobą
B. był wcześniej odwiedzany
C. posiada niepoprawny adres URL
D. jeszcze nigdy nie został odwiedzony
Pseudoklasa :visited w CSS jest używana do stylizowania odsyłaczy, które zostały już odwiedzone przez użytkownika. Oznacza to, że przeglądarka zapisuje informacje o odwiedzonych stronach w historii przeglądania i na tej podstawie zmienia styl odsyłacza. W przykładzie a:visited {color: orange;} zmienia kolor tekstu odwiedzonych linków na pomarańczowy. Jest to powszechna praktyka stosowana w projektowaniu stron internetowych, która pomaga użytkownikom wizualnie odróżniać odwiedzone odsyłacze od nieodwiedzonych, co poprawia ich orientację na stronie. Dobre praktyki projektowania zakładają tworzenie intuicyjnych interfejsów użytkownika i użycie mechanizmu :visited do poprawy użyteczności. Ważne jest, aby unikać stosowania bardziej zaawansowanych stylów w :visited, takich jak zmiana rozmiaru czcionki czy dodawanie obrazów tła, ze względu na ograniczenia bezpieczeństwa przeglądarek, które chronią prywatność użytkowników. Korzystanie z :visited w sposób świadomy i zgodny ze standardami W3C zwiększa efektywność nawigacji i jest istotnym elementem przyjaznego projektowania stron WWW

Pytanie 12

Rezultatem wykonania podanego zapytania SQL jest

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. Suma ocen uczniów, których średnia ocen wynosi 5.
B. Liczba uczniów, którzy mają średnią ocen równą 5.
C. Całkowita liczba uczniów.
D. Średnia ocen wszystkich uczniów.
Zapytanie SQL, które zostało przedstawione, używa funkcji `COUNT(*)` w celu zliczenia wszystkich wierszy w tabeli `Uczniowie`, które spełniają określone kryterium w klauzuli `WHERE`. W tym przypadku kryterium to jest `srednia = 5`. Oznacza to, że zapytanie zlicza wszystkich uczniów, których średnia ocen wynosi dokładnie 5. Takie użycie `COUNT(*)` jest zgodne ze standardami SQL, gdzie funkcja ta służy do zliczania wszystkich wierszy w zbiorze wyników, które spełniają dane warunki. W praktyce, uzyskanie liczby uczniów z określoną średnią może być przydatne w analizie statystycznej lub raportowaniu wyników akademickich. Zrozumienie, jak korzystać z `COUNT(*)` w połączeniu z różnymi warunkami `WHERE`, jest kluczowe dla efektywnego zarządzania i analizowania danych w bazach danych SQL. Dzięki temu można wydobywać konkretne informacje, które wspierają podejmowanie decyzji w edukacji i zarządzaniu danymi.

Pytanie 13

Jakie polecenie należy zastosować, aby w trakcie tworzenia tabeli dodać klucz obcy obejmujący wiele kolumn?

A. CONSTRAINT fk_osoba_uczen FOREIGN KEY ON (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
B. CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)
C. CONSTRAINT(nazwisko,imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
D. CONSTRAINT(nazwisko,imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
Wszystkie odpowiedzi inne niż 'CONSTRAINT fk_osoba_uczen FOREIGN KEY (nazwisko, imie) REFERENCES osoby (nazwisko,imie)' zawierają błędy, które mogą prowadzić do nieprawidłowego definiowania klucza obcego. Pierwsza odpowiedź niepoprawnie używa terminu 'FOREIGN REFERENCES KEY', co jest błędną konstrukcją, ponieważ nie istnieje taki termin w standardzie SQL. Poprawnym terminem jest 'FOREIGN KEY', który jasno wskazuje na rolę kolumn w kontekście relacji między tabelami. Dwie kolejne odpowiedzi błędnie zdefiniowały składnię definicji klucza obcego, używając niepoprawnych konstrukcji, takich jak 'ON' czy niewłaściwego umiejscowienia nazwy ograniczenia. Klucz obcy powinien być zdefiniowany w kontekście kolumn, które są nim objęte, a także powinien odnosić się do kolumn w innej tabeli, co w tych przypadkach nie zostało zrobione prawidłowo. Typowe błędy myślowe prowadzące do takich wniosków obejmują mylenie terminów i składni SQL, co może wynikać z braku znajomości standardów SQL lub po prostu z nieuwagi. Ważne jest, aby osoby pracujące z bazami danych dokładnie znały zasady składni oraz funkcje, jakie pełnią różne elementy definicji tabel i relacji, aby unikać takich błędów i zapewniać integralność danych.

Pytanie 14

Uprawnienia obiektowe przyznawane użytkownikom serwera bazy danych mogą umożliwiać lub ograniczać

A. przechodzić uprawnienia
B. zmieniać role i konta użytkowników
C. realizować operacje na bazie, takie jak wstawianie lub modyfikowanie danych
D. wykonywać polecenia, takie jak tworzenie kopii zapasowej
Uprawnienia obiektowe w kontekście baz danych pozwalają na kontrolowanie dostępu do różnych zasobów, takich jak tabele, widoki czy procedury składowane. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie czy modyfikowanie danych, jest prawidłowa, ponieważ uprawnienia te bezpośrednio wpływają na możliwości użytkownika w zakresie manipulacji danymi. Przykładowo, jeśli użytkownik posiada uprawnienie do INSERT, może dodawać nowe rekordy do tabeli, natomiast uprawnienie UPDATE pozwala na zmianę istniejących danych. Takie zarządzanie uprawnieniami jest kluczowe w kontekście bezpieczeństwa danych oraz zapewnienia integralności systemu, ponieważ pozwala na ograniczenie dostępu tylko do tych operacji, które są niezbędne dla danego użytkownika. W praktyce administratorzy baz danych stosują zasady minimalnych uprawnień, przyznając użytkownikom tylko te uprawnienia, które są niezbędne do wykonywania ich pracy, co jest zgodne z najlepszymi praktykami w zakresie zarządzania bezpieczeństwem baz danych.

Pytanie 15

Jaką szerokość zaplanowano dla treści strony, bazując na podanej definicji CSS?

body {
  border: 2px;
  height: 600px;
  width: 560px;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
A. 640 px
B. 2 px
C. 560 px
D. 600 px
Gratulacje, udzieliłeś poprawnej odpowiedzi. W definicji CSS dla elementu body, szerokość ustawiono na 560 px. Właściwość box-sizing: border-box, gwarantuje, że szerokość ta obejmuje również obramowanie. Dlatego, w praktyce, szerokość strony pozostawiona na treść wynosi 560 px. Wartości te są bardzo ważne przy projektowaniu stron internetowych, szczególnie przy tworzeniu responsywnych layoutów, gdzie musimy precyzyjnie kontrolować szerokość i rozmieszczenie elementów. Pamiętaj, że wykorzystanie odpowiednich jednostek i precyzyjne definiowanie wymiarów jest kluczowe dla zachowania poprawnej struktury strony. Dobrym nawykiem jest również stosowanie właściwości box-sizing: border-box, która ułatwia kontrolę nad rozmiarem elementów, zwłaszcza przy komplikowanych układach strony.

Pytanie 16

Aby poprawnie skomentować linię kodu w języku JavaScript, należy po znakach // wprowadzić komentarz x = Math.max(a,b,c); //

A. w zmiennej x maksymalna wartość ze zmiennych a, b, c
B. nieprawidłowe dane
C. w zmiennej x minimalna wartość ze zmiennych a, b, c
D. wybór wartości maksymalnej spośród zmiennych a, b oraz c
W analizowanej linii kodu JavaScript, wykorzystujemy funkcję Math.max, która służy do określenia maksymalnej wartości spośród podanych argumentów. W tym przypadku, wartości te są reprezentowane przez zmienne a, b oraz c. Zastosowanie funkcji Math.max jest standardem w programowaniu w JavaScript, co pozwala na efektywne przeprowadzenie operacji porównawczych. Użycie operatora przypisania '=' pozwala na zapisanie wyniku operacji do zmiennej x, co z kolei umożliwia dalsze przetwarzanie tej wartości w programie. Przykład użycia tej funkcji wygląda następująco: var x = Math.max(a, b, c);. Warto również zwrócić uwagę na to, że funkcja Math.max zwraca wartości numeryczne, co czyni ją niezastąpioną w przypadkach, gdy potrzebne jest porównanie różnych liczb w celu wyłonienia największej. W kontekście standardów, Math.max jest częścią obiektu Math, który jest wbudowany w JavaScript i podlega ogólnym zasadom ECMAScript. Dlatego znajomość i umiejętność stosowania tej funkcji jest kluczowa dla każdego programisty JavaScript.

Pytanie 17

Które z poniższych stwierdzeń jest poprawne w kontekście grafiki rastrowej?

A. Podczas skalowania obraz nie traci na jakości.
B. Grafika rastrowa nie jest zapisywana w formacie WMF (ang. Windows Metafile Format - format metaplików Windows).
C. Obraz zapisywany jest za pomocą figur geometrycznych rozmieszczonych w układzie współrzędnych.
D. Jest to przedstawienie obrazu poprzez siatkę pikseli, które są odpowiednio kolorowane w układzie pionowo-poziomym na ekranie komputera, drukarce lub innym urządzeniu wyjściowym.
Grafika rastrowa, znana również jako bitmapa, to sposób przedstawiania obrazu poprzez siatkę pikseli. Piksel, będący najmniejszym elementem obrazu, jest odpowiednio kolorowany, co pozwala na uzyskanie pełnozakresowego obrazu. Takie podejście jest powszechnie stosowane w różnych dziedzinach, od fotografii cyfrowej po projektowanie graficzne. W przypadku grafiki rastrowej, każdy piksel jest przypisany do konkretnego miejsca na siatce, co skutkuje tym, że zmieniając rozmiar obrazu poprzez skalowanie, jakość obrazu ulega pogorszeniu, gdyż piksele mogą być rozciągane lub stłumione. Warto też zauważyć, że formaty plików, takie jak JPEG, PNG czy BMP, są typowymi formatami dla grafiki rastrowej, gdzie każdy z nich ma swoje zastosowanie i charakterystyki. Przykładowo, JPEG jest idealny do zdjęć ze względu na kompresję stratną, podczas gdy PNG obsługuje przezroczystość. Zrozumienie tego, jak grafika rastrowa działa i jakie są jej ograniczenia, jest kluczowe dla każdego, kto pracuje z obrazem w środowisku cyfrowym.

Pytanie 18

Który efekt został zaprezentowany na filmie?

A. Zmniejszenie kontrastu zdjęcia.
B. Zwiększenie ostrości zdjęcia.
C. Zmiana jasności zdjęć.
D. Przenikanie zdjęć.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 19

Jak określa się podzbiór strukturalnego języka zapytań, który dotyczy formułowania zapytań do bazy danych przy użyciu polecenia SELECT?

A. SQL DDL (ang. Data Definition Language)
B. SQL DCL (ang. Data Control Language)
C. SQL DML (ang. Data Manipulation Language)
D. SQL DQL (ang. Data Query Language)
SQL DQL (Data Query Language) to podzbiór języka SQL, który koncentruje się na formułowaniu zapytań do baz danych w celu pobierania danych. Jego głównym elementem jest polecenie SELECT, które umożliwia użytkownikom wybieranie specyficznych danych z tabel oraz ich przetwarzanie w różnorodny sposób, w tym filtrowanie, sortowanie i łączenie danych z różnych źródeł. Przykładem zastosowania DQL jest zapytanie typu 'SELECT * FROM employees WHERE department = 'Sales';', które zwraca wszystkich pracowników z działu sprzedaży. DQL jest kluczowym elementem w analizie danych oraz raportowaniu, co sprawia, że znajomość tego podzbioru jest niezbędna dla analityków danych oraz programistów. Zrozumienie i umiejętność korzystania z DQL pozwala na efektywne wykorzystanie baz danych w praktycznych zastosowaniach biznesowych, takich jak generowanie raportów, analiza trendów oraz wspieranie decyzji strategicznych. Standardy SQL określają dobre praktyki związane z tworzeniem zapytań, co pozwala na zachowanie wydajności i czytelności kodu.

Pytanie 20

Tabela programy zawiera kolumny: nazwa_programu, nazwa_producenta, rok_wydania. Jak należy zapisać kwerendę SELECT, aby uzyskać wszystkie unikalne nazwy producentów?

A. SELECT DISTINCT nazwa_producenta FROM programy
B. SELECT nazwa_producenta FROM programy WHERE nazwa_producenta NOT DUPLICATE
C. SELECT nazwa_producenta FROM programy WHERE UNIQUE
D. SELECT UNIQUE nazwa_producenta FROM programy
Odpowiedź 'SELECT DISTINCT nazwa_producenta FROM programy;' jest poprawna, ponieważ słowo kluczowe DISTINCT jest standardowym sposobem w SQL na pobranie unikalnych wartości z kolumny w tabeli. W praktyce, gdy istnieje potrzeba wyciągnięcia listy unikalnych producentów z tabeli programy, użycie DISTINCT pozwala na eliminację duplikatów wyników. Przykładowo, jeśli w tabeli programy znajdują się powtarzające się wartości w kolumnie nazwa_producenta, zapytanie to zwróci każdą nazwę raz, co jest szczególnie przydatne w raportach i analizach danych. Zgodnie z najlepszymi praktykami SQL, użycie DISTINCT powinno być uzasadnione, aby uniknąć niepotrzebnych obliczeń na dużych zbiorach danych, ale w przypadku mniejszych tabel, może to być bardzo efektywne. Warto również zauważyć, że DISTINCT można stosować w połączeniu z innymi kolumnami, co daje możliwość bardziej złożonych zapytań. Przykładowo, można użyć 'SELECT DISTINCT nazwa_producenta, rok_wydania FROM programy;', aby uzyskać unikalne kombinacje producentów i lat wydania, co zwiększa elastyczność analizy danych.

Pytanie 21

Można przypisać wartości: static, relative, fixed, absolute oraz sticky do właściwości

A. display
B. list-style-type
C. text-transform
D. position
Właściwość CSS 'position' służy do określenia, w jaki sposób element jest pozycjonowany na stronie. Wartości takie jak static, relative, fixed, absolute oraz sticky definiują różne metody pozycjonowania elementów w kontekście innych obiektów oraz w kontekście samego okna przeglądarki. Na przykład, 'static' jest wartością domyślną, co oznacza, że elementy są umieszczane w naturalnym porządku w dokumencie HTML. 'Relative' pozwala na przesunięcie elementu względem jego normalnej pozycji, co daje większą elastyczność w projektowaniu layoutów. 'Absolute' pozycjonuje element względem najbliższego przodka, który również ma ustawioną właściwość 'position' różną od 'static', co umożliwia precyzyjne umiejscowienie elementów. 'Fixed' sprawia, że element pozostaje w tym samym miejscu w oknie przeglądarki, nawet podczas przewijania strony, co jest często wykorzystywane w przypadku nagłówków i stopki. 'Sticky' łączy cechy 'relative' i 'fixed', umożliwiając elementowi bycie na stałe w zasięgu widoku, ale tylko do momentu, gdy nie zostanie przewinięty poza jego kontener. Używanie tych wartości w praktyce pozwala na tworzenie responsywnych i dynamicznych interfejsów użytkownika, które są zgodne z dobrymi praktykami projektowania stron internetowych.

Pytanie 22

Do uruchomienia systemu CMS Joomla!, dla domyślnej konfiguracji, wymagane jest środowisko

A. IIS, PERL i MySQL
B. Apache, PHP i MySQL
C. C++ i MySQL
D. Python i MySQL
Poprawnie – Joomla! w swojej domyślnej, typowej instalacji działa w klasycznym stosie LAMP/WAMP, czyli serwer HTTP Apache, interpreter PHP oraz baza danych MySQL (obecnie często MariaDB, ale w praktyce nadal mówi się „MySQL”). Joomla! to system CMS napisany w PHP, więc potrzebuje środowiska, które potrafi wykonywać kod PHP po stronie serwera. Apache jest jednym z najpopularniejszych serwerów WWW, świetnie współpracuje z PHP poprzez moduł mod_php albo PHP-FPM i jest standardowo wspierany w dokumentacji Joomla!. Baza MySQL służy do przechowywania wszystkich treści: artykułów, użytkowników, menu, modułów, konfiguracji. Podczas instalacji Joomla! tworzy tabele w MySQL, zapisuje tam dane konfiguracyjne i później przy każdym wyświetleniu strony pobiera je zapytaniami SQL. W praktyce, jeśli stawiasz Joomla! na hostingu współdzielonym, dostajesz właśnie taki zestaw: Apache + PHP + MySQL, często z panelem typu cPanel lub DirectAdmin. To jest zgodne z dobrymi praktykami w branży webowej – prosty, sprawdzony stos, łatwy w administracji i dobrze udokumentowany. Moim zdaniem to też wygodne na etapie nauki: możesz lokalnie postawić XAMPP, WAMP lub Laragon i bez kombinowania odpalić Joomla! na swoim komputerze. W świecie produkcyjnym coraz częściej używa się też Nginx zamiast Apache, ale w treści pytania jest mowa o domyślnej, typowej konfiguracji, a tutaj dalej króluje Apache z PHP i MySQL jako standardowe, rekomendowane środowisko.

Pytanie 23

W programowaniu istnieje tylko jeden typ danych, który może przyjąć tylko dwie wartości. Jak nazywa się ten typ?

A. tablicowy
B. logiczy
C. ciągowy
D. znakowy
Typ logiczny, znany również jako typ boolean, jest jedynym typem danych w językach programowania, który przyjmuje wyłącznie dwie wartości: prawda (true) i fałsz (false). To podstawowe założenie czyni go niezwykle ważnym w kontekście programowania, zwłaszcza w logice warunkowej oraz w kontrolowaniu przepływu programu. W praktyce typ logiczny jest szeroko stosowany w instrukcjach warunkowych, takich jak 'if', 'while' czy 'for', gdzie pozwala na podejmowanie decyzji na podstawie spełnienia określonych warunków. Na przykład w języku Python możemy sprawdzić, czy zmienna jest większa od zera, a wynik tej operacji będzie wartością typu logicznego, co pozwoli na podjęcie dalszych działań w programie. Ponadto, typ logiczny odgrywa kluczową rolę w strukturach danych, takich jak listy i słowniki, które mogą przechowywać warunki logiczne jako klucze. Zgodnie z dobrymi praktykami programistycznymi, zaleca się używanie typu logicznego w sytuacjach, gdzie wynik operacji powinien być jednoznaczny, co prowadzi do poprawy czytelności i utrzymywalności kodu.

Pytanie 24

Jakie prawa będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł usuwać rekordy z tabeli klienci
B. Będzie mógł zmieniać strukturę tabeli klienci
C. Będzie mógł dodawać rekordy do tabeli klienci
D. Będzie mógł przeszukiwać dane w tabeli klienci
Polecenie GRANT ALL PRIVILEGES ON klienci TO jan pozwala użytkownikowi jan na wykonywanie wszystkich operacji na tabeli klienci. Obejmuje to działania takie jak SELECT INSERT UPDATE DELETE oraz inne operacje strukturalne jak ALTER czy DROP. Następnie polecenie REVOKE SELECT INSERT UPDATE DELETE ON klienci FROM jan usuwa część tych uprawnień. Po wykonaniu tych poleceń jan zachowuje uprawnienia do zmiany struktury tabeli klienci czyli może wykonywać operacje takie jak ALTER. ALTER TABLE jest kluczowe w zarządzaniu bazą danych pozwalając na dodawanie lub usuwanie kolumn oraz modyfikację typów danych. W praktyce oznacza to że jan może np. dostosować strukturę danych do nowych wymagań biznesowych co jest ważnym aspektem elastycznego zarządzania bazą danych. Umiejętność zarządzania strukturą tabel jest ważną częścią administracji baz danych i powinna być wykonywana zgodnie z najlepszymi praktykami aby zapewnić integralność danych i wydajność systemu. Użytkownik powinien regularnie przeglądać i aktualizować dokumentację techniczną aby śledzić wszelkie zmiany w strukturze bazy danych

Pytanie 25

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
B. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
C. Przypisze zmienną n do zmiennej s
D. Wyświetli długość tekstu ze zmiennej n
W języku JavaScript właściwość length dla obiektów typu String zwraca liczbę znaków w danym napisie. W przedstawionym fragmencie skryptu zmiennej n przypisano wartość stringa 'Napis1'. Kiedy używamy n.length uzyskujemy długość tego stringa czyli liczbę 6 ponieważ są w nim dokładnie sześć znaków. Następnie tę wartość przypisujemy zmiennej s co oznacza że s przechowuje liczbę 6. Jest to użyteczne w wielu sytuacjach takich jak walidacja danych wejściowych w formularzach sprawdzanie czy dany tekst mieści się w określonych limitach lub po prostu kontrola poprawności danych w procesach biznesowych. Wartość length jest często stosowana w pętlach do iteracji przez każdy znak w stringu lub w operacjach takich jak odcinanie fragmentów tekstu. Praktyka korzystania z length jest standardem w programowaniu webowym i zaliczana jest do dobrych praktyk ponieważ umożliwia łatwą manipulację tekstowymi danymi i kontrolę ich wymiaru co bywa krytyczne zwłaszcza w aplikacjach o dużej skali gdzie efektywność i klarowność kodu mają znaczenie kluczowe.

Pytanie 26

W CSS zastosowano poniższe formatowanie. Kolorem czerwonym będzie wyświetlony

h1 i {
   color: red;
}
A. cały tekst nagłówka pierwszego stopnia oraz tekst italic akapitu
B. cały tekst nagłówka pierwszego stopnia oraz wszelki tekst italic, niezależnie od lokalizacji na stronie
C. jedynie tekst italic we wszystkich poziomach nagłówków
D. tylko tekst italic nagłówka pierwszego stopnia
W stylach CSS selektor złożony h1 i oznacza, że formatowanie będzie stosowane tylko do elementów pochylonych i znajdujących się wewnątrz nagłówka pierwszego poziomu h1. W praktyce oznacza to, że taki zapis CSS zmienia kolor na czerwony tylko dla tekstu wewnątrz tagu <i> znajdującego się w <h1>. Selekcja złożona umożliwia precyzyjne określanie, które elementy są formatowane, co jest kluczowe w przypadku dużych i złożonych stron internetowych. Zrozumienie działania selektorów jest fundamentem efektywnego stylizowania dokumentów HTML. Pozwala to na zachowanie spójności wizualnej oraz lepszą kontrolę nad wyglądem strony. Dobór odpowiednich selektorów w CSS to również jedna z dobrych praktyk, które sprzyjają czytelności kodu oraz jego łatwiejszej konserwacji w przyszłości. Taki zapis pozwala na minimalizację konfliktów stylów, które mogą się pojawić przy bardziej ogólnych selektorach. Praktyczne użycie selektorów złożonych jest więc zalecane w celu uzyskania bardziej kontrolowanego i przewidywalnego wyglądu strony internetowej, co jest zgodne ze standardami webowymi promującymi semantyczne i uporządkowane kodowanie.

Pytanie 27

Kod umieszczony w ramce tworzy tabelę, która zawiera

Ilustracja do pytania
A. dwa wiersze i jeden słupek
B. dwa wiersze i dwa słupki
C. jeden wiersz i jeden słupek
D. jeden wiersz i dwa słupki
Analizując podane opcje należy zrozumieć że struktura tabeli w HTML opiera się na elementach <tr> które definiują wiersze oraz <td> które definiują komórki czyli kolumny w danym wierszu. Kod HTML zawsze zaczyna się od otwarcia znacznika <table> i kończy znacznikiem </table>. Wewnątrz tego bloku umieszczane są znaczniki <tr> i <td>. Częstym błędem jest mylenie liczby wierszy z liczbą kolumn co prowadzi do błędnych wniosków. Kod przedstawiony w pytaniu zawiera jeden znacznik <tr> co jednoznacznie wskazuje na jeden wiersz tabeli. Wiele osób błędnie zakłada że każda nowa komórka zaczyna nowy wiersz co jednak nie jest prawdą. Istnieją sytuacje w których tabele mogą wydawać się bardziej skomplikowane szczególnie gdy zagnieżdża się tabele lub stosuje colspan i rowspan ale w podstawowym domyślnym układzie każda linia <tr> zaczyna nowy wiersz a każda <td> jest nową komórką w bieżącym wierszu. Analizując dostępne odpowiedzi zauważamy że poprawne rozumienie struktury tabeli HTML wymaga ścisłego przestrzegania jej hierarchii a błędne odpowiedzi wynikają z niepoprawnego przypisania liczby wierszy lub kolumn co często jest wynikiem niedostatecznego zrozumienia budowy kodu HTML i jego renderowania w przeglądarkach. Kluczowe jest aby zawsze weryfikować strukturę poprzez liczenie <tr> i <td> co pozwala uniknąć podstawowych błędów przy tworzeniu i analizie tabel HTML. Takie podejście jest nie tylko poprawne w aspekcie technicznym ale również zgodne ze standardami tworzenia stron internetowych co jednocześnie podkreśla znaczenie solidnej wiedzy o strukturze HTML w pracy profesjonalnego web developera.

Pytanie 28

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

A. BOOLEAN
B. DOUBLE
C. VARCHAR(5)
D. CHAR
Odpowiedź BOOLEAN jest optymalnym wyborem dla pola status czyWypozyczona, ponieważ reprezentuje typ danych logicznych, które mogą przyjmować jedynie dwie wartości: prawda (true) lub fałsz (false). W kontekście systemów baz danych, typ BOOLEAN jest używany do efektywnego przechowywania informacji, które mają tylko dwa możliwe stany, co pozwala na oszczędność miejsca oraz przyspieszenie operacji zapytań. Na przykład, przy tworzeniu zapytań SQL, możemy łatwo filtrować wyniki na podstawie statusu wypożyczenia, co znacząco zwiększa czytelność i wydajność kodu. Warto również zauważyć, że wiele systemów baz danych, takich jak MySQL, PostgreSQL, czy SQLite, oferują dedykowane wsparcie dla typu BOOLEAN, co czyni go zgodnym z najlepszymi praktykami w projektowaniu baz danych, w których dąży się do maksymalnej klarowności i wydajności. Dzięki temu, stosując typ BOOLEAN, nie tylko upraszczamy model danych, ale także ułatwiamy jego dalsze wykorzystanie i konserwację.

Pytanie 29

Jakie zdarzenie należy wykorzystać, aby funkcja JavaScript była aktywowana za każdym razem, gdy użytkownik wprowadza jakikolwiek znak w polu tekstowym?

A. onmouseout
B. onclick
C. onkeydown
D. onload
Funkcja JavaScript, która ma być wywoływana za każdym razem, gdy użytkownik wpisuje dowolny znak do pola edycji, powinna korzystać ze zdarzenia 'onkeydown'. Zdarzenie to jest wywoływane w momencie naciśnięcia klawisza, co oznacza, że natychmiast odzwierciedla zmiany wprowadzone przez użytkownika. Dzięki temu możemy w czasie rzeczywistym reagować na dane wprowadzane przez użytkownika, co jest niezwykle przydatne w aplikacjach interaktywnych. Przykładowo, jeśli mamy pole tekstowe, w którym użytkownik wprowadza swoje imię, możemy użyć zdarzenia 'onkeydown', aby sprawdzić, czy imię nie jest za krótkie lub nie zawiera niedozwolonych znaków. Można to zrealizować w następujący sposób: <input type='text' onkeydown='myFunction()'>. Standardy W3C definiują zdarzenia klawiaturowe jako kluczowy element interakcji użytkownika z aplikacjami webowymi, co czyni 'onkeydown' bardzo istotnym w kontekście UX/UI.

Pytanie 30

W aplikacji internetowej komunikat powinien pojawiać się tylko wtedy, gdy dany użytkownik jest na stronie po raz pierwszy. Którą funkcję PHP należy w tym celu zastosować?

A. setcookie
B. mysqli_change_user
C. session_destroy
D. define
Prawidłowo – w tym zadaniu kluczowa jest funkcja setcookie(), bo to właśnie ciasteczka są standardowym mechanizmem do rozpoznawania, czy użytkownik był już wcześniej na danej stronie. W praktyce robi się to tak: przy pierwszym wejściu na stronę sprawdzasz, czy istnieje określone cookie, np. $_COOKIE['first_visit']. Jeśli go nie ma, wyświetlasz komunikat powitalny i ustawiasz ciasteczko za pomocą setcookie('first_visit', '1', time()+3600*24*365). Przy kolejnych wejściach cookie już będzie istniało, więc komunikat się nie pojawi. To jest bardzo typowy wzorzec np. dla banerów informujących o ciasteczkach, komunikatów onboardingowych czy jednorazowych podpowiedzi dla nowych użytkowników. Z mojego doświadczenia w webdevie to najprostsze i najbardziej przenośne rozwiązanie, bo działa niezależnie od sesji i logowania użytkownika – wystarczy przeglądarka z włączonymi cookies. Ważne jest też, żeby pamiętać o tym, że setcookie() musi być wywołane przed wysłaniem jakiegokolwiek outputu (czyli przed jakimkolwiek HTML, echo, BOM itd.), bo ciasteczka są wysyłane w nagłówkach HTTP. W bardziej rozbudowanych projektach często łączy się cookies z innymi mechanizmami (np. sesją czy bazą danych), ale do prostego sprawdzenia „czy użytkownik jest tu pierwszy raz” ciasteczko ustawiane setcookie() to według dobrych praktyk w zupełności wystarcza. Warto też dbać o parametry bezpieczeństwa ciastek (secure, httponly, samesite), szczególnie gdy później używamy tego mechanizmu do czegoś ważniejszego niż zwykły komunikat informacyjny.

Pytanie 31

Jakie z poniższych stwierdzeń właściwie opisuje tabelę utworzoną przez: CREATE TABLE dane (kolumna INTEGER(3));

A. Tabela o nazwie dane zawiera trzy kolumny typu liczb całkowitych
B. Tabela o nazwie dane ma jedną kolumnę typu liczb całkowitych
C. Kolumny w tabeli dane nazywają się: kolumna1, kolumna2, kolumna3
D. Tabela zawiera jedną kolumnę, która składa się z trzyelementowych tablic
Odpowiedź, że tabela o nazwie dane posiada jedną kolumnę liczb całkowitych, jest prawidłowa, ponieważ w definicji tabeli użyto składni CREATE TABLE, wskazując, że w tabeli znajduje się tylko jedna kolumna o nazwie 'kolumna'. Typ danych dla tej kolumny to INTEGER, co oznacza, że przechowuje ona liczby całkowite. Parametr (3) w INTEGER nie oznacza, że kolumna ta zawiera trzy elementowe tablice; w rzeczywistości jest to specyfikacja dotycząca maksymalnej liczby cyfr, które ta kolumna może przechowywać, co powoduje, że rozmiar wartości będzie ograniczony do 3 cyfr. W praktyce, przy projektowaniu baz danych, kluczowe jest zrozumienie typów danych oraz ich ograniczeń, aby zapewnić integralność danych. Dobrą praktyką jest używać odpowiednich typów danych i odpowiednio je definiować, by optymalizować wydajność zapytań oraz zużycie miejsca w bazie danych. W tym przypadku, zrozumienie, że kolumna 'kolumna' jest jedyną kolumną w tabeli o typie INTEGER, jest podstawą efektywnego projektowania struktury bazy danych.

Pytanie 32

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

A. interpretera PHP
B. konsoli w przeglądarce internetowej
C. interpretera PERL
D. kompilatora C++
Konsola w przeglądarce to świetne narzędzie do sprawdzania i naprawiania kodu JavaScript. Dzięki niej możesz od razu zobaczyć, co działa, a co nie. Na przykład, kiedy wpiszesz `console.log('Hello, World!');`, to od razu zobaczysz wynik w konsoli. To bardzo fajny sposób na szybkie testowanie, bo nie musisz czekać ani niczego dodatkowo uruchamiać. Konsola ma też sporo innych przydatnych funkcji, jak inspekcja obiektów czy monitorowanie zdarzeń, więc naprawdę warto się z nią zaprzyjaźnić. Właściwie, każda popularna przeglądarka, jak Chrome czy Firefox, dodaje różne ciekawe opcje, które pomagają w debugowaniu. Z mojego doświadczenia, korzystanie z konsoli to kluczowy element nauki i pracy z JavaScript.

Pytanie 33

Na ilustracji pokazano relację jeden do wielu. Łączy ona

Ilustracja do pytania
A. klucz podstawowy id tabeli filmy z kluczem obcym rezyserzy_id tabeli rezyserzy
B. klucz podstawowy id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
C. klucz obcy rezyserzy_id tabeli filmy z kluczem podstawowym id tabeli rezyserzy
D. klucz obcy rezyserzy_id tabeli filmy z kluczem obcym id tabeli rezyserzy
Relacja jeden do wielu w bazach danych często wiąże się z sytuacją, gdzie jeden rekord w tabeli nadrzędnej może być powiązany z wieloma rekordami w tabeli podrzędnej. W tym kontekście tabela nadrzędna to rezyserzy posiadająca klucz podstawowy id, natomiast tabela podrzędna to filmy która odnosi się do tej wartości poprzez klucz obcy rezyserzy_id. Klucz podstawowy to unikalny identyfikator rekordu w tabeli, który pozwala na jednoznaczne rozróżnienie każdego rekordu. Klucz obcy natomiast jest atrybutem w tabeli podrzędnej, który odnosi się do klucza podstawowego w tabeli nadrzędnej. Jest to zgodne z teorią normalizacji baz danych, gdzie relacje jeden do wielu są standardowym podejściem do projektowania struktur danych. Użycie klucza obcego pozwala na utrzymanie integralności referencyjnej, co oznacza że każda wartość klucza obcego musi odpowiadać wartości klucza podstawowego w powiązanej tabeli lub być null, jeśli taka relacja jest dozwolona. Praktyczne zastosowanie tej relacji można zaobserwować w systemach zarządzania treścią, gdzie jeden autor (reżyser) może mieć przypisanych wiele artykułów (filmów), jednak każdy artykuł jest przypisany do jednego autora, co umożliwia na przykład efektywne zarządzanie danymi i generowanie raportów o twórczości danego autora.

Pytanie 34

Przedstawiony kod źródłowy, zapisany w języku C++, ma za zadanie dla wprowadzanych dowolnych całkowitych liczb różnych od zera wypisać:

int main()
{
    int liczba;
    cin >> liczba;
    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;
        cin >> liczba;
    }
    return 0;
}
A. wszystkie liczby
B. jedynie liczby parzyste
C. liczby pierwsze
D. wyłącznie liczby nieparzyste
Ten kod w C++ jest zaprojektowany tak, żeby wypisywał tylko liczby parzyste, które podaje użytkownik. Zaczyna od wczytania liczby całkowitej i potem wchodzi w pętlę, która działa, dopóki użytkownik nie wkroczy z zerem. W pętli sprawdza, czy liczba jest parzysta, co robi poprzez operację modulo. Jeśli reszta z dzielenia przez 2 jest 0, to znaczy, że liczba jest parzysta i wtedy jest wyświetlana na ekranie. To przykład podstawowych rzeczy w programowaniu, jak pętle i warunki, i to są naprawdę ważne umiejętności. Takie konstrukcje są przydatne w wielu programach, na przykład finansowych lub graficznych, gdzie często trzeba sprawdzić i przefiltrować dane według określonych zasad.

Pytanie 35

Po wydaniu polecenia użytkownik Jacek będzie mógł

GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. usuwać dane z tabeli i przeglądać dane.
B. zmieniać strukturę tabeli i wstawiać nowe dane.
C. usuwać tabelę i tworzyć nową.
D. przeglądać dane w tabeli i wstawiać nowe dane.
Twoja odpowiedź jest poprawna. Użytkownik Jacek po wydaniu polecenia SQL 'GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';' zyskuje możliwość przeglądania (SELECT) oraz wstawiania (INSERT) danych do tabeli 'mojaTabela' znajdującej się w bazie danych 'baza1'. Jest to zgodne ze standardami SQL i dobrymi praktykami zarządzania uprawnieniami w systemach baz danych. Uprawnienie SELECT pozwala na odczyt danych z tabeli, co jest niezbędne do analizy danych, a uprawnienie INSERT umożliwia dodawanie nowych rekordów do tabeli, co jest kluczowe dla utrzymywania aktualności danych. Pamiętaj, że kontrola dostępu do danych jest kluczowym elementem zarządzania bazami danych, zarówno pod względem bezpieczeństwa, jak i zgodności z regulacjami prawnymi.

Pytanie 36

W relacyjnym modelu danych, krotki definiuje się jako

A. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
B. liczbę rekordów w tabeli
C. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
D. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
W relacyjnych bazach danych ważne jest, żeby wiedzieć, czym różnią się wiersze od kolumn. Jak ktoś twierdzi, że krotkami są wszystkie wiersze tabeli razem z nagłówkiem, to nie do końca tak jest. Wiersz nagłówkowy ma znaczenie, bo pokazuje strukturę danych, ale nie wchodzi w skład krotek. Z kolei określanie krotek jako liczby rekordów w tabeli jest mało precyzyjne, bo to nie oddaje tego, co naprawdę oznaczają krotki. Kolejna błędna odpowiedź, która mówi, że krotkami są wszystkie kolumny, może wprowadzać w błąd, bo kolumny definiują atrybuty, ale same w sobie nie przechowują danych. W kontekście baz danych, krotki są kluczowe dla zrozumienia, jak te dane są poukładane, a ich dobre zdefiniowanie sprawia, że zarządzanie informacjami staje się łatwiejsze. Żeby unikać błędów przy projektowaniu baz danych, trzeba pamiętać, że krotki to zestawy wartości atrybutów, które można porównywać i obrabiać w SQL. Takie podejście jest ważne, żeby poprawnie tworzyć zapytania i zarządzać danymi w różnych systemach baz danych.

Pytanie 37

Która zasada dotyczy programowania strukturalnego? 

A. Nie można korzystać z instrukcji warunkowych if. 
B. Można tworzyć obiekty składające się z pól i metod.
C. Dla powtarzających się sekwencji instrukcji należy tworzyć procedury i funkcje.
D. W kodzie programu należy często korzystać z instrukcji skoku goto.
W tym pytaniu łatwo wpaść w kilka typowych pułapek myślowych dotyczących stylów programowania. Programowanie strukturalne często myli się z innymi paradygmatami, szczególnie z programowaniem obiektowym albo z bardzo starym, „spaghetti kodem” opartym na instrukcjach skoku. W efekcie pojawiają się błędne skojarzenia, że skoro jest jakiś „styl programowania”, to pewnie czegoś kategorycznie zabrania, albo że sprowadza się do modnych pojęć jak obiekty czy klasy. Jednym z takich nieporozumień jest przekonanie, że w programowaniu strukturalnym nie wolno używać instrukcji warunkowych if. Jest dokładnie odwrotnie. Instrukcje warunkowe są jednym z trzech filarów programowania strukturalnego, obok sekwencji i pętli. To właśnie dzięki nim można budować czytelne rozgałęzienia logiki programu, zamiast skakać po kodzie goto. Gdy ktoś myśli, że „strukturalne” oznacza „bez if”, to zwykle wynika to z pomieszania pojęć albo z jakiegoś źle zapamiętanego hasła z teorii. Kolejna myląca sprawa to obiekty z polami i metodami. To już jest domena programowania obiektowego, które pojawiło się później i rozwinęło idee programowania strukturalnego, ale ich nie zastąpiło. W podejściu stricte strukturalnym skupiamy się na funkcjach, procedurach i danych, a nie na łączeniu ich w klasy i obiekty. Oczywiście w praktyce, w językach takich jak PHP czy JavaScript, często mieszamy te paradygmaty, ale sama możliwość tworzenia obiektów nie jest zasadą programowania strukturalnego. Dość zdradliwa jest też pokusa, żeby intensywnie korzystać z instrukcji skoku goto. Historycznie wiele języków je miało i programiści budowali z nich całe przepływy sterowania, co prowadziło do tzw. spaghetti code – kodu trudnego do śledzenia i utrzymania. Programowanie strukturalne właśnie z tym walczy: zamiast skakać w losowe miejsca pliku, używamy pętli, instrukcji warunkowych oraz dobrze wydzielonych procedur i funkcji. Jeżeli ktoś uważa goto za „skrócenie drogi”, to zwykle kończy z kodem, którego nikt nie chce potem dotykać. Sedno sprawy jest takie, że podstawowe dobre praktyki – unikanie goto, świadome używanie if i pętli, wydzielanie powtarzających się fragmentów do funkcji – to fundament, na którym buduje się dalsze, bardziej zaawansowane style programowania. Zrozumienie, dlaczego pozostałe odpowiedzi są sprzeczne z tym podejściem, pomaga lepiej ogarnąć, skąd wzięły się współczesne standardy jakości kodu i czemu tak mocno kładzie się nacisk na czytelność oraz utrzymywalność programu.

Pytanie 38

Poniżej zamieszczony fragment skryptu w JavaScript zwróci

Ilustracja do pytania
A. wo
B. ze
C. owodzeni
D. wodzenia
Ten skrypt w JavaScript zaczyna od zadeklarowania zmiennej x, której przypisywana jest fraza 'Powodzenia na egzaminie'. Potem korzysta z metody substring na tej zmiennej z parametrami (3, 9). To znaczy, że wyciąga kawałek tekstu od indeksu 3 do 9. Pamiętaj, w JavaScript liczymy od zera, więc indeks 3 to czwarty znak, czyli 'o'. Dlatego z.substring(3, 9) zwraca 'odzeni'. Następnie, robimy kolejne wywołanie substring na tym wyniku, z parametrami (2, 4), co daje nam fragment od indeksu 2 do 4 w 'odzeni', czyli 'ze'. Na końcu, funkcja document.write(y) pokaże ten wynik na stronie. To świetny przykład na to, jak manipulować tekstem, co jest naprawdę przydatne w pracy z danymi. Z mojej perspektywy, zrozumienie operacji na tekstach to klucz do skutecznego przetwarzania i prezentacji informacji. Użycie takich metod w JavaScript do pracy z tekstem to absolutna podstawa, z którą warto się zapoznać.

Pytanie 39

Określ rodzaj powiązania pomiędzy tabelami: Tabela1 oraz Tabela3

Ilustracja do pytania
A. Jeden do wielu
B. Wiele do wielu
C. Wiele do jednego
D. Jeden do jednego
Relacja wiele do wielu między tabelami Tabela1 i Tabela3 jest prawidłowym rozwiązaniem, ponieważ relacja ta umożliwia powiązanie wielu rekordów z jednej tabeli z wieloma rekordami z drugiej tabeli. W kontekście przedstawionego schematu baz danych, tabela Tabela1 przechowuje informacje o uczniach, podczas gdy Tabela3 zawiera dane o nauczycielach. Tabela2 pełni rolę tabeli pośredniej, zawierającej klucze obce, które łączą ID_Ucznia z ID_Nauczyciela za pomocą ID_Przedmiotu jako dodatkowego klucza. To podejście jest powszechnie stosowane w projektowaniu baz danych, aby zapewnić elastyczność i możliwość zaawansowanej analizy danych, np. którzy uczniowie mają zajęcia z jakimi nauczycielami. W praktyce takie rozwiązanie stosuje się w systemach edukacyjnych, gdzie każdy uczeń może uczęszczać na zajęcia prowadzone przez różnych nauczycieli, a każdy nauczyciel może prowadzić zajęcia dla wielu uczniów. Standardy projektowania relacyjnych baz danych, takie jak normalizacja, zalecają tego rodzaju architekturę, aby uniknąć redundancji danych i umożliwić efektywne zarządzanie złożonymi relacjami. Tabele pośrednie, takie jak Tabela2, są kluczowym elementem w tworzeniu relacji wiele do wielu, ponieważ umożliwiają mapowanie skomplikowanych powiązań w sposób technicznie poprawny i zrozumiały dla użytkowników systemu.

Pytanie 40

Rodzaj zmiennej w języku JavaScript

A. następuje poprzez przypisanie wartości
B. powinien być zadeklarowany na początku skryptu
C. istnieje tylko jeden
D. nie występuje
W kontekście języka JavaScript pojawiają się różne nieporozumienia dotyczące zmiennych i ich typów. Nie jest prawdą, że istnieje tylko jeden typ zmiennej w JavaScript. Programowanie w tym języku opiera się na dynamicznym typowaniu, co oznacza, że zmienne mogą przyjmować różne typy danych w czasie działania aplikacji. Stwierdzenie, że zmienna musi być zadeklarowana na początku skryptu, jest również mylące. W praktyce, zmienne można deklarować w dowolnym miejscu w kodzie, a ich zasięg (scope) określa kontekst, w którym zostały zadeklarowane. Z kolei twierdzenie, że zmienne nie występują w JavaScript, jest całkowicie błędne, ponieważ zmienne są kluczowym elementem tego języka, umożliwiającym przechowywanie i manipulowanie danymi. Typowe błędy myślowe prowadzące do takich wniosków to nieporozumienia dotyczące zasięgu zmiennych oraz różnic między językami statycznie a dynamicznie typowanymi. Warto podkreślić, że poprawne zrozumienie, jak działają zmienne w JavaScript, jest kluczowe dla efektywnego programowania, a znajomość dynamicznego typowania jest niezbędna dla każdego, kto pragnie tworzyć zaawansowane aplikacje w tym języku.