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: 19 kwietnia 2026 19:53
  • Data zakończenia: 19 kwietnia 2026 20:09

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

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

ALTER TABLE transport MODIFY COLUMN rok_produkcji INT;
Wykonanie powyższej kwerendy SQL w bazie MySQL spowoduje:
A. utworzenie tabeli transport zawierającej kolumnę rok_produkcji.
B. usunięcie kolumny rok_produkcji w tabeli transport.
C. zmianę typu danych w kolumnie rok_produkcji na INT.
D. dodanie kolumny rok_produkcji typu INT w tabeli transport.
Poprawnie – polecenie ALTER TABLE ... MODIFY COLUMN w MySQL służy do modyfikowania istniejącej kolumny, a nie do jej tworzenia czy usuwania. W podanym przykładzie baza danych szuka tabeli o nazwie `transport`, a następnie zmienia definicję kolumny `rok_produkcji` tak, aby jej typ danych był `INT`. Jeśli kolumna już istnieje (a musi istnieć, żeby MODIFY zadziałało), to po wykonaniu polecenia dalej będzie miała tę samą nazwę, ale jej typ i właściwości zostaną nadpisane nową definicją. W MySQL warto pamiętać, że przy MODIFY COLUMN trzeba podać pełną definicję kolumny, nie tylko sam typ. Czyli jeśli wcześniej była np. NOT NULL albo miała domyślną wartość, to dobra praktyka jest napisać coś w stylu: `ALTER TABLE transport MODIFY COLUMN rok_produkcji INT NOT NULL DEFAULT 2000;` – inaczej można przypadkiem zgubić część ustawień. W praktyce takie polecenia stosuje się przy zmianach w projekcie bazy: np. najpierw kolumna jest typu VARCHAR, bo ktoś przechowuje tam rok jako tekst, a potem, zgodnie z lepszymi zasadami projektowania, zmienia się to na typ liczbowy INT, żeby można było łatwo filtrować, sortować, robić warunki typu `WHERE rok_produkcji > 2015`. Z mojego doświadczenia dobrze jest przed taką zmianą sprawdzić, czy wszystkie dane da się bezpiecznie skonwertować na liczbę, bo jeśli w kolumnie są jakieś śmieciowe wartości tekstowe, to MySQL może je obciąć albo zamienić na 0, co później robi bałagan w raportach. W środowiskach produkcyjnych takie ALTER TABLE najlepiej wykonywać po zrobieniu kopii zapasowej i często w oknie serwisowym, bo przy dużych tabelach operacja może chwilowo blokować dostęp do danych.

Pytanie 2

W kodzie źródłowym zapisanym w języku HTML wskaż błąd walidacji dotyczący tego fragmentu. <h6>CSS</h6>
<p>Kaskadowe arkusze stylów <b>ang.<i>Cascading Style Sheets</b></i>)<br>to język służący...</p>

A. Znacznik h6 jest nieznany.
B. Znak zamykający /b jest niezgodny z zasadą zagnieżdżania.
C. Znak br nie może być użyty wewnątrz znacznika p.
D. Znak br nie został prawidłowo zamknięty.
Wszystkie trzy niepoprawne odpowiedzi zawierają błędne interpretacje kwestii walidacji kodu HTML w analizowanym fragmencie. Odpowiedź dotycząca nieznanego znacznika h6 jest błędna, ponieważ znacznik <h6> jest w pełni akceptowany w HTML jako znacznik nagłówka o najmniejszym znaczeniu. Zgodnie z specyfikacją HTML5, tego rodzaju znaczniki są używane do strukturyzacji treści, a ich użycie jest zalecane dla zachowania hierarchii informacji. Kolejna niepoprawna odpowiedź, dotycząca niedomkniętego znacznika <br>, jest również myląca, ponieważ znacznik <br> jest znakiem nowej linii i nie wymaga zamknięcia, co jest zgodne z zasadami HTML. Jego użycie wewnątrz znacznika <p> jest również dozwolone, chociaż nadmierne użycie <br> do łamania wierszy w paragrafach nie jest zalecane z perspektywy semantycznej i dostępności. Wreszcie, stwierdzenie, że znacznik <br> nie może występować wewnątrz znacznika <p>, jest mylne; znacznik <br> jest specjalnie zaprojektowany do użycia w kontekście tekstu i jego umiejscowienie w paragrafach jest jak najbardziej prawidłowe. W związku z tym wszystkie te odpowiedzi nie są zgodne z aktualnymi standardami HTML.

Pytanie 3

W PHP typ float oznacza

A. łańcuchowy
B. logiczny
C. całkowity
D. zmiennoprzecinkowy
Typ float w PHP to coś, co przydaje się do przechowywania liczb zmiennoprzecinkowych, a więc do liczb, które mają część dziesiętną. To naprawdę ważne, zwłaszcza jak robimy obliczenia związane z finansami czy nauką. Dzięki float możemy dokładnie przedstawić liczby rzeczywiste, co w programowaniu jest kluczowe. Te wartości są zgodne ze standardem IEEE 754, co oznacza, że można je przenosić między różnymi systemami i platformami bez problemów. Jeżeli chcesz np. obliczyć cenę z VAT-em albo policzyć coś w grze, to float jest najlepszym typem, bo pozwala na robienie precyzyjnych obliczeń z ułamkami. W PHP masz też funkcje jak round() czy number_format(), które pomagają w manipulacji tymi liczbami, co jest super przy prezentacji wyników, żeby ładnie wyglądały.

Pytanie 4

Funkcja pg_connect w języku PHP służy do nawiązania połączenia z bazą danych

A. MS SQL
B. mySQL
C. PostgreSQL
D. MS ACCESS
Wszystkie inne odpowiedzi dotyczą baz danych, które nie są obsługiwane przez funkcję pg_connect. Użycie MS SQL, MS ACCESS lub mySQL w kontekście pg_connect wprowadza w błąd, ponieważ każda z tych technologii ma swoje własne metody połączenia. MS SQL, na przykład, jest systemem zarządzania bazą danych stworzonym przez Microsoft i do połączeń z tą bazą używa się funkcji syb_connect lub PDO w zależności od preferencji programisty. MS ACCESS, z kolei, jest bazą danych, która często jest wykorzystywana w mniejszych aplikacjach i wymaga innych podejść do połączeń, często przy użyciu ODBC lub DAO. MySQL, popularna baza danych open source, używa funkcji mysqli_connect lub PDO_MySQL. Typowe błędy myślowe prowadzące do nieprawidłowych odpowiedzi często wynikają z nieznajomości specyfiki i architektury różnych systemów baz danych oraz błędnego utożsamiania ich z funkcjami PHP. Każde z tych rozwiązań ma swoje unikalne cechy i różnice, które są istotne dla projektowania aplikacji oraz ich późniejszego rozwoju.

Pytanie 5

Jaką klauzulę należy użyć w instrukcji CREATE TABLE w SQL, żeby pole rekordu nie mogło być puste?

A. NULL
B. DEFAULT
C. CHECK
D. NOT NULL
Klauzula NOT NULL w poleceniu CREATE TABLE języka SQL służy do zapewnienia, że dane w danym polu rekordu nie mogą być puste. To oznacza, że podczas wstawiania nowych rekordów do tabeli, każde pole, które zostało zdefiniowane z tą klauzulą, musi zawierać wartość. Na przykład, jeśli mamy tabelę pracowników, w której kolumna 'nazwisko' jest zdefiniowana jako NOT NULL, to każde dodanie nowego pracownika do tej tabeli musi zawierać wartość w kolumnie 'nazwisko'. W praktyce jest to bardzo ważne, ponieważ pozwala na utrzymanie integralności danych i zapobiega sytuacjom, w których kluczowe informacje mogłyby zostać pominięte. Użycie NOT NULL jest zgodne z dobrymi praktykami projektowania baz danych, które podkreślają znaczenie pełnych i kompletnych danych. Zastosowanie tej klauzuli zwiększa jakość danych oraz ułatwia późniejsze operacje na tabeli, takie jak zapytania czy raporty.

Pytanie 6

Po wykonaniu przedstawionego poniżej polecenia SQL użytkownik Ela będzie mógł

GRANT SELECT, INSERT, UPDATE, DELETE ON baza1.tab1 TO 'Ela'@'localhost';
A. wykonywania wszystkich operacji na strukturze danych
B. wykonywania wszelkich działań na danych
C. jedynie dodawania i edytowania danych
D. jedynie tworzenia i zmiany struktury tabel
Przy analizie pytania o uprawnienia SQL istotne jest zrozumienie znaczenia poszczególnych komend w kontekście zarządzania bazą danych. Komenda GRANT w SQL służy do przyznawania określonych uprawnień użytkownikom względem danych w bazie. Odpowiedź sugerująca że użytkownik Ela może jedynie tworzyć i modyfikować strukturę tabel jest nieprawidłowa ponieważ polecenie nie zawiera DDL (Data Definition Language) które byłoby odpowiedzialne za tworzenie i modyfikację struktur takich jak CREATE czy ALTER. Uprawnienia INSERT i UPDATE dotyczą manipulacji danymi a nie strukturami. Z kolei sugerowanie że użytkownik może jedynie dodawać i modyfikować dane także jest błędne ponieważ DELETE i SELECT są kluczowymi operacjami w kontekście pełnego dostępu do danych pozwalając odpowiednio na usuwanie danych i ich odczyt. Ponadto stwierdzenie że użytkownik może wykonywać wszystkie operacje na strukturze danych także jest błędne ponieważ operacje DML (Data Manipulation Language) takie jak INSERT UPDATE DELETE SELECT nie odnoszą się do samej struktury a do zawartości tabeli. Typowe błędy myślowe w tym kontekście wynikają z mylenia operacji na danych z operacjami na strukturze co jest częstym problemem wśród początkujących administratorów baz danych. Zrozumienie różnicy pomiędzy DDL i DML jest kluczowe dla efektywnego zarządzania uprawnieniami i bezpieczeństwem baz danych co jest fundamentem pracy administratora. Prawidłowa interpretacja uprawnień i ich konsekwencji w kontekście bezpieczeństwa i zarządzania danymi jest nieodzownym elementem pracy z bazami danych.

Pytanie 7

Polecenie TRUNCATE TABLE w systemie MySQL stosuje się do usuwania

A. kolumn.
B. wierszy tabeli.
C. tabel.
D. baz danych.
W poleceniu TRUNCATE TABLE kluczowe jest zrozumienie, że operujemy na zawartości tabeli, a nie na jej definicji czy całej bazie danych. W praktyce wiele osób myli to polecenie z innymi instrukcjami SQL, co później prowadzi do niebezpiecznych sytuacji w środowisku produkcyjnym. Usuwanie tabel jako obiektów bazy danych realizuje się poleceniem DROP TABLE. DROP kasuje całą strukturę: kolumny, indeksy, klucze, uprawnienia powiązane z tą tabelą. Po DROP nie ma już gdzie wstawić danych, trzeba tabelę zdefiniować na nowo. TRUNCATE takich rzeczy nie robi, pozostawia strukturę nienaruszoną. Mylenie TRUNCATE z usuwaniem kolumn też bywa częste. Za dodawanie i usuwanie kolumn odpowiada ALTER TABLE, np. ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny. To są operacje na schemacie (strukturze) danych, a TRUNCATE działa na poziomie rekordów, czyli zawartości. Ktoś, kto kojarzy słowo „truncate” z „ucięciem” struktury, może intuicyjnie pomyśleć, że zniknie kolumna, ale w SQL tak to nie działa. Podobnie w przypadku baz danych: do kasowania całych baz służy DROP DATABASE, ewentualnie w narzędziach typu phpMyAdmin odpowiednie opcje w interfejsie. TRUNCATE TABLE nie ma prawa dotykać całej bazy, bo jest przypisane do konkretnej tabeli. Typowy błąd myślowy polega na wrzuceniu do jednego worka wszystkich poleceń, które „coś usuwają”, bez rozróżniania, czy modyfikujemy strukturę (DDL), czy dane (DML), oraz na jakim poziomie: pojedynczy rekord, wszystkie rekordy, tabela czy cała baza. W MySQL TRUNCATE to specyficzna hybryda – formalnie DDL, ale semantycznie kasuje wyłącznie wiersze. Dlatego dobra praktyka jest taka: DROP używamy, gdy chcemy pozbyć się obiektu (tabeli, bazy), ALTER – gdy zmieniamy strukturę (kolumny, indeksy), a TRUNCATE lub DELETE – gdy czyścimy zawartość, przy czym TRUNCATE zawsze usuwa wszystkie wiersze, bez możliwości filtrowania i bez prostego cofnięcia transakcji. Rozdzielenie tych pojęć bardzo ułatwia bezpieczną pracę z SQL-em.

Pytanie 8

Które wyrażenie logiczne należy zastosować w języku JavaScript, aby wykonać operacje tylko dla dowolnych liczb ujemnych z przedziału jednostronnie domkniętego <-200, -100)?

A. (liczba -100)
B. (liczba >= -200) || (liczba > -100)
C. (liczba >= -200) && (liczba < -100)
D. (liczba <= -200) && (liczba < -100)
W tym zadaniu chodzi o poprawne odwzorowanie zapisu matematycznego przedziału <-200, -100) w postaci wyrażenia logicznego w JavaScript. Taki przedział oznacza wszystkie liczby od -200 włącznie do -100, ale już bez samego -100. W praktyce bardzo często myli się tutaj zarówno kierunek nierówności, jak i to, czy dana granica ma być domknięta (z „=”) czy otwarta. Dobrze jest sobie w myślach przetłumaczyć zapis matematyczny na zwykłe zdanie po polsku i dopiero potem na kod. Jednym z typowych błędów jest napisanie warunku w stylu „(liczba -100)”. Taki zapis w JavaScript w ogóle nie jest wyrażeniem logicznym, tylko zwykłym działaniem arytmetycznym: odejmujemy 100 od zmiennej liczba. Wynik będzie jakąś wartością liczbową, a nie true/false. Oczywiście JS potrafi w instrukcji if potraktować liczbę jako wartość logiczną, ale to kompletnie nie o to chodzi. To raczej efekt uboczny mechanizmu truthy/falsy, a nie poprawne projektowanie warunków. W profesjonalnym kodzie zawsze stosujemy jawne operatory porównania, typu >=, <=, >, <. Inny częsty błąd to użycie operatora || (lub) zamiast && (i). Warunek (liczba >= -200) || (liczba > -100) obejmie praktycznie wszystkie liczby większe lub równe -200, bo druga część (liczba > -100) będzie prawdziwa dla wszystkich liczb większych niż -100, w tym dodatnich. Operator OR mówi: wystarczy, że jedna z części jest prawdziwa. A my chcemy jednocześnie spełnienia obu warunków, czyli typowy AND. W efekcie taki zapis totalnie rozwala zakres i nie ma już nic wspólnego z przedziałem domknięto-otwartym. Pojawia się też pokusa, żeby użyć złych kierunków nierówności albo pomylić się przy interpretacji, że liczby są ujemne. Na przykład zapis (liczba <= -200) && (liczba < -100) łapie liczby mniejsze lub równe -200, czyli bardziej „w lewo” na osi, niż nas interesuje. Dodatkowo oba warunki są skierowane w stronę -∞, więc zamiast ograniczonego przedziału dostajemy tak naprawdę wszystkie liczby mniejsze lub równe -200. To wynika często z automatycznego kopiowania schematu bez zastanowienia, czy naprawdę odzwierciedla on to, co mieliśmy w matematyce. Z mojego doświadczenia dobrym nawykiem jest rozpisanie sobie na boku: "chcę liczby większe lub równe dolnej granicy" oraz "chcę liczby mniejsze (lub mniejsze/równe) od górnej granicy" i dopiero potem łączenie tego operatorem &&. Pozwala to uniknąć typowych pomyłek z kierunkiem strzałek i złym użyciem ||, które w warunkach zakresowych prawie nigdy nie jest tym, czego naprawdę potrzebujemy.

Pytanie 9

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
Wynikiem uruchomienia przedstawionego zapytania SQL jest:
A. Liczba wszystkich uczniów.
B. Liczba uczniów, których średnia ocen wynosi 5.
C. Suma ocen uczniów, których średnia ocen wynosi 5.
D. Średnia ocen wszystkich uczniów.
Poprawnie – to zapytanie zwraca liczbę uczniów, których kolumna „srednia” ma wartość równą dokładnie 5. Funkcja agregująca COUNT(*) w SQL nie liczy sumy ani średniej, tylko po prostu zlicza wiersze spełniające warunek w klauzuli WHERE. W tym przypadku tabela Uczniowie jest filtrowana warunkiem srednia = 5, więc do liczenia trafiają wyłącznie rekordy uczniów, którzy mają średnią ocen równą 5. Dopiero na takim przefiltrowanym zbiorze wykonywany jest COUNT(*), który zwraca jedną liczbę – ile takich rekordów istnieje. Moim zdaniem to jedno z najczęściej używanych połączeń: WHERE + COUNT(*), bo w praktyce non stop chcemy wiedzieć „ile jest elementów spełniających warunek”. W raportach, panelach administracyjnych, dashboardach – np. ile jest klientów z określonym statusem, ilu użytkowników ma aktywne konto, ilu pracowników ma premię powyżej jakiegoś progu itd. Warto też zauważyć, że COUNT(*) liczy wszystkie wiersze, niezależnie od tego, czy jakieś inne kolumny są NULL, a kluczowe jest tylko to, że warunek WHERE jest spełniony. Dobrą praktyką jest zawsze dokładne określanie warunku filtrowania, bo drobna zmiana, np. srednia >= 5 zamiast srednia = 5, całkowicie zmienia znaczenie zapytania. W projektowaniu baz danych i zapytań SQL takie precyzyjne myślenie o warunkach i funkcjach agregujących jest absolutną podstawą profesjonalnej pracy z danymi.

Pytanie 10

Jakie prawa: CREATE, ALTER, DROP zostały użyte w poleceniu GRANT?

A. pobierania danych z bazy
B. pracy ze strukturą
C. przyznawania uprawnień innym użytkownikom
D. pracy z danymi
Odpowiedź dotycząca manipulowania strukturą jest poprawna, ponieważ polecenia GRANT z zestawem praw CREATE, ALTER i DROP koncentrują się na zmianie i zarządzaniu strukturą bazy danych. CREATE pozwala na tworzenie nowych obiektów w bazie danych, takich jak tabele czy widoki. ALTER umożliwia modyfikację istniejących obiektów, na przykład dodawanie kolumn do tabeli. DROP służy do usuwania obiektów z bazy danych. Przykładowo, po nadaniu uprawnień CREATE, użytkownik może utworzyć nową tabelę, co jest kluczowe w procesie projektowania bazy danych. W praktyce, odpowiednie zarządzanie tymi uprawnieniami jest istotne w kontekście bezpieczeństwa i organizacji danych. Standardy branżowe, takie jak te określone przez SQL ANSI, zalecają precyzyjne zarządzanie uprawnieniami, aby uniknąć nieautoryzowanych zmian w strukturze bazy danych, co może prowadzić do utraty danych lub naruszeń bezpieczeństwa.

Pytanie 11

W języku PHP zmienna globalna $_POST, służąca do odbierania danych z formularza przesłanych metodą POST, jest: 

A. tablicą asocjacyjną.
B. obiektem klasy stdClass.
C. zmienną tekstową.
D. ciągiem znaków zakodowanym w JSON.
Poprawnie – w PHP zmienna superglobalna $_POST jest tablicą asocjacyjną, czyli zbiorem par klucz ⇒ wartość. Kluczami są nazwy pól formularza (atrybut name w HTML), a wartościami – dane przesłane metodą POST. Dzięki temu po stronie PHP możesz wygodnie odwoływać się do konkretnych pól, np.: $imie = $_POST['imie']; $email = $_POST['email'];. To jest bardzo naturalne, bo struktura formularza HTML też opiera się na nazwach pól, więc mapowanie na tablicę asocjacyjną jest po prostu praktyczne. Moim zdaniem ważne jest też zrozumienie, że $_POST zawsze jest tablicą (array w PHP), nawet jeśli w formularzu jest tylko jedno pole. Jeżeli użytkownik nic nie wyśle, to będzie to pusta tablica, a nie null czy ciąg znaków. Z mojego doświadczenia warto zawsze sprawdzać isset($_POST['nazwa']) albo używać filter_input(INPUT_POST, 'nazwa'), co jest zgodne z dobrymi praktykami bezpieczeństwa. $_POST jest jedną z tzw. superglobali, obok $_GET, $_SERVER, $_FILES, $_SESSION itd. Są one dostępne w całym skrypcie, niezależnie od zasięgu (scope) funkcji. W kontekście formularzy webowych przyjętym standardem jest: używamy $_GET do danych z adresu URL (zapytania typu ?id=5), a $_POST do danych z formularzy, szczególnie gdy przesyłamy hasła, większe teksty, dane wrażliwe. To jest zgodne z typową architekturą aplikacji webowych w PHP. Warto też wiedzieć, że wartości w $_POST są zawsze typu string (lub tablica stringów, gdy używasz nazw pól z nawiasami, np. name="interesy[]"), ale sama zmienna $_POST jest tablicą asocjacyjną. Dobra praktyka: nie ufaj ślepo zawartości $_POST – zawsze waliduj i filtruj dane wejściowe przed zapisaniem do bazy czy wyświetleniem użytkownikowi, żeby unikać np. XSS i SQL injection.

Pytanie 12

Aby w JavaScript wykonać wymienione kroki:

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
   następnie po zatwierdzeniu
2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
   wartość pobrana z okna "Kwalifikacja: ..."
należy w znaczniku <script> umieścić kod
A. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

B. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " .A);

C. A = alert("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

D. A << prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);
A. A.
B. B.
C. D.
D. C.
Wygląda na to, że nie do końca trafiłeś. Niektóre odpowiedzi sugerowały użycie funkcji, które nie nadają się do tego zadania. Na przykład, `alert` pokazuje tylko jakiś komunikat, ale nie pozwala na wpisanie czegoś przez użytkownika. Inną możliwością mogły być też metody manipulacji DOM, ale to już trochę bardziej skomplikowane i nie było w tym przypadku konieczne. Ważne jest, żeby wiedzieć, które funkcje w JavaScript są do czego, żeby móc je dobrze wykorzystać.

Pytanie 13

Najłatwiejszym sposobem na zmianę obiektu z numerem 1 na obiekt z numerem 2 jest

Ilustracja do pytania
A. zmiana warstwy obiektu
B. narysowanie obiektu docelowego
C. geometriczne przekształcenie obiektu
D. animacja obiektu
Geometryczne transformowanie obiektu to proces, który pozwala na zmiany w wielkości, kształcie, pozycji lub orientacji obiektu bez modyfikacji jego struktury. W przypadku zamiany obiektu oznaczonego cyfrą 1 na obiekt oznaczony cyfrą 2, transformacja geometryczna, jak skalowanie, jest najprostszą metodą. Skalowanie pozwala na proporcjonalne powiększenie obiektu, co jest niezbędne, gdy chcemy zwiększyć jego rozmiar bez zniekształceń. W praktyce, narzędzia do obróbki grafiki czy modelowania 3D, takie jak Adobe Illustrator czy AutoCAD, oferują funkcje do precyzyjnego skalowania. Kluczowe jest zachowanie proporcji, co można osiągnąć poprzez skalowanie względem określonego punktu odniesienia. Transformacje geometryczne są fundamentalne w wielu dziedzinach, takich jak projektowanie graficzne, inżynieria czy animacja komputerowa, i są zgodne z najlepszymi praktykami, które promują efektywność i precyzję w pracy z obiektami wizualnymi.

Pytanie 14

Jaką maksymalną liczbę znaczników &lt;td&gt; można zastosować w tabeli składającej się z trzech kolumn i trzech wierszy, która nie zawiera złączeń między komórkami oraz wiersza nagłówkowego?

A. 3
B. 9
C. 12
D. 6
Wybór innych odpowiedzi może wynikać z niepoprawnego rozumienia struktury tabeli lub zasadności użycia znaczników &lt;td&gt;. Odpowiedź 3, sugerująca 6 znaczników, pomija fakt, że każda kolumna powinna zawierać wszystkie wiersze, co w przypadku trzech wierszy prowadzi do stwierdzenia, że maksymalna liczba komórek powinna być znacznie wyższa. Natomiast odpowiedź 12 może wynikać z błędnego założenia, że każda komórka może być użyta wielokrotnie, co jednak narusza zasady HTML, które zakładają jednoznaczne przypisanie danych do danej komórki. Dlatego, aby uzyskać poprawną liczbę znaczników &lt;td&gt;, należy pomnożyć liczbę kolumn przez liczbę wierszy. W tym przypadku mamy trzy kolumny i trzy wiersze, więc całkowita liczba znaczników &lt;td&gt; wynosi 9. Kluczowe jest zrozumienie, że znaczniki &lt;td&gt; są przeznaczone wyłącznie do umieszczania danych w tabeli, a zasady ich użycia są ściśle określone w standardach HTML. W praktyce, błędy takie jak zbyt niska lub zbyt wysoka liczba znaczników mogą prowadzić do niepoprawnych wyświetleń tabeli oraz utrudniać użytkownikom dostęp do danych. Aby uniknąć podobnych nieporozumień, zawsze warto stosować się do dobrze zdefiniowanych zasad projektowania tabel w HTML.

Pytanie 15

W języku JavaScript, by zmodyfikować wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById należy użyć

A. pola attribute oraz wskazać nazwę atrybutu
B. metody setAttribute
C. pola innerHTML
D. metody getAttribute
Wykorzystanie pola innerHTML do zmiany atrybutów elementów HTML może prowadzić do wielu problemów i nieefektywności. Pole to służy do modyfikacji zawartości wewnętrznej elementu, a jego użycie w kontekście zmiany atrybutów nie jest zalecane. Przykładowo, przypisując nową wartość do innerHTML, można przypadkowo nadpisać całą zawartość elementu, co skutkuje utratą innych atrybutów oraz zdarzeń powiązanych z tym elementem. Z kolei metody getAttribute oraz setAttribute mają różne zastosowania: getAttribute odczytuje wartość atrybutu, ale nie zmienia go. Zastosowanie metody attribute, która nie istnieje w standardzie DOM, może prowadzić do nieporozumień i błędów w kodzie. Często błędne podejście do manipulacji atrybutami wynika z braku zrozumienia, jak działa model DOM i jak można go efektywnie wykorzystywać w JavaScript. W praktyce, zamiast używać metod, które nie są przeznaczone do danego zadania, warto sięgnąć po metody dostosowane do manipulacji atrybutami, co zwiększa czytelność i stabilność kodu. W efekcie, zrozumienie różnicy między różnymi metodami i ich zastosowaniem jest kluczowe dla prawidłowego zarządzania elementami na stronie.

Pytanie 16

Systemem zarządzania wersjami w projekcie programistycznym, który działa w trybie rozproszonym, jest

A. GIT
B. Eclipse
C. FileZilla
D. TotalCommander
FileZilla to program służący do transferu plików przez protokoły FTP, SFTP i FTPS. Chociaż może być użyty w kontekście zarządzania plikami projektów, nie oferuje funkcji kontroli wersji, co jest kluczowym elementem rozproszonych systemów kontroli wersji. TotalCommander jest menedżerem plików, który współpracuje z lokalnym systemem plików, a nie z repozytoriami kodu źródłowego. W przypadku projektów programistycznych jego zastosowanie ogranicza się głównie do porządkowania i kopiowania plików, co nie ma związku z kontrolą wersji. Eclipse to zintegrowane środowisko programistyczne (IDE), które może wspierać różne systemy kontroli wersji, w tym GIT, ale samo w sobie nie jest rozproszonym systemem kontroli wersji. Typowe błędy myślowe prowadzące do takich wniosków to mieszanie pojęć związanych z zarządzaniem plikami i kontrolą wersji. Systemy kontroli wersji, takie jak GIT, wprowadzają struktury i procesy, które umożliwiają śledzenie zmian, zarządzanie wersjami kodu oraz współpracę w zespołach, co jest całkowicie odmiennym podejściem od prostego przesyłania plików czy zarządzania nimi w lokalnym systemie. W związku z tym, zrozumienie podstawowych różnic między tymi narzędziami jest kluczowe dla efektywnego zarządzania projektami programistycznymi.

Pytanie 17

Prezentowany blok kodu ilustruje proces

Ilustracja do pytania
A. załadowania lub wyświetlenia informacji
B. realizacji zadania w pętli
C. podjęcia decyzji
D. użycia zdefiniowanej procedury lub funkcji
Pierwsza odpowiedź sugeruje że blok reprezentuje zastosowanie gotowej procedury lub funkcji co jest niepoprawne Romb w schematach blokowych nie jest używany do oznaczania procedur lub funkcji lecz do podejmowania decyzji Stosowanie procedur i funkcji zazwyczaj związane jest z blokami prostokątnymi symbolizującymi operacje a nie z decyzjami które wymagają warunkowego rozgałęzienia Druga odpowiedź wczytania lub wyświetlenia danych również nie jest poprawna Operacje związane z wczytywaniem i wyświetlaniem danych są zazwyczaj przedstawiane za pomocą bloków równoległoboków które obrazują wejście i wyjście danych Wczytywanie danych polega na pozyskaniu informacji z zewnętrznych źródeł lub użytkownika a wyświetlanie polega na prezentacji wyników jednak obie te czynności nie mają charakteru decyzyjnego Odpowiedź dotycząca wykonania zadania w pętli jest także błędna Pętle które umożliwiają powtarzanie określonych czynności są zazwyczaj wyrażane za pomocą konstrukcji prostokątnych z dodatkowymi wskaźnikami powrotu nie zaś za pomocą rombu który odzwierciedla logiczne warunkowe ścieżki przepływu danych Typowym błędem myślowym jest przypisywanie rombowi funkcji powiązanych z iteracjami lub operacjami co wynika z mylnego zrozumienia zasad tworzenia algorytmów w formie graficznej Intuicja podpowiada że decyzja i powtarzanie mogą być podobne jednak w diagramach blokowych różnią się symboliką i zastosowaniem

Pytanie 18

Który z przedstawionych ciągów znaków nie pasuje do wzorca wyrażenia regularnego określonego poniżej?

(([A-ZŁŻ][a-ząęóźżćńś]{2,})(-[A-ZŁŻ][a-ząęóźżćńś]{2,})?)
A. Nowakowska-Kowalska
B. Jelenia Góra
C. Kowalski
D. Kasprowicza
Wyrażenie regularne jest narzędziem do precyzyjnego przeszukiwania i manipulowania tekstem zgodnie z określonymi wzorcami. W podanym wzorcu, (([A-ZŁŻ][a-ząęóźżćńś]{2,})(-[A-ZŁŻ][a-ząęóźżćńś]{2,})?)?, szukamy ciągów rozpoczynających się dużą literą, następujących po niej przynajmniej dwóch małych liter, z możliwością oddzielenia myślnikiem i kolejną sekwencją podobnego formatu. Odpowiedź Jelenia Góra nie pasuje do tego wzorca, ponieważ zawiera spację, co łamie ciągłość wzorca. Wyrażenia regularne są kluczowe w przetwarzaniu danych tekstowych i walidacji, ponieważ pozwalają na dynamiczne określanie struktury danych. Przykłady zastosowania obejmują filtrowanie danych wejściowych w formularzach czy analizowanie logów serwerowych. W praktyce, stosując wyrażenia regularne, można skutecznie odróżniać i przetwarzać skomplikowane struktury tekstowe zgodnie z wymaganymi kryteriami, co jest standardem w branżach opartych na danych. Zrozumienie, jak działa taki wzorzec, pomaga w wielu zadaniach związanych z przetwarzaniem tekstu, w tym w programowaniu i analizie danych.

Pytanie 19

Jaki znacznik w HTML jest używany do oznaczania fragmentów tekstu jako kodu programistycznego?

A. <code> </code>
B. <span> </span>
C. <blockquote> </blockquote>
D. <em> </em>
Znacznik <em> jest używany do podkreślenia tekstu, nadając mu kursywę, co sugeruje akcentowanie lub ważność wyrażenia, ale nie ma zastosowania do oznaczania kodu komputerowego. Podobnie znacznik <span> służy do grupowania elementów w celu stylizacji CSS lub manipulacji JavaScript, ale nie niesie ze sobą semantycznych wskazówek dotyczących typów treści, jakim jest kod. Nie jest on przeznaczony do wyodrębniania fragmentów tekstu jako kodu, co czyni go nieodpowiednim w kontekście tego pytania. Ostatni z wymienionych znaczników, <blockquote>, ma na celu cytowanie dłuższych fragmentów tekstu zewnętrznego, często z zachowaniem wcięcia, aby zaznaczyć, że jest to cytat. Użycie <blockquote> dla kodu komputerowego wprowadzałoby niejasności, ponieważ nie odzwierciedla semantyki kodu, a raczej tekstu cytowanego. W rezultacie, stosowanie tych znaczników w miejscu <code> prowadzi do błędnej interpretacji treści przez przeglądarki oraz skomplikowania struktury dokumentu HTML.

Pytanie 20

Wskaż problem z walidacją w podanym fragmencie kodu HTML

<h6>CSS</h6>
<p>Kaskadowe arkusze stylów (<b>ang. <i>Cascading Style Sheets</b></i>)<br>to język służący... </p>
A. Znacznik br nie został poprawnie zamknięty
B. Znacznik br nie może występować wewnątrz znacznika p
C. Znacznik zamykający /b niezgodny z zasadą zagnieżdżania
D. Nieznany znacznik h6
W przypadku innych odpowiedzi warto zrozumieć dlaczego są one niepoprawne Znacznik br jest rzeczywiście samodzielnym znacznikiem i w starszych wersjach HTML można było go nie zamykać jednak w HTML5 a także dla zachowania zgodności z XML należy go zamykać jako br co zapobiega potencjalnym błędom przy przetwarzaniu dokumentu Znacznik h6 jest jednym z nagłówków dostępnych w HTML i jest jak najbardziej prawidłowy i znany HTML udostępnia sześć poziomów nagłówków od h1 do h6 każdy z nich służy do strukturalnego wyróżnienia treści na stronie Ostatecznie jeśli chodzi o znacznik br umieszczony wewnątrz znacznika p jest to zgodne z HTML mimo że takie użycie może prowadzić do nieczytelności kodu i jest ogólnie odradzane gdyż może zakłócać semantykę dokumentu W tym wypadku lepiej byłoby używać CSS do kontrolowania odstępów między elementami a nie polegać na znaczniku br w paragrafach Błędy te są powszechne wśród początkujących i wynikają często z braku zrozumienia struktury dokumentu HTML oraz jego semantyki Warto zatem zgłębić zasady poprawnego pisania HTML aby zapewnić zgodność z przeglądarkami oraz poprawną prezentację treści na stronie internetowej

Pytanie 21

W SQL prawo SELECT w poleceniu GRANT umożliwia użytkownikowi bazy danych na

A. tworzenie nowych tabel
B. usuwanie danych z tabeli
C. zmianę danych w tabeli
D. pobieranie danych z tabeli
Przywilej SELECT w poleceniu GRANT w języku SQL jest kluczowym elementem zarządzania dostępem do danych w bazach danych. Umożliwia on użytkownikowi wykonanie operacji odczytu na danych przechowywanych w tabelach. W praktyce oznacza to, że użytkownik, któremu przyznano ten przywilej, może wykonywać zapytania SELECT, aby przeglądać dane, analizować je i generować raporty. Przykładowo, w kontekście systemu zarządzania bazą danych (DBMS) takiego jak MySQL, po przyznaniu przywileju SELECT dla konkretnej tabeli, użytkownik może wywołać zapytanie takie jak 'SELECT * FROM nazwa_tabeli;', co pozwala mu na wyświetlenie wszystkich rekordów z tej tabeli. Praktyka ta jest zgodna z podstawowymi zasadami zarządzania dostępem do danych, które są zdefiniowane w standardzie SQL. Odczytywanie danych jest fundamentalnym zadaniem w analizie danych, a przywilej SELECT jest często pierwszym krokiem w budowaniu bardziej złożonych zapytań, które mogą obejmować agregacje, filtrowanie czy łączenie tabel. W ten sposób przywilej SELECT nie tylko umożliwia dostęp do danych, ale także stanowi podstawę dla bardziej zaawansowanych operacji na danych.

Pytanie 22

Podane w ramce polecenie SQL nadaje prawo SELECT

GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';
A. dla użytkownika 'root' na serwerze sprzedawca.
B. do wszystkich tabel w bazie hurtownia.
C. dla użytkownika 'root' na serwerze localhost.
D. do wszystkich pól w tabeli hurtownia.
Poprawnie wychwyciłeś najważniejszy element składni: zapis hurtownia.* po słowie ON oznacza całą bazę danych o nazwie hurtownia, a nie pojedynczą tabelę. W składni GRANT w MySQL i innych systemach bazodanowych mamy kilka poziomów nadawania uprawnień: można nadać uprawnienia do całej bazy (database), do konkretnej tabeli, a nawet do pojedynczych kolumn. Kluczowe jest to, co znajduje się po słowie ON. Jeżeli podamy nazwa_bazy.* – tak jak tutaj – to uprawnienie SELECT dotyczy wszystkich tabel w tej bazie danych. Gdyby chodziło o jedną tabelę, składnia wyglądałaby np. GRANT SELECT ON hurtownia.zamowienia TO 'sprzedawca'@'localhost'; i wtedy prawo dotyczyłoby wyłącznie tabeli zamowienia. W tym poleceniu dodatkowo jasno określony jest użytkownik: 'sprzedawca'@'localhost'. W MySQL użytkownik jest identyfikowany parą nazwa_użytkownika@host, więc nie jest to ani root, ani żaden inny login, tylko konkretny użytkownik o nazwie sprzedawca, który łączy się z serwera localhost. To jest typowy scenariusz np. dla aplikacji sprzedażowej instalowanej na tym samym serwerze co baza. Taki użytkownik często dostaje tylko SELECT do bazy hurtownia, żeby mógł odczytywać dane (np. listę produktów, stany magazynowe, historię zamówień), ale nie miał uprawnień do modyfikacji struktury bazy czy kasowania rekordów. Moim zdaniem jest to bardzo dobra praktyka bezpieczeństwa: tworzy się osobnych użytkowników o wąskim zakresie uprawnień zamiast wszędzie używać konta root. W realnych projektach webowych, np. w PHP czy innych językach backendowych, w pliku konfiguracyjnym aplikacji podaje się właśnie takiego technicznego użytkownika, który ma GRANT SELECT (czasem też INSERT/UPDATE) tylko na jedną, konkretną bazę. Dzięki temu nawet jeśli aplikacja zostanie zhakowana, atakujący ma dużo mniejsze pole do popisu, bo nie dysponuje pełnymi uprawnieniami administracyjnymi. Dobrze też zapamiętać, że GRANT SELECT nie daje prawa do tworzenia nowych tabel ani zmiany struktury – to są osobne uprawnienia (CREATE, ALTER, DROP). Tutaj mówimy wyłącznie o możliwości wykonywania zapytań odczytujących dane ze wszystkich tabel w bazie hurtownia, co w praktyce oznacza, że użytkownik sprzedawca może spokojnie robić SELECT * FROM jakakolwiek_tabela; pod warunkiem, że ta tabela znajduje się właśnie w tej bazie.

Pytanie 23

Co wpływa na wysokość dźwięku?

A. metoda pobudzenia drgań
B. czas trwania drgań źródła dźwięku
C. częstotliwość drgań fali akustycznej
D. intensywność wzbudzenia drgań
Wszystkie niepoprawne odpowiedzi koncentrują się na aspektach, które nie mają bezpośredniego wpływu na wysokość dźwięku. Siła wzbudzenia drgania odnosi się do amplitudy fali dźwiękowej, która wpływa na głośność dźwięku, a nie na jego wysokość. Im większa amplituda, tym głośniejszy dźwięk, ale ton pozostaje taki sam. Sposób pobudzenia drgania dotyczy technik, które mogą generować dźwięki, ale to nie zmienia ich wysokości. Przykładowo, dźwięk wydobyty z gitary akustycznej i elektrycznej na tej samej częstotliwości będzie miał tę samą wysokość, mimo że instrumenty różnią się w sposobie wytwarzania dźwięku. Czas drgania źródła dźwięku również nie jest bezpośrednio związany z wysokością; odnosi się raczej do długości trwania dźwięku lub jego wybrzmiewania. W skrócie, wysokość dźwięku jest zjawiskiem związanym wyłącznie z częstotliwością, a nie z innymi wymienionymi czynnikami.

Pytanie 24

Aby przekształcić obraz z formatu JPEG do PNG bez utraty jakości, tak aby kolor biały w oryginalnym obrazie został zastąpiony przezroczystością w wersji docelowej, należy najpierw

A. obniżyć rozdzielczość obrazu
B. dodać kanał alfa
C. usunięcie gumką wszystkich białych miejsc
D. załadować obraz do programu do edycji grafiki wektorowej
Żeby zmienić obrazek z formatu JPEG na PNG i zachować przezroczystość tam, gdzie wcześniej był biały kolor, ważny krok to dodanie kanału alfa. To w zasadzie taka dodatkowa warstwa w obrazie, która mówi, które piksele mają być przezroczyste. JPEG nie umie obsługiwać przezroczystości, więc białe obszary będą się pokazywać jako nieprzezroczyste. Jak już dodasz ten kanał alfa, możesz ustawić przezroczystość dla białych pikseli, co pozwoli na ich ukrycie lub zamianę na przezroczystość w końcowym obrazku. Na przykład, w programach jak Adobe Photoshop można użyć narzędzia do zaznaczania kolorów, żeby wybrać wszystkie białe piksele i potem je usunąć, zostawiając tylko przezroczystość. W ten sposób dostajesz efekt, którego chcesz w obrazie PNG, co jest zgodne z dobrą praktyką w obróbce grafiki i pomaga utrzymać wysoką jakość obrazu bez żadnych strat.

Pytanie 25

W stylu CSS utworzono klasę uzytkownik. Na stronie będą wyświetlane czcionką w kolorze niebieskim: p.uzytkownik { color: blue; }

A. wszystkie akapity.
B. wszystkie elementy w sekcji <body> z przypisaną klasą uzytkownik.
C. jedynie elementy tekstowe takie jak <p>, <h1>.
D. akapitów, którym przypisano klasę uzytkownik.
Odpowiedź, że paragrafy przypisane do klasy 'uzytkownik' będą miały niebieską czcionkę, jest jak najbardziej trafna. W CSS używamy kropki, żeby zdefiniować klasę, co oznacza, że styl dotyczy tylko tych elementów HTML, które mają tę klasę. Więc jeśli masz coś takiego w HTML jak <p class='uzytkownik'>, to na pewno będzie to wyświetlane z niebieską czcionką, zgodnie z Twoją regułą CSS. Takie podejście super wspiera modularność i możliwość ponownego użycia kodu, co jest naprawdę ważne w tworzeniu stron. Dzięki klasom CSS łatwo da się ogarnąć styl w różnych miejscach w kodzie, a zmieniając kolor czcionki w pliku CSS, zmiana ta natychmiast zaktualizuje wszystkie elementy z tą klasą. Przykładowo, akapit <p class='uzytkownik'> będzie miał niebieski kolor i to fajnie wpływa na spójność wizualną strony. Pamiętaj też, że klasy CSS można stosować nie tylko do akapitów, ale też do innych znaczników, co daje większą swobodę w stylizacji treści.

Pytanie 26

W języku JavaScript zapis w ramce oznacza, że x=przedmiot.nazwa);

A. zmienna x będzie przechowywać wynik działania funkcji przedmiot
B. nazwa jest cechą obiektu przedmiot
C. zmienna x będzie zawierać wynik działania metody nazwa
D. nazwa jest atrybutem klasy przedmiot
Niepoprawne odpowiedzi wskazują na brak zrozumienia koncepcji obiektów w JavaScript oraz różnic pomiędzy właściwościami a metodami. Stwierdzenie, że 'nazwa jest polem klasy przedmiot', jest mylące, ponieważ w JavaScript nie ma klas w tradycyjnym sensie znanym z innych języków, jak Java czy C#. W JavaScript mamy do czynienia z prototypami, a atrybuty obiektów są nazywane właściwościami, a nie polami klasy. Kolejne stwierdzenie, że 'nazwa jest właściwością obiektu przedmiot', jest częściowo prawdziwe, ale w kontekście zadania nie jest wystarczająco precyzyjne, ponieważ może sugerować, że 'nazwa' jest statyczną wartością, podczas gdy w rzeczywistości może to być metoda, której wynikiem jest dynamiczna wartość. Ostatnia błędna odpowiedź, sugerująca, że 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', również jest niepoprawna, ponieważ 'przedmiot' nie jest funkcją, lecz obiektem. W JavaScript, aby wywołać funkcję, potrzebujemy jej nazwy i odpowiednich nawiasów, co w tym przypadku nie ma miejsca. Zrozumienie tych różnic jest kluczowe dla efektywnego programowania w tym języku oraz korzystania z jego pełnych możliwości.

Pytanie 27

Wskaż NIEPRAWIDŁOWE stwierdzenie dotyczące normalizacji dźwięku

A. Jeśli najgłośniejszy element dźwięku osiąga połowę skali, wszystko zostanie zwiększone razy dwa - tak, aby najgłośniejszy element dotarł do maksimum na skali
B. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do ustalonej wartości, a następnie proporcjonalnym zwiększeniu głośności pozostałych części sygnału
C. Opcja normalizacja znajduje się w menu programu do edycji dźwięku
D. W wyniku normalizacji następuje wyrównanie poziomu głośności całego nagrania
Pojęcia związane z normalizacją sygnału dźwiękowego mogą być mylnie interpretowane, co często prowadzi do nieprawidłowych wniosków. Na przykład, stwierdzenie, że normalizacja polega na zmniejszeniu poziomu najgłośniejszej próbki, jest mylące. Normalizacja w rzeczywistości nie zmienia relacji pomiędzy poszczególnymi próbami sygnału, lecz dostosowuje głośność całego nagrania względem najgłośniejszego fragmentu. Kolejnym błędnym podejściem jest myślenie, że proces normalizacji wyrównuje poziom głośności całego nagrania, co może sugerować, że dźwięki cichsze stają się głośniejsze, co nie jest w pełni poprawne. Normalizacja dostosowuje głośność do określonego poziomu, ale nie zmienia dynamiki nagrania. W praktyce, jeżeli najgłośniejszy fragment osiąga wartość połowy skali, sugerowanie, że wszystko zostanie pogłośnione razy dwa, jest uproszczeniem i nie oddaje rzeczywistego charakteru normalizacji, która operuje na zasadzie maksymalizacji głównego sygnału bez zmiany jego struktury. Warto pamiętać, że celem normalizacji jest osiągnięcie konsystencji w poziomie głośności, a nie manipulowanie poszczególnymi elementami nagrania w sposób, który zaburzyłby jego naturalny charakter. W rzeczywistych aplikacjach, takich jak produkcja muzyczna czy edycja audio, zrozumienie tych różnic jest kluczowe dla uzyskania profesjonalnych rezultatów.

Pytanie 28

Język JavaScrypt umożliwia obsługę

A. funkcji wirtualnych
B. obiektów DOM
C. klas abstrakcyjnych
D. wysyłania ciastek z identycznymi informacjami do wielu klientów strony
JavaScript to język programowania, który ma silne wsparcie dla obiektów DOM (Document Object Model), co pozwala na dynamiczne manipulowanie strukturą HTML oraz stylami CSS w czasie rzeczywistym. DOM jest interfejsem programowania aplikacji, który reprezentuje strukturę dokumentów HTML oraz XML jako zhierarchizowane drzewo obiektów. Dzięki JavaScript, programiści mogą dodawać, usuwać oraz modyfikować elementy na stronie internetowej, co prowadzi do interaktywnych i responsywnych doświadczeń użytkowników. Na przykład, za pomocą metody document.getElementById() można uzyskać dostęp do konkretnego elementu HTML, a następnie zmienić jego zawartość lub styl. Możliwości manipulacji DOM w JavaScript są szerokie, obejmują takie operacje jak dodawanie klas CSS, obsługa zdarzeń użytkownika, czy tworzenie nowych elementów. Standardy, takie jak W3C DOM, definiują sposób, w jaki te operacje powinny być realizowane, zapewniając interoperacyjność w różnych przeglądarkach. Zrozumienie obsługi DOM w JavaScript jest kluczowe dla każdego, kto chce tworzyć nowoczesne aplikacje internetowe, ponieważ umożliwia pełne wykorzystanie możliwości interakcji na stronach WWW.

Pytanie 29

W CSS, aby zmienić kolor tekstu dowolnego elementu HTML po najechaniu na niego myszą, należy wykorzystać pseudoklasę

A. :visited
B. :hover
C. :active
D. :coursor
:hover jest pseudoklasą wykorzystywaną w CSS do stylizacji elementów w momencie, gdy użytkownik na nie najedzie kursorem. To bardzo przydatne narzędzie, pozwalające na interaktywne zmiany wyglądu strony internetowej, co znacznie poprawia doświadczenia użytkownika. Przykładem zastosowania może być zmiana koloru tekstu linków. Można to osiągnąć, definiując odpowiednie reguły CSS, takie jak: `a:hover { color: red; }`, co spowoduje, że linki zmienią kolor na czerwony, gdy na nie najedziemy. Pseudoklasa :hover jest zgodna z W3C CSS, a jej zastosowanie w projektowaniu stron zapewnia lepszą dostępność i intuitwność interfejsu. Warto pamiętać, że efekty hover powinny być subtelne i dobrze przemyślane, aby nie odwracać uwagi od głównych treści strony, ale jednocześnie umożliwić użytkownikom szybkie zauważenie działań, które mogą podjąć.

Pytanie 30

Jeżeli rozmiar pliku graficznego jest zbyt duży do publikacji w sieci, co należy zrobić?

A. zapisać w formacie BMP
B. zwiększyć jego głębię kolorów
C. dodać kanał alfa
D. zmniejszyć jego rozdzielczość
Zwiększenie głębi kolorów w pliku graficznym nie prowadzi do zmniejszenia jego rozmiaru, a wręcz przeciwnie, może spowodować, że plik stanie się większy. Głębia kolorów odnosi się do liczby bitów używanych do reprezentacji koloru pojedynczego piksela obrazu. Na przykład, zwiększenie głębi z 8 bitów (256 kolorów) do 16 bitów (65 536 kolorów) zwiększa objętość danych, co skutkuje większym rozmiarem pliku. Ponadto, zapis w formacie BMP to również błędny wybór, ponieważ BMP jest formatem, który przechowuje dane w sposób mało efektywny i niekompresowany, co sprawia, że pliki BMP są znacznie większe niż ich odpowiedniki w formatach skompresowanych, takich jak JPEG czy PNG. Dodanie kanału alfa do obrazu, choć może być przydatne w przypadku potrzeby przejrzystości, również zwiększy rozmiar pliku, ponieważ dodaje dodatkowe informacje o przezroczystości dla każdego piksela. W rezultacie, wszystkie te działania wprowadzą niepotrzebny wzrost rozmiaru pliku, co jest sprzeczne z celem optymalizacji pod kątem publikacji online.

Pytanie 31

W tabeli samochody w bazie danych, pole kolor może przyjmować jedynie wartości zdefiniowane w słowniku lakier. Jaką kwerendę należy wykorzystać, aby ustanowić relację między tabelami samochody a lakier?

A. ALTER TABLE samochody ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
B. ALTER TABLE samochody ADD FOREIGN KEY kolor REFERENCES lakier;
C. ALTER TABLE samochody ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
D. ALTER TABLE samochody ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
Pierwsza z niepoprawnych odpowiedzi próbuje dodać klucz obcy do kolumny 'kolor', ale brakuje w niej określenia, którego atrybutu z tabeli 'lakier' używamy. Wartości 'kolor' muszą odnosić się do konkretnego identyfikatora z tabeli 'lakier', a tym identyfikatorem jest 'lakierId'. Bez tego precyzyjnego odniesienia, kwerenda nie będzie mogła zostać wykonana. Druga odpowiedź, mimo że poprawnie odnosi się do właściwego pola, używa błędnej składni. W kontekście SQL klucz obcy musi być zdefiniowany poprzez wskazanie kolumny, do której odnosi się klucz główny w innej tabeli, co w przypadku tej odpowiedzi jest pominięte przy użyciu zewnętrznej referencji do kolumny 'lakierId'. Trzecia odpowiedź jest błędna, ponieważ odnosi się do kolumny 'barwa', która nie istnieje w tabeli 'samochody', co sprawia, że kwerenda jest niepoprawna. Ostatecznie, czwarta odpowiedź, która próbuje użyć kolumny 'barwa' i odnosić się do kolumny 'kolor', jest niepoprawna, ponieważ również nie wskazuje na prawidłową kolumnę w tabeli 'lakier'. W związku z tym, wszystkie te odpowiedzi nie spełniają wymagań do prawidłowego zdefiniowania klucza obcego w bazie danych.

Pytanie 32

Na ilustracji pokazano tabelę z połączonymi komórkami. Jakie atrybuty scalania zastosowano, aby uzyskać ten efekt?

Ilustracja do pytania
A. colspan w drugim wierszu we wszystkich trzech komórkach oraz rowspan w trzecim wierszu ostatniej komórce
B. colspan w drugim wierszu i pierwszej komórce oraz rowspan w trzecim wierszu i czwartym wierszu
C. rowspan w drugim wierszu i pierwszej komórce oraz colspan w trzecim wierszu, trzeciej komórce
D. colspan w drugim wierszu i pierwszej komórce oraz rowspan w trzecim wierszu, trzeciej komórce
Odpowiedź jest prawidłowa, ponieważ zastosowanie atrybutów colspan i rowspan w tabeli HTML pozwala na efektywne zarządzanie układem danych. Atrybut colspan w drugiej komórce pierwszego wiersza łączy dwie komórki poziomo, co jest użyteczne, gdy chcemy, aby nagłówki lub dane rozciągały się na kilka kolumn. W trzecim wierszu, atrybut rowspan w trzeciej komórce łączy trzy komórki pionowo, co może być przydatne, gdy mamy dane, które powinny być przedstawione obok siebie w kilku rzędach. Tego typu operacje scalania są powszechnie stosowane w projektowaniu stron internetowych, szczególnie w przypadku układów, które wymagają elastyczności i skalowalności. W praktyce, takie podejście pozwala na lepsze wykorzystanie przestrzeni ekranowej i ułatwia czytelność danych. Dobrą praktyką jest również stosowanie CSS do dodatkowego stylizowania takich tabel, co zwiększa ich atrakcyjność wizualną. Ważne jest, aby zrozumieć, że używanie colspan i rowspan wpływa na dostępność danych, dlatego należy je stosować świadomie i z uwzględnieniem użytkowników korzystających z technologii wspomagających.

Pytanie 33

Jaki znacznik HTML umożliwia dynamiczne generowanie grafiki na stronie bez konieczności dodawania dodatkowych plików?

A. <canvas>
B. <embed>
C. <img>
D. <object>
Znaczniki <object>, <embed> oraz <img> są używane do osadzania różnych typów mediów na stronach internetowych, jednak nie służą do dynamicznego generowania grafiki w taki sposób, jak <canvas>. Znak <object> jest przeznaczony do osadzania obiektów multimedialnych, takich jak pliki PDF czy aplikacje Java, ale wymaga, aby te obiekty były dostępne jako zewnętrzne pliki. Podobnie, <embed> umożliwia osadzanie mediów, ale jest bardziej ograniczone w zakresie kontroli nad wyświetlaną grafiką i interaktywnością. Z kolei <img> ma wyłącznie charakter statyczny; służy do wyświetlania obrazów, które są z góry zdefiniowane i nie mogą być modyfikowane w czasie rzeczywistym. Wybór tych znaczników może prowadzić do błędnych założeń, że można osiągnąć podobną funkcjonalność jak w przypadku <canvas>. Użytkownicy często myślą, że wystarczy osadzić plik graficzny, aby uzyskać dynamiczne efekty, jednak tego typu podejście nie pozwala na interakcję, animację czy tworzenie złożonych wizualizacji. Ważne jest, aby zrozumieć, że <canvas> jest przeznaczony do tworzenia grafik w locie, co wymaga umiejętności programowania w JavaScript, a inne znaczniki nie oferują takich możliwości. Dlatego tak istotne jest dobieranie odpowiednich narzędzi do zadań, które chcemy zrealizować na stronie internetowej.

Pytanie 34

W CSS zdefiniowano styl dla pola edycji. Taki obszar będzie miał jasnozielone tło

input:focus { background-color: LightGreen; }
A. gdy zostanie na niego najechane kursorem myszy bez kliknięcia
B. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie
C. po kliknięciu myszą w celu wprowadzenia tekstu
D. w każdej sytuacji
Pozostałe odpowiedzi opierają się na błędnym zrozumieniu zastosowania pseudoklas w języku CSS. Pseudoklasa :first-of-type, która mogłaby sugerować pierwsze wystąpienie znacznika w dokumencie, nie odnosi się do stanu aktywności pola edycyjnego. Stylizowanie pierwszego wystąpienia nie ma związku z interakcją użytkownika, a jedynie z pozycją elementu w strukturze dokumentu HTML. Kolejny błąd pojawia się przy założeniu, że zmiana koloru tła nastąpi gdy element zostanie wskazany kursorem myszy. W CSS taka interakcja jest obsługiwana przez pseudoklasę :hover, która stosuje się do elementów, nad którymi znajduje się wskaźnik myszy, ale nie obejmuje stanu aktywnego fokusu potrzebnego do edycji. Ostatnia błędna koncepcja dotyczy twierdzenia, że styl jest stosowany w każdym przypadku. To stwierdzenie ignoruje specyfikę selektorów CSS, które wymagają określonych warunków - w tym przypadku aktywnego fokusu elementu. Zrozumienie różnic między pseudoklasami :focus i :hover oraz znajomość ich zastosowań w projektowaniu interaktywnych interfejsów webowych jest kluczowe dla skutecznego stosowania CSS w praktyce. Poprawna wiedza na temat specyficznych zastosowań tych pseudoklas wpływa na jakość doświadczenia użytkownika i integrację funkcjonalności z estetyką projektu.

Pytanie 35

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

A. aside {float: left; }
B. nav { float: right; } section { float: right; }
C. nav { float: right; }
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 36

W SQL, aby dodać nowy wiersz do bazy danych, należy użyć polecenia

A. CREATE INTO
B. INSERT INTO
C. CREATE ROW
D. SELECT ROW
Polecenie 'INSERT INTO' jest kluczowym elementem języka SQL, służącym do dodawania nowych wierszy danych do istniejącej tabeli w bazie danych. Użycie tego polecenia wymaga podania nazwy tabeli, do której chcemy wstawić dane, oraz listy wartości, które mają być dodane. Na przykład, polecenie 'INSERT INTO klienci (imie, nazwisko) VALUES ('Jan', 'Kowalski');' dodaje nowego klienta o imieniu Jan i nazwisku Kowalski do tabeli 'klienci'. Zgodnie z dobrymi praktykami, zawsze warto również uwzględnić obsługę błędów, aby upewnić się, że operacje na danych są bezpieczne i nie powodują naruszeń integralności bazy. Warto również pamiętać, że do jednego polecenia INSERT można dodać wiele wierszy równocześnie, na przykład: 'INSERT INTO klienci (imie, nazwisko) VALUES ('Ewa', 'Nowak'), ('Anna', 'Zielona');'. Użycie 'INSERT INTO' jest fundamentalne w pracy z bazami danych i stanowi podstawę dla bardziej zaawansowanych operacji, takich jak transakcje czy manipulacje danymi w relacyjnych bazach danych.

Pytanie 37

Dla tablicy n-elementowej o nazwie t[n], algorytm, zapisany w formie kroków, ma za zadanie obliczenie sumy

Ilustracja do pytania
A. co drugiego elementu tablicy
B. n-elementów tablicy
C. sumy wszystkich elementów tablicy
D. sumy tych elementów tablicy, których wartości są nieparzyste
Błędne odpowiedzi, jakie podałeś, wynikają tak naprawdę z niezrozumienia algorytmu. Po pierwsze, suma wszystkich elementów tablicy wymagałaby przechodzenia przez każdy element bez przeskoków, więc musielibyśmy zwiększać indeks i o 1 w każdym kroku, a to odbiega od tego, co robi ten algorytm. Jakbyśmy chcieli sumować elementy nieparzyste, to musielibyśmy dodać warunek, który sprawdza, czy dany element jest parzysty, zanim go dodamy do wyniku. W ogóle nie ma takiego mechanizmu w tym algorytmie. Suma n-elementów tablicy jest błędna, bo algorytm pomija co drugi element, więc nie może być taką odpowiedzią. Typowe błędy, które się pojawiają w takich zadaniach, to niepełne rozumienie działania pętli i tego, jak aktualizowany jest indeks. Tego rodzaju myślenie może prowadzić do błędnych wniosków na temat tego, które elementy są brane pod uwagę. W praktyce ważne jest, żeby na spokojnie analizować, jak działają warunki iteracyjne i jakie mają konsekwencje dla przetwarzanych danych, bo to kluczowe przy projektowaniu algorytmów i ich wdrażaniu w różnych realnych sytuacjach, gdzie efektywność ma ogromne znaczenie.

Pytanie 38

Gdzie należy umieścić znacznik metajęzyka HTML?

A. w dolnej części witryny internetowej
B. w sekcji nagłówkowej witryny internetowej
C. pomiędzy znacznikami <body> ... </body>
D. pomiędzy znacznikami paragrafu
Umieszczanie znaczników metajęzyka HTML w niewłaściwych miejscach, takich jak stopka witryny czy sekcja <body>, może prowadzić do problemów z interpretacją dokumentu przez przeglądarki oraz wyszukiwarki. Sekcja <body> jest przeznaczona wyłącznie dla treści widocznej dla użytkowników, co oznacza, że wszelkie informacje dotyczące indeksowania czy metadanych powinny być w nagłówku. Umieszczanie znaczników metadanych w stopce nie tylko narusza konwencje HTML, ale także może sprawić, że nie będą one w ogóle przetwarzane przez wyszukiwarki, co ogranicza możliwości SEO witryny. Kolejnym błędem jest umieszczanie znaczników metadanych pomiędzy znacznikami paragrafu, co jest syntaktycznie niepoprawne oraz semantycznie nieuzasadnione. Takie działania mogą prowadzić do konfuzji zarówno dla programistów, jak i narzędzi analizujących strony internetowe. Właściwe umiejscowienie znaczników <meta> w sekcji nagłówkowej jest nie tylko standardem, ale też kluczowym elementem strategii tworzenia stron internetowych, które są przyjazne dla użytkowników i wyszukiwarek. Warto również zauważyć, że nieprzestrzeganie tych zasad może mieć negatywne skutki dla wydajności strony oraz jej pozycji w wynikach wyszukiwania.

Pytanie 39

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 sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000;
B. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000;
D. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000;
Dwie niepoprawne odpowiedzi pokazują, że są pewne nieporozumienia w kwestii SQL. W pierwszej z nich używasz operatora OR, co psuje całą logikę zapytania. To sprawia, że możesz dostać kontrahentów z drugiej grupy cenowej albo tych, co mają obrót powyżej 4000 zł, a nie tylko tych, którzy spełniają oba warunki jednocześnie. W analizie danych ważne jest, żeby warunki były precyzyjne, bo inaczej wyniki mogą być nieczytelne. W kolejnej odpowiedzi widzę, że próbujesz wydobywać dane z kolumny kontrahent, co jest niepoprawne, bo kolumna to nie tabela. Musisz mieć jasność co do struktury bazy danych, żeby pisać odpowiednie zapytania. A ostatnia odpowiedź nie zawiera warunku dla grupy cenowej, więc zwróci jakieś niepełne dane. Dobrym pomysłem jest też testować swoje zapytania na mniejszych zbiorach danych, niż wdrażać je od razu w produkcji, żeby uniknąć takich błędów.

Pytanie 40

Jak zdefiniować formatowanie tabeli w języku CSS, aby wyróżnić wiersz, na który aktualnie najeżdża kursor myszy, korzystając z innego koloru?

A. pseudoklasę :visited
B. pseudoelement ::marker
C. pseudoklasę :hover
D. pseudoelement ::first-line
Prawidłową odpowiedzią jest użycie pseudoklasy :hover, która jest standardowym rozwiązaniem w CSS do stylizacji elementów, gdy użytkownik na nie najedzie kursorem myszy. Pseudoklasa :hover pozwala na dynamiczną modyfikację wyglądu elementów, co jest szczególnie użyteczne w kontekście interaktywności stron internetowych. Na przykład, można zastosować tę pseudoklasę do wierszy tabeli, aby zmienić ich kolor tła na inny, co podnosi czytelność i estetykę interfejsu użytkownika. Implementacja może wyglądać następująco: table tr:hover { background-color: #f2f2f2; } - dzięki temu, gdy użytkownik najedzie myszką na wiersz tabeli, jego tło zmieni się na jasno szare, co zwraca uwagę na ten wiersz. Użycie :hover jest zgodne z dobrymi praktykami w projektowaniu UI, gdyż poprawia doświadczenia użytkownika oraz umożliwia intuicyjne korzystanie z interakcji na stronie. Pseudoklasa :hover wspiera również responsywność, ponieważ wpływa na sposób, w jaki użytkownicy wchodzą w interakcje z elementami, co jest kluczowe w nowoczesnym projektowaniu stron.