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: 7 maja 2026 08:23
  • Data zakończenia: 7 maja 2026 08:31

Egzamin niezdany

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

Jakie polecenie pozwala na dodanie kolumny zadanie kompletne do tabeli zadania?

A. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
B. INSERT INTO zadania VALUES zadania kompletne
C. ADD COLUMN zadanie kompletne WITH zadania
D. CREATEINDEX zadania ADD COLUMN zadanie_kompletne int
Odpowiedź 'ALTER TABLE zadania ADD COLUMN zadaniekompletne int' jest na pewno trafna. To polecenie ALTER TABLE to taki standard do zmiany struktury tabeli w relacyjnych bazach, jak MySQL czy PostgreSQL. Dzięki temu możemy dodać nową kolumnę do tabeli, co w tym przypadku robimy, dodając 'zadaniekompletne' jako kolumnę typu całkowitego (int). To jest super, gdy chcemy przechowywać liczby, na przykład ile zadań zostało już ukończonych. Warto pamiętać, że dobrze jest, żeby nazwy kolumn były jasne i jednoznaczne, bo to potem bardzo ułatwia pracę z danymi. Przykład: jak mamy tabelę 'zadania' i chcemy widzieć, jak sobie radzą użytkownicy, to dodanie kolumny 'zadaniekompletne' pozwoli nam śledzić, ile rzeczy zostało ukończonych, co pomoże w ocenie efektywności działań. Można też pomyśleć, żeby zamiast liczby używać flagi boolowskiej, ale to już zależy od systemu. Jeśli chcesz dalej rozwijać swoje umiejętności, to warto zajrzeć do dokumentacji SQL różnych baz, żeby lepiej złapać różnice w działaniu.

Pytanie 2

Podana jest tabela książki z kolumnami: tytuł, autor (w formie tekstowej), cena (w formie liczbowej). Jaką kwerendę SELECT należy wykorzystać, aby otrzymać tylko tytuły, których cena jest niższa niż 50 zł?

A. SELECT ksiazki FROM tytul WHERE cena < '50 zł';
B. SELECT tytul FROM ksiazki WHERE cena < 50;
C. SELECT * FROM ksiazki WHERE cena < 50;
D. SELECT tytul FROM ksiazki WHERE cena > '50 zł';
Odpowiedzi, które zostały podane jako niepoprawne, zawierają różne błędy w składni oraz logiczne nieścisłości. W pierwszym przypadku, zapytanie "SELECT * FROM ksiazki WHERE cena < 50;" zwraca wszystkie kolumny z tabeli, co nie jest zgodne z wymaganiami pytania, które prosi o zwrócenie jedynie tytułów książek. Użycie operatora * zamiast konkretnego pola jest nieefektywne, co prowadzi do większego obciążenia, szczególnie przy dużych zbiorach danych. Innym zapytaniem, które jest niepoprawne, jest "SELECT tytul FROM ksiazki WHERE cena > '50 zł';". To zapytanie zawiera błąd w operatorze porównania, ponieważ zamiast poszukiwać książek tańszych niż 50 zł, filtruje te droższe. Dodatkowo, zawarcie ceny jako tekstu ('50 zł') wprowadza nieprawidłowe zachowanie porównania, ponieważ SQL nie przetwarza wartości tekstowych jako liczb. Wreszcie, zapytanie "SELECT ksiazki FROM tytul WHERE cena < '50 zł';" jest całkowicie błędne, ponieważ sugeruje, że wybieramy kolumnę z tabeli 'ksiazki' na podstawie warunków dotyczących innej kolumny. Tego typu błędne zrozumienie struktury i składni SQL często prowadzi do frustracji w pracy z bazami danych. Kluczowe w nauce SQL jest zrozumienie, że każdy element zapytania ma swoje miejsce i rolę, co pozwala na tworzenie poprawnych i efektywnych kwerend.

Pytanie 3

Definicja obiektu została zapisana w języku JavaScript jako var osoba={imie:"Anna", nazwisko:"Kowalska", rok_urodzenia:1985}; Jak można odwołać się do właściwości nazwisko?

A. osoba.nazwisko
B. osoba[1]
C. osoba[2]
D. osoba::nazwisko
Wszystkie inne odpowiedzi są niepoprawne z różnych powodów technicznych. Pierwsza z nich, osoba[1], opiera się na indeksowaniu tablicy, co jest błędne w kontekście obiektów. W JavaScript obiekty nie mają indeksów; zamiast tego są zorganizowane w pary klucz-wartość, gdzie klucze są nazwami właściwości. Próba uzyskania dostępu do właściwości przez indeksowanie zwróci undefined, ponieważ obiekt nie ma takiego klucza. Kolejna niepoprawna odpowiedź, osoba[2], jest analogicznie błędna, ponieważ odnosi się do drugiego elementu, co również nie ma zastosowania w obiektach. Obiekty w JavaScript nie są tablicami i nie można do nich odwoływać się w sposób, który sugeruje, że mają one numerowane właściwości. Ostatnia odpowiedź, osoba::nazwisko, jest syntaktycznie niepoprawna w JavaScript. Notacja z podwójnymi dwukropkami nie jest stosowana w języku, a niepoprawne użycie operatorów prowadzi do błędów wykonania. W JavaScript poprawny jest tylko dostęp przez notację kropkową lub nawiasową, ponieważ język nie wspiera takiej składni. Te pomyłki mogą wynikać z nieporozumienia w zakresie struktur danych w JavaScript oraz ich właściwego dostępu.

Pytanie 4

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT COUNT(Koty) AS ROWNUM
B. SELECT COUNT(*) FROM Koty
C. SELECT ROWNUM() FROM Koty
D. SELECT COUNT(ROWNUM) FROM Koty
W przypadku niepoprawnych odpowiedzi zauważamy różne nieporozumienia dotyczące zliczania wierszy w tabelach. Pierwsza z błędnych odpowiedzi, 'SELECT COUNT(ROWNUM) FROM Koty', opiera się na nieprawidłowym zrozumieniu pojęcia ROWNUM w SQL. ROWNUM jest pseudokolumną, która numeruje wiersze w wynikach zapytania, ale nie jest odpowiednia do zliczania wszystkich wierszy w tabeli, ponieważ nie zwraca poprawnego wyniku w kontekście zliczania. To prowadzi do błędnych interpretacji oraz nieefektywnych zapytań. Dalej, odpowiedź 'SELECT COUNT(Koty) AS ROWNUM' w ogóle nie zrozumiała zasady działania funkcji COUNT. W tym przypadku, próbując użyć tabeli jako argumentu, nie uzyskujemy żadnego sensownego rezultatu, ponieważ COUNT powinien operować na kolumnie, a nie na samej tabeli. Ostatnia odpowiedź, 'SELECT ROWNUM() FROM Koty', jest również błędna, ponieważ ROWNUM nie jest funkcją, co skutkuje błędem składniowym. Warto zrozumieć, że na wczesnych etapach nauki SQL, błędne interpretacje i użycie funkcji mogą prowadzić do niezgodnych z oczekiwaniami wyników. Zrozumienie, jak działają funkcje agregujące i pseudokolumny, jest kluczowe dla efektywnego tworzenia zapytań i przeprowadzania analiz w bazach danych. Prawidłowe podejście do zliczania wierszy jest podstawą w pracy z danymi i fundamentalnym elementem w każdej aplikacji bazodanowej.

Pytanie 5

W jakiej technologii nie zachodzi możliwość przetwarzania danych wprowadzanych przez użytkowników na stronach internetowych?

A. CSS
B. PHP
C. JavaScript
D. AJAX
AJAX, PHP i JavaScript to języki oraz technologie, które umożliwiają przetwarzanie danych użytkownika wprowadzanych na stronach internetowych. AJAX (Asynchronous JavaScript and XML) pozwala na asynchroniczną komunikację z serwerem, co oznacza, że użytkownik może przesyłać dane, np. z formularza, bez konieczności przeładowania całej strony. Dzięki temu doświadczenie użytkownika jest bardziej płynne i interaktywne. PHP to język skryptowy po stronie serwera, który jest często używany do przetwarzania danych, takich jak zapisywanie informacji do bazy danych czy generowanie dynamicznych treści na stronie. Umożliwia on również walidację danych przed ich przesłaniem do serwera. JavaScript, z kolei, działa po stronie klienta i może reagować na interakcje użytkownika, takie jak kliknięcia, zmiany w polach formularzy czy nawigacja po stronie, pozwalając na manipulację danymi w czasie rzeczywistym. Typowym błędem myślowym jest myślenie, że CSS może pełnić funkcje, które są zarezerwowane dla języków programowania. Użytkownicy często mylą rolę CSS jako narzędzia do interakcji, podczas gdy w rzeczywistości jest on jedynie odpowiedzialny za prezentację. Uzupełniając CSS o JavaScript czy PHP, można zbudować kompletną, interaktywną aplikację webową, która efektywnie przetwarza dane użytkowników.

Pytanie 6

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 WHERE wiek < 18 OR lekarz_id = 6;
B. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
C. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
Poprawna kwerenda to: SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6; i ona dokładnie realizuje założenia zadania. Po pierwsze, część SELECT imie, nazwisko określa, jakie kolumny mają znaleźć się w wyniku – tylko imię i nazwisko, bez wieku czy identyfikatora lekarza. To jest dobra praktyka: wybieramy tylko te dane, które są faktycznie potrzebne w raporcie, zamiast używać SELECT *. Po drugie, FROM Pacjenci wskazuje tabelę źródłową. W standardowym SQL klauzula FROM jest obowiązkowa przy pobieraniu danych z tabel, bez niej serwer bazodanowy po prostu nie wie, skąd ma brać rekordy. Moim zdaniem to jest taki fundament, który warto mieć odruchowo w palcach. Najważniejsza jest jednak klauzula WHERE wiek < 18 AND lekarz_id = 6. Warunek wiek < 18 filtruje wyłącznie pacjentów niepełnoletnich, a lekarz_id = 6 ogranicza wynik do tych osób, które przypisane są do konkretnego lekarza o identyfikatorze 6. Zastosowanie operatora logicznego AND oznacza, że oba warunki muszą być spełnione jednocześnie. To dokładnie odpowiada treści zadania: pacjent musi być jednocześnie poniżej 18 lat i zapisany do lekarza nr 6. W praktyce takie kwerendy są podstawą raportowania w systemach medycznych, CRM-ach, systemach sprzedażowych itd. Na przykład podobną konstrukcję można użyć: SELECT * FROM Zamowienia WHERE status = 'nowe' AND kwota > 1000; – logika jest identyczna. Dobrą praktyką jest też czytelne zapisywanie warunków logicznych i unikanie niejednoznacznych kombinacji AND/OR bez nawiasów. W większych projektach standardem jest również używanie aliasów tabel, ale tu jedna tabela w zupełności wystarcza. Warto zapamiętać ten szablon: SELECT [kolumny] FROM [tabela] WHERE [warunek1] AND [warunek2]; bo pojawia się praktycznie wszędzie w pracy z SQL.

Pytanie 7

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
D. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
Pozostałe odpowiedzi są niepoprawne z kilku powodów. W przypadku kwerendy SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id; brakuje klauzuli WHERE co sprawia że zwraca ona wszystkie artykuły niezależnie od ich oceny. To nie spełnia warunku pytania który wymaga wyłącznie artykułów ocenionych na 5. Taka kwerenda może być niewydajna w kontekście dużych zbiorów danych i nie jest zgodna z założeniami zadania. W odpowiedzi SELECT nazwisko tytul FROM autorzy artykuly WHERE ocena == 5; nie użyto klauzuli JOIN co może prowadzić do niepoprawnych wyników i potencjalnego zwrotu kartazyjskiego iloczynu tabel powodując ogromny wzrost liczby rekordów. Zastosowanie podwójnego znaku równości jest błędne w SQL który używa pojedynczego znaku do przypisania wartości. W końcu odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id; zawiera nieprawidłowy warunek łączenia. Klucz artykuly.id nie jest kluczem obcym co prowadzi do błędnych wyników. Poprawne zrozumienie relacji między tabelami oraz zastosowanie odpowiednich klauzul jest kluczowe dla efektywnego zapytania SQL i uniknięcia typowych błędów w zarządzaniu relacyjnymi bazami danych. Zrozumienie relacji pomiędzy tabelami oraz prawidłowe stosowanie klauzul pozwala na efektywne zarządzanie danymi co ma kluczowe znaczenie w programowaniu baz danych oraz ich optymalizacji.

Pytanie 8

Jaki typ powinien być zastosowany, aby pole w bazie danych mogło przechowywać liczby zmiennoprzecinkowe?

A. FLOAT
B. INT
C. CHAR
D. VARCHAR
Wybranie typu INT jako odpowiedzi wskazuje na nieporozumienie dotyczące sposobu przechowywania danych liczbowych w bazach danych. Typ INT jest przystosowany jedynie do przechowywania wartości całkowitych, co oznacza, że nie może obsługiwać liczb rzeczywistych ani wartości z ułamkami. W praktycznych zastosowaniach, gdy użytkownik potrzebuje manipulować wartościami, które nie są całkowite (np. ceny produktów, które mogą mieć część dziesiętną), użycie INT prowadziłoby do błędnych obliczeń i zakłóceń w logice aplikacji. W przypadku CHAR oraz VARCHAR, te typy są przeznaczone do przechowywania tekstu. CHAR jest stałej długości, co może prowadzić do marnowania miejsca w bazie, podczas gdy VARCHAR jest zmiennej długości, co czyni go bardziej elastycznym, ale ani jeden, ani drugi typ nie są przeznaczone do przechowywania danych numerycznych. Typowe błędy myślowe, które prowadzą do takich wyborów, polegają na nieprzemyślanej interpretacji potrzeb aplikacji i rodzaju danych, które powinny być przechowywane. Użytkownicy baz danych powinni zawsze dążyć do dokładnego określenia wymaganych typów danych na podstawie ich zastosowania, aby uniknąć problemów z integralnością danych oraz ich wydajnością w przyszłych operacjach.

Pytanie 9

W tabeli psy znajdują się kolumny: imię, rasa, telefon_właściciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby znaleźć numery telefonów właścicieli psów, które zostały zaszczepione przed 2015 rokiem?

A. SELECT psy FROM rok_szczepienia < 2015
B. SELECT imię, rasa FROM psy WHERE rok_szczepienia > 2015
C. SELECT telefon_właściciela FROM psy WHERE rok_szczepienia < 2015
D. SELECT telefon_właściciela FROM psy WHERE rok_szczepienia > 2015
Wybór odpowiedzi, które nie są zgodne z wymaganiami pytania, zazwyczaj wynika z nieprawidłowego zrozumienia zarówno struktury zapytania SQL, jak i kontekstu problemu. Na przykład, pierwsza odpowiedź sugeruje użycie 'SELECT psy FROM rok_szczepienia < 2015', co jest błędne, ponieważ polecenie to nie zawiera kolumn, które chcemy wybrać, a także nieprawidłowo formułuje warunek. SQL wymaga, aby w klauzuli SELECT wskazać konkretne kolumny, a nie całą tabelę. Kolejna odpowiedź, wskazująca na 'SELECT imię, rasa FROM psy WHERE rok_szczepienia > 2015', jest również błędna, ponieważ zamiast telefonów właścicieli, wybiera dane dotyczące imion i ras psów oraz zawiera niewłaściwy warunek dotyczący roku szczepienia. Z kolei ostatnia odpowiedź zawiera błąd w interpretacji, wybierając telefony właścicieli psów, które były szczepione po 2015 roku, co jest sprzeczne z założeniem problemu. Tego typu błędy myślowe, jak pomylenie kryteriów wyboru lub wybór nieodpowiednich kolumn, mogą prowadzić do nieprawidłowych wyników w bazach danych. Aby skutecznie korzystać z SQL, kluczowe jest zrozumienie, jak funkcjonują podstawowe konstrukcje zapytań oraz jak poprawnie stosować warunki filtrowania w kontekście wymaganych rezultatów. Właściwe umiejscowienie warunków w klauzuli WHERE oraz precyzyjne definiowanie wybieranych kolumn to fundamenty, które każdy, kto pracuje z bazami danych, powinien opanować.

Pytanie 10

Grafik pragnie zmienić obraz JPG na format PNG bez utraty jakości, tak aby w obszarach, gdzie pierwotnie był kolor biały, w finalnym obrazie występowała przezroczystość. W tym celu powinien

A. zmniejszyć rozdzielczość obrazu
B. zaimportować obraz do edytora grafiki wektorowej
C. przekształcić obraz w odcienie szarości
D. dodać kanał alfa
Dodanie kanału alfa do obrazu JPG, aby uzyskać przezroczystość w kolorze białym, jest najlepszym podejściem. Kanał alfa to dodatkowa warstwa informacji w pliku graficznym, która definiuje przezroczystość każdego piksela. W formacie PNG, kanał alfa umożliwia tworzenie przezroczystych tła, co jest szczególnie przydatne w projektach, gdzie elementy graficzne muszą być nakładane na różne tła. W praktyce, aby uzyskać pożądany efekt, grafik powinien użyć narzędzi do edycji grafiki, takich jak Adobe Photoshop, GIMP lub Inkscape. Po zaimportowaniu obrazu JPG, użytkownik może użyć funkcji selekcji koloru, aby zaznaczyć obszary białe, a następnie usunąć je, co wprowadzi przezroczystość w tych miejscach. Na końcu, obraz można zapisać jako PNG, co zachowa wprowadzone zmiany. Tego typu operacje są standardem w pracy z grafiką komputerową, szczególnie w projektach związanych z web designem i tworzeniem materiałów reklamowych.

Pytanie 11

Zdefiniowano bazę danych z tabelą sklepy, która zawiera pola: nazwa, ulica, miasto, branza. W celu zlokalizowania wszystkich nazw sklepów spożywczych, które znajdują się tylko we Wrocławiu, należy wykorzystać kwerendę:

A. SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław"
B. SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław"
C. SELECT sklepy FROM nazwa WHERE branza="spożywczy" BETWEEN miasto="Wrocław"
D. SELECT nazwa FROM sklepy WHERE branza="spozywczy" AND miasto="Wrocław"
W analizowanych odpowiedziach pojawiają się różne błędy w konstruowaniu kwerend SQL. W pierwszej z nich, 'SELECT sklepy FROM branza="spożywczy" WHERE miasto="Wrocław";', użycie słowa kluczowego FROM jest niewłaściwe, ponieważ nie możemy bezpośrednio pobierać danych z kolumny 'branza'. W SQL słowo kluczowe FROM odnosi się do tabeli, a nie do kolumny, co prowadzi do błędnej składni. W drugiej odpowiedzi występuje zastosowanie operatora BETWEEN, który w tym kontekście jest źle użyty. BETWEEN zazwyczaj służy do określenia zakresu wartości dla pól numerycznych lub dat, co nie ma zastosowania w przypadku porównania tekstowego takiego jak miasto. W trzeciej odpowiedzi, 'SELECT nazwa FROM sklepy WHERE branza="spozywczy" OR miasto="Wrocław";', operator OR prowadzi do niepoprawnego wyniku, ponieważ zezwala na wybór sklepów, które mogą być spożywcze lub zlokalizowane w Wrocławiu, co nie spełnia wymogu, aby oba warunki były spełnione jednocześnie. Kluczowym błędem w tych odpowiedziach jest nieodpowiednie rozumienie logiki kwerend SQL, a także brak znajomości poprawnej składni SQL. Ważne jest, aby zawsze stosować odpowiednie operatory oraz rozumieć, jak działa logika zapytań w bazach danych, co jest niezbędne do efektywnego pobierania danych.

Pytanie 12

Jakie zadanie ma funkcja PHP o nazwie mysql_select_db()?

A. wyznaczyć tabelę, z której będą pozyskiwane dane
B. wyznaczyć bazę, z której będą pozyskiwane dane
C. nawiązać połączenie między bazą danych a serwerem SQL
D. uzyskać dane z bazy danych na podstawie zapytania
Funkcja <span>mysql_select_db()</span> w PHP jest naprawdę ważna, bo pozwala nam wybrać konkretną bazę danych, z której chcemy czerpać informacje. Gdy już nawiążemy połączenie z serwerem MySQL przez <span>mysql_connect()</span>, to pierwsze co powinniśmy zrobić, to wybrać bazę danych, na której będziemy działać. To ważny krok, bo w każdej bazie może być sporo tabel, a nasze zapytania muszą iść do odpowiedniej. Na przykład, jeśli mamy bazę danych 'sklep' i potrzebujemy tabeli 'produkty', to musimy wywołać <span>mysql_select_db('sklep')</span>. Dzięki temu MySQL wie, gdzie szukać naszych tabel i informacji. Z mojego doświadczenia, dobrze jest upewnić się, że wybraliśmy odpowiednią bazę danych przed wykonaniem jakichkolwiek zapytań, bo wtedy unikamy różnych problemów z kontekstem danych.

Pytanie 13

Fragment kodu napisany w języku JavaScript, który realizuje sumowanie dwóch liczb, wygląda następująco (zobacz ramka): Aby operacja dodawania odbywała się po naciśnięciu przycisku zatytułowanego "dodaj", należy w miejsce wykropkowane wprowadzić

Ilustracja do pytania
A. <button onselect="return dodaj()">oblicz</button>
B. <button onselect="return dodaj()">dodaj</button>
C. <button onclick="return dodaj()">dodaj</button>
D. <button onclick="return obliczj()">dodaj</button>
Wybór innych odpowiedzi wskazuje na niepełne zrozumienie sposobu przypisywania zdarzeń do elementów HTML w kontekście języka JavaScript. Atrybut onselect w HTML nie jest przeznaczony dla przycisków, lecz dla elementów tekstowych, takich jak input czy textarea, gdzie jest wykorzystywany do reagowania na wybór tekstu przez użytkownika. Zastosowanie onselect w kontekście przycisku jest niepoprawne, gdyż nie wywoła żadnej funkcji w odpowiedzi na kliknięcie użytkownika. Z kolei użycie niewłaściwej nazwy funkcji, jak w przypadku onselect="return dodaj()" dla przycisku "oblicz", wskazuje na błąd logiczny. Jeśli funkcja została nazwana dodaj() w kodzie JavaScript, musi być właśnie tak wywoływana. Zasady dobrego projektowania aplikacji webowych wymagają, aby atrybuty HTML odpowiadały zgodnie z ich przeznaczeniem, co zapewnia poprawne działanie i łatwość debugowania. Poprawne przypisanie zdarzeń to kluczowy aspekt w programowaniu interfejsów użytkownika, a błędne użycie atrybutów prowadzi do problemów z funkcjonalnością strony. Dlatego tak istotne jest zrozumienie i stosowanie właściwych atrybutów zdarzeń, co ułatwia rozwój i zarządzanie aplikacjami internetowymi.

Pytanie 14

Integralność encji w systemie baz danych będzie zapewniona, jeśli między innymi

A. dla każdej tabeli zostanie ustanowiony klucz główny
B. każdy klucz główny będzie miał odpowiadający mu klucz obcy w innej tabeli
C. klucz główny zawsze będzie liczbą całkowitą
D. każda kolumna otrzyma zdefiniowany typ danych
Odpowiedź, że dla każdej tabeli zostanie utworzony klucz główny, jest prawidłowa, ponieważ klucz główny odgrywa kluczową rolę w zapewnieniu integralności encji w bazach danych. Klucz główny to unikalny identyfikator dla każdego rekordu w tabeli, co oznacza, że nie może zawierać wartości NULL i musi być unikalny w obrębie danej tabeli. Przykładowo, w tabeli 'Klienci', kolumna 'ID_klienta' może być kluczem głównym, który jednoznacznie identyfikuje każdego klienta. Umożliwia to nie tylko prawidłową organizację danych, ale także przyspiesza operacje wyszukiwania i modyfikacji. Dodatkowo, zgodnie z normami ACID, klucz główny jest niezbędny do zapewnienia spójności i integralności danych. Dobrze zdefiniowane klucze główne są również podstawą do tworzenia kluczy obcych, co pozwala na tworzenie relacji między tabelami i wspiera strukturyzację danych w relacyjnych bazach danych.

Pytanie 15

Wynik wykonania zapytania SQL to

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. całkowita liczba uczniów
B. średnia ocen wszystkich uczniów
C. liczba uczniów, których średnia ocen wynosi 5
D. suma ocen uczniów, których średnia ocen to 5
Zarówno pierwsza, jak i druga odpowiedź nie są zgodne z logiką zapytania SQL. Pierwsza odpowiedź sugeruje, że wynik zapytania to liczba wszystkich uczniów. Jest to nieprawidłowe, ponieważ zapytanie liczy tylko tych uczniów, którzy mają średnią ocen równą 5, a nie wszystkich uczniów. Tego rodzaju myślenie prowadzi do błędnych wniosków o zakresie danych, które zliczamy. Z kolei druga odpowiedź wskazuje na średnią ocen wszystkich uczniów, co również jest błędne, ponieważ zapytanie nie oblicza średniej, lecz jedynie liczy liczby spełniające określony warunek. Tego rodzaju nieporozumienia mogą prowadzić do nieprawidłowych analiz, które mogą wpływać na podejmowanie decyzji, szczególnie w kontekście edukacyjnym, gdzie dane są kluczowe dla oceny postępów uczniów. Trzecią odpowiedzią jest liczba uczniów z konkretną średnią, co w rzeczywistości jest celem naszego zapytania, natomiast czwarta odpowiedź, mówiąca o sumie ocen uczniów, również nie ma podstaw w tym kontekście, ponieważ zapytanie nie wykonuje operacji dodawania, lecz liczy rekordy. Kluczowe jest zrozumienie, jak różne operacje w SQL wpływają na wyniki i jak poprawne formułowanie zapytań może prowadzić do uzyskania pożądanych danych.

Pytanie 16

W języku Javascript obiekt typu array służy do przechowywania

A. wielu wartości lub funkcji
B. wielu wartości różnego rodzaju
C. wielu wartości tylko tekstowych
D. wielu wartości tylko liczbowych
Przy wyborze niepoprawnych odpowiedzi, można zauważyć kilka typowych nieporozumień dotyczących funkcji obiektów typu array w JavaScript. Odpowiedź sugerująca, że tablice służą wyłącznie do przechowywania wartości liczbowych, jest błędna, ponieważ w praktyce tablice te mogą zawierać różnorodne typy danych. Ograniczenie się tylko do liczb wyklucza możliwość przechowywania obiektów, tekstów, a nawet funkcji, co jest jedną z kluczowych cech tablic w JavaScript. Wybór odpowiedzi, która krępuje tablice do przechowywania jedynie wartości tekstowych, również jest mylny, ponieważ, podobnie jak w przypadku liczb, tablice mogą przechowywać wiele różnych typów, co czyni je bardziej uniwersalnymi. Kolejnym błędem myślowym jest przyjęcie, że tablice mogą przechowywać wyłącznie wartości lub funkcje. W rzeczywistości tablice mogą zawierać mieszankę różnych typów danych, co otwiera szereg możliwości w zakresie tworzenia bardziej złożonych struktur danych. JavaScript jako język programowania oferuje dużą elastyczność, co jest kluczowe w nowoczesnym rozwoju aplikacji. Zrozumienie, że tablice w JavaScript są dynamicznymi obiektami, które mogą przechowywać różnorodne dane, jest fundamentalne dla każdego programisty, który chce efektywnie wykorzystać ten język w projektach programistycznych.

Pytanie 17

W tabeli pokazano cechy pliku graficznego. Aby rysunek ładował się szybciej na stronie WWW, należy

Wymiary: 4272 x 2848px
Rozdzielczość: 72 dpi
Format: JPG
A. zwiększyć rozdzielczość
B. zmniejszyć wymiary rysunku
C. zmienić proporcje szerokości do wysokości
D. zmienić format grafiki na CDR
Zmiana formatu na CDR nie jest zalecana dla grafiki internetowej. Format CDR jest formatem wektorowym używanym w programie CorelDRAW i nie jest obsługiwany przez przeglądarki internetowe. Grafika wektorowa w formacie CDR wymaga konwersji do formatu rastrowego takiego jak PNG lub JPG aby mogła być użyta na stronach WWW co dodaje dodatkowy krok w procesie publikacji. Zwiększenie rozdzielczości, czyli zwiększenie wartości dpi, zwiększa ilość danych w pliku graficznym, co powoduje dłuższy czas ładowania. Większa rozdzielczość jest użyteczna głównie w kontekście drukowania gdzie jakość obrazu jest kluczowa, natomiast dla internetu standardowa rozdzielczość 72 dpi jest wystarczająca dla większości zastosowań. Zmiana proporcji szerokości do wysokości nie wpływa na rozmiar pliku ani na czas jego ładowania. Taka zmiana może wręcz prowadzić do niepożądanego efektu rozciągnięcia lub zniekształcenia obrazu co negatywnie wpływa na estetykę strony. Prawidłowe proporcje są ważne dla zachowania spójnej estetyki i użyteczności wizualnej serwisu jednak nie mają bezpośredniego wpływu na wydajność ładowania. Typowe błędy myślowe związane z tymi odpowiedziami wynikają z braku zrozumienia specyfiki optymalizacji webowej gdzie mniejszy rozmiar pliku przekłada się na szybsze ładowanie i lepszą wydajność strony internetowej.

Pytanie 18

Witryna internetowa zawiera poziome menu w formie listy punktowanej. Aby elementy tej listy mogły być wyświetlane w jednej linii, należy przypisać selektorowi li właściwość

A. display
B. text-align
C. outline
D. position
Ustawienie właściwości 'display' dla selektora 'li' jest kluczowe, aby elementy listy mogły być wyświetlane w jednej linii. Właściwość ta określa, w jaki sposób dany element powinien być renderowany w kontekście modelu box. Aby uzyskać efekt poziomego menu, warto zastosować 'display: inline;' lub 'display: inline-block;'. Użycie 'inline' sprawia, że elementy nie zajmują całej szerokości dostępnej wiersza, a 'inline-block' umożliwia również ustawienie szerokości i wysokości. W kontekście dobrych praktyk projektowania stron internetowych, zastosowanie takiego podejścia pozwala na osiągnięcie większej elastyczności w układzie, ułatwiając jednocześnie stylizację elementów, co jest zgodne z zasadami responsywnego web designu. Warto również pamiętać o użyciu marginesów i paddingów, aby zapewnić odpowiednią przestrzeń między elementami menu, co przyczyni się do lepszej czytelności i estetyki strony.

Pytanie 19

W języku CSS atrybut font-size przyjmuje, zgodnie z nazwami, wartości

A. z zestawu xx-small, x-small, medium, large, x-large, xx-large
B. zaledwie big oraz small
C. wyłącznie small, medium, large
D. jedynie small, smaller, large, larger
W kontekście właściwości font-size w CSS, niektóre odpowiedzi zawierają błędne założenia, które mogą prowadzić do niepełnego zrozumienia możliwości tej właściwości. Warto zauważyć, że ograniczenie się jedynie do wartości small, smaller, large i larger ignoruje szerszy zestaw dostępnych opcji, które są kluczowe dla dokładnego dostosowania rozmiaru tekstu. Wartości takie jak medium, small, and large są jedynie częścią zdefiniowanego standardu, który obejmuje również bardziej szczegółowe rozmiary, takie jak xx-small, x-small, x-large oraz xx-large. Użytkownicy często mylą pojęcia związane z nazwami wartości, co prowadzi do mniejszych możliwości stylizacji. Przykładem jest niewłaściwe skupienie się na biedniejszych zasobach słownych, takich jak big i small, które nie są standardowymi wartościami CSS. Taki błąd myślowy ogranicza możliwość pełnego wykorzystania CSS, co jest kluczowe dla tworzenia nowoczesnych, responsywnych stron internetowych. W praktyce, pełne zrozumienie i umiejętność wykorzystania wszystkich dostępnych wartości w CSS nie tylko ułatwia pracę nad projektem, ale również przyczynia się do lepszej dostępności i doświadczeń użytkowników. Zastosowanie poprawnych terminów i wartości jest niezbędne, aby zachować profesjonalizm w projektowaniu stron.

Pytanie 20

SELECT AVGcena) FROM usługi; Celem użycia funkcji agregującej AVG w tym zapytaniu jest

A. określić najwyższą cenę usług
B. zsumować wartości kosztów wszystkich usług
C. zliczyć ilość dostępnych usług w tabeli
D. wyliczyć średnią arytmetyczną cen wszystkich usług
Podane odpowiedzi sugerują różne niepoprawne interpretacje funkcji agregującej AVG. Zsumowanie kosztów wszystkich usług jest zrozumiane jako działanie, które można zrealizować za pomocą funkcji SUM, a nie AVG. SUM dodaje wartości w danej kolumnie, natomiast AVG odnosi się do średniej, co jest zupełnie inną operacją. Z kolei wskazywanie najwyższej ceny za usługi sugeruje zastosowanie funkcji MAX, która zwraca najwyższą wartość w kolumnie, co również nie ma związku z funkcją AVG. Ponadto, odpowiedź dotycząca policzenia liczby dostępnych usług w tabeli odnosi się do funkcji COUNT, która zlicza wiersze w danej kolumnie lub całej tabeli. Typowe błędy myślowe, które prowadzą do takich nieprecyzyjnych odpowiedzi, często wynikają z mylenia terminologii SQL oraz z braku zrozumienia różnic między funkcjami agregującymi. W kontekście analizy danych, ważne jest, aby zrozumieć, jak każda z tych funkcji działa i jakie są ich odpowiednie zastosowania, ponieważ błędne użycie może prowadzić do nieprawidłowych wniosków oraz decyzji biznesowych. Dlatego kluczowe jest, aby przed zastosowaniem konkretnej funkcji dobrze przemyśleć, jakie dane chcemy uzyskać oraz jak je interpretować.

Pytanie 21

W zaprezentowanym fragmencie kodu HTML zdefiniowano pole input, które można opisać jako

<input type="password" name="pole">
A. ukrywa znaki, które zostały do niego wprowadzone
B. zawiera domyślny tekst „pole”
C. pokazuje znaki, które zostały do niego wprowadzone
D. dopuszcza jedynie wprowadzanie wartości liczbowych
W formularzach HTML często spotykamy różne typy pól input, mające specyficzne zastosowania. Pole input z atrybutem type="text" pozwala na wpisywanie dowolnego tekstu, co sprawia, że jest ono bardziej elastyczne, ale nie zapewnia żadnej ochrony dla wprowadzanych danych. Problematyczne mogą być sytuacje, gdzie takie pole jest używane dla danych wrażliwych, ponieważ nie oferuje ono żadnego poziomu prywatności. Wprowadzenie domyślnego tekstu w polu input jest realizowane poprzez atrybut value, który ustawia początkową wartość, widoczną dla użytkownika. To rozwiązanie bywa mylone z placeholderem, który służy jako podpowiedź wewnątrz pola, ale nie jest domyślną wartością samego pola. Input o typie "number" w HTML ogranicza wprowadzane dane wyłącznie do liczb, co jest przydatne w przypadku pól wymagających wartości liczbowych, takich jak wiek czy ilość. Choć to ograniczenie jest zasadne i chroni przed błędami użytkownika, nie ma zastosowania w kontekście ochrony prywatności danych. Typ password natomiast nie tylko ogranicza wprowadzone dane, ale również ukrywa je przed wglądem, co jest kluczowe dla zapewnienia bezpieczeństwa. Tym samym, zrozumienie różnic w funkcjonalności i zastosowaniu tych różnych typów pól pozwala na lepsze projektowanie bezpiecznych i funkcjonalnych formularzy w aplikacjach webowych. Błędem jest zakładanie, że każde pole input domyślnie zabezpiecza dane, co często prowadzi do niepoprawnych implementacji, które mogą narazić użytkowników na ryzyko wycieku danych.

Pytanie 22

Czy automatyczna weryfikacja właściciela witryny korzystającej z protokołu HTTPS jest możliwa dzięki

A. prywatnym kluczom
B. danym kontaktowym zamieszczonym na stronie
C. informacjom whois
D. certyfikatowi SSL
Wybór kluczy prywatnych jako odpowiedzi na pytanie o automatyczną weryfikację właściciela strony jest mylący, ponieważ klucze te stanowią część infrastruktury kryptograficznej, ale nie są instrumentem do weryfikacji tożsamości właściciela serwisu. Klucz prywatny jest używany do szyfrowania i podpisywania danych, co jest krytyczne dla bezpieczeństwa komunikacji, ale sam w sobie nie jest narzędziem do potwierdzania, że dany serwis internetowy należy do konkretnego właściciela. Z drugiej strony, dane WHOIS są publicznie dostępnymi informacjami o rejestracji domeny, które mogą zawierać informacje o właścicielu, jednak nie są one weryfikowane w czasie rzeczywistym przez protokoły związane z HTTPS. To oznacza, że mogą być one nieaktualne lub niepoprawne, co czyni je niewystarczającymi do potwierdzenia tożsamości witryny. Odpowiedzi dotyczące danych kontaktowych na stronie również nie odpowiadają na pytanie o automatyczną weryfikację, ponieważ takie dane mogą być łatwo manipulowane lub niedokładne. W kontekście dobrych praktyk i standardów branżowych, kluczowym narzędziem do zagwarantowania integralności oraz autentyczności serwisu jest certyfikat SSL, który przeprowadza rygorystyczne procesy weryfikacyjne przed jego wydaniem, zapewniając w ten sposób realną ochronę dla użytkowników i właścicieli witryn. Izolując kwestie techniczne, automatyczna weryfikacja właściciela strony, która opiera się na zaufanych certyfikatach, jest fundamentalnym elementem budowania bezpieczeństwa w sieci.

Pytanie 23

W instrukcji warunkowej języka JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w zakresie (0, 100), a wartość zmiennej b jest większa od zera. Taki warunek można zapisać w sposób następujący

A. if (a>0 || a<100 || b<0)
B. if (a>0 && a<100 && b>0)
C. if ((a>0 && a<100) || b<0)
D. if ((a>0 || a<100) && b>0)
Analizując inne odpowiedzi, można zauważyć, że każda z nich zawiera błędne założenia dotyczące logiki warunkowej. W przypadku pierwszej odpowiedzi, użycie operatora '||' (OR) w połączeniu z warunkiem 'b<0' jest niewłaściwe, ponieważ nie spełnia kryteriów podanych w pytaniu. Ten warunek pozwalałby na zaakceptowanie sytuacji, w której wartość 'b' może być ujemna, co jest sprzeczne z wymaganym sprawdzeniem, że 'b' musi być większe od zera. Druga odpowiedź nie uwzględnia w pełni przedziału dla 'a', ponieważ stosuje operator '||', co oznacza, że warunek może być spełniony, jeśli 'a' jest mniej niż 0 lub więcej niż 100, co jest sprzeczne z wymaganiami. Trzecia odpowiedź posługuje się z kolei zbyt szerokim zakresem warunków, wprowadzając możliwość, że 'a' może być poniżej 0 lub większe niż 100, oraz akceptując wartość 'b' mniejszą od zera. Wszystkie te błędy wynikają z niewłaściwego zrozumienia operatorów logicznych oraz ich zastosowania w kontekście warunków, co jest kluczowym aspektem programowania w JavaScript. Aby stosować logikę warunkową prawidłowo, programiści powinni dokładnie analizować, jakie warunki muszą zostać spełnione i jak operatorzy wpływają na całą logikę instrukcji. Zrozumienie tych zasad jest fundamentem efektywnego programowania.

Pytanie 24

Wskaż zapytanie, w którym dane zostały uporządkowane.

A. SELECT AVG(ocena) FROM uczniowie WHERE klasa = 2;
B. SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;
C. SELECT nazwisko FROM firma WHERE pensja > 2000 LIMIT 10;
D. SELECT DISTINCT produkt, cena FROM artykuly;
Pierwsza odpowiedź, SELECT DISTINCT produkt, cena FROM artykuly, nie zawiera klauzuli ORDER BY, co oznacza, że wyniki nie są sortowane. Klauzula DISTINCT służy do usuwania duplikatów z wyników, co jest inną operacją od sortowania. Użytkownicy mogą błędnie myśleć, że DISTINCT automatycznie sortuje wyniki, jednak w rzeczywistości nie ma takiej funkcjonalności w SQL. Druga odpowiedź, SELECT AVG(ocena) FROM uczniowie WHERE klasa = 2, ma na celu obliczenie średniej oceny, co również nie wiąże się z sortowaniem danych. Często zdarza się, że użytkownicy mylą funkcje agregujące, takie jak AVG, z operacjami sortowania. Ostatnia odpowiedź, SELECT nazwisko FROM firma WHERE pensja > 2000 LIMIT 10, ogranicza liczbę zwracanych wyników do 10, ale także nie sortuje ich. Użytkownicy mogą błędnie zrozumieć LIMIT jako mechanizm sortowania, lecz w rzeczywistości jest to ograniczenie liczby wyników. W celu osiągnięcia porządku w wynikach, klauzula ORDER BY jest niezbędna, a jej brak w tych zapytaniach skutkuje losowym uporządkowaniem wyników. Ważne jest, aby zrozumieć różnicę między operacjami agregującymi, filtrowaniem a sortowaniem, by móc efektywnie wykonywać zapytania w SQL.

Pytanie 25

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. onclick
B. onload
C. onkeydown
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 26

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. sqrt(x)
B. floor(x)
C. ceil(x)
D. exp(x)
W tym zadaniu chodzi o dokładne zrozumienie, jak działają konkretne metody obiektu Math w JavaScript, a nie tylko o mechaniczne skojarzenie nazwy funkcji z efektem. Dla liczby x = 2.8 poprawnym wynikiem ma być 2, czyli liczba całkowita powstała przez zaokrąglenie w dół. Najczęstsze pomyłki biorą się z mylenia różnych typów zaokrągleń albo z kojarzenia nazw z innych języków czy z matematyki teoretycznej, bez sprawdzenia, co dokładnie robią w JS. Jeżeli ktoś wybiera exp(x), to zwykle wynika to z faktu, że nazwa brzmi „matematycznie” i kojarzy się z jakąś funkcją liczbową. Jednak Math.exp(x) zwraca e do potęgi x, czyli wartość funkcji wykładniczej. Dla 2.8 byłaby to liczba około 16.44, kompletnie niepowiązana z zaokrąglaniem. Ta metoda służy do obliczeń matematycznych wyższego poziomu, np. w algorytmach statystycznych czy finansowych, a nie do pracy na liczbach całkowitych. Z kolei wybór ceil(x) wynika często z mylenia pojęć „zaokrąglanie” i „obcinanie”. Math.ceil(2.8) zaokrągla zawsze w górę do najbliższej liczby całkowitej, więc wynik to 3. W praktyce ceil przydaje się np. przy obliczaniu liczby stron w paginacji, gdy chcemy mieć pewność, że ostatnia strona też się zmieści, nawet jeśli nie jest pełna. Tutaj jednak wymagane jest zejście w dół, więc ceil daje odwrotny efekt niż potrzebny. sqrt(x) to z kolei pierwiastek kwadratowy. Math.sqrt(2.8) zwróci wartość około 1.673, a więc nadal liczbę zmiennoprzecinkową. Czasem uczniowie mylą tę metodę, bo myślą, że „pierwiastek” w jakiś sposób „zmniejsza” liczbę, więc może zbliżyć ją do 2. W kontekście programowania webowego takie myślenie jest niebezpieczne – tu liczy się precyzyjna definicja tego, co robi funkcja, zgodnie ze specyfikacją ECMAScript, a nie intuicyjne skojarzenia z matematyki szkolnej. Kluczowe jest zapamiętanie różnicy: floor – zawsze w dół, ceil – zawsze w górę, round – do najbliższej liczby całkowitej, sqrt – pierwiastek, exp – funkcja wykładnicza. Dobra praktyka w JavaScripcie to zawsze sprawdzić dokumentację, gdy nie jesteśmy na 100% pewni, co robi dana metoda Math, bo drobna pomyłka przy zaokrąglaniu może później rozwalić logikę całej aplikacji, chociażby przy indeksowaniu tablic, generowaniu ID czy przy obliczeniach finansowych.

Pytanie 27

W JavaScript poprawnie zdefiniowana zmienna to

A. imię2
B. imię%
C. #imie
D. imie2
W przypadku odpowiedzi 'imię%' występuje nieprawidłowy znak specjalny, co łamie zasady dotyczące nazewnictwa zmiennych w JavaScript. Zgodnie z tymi zasadami, zmienne mogą zawierać tylko litery, cyfry, znaki podkreślenia oraz znaki dolara, ale nie mogą kończyć się ani zawierać znaków specjalnych, takich jak procent. Z tego powodu, użycie takiego znaku w nazwie zmiennej prowadzi do błędów składniowych i jest niezgodne z konwencjami programistycznymi. Podobnie, w przypadku odpowiedzi '#imie', znak hashtagu jest również zabroniony w nazwach zmiennych. Często początkujący programiści mylą się, myśląc, że mogą używać dowolnych symboli w nazwach zmiennych, co prowadzi do problemów podczas kompilacji czy interpretacji kodu. Ważne jest, aby znać te zasady, ponieważ ich przestrzeganie ułatwia współpracę w zespołach programistycznych oraz zapewnia lepszą organizację kodu. Prawidłowe nazewnictwo sprzyja również łatwiejszej konserwacji i rozwoju projektów, co jest kluczowe w długoterminowych inicjatywach programistycznych.

Pytanie 28

Jakie narzędzie jest używane do organizowania oraz przedstawiania danych z wielu rekordów w celu ich wydruku lub dystrybucji?

A. raport
B. formularz
C. makropolecenie
D. kwerenda
Raport to narzędzie, które umożliwia zgrupowanie i prezentowanie informacji z wielu rekordów, co jest kluczowe w kontekście analizy danych oraz podejmowania decyzji biznesowych. Tworzenie raportów pozwala na syntetyzowanie informacji, co sprawia, że są one bardziej zrozumiałe dla odbiorców. W praktyce raporty mogą być wykorzystywane do monitorowania wyników sprzedaży, analiz finansowych, badań rynkowych czy oceny efektywności działań marketingowych. Dzięki zastosowaniu narzędzi do raportowania, takich jak systemy Business Intelligence, możliwe jest generowanie szczegółowych zestawień oraz wizualizacji, które wspierają decyzje strategiczne. Dobre praktyki w zakresie raportowania obejmują jasne definiowanie celów raportu, dobór odpowiednich wskaźników KPI oraz zastosowanie wizualizacji danych, co pozwala na lepsze zrozumienie przedstawianych informacji. W kontekście standardów branżowych, raporty powinny być tworzone zgodnie z zasadami klarowności, precyzji i adekwatności, aby skutecznie odpowiadały na potrzeby użytkowników.

Pytanie 29

Która z wymienionych metod umożliwia wyświetlenie komunikatu w konsoli przeglądarki za pomocą języka JavaScript?

A. console.log("test");
B. console.write("test");
C. console.print("test");
D. console.echo("test");
Wybór innych metod wypisywania komunikatów w konsoli, takich jak console.write(), console.print() oraz console.echo(), jest błędny, ponieważ nie są one zdefiniowane w standardowym API JavaScript. Istnieje powszechne nieporozumienie, że podobne nazwy funkcji mogą sugerować ich prawidłowe działanie, co prowadzi do stosowania niepoprawnych metod. JavaScript, jako język skryptowy, posiada zestaw wbudowanych funkcji, które są precyzyjnie zdefiniowane przez ECMAScript. Metody takie jak console.write() i console.print() nie istnieją w tym standardzie, co sprawia, że ich użycie kończy się błędami wykonania. Ponadto, console.echo() również nie jest rozpoznawane przez silniki JavaScript i może prowadzić do frustracji, gdy programista spodziewa się, że jego kod będzie działał zgodnie z intuicją. Kluczowe jest, aby każdy programista znał podstawowe funkcje i ich właściwe zastosowanie, aby uniknąć takich pułapek. Niezrozumienie dostępnych funkcji konsoli może prowadzić do marnowania czasu na debugowanie kodu, który nie działa, ponieważ został oparty na nieprawidłowych założeniach. Właściwe podejście do nauki JavaScript obejmuje eksperymentowanie z wbudowanymi funkcjami oraz zrozumienie dokumentacji, co znacznie przyspiesza proces uczenia się i wzmacnia umiejętności programistyczne.

Pytanie 30

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

A. BOOLEAN
B. CHAR
C. VARCHAR(5)
D. DOUBLE
Wybór typów DOUBLE, CHAR oraz VARCHAR(5) do reprezentowania stanu wypożyczenia książki jest nieadekwatny i może prowadzić do nieefektywnego zarządzania danymi. Typ DOUBLE, będący typem liczbowym zmiennoprzecinkowym, jest przeznaczony do przechowywania wartości numerycznych z wysoką precyzją, co jest całkowicie zbędne w kontekście binaryjnej reprezentacji stanu wypożyczenia. Użycie typu DOUBLE zwiększa obciążenie pamięci i niepotrzebnie komplikuje zapytania, co negatywnie wpływa na wydajność bazy danych. CHAR oraz VARCHAR(5) są typami tekstowymi, które również są niewłaściwe w tym kontekście. W przypadku CHAR, którego długość jest stała, musielibyśmy zarezerwować miejsce na cały ciąg znaków, co jest nieefektywne. Z kolei VARCHAR(5), choć jest dynamiczny, nadal nie odzwierciedla logicznego charakteru pola 'czyWypozyczona'. Zamiast prostego true/false, wprowadzamy zbędne komplikacje przy operacjach porównawczych i filtracji. Tego rodzaju błędne podejście może wynikać z mylenia reprezentacji danych - niektóre osoby mogą sądzić, że tekstowe lub liczbowe reprezentacje zapewniają większą elastyczność, co jest mylnym przekonaniem. Kluczowe w projektowaniu baz danych jest dobieranie typów danych odpowiednio do ich przeznaczenia, a w przypadku wartości logicznych najlepszym wyborem jest typ BOOLEAN.

Pytanie 31

Aby zwiększyć wydajność operacji na bazie danych, należy dla pól, które są często wyszukiwane lub sortowane

A. stworzyć osobną tabelę przechowującą tylko te pola
B. dodać więzy integralności
C. dodać klucz obcy
D. utworzyć indeks
Tworzenie indeksu na polach, które często przeszukujesz lub sortujesz, to naprawdę ważna rzecz, jeśli chodzi o wydajność baz danych. Indeksy działają trochę jak spis treści w książkach – pozwalają systemowi szybko znaleźć te dane, których potrzebujesz, bez przeszukiwania całego folderu. Dzięki nim zapytania SELECT mogą iść jak burza, co ma ogromne znaczenie w aplikacjach, gdzie liczy się czas. Przykład? Jeśli zrobisz indeks na kolumnie 'email' w tabeli 'Users', to znacznie szybciej odnajdziesz użytkowników po adresie email. W praktyce warto też regularnie monitorować, jak działają te indeksy i je optymalizować, na przykład usuwając te, które są zbędne, żeby nie przeciążać bazy danych. Dobrze jest pamiętać, że przy dodawaniu lub aktualizowaniu danych, indeksy mogą trochę spowolnić działanie, więc lepiej używać ich z głową.

Pytanie 32

Poniżej przedstawiono fragment kodu języka HTML. Jest on definicją listy:

<ol>
  <li>punkt 1</li>    <li>punkt 2</li>
  <ul>
    <li>podpunkt1</li>
    <ul>    <li>podpunkt2</li>  <li>podpunkt3</li>  </ul>
  </ul>
  <li>punkt3</li>
</ol>

A.

  1. punkt 1
  2. punkt 2
    • podpunkt1
    • podpunkt2
    • podpunkt3
  3. punkt3

B.

  1. punkt 1
  2. punkt 2
  3. punkt3
    • podpunkt1
    • podpunkt2
    • podpunkt3

C.

  1. punkt 1
  2. punkt 2
    • podpunkt1
      • podpunkt2
      • podpunkt3
  3. punkt3

D.

  • punkt 1
  • punkt 2
    1. podpunkt1
      • podpunkt2
      • podpunkt3
  • punkt3
A. D.
B. B.
C. A.
D. C.
Twoja odpowiedź niestety nie była prawidłowa. Kluczową częścią zadania była interpretacja struktury kodu HTML prezentującej listę numerowaną (<ol>) z trzema elementami listy (<li>). W szczególności, zwróć uwagę na to, że w drugim elemencie listy znajduje się zagnieżdżona lista nieuporządkowana (<ul>) z trzema podpunktami. Fakt, że podpunkty są oznaczone kropkami, jest charakterystyczny dla listy nieuporządkowanej, co sugerowało, że prawidłową odpowiedzią jest C. W przypadku innych odpowiedzi, nie odzwierciedlały one prawidłowo struktury przedstawionego kodu, co mogło wynikać z niezrozumienia znaczenia poszczególnych tagów HTML. Pamiętaj, że w HTML istotne jest zrozumienie, jak tagi są zagnieżdżone w sobie, tworząc strukturę strony. Przy dalszej nauce zwracaj uwagę na to, jak poszczególne elementy HTML są ze sobą powiązane.

Pytanie 33

W języku JavaScript, element został uzyskany przy pomocy metody getElementById. Jaką właściwość należy zastosować, aby zmienić zawartość tego elementu?

A. innerBody
B. Body
C. HTML
D. innerHTML
Właściwość innerHTML jest kluczowym elementem w manipulacji DOM (Document Object Model) w JavaScript. Umożliwia ona programistom modyfikację zawartości HTML danego elementu. Po pobraniu elementu za pomocą metody getElementById, można zmienić jego wewnętrzną zawartość, przypisując nowy tekst lub kod HTML do innerHTML. Na przykład, jeśli mamy element o id 'example', jego zawartość można zmienić w ten sposób: document.getElementById('example').innerHTML = '<p>Nowa zawartość</p>'; To podejście jest powszechnie stosowane w dynamicznej aktualizacji treści stron internetowych, co jest szczególnie przydatne w aplikacjach jednostronicowych (SPA) oraz przy tworzeniu interaktywnych komponentów użytkownika. Warto również zauważyć, że używanie innerHTML wiąże się z pewnymi zagrożeniami, takimi jak wstrzykiwanie kodu (XSS), dlatego zawsze powinno się dbać o walidację i sanitację wprowadzanych danych. W praktyce, aby zwiększyć bezpieczeństwo aplikacji, można korzystać z innych metod manipulacji DOM, takich jak textContent lub createElement, które nie interpretują kodu HTML.

Pytanie 34

W hurtowni danych stworzono tabelę sprzedaz, która zawiera pola: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie trzeba zastosować, aby znaleźć tylko kontrahentów z grupy cenowej numer dwa, których obrót przekracza 4000 zł?

A. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;
B. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000;
C. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000;
D. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000;
Twoja odpowiedź jest na właściwej drodze. Wykorzystałeś klauzulę SELECT w zapytaniu SQL, żeby wydobyć konkretne dane z tabeli sprzedaz. Świetnie, że zastosowałeś WHERE z warunkami 'grupa_cenowa = 2' oraz 'obrot > 4000', bo to dokładnie filtruje wyniki do tych kontrahentów, którzy są w drugiej grupie cenowej i mają obrót większy niż 4000 zł. Takie operacje są bardzo ważne w analizie danych, szczególnie w hurtowniach danych, gdzie musisz dobrze filtrować i agregować informacje, żeby wyciągnąć sensowne wnioski. W praktyce takie zapytania mogą być przydatne przy tworzeniu raportów sprzedażowych czy ocenie rentowności klientów. Warto też pamiętać, żeby tabele i kolumny były jasno nazwane, bo to zdecydowanie ułatwia tworzenie zapytań SQL.

Pytanie 35

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

A. ```SELECT COUNT(rejestracja) FROM konta JOIN rejestracja ON id;```
B. ```SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
C. ```SELECT rejestracja, COUNT(rejestracja) FROM konta;```
D. ```SELECT COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
Rozważając inne odpowiedzi, można zauważyć kilka typowych błędów w rozumieniu operacji SQL. Odpowiedź 'SELECT rejestracja, COUNT(rejestracja) FROM konta;' pomija klauzulę GROUP BY, która jest niezbędna do prawidłowego grupowania wyników po kolumnie 'rejestracja'. Bez niej, zapytanie spowoduje błąd, ponieważ próbuje zliczyć wartości bez określenia, jak je grupować. Takie podejście jest niezgodne z zasadami SQL, które wymagają, aby wszystkie kolumny niewykorzystywane w funkcjach agregujących były zawarte w klauzuli GROUP BY. W przypadku 'SELECT COUNT(rejestracja) FROM konta GROUP BY rejestracja;', mamy poprawnie użyte GROUP BY, ale brak jest kolumny 'rejestracja' w selekcji, co oznacza, że wyniki wyświetlą tylko liczby bez odpowiadających im lat, co nie spełnia założeń pytania. Odpowiedź 'SELECT COUNT(rejestracja) FROM konta JOIN rejestracja ON id;' wprowadza dodatkowy błąd związany z niepoprawnym użyciem JOIN. Kolumna 'rejestracja' nie jest tabelą, a próbując połączyć ją z tabelą 'konta' za pomocą JOIN, wprowadza się błędną koncepcję struktury danych. JOIN jest używany do łączenia różnych tabel na podstawie powiązanych kolumn, co w tym przypadku nie ma zastosowania. Takie niezrozumienie składni SQL może prowadzić do błędnych wyników i niepotrzebnego skomplikowania zapytań. Powszechnym błędem w korzystaniu z JOIN jest niepoprawne używanie go do prostych operacji grupowania, które nie wymagają połączenia wielu tabel.

Pytanie 36

Klucz obcy w tabeli jest ustanawiany w celu

A. zapewnić jednoznaczną identyfikację rekordu w tabeli
B. opracować formularz do wprowadzania danych do tabeli
C. określić relację 1..n powiązującą go z kluczem głównym innej tabeli
D. wiązać go z innymi kluczami obcymi w tabeli
Klucz obcy (foreign key) w bazach danych jest fundamentalnym elementem w modelowaniu relacji pomiędzy tabelami. Jego podstawowym celem jest zdefiniowanie relacji 1..n pomiędzy tabelą, w której się znajduje, a kluczem głównym innej tabeli. Oznacza to, że jeden rekord w tabeli, która zawiera klucz główny, może być powiązany z wieloma rekordami w tabeli z kluczem obcym. Na przykład, w systemie zarządzania zamówieniami, tabela 'Klienci' może mieć klucz główny 'ID_klienta', a tabela 'Zamówienia' może zawierać klucz obcy 'ID_klienta', co pozwala na powiązanie wielu zamówień z jednym klientem. To nie tylko ułatwia strukturalne organizowanie danych, ale również wspiera integralność referencyjną; czyli zapewnia, że każdy wpis w tabeli 'Zamówienia' odnosi się do istniejącego klienta. W praktyce, dobre praktyki projektowania baz danych zalecają używanie kluczy obcych do zachowania spójności danych i ułatwienia ich analizy, co odzwierciedla większą efektywność w strumieniu pracy oraz w raportowaniu.

Pytanie 37

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

A. nav { float: right; } section { float: right; }
B. nav { float: right; }
C. aside {float: left; }
D. nav { float: left; } aside { float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 38

Który z poniższych sposobów na komentarz jednoliniowy jest akceptowany w języku JavaScript?

A. !
B. #
C. //
D. <!
W JavaScript są jakieś znaki, które czasami myli się z komentarzami, ale nie są one do tego używane. Na przykład, '!' to operator logiczny, który po prostu neguje wartość, ale nie ma nic wspólnego z komentarzami. Ponadto, '#' używa się w innych językach, jak Python, ale w JavaScript nie działa jako komentarz — jego użycie spowoduje błąd. Zresztą, '<!' to też nie to, co trzeba w JavaScript, bo w HTML ma on inny sens i dotyczy komentarzy wieloliniowych. Więc, jak widzisz, nie da się używać '<!' do robienia komentarzy w JavaScript, bo nie zgadza się to z regułami języka. Zrozumienie tych rzeczy jest naprawdę ważne, gdy piszesz działający kod.

Pytanie 39

W PHP, aby poprawnie zakończyć połączenie z bazą danych MySQL, ostatnim krokiem powinno być użycie polecenia

A. exit
B. die
C. mysql_exit
D. mysqli_close
Wybór poleceń mysql_exit, exit oraz die jako sposobu na zamknięcie połączenia z bazą danych jest niewłaściwy z kilku powodów. mysql_exit to nieistniejąca funkcja w PHP. Nie ma takiego polecenia w dokumentacji PHP, co sugeruje, że użytkownik może być nieświadomy alternatywnych metod zarządzania połączeniami z bazą danych. exit i die, mimo że są często używane do zatrzymywania skryptu, mają zupełnie inne zastosowanie. Obie te komendy kończą wykonanie skryptu PHP, co może prowadzić do niezamierzonego przerywania całej aplikacji, zamiast zamknięcia jedynie połączenia z bazą danych. Używanie ich w kontekście zamykania połączenia z bazą danych jest nieefektywne i może prowadzić do błędów w logice aplikacji. Funkcje te nie zwalniają zasobów związanych z połączeniem, co może prowadzić do wycieków pamięci oraz nieoptymalnego działania bazy danych. Z tego względu, stosowanie tych poleceń w kontekście obsługi połączeń MySQL jest niewłaściwe i powinno być unikane w profesjonalnym kodzie PHP.

Pytanie 40

W przedstawionym kodzie JavaScript, który został ponumerowany dla przejrzystości, występuje błąd uniemożliwiający wyświetlenie jakiegokolwiek komunikatu po uruchomieniu. Jak można go naprawić?

1  if(a < b)
2      document.write(a);
3      document.write("jest mniejsze");
4  else
5      document.write(b);
6      document.write("jest mniejsze");
A. wprowadzić nawiasy klamrowe w sekcji if i else
B. umieścić zmienne a i b w cudzysłowie w liniach 2 i 5
C. dodać znak $ przed nazwami zmiennych
D. zmienić znaki cudzysłowu na apostrof w liniach 3 i 6, np. 'jest mniejsze'
Odpowiedź o wstawieniu nawiasów klamrowych do sekcji if oraz else jest prawidłowa, ponieważ w JavaScript, gdy warunek if lub else obejmuje więcej niż jedną instrukcję, należy użyć nawiasów klamrowych, aby zgrupować te instrukcje. W przeciwnym razie, język traktuje jako część bloku kodu tylko pierwszą instrukcję. W omawianym kodzie, bez nawiasów klamrowych, tylko pierwsze wywołanie document.write w każdej z sekcji jest wykonywane, co skutkuje brakiem komunikatu w przypadku, gdy warunek jest spełniony. Przykładowo, poprawny kod powinien wyglądać tak: if (a < b) { document.write(a); document.write('jest mniejsze'); } else { document.write(b); document.write('jest mniejsze'); }. Nawiasy klamrowe są standardową praktyką, która poprawia czytelność kodu oraz ułatwia jego modyfikację w przyszłości, co jest zgodne z zasadami dobrego programowania.