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: 28 marca 2025 22:10
  • Data zakończenia: 28 marca 2025 22:27

Egzamin zdany!

Wynik: 28/40 punktów (70,0%)

Wymagane minimum: 20 punktów (50%)

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

Efektem wykonania kwerendy dla przedstawionej tabeli rezerwacje jest

SELECT sezon, SUM(liczba_dn) FROM rezerwacje
GROUP BY sezon;

id_pokliczba_dnsezon
110lato
24zima
15lato
26zima
15lato
39zima
18zima

A. lato 3, zima 4
B. lato 10, 5, 5; zima 4, 6, 9, 8
C. lato 10, zima 4, lato 5, zima 6, lato 5, zima 9, zima 8
D. lato 20, zima 27
Dobrze, że wybrałeś odpowiedź 'lato 20, zima 27'. Jest to poprawne rozwiązanie, ponieważ zapytanie SQL, które wykonujemy na tabeli rezerwacje, grupuje wyniki według sezonu i sumuje liczbę dni dla każdego sezonu. W praktyce, jeżeli mamy tabelę z danymi o rezerwacjach na różne sezony i chcemy zrozumieć, ile łącznie dni zostało zarezerwowanych dla każdego sezonu, musimy użyć takiego zapytania. W tym przypadku, suma dni dla sezonu 'lato' wynosi 20, a dla sezonu 'zima' - 27. Wiedza ta jest niezwykle przydatna, gdy na przykład chcemy zaplanować ilość dostępnych miejsc w hotelu na kolejne sezony, biorąc pod uwagę historię rezerwacji. Zwróć uwagę, że korzystanie z funkcji agregujących jak SUM w SQL jest kluczowe dla przeprowadzania analiz danych. Właściwe zrozumienie i stosowanie tych funkcji pozwoli Ci na przeprowadzanie skomplikowanych analiz i przewidywań na podstawie zgromadzonych danych.

Pytanie 2

Jakiego zdarzenia należy użyć, aby funkcja JavaScript była uruchamiana za każdym razem, gdy użytkownik wprowadzi jakikolwiek znak w polu edycji?

A. onload
B. onkeydown
C. onclick
D. onmouseout
Zdarzenie 'onclick' jest używane do wykrywania kliknięć myszą, a nie do monitorowania wprowadzania tekstu. Dlatego nie jest odpowiednie dla tego kontekstu, gdzie istotne jest reagowanie na każde naciśnięcie klawisza. Kiedy użytkownik klika w pole edycji, nie oznacza to, że wprowadza tekst; to zdarzenie jedynie wskazuje na interakcję myszą. Z tego powodu poleganie na 'onclick' nie pozwoli na prawidłowe reagowanie na wprowadzanie danych przez użytkownika. Z drugiej strony, 'onmouseout' jest zdarzeniem, które wywoływane jest, gdy kursor myszki opuszcza element, co również nie ma zastosowania w sytuacji, gdy chcemy monitorować tekst wprowadzany przez użytkownika. Takie podejście może prowadzić do nieporozumień, ponieważ 'onmouseout' nie dotyczy interakcji związanej z klawiaturą. Z kolei 'onload' jest stosowane do wykrywania momentu, gdy strona internetowa lub element na niej załadują się całkowicie. To zdarzenie również nie ma zastosowania w kontekście wprowadzania tekstu, ponieważ nie jest związane z interakcją użytkownika. Kluczowe jest zrozumienie, że każde z tych zdarzeń ma swoje specyficzne zastosowania, a wybór niewłaściwego zdarzenia może prowadzić do nieefektywnego działania aplikacji oraz utrudnienia w interakcji z użytkownikiem. Dlatego istotne jest zrozumienie różnicy pomiędzy tymi zdarzeniami oraz ich kontekstem użycia.

Pytanie 3

Proces przetwarzania sygnału wejściowego w czasie, wykorzystujący zasadę superpozycji, jest związany z filtrem

A. przyczynowym
B. o skończonej odpowiedzi impulsowej
C. liniowym
D. niezmiennym w czasie
Wybór odpowiedzi związanej z filtrami przyczynowymi, niezmiennymi w czasie i o skończonej odpowiedzi impulsowej może prowadzić do nieporozumień w kontekście filtracji sygnałów. Filtr przyczynowy, chociaż może być liniowy, niekoniecznie musi spełniać wszystkie założenia dotyczące superpozycji, ponieważ jego odpowiedź impulsowa ogranicza się do przeszłych wartości sygnału, co może wprowadzać dodatkowe zniekształcenia w analizie sygnałów. Stosowanie filtrów niezmiennych w czasie w kontekście superpozycji również wymaga ostrożności, ponieważ mogą one wprowadzać zmiany w amplitudzie i fazie sygnałów, co prowadzi do złożonych interakcji. Z kolei filtry o skończonej odpowiedzi impulsowej (FIR) są typem filtru liniowego, ale nie zawsze są przyczynowe; można je zaprojektować jako filtry nieprzyczynowe, co podważa ich użyteczność w kontekście rzeczywistych zastosowań przetwarzania sygnałów. Warto zauważyć, że w praktyce, projektowanie filtrów wymaga zrozumienia i analizy zarówno ich właściwości liniowych, jak i nieliniowych, a także wpływu na jakość przetwarzanych sygnałów. Kluczowe jest również uwzględnienie spektrum sygnału oraz jego cech, co jest zgodne z najlepszymi praktykami inżynieryjnymi, aby uzyskać optymalne wyniki w aplikacjach inżynieryjnych.

Pytanie 4

W przypadku przedstawionego fragmentu kodu walidator HTML zgłosi błąd, ponieważ

<img src="kwiat.jpg alt="kwiat">

A. wprowadzono nieznany atrybut alt
B. użyto niewłaściwego znacznika do wyświetlenia obrazu
C. nie zamknięto cudzysłowu
D. nie odnaleziono pliku kwiat.jpg
Poprawna odpowiedź to nie domknięto cudzysłowu ponieważ w kodzie HTML atrybuty muszą być poprawnie zamknięte aby poprawnie interpretować ich wartości. W przedstawionym fragmencie kodu dla znacznika img brakuje końcowego cudzysłowu po wartości src co stanowi błąd składniowy. Tego typu błędy mogą prowadzić do nieprawidłowego działania strony ponieważ przeglądarka nie jest w stanie jednoznacznie określić końca wartości atrybutu co może skutkować nieprawidłowym renderowaniem danych. Zgodnie z najlepszymi praktykami każde otwarte cudzysłowie powinno być zamknięte aby zapewnić poprawną interpretację kodu. Ponadto stosowanie poprawnego zamykania cudzysłowów zwiększa czytelność kodu co jest istotne przy współpracy zespołowej i ułatwia jego utrzymanie. Warto także korzystać z walidatorów HTML które automatycznie wykrywają takie błędy pomagając w ich szybkim usunięciu. Tego rodzaju narzędzia są kluczowe w procesie tworzenia stron internetowych ponieważ umożliwiają weryfikację zgodności kodu z obowiązującymi standardami co ma bezpośredni wpływ na jego wydajność i kompatybilność z różnymi przeglądarkami.

Pytanie 5

Jakie imiona spełniają warunek klauzuli LIKE w poniższym zapytaniu: SELECT imię FROM mieszkańcy WHERE imię LIKE '_r%';?

A. Krzysztof, Krystyna, Romuald
B. Gerald, Jarosław, Marek, Tamara
C. Rafał, Rebeka, Renata, Roksana
D. Arieta, Krzysztof, Krystyna, Tristan
Odpowiedź "Arieta, Krzysztof, Krystyna, Tristan" jest prawidłowa, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE z wzorcem '_r%' oznacza, że imię musi mieć na drugiej pozycji literę 'r' oraz może zawierać dowolne znaki po tej literze. Przykładowo, imię 'Krzysztof' ma 'r' na drugiej pozycji, tak samo jak 'Krystyna', a 'Tristan' również spełnia ten warunek. Imię 'Arieta' również odpowiada, ponieważ 'r' występuje na drugiej pozycji. W praktyce, zastosowanie klauzuli LIKE jest typowe przy wyszukiwaniu wzorców w bazach danych, co jest nieocenione przy tworzeniu systemów informacyjnych, w których istotna jest elastyczność w wyszukiwaniu. Dobra praktyka sugeruje również stosowanie operatora LIKE w połączeniu z innymi warunkami, aby zwiększyć precyzję zapytań, co z kolei przyczynia się do efektywności systemów bazodanowych.

Pytanie 6

Który selektor stosuje formatowanie dla akapitów tekstu z klasą tekst oraz dla elementu blokowego o ID obrazki?

A. p#tekst, div.obrazki
B. p.tekst + div#obrazki
C. p.tekst, div#obrazki
D. p#tekst + div.obrazki
Odpowiedź 'p.tekst, div#obrazki' jest poprawna, ponieważ selektor 'p.tekst' odnosi się do elementów

z klasą 'tekst', a selektor 'div#obrazki' odnosi się do elementu

z identyfikatorem 'obrazki'. Oba selektory są zgodne z zasadami CSS, które pozwalają na stylizację elementów na podstawie ich klas i ID. Na przykład, jeśli chcemy zmienić kolor tekstu w akapitach oraz dodać ramkę do elementu div, możemy zastosować następujący kod: css p.tekst { color: blue; } div#obrazki { border: 1px solid black; } Praktyczne zastosowanie selektorów klas i ID w CSS pozwala na precyzyjne dostosowanie stylu poszczególnych elementów na stronie. Zgodność z najlepszymi praktykami oznacza, że stosujemy jednoznaczne i czytelne nazwy klas oraz ID, co ułatwia późniejszą konserwację kodu oraz współpracę z innymi deweloperami. Warto także pamiętać, że wyższej specyfiki selektory, takie jak ID, mają pierwszeństwo wobec klas, co może wpłynąć na końcowy wygląd elementów na stronie.

Pytanie 7

W CSS, aby ustawić wcięcie pierwszej linii akapitu na 30 pikseli, należy użyć zapisu

A. p {line-height: 30px;}
B. p {text-spacing: 30px;}
C. p {line-indent: 30px;}
D. p {text-indent: 30px;}
Pierwsza z odpowiedzi, p {line-height: 30px;}, odnosi się do interlinii, czyli przestrzeni między poszczególnymi liniami tekstu. Ustawienie line-height na 30 pikseli wpłynie na odległość między liniami, ale nie wprowadzi wcięcia, co jest kluczowe w przypadku tego pytania. Użytkownicy często mylą te właściwości, co prowadzi do nieporozumień w zakresie formatowania tekstu. Druga odpowiedź, p {text-spacing: 30px;}, jest błędna, ponieważ text-spacing nie jest standardową właściwością CSS. CSS nie definiuje takiej właściwości, co może prowadzić do frustracji podczas pracy nad stylizacją dokumentów. W przypadku trzeciej odpowiedzi, p {line-indent: 30px;}, również nie jest to poprawne podejście, gdyż line-indent nie jest uznawane za standardową właściwość CSS, więc jego zastosowanie nie przyniesie oczekiwanych efektów. Typowym błędem jest zakładanie, że każda właściwość związana z tekstem może być zastosowana w podobny sposób, co prowadzi do niepoprawnych wyników. Kluczowe jest zrozumienie różnicy między właściwościami, takimi jak line-height, text-indent i inne, aby skutecznie stylizować tekst na stronach internetowych.

Pytanie 8

Podaj polecenie SQL, które pozwoli na dodanie kolumny miesiacSiewu do tabeli rośliny znajdującej się w bazie danych

A. CREATE TABLE rośliny {miesiacSiewu int};
B. INSERT INTO rośliny VALUES (miesiacSiewu int);
C. UPDATE rośliny ADD miesiacSiewu int;
D. ALTER TABLE rośliny ADD miesiacSiewu int;
Odpowiedź 'ALTER TABLE rośliny ADD miesiacSiewu int;' jest jak najbardziej na miejscu. Używasz tutaj komendy SQL 'ALTER TABLE', co jest standardem, jeśli chcesz coś zmienić w już istniejącej tabeli. W tym przypadku dodajesz nowe pole 'miesiacSiewu' w formacie 'int' do tabeli 'rośliny'. Fajnie, bo dodawanie kolumn w relacyjnych bazach danych to chleb powszedni, zwłaszcza gdy musisz dodać nowe informacje. Na przykład, jak chcesz wiedzieć, kiedy siać rośliny, to zrobienie tego przy pomocy tej komendy pozwoli Ci trzymać te dane blisko innych szczegółów roślin. Warto też pamiętać, żeby nowe kolumny były dobrze indeksowane lub miały jakieś wartości domyślne, bo to może przyspieszyć zapytania do bazy. Tego typu operacje są naprawdę ważne w zarządzaniu bazami danych, bo dają Ci elastyczność, żeby dostosować strukturę bazy do potrzeb Twojej aplikacji.

Pytanie 9

W skrypcie PHP należy stworzyć cookie o nazwie "owoce", które przyjmie wartość "jabłko". Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP trzeba zastosować funkcję:

A. setcookie("owoce", "jabłko", time()+3600);
B. cookie("owoce", "jabłko", 3600);
C. setcookie("jabłko", "owoce", time()+3600);
D. cookie("jabłko", "owoce", 3600);
Funkcja setcookie() jest standardowym narzędziem w PHP, używanym do tworzenia cookies. W przypadku tej odpowiedzi, używamy jej w poprawny sposób, definiując nazwę cookies jako 'owoce', wartość jako 'jabłko' oraz czas wygaśnięcia. Wywołanie time()+3600 oznacza, że cookie będzie ważne przez jedną godzinę od momentu jego utworzenia. Ważne jest, aby pamiętać, że setcookie() musi być wywołane przed jakimkolwiek kodem HTML, który jest wysyłany do przeglądarki. W praktyce, cookies mogą być używane do przechowywania informacji o użytkownikach, takich jak preferencje lub dane sesji. Na przykład, w przypadku aplikacji e-commerce, cookies mogą pomóc w śledzeniu produktów dodanych do koszyka przez użytkownika, co jest istotne dla poprawy doświadczeń zakupowych. Standardy dotyczące cookies wskazują również na konieczność zachowania ostrożności w zakresie prywatności i bezpieczeństwa, dlatego warto stosować flagi zabezpieczeń, takich jak HttpOnly i Secure, w zależności od kontekstu użycia.

Pytanie 10

Przedstawiony błąd, który pojawił się podczas interpretacji kodu PHP, może być spowodowany

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\1\biuro.php on line 38

A. próbą odwołania do nieistniejącego elementu tablicy
B. brakiem bazy danych o nazwie podanej w funkcji mysqli_connect
C. odwołaniem do niezadeklarowanej zmiennej
D. niepowodzeniem w wykonaniu kwerendy na bazie danych
Próba odwołania się do nieistniejącego elementu tablicy w języku PHP jest częstym źródłem błędów. Komunikat błędu wskazuje, że program próbował uzyskać dostęp do wartości w tablicy, która była typu null, czyli nie istniała. Dzieje się tak zazwyczaj, gdy indeks lub klucz, do którego próbujemy się odwołać, nie został wcześniej zainicjalizowany lub zawiera pustą wartość. Aby uniknąć takich błędów, dobrą praktyką jest zawsze sprawdzanie, czy dany indeks istnieje w tablicy przed próbą jego użycia. Można to zrobić za pomocą funkcji isset() lub array_key_exists(). Przykład poprawnego podejścia: jeżeli chcemy uzyskać dostęp do elementu tablicy $tablica['klucz'], najpierw możemy sprawdzić if(isset($tablica['klucz'])). Taka weryfikacja pozwala na unikanie błędów wykonawczych i zapewnia większą stabilność i niezawodność kodu. W kontekście większych aplikacji, gdzie dane są często przetwarzane dynamicznie, takie podejście znacząco zwiększa odporność na błędy, co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 11

W którym z przedstawionych bloków powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Rys. B
B. Rys. C
C. Rys. D
D. Rys. A
Rysunek C przedstawia romb który w diagramach przepływu jest standardowo używany do reprezentowania decyzji lub warunków warunku pętli. Pętle w programowaniu są często oparte na warunkach które decydują o ich kontynuacji lub zakończeniu. Umiejscowienie warunku w rombie pozwala na wyrażenie warunku logicznego który może być testowany jako prawda lub fałsz co jest kluczowe dla działania pętli takich jak while czy for. Przykładem może być pętla while która kontynuuje swoje działanie tak długo jak warunek w rombie jest spełniony. W ten sposób romb ułatwia wizualne i logiczne śledzenie decyzji w algorytmie co jest zgodne z dobrymi praktykami programowania takimi jak przejrzystość i czytelność kodu. Użycie rombu zgodnie z konwencją diagramów przepływu poprawia także zrozumienie algorytmu przez innych programistów co zwiększa efektywność współpracy w zespołach deweloperskich. Stosowanie tego symbolu jest również wspierane przez standardy takie jak UML co czyni go uniwersalnym narzędziem w modelowaniu procesów.

Pytanie 12

Aby przyznać użytkownikowi prawa do tabel w bazie danych, powinno się użyć polecenia

A. GRANT
B. CREATE
C. REVOKE
D. SELECT
Polecenie GRANT jest kluczowym elementem zarządzania uprawnieniami w systemach baz danych, takich jak MySQL, PostgreSQL czy Oracle. Umożliwia ono administratorom nadawanie określonych uprawnień użytkownikom lub rolom, co jest niezbędne do zapewnienia bezpieczeństwa danych oraz kontroli dostępu. Przykładowo, aby umożliwić użytkownikowi o nazwie 'Jan' dostęp do tabeli 'Klienci', można użyć polecenia: GRANT SELECT ON Klienci TO Jan; co przyznaje użytkownikowi prawo do odczytu danych z tej tabeli. Z perspektywy dobrych praktyk, zaleca się stosowanie minimalnych uprawnień, co oznacza, że użytkownik powinien mieć przyznane tylko te uprawnienia, które są mu niezbędne do wykonywania swoich zadań. Dzięki temu można zredukować ryzyko nieautoryzowanego dostępu do wrażliwych informacji. Dodatkowo, operacja GRANT może być stosowana w połączeniu z innymi poleceniami, takimi jak REVOKE, które służy do odbierania wcześniej nadanych uprawnień, co stanowi integralną część zarządzania bezpieczeństwem w bazach danych.

Pytanie 13

Przyjmując, że użytkownik adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do ```SQL GRANT CREATE, ALTER ON sklep.* TO adam; ```

A. tworzenia oraz modyfikowania struktury w tabeli sklep
B. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
C. dodawania i modyfikacji danych w tabeli sklep
D. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
To, co zaznaczyłeś, jest jak najbardziej na miejscu. W tym SQL-u, 'GRANT CREATE, ALTER ON sklep.* TO adam;' dajesz użytkownikowi, czyli adamowi, możliwości tworzenia i zmieniania struktury wszystkich tabel w bazie 'sklep'. Słowo 'CREATE' pozwala mu na tworzenie nowych tabel, a 'ALTER' umożliwia mu wprowadzanie zmian w tych istniejących, na przykład dodawanie czy usuwanie kolumn. Ważne, żeby ogarnąć, że 'sklep.*' oznacza wszystkie tabele w danej bazie, co jest zgodne z dobrymi praktykami w zarządzaniu bazami danych. No bo jakby adam miał ochotę dodać nową tabelę albo zmodyfikować istniejącą, to musi mieć odpowiednie uprawnienia. Przykładem może być sytuacja, gdy administrator daje programiście dostęp do zmian w strukturze tabel, żeby móc dodać nowe funkcje do aplikacji – to naprawdę ważne dla rozwoju systemu.

Pytanie 14

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

A.
B.obrazek kotka
C.obrazek kotka
D.
Odpowiedźobrazek kotkajest poprawna, ponieważ zawiera element, który jest standardowym rozwiązaniem do wyświetlania obrazów w dokumentach HTML. Atrybut src określa ścieżkę do pliku obrazu, co jest kluczowe dla poprawnego załadowania grafiki na stronie. Atrybut alt z kolei pełni istotną rolę w zapewnieniu dostępności treści; tekst alternatywny wyświetla się w przypadku, gdy obraz nie może zostać załadowany lub jest odczytywany przez programy dla osób niewidomych. Zastosowanie odpowiednich atrybutów jest zgodne z wytycznymi W3C dotyczącymi dostępności, co pozwala na tworzenie bardziej przyjaznych dla użytkowników stron internetowych. W praktyce, prawidłowe wykorzystanie atrybutu alt jest również korzystne dla SEO, ponieważ wyszukiwarki analizują te opisy przy ocenie kontekstu strony. Ważne jest, aby zawsze stosować zarówno src, jak i alt, aby zapewnić pełnię funkcji obrazu na stronie.

Pytanie 15

W formularzu zdefiniowano kontrolki do wpisania imienia i nazwiska. Który atrybut reprezentuje podpowiedź umiejscowioną w polu kontrolki, znikającą w momencie, gdy użytkownik rozpocznie wpisywanie wartości?

<label for="imie">Imię: </label>
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">

A. title
B. placeholder
C. value
D. for
Dobrze! Poprawna odpowiedź to 'placeholder'. Atrybut 'placeholder' w elemencie input HTML jest używany do wyświetlania podpowiedzi wewnątrz pola formularza, która znika, gdy użytkownik zaczyna wpisywanie danych. Jest to zgodne z pytaniem, w którym poproszono o atrybut reprezentujący podpowiedź w polu formularza, która znika, gdy użytkownik rozpoczyna wpisywanie. Przykładem może być formularz logowania, gdzie w polach 'Użytkownik' i 'Hasło' można umieścić podpowiedzi 'Wpisz nazwę użytkownika' i 'Wpisz hasło' odpowiednio. Atrybut 'placeholder' jest bardzo przydatny w interaktywnym designie, pomagając użytkownikom zrozumieć, jakie informacje są od nich oczekiwane w danym polu formularza.

Pytanie 16

Wyrażenie JavaScript: document.write(5==='5′); co zostanie wyświetlone?

A. 0
B. 1
C. false
D. true
Odpowiedzi, które wybrałeś, jak '0', 'true' i '1', pokazują, że mogło dojść do pewnych nieporozumień w zrozumieniu, jak działają operatory porównania w JavaScript. Na przykład '0' może sugerować, że sądzisz, że wynik jest liczbowy, a nie logiczny. Warto pamiętać, że w JavaScript liczby i wartości logiczne to różne typy danych. '0' oznacza fałsz, więc to nie jest właściwy wynik. Odpowiedź 'true' świadczy o błędnym przekonaniu, że porównywane wartości są takie same, co nie jest zgodne z tym, co robi '===' . Natomiast odpowiedź '1' sugeruje, że mogłeś pomylić wynik porównania z kodem prawdy w formie 1, co zdarza się w niektórych językach, ale w JavaScript to nie działa. Kluczowe jest to, że '===' porównuje zarówno wartości, jak i typy, więc porównując liczbę i ciąg znaków, dostajemy 'false'. W JavaScript mamy 'true' i 'false', a porównania powinny uwzględniać typy danych, żeby uniknąć zamieszania. Fajnie byłoby, gdybyś zgłębił temat typów danych w JavaScript i sam spróbował różnych porównań, żeby lepiej to ogarnąć.

Pytanie 17

Jakie wartości zostaną wypisane przez funkcję wypisz(2) zaimplementowaną w JavaScript?

function wypisz(a)
{
    for (var i=1; i<6; i++)
    {
        a++;
        if ((a%2==0)|| (a%3==0))
        document.write(a+" " );
    }
}

A. 6
B. 2 3 4 6
C. 3 4 6
D. 3 4 6 8
Funkcja wypisz w JavaScript działa w ten sposób, że przyjmuje argument a i korzysta z pętli for, która powtarza się pięć razy, zwiększając a o 1 w każdej iteracji. Potem sprawdza, czy a jest podzielne przez 2 lub 3, co znaczy, że liczba musi spełniać jeden z tych warunków, żeby być wypisaną. Kiedy zaczniemy z a=2, po pierwszym obiegu pętli a idzie na 3, a 3 spełnia warunek, więc zostaje wypisana. Potem mamy 4 (4 jest podzielne przez 2) i też jest wypisana, a następnie 5, która nie łapie się w warunek. A potem mamy 6, która już wchodzi, bo 6%2==0 i 6%3==0. W efekcie funkcja wypisuje liczby 3, 4 i 6, co zgadza się z poprawną odpowiedzią 3. Warto też dodać, że korzystanie z document.write jest już trochę passé i lepiej używać innych metod, jak innerHTML, bo to jest bardziej bezpieczne i zgodne z nowoczesnymi standardami webowymi. To pozwala na lepszą manipulację treścią strony, co jest na pewno lepsze w kontekście aplikacji dynamicznych.

Pytanie 18

Opracowanie logicznego układu strony internetowej wiąże się z

A. stworzeniem zbioru grafik dla strony.
B. umiejscowieniem elementów w konkretnych punktach strony.
C. zdefiniowaniem adresów URL dla podstron strony.
D. określeniem zawartości strony.
Projektowanie logicznego układu witryny polega na efektywnym rozmieszczeniu elementów w konkretnych miejscach witryny, co jest kluczowe dla zapewnienia optymalnej użyteczności oraz nawigacji. Proces ten obejmuje analizę interakcji użytkowników z treścią oraz zaprojektowanie układu, który umożliwia intuicyjne poruszanie się po stronie. Przykładowo, umiejscowienie menu nawigacyjnego w górnej części strony oraz umieszczenie najważniejszych informacji w widocznych miejscach zwiększa szanse na konwersję. Warto również uwzględnić zasady projektowania responsywnego, co oznacza, że układ powinien być dostosowany do różnych rozmiarów ekranów, zapewniając spójne doświadczenie na urządzeniach mobilnych i stacjonarnych. Standardy takie jak WCAG (Web Content Accessibility Guidelines) również podkreślają znaczenie logicznego rozmieszczenia elementów, aby zapewnić dostępność dla osób z niepełnosprawnościami. Ponadto, dobrze zaprojektowany układ pomaga w optymalizacji SEO, umożliwiając lepsze indeksowanie przez wyszukiwarki.

Pytanie 19

Jaką instrukcją można zastąpić poniższy kod JavaScript, pełniącą tę samą funkcję?

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}

Kod 1.
while (i < 100) {
  document.write(i + ' ');
}

Kod 2.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}

Kod 3.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}

Kod 4.

A. Kod 3
B. Kod 4
C. Kod 1
D. Kod 2
Odpowiedź Kod 3 jest prawidłowa ponieważ instrukcja while w tej formie jest równoważna z podaną pętlą for. W obu przypadkach pętla inicjuje zmienną i na wartości 0 i zwiększa ją o 10 w każdej iteracji aż do osiągnięcia wartości mniejszej niż 100. Pętla for jest skondensowaną formą pętli while i zapewnia bardziej czytelny zapis gdy wszystkie elementy inicjalizacja warunek i inkrementacja są blisko siebie. Taka konstrukcja jest używana w wielu językach programowania zorientowanych obiektowo takich jak JavaScript czy Java. W praktyce pętle te są używane do iteracji przez listy tablice lub do wykonywania powtarzalnych zadań w kodzie. Dobre praktyki zalecają wybór pętli for gdy zakres iteracji jest znany z góry co poprawia czytelność i utrzymanie kodu. Zrozumienie jak pętla while może być przekształcona w pętlę for i odwrotnie jest podstawową umiejętnością w programowaniu co pozwala na elastyczność w pisaniu kodu i lepsze dostosowanie do specyficznych potrzeb aplikacji.

Pytanie 20

Jakie z poniższych stwierdzeń poprawnie opisuje zdefiniowaną tabelę?

CREATE TABLE dane (kolumna INTEGER(3));

A. Kolumny tabeli dane są nazywane: kolumna 1, kolumna2, kolumna3
B. Tabela o nazwie dane posiada jedną kolumnę liczb całkowitych
C. Tabela ma jedną kolumnę, która zawiera tablice z trzema elementami
D. Tabela o nazwie dane zawiera trzy kolumny typu całkowitego
Wszystkie niepoprawne odpowiedzi opierają się na błędnych założeniach dotyczących definicji tabeli i jej kolumn. Twierdzenie, że kolumny tabeli dane nazywają się kolumna1, kolumna2, kolumna3, jest błędne, ponieważ zdefiniowana tabela posiada jedynie jedną kolumnę o nazwie 'kolumna'. W SQL kolumny tworzy się na podstawie zadanej definicji, a w tym przypadku nie ma żadnych dodatkowych kolumn. Kolejne błędne stwierdzenie, że tabela posiada trzy kolumny liczb całkowitych, jest również nieprawdziwe, ponieważ w rzeczywistości mamy tylko jedną kolumnę, nie trzy. Wartości 'kolumna1', 'kolumna2' i 'kolumna3' wskazują na nieporozumienie w interpretacji struktury tabeli. Ponadto, założenie, że tabela posiada jedną kolumnę zawierającą trzyelementowe tablice, jest całkowicie błędne. Typ danych INTEGER oznacza, że kolumna przechowuje pojedyncze liczby całkowite, a nie tablice. W SQL nie definiuje się tablic w ten sposób; jeżeli konieczne byłoby przechowywanie tablic, zastosowanie wymagałoby innego podejścia, takiego jak zdefiniowanie typu danych ARRAY (w systemach, które go obsługują) lub zastosowanie relacji w inny sposób. Tego rodzaju nieporozumienia mogą prowadzić do nieefektywnego projektowania baz danych oraz problemów w aplikacjach korzystających z tych danych, co podkreśla znaczenie dokładności w definiowaniu struktur baz danych.

Pytanie 21

Jakie uprawnienia posiada 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 miał możliwość usuwania rekordów z tabeli klienci
B. Będzie miał możliwość zmiany struktury tabeli klienci
C. Będzie miał możliwość wstawiania rekordów do tabeli klienci
D. Będzie miał możliwość wyszukiwania danych w tabeli klienci
Odpowiedź jest poprawna, ponieważ po wykonaniu poleceń SQL użytkownik jan ma przyznane wszystkie uprawnienia do tabeli klienci, a następnie odebrano mu konkretne uprawnienia do wykonywania operacji SELECT, INSERT, UPDATE oraz DELETE. Oznacza to, że jedynym uprawnieniem, które pozostaje jemu po tych operacjach, jest możliwość zmiany struktury tabeli, co oznacza operacje takie jak ADD COLUMN czy DROP COLUMN. W praktyce, gdy przyznajemy użytkownikowi rolę, często stosujemy uprawnienia do wykonywania operacji DDL (Data Definition Language), które są niezbędne do modyfikacji schematu bazy danych. Odpowiedzi na pytania dotyczące uprawnień powinny uwzględniać kontekst celów administracyjnych, ponieważ różne role użytkowników mogą mieć różne poziomy dostępu. W związku z tym, zrozumienie systemu uprawnień w kontekście zarządzania bazą danych jest kluczowe, a dobrym standardem jest nadawanie użytkownikom tylko tych uprawnień, które są niezbędne do wykonywania ich zadań.

Pytanie 22

W dostępnej tabeli o nazwie przedmioty znajdują się pola: ocena oraz uczenID. Jakie zapytanie należy wykonać, aby obliczyć średnią ocenę ucznia z ID równym 7?

A. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;
B. SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7;
C. COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7;
D. AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;
Zarówno odpowiedzi sugerujące zastosowanie funkcji AVG w niewłaściwej formie, jak i te posługujące się błędnymi konstrukcjami zapytań SQL, ukazują typowe nieporozumienia w zakresie tworzenia poprawnych zapytań do baz danych. Na przykład, druga propozycja "AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;" jest niepoprawna, ponieważ nie przestrzega podstawowej składni SQL. Funkcja AVG musi być użyta w kontekście zapytania SELECT, gdzie najpierw wskazuje się, jakie dane chcemy zgrupować, a następnie stosuje się funkcję agregującą. Ponadto, odpowiedzi bazujące na COUNT, jak "SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;" są mylące, ponieważ metoda COUNT służy do zliczania rekordów spełniających dany warunek, a nie do obliczania średniej. W tym przypadku, zliczanie ocen nie odpowiada na pytanie o średnią, co może prowadzić do błędnych wniosków przy analizie wyników ucznia. Należy pamiętać, że poprawne zrozumienie różnicy między funkcjami agregującymi jest kluczowe dla skutecznej analizy danych. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków obejmują mylenie zadań, do których służą różne funkcje SQL, co może rezultować w nieefektywnej analizie danych i nieprawidłowych wynikach. Właściwe zrozumienie składni oraz funkcji SQL jest niezbędne do efektywnego przetwarzania i analizy danych.

Pytanie 23

Aby zrealizować opisane czynności w JavaScript, konieczne jest umieszczenie poniższego kodu w znaczniku