Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 29 stycznia 2025 08:41
  • Data zakończenia: 29 stycznia 2025 08:58

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Tabela góry, której fragment został pokazany, obejmuje polskie pasma górskie oraz ich szczyty. Podaj kwerendę obliczającą dla każdego pasma górskiego średnią wysokość szczytów.

A. SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo
B. SELECT pasmo, AVG(wysokosc) FROM gory LIMIT pasmo
C. SELECT pasmo, COUNT(wysokosc) FROM gory ORDER BY pasmo
D. SELECT pasmo, SUM(wysokosc) FROM gory GROUP BY pasmo
Gratulacje! Twoja odpowiedź jest prawidłowa. Zapytanie 'SELECT pasmo, AVG(wysokosc) FROM gory GROUP BY pasmo;' jest poprawne. Funkcja AVG() jest jedną z funkcji agregujących w SQL, które służą do wykonania pewnej operacji na zestawie wartości. W tym przypadku oblicza ona średnią wartość wysokości szczytów dla każdego z pasm górskich. Funkcja GROUP BY jest natomiast klauzulą SQL, która jest używana do grupowania wartości z różnych wierszy w jedną grupę. W tym przypadku GROUP BY pasmo oznacza, że wyniki zostaną pogrupowane według pasma górskiego, co pozwala obliczyć średnią wysokość szczytów dla każdego z pasm. Jest to zgodne z treścią pytania. Pamiętaj, że wykorzystanie funkcji agregujących w SQL pozwala na efektywne przetwarzanie dużych ilości danych, co jest niezwykle ważne w praktycznych zastosowaniach baz danych.

Pytanie 2

W języku HTML stworzono odnośnik z symbolem #. Co się wydarzy po kliknięciu na podany link?

<a href="#dane">

A. Uruchomi się skrypt o nazwie dane
B. Otworzy się nowa karta przeglądarki zatytułowana dane
C. Zostanie użyty względny adres URL o nazwie dane
D. Strona przewinie się do elementu z id o nazwie dane
Hiperłącze z użyciem znaku # w języku HTML odnosi się do identyfikatora (id) na tej samej stronie. Gdy użytkownik kliknie ten odsyłacz, przeglądarka przewinie stronę do elementu, który ma przypisany identyfikator 'dane'. To podejście jest powszechnie stosowane w celu ułatwienia nawigacji na długich stronach, gdzie użytkownicy mogą szybko przeskakiwać do interesujących ich sekcji. Przykład praktyczny może obejmować stronę z informacjami o produkcie, gdzie poszczególne sekcje, takie jak 'Specyfikacje', 'Opinie' czy 'FAQ', mają przypisane unikalne identyfikatory. Używając hiperłączy z #, użytkownicy mogą z łatwością dotrzeć do tych sekcji bez przewijania strony manualnie. Tego typu implementacja jest zgodna z zasadami dostępności i ułatwia nawigację, co jest szczególnie ważne w projektowaniu stron przyjaznych dla użytkownika. Ważne jest również, aby identyfikatory były unikalne w obrębie strony, co zapobiega potencjalnym konfliktom i pozwala na prawidłowe przewijanie.

Pytanie 3

Wskaż nieprawdziwe zdanie dotyczące normalizacji dźwięku.

A. Funkcja normalizacja znajduje się w menu programu do edycji dźwięku.
B. Podczas normalizacji poziom głośności całego nagrania jest wyrównywany.
C. Gdy najgłośniejszy fragment dźwięku ma wartość pół na skali, to wszystkie dźwięki zostaną wzmocnione dwukrotnie - w ten sposób najgłośniejszy fragment osiągnie maksymalną wartość na skali.
D. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do określonej wartości, a następnie w odniesieniu do niej proporcjonalnym zwiększeniu głośności pozostałej części sygnału.

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Twoja odpowiedź dobrze wskazuje na to, jak działa normalizacja. Generalnie chodzi o to, żeby dostosować głośność całego nagrania tak, aby najgłośniejszy fragment nie był za cichy. Kiedy ten najgłośniejszy kawałek jest na poziomie 50%, normalizacja podnosi głośność całego nagrania, żeby ten fragment był na maksa. W praktyce to też oznacza, że inne, cichsze części nagrania też będą głośniejsze, co jest ważne, bo pozwala to utrzymać przyjemny balans w dźwięku. Normalizacja jest bardzo powszechna, zwłaszcza w produkcji muzyki, żeby różne utwory miały podobny poziom głośności, bo różnice mogą być dość irytujące podczas słuchania. Ważne, żeby zawsze sprawdzić, czy po normalizacji nie ma jakichś zniekształceń czy clippingu. Czasem warto też używać normalizacji razem z innymi technikami, jak kompresja, żeby osiągnąć jeszcze lepszy efekt końcowy.

Pytanie 4

Która zasada NIE poprawi czytelności kodu?

A. nazwy zmiennych odzwierciedlają ich przeznaczenie
B. komentarze w trudniejszych fragmentach kodu
C. pisanie kodu BEZ wcięć i zbędnych enterów
D. jedna instrukcja w jednej linii
Pozostałe zasady REALNIE poprawiają czytelność, więc nie pasują do pytania. Opisowe nazwy zmiennych ułatwiają zrozumienie ich roli, komentarze tłumaczą trudniejsze fragmenty, a jedna instrukcja na linię porządkuje kod. Czytelności nie poprawia natomiast pisanie bez wcięć i podziału na linie.

Pytanie 5

Warunek zapisany w języku PHP wypisze liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona parzysta.
B. jest ona liczbą pierwszą.
C. jest ona dodatnia.
D. wynik dzielenia liczby przez 2 jest równy 0.
Twoja odpowiedź jest poprawna. Warunek w języku PHP 'if($liczba % 2 == 0)' sprawdza faktycznie, czy dana liczba jest parzysta. Jak dobrze zauważyłeś, reszta z dzielenia liczby parzystej przez 2 jest zawsze równa 0. Jest to bezpośrednie odzwierciedlenie definicji liczby parzystej, która mówi, że jest to liczba, którą można podzielić przez 2 bez reszty. Dlatego warunek ten jest powszechnie stosowany w programowaniu do sprawdzania parzystości liczby. W praktyce, może on być wykorzystany np. do filtrowania danych, gdzie chcemy wykluczyć liczby nieparzyste albo też do różnego rodzaju operacji na tablicach, gdzie operacje wykonujemy tylko dla indeksów parzystych. Pamiętaj jednak, że ten warunek nie sprawdzi, czy liczba jest dodatnia, ujemna czy pierwsza. Do tego potrzebne będą inne warunki i operacje.

Pytanie 6

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
B. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
C. wiele wpisów z tabeli A powtórzy się w tabeli B
D. tabela A będzie miała identyczne pola jak tabela B
Odpowiedź, że należy zdefiniować trzecią tabelę z kluczami obcymi do tabel A i B, jest poprawna, ponieważ relacja wiele do wielu wymaga pośrednictwa trzeciej tabeli, często nazywanej tabelą asocjacyjną lub łączącą. W praktyce oznacza to, że każdy rekord w tabeli A może być powiązany z wieloma rekordami w tabeli B i vice versa. Tabela asocjacyjna zawiera co najmniej dwa pola kluczy obcych: jedno wskazujące na odpowiedni rekord w tabeli A i drugie na odpowiadający mu rekord w tabeli B. Na przykład, w systemie zarządzania kursami, tabela 'Studenci' i tabela 'Kursy' mogą być połączone poprzez tabelę 'Rejestracje', która przechowuje identyfikatory studentów i kursów, umożliwiając przypisanie wielu studentów do wielu kursów. To podejście jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizację redundancji i zapewnienie spójności danych. Dobrą praktyką jest również zapewnienie, że klucze obce w tabeli asocjacyjnej są odpowiednio indeksowane, co poprawia wydajność zapytań oraz umożliwia łatwe zarządzanie relacjami.

Pytanie 7

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

Ilustracja do pytania
A. klucz obcy rezyserzy_id tabeli filmy z kluczem obcym 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 podstawowy id tabeli filmy z kluczem obcym rezyserzy_id tabeli rezyserzy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
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 8

W stylu CSS zdefiniowano klasę uzytkownik:

p.uzytkownik {
    color: blue;
}
Na stronie będą wyświetlane czcionką w kolorze niebieskim:
A. wszystkie akapity.
B. tylko elementy tekstowe typu <p>, <h1>.
C. paragrafy, do których została przypisana klasa uzytkownik.
D. wszystkim elementom w sekcji <body> z przypisaną klasą uzytkownik.
Deklaracja selektora p.uzytkownik oznacza w CSS połączenie selektora typu z selektorem klasy. Innymi słowy: przeglądarka wybierze tylko te elementy <p>, które mają w atrybucie class wpisaną klasę uzytkownik, np. <p class="uzytkownik">Treść</p>. Sama kropka przed nazwą klasy definiuje selektor klasy, a litera p przed kropką zawęża go wyłącznie do paragrafów. Gdyby w stylu było samo .uzytkownik { color: blue; }, wtedy reguła objęłaby wszystkie elementy z tą klasą, niezależnie czy to <p>, <div>, <h1> czy cokolwiek innego.
Moim zdaniem to jedno z podstawowych, ale bardzo ważnych rozróżnień w CSS: kombinacja selektorów pozwala dokładnie kontrolować, które elementy są stylowane. Dzięki temu nie trzeba nadawać unikalnych klas dla każdego typu elementu, tylko łączyć selektor typu (np. p, h1, li) z klasą, gdy jest to potrzebne. W praktyce w projektach spotyka się dużo takich zapisów: np. li.active, a.button-primary, input.error. To pomaga utrzymać porządek w arkuszu stylów i unikać niepotrzebnie szerokiego działania reguł.
Warto też zwrócić uwagę na specyficzność: p.uzytkownik ma większą specyficzność niż samo p, ale mniejszą niż np. #idElementu. Przy konfliktach stylów przeglądarka bierze to pod uwagę. Dobra praktyka jest taka, żeby nie pisać zbyt ogólnych selektorów, które kolorują „pół strony” przypadkiem. Taki selektor jak w pytaniu jest bezpieczny i precyzyjny – wiadomo dokładnie, że kolor niebieski trafi tylko do tych paragrafów, którym świadomie przypiszemy klasę uzytkownik w HTML.

Pytanie 9

Który parametr obrazu zmieni się po zmianie wartości NASYCENIA (saturacji)?

A. ostrość krawędzi
B. przezroczystość
C. kolejność wyświetlania pikseli
D. intensywność (żywość) barw
Nasycenie (saturacja) określa INTENSYWNOŚĆ i czystość barw. Przy nasyceniu bliskim zera kolory bledną aż do skali szarości, a przy wysokim stają się soczyste i żywe - to typowy suwak w GIMP-ie czy Photoshopie, gdy zdjęcie ma wyglądać „mocniej” lub „spokojniej”. Sama jasność i barwa (odcień) pozostają, zmienia się tylko siła kolorów. Zapamiętaj: saturacja steruje żywością barw.

Pytanie 10

Podczas walidacji witryn internetowych nie analizuje się

A. źródła pochodzenia narzędzi edycyjnych
B. zgodności z różnymi przeglądarkami
C. działania hiperlinków
D. błędów w składni kodu
W procesie walidacji stron internetowych, źródło pochodzenia narzędzi edytorskich nie jest przedmiotem analizy, ponieważ walidacja koncentruje się na technicznych aspektach kodu HTML, CSS i JavaScript, które wpływają na funkcjonalność oraz dostępność strony. Główne obszary walidacji obejmują zgodność z przeglądarkami, co oznacza, że strona powinna działać poprawnie w różnych środowiskach przeglądarkowych. Działania linków są również monitorowane, aby zapewnić, że wszystkie odnośniki kierują do właściwych lokalizacji oraz nie prowadzą do błędów 404. Błędy składni kodu są kluczowe, ponieważ mogą znacząco wpłynąć na sposób, w jaki strona jest renderowana przez przeglądarki. Przykładowo, walidatory HTML, takie jak W3C Validator, pomagają identyfikować błędy i ostrzegają o problemach, które mogą wpłynąć na dostępność i SEO strony. Dobre praktyki wymuszają, aby każda strona internetowa była nie tylko estetyczna, ale przede wszystkim funkcjonalna i zgodna z obowiązującymi standardami, co przekłada się na lepsze doświadczenia użytkowników.

Pytanie 11

Funkcje takie jak rozmycie Gaussa, wygładzanie oraz szum RGB są elementami oprogramowania do przetwarzania

A. Dźwięku w standardzie MIDI
B. Ścieżki audio
C. Grafiki wektorowej
D. Grafiki rastrowej
Rozmycie Gaussa, wygładzanie oraz szum RGB to techniki powszechnie stosowane w obróbce grafiki rastrowej. Rozmycie Gaussa, jako technika filtracji, ma na celu zmiękczenie krawędzi i wygładzenie obrazów, co jest szczególnie przydatne w retuszu zdjęć oraz usuwaniu szumów. Przykładem zastosowania może być poprawa jakości zdjęć w programach takich jak Adobe Photoshop, gdzie techniki te są wykorzystywane do uzyskania bardziej estetycznych efektów wizualnych. Wygładzanie, z kolei, pomaga w eliminacji szumów, co jest kluczowe w przypadku obrazów o niskiej jakości, a również poprawia czytelność obrazów, co jest nieocenione w projektowaniu graficznym. Szum RGB to zjawisko, które występuje często w obrazach cyfrowych, a jego minimalizacja za pomocą filtrów wygładzających prowadzi do osiągnięcia bardziej realistycznych kolorów i lepszej jakości obrazu. Te techniki są zgodne z najlepszymi praktykami w dziedzinie grafiki komputerowej, gdzie jakość wizualna odgrywa kluczową rolę w tworzeniu profesjonalnych projektów.

Pytanie 12

W JavaScript utworzono obiekt. Jak zmienić wartość właściwości x tego obiektu w dalszej części kodu?

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { … }
}
A. obiekt1::x = …
B. wsp.x = …
C. obiekt1.x = …
D. x = …
JavaScript to fajny język, który pozwala na pracę z obiektami, a właściwie to obiekty są jego podstawą. Chodzi o to, że można w nich przechowywać różne dane w formie par klucz-wartość. Gdy chcesz zmienić jakąś właściwość obiektu, używasz notacji kropkowej. To z pozoru proste, ale bardzo praktyczne. Po prostu wpisujesz nazwę obiektu, kropkę i nazwę właściwości, którą chcesz edytować. Na przykład mamy obiekt o nazwie obiekt1 i właściwość x. Żeby zmienić wartość x, piszesz obiekt1.x, a potem przypisujesz nową wartość. To wszystko jest zgodne z zasadami ECMAScript, które mówią, jak powinno się pracować z obiektami w JavaScript. Takie podejście jest nie tylko jasne, ale również umożliwia szybkie wskazanie, co dokładnie zmieniasz. W praktyce fajnie jest pokazać to na przykładzie, jak np. chcesz zaktualizować imię użytkownika w obiekcie, to robisz coś takiego: user.name = 'Jan'.

Pytanie 13

Które polecenie wydane w konsoli systemowej przywróci bazę danych z kopii kopia.sql?

A.
mysqldump -u root -p baza > kopia.sql
B.
mysqldump -u root -p baza < kopia.sql
C.
mysql -u root -p baza < kopia.sql
D.
mysql -u root -p baza > kopia.sql
Kopię bazy tworzy się narzędziem mysqldump, a PRZYWRACA klientem mysql, przekierowując zawartość pliku SQL na jego wejście: mysql -u root -p baza < kopia.sql. Operator < kieruje treść pliku „do” programu (import), a > - „z” programu do pliku (eksport). Plik kopia.sql zawiera polecenia odtwarzające strukturę i dane. Dlatego bazę przywróci mysql -u root -p baza < kopia.sql.

Pytanie 14

W systemie baz danych zdefiniowano tabelę Mieszkancy, która zawiera dane. W celu usunięcia tej tabeli oraz jej zawartości, należy użyć polecenia

A. DROP TABLE Mieszkancy;
B. DELETE FROM Mieszkancy;
C. ALTER TABLE Mieszkancy;
D. TRUNCATE TABLE Mieszkancy;
Polecenie 'DROP TABLE Mieszkancy;' jest odpowiednie do usunięcia tabeli z bazy danych, wraz ze wszystkimi jej danymi i strukturą. W przeciwieństwie do innych poleceń, takich jak 'DELETE' czy 'TRUNCATE', które modyfikują zawartość tabeli, 'DROP TABLE' usuwa całą tabelę z systemu. Użycie tego polecenia jest nieodwracalne, dlatego przed jego zastosowaniem warto upewnić się, że posiadamy kopię zapasową danych, jeśli będą one w przyszłości potrzebne. W praktyce, jeśli jesteś administratorem bazy danych i chcesz usunąć zbędną tabelę, polecenie to jest niezwykle efektywne i pozwala na zwolnienie zasobów. Zgodnie z najlepszymi praktykami, przed wykonaniem operacji na bazie danych, zawsze warto przeprowadzić analizę wpływu na inne powiązane obiekty, takie jak relacje między tabelami. Dobrą praktyką jest również włączenie kontroli dostępu, aby nieuprawnione osoby nie mogły wykonywać takich operacji.

Pytanie 15

Aby strona WWW była przesyłana do przeglądarki w postaci zaszyfrowanej, należy zastosować protokół:

A. HTTPS
B. HTTP
C. SFTP
D. SSH
HTTPS to protokół HTTP działający przez szyfrowane połączenie TLS. Dane wymieniane między serwerem a przeglądarką - treść strony, dane logowania, formularze - są szyfrowane, więc osoba podsłuchująca ruch nie odczyta ich ani nie podmieni. Certyfikat serwera pozwala też przeglądarce potwierdzić tożsamość witryny (kłódka w pasku adresu). Dlatego do bezpiecznego, zaszyfrowanego przesyłania strony WWW stosuje się właśnie HTTPS.

Pytanie 16

Pierwszym etapem konwersji sygnału analogowego na cyfrowy jest:

A. próbkowanie
B. kwantyzacja
C. filtrowanie
D. kodowanie
Konwersja sygnału analogowego na cyfrowy zaczyna się od PRÓBKOWANIA - mierzenia wartości sygnału w równych odstępach czasu (z określoną częstotliwością, np. 44,1 kHz). Powstaje ciąg próbek, które dopiero potem się kwantyzuje i koduje. Zapamiętaj kolejność: próbkowanie → kwantyzacja → kodowanie.

Pytanie 17

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

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

Pytanie 18

Ile razy zostanie wykonana pętla w zamieszczonym skrypcie PHP?

$a = $x = 0;
do{
    $a++;
    $x = $x + $a;
}while($x != 21);
A. 0
B. 5
C. 6
D. 7
Pętla typu do-while jest specyficzna w tym że jej ciało wykonuje się przynajmniej raz przed sprawdzeniem warunku pętli. To różni ją od pętli while gdzie warunek jest sprawdzany przed wykonaniem kodu wewnątrz pętli. W analizowanym skrypcie zmienne $a i $x są inicjalizowane wartością 0 i najpierw $a jest inkrementowane co powoduje że w pierwszej iteracji $x przyjmuje wartość 1. W każdej kolejnej iteracji do $x dodaje się aktualną wartość $a która rośnie o 1 w każdym kroku. Częstym błędem jest zakładanie że pętla do-while wykona się tyle razy ile wskazuje różnica między wartościami początkowymi zmiennych a wartością końcową warunku. Jednak w tym przypadku każda iteracja przyczynia się do sumowania wartości rosnącej $a z $x co wpływa na liczbę iteracji. Przy złym zrozumieniu mechanizmu może się wydawać że pętla wykona mniej lub więcej iteracji zwłaszcza gdy nie prześledzimy krok po kroku wartości zmiennych. Obliczenia są kluczowe aby określić że pętla do momentu osiągnięcia $x równego 21 wykonuje się dokładnie 6 razy a nie 5 czy 7 co podkreśla znaczenie dokładności w analizie kodu i zrozumieniu jego działania w kontekście iteracji i warunków kończących pętlę.

Pytanie 19

Jak nazywa się tłumaczenie kodu źródłowego napisanego przez programistę na zrozumiały dla komputera kod maszynowy?

A. analizowanie błędów
B. wykonywanie
C. kompilowanie
D. wdrażanie
Tłumaczenie kodu źródłowego na zrozumiały dla komputera kod maszynowy nazywa się kompilowaniem - wykonuje je kompilator, tworząc plik wynikowy. Dlatego ta czynność to kompilowanie.

Pytanie 20

Która lista jest interpretacją przedstawionego kodu?

<ol>
    <li>muzyka
        <ul>
            <li>Wpis1</li>
            <li>Wpis2</li>
        </ul>
    </li>
    <li>filmy
        <ul>
            <li>Wpis3</li>
            <li>Wpis4</li>
        </ul>
    </li>
</ol>
A. Lista nieuporządkowana zawierająca wszystkie składniki, jeden za drugim.
B. Lista uporządkowana z sześcioma następującymi elementami.
C. Lista uporządkowana z dwoma składnikami, z których każdy ma wewnętrzną listę nieuporządkowaną.
D. Lista uporządkowana z podpunktami zapisanymi w formie numeracji dziesiętnej (np. 1.1, 1.2).
Przedstawiony kod HTML jest przykładem zagnieżdżonych list uporządkowanych i nieuporządkowanych. Na poziomie głównym użyto listy uporządkowanej oznaczonej tagiem <ol> która tworzy listę numerowaną. Listy zagnieżdżone opisane są za pomocą tagu <ul> co oznacza listy nieuporządkowane punktowane. Wewnętrzna struktura kodu pokazuje jak zagnieżdżać listy aby tworzyć hierarchiczne struktury które są często stosowane na stronach internetowych do organizowania treści. Taka organizacja danych jest szczególnie przydatna w przypadku tworzenia menu rozwijanych lub katalogów. Aby zrozumieć prawidłowość tej struktury należy zapoznać się z zasadą zagnieżdżania elementów w HTML gdzie jeden element może zawierać inne w celu tworzenia bardziej złożonych układów. Popularnymi zastosowaniami są również generowanie drzew katalogów oraz nawigacji w witrynach. Standardy HTML sugerują takie podejście do strukturyzacji danych aby były one semantycznie poprawne a zarazem łatwe do odczytania przez przeglądarki internetowe co zwiększa ich dostępność i użyteczność. Praktyka ta jest zgodna z dobrymi praktykami projektowania webowego gdzie zrozumiałość kodu oraz jego struktura są kluczowe dla dalszego rozwoju czy utrzymania aplikacji.

Pytanie 21

Przy założeniu, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
nada użytkownikowi anna uprawnienia wyłącznie do
A. wybierania, wstawiania oraz aktualizacji danych w tabeli o nazwie klienci
B. wybierania, dodawania kolumn oraz zmiany struktury tabeli o nazwie klienci
C. wybierania, wstawiania oraz aktualizacji danych we wszystkich tabelach w bazie o nazwie klienci
D. wybierania, dodawania kolumn oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
Zrozumienie praw dostępu w bazach danych jest kluczowe dla bezpieczeństwa oraz efektywnego zarządzania danymi. Niepoprawne odpowiedzi często wynikają z mylącego interpretowania pojęć związanych z uprawnieniami. Na przykład, odpowiedź sugerująca, że użytkownik 'anna' ma możliwość dodawania pól w tabeli, jest błędna, ponieważ polecenie GRANT nie obejmuje uprawnień do modyfikacji struktury tabeli. Uprawnienia do dodawania kolumn (ALTER) są odrębną kategorią praw i muszą być przyznane w osobnym poleceniu. Kolejna nieprawidłowa koncepcja dotyczy rozumienia zakresu uprawnień. Odpowiedzi, które sugerują, że prawa te dotyczą wszystkich tabel w bazie danych, mylą pojęcie 'ON klienci' z szerszymi uprawnieniami, co mogłoby prowadzić do nadużyć. GRANT SELECT, INSERT, UPDATE na konkretnej tabeli 'klienci' dotyczy tylko tej tabeli, co jest zgodne z zasadą ograniczonego dostępu. Należy również pamiętać, że udzielanie zbyt szerokich uprawnień może narazić bazę danych na nieautoryzowane manipulacje, co jest sprzeczne z najlepszymi praktykami zarządzania bezpieczeństwem. W kontekście projektowania systemów bazodanowych, kluczowe jest zrozumienie oraz umiejętne zarządzanie uprawnieniami w celu zapewnienia odpowiedniego poziomu ochrony danych.

Pytanie 22

W HTML, aby uzyskać rezultat jak w podanym przykładzie, należy użyć struktury `

Duży tekst zwykły tekst

A. <p><strike>Duży tekst zwykły tekst</p>
B. <p><big>Duży tekst</big> zwykły tekst</p>
C. <p><big>Duży tekst</p> zwykły tekst
D. <p><strike>Duży tekst</strike> zwykły tekst</p>
Odpowiedź <p><big>Duży tekst</big> zwykły tekst</p> jest poprawna, ponieważ wykorzystuje znacznik <big>, który jest zgodny z semantyką HTML i odpowiednio formatuje tekst, zwiększając jego rozmiar. Warto zauważyć, że użycie znacznika <big> jest zgodne z praktykami, które rekomendują wykorzystanie odpowiednich znaczników do modelowania treści w dokumentach HTML. Taki zabieg nie tylko pozwala na lepszą prezentację tekstu, ale także ułatwia dostępność strony, co jest istotne w kontekście WCAG (Web Content Accessibility Guidelines). Przykładem zastosowania może być sytuacja, w której chcemy wyróżnić istotne informacje w tekście, np. nagłówki sekcji lub kluczowe dane. Zastosowanie <big> w tym kontekście zwiększa czytelność oraz zwraca uwagę użytkowników, co jest szczególnie ważne w długich dokumentach. Warto również pamiętać, że stosowanie znaczników odpowiadających ich przeznaczeniu wspiera SEO, gdyż wyszukiwarki lepiej interpretują strukturę treści. Z tego powodu, używanie semantycznych i odpowiednich znaczników, takich jak <big>, jest kluczowe dla tworzenia poprawnych i funkcjonalnych stron internetowych.

Pytanie 23

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

A. MP4, AVI
B. Ogg, QuickTime
C. Ogg, AVI, MPEG
D. MP4, Ogg, WebM
Odpowiedź MP4, Ogg, WebM jest prawidłowa, ponieważ wszystkie te formaty są zgodne ze standardem HTML5 i są powszechnie stosowane w aplikacjach internetowych. MP4, z wykorzystaniem kodeka H.264, zapewnia wysoką jakość obrazu i dźwięku przy stosunkowo małych rozmiarach plików, co czyni go jednym z najpopularniejszych formatów w sieci. Ogg, szczególnie w wersji Vorbis dla audio i Theora dla wideo, jest otwartym formatem, co oznacza, że nie wymaga licencji na użycie, co sprzyja jego zastosowaniu w projektach, które preferują otwarte technologie. WebM, stworzony przez Google, również korzysta z otwartych kodeków, takich jak VP8/VP9 dla wideo oraz Vorbis/Opus dla audio, co czyni go idealnym do zastosowań w środowisku internetowym. W praktyce, korzystając z tych formatów, deweloperzy mogą zapewnić szeroką kompatybilność z różnymi przeglądarkami oraz urządzeniami, co jest kluczowe w kontekście dostępności treści multimedialnych dla użytkowników. Warto również zwrócić uwagę na dobór formatów w kontekście SEO oraz szybkości ładowania stron, gdyż odpowiednia konfiguracja może wpływać na wyniki w wyszukiwarkach oraz doświadczenie użytkownika.

Pytanie 24

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
B. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
C. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
D. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
Weryfikacja pola nazwa przy użyciu wyrażeń regularnych w aplikacji JavaScript jest kluczowym elementem zapewnienia integralności danych wejściowych. Niektóre przedstawione opcje zawierają błędne założenia na temat porządku i wymogów składniowych wzorca. Przykładowo, nieprawidłowe jest założenie, że jedynie dowolny ciąg cyfr (bez zer) wystarczy, ponieważ kod wyraźnie wymaga, aby po cyfrach nastąpiła jedna duża litera, a następnie minimum dwie małe litery. Niezrozumienie tego może prowadzić do błędnych założeń dotyczących logiki walidacji. Niedokładne opisy wzorca mogą prowadzić do błędów w implementacji, co może skutkować działaniem niezgodnym z oczekiwaniami. Ponadto, dobre praktyki programistyczne zawsze sugerują, aby dokumentacja była dokładna i odzwierciedlała rzeczywiste wymagania kodu, co w tym przypadku oznacza precyzyjne określenie kolejności i wymogów dotyczących znaków. Niewłaściwe rozumienie wyrażeń regularnych może również prowadzić do błędów bezpieczeństwa, takich jak podatność na wstrzykiwanie danych, dlatego kluczowe jest poprawne udokumentowanie wzorca, aby zapewnić bezpieczne przetwarzanie danych użytkowników.

Pytanie 25

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 wyłącznie dla bloku 5; clear dla bloku 2
B. float tylko dla bloków: 3, 4; clear dla bloku 5
C. float tylko dla bloku 2; clear dla bloków: 3, 4
D. float tylko dla bloków: 2, 3, 4; clear dla bloku 5
Błędy, jakie pojawiają się przy używaniu float i clear, zazwyczaj wynikają z niezrozumienia ich funkcji w kontekście układu stron. Przypisanie float tylko do bloku 5 oraz clear dla bloku 2 pokazuje, że blok 2 powinien być pod blokiem 5, co nie zgadza się z tym, co jest w diagramie, bo blok 2 jest nad blokami 3 i 4. Z kolei przypisanie float dla bloków 3 i 4 oraz clear dla bloku 5 sugeruje, że te dwa bloki powinny być w jednej linii, a blok 5 miałby być poniżej. To jest poprawne, ale nie naprawia całkowicie układu, bo blok 2 nie jest w tym ujęciu uwzględniony. Cała koncepcja przypisania float tylko dla bloku 2 i clear dla bloków 3 i 4 też ma swoje wady, bo blok 2 ma za zadanie otaczać bloki 3 i 4, ale nie może być przesunięty w taki sposób, żeby osiągnąć układ z diagramu. Często problem ze zrozumieniem float i clear bierze się z błędnego rozumienia relacji między elementami i ich wpływu na układ całościowy. Dlatego rozwiązaniem jest dokładne przypisanie float tym elementom, które trzeba przesunąć, oraz zastosowanie clear tam, gdzie ma się zakończyć efekt przesunięcia. W ten sposób elementy będą się wyświetlały według oczekiwanego układu. Myślę, że zrozumienie tych zasad jest kluczowe do tworzenia poprawnych i estetycznych układów na stronach www.

Pytanie 26

Do czego służy w JavaScript metoda Math.random()?

A. do zaokrąglenia liczby w górę do całkowitej
B. do zwrócenia liczby po zaokrągleniu
C. do zwrócenia liczby pseudolosowej
D. do porównania dwóch napisów
Metoda Math.random() zwraca liczbę pseudolosową z przedziału od 0 (włącznie) do 1 (wyłącznie). Mnożąc i zaokrąglając wynik, uzyskuje się losowe liczby z dowolnego zakresu. Dlatego Math.random() zwraca liczbę pseudolosową.

Pytanie 27

Aby w jezyku CSS ustawic czerwony kolor dla tekstu, mozna uzyc stylu:

A.
color: rgb(255,0,0);
B.
color: rgb(#FF0000);
C.
text-color: rgb(255,0,0);
D.
text-color: rgb(#FF0000);
Kolor tekstu w CSS ustawia wlasciwosc color, a nie zadna inna nazwa - to ona odpowiada za barwe znakow elementu. Wartosc mozna podac na kilka sposobow, a jednym z nich jest funkcja rgb(), ktora przyjmuje trzy skladowe: czerwona, zielona i niebieska, kazda w zakresie od 0 do 255. Zapis rgb(255,0,0) oznacza pelne nasycenie czerwieni przy zerowej zieleni i zerowym blekicie, czyli czysty czerwony. Dlatego deklaracja color: rgb(255,0,0); jest jedyna poprawna sposrod podanych - laczy wlasciwa wlasciwosc z prawidlowo zapisana funkcja rgb().

Pytanie 28

Aby wykorzystać skrypt znajdujący się w pliku przyklad.js, konieczne jest połączenie go ze stroną przy użyciu kodu

A. <script>przyklad.js</script>
B. <script link="przyklad.js"></script>
C. <script src="przyklad.js"></script>
D. <link rel="script" href="przyklad.js">
Odpowiedź <script src="przyklad.js"></script> jest naprawdę na miejscu, bo użycie atrybutu 'src' w znaczniku <script> to taki standardowy sposób dołączania zewnętrznych skryptów JS do HTML-a. Atrybut 'src' mówi przeglądarce, gdzie znaleźć ten skrypt, więc może go załadować i wykonać. Dzięki temu, skrypt z pliku 'przyklad.js' wchodzi w interakcję ze stroną i może dodawać różne funkcje, jak na przykład reagowanie na działania użytkownika czy manipulowanie elementami na stronie. Pamiętaj, że najlepiej dołączać skrypty na końcu dokumentu, zaraz przed </body>, bo wtedy cała zawartość strony ładuje się najpierw. Warto też pomyśleć o atrybucie 'defer' lub 'async', żeby lepiej zoptymalizować ładowanie skryptów i nie blokować renderowania strony. Na przykład, <script src="przyklad.js" defer></script> pozwoli na asynchroniczne ładowanie, co z pewnością poprawia wydajność.

Pytanie 29

Który z czynników ma negatywny wpływ na efektywną współpracę w zespole?

A. wzajemny szacunek
B. efektywna komunikacja
C. jasny podział ról i obowiązków
D. rywalizacja między członkami zespołu
Efektywna współpraca w zespole opiera się na zaufaniu, wzajemnym szacunku, dobrej komunikacji i jasnym podziale ról. Czynnikiem, który ją osłabia, jest rywalizacja między członkami zespołu - zamiast dążyć do wspólnego celu, ludzie zaczynają konkurować, ukrywać informacje i przypisywać sobie zasługi, co rodzi konflikty. Zdrowa współpraca stawia na wspólny wynik, a nie na pokonanie kolegów. Dlatego negatywny wpływ ma rywalizacja w zespole.

Pytanie 30

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

<?php
   for($i=5;$i>1;$i-=2)
       echo ($i%2)." ";
?>
A. 1 0
B. 1 1
C. 1 0 1
D. 1 0 1 0

Brak odpowiedzi na to pytanie.

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

Pytanie 31

W HTML atrybut alt elementu img służy do określenia

A. parametrów grafiki, takich jak wymiary, ramka, wyrównanie
B. treści, która zostanie pokazana, gdy grafika nie może być załadowana
C. opisu, który pojawi się pod grafiką
D. lokalizacji i nazwy pliku źródłowego grafiki
Atrybut <b>alt</b> znacznika <b>img</b> w języku HTML jest niezwykle istotnym elementem, który ma na celu zapewnienie dostępności treści wizualnych dla użytkowników. Gdy obrazek nie może zostać załadowany (np. z powodu problemów z siecią lub błędnej ścieżki do pliku), tekst zawarty w atrybucie <b>alt</b> zostaje wyświetlony zamiast obrazu. W praktyce oznacza to, że osoba korzystająca z technologii asystujących, takich jak czytniki ekranu, będzie miała możliwość zrozumienia, co miało się pojawić w danym miejscu na stronie. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), stosowanie atrybutu <b>alt</b> jest kluczowe dla zapewnienia dostępności stron internetowych. Przykładem może być sytuacja, w której na stronie internetowej znajduje się obrazek przedstawiający produkt. Atrybut <b>alt</b> powinien zawierać opis tego produktu, co pozwoli użytkownikom, którzy nie widzą obrazu, zrozumieć jego znaczenie. Prawidłowe użycie atrybutu <b>alt</b> nie tylko poprawia dostępność, ale także może wpłynąć na SEO strony, ponieważ wyszukiwarki traktują ten atrybut jako dodatkowy kontekst dla treści wizualnych.

Pytanie 32

Określ złożoność obliczeniową algorytmu naiwnego (zwykłego) poszukiwania minimum w kolekcji liczb?

A. O(n)
B. O(n2)
C. O(n3)
D. O(n!)
Algorytm naiwnego (zwykłego) wyszukiwania minimum w zbiorze liczb charakteryzuje się złożonością obliczeniową O(n), co oznacza, że jego czas wykonania rośnie liniowo w zależności od liczby elementów w zbiorze. W praktyce oznacza to, że aby znaleźć najmniejszy element w zbiorze liczb, algorytm przeszukuje wszystkie elementy, porównując je ze sobą. W przypadku zbioru zawierającego n elementów, konieczne jest wykonanie n-1 porównań, co skutkuje liniową złożonością. Wyszukiwanie minimum jest użyteczne w wielu aplikacjach, takich jak analiza danych, gdzie może być wykorzystywane do szybkiego lokalizowania najniższej wartości w zestawie wyników. Dobrymi praktykami w tym zakresie są stosowanie tego algorytmu w sytuacjach, gdy zbiór danych jest relatywnie mały lub gdy zależy nam na prostocie i czytelności kodu. Złożoność O(n) jest optymalna dla tego typu operacji, ponieważ nie da się znaleźć minimum bez przeszukania każdego elementu przynajmniej raz, co potwierdza zasadę, że konieczne jest zbadanie wszystkich danych w celu uzyskania poprawnego wyniku.

Pytanie 33

W języku HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
B. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
C. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
D. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
W analizowanych odpowiedziach widać sporo niepoprawnych interpretacji dotyczących znaczników HTML, co może prowadzić do bałaganu w kodzie. W pierwszej opcji znacznik <i> został użyty do otoczenia całego fragmentu tekstu, a powinno być tak, żeby jedno nie kłóciło się z drugim. Takie błędy w strukturze HTML mogą sprawić, że przeglądarki nie wyświetlą tego, co zamierzałeś. W drugiej odpowiedzi użycie <sub> zamiast <sup> to też zły ruch, jeśli chodzi o górny indeks, bo może to wprowadzać w błąd, szczególnie w tematach naukowych, gdzie precyzja jest ważna. A ten <b> wokół słowa 'pochylony'... no nie wygląda to najlepiej, bo nie powinno się łączyć znaczników w sposób, który wprowadza w błąd co do ich funkcji. W web development ważne jest, żeby trzymać się zasad semantyki HTML, to ułatwia czytanie kodu i wspiera dostępność stron. Jak używasz złych znaczników, to możesz niechcący sprawić, że ludzie korzystający z technologii pomocniczych będą mieli trudności w nawigacji, a to nie jest zgodne z zasadami dostępności WCAG. No i w końcu, źle dobrane znaczniki mogą osłabić efekty wizualne, co wpływa na całą estetykę i funkcjonalność strony.

Pytanie 34

Na ilustracji przedstawiono związek jeden do wielu. Łączy on

Ilustracja do pytania
A. klucz obcy rezyserzy_id w tabeli filmy z kluczem podstawowym id w tabeli rezyserzy
B. klucz podstawowy id w tabeli z kluczem obcym rezyserzy_id w tabeli rezyserzy
C. klucz obcy rezyserzy_id w tabeli filmy z kluczem obcym id w tabeli rezyserzy
D. klucz podstawowy id w tabeli filmy z kluczem podstawowym id w tabeli rezyserzy
Zrozumienie relacji między tabelami w bazach danych jest kluczowe dla efektywnego projektowania systemów opartych na danych. Relacja jeden do wielu oznacza, że jeden rekord w jednej tabeli może być związany z wieloma rekordami w innej. W kontekście tego pytania, kluczowym aspektem jest zrozumienie poprawnego powiązania kluczy. Pierwsze błędne podejście zakłada, że klucz podstawowy tabeli może być bezpośrednio związany z innym kluczem podstawowym. W rzeczywistości, takie połączenie nie tworzy relacji jeden do wielu, a raczej jeden do jednego, jeśli byłoby to możliwe. Drugie podejście sugeruje powiązanie dwóch kluczy obcych, co również jest niepoprawne, gdyż klucze obce wskazują na klucze podstawowe w celu zrozumienia struktury hierarchicznej. Kolejny błąd to powiązanie klucza podstawowego z kluczem podstawowym innej tabeli, co nie odzwierciedla rzeczywistej relacji między danymi w kontekście relacji jeden do wielu. Najczęstszym błędem w myśleniu jest niezrozumienie roli kluczy obcych, które są krytyczne dla tworzenia relacji jeden do wielu, ponieważ umożliwiają one nawiązywanie połączeń między różnymi tabelami przez wskazywanie unikalnych identyfikatorów w tabelach nadrzędnych. Zrozumienie i stosowanie tych zasad jest niezbędne dla profesjonalnego projektowania baz danych i zapewnienia ich integralności i spójności danych.

Pytanie 35

Dostępna jest tabela ksiazki z kolumnami: tytul (typ tekstowy) oraz cena (typ liczbowy). W celu uzyskania z kwerendy SELECT jedynie tytułów, dla których cena jest mniejsza od 50 zł, należy użyć następującego zapisu:

A. SELECT * FROM ksiazki WHERE cena<50;
B. SELECT tytul FROM ksiazki WHERE cena<50;
C. SELECT tytul FROM ksiazki WHERE cena>'50 zł';
D. SELECT ksiazki FROM tytul WHERE cena<'50 zł';
Wybrana odpowiedź jest poprawna, ponieważ zapytanie SQL "SELECT tytul FROM ksiazki WHERE cena<50;" prawidłowo zwraca tylko kolumnę z tytułami książek, gdzie cena jest mniejsza od 50 zł. W kontekście pracy z bazami danych, kluczowe jest umiejętne formułowanie zapytań, które ograniczają zwracane dane do tych istotnych dla użytkownika. Użycie operatora porównania '<' w klauzuli WHERE jest zgodne z typowymi praktykami w SQL, a przy tym umożliwia precyzyjne filtrowanie danych. Warto również zwrócić uwagę, że w SQL nie potrzebujemy podawać jednostki walutowej, dlatego zapis '50 zł' jest błędny. Właściwa analityka zapytań pozwala na efektywne pozyskiwanie informacji, co ma kluczowe znaczenie w aplikacjach bazodanowych. W praktyce, umiejętność selekcji danych za pomocą zapytań jest podstawą pracy analityka danych oraz programisty.

Pytanie 36

W języku JavaScript zapis w ramce oznacza, że

x = przedmiot.nazwa();
A. nazwa jest atrybutem klasy przedmiot
B. nazwa jest cechą obiektu przedmiot
C. zmienna x będzie zawierać wynik działania metody nazwa
D. zmienna x będzie przechowywać wynik działania funkcji przedmiot
Wyrażenie x = przedmiot.nazwa(); w JavaScripcie dość często bywa mylnie interpretowane, bo miesza się pojęcia atrybutów, cech obiektu i metod. W składni obiektowej JavaScript zapis przedmiot.nazwa oznacza odwołanie się do własności o nazwie nazwa, należącej do obiektu przedmiot. Jeśli do tej własności przypisana jest funkcja, to mówimy o metodzie obiektu. Dopiero nawiasy okrągłe () po nazwie powodują wywołanie tej funkcji. To jest istotna różnica: sama kropka nie uruchamia żadnego kodu, tylko daje dostęp do pola lub metody.
Stwierdzenie, że nazwa jest atrybutem klasy przedmiot, wprowadza w błąd z dwóch powodów. Po pierwsze, w klasycznym JavaScripcie pracujemy głównie na obiektach, a nie na „klasach” w sensie znanym z Javy czy C#. Słowo „class” pojawiło się w nowszej składni, ale nadal pod spodem działają prototypy. Po drugie, w kodzie z pytania mamy konkretny obiekt przedmiot, a nie definicję klasy, więc mówienie o „atrybucie klasy” jest tutaj nietrafione. Bardziej poprawnie jest mówić o własności obiektu albo metodzie obiektu.
Druga mylna interpretacja to traktowanie nazwa jako „cechy” obiektu przedmiot. Gdyby to była zwykła cecha (np. tekst), zapis wyglądałby raczej tak: x = przedmiot.nazwa; bez nawiasów. Wtedy x dostałby wartość właściwości, np. string. Dodanie () jasno sugeruje, że nazwa jest funkcją, czyli metodą, a nie prostym polem danych. To jest częsty błąd: nieuwaga na nawiasy prowadzi do złego zrozumienia, co dokładnie robi kod.
Równie mylące jest zdanie, że zmienna x będzie przechowywać wynik działania funkcji przedmiot. W tym zapisie przedmiot nie jest funkcją, tylko obiektem, na którym wywołujemy metodę nazwa(). Gdyby przedmiot był funkcją, wywołanie wyglądałoby przedmiot(), a nie przedmiot.nazwa(). Z mojego doświadczenia wynika, że uczniowie mieszają obiekty z funkcjami, bo w JS funkcja też jest typem danych i można ją przypisać do zmiennej. Dlatego warto mocno utrwalić: obiekt.metoda() – wywołujesz metodę obiektu, funkcja() – wywołujesz funkcję przypisaną bezpośrednio do zmiennej.
Podsumowując, poprawne rozumienie tego zapisu opiera się na zauważeniu dwóch rzeczy: przedmiot jest obiektem, nazwa jest metodą tego obiektu, a nawiasy oznaczają wywołanie metody, której wynik dopiero jest przypisywany do x. Pomyłki wynikają zwykle z ignorowania nawiasów lub z nieodróżniania własności (pól) od metod, co jest podstawą programowania obiektowego w JavaScripcie.

Pytanie 37

Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?

 var osoba = {
    imie: "Jan",
    jezyk: "EN",
    set j(nazwa) {  ...  }
};
A. this.jezyk = nazwa;
B. this.j = nazwa;
C. return this.j;
D. return this.jezyk;
Niepoprawne odpowiedzi w tym pytaniu wynikają z niezrozumienia roli setterów i sposób, w jaki są one używane do zarządzania stanem obiektu w JavaScript. Odpowiedź 'this.j = nazwa;' jest nieprawidłowa, ponieważ próbuje przypisać wartość bezpośrednio do właściwości 'j', która nie istnieje w obiekcie 'osoba'. Z kolei 'return this.j;' i 'return this.jezyk;' nie są prawidłowe, ponieważ setter nie powinien zwracać wartości. Jego zadaniem jest ustawienie wartości, a nie jej zwrócenie. Zrozumienie roli setterów w zarządzaniu stanem obiektu jest kluczowe dla prawidłowego używania JavaScript. Setter powinien zawsze przypisywać wartość do właściwości obiektu, a nie próbować zwrócić wartość lub przypisać wartość do nieistniejącej właściwości.

Pytanie 38

Które z poniższych stwierdzeń dotyczących klucza głównego jest poprawne?

A. Jest unikalny w obrębie tabeli
B. Składa się wyłącznie z jednego pola
C. Może przyjmować tylko wartości numeryczne
D. W tabeli z danymi osobowymi może to być pole z nazwiskiem
Klucz podstawowy to atrybut lub zestaw atrybutów, który jednoznacznie identyfikuje każdy rekord w tabeli bazy danych. Najważniejszym wymogiem jest, aby klucz podstawowy był unikalny dla każdego wiersza, co oznacza, że nie może być powtórzony w obrębie tej samej tabeli. Przykładem może być numer identyfikacyjny (np. PESEL, NIP) przypisany do konkretnej osoby, który gwarantuje, że każda osoba w tabeli danych osobowych jest jednoznacznie identyfikowalna. Stosowanie kluczy podstawowych jest zgodne z zasadami normalizacji baz danych, co pozwala na minimalizację redundancji danych oraz poprawę integralności danych. Klucz podstawowy może składać się z jednego lub więcej pól, co daje elastyczność w projektowaniu bazy danych, aby pasowała do specyficznych potrzeb aplikacji. Dobre praktyki wskazują, że klucz podstawowy powinien być stabilny, czyli nie zmieniać się w czasie, oraz prosty do zaimplementowania i używania w zapytaniach SQL.

Pytanie 39

Który z przedstawionych rysunków ilustruje efekt działania zamieszczonego fragmentu kodu HTML?

Ilustracja do pytania
A. rys. A
B. rys. B
C. rys. C
D. rys. D
Odpowiedzi inne niż rys. C nie są poprawne z powodu błędnego zrozumienia jak działa atrybut rowspan w języku HTML. Gdy komórka tabeli posiada atrybut rowspan oznacza to że komórka ta rozciąga się pionowo na określoną liczbę wierszy. W przypadku braku zrozumienia tego mechanizmu można błędnie przypuszczać że każda komórka zaczyna się i kończy w obrębie jednego wiersza. Taki tok myślenia prowadzi do niepoprawnego rozmieszczenia elementów tabeli jak w rys. A lub D gdzie nie wzięto pod uwagę łączenia komórek w pionie. W odpowiedzi A pierwsza komórka nie obejmuje dwóch wierszy co jest sprzeczne z kodem. W odpowiedzi B z kolei drugi wiersz zawiera dwie komórki co również jest sprzeczne z kodem który definiuje tylko jedną. Takie błędy często wynikają z braku doświadczenia w używaniu zaawansowanych funkcji HTML co może prowadzić do mylnych wyobrażeń o tym jak kod przekłada się na widok strony. Atrybuty rowspan i colspan są kluczowe w kontekście strukturalnego podejścia do budowy stron internetowych i ich poprawne użycie ma istotne znaczenie dla dostępności oraz zrozumienia danych przez użytkowników i technologie wspomagające. Ważne jest także zrozumienie różnic między tworzeniem struktury a prezentacją co jest możliwe dzięki CSS zamiast nadużywania tabel do layoutów.

Pytanie 40

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Zadeklarować zmienną i
B. Zweryfikować, czy text ma typ string
C. Zainicjować zmienną text
D. Sprawdzić rozmiar tabeli tab
Zainicjowanie zmiennej text przed użyciem jej w kodzie JavaScript jest kluczowe dla uniknięcia błędów runtime. W analizowanym kodzie zmienna text jest używana do przechowywania i modyfikacji danych stringowych w pętli. Bez wcześniejszej inicjalizacji, np. text = '', próba konkatenacji wartości do zmiennej text prowadziłaby do błędu, gdyż zmienna ta nie miałaby początkowej wartości. Zainicjowanie zmiennej jako pustego stringa jest dobrym przykładem praktyki programistycznej, która zapobiega nieoczekiwanym błędom i zapewnia, że zmienna ma przewidywalny stan początkowy przed rozpoczęciem operacji na niej. Taka inicjalizacja jest również zgodna z zasadą defensywnego programowania gdzie staramy się zminimalizować ryzyko wystąpienia błędów poprzez odpowiednie przygotowanie danych przed ich użyciem. W praktyce, inicjalizacja zmiennych jest częścią dobrych standardów programistycznych i pomaga w utrzymywaniu czytelności i niezawodności kodu, co jest szczególnie istotne w projektach zespołowych oraz dużych aplikacjach.