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 kwietnia 2026 11:59
  • Data zakończenia: 28 kwietnia 2026 12:24

Egzamin niezdany

Wynik: 14/40 punktów (35,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Skrypt strony internetowej stworzony w PHP

A. jest realizowany po stronie serwera
B. może być uruchomiony bez wsparcia serwera WWW
C. jest realizowany po stronie klienta
D. jest przetwarzany na tych samych zasadach co JavaScript
Kod strony WWW napisanej w języku PHP jest wykonywany po stronie serwera, co oznacza, że cały proces przetwarzania kodu zachodzi na serwerze, zanim strona zostanie wysłana do przeglądarki użytkownika. PHP jest językiem skryptowym, który generuje dynamiczne treści oraz może wchodzić w interakcje z bazami danych, co czyni go niezwykle efektywnym narzędziem do tworzenia aplikacji webowych. Przykładowo, gdy użytkownik wysyła formularz, skrypt PHP na serwerze może przetworzyć dane, a następnie wygenerować odpowiednią stronę HTML, która jest następnie przesyłana do klienta. Dodatkowo, PHP wspiera różne standardy, takie jak RESTful API, co pozwala na łatwe integrowanie z innymi systemami oraz aplikacjami. Warto także zauważyć, że PHP ma szeroką gamę frameworków, takich jak Laravel czy Symfony, które jeszcze bardziej ułatwiają rozwój aplikacji webowych poprzez dostarczanie gotowych rozwiązań oraz najlepszych praktyk. Z tego względu, znajomość PHP oraz jego działania po stronie serwera jest kluczowa dla każdego dewelopera webowego, który pragnie tworzyć nowoczesne i efektywne aplikacje.

Pytanie 2

Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL

A. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
B. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;
C. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6;
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
W tym zadaniu kluczowe są dwie rzeczy: poprawna składnia SQL i właściwe zrozumienie logiki warunków w klauzuli WHERE. Wiele osób intuicyjnie skupia się tylko na treści pytania i trochę pomija formalne wymagania języka, a to potem mści się w realnych systemach. Pierwszy typ błędu to pomijanie klauzuli FROM. Instrukcje w stylu SELECT imie, nazwisko WHERE wiek < 18 ... wyglądają na pierwszy rzut oka sensownie, bo jest wybór kolumn i jest warunek, ale w SQL standardowo nie da się filtrować rekordów bez wskazania źródła danych. Serwer bazodanowy musi wiedzieć, z której tabeli pobrać kolumny imie, nazwisko, wiek i lekarz_id. Brak FROM Pacjenci powoduje po prostu błąd składni, a nie „prawie działającą” kwerendę. Z mojego doświadczenia to bardzo typowy błąd osób zaczynających przygodę z SQL: mieszanie logiki „co chcę” z tym „jak to ma być zapisane w języku”. Drugi, bardziej podstępny problem to mylenie operatorów logicznych AND i OR. W zadaniu chodzi o pacjentów poniżej 18 roku życia, którzy jednocześnie są przypisani do lekarza o id = 6. To jest klasyczny przypadek koniunkcji – oba warunki muszą być spełnione. Użycie OR zamiast AND powoduje zupełnie inne działanie: zapytanie zwróci wszystkich pacjentów młodszych niż 18 lat niezależnie od lekarza, a dodatkowo wszystkich pacjentów lekarza nr 6 w każdym wieku. W praktyce taki raport byłby kompletnie niezgodny z założeniem, a co gorsza, na pierwszy rzut oka mógłby wyglądać „prawie dobrze”, bo część wyników się zgadza. Warto też zwrócić uwagę na to, że przy prostych warunkach AND/OR bez nawiasów kolejność oceny może być myląca, dlatego dobrą praktyką w bardziej złożonych zapytaniach jest stosowanie nawiasów, np. WHERE (wiek < 18 AND lekarz_id = 6) OR ... itd. Tutaj warunek jest prosty, ale nawyk myślenia o logice boole’owskiej bardzo się przydaje. Podsumowując, poprawne zapytanie musi mieć: wskazaną tabelę w klauzuli FROM, właściwie dobrane kolumny w SELECT oraz warunek z użyciem AND, który zawęża wynik do rekordów spełniających oba kryteria jednocześnie. Pomyłki w którymkolwiek z tych elementów prowadzą albo do błędu składni, albo – co gorsza – do logicznie błędnych raportów, których użytkownik nie zauważy od razu, a to w systemach produkcyjnych bywa naprawdę groźne.

Pytanie 3

W jaki sposób należy ustawić monitor, aby były spełnione zasady ergonomicznej pracy przy stanowisku komputerowym?

A. Dla osób praworęcznych monitor powinien stać z prawej strony, a dla leworęcznych z lewej strony stanowiska komputerowego. 
B. Monitor powinien stać ekranem do okna w celu ograniczenia odblasków i refleksów świetlnych.
C. Górna krawędź ekranu powinna znajdować się nieco poniżej poziomu oczu użytkownika.
D. Monitor powinien być tak ustawiony, by kąt między płaszczyzną monitora, a linią patrzenia na jego środek mieścił się w granicy 80° ÷ 90°.
Prawidłowo – kluczowa zasada ergonomii mówi, że górna krawędź ekranu powinna znajdować się nieco poniżej poziomu oczu użytkownika. Chodzi o to, żeby naturalny kierunek patrzenia był lekko w dół, mniej więcej pod kątem ok. 15–20° względem linii poziomej. Z fizjologii wiemy, że oczy i mięśnie szyi najmniej się męczą, gdy nie muszą stale patrzeć do góry. Jeżeli monitor stoi zbyt wysoko, użytkownik podnosi brodę, napina kark i po paru godzinach pojawiają się bóle szyi, barków, czasem nawet bóle głowy. Z kolei zbyt niskie ustawienie ekranu powoduje nadmierne pochylanie się i zaokrąglanie pleców. Moim zdaniem to jest jeden z najczęściej olewanych, a jednocześnie najprostszych do poprawy elementów stanowiska pracy. W praktyce dobrze jest usiąść w normalnej, wygodnej pozycji, oprzeć plecy o oparcie krzesła i spojrzeć na wprost. W tej pozycji górna krawędź monitora powinna być minimalnie niżej niż linia oczu. Wtedy środek ekranu znajduje się mniej więcej na wysokości, na którą patrzysz naturalnie podczas pracy. Odległość od monitora powinna wynosić zwykle 50–70 cm, w zależności od przekątnej i rozdzielczości ekranu – im większy monitor, tym często można go odsunąć dalej. Ważne jest też, żeby ekran był ustawiony na wprost, a nie „pod skosem”, żeby nie zmuszać szyi do stałego skrętu. Standardy BHP oraz wytyczne ergonomiczne (np. PN-EN ISO 9241) zwracają uwagę nie tylko na wysokość monitora, ale też na odpowiednie nachylenie (najczęściej lekko do tyłu, ok. 10–20°), brak odblasków i równomierne oświetlenie stanowiska. Jednak to właśnie wysokość górnej krawędzi ekranu względem oczu jest jednym z podstawowych parametrów, który można szybko skorygować nawet w domu czy w szkole – czasem wystarczy prosty podest pod monitor lub regulowana podstawka. Z mojego doświadczenia mała korekta ustawienia ekranu potrafi zauważalnie zmniejszyć zmęczenie wzroku i karku po kilku godzinach pracy przy komputerze.

Pytanie 4

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. kolor tekstu będzie szary
D. tło nagłówka będzie w odcieniu szarości
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 5

Proces układania danych w bazie, który obejmuje tworzenie tabel, definiowanie relacji pomiędzy nimi oraz eliminację zbędnych danych i niespójnych powiązań, nazywany jest

A. nadmiarowością
B. normalizacją
C. sprawdzaniem integralności referencyjnej
D. sprawdzaniem spójności danych
Weryfikacja integralności referencyjnej to kwestia tego, żeby sprawdzić, czy relacje między tabelami w bazie są ok, czyli czy klucze obce prowadzą do istniejących rekordów. To ważne, ale nie dotyczy organizacji danych, która polega na tworzeniu tabel i relacji. Z kolei weryfikacja spójności danych to już inna sprawa, bo chodzi tu o zgodność danych w jednej tabeli, a nie o eliminowanie powtórzeń czy ustalanie relacji między różnymi tabelami. Redundancja to problem, bo to oznacza, że dane są powielane, co może powodować problemy, ale nie jest procesem, tylko skutkiem złej organizacji danych. Ważne jest, żeby znać te różnice, bo mylenie ich może prowadzić do nieefektywnego tworzenia baz danych. Dlatego dobrze jest korzystać z zasad normalizacji, żeby uniknąć kłopotów z nadmiarowością i niespójnością, bo to jest kluczowe dla zachowania integralności bazy. Zastosowanie tych zasad może naprawdę poprawić działanie bazy.

Pytanie 6

Jakie uprawnienia 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ł przeszukiwać dane w tabeli klienci.
B. Będzie mógł eliminować rekordy z tabeli klienci.
C. Będzie mógł zmieniać strukturę tabeli klienci.
D. Będzie mógł dodawać rekordy do tabeli klienci.
Wybór odpowiedzi, że jan będzie mógł usuwać rekordy z tabeli klienci, jest błędny. Polecenie REVOKE SELECT, INSERT, UPDATE, DELETE nałożone na użytkownika jan oznacza, że pozbawiono go możliwości wykonywania operacji, które są kluczowe dla zarządzania danymi w tej tabeli. W praktyce, zasady przyznawania uprawnień w bazach danych wymagają, aby użytkownicy mieli określone uprawnienia do przeprowadzenia operacji na danych. Usuwanie rekordów jest operacją, która wymaga posiadania odpowiednich uprawnień, a ponieważ jan został pozbawiony uprawnienia DELETE, nie może on już usuwać żadnych danych z tabeli klienci. Podobnie, stwierdzenie, że jan będzie mógł wyszukiwać dane, również jest błędne, ponieważ uprawnienie SELECT zostało odjęte. W kontekście administracji bazą danych, kluczowe jest zrozumienie, że przyznawanie lub odbieranie uprawnień powinno być zgodne z zasadą najmniejszych uprawnień, co oznacza, że użytkownicy powinni mieć tylko te uprawnienia, które są niezbędne do wykonywania ich pracy. W tym przypadku jan ma pełne uprawnienia do zmiany struktury tabeli, ale nie ma żadnej możliwości interakcji z danymi. Zatem, odpowiedzi dotyczące możliwości wstawiania rekordów również są błędne, ponieważ uprawnienie INSERT zostało zabrane, co uniemożliwia janowi dodawanie nowych danych do tabeli. W związku z powyższym, wybór odpowiedzi na pytanie egzaminacyjne powinien opierać się na dokładnej analizie przyznanych uprawnień oraz ich wpływu na możliwości działania użytkowników w systemie baz danych.

Pytanie 7

Które z instrukcji algorytmu odpowiada graficznemu przedstawieniu bloku pokazanego na ilustracji?

Ilustracja do pytania
A. Wyświetl w konsoli wartość zmiennej n
B. Zrealizuj podprogram do sortowania tablicy t
C. n ← n – 3
D. n > 70
Wybór opcji wykonaj podprogram sortowania tablicy t jest dość złożony i zazwyczaj przedstawia się go w formie bloku procesu, ale nie powinno to być prostokątne. Takie operacje to nie tylko jedna czynność, trzeba wybrać odpowiedni algorytm, jak np. szybkie sortowanie, bąbelkowe czy przez wstawianie. Operacja n > 70 z kolei to logiczny warunek, który zwykle pokazuje się w notacji algorytmicznej jako romb, a nie prostokąt. Warunki są istotne w programach, pozwalają na podejmowanie decyzji. Jeśli warunki są źle napisane, to psuje to całą logikę kodu, co jest ważne, bo w testowaniu i debugowaniu ma to ogromne znaczenie. Wypisywanie wartości zmiennej n na konsolę to kolejna operacja związana z wejściem i wyjściem, która w diagramach reprezentowalibyśmy równoległobokiem, a nie prostokątem. Te działania pozwalają nam na interakcję z użytkownikami i pokazywanie wyników. Wszystkie te odpowiedzi źle przypisują elementy do prostokątnego bloku, co pokazuje, jak ważne jest zrozumienie notacji algorytmicznej w codziennej pracy programisty. Jeśli nie zrozumiemy tych różnic, to może się to odbić na wydajności i trudności w utrzymaniu kodu.

Pytanie 8

Który z poniższych skryptów pokazuje bieżącą datę oraz czas w formacie 2024-04-14 13:45:19?

A. <?php echo date("Ymd Gis"); ?>
B. <?php date("Y-m-d”) + time("G:i:s"); ?>
C. <?php echo date("Y-m-d G:i:s"); ?>
D. <?php date("Y-m-d G:i:s"); ?>
W pierwszej odpowiedzi użycie date oraz time jest niepoprawne, ponieważ funkcja time w PHP nie przyjmuje parametrów i zwraca znacznik czasu Unix, który nie formatuje czasu w sposób czytelny dla użytkownika. Próba dodawania tych dwóch funkcji powoduje błąd składniowy, ponieważ nie można łączyć wyników funkcji za pomocą operatora + w ten sposób. Druga odpowiedź używa funkcji echo poprawnie, ale formatowanie daty i czasu jest błędne. W tej odpowiedzi brakuje łączników pomiędzy elementami daty i czasu, co powoduje nieczytelny wynik, taki jak 20190923 105816. Ponadto, nie zastosowano dwukropków pomiędzy godziną minutami i sekundami, co jest kluczowe dla zrozumienia przez użytkownika. Trzecia odpowiedź zawiera poprawne formatowanie daty i czasu, ale nie używa funkcji echo, co oznacza, że wynik nie zostanie wyświetlony użytkownikowi. W PHP funkcja date musi być połączona z echo lub print, aby jej wynik był widoczny na stronie. Typowy błąd myślowy polega na nierozróżnieniu między formatowaniem a wyświetlaniem danych, co jest kluczowe w programowaniu webowym. Zrozumienie tych zasad jest fundamentalne dla tworzenia dynamicznych i interaktywnych aplikacji.

Pytanie 9

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 125
B. 60
C. 625
D. 120
Program jest przykładem prostego algorytmu obliczającego silnię liczby n, którą użytkownik wprowadza za pomocą funkcji prompt. Zmienna a jest inicjalizowana wartością 1 i służy do przechowywania wyniku. Pętla for rozpoczyna się od wartości n i zmniejsza wartość i do 2, za każdym razem mnożąc a przez i. Dla n=5 pętla wykona się pięć razy, obliczając kolejno 5*4*3*2*1, co daje wynik 120. Metoda document.write wyświetla wynik na stronie. Rozumienie mechanizmu działania pętli for i operatora *= jest kluczowe w zrozumieniu algorytmów obliczeniowych używanych w programowaniu JavaScript. Silnia jest podstawowym przykładem algorytmu rekurencyjnego, który można również zaimplementować za pomocą funkcji rekurencyjnej, co jest często stosowane w programowaniu funkcyjnym. Znajomość takich konstrukcji pozwala na tworzenie bardziej zaawansowanych algorytmów przetwarzania danych i optymalizację kodu, co jest cenioną umiejętnością w branży IT.

Pytanie 10

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. części wspólnej.
B. grupowania.
C. wykluczenia.
D. sumy.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 11

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 <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
D. <b>pogrubiony </b><i>pochylony</i> 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 12

Jakie oprogramowanie NIE JEST systemem do zarządzania treścią (CMS)?

A. Apache
B. WordPress
C. Mambo
D. Joomla
Joomla, WordPress i Mambo to systemy zarządzania treścią, które umożliwiają użytkownikom tworzenie oraz zarządzanie treściami na stronach internetowych. Każdy z tych CMS-ów ma swoje unikalne cechy, które przyciągają różne grupy użytkowników. Na przykład, Joomla jest często wybierana do bardziej złożonych projektów, które wymagają zaawansowanego zarządzania użytkownikami i treściami, podczas gdy WordPress jest szczególnie popularny wśród blogerów i małych firm ze względu na swoją prostotę i bogaty ekosystem wtyczek. Mambo, z kolei, był jednym z pierwszych systemów CMS, który zyskał popularność, jednakże jego rozwój został w pewnym momencie wstrzymany. Wybór jednego z tych systemów jako niewłaściwego może wynikać z nieporozumienia dotyczącego funkcji i zastosowania tych narzędzi. Często użytkownicy mylą rolę serwera, który hostuje aplikację, z rolą samej aplikacji. Zrozumienie, że Apache jest serwerem, a nie systemem zarządzania treścią, jest kluczowe. W kontekście projektowania i wdrażania rozwiązań internetowych, ważne jest, aby dostrzegać różnice między infrastrukturą a aplikacjami, które na niej działają. Właściwe zrozumienie tych konceptów pozwala na lepsze projektowanie architektury systemów oraz lepsze dostosowanie narzędzi do konkretnych potrzeb projektu.

Pytanie 13

Dla dowolnego a z zakresu (0,99) celem funkcji napisanej w języku JavaScript jest
function fun(a)
 {
    for(n=a; n <=100; n++)
    document.write(n);
    return(n);
 }

A. wypisanie liczb z zakresu a .. 100 oraz zwrócenie wartości zmiennej n
B. zwrócenie liczb z zakresu a .. 99
C. wypisanie wartości zmiennej a i zwrócenie wartości zmiennej n
D. wypisanie liczb z zakresu a .. 99 oraz zwrócenie wartości 100
Wszystkie niepoprawne odpowiedzi zawierają błędne założenia dotyczące zakresu wypisywanych liczb oraz wartości zwracanej przez funkcję. W przypadku opcji dotyczącej zwrócenia liczb z przedziału a .. 99, ściśle rzecz biorąc, nie uwzględnia ona końcowej wartości 100, co jest niepoprawne, ponieważ funkcja z założenia przewiduje iterację aż do wartości 100. W odpowiedzi dotyczącej wypisania liczb z przedziału a .. 99 i zwrócenia wartości 100, również występuje błąd, ponieważ funkcja nie kończy się na 99, a na 100, a wartość zwracana przez funkcję to 'n', która po ostatniej iteracji wynosi 101. Alternatywnie, jeśli chodzi o wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n, ta odpowiedź nie odnosi się do głównego celu funkcji, którym jest wypisanie liczb w określonym zakresie. Wartość zmiennej 'a' nie jest wypisywana jako pojedyncza wartość, a 'n' jako iterator nie reprezentuje wartości 100, lecz przekracza ją po zakończeniu pętli. Dlatego wszystkie te odpowiedzi zawierają fundamentalne nieporozumienia co do działania pętli for i użycia zmiennej 'n' w kontekście realizacji założonej funkcji.

Pytanie 14

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 6
B. 5
C. 10
D. 0
W przypadku błędnych odpowiedzi, takich jak 10, 5, 0 czy 6, można zauważyć, że wynikają one z nieprawidłowego zrozumienia działania pętli for w PHP. Odpowiedź 10 sugeruje, że użytkownik zakłada, iż pętla wykonuje się do 10, co jest błędne, ponieważ na każdym kroku zmienna $i zwiększa się o 2. Użycie 5 jako odpowiedzi może wskazywać na niepoprawne obliczenie liczby iteracji przy założeniu, że pętla mogłaby wykonać się z tylko pięcioma incrementami, co jest również mylące. Wybór 0 jako odpowiedzi jest konsekwencją mylnego założenia, że pętla mogłaby w ogóle nie działać, co jest sprzeczne z logiką, ponieważ pętla rozpoczyna się od $i = 0 i spełnia warunek kontynuacji. Ważne jest, aby podczas analizy pętli skupić się na warunkach początkowych, zmiennej sterującej oraz modyfikacji tej zmiennej w każdym cyklu. Prawidłowe obliczenie liczby iteracji pętli jest kluczowe w programowaniu, ponieważ ma to bezpośredni wpływ na wydajność i efektywność działania algorytmów.

Pytanie 15

Który typ relacji wymaga stworzenia tabeli pośredniczącej łączącej klucze główne obu tabel?

A. 1..1
B. n..1
C. n..n
D. 1..n
Wybór relacji 1..1 sugeruje, że jeden rekord w pierwszej tabeli jest powiązany z dokładnie jednym rekordem w drugiej tabeli, co nie wymaga tabeli pośredniej. Przykładem może być relacja między tabelą 'Pracownicy' a tabelą 'Działy', gdzie każdy pracownik jest przypisany do jednego działu, a każdy dział ma jednego pracownika. Relacje 1..n oraz n..1 również nie wymagają tabel pośrednich, ponieważ pozwalają na przypisania jednego rekordu do wielu rekordów, ale nie wymagają wzajemnych powiązań, co jest charakterystyczne dla relacji n..n. Relacja 1..n oznacza, że jeden rekord z tabeli A może być powiązany z wieloma rekordami z tabeli B, ale nie odwrotnie, natomiast w relacji n..1 wiele rekordów z tabeli A jest przypisanych do jednego rekordu w tabeli B. Te błędne podejścia wynikają z niepełnego zrozumienia struktury relacji danych oraz roli tabel pośrednich w zarządzaniu skomplikowanymi powiązaniami. Aby uniknąć mylnych interpretacji, ważne jest zrozumienie, że relacje 1..1, 1..n i n..1 nie wymagają tabel pośrednich, ponieważ nie łączą wielu rekordów z obu tabel, co jest kluczowym wymogiem dla relacji n..n.

Pytanie 16

W tabeli zwierzeta znajdują się kolumny nazwa, gatunek, gromada, cechy, dlugosc_zycia. Aby uzyskać listę nazw zwierząt, które dożywają przynajmniej 20 lat oraz są ssakami, jakie zapytanie należy wykonać?

A. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 OR gromada = 'ssak';
B. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20;
C. SELECT nazwa FROM zwierzeta WHERE gromada = 'ssak';
D. SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >= 20 AND gromada = 'ssak';
Zrozumienie, dlaczego pozostałe odpowiedzi są niepoprawne, wymaga analizy koncepcji związanych z używaniem operatorów w zapytaniach SQL. Pierwsza opcja, która wskazuje jedynie na gromadę ssaków, nie spełnia wymagania dotyczącego długości życia. W rezultacie, takie zapytanie może zwrócić wszystkie ssaki, niezależnie od ich długości życia, co nie odpowiada na postawione pytanie. Druga odpowiedź koncentruje się wyłącznie na długości życia zwierząt, a więc zignoruje ich przynależność do gromady, co również prowadzi do niekompletnych wyników. Z punktu widzenia standardów projektowania baz danych, takie podejście jest niewłaściwe, ponieważ nie uwzględnia wymagań wielokryterialnych. Ostatnia opcja używa operatora 'OR', co oznacza, że wystarczy, aby jedno z kryteriów było spełnione, co skutkuje zwróceniem większej liczby zwierząt, w tym tych, które są krócej żyjące i nie są ssakami. Taki sposób myślenia prowadzi do sytuacji, w której wyniki są rozmyte i nieprecyzyjne, co w praktyce może wpłynąć na jakość analiz i decyzji opartych na tych danych. Właściwe formułowanie zapytań jest kluczowe dla zapewnienia, że otrzymujemy tylko te dane, które są istotne dla naszych potrzeb i celów analitycznych.

Pytanie 17

Warunek zapisany w JavaScript będzie prawdziwy, gdy zmienna x posiada

Ilustracja do pytania
A. wartość, która nie jest liczbą
B. dowolną dodatnią wartość liczbową
C. pusty ciąg znaków
D. dowolną całkowitą wartość liczbową
W JavaScript funkcja isNaN() jest kluczowa w sprawdzaniu, czy wartość jest liczbą. Pusty napis, mimo że nie wygląda jak liczba, w kontekście JavaScript, zostanie przekonwertowany na zero, co czyni go liczbą, ale nie dodatnią. Dlatego pusty napis nie spełnia kryterium x > 0. Zasada konwersji typów w JavaScript często prowadzi do błędów logicznych, jeśli nie jest dobrze znana. Wartość nieliczbowa, jak na przykład ciąg znaków, zwróci true dla isNaN(), co oznacza, że negacja tego wyrażenia wprowadzi błąd logiczny w tym warunku. Takie nieporozumienia są powszechne i wynikają z niepełnego zrozumienia, jak JavaScript radzi sobie z niejawnie typowanymi danymi. Z kolei dowolna całkowita wartość liczbowa obejmuje zarówno liczby dodatnie, jak i ujemne oraz zero. Tylko liczby dodatnie spełniają drugi warunek x > 0. Typowym błędem jest założenie, że każdy rodzaj liczby całkowitej spełnia kryteria warunku, co nie jest prawdą w tym przypadku. Poprawne rozumienie powyższych zasad i mechanizmów typów w JavaScript jest niezbędne do unikania błędów logicznych i optymalizacji działania kodu. Kluczowe jest zastosowanie dobrych praktyk programistycznych, takich jak walidacja danych i przemyślane struktury warunkowe, które wspierają precyzyjne i skuteczne działanie aplikacji.

Pytanie 18

Fragment kwerendy SQL zaprezentowany w ramce ma na celu uzyskanie

SELECT COUNT(wartosc) FROM ...
A. sumę wartości w kolumnie wartosc.
B. średnią wartość w kolumnie wartosc.
C. liczbę wierszy.
D. liczbę kolumn.
SELECT COUNT(wartosc) w zapytaniu SQL jest często mylone z innymi funkcjami agregującymi, co może prowadzić do nieporozumień dotyczących jego działania. COUNT jest specyficznie zaprojektowany do zliczania niepustych wartości w określonej kolumnie, dlatego nie jest używany do obliczania sumy czy średniej wartości. Suma w kolumnie wartosc wymagałaby użycia funkcji SUM(wartosc), która zlicza wartości liczbowe. Z kolei obliczanie średniej wartości w kolumnie wymagałoby zastosowania funkcji AVG(wartosc), która dzieli sumę wartości przez liczbę niepustych wierszy. Mylenie tych funkcji może prowadzić do błędnych interpretacji danych i niepoprawnych wyników, co jest kluczowe w środowisku biznesowym, gdzie precyzja i dokładność są niezbędne. Warto zauważyć, że zrozumienie różnic w działaniu funkcji agregujących jest fundamentalne dla efektywnej analizy danych. Stosowanie odpowiednich funkcji pozwala na optymalizację zapytań oraz zapewnia, że uzyskane wyniki są zgodne z oczekiwaniami analitycznymi, co jest kluczowe w podejmowaniu decyzji opartych na danych.

Pytanie 19

W przedstawionym kodzie PHP, co powinno się wyświetlić zamiast znaków zapytania?

$x = mysql_query('SELECT * FROM mieszkancy');
if(!$x)
echo "???????????????????????";
A. Zapytanie zostało zrealizowane pomyślnie
B. Błąd w trakcie przetwarzania zapytania
C. Nieprawidłowe hasło do bazy danych
D. Niepoprawna nazwa bazy danych
W przypadku odpowiedzi Nieprawidłowe hasło do bazy danych taki komunikat pojawiłby się raczej na wcześniejszym etapie procesu nawiązywania połączenia z bazą danych a nie podczas przetwarzania samego zapytania SQL Błąd związany z hasłem jest związany z funkcją mysql_connect a nie z mysql_query co wskazuje na niepoprawne zrozumienie sekwencji działań w PHP Podobnie odpowiedź Nieprawidłowa nazwa bazy danych sugeruje problem na etapie nawiązywania połączenia z bazą danych zanim jakiekolwiek zapytanie zostanie wykonane Takie błędy zwykle wynikają z podania niepoprawnych parametrów w funkcji łączącej z bazą danych a nie podczas wykonywania zapytania Dodatkowo wybór tej odpowiedzi wskazuje na brak zrozumienia jak działa mechanizm wyboru bazy danych w PHP Odpowiedź Zapytanie przetworzono pomyślnie jest logicznie błędna w kontekście użycia bloku if(!x) który wyraźnie wskazuje na reakcję na niepowodzenie zadania więc nie może być wybrana jako prawidłowa w sytuacji gdy oczekiwane jest wystąpienie błędu Takie błędy myślowe często wynikają z niezrozumienia struktury warunkowej w PHP oraz sposobu obsługi błędów Praktyczną wskazówką jest zawsze testowanie i logowanie komunikatów zwracanych przez funkcje PHP co jest zgodne z dobrymi praktykami programistycznymi i pozwala unikać takich pomyłek

Pytanie 20

W bazie danych MYSQL znajduje się tabela z programami komputerowymi, która ma pola: nazwa, producent, rokWydania. Jak należy sformułować kwerendę SELECT, aby uzyskać wszystkie nazwy producentów bez powtórzeń?

A. SELECT DISTINCT producent FROM programy;
B. SELECT UNIQUE producent FROM programy;
C. SELECT producent FROM programy WHERE producent NOT DUPLICATE;
D. SELECT producent FROM programy WHERE UNIQUE;
Odpowiedzi oparte na słowie kluczowym UNIQUE są po prostu błędne, bo w SQL nie ma takiej klauzuli jak WHERE UNIQUE. To może być mylące, bo niektórzy użytkownicy mogą myśleć, że UNIQUE jest tym samym co DISTINCT. Klauzula UNIQUE jest używana, żeby ustalić unikalność w strukturze tabel, a nie w kontekście zapytań. A używanie 'WHERE producent NOT DUPLICATE' też jest nietrafione, bo słowo 'DUPLICATE' nie istnieje w SQL. Zamiast tego, żeby eliminować duplikaty, używamy DISTINCT. Często błędne zrozumienie SQL bierze się z tego, że ludzie mylą różne klauzule i ich zastosowania. Kiedy piszesz zapytania SQL, ważne jest, żeby wiedzieć, które kluczowe słowa pasują do konkretnej akcji i co one oznaczają, gdy chodzi o dane.

Pytanie 21

Która z list jest interpretacją pokazanego kodu?

Ilustracja do pytania
A. Odpowiedź C
B. Odpowiedź A
C. Odpowiedź D
D. Odpowiedź B
Odpowiedź C jest prawidłowa, ponieważ odpowiada strukturze listy zagnieżdżonej w HTML. W kodzie źródłowym użyto listy uporządkowanej <ol>, co oznacza, że elementy listy będą numerowane. Każdy element <li> w tej liście może zawierać dodatkowe listy nieuporządkowane <ul>, które są oznaczane jako lista punktowana. W przypadku kodu przedstawionego na rysunku mamy dwie główne pozycje 'muzyka' i 'filmy' zawarte w liście uporządkowanej, stąd 1. muzyka i 2. filmy. Pod pozycjami 'muzyka' i 'filmy' znajdują się listy zagnieżdżone nieuporządkowane, zawierające wpisy 'Wpis1', 'Wpis2', 'Wpis3' i 'Wpis4'. Dobre praktyki w projektowaniu stron sugerują użycie list zagnieżdżonych do klarownego przedstawienia hierarchii informacji. Wykorzystanie list uporządkowanych i nieuporządkowanych jest standardem w semantycznym HTML, co wpływa na dostępność stron internetowych oraz ich zgodność z różnymi urządzeniami i technologiami wspomagającymi. Taka struktura ułatwia również nawigację wśród treści dla użytkowników i algorytmów indeksujących wyszukiwarek internetowych.

Pytanie 22

W programie INKSCAPE / COREL, aby uzyskać efekt przedstawiony w napisie, należy

Ilustracja do pytania
A. zastosować funkcję wykluczenia z kołem
B. skorzystać z funkcji wstaw / dopasuj tekst do ścieżki
C. wykorzystać funkcję sumy z kołem
D. posłużyć się funkcją gradientu
Wybierając odpowiednie narzędzia do osiągnięcia skomplikowanych efektów typograficznych ważne jest zrozumienie właściwości każdej funkcji Dostępne odpowiedzi sugerują nieprawidłowe podejścia do problemu Gradient jest narzędziem używanym głównie do tworzenia płynnych przejść między kolorami w obiektach wektorowych Nie wpływa on bezpośrednio na układ tekstu wzdłuż ścieżki Wybór tej opcji może wynikać z błędnego rozumienia że gradient wpływa na formę obiektu w tym przypadku tekstu Funkcja sumy w kontekście programów graficznych takich jak Inkscape czy CorelDraw dotyczy operacji booleowskich na obiektach co prowadzi do łączenia kształtów Wynikowa forma jest sumą obszarów wyjściowych jednak znów nie wpływa to na układ tekstu wzdłuż ścieżki Działanie funkcji wykluczenia z kolei polega na tworzeniu przecięcia dwóch kształtów i usunięciu wspólnego obszaru co jest używane głównie w tworzeniu złożonych kształtów Nie ma to zastosowania przy dopasowywaniu tekstu do ścieżki Myślenie że te operacje booleowskie mogą wpływać na tekst wynika z niezrozumienia jak działają te funkcje w kontekście obiektów i tekstu w programach graficznych Kluczowym błędem jest tutaj założenie że funkcje do manipulacji kształtami mogą być bezpośrednio stosowane do tekstu bez zrozumienia specyfiki narzędzi jakimi są gradient sumowanie czy wykluczanie które nie dotyczą bezpośrednio zarządzania tekstem wzdłuż ścieżki

Pytanie 23

Przedstawiony kod źródłowy ma na celu zaprezentowanie

$liczba = 1;
while ($liczba != 0)
{
    $liczba = rand(0,100);
    echo $liczba;
}
A. wylosowanych liczb od 1 do 99
B. losowych liczb od 0 do 100 do momentu, aż nie wylosowana zostanie liczba 0
C. kolejnych liczb od 1 do 100
D. liczb wprowadzonych z klawiatury tak długo, aż nie zostanie podana wartość 0
Analizując inne odpowiedzi, można zauważyć kilka nieporozumień dotyczących działania kodu. Kod nie wyświetla kolejnych liczb od 1 do 100, ponieważ nie zawiera mechanizmu inkrementacji liczby w sposób sekwencyjny. Jest to typowy błąd, który wynika z mylnego zrozumienia działania pętli i przypisywania wartości. Zamiast tego pętla generuje losowe liczby, co jest zupełnie innym procesem. Kod nie wczytuje danych z klawiatury, ponieważ nie zawiera żadnych funkcji wejścia/wyjścia, takich jak scanf czy inne odpowiedniki w języku PHP. Proces wczytywania danych z klawiatury wymaga interakcji z użytkownikiem, co w tym przypadku nie występuje. Istnieje również błędne zrozumienie, że kod wyświetla wylosowane liczby od 1 do 99. Funkcja rand(0,100) generuje liczby z zakresu od 0 do 100, a nie od 1 do 99. Zakres generowanych liczb jest kluczowym aspektem, który powinien być dokładnie rozumiany przez programistów, aby unikać niepoprawnych założeń prowadzących do błędnych wyników. Takie nieporozumienia często wynikają z niedostatecznej znajomości specyfikacji funkcji używanych w programowaniu i mogą prowadzić do błędów logicznych w kodzie, co w praktyce może skutkować nieoczekiwanym zachowaniem aplikacji. Ważne jest dokładne zrozumienie dokumentacji funkcji i ich właściwego zastosowania, co pozwala na poprawne projektowanie i implementację algorytmów w różnych sytuacjach problemowych. Zrozumienie różnic w działaniu funkcji i ich efektów jest kluczowe dla skutecznego programowania i unikania błędów związanych z niepoprawnym przetwarzaniem danych.

Pytanie 24

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Anna, Maria, Ewa
B. Monika, Ewelina, Maria
C. Wyłącznie Maria
D. Wyłącznie Anna
Ważne jest zrozumienie działania klauzuli WHERE w SQL, zwłaszcza gdy stosujemy w niej operator OR. Częstym błędem przy analizie takich zapytań jest traktowanie operatora OR jak operatora AND co prowadzi do błędnych wniosków. W zapytaniu SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 celem jest wybór imion pracowników spełniających przynajmniej jedno z podanych kryteriów. Można błędnie założyć że wybierane są tylko osoby z nazwiskiem Kowal i stanowiskiem większym od 2 lub odwrotnie co prowadzi do niepoprawnej interpretacji danych. Imiona takie jak Monika czy Ewelina nie pojawiają się w wyniku ponieważ ich stanowiska wynoszą dokładnie 2 co nie spełnia wymagań stanowisko > 2. Natomiast imię Maria jest wynikowe ponieważ nazwisko Kowal spełnia pierwszy warunek a Anna i Ewa są wybierane przez drugi warunek dotyczący stanowiska. Zrozumienie różnicy między operatorami AND i OR jest kluczowe dla poprawnego tworzenia zapytań SQL oraz unikania błędów logicznych przy przetwarzaniu danych. Operator OR wymaga aby przynajmniej jeden z warunków był prawdziwy co zwiększa elastyczność filtrowania danych ale także wymaga ostrożności aby nie uzyskać wyników niezgodnych z intencjami analizy. Znajomość i umiejętność wykorzystania różnych operatorów logicznych pozwala na efektywne zarządzanie danymi i ich analizę co jest niezbędne w pracy z bazami danych.

Pytanie 25

Jakiego elementu HTML należy użyć, aby uzyskać tekst z czcionką o stałej szerokości znaku, w którym uwzględnione są dodatkowe spacje, tabulacje oraz znaki końca linii?

A. <code> ... </code>
B. <ins> ... </ins>
C. <pre> ... </pre>
D. <blockquote> ... </blockquote>
Znacznik <ins> jest używany do oznaczania wstawionego tekstu, co jest przydatne w kontekście edytowania dokumentów lub zaznaczania nowego contentu. Nie wpływa on na formatowanie tekstu w sposób, który zachowałby dodatkowe spacje, tabulacje czy znaki końca linii. Jego głównym celem jest wskazanie na zmiany, a nie prezentacja tekstu w formacie preformatowanym. Znacznik <code> służy do wyświetlania fragmentów kodu, ale nie zachowuje on spacji i nowej linii w taki sposób, jak znaczniki preformatowane. Jest to bardziej semantyczny znacznik, który wskazuje, że zawarty tekst jest kodem, ale nie jest przeznaczony do zachowania struktury tekstu. Z kolei <blockquote> jest używany do cytowania dłuższych fragmentów tekstu, najczęściej z innych źródeł. Również nie zachowuje on formatowania tekstu w sposób, który by uwzględniał dodatkowe białe znaki, a jego główną funkcją jest wyróżnienie cytowanych treści. W kontekście prezentacji tekstu wymagającego precyzyjnego formatowania i zachowania wszystkich spacji, znaczników <ins>, <code> oraz <blockquote> są niewłaściwymi wyborami.

Pytanie 26

Jakie właściwości języka CSS mogą mieć wartości: underline, overline, line-through?

A. text-style
B. text-decoration
C. font-weight
D. font-style
Odpowiedź 'text-decoration' jest poprawna, ponieważ właściwość ta jest używana w CSS do stylizacji tekstu, a jej wartości mogą obejmować 'underline', 'overline' i 'line-through'. Właściwość 'text-decoration' umożliwia dodawanie dekoracji do tekstu, co jest szczególnie przydatne w przypadku podkreślania, przekreślania tekstu czy dodawania linii nad tekstem. Przykład zastosowania: aby podkreślić tekst, można użyć reguły CSS: `p { text-decoration: underline; }`. Dzięki temu wszystkie akapity na stronie będą miały podkreślony tekst. Warto również zauważyć, że w ramach standardów CSS3, właściwość ta zyskała dodatkowe wartości, takie jak 'none' czy 'blink', co jeszcze bardziej rozszerza jej funkcjonalność. W praktyce, 'text-decoration' jest często stosowane w projektach webowych, aby poprawić czytelność i estetykę treści. Dobrą praktyką jest jednak używanie tej właściwości w umiarkowany sposób, aby nie przytłoczyć użytkownika zbyt wieloma dekoracjami, co mogłoby wpłynąć na ogólną użyteczność strony.

Pytanie 27

Zmienna zadeklarowana w C++ jako double x*; to

A. zmienna typu całkowitego
B. wskaźnik
C. parametr formalny typu zmiennoprzecinkowego
D. zmienna zmiennoprzecinkowa
Parametr formalny typu rzeczywistego nie ma zastosowania w kontekście 'double x*;', ponieważ nie jest to definicja dla parametru funkcji, lecz dla wskaźnika na zmienną typu double. Zmienna rzeczywista odnosi się do prostej deklaracji zmiennej, która przechowuje wartość typu double, jednak w tym przypadku mamy do czynienia z wskaźnikiem, a nie ze zmienną przechowującą wartość. Zmienna całkowita z kolei jest typem danych przechowującym liczby całkowite, a więc nie ma związku z typem double, który jest przeznaczony dla liczb zmiennoprzecinkowych. Wskaźniki są bardziej zaawansowanym konceptem w C++, pozwalającym na manipulacje adresami w pamięci oraz umożliwiającym dynamiczne alokacje pamięci. Użycie wskaźników jest kluczowe w przypadku struktur danych oraz programowania obiektowego, gdzie pozwalają one na efektywne przechowywanie i zarządzanie danymi. Zrozumienie różnic między różnymi typami danych w języku C++ oraz ich zastosowań jest niezbędne dla prawidłowego projektowania aplikacji i unikania błędów programistycznych.

Pytanie 28

Zdarzenie JavaScript, które jest wywoływane po pojedynczym kliknięciu dowolnego elementu na stronie, określa się jako

A. onLoad
B. onClick
C. onDblClick
D. onKeyDown
Zdarzenie onClick w JavaScript jest jednym z najczęściej używanych zdarzeń w interakcji użytkownika z elementami na stronie internetowej. Jego podstawowa funkcjonalność polega na rejestrowaniu pojedynczego kliknięcia na danym elemencie, co pozwala na wykonanie określonej akcji w odpowiedzi na to zdarzenie. Zdarzenie to jest szczególnie istotne w kontekście rozwoju aplikacji webowych, gdzie interaktywność jest kluczowym elementem doświadczenia użytkownika. Aby zaimplementować zdarzenie onClick, można użyć zarówno atrybutu HTML, jak i metod JavaScript, takich jak addEventListener. Przykładowo, dodając do przycisku HTML atrybut onClick, możemy bezpośrednio wywołać funkcję JavaScript, co znacząco upraszcza kod. W kontekście standardów, onClick jest częścią DOM Level 2 Events Specification, co zapewnia kompatybilność z różnymi przeglądarkami. Przykład zastosowania: <button onClick='alert("Hello World!")'>Kliknij mnie</button> wywoła okno alertu po kliknięciu przycisku. Korzystanie z onClick pozwala na tworzenie dynamicznych interfejsów, które dostosowują się do działań użytkownika, co jest kluczowe w nowoczesnym web designie i programowaniu JavaScript.

Pytanie 29

W języku JavaScript przedstawiona definicja jest definicją

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. klasy.
B. tablicy.
C. kolekcji.
D. obiektu.
Niestety, wybrana przez Ciebie odpowiedź nie jest poprawna. Wygląda na to, że nie do końca zrozumiałeś jak działa definicja tablicy w JavaScript. Zrozumienie różnicy między tablicami, obiektami, klasami i kolekcjami jest kluczowe. Kolekcje to pojęcie bardziej ogólne, mogą one obejmować różne typy danych, takie jak tablice, listy czy zbiory, a termin ten nie jest używany w kontekście JavaScript. Klasy w JavaScript są 'szablonami' dla tworzenia obiektów, a więc struktur danych składających się z pól (zmiennych) i metod (funkcji). Tablica to specyficzny typ obiektu, który przechowuje elementy w określonym porządku. Wskazane jest, aby dokładnie zrozumieć, jakie informacje są przechowywane w tablicach, klasach, obiektach i kolekcjach w JavaScript, ponieważ jest to kluczowe dla efektywnego korzystania z tego języka. Spróbuj jeszcze raz, z pewnością za kolejnym razem się uda!

Pytanie 30

Jakie polecenie w CSS wykorzystuje się do dołączenia zewnętrznego arkusza stylów?

A. open
B. import
C. include
D. require
W CSS, polecenie 'import' jest używane do załączenia zewnętrznego arkusza stylów. Pozwala na włączenie jednego arkusza CSS do innego, co umożliwia modularność i lepszą organizację stylów w projektach. Składnia polecenia 'import' jest następująca: @import url('ścieżka/do/arkusza.css');. Umożliwia to dynamiczne ładowanie stylów, co jest szczególnie przydatne w dużych projektach, gdzie może być konieczne podzielenie stylów na mniejsze, bardziej zarządzalne pliki. Warto również pamiętać, że polecenie powinno znajdować się na początku arkusza CSS, przed jakimikolwiek innymi regułami, aby mogło być prawidłowo przetworzone przez przeglądarki. Zgodnie z normami W3C, 'import' jest uznawane za standardową metodę organizacji stylów, jednak nadmierne jego użycie może wpłynąć na wydajność, ponieważ może prowadzić do zwiększenia liczby zapytań HTTP. W praktyce, najlepszym podejściem jest ograniczenie użycia 'import' do sytuacji, w których jest to rzeczywiście konieczne, a w miarę możliwości korzystanie z bezpośrednich linków do arkuszy stylów w sekcji <head> dokumentu HTML.

Pytanie 31

Głównym celem systemu CMS jest oddzielenie treści serwisu informacyjnego od jego wizualnej formy. Ten efekt osiągany jest przez generowanie zawartości

A. z plików HTML o stałej zawartości oraz wizualizacji przy pomocy technologii FLASH
B. z bazy danych oraz wyglądu ze zdefiniowanego szablonu
C. z bazy danych oraz wizualizacji poprzez atrybuty HTML
D. z plików HTML o stałej zawartości oraz wizualizacji z użyciem ustalonego szablonu
Wybór odpowiedzi, która sugeruje wykorzystanie ze statycznych plików HTML, jest w istocie niezgodny z ideą systemów CMS. stosowanie statycznych plików HTML oznacza, że każda zmiana treści serwisu wymagałaby ręcznej edycji plików, co jest czasochłonne i podatne na błędy. Takie podejście ogranicza elastyczność i możliwość szybkiej aktualizacji treści. Z kolei odpowiedzi wskazujące na wykorzystanie technologii FLASH są przestarzałe, ponieważ Flash nie jest już wspierany przez większość nowoczesnych przeglądarek i nie spełnia wymogów dostępności, co stawia pod znakiem zapytania jego użyteczność w kontekście nowoczesnych stron internetowych. Ponadto, odpowiedzi sugerujące wykorzystanie atrybutów HTML do definiowania wyglądu również są niewłaściwe, ponieważ atrybuty HTML nie są wystarczające do efektywnego kształtowania i zarządzania stylem aplikacji. W praktyce do definiowania wyglądu stosuje się arkusze stylów CSS, a nie tylko atrybuty. W konsekwencji, błędne koncepcje opierające się na statycznych plikach czy przestarzałych technologiach prowadzą do sytuacji, w której serwis staje się trudny w utrzymaniu i mało elastyczny, co jest sprzeczne z głównymi zaletami systemów zarządzania treścią.

Pytanie 32

Do naprawy i optymalizacji bazy danych w MySQL stosuje się polecenie:

A. mysqlslap
B. mysqlcheck
C. mysqldump
D. mysqladmin
Poprawnie wskazujesz mysqlcheck – to właśnie to narzędzie w świecie MySQL służy do sprawdzania, naprawy i optymalizacji tabel oraz całych baz danych. mysqlcheck działa na poziomie serwera MySQL i pozwala wykonywać operacje typu CHECK TABLE, REPAIR TABLE, ANALYZE TABLE i OPTIMIZE TABLE bez konieczności ręcznego wpisywania tych poleceń SQL dla każdej tabeli z osobna. W praktyce administrator lub programista uruchamia mysqlcheck z linii poleceń, podając nazwę bazy lub używając opcji pozwalających przejść po wszystkich bazach, i narzędzie automatycznie sprawdza struktury danych, indeksy oraz próbuje naprawić drobne uszkodzenia. Z mojego doświadczenia jest to jedno z podstawowych narzędzi do bieżącego utrzymania MySQL, szczególnie przy tabelach MyISAM, ale bywa też używane przy InnoDB (głównie do analizowania i optymalizowania). Dobrą praktyką jest okresowe uruchamianie mysqlcheck na środowiskach produkcyjnych poza godzinami szczytu, aby wykryć ewentualne problemy z tabelami, zreorganizować indeksy i poprawić wydajność zapytań. Można je też zintegrować ze skryptami cron, żeby automatycznie raz na jakiś czas robić check/optimize. Ważne jest też używanie odpowiednich opcji, np. --auto-repair, --optimize lub --all-databases, żeby dokładnie sterować tym, co ma być zrobione. W odróżnieniu od narzędzi backupowych mysqlcheck nie służy do kopiowania danych, tylko do utrzymania ich spójności i efektywnej pracy silnika bazodanowego. Takie podejście jest zgodne z dobrymi praktykami administracji bazami danych, gdzie rozdziela się zadania: osobno narzędzia do kopii zapasowych, osobno do testów wydajności, a osobno do napraw i optymalizacji struktur.

Pytanie 33

W języku SQL używanym przez bazę danych MySQL atrybut UNIQUE w poleceniu CREATE TABLE

A. uniemożliwia wprowadzenie wartości NULL
B. wymusza niepowtarzalne nazwy kolumn tabeli
C. jest używany, jeżeli wartości w danej kolumnie nie mogą się powtarzać
D. jest stosowany jedynie w przypadku kolumn liczbowych
W pierwszej niepoprawnej odpowiedzi wspomniano o wymogu unikatowości nazw pól tabeli. To stwierdzenie jest błędne, ponieważ atrybut UNIQUE nie dotyczy nazw kolumn, lecz wartości przechowywanych w tych kolumnach. W SQL możemy mieć wiele kolumn w tabeli o tej samej nazwie, o ile są one częścią różnych tabel. Zatem, atrybut UNIQUE nie ma wpływu na nazywanie kolumn, a jego głównym celem jest zapewnienie unikalności danych. Kolejną nieprawidłową informacją jest stwierdzenie, że atrybut UNIQUE blokuje możliwość wpisania wartości NULL. W rzeczywistości, w MySQL atrybut UNIQUE pozwala na wprowadzenie wartości NULL, ponieważ wartość NULL jest traktowana jako brak danych, co oznacza, że różne rekordy mogą mieć NULL jako wartość w kolumnie oznaczonej przez UNIQUE. Wreszcie, twierdzenie, że atrybut UNIQUE jest stosowany tylko w przypadku pól liczbowych, jest również fałszywe. Atrybut UNIQUE można zastosować do dowolnego typu danych, w tym tekstowych, datowych czy liczbowych. W praktyce, atrybut ten może być używany w różnych kontekstach, aby zapewnić unikalność danych w każdej kolumnie, niezależnie od ich typów.

Pytanie 34

Aby baza danych działała poprawnie i konsekwentnie, konieczne jest wprowadzenie w każdej tabeli

A. klucza obcego z wartością NOT NULL i UNIQUE
B. kluczy PRIMARY KEY i FOREIGN KEY
C. klucza PRIMARY KEY z wartością NOT NULL i UNIQUE
D. klucza FOREIGN KEY z wartością NOT NULL
Każda z pozostałych opcji jest błędna z perspektywy podstawowych zasad projektowania baz danych. Klucz FOREIGN KEY jest ważnym elementem w relacyjnych bazach danych, jednak jego sama obecność nie wystarcza do zapewnienia integralności danych w tabeli. Klucz obcy służy jako odniesienie do klucza głównego innej tabeli, co pozwala na łączenie danych, ale nie gwarantuje, że każdy rekord w tabeli będzie miał unikalny identyfikator. W przypadku wartości NOT NULL, nie jest to wymagane dla klucza FOREIGN KEY, ponieważ klucz obcy może odnosić się do wartości NULL w tabeli głównej. Wprowadzenie ograniczenia UNIQUE na kluczu obcym również nie jest konieczne, ponieważ jego głównym celem jest relacja pomiędzy tabelami, a nie zapewnienie unikalności w obrębie jednej tabeli. Dodatkowo, klucz PRIMARY KEY z wartością NOT NULL i UNIQUE jest niezbędny, ponieważ to właśnie te cechy zapewniają, że tabela będzie dobrze zorganizowana i efektywna. Dlatego też, aby zapewnić spójność i integralność danych, klucz PRIMARY KEY odgrywa kluczową rolę, a inne opcje nie mogą zastąpić jego fundamentalnych właściwości.

Pytanie 35

W języku JavaScript zmienna i, która ma przechowywać wynik dzielenia równy 1, powinna być zadeklarowana jako

A. var i = Number(3/2)
B. var i = 3/2
C. var i = parseFloat(3/2)
D. var i = parseInt(3/2)
Odpowiedź "var i = parseInt(3/2);" jest prawidłowa, ponieważ funkcja parseInt konwertuje podaną wartość na liczbę całkowitą, w tym przypadku wynik dzielenia 3/2 wynosi 1.5. Funkcja ta zaokrągla wynik w dół do najbliższej liczby całkowitej, co skutkuje wartością 1, która jest następnie przypisywana do zmiennej i. W praktyce, użycie parseInt jest często spotykane w sytuacjach, gdy zachodzi potrzeba uzyskania liczby całkowitej z wartości zmiennoprzecinkowej, na przykład podczas obliczeń wymagających całkowitych jednostek, takich jak liczba produktów w koszyku. Ponadto, ważne jest również, aby rozumieć, że parseInt przyjmuje drugi argument, który określa podstawę liczbową, co jest zgodne z najlepszymi praktykami programistycznymi, aby unikać niejednoznaczności w interpretacji wartości. W związku z tym, używanie parseInt w kontekście takich operacji jest zgodne z dobrymi praktykami programistycznymi i pozwala na uniknięcie nieprzewidzianych błędów w obliczeniach.

Pytanie 36

W HTML-u, aby umieścić animację FLASH w formacie .swf na stronie internetowej, należy skorzystać ze znacznika

A. <object>
B. <audio>
C. <img>
D. <video>
Aby dodać animację FLASH z rozszerzeniem .swf na stronę internetową, należy użyć znacznika <object>. Ten znacznik jest zgodny z wieloma standardami HTML i pozwala na osadzanie różnorodnych mediów, w tym plików FLASH. Użycie <object> umożliwia nie tylko wyświetlenie animacji, ale także interakcję z nią, co jest niezbędne w przypadku interaktywnych aplikacji FLASH. Warto zauważyć, że HTML5 wprowadził nowe elementy, takie jak <video> i <audio>, które są bardziej odpowiednie do obsługi multimediów w nowoczesnych aplikacjach internetowych, ale jeśli chodzi o pliki FLASH, to <object> pozostaje właściwym wyborem. Przykład użycia: <object data='animacja.swf' type='application/x-shockwave-flash' width='550' height='400'></object>. Pomimo, że wsparcie dla FLASH jest obecnie ograniczone, zrozumienie tego znacznika i jego zastosowania jest kluczowe dla pracy z większą ilością multimediów w HTML. Ponadto, zgodność z danymi standardami zapewnia, że strona będzie działać poprawnie w różnych przeglądarkach.

Pytanie 37

W tabeli artykuly przeprowadzono poniższe operacje związane z uprawnieniami użytkownika jan.

GRANT ALL PRIVILEGES ON artykuły TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan

Jakie będą uprawnienia użytkownika jan po wykonaniu tych operacji?

A. tworzenia tabeli oraz aktualizowania danych w niej
B. aktualizowania informacji oraz przeglądania tabeli
C. przeglądania tabeli
D. tworzenia tabel oraz ich zapełniania danymi
Wybór odpowiedzi dotyczącej "aktualizowania danych i przeglądania tabeli" nie jest poprawny, ponieważ po wykonaniu polecenia REVOKE SELECT, UPDATE ON artykuly FROM jan, jan traci te konkretne uprawnienia. Warto zauważyć, że polecenie GRANT ALL PRIVILEGES przyznaje użytkownikowi szereg uprawnień, ale ich zakres można ograniczyć innymi poleceniami, jak REVOKE. Z tego powodu jan nie ma już możliwości przeglądania tabeli ani jej aktualizowania, co czyni tę odpowiedź nieaktualną. Często w praktyce zawodowej zdarza się, że nadawane są szerokie uprawnienia, a następnie w miarę potrzeby są one ograniczane, co może prowadzić do nieporozumień, jeśli nie zrozumie się działania tych poleceń. Kolejna niepoprawna odpowiedź, która sugeruje "przeglądanie tabeli", również jest błędna z tego samego powodu - jan nie ma takich uprawnień po REVOKE. Ostatnia z odpowiedzi, mówiąca o "tworzeniu tabeli i aktualizowaniu w niej danych", jest niepoprawna, ponieważ użytkownik jan nie ma już prawa aktualizacji danych po wycofaniu tych uprawnień. Zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe w pracy z bazami danych, aby uniknąć przypisania użytkownikom większych niż potrzebne przywilejów, co mogłoby prowadzić do nieautoryzowanego dostępu lub usunięcia danych.

Pytanie 38

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz1.png zostanie wymieniony przez obraz2.png
B. obraz2.png zostanie wymieniony przez obraz1.png
C. obraz2.png zostanie zniknięty
D. obraz1.png zostanie zniknięty
Odpowiedź jest poprawna, ponieważ przycisk w kodzie JavaScript powoduje, że po jego kliknięciu element HTML o identyfikatorze 'id1', który jest obrazem 'obraz2.png', zostanie ukryty. Wartość 'style.display' zmienia się na 'none', co jest standardowym sposobem na ukrycie elementu w dokumentach HTML. W praktyce takie podejście jest szeroko stosowane w interaktywnych aplikacjach webowych, aby poprawić doświadczenia użytkowników, umożliwiając im dynamiczne ukrywanie lub wyświetlanie treści w odpowiedzi na ich działania. Ukrywanie elementów zamiast ich usuwania z DOM ma swoje zalety, ponieważ umożliwia ich późniejsze przywrócenie, co jest bardziej efektywne w kontekście wydajności. Dobrym przykładem może być rozwijane menu na stronie, gdzie po kliknięciu na dany element, jego zawartość jest ukrywana lub pokazywana bez potrzeby przeładowywania całej strony.

Pytanie 39

Gdzie należy umieścić znacznik meta w języku HTML?

A. między znacznikami body
B. w stopce strony internetowej
C. w sekcji nagłówkowej strony internetowej
D. między znacznikami paragrafu
Znacznik meta w języku HTML jest kluczowym elementem, który powinien być umieszczony w części nagłówkowej (head) dokumentu. Znaczniki meta służą do definiowania różnych informacji o stronie, takich jak zestaw znaków, opis, słowa kluczowe, autor oraz inne istotne dane, które nie są bezpośrednio wyświetlane na stronie. Przykładowo, znacznik meta z atrybutem 'charset' informuje przeglądarki, w jaki sposób interpretować znaki na stronie, co jest szczególnie ważne dla prawidłowego wyświetlania treści w różnych językach. Standardy HTML5 zalecają umieszczanie znaczników meta w nagłówku, aby umożliwić optymalizację SEO, co zwiększa widoczność strony w wynikach wyszukiwania. Dobrą praktyką jest również dodanie opisu strony przy pomocy znacznika meta 'description', co pozwala wyszukiwarkom na lepsze zrozumienie tematyki strony oraz zwiększa klikalność w wynikach wyszukiwania.

Pytanie 40

Które z poniższych wyrażeń logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w przedziale (6, 203>?

A. (zm1 > 6) || (zm1 <= 203)
B. (zm1 > 6) || (zm1 != 203)
C. (zm1 > 6) && (zm1 != 203)
D. (zm1 > 6) && (zm1 <= 203)
Odpowiedź (zm1 > 6) && (zm1 <= 203) jest poprawna, ponieważ w pełni odzwierciedla definicję przedziału otwartego dla dolnej granicy (6) i domkniętej dla górnej granicy (203). Operator && (AND) zapewnia, że oba warunki muszą być spełnione jednocześnie: zmienna zm1 musi być większa niż 6 oraz jednocześnie musi być mniejsza lub równa 203. Taki zapis jest zgodny z powszechnie przyjętymi praktykami programowania, gdzie jasne określenie warunków dla zakresu wartości jest kluczowe do unikania błędów logicznych. Przykładem zastosowania tej logiki może być weryfikacja danych wejściowych w formularzu, gdzie akceptowane są jedynie wartości mieszczące się w określonym przedziale. Użycie odpowiednich operatorów logicznych, takich jak && i ||, jest niezbędne do precyzyjnego definiowania warunków w aplikacjach, co prowadzi do bardziej niezawodnych i czytelnych kodów. Zrozumienie tych koncepcji jest fundamentalne dla każdego programisty, który dąży do tworzenia efektywnych i bezbłędnych aplikacji.