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: 23 lipca 2026 16:30
  • Data zakończenia: 23 lipca 2026 16:49

Egzamin zdany!

Wynik: 20/40 punktów (50,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

<script>
  var imiona = ["Ala", "Ola", "Ela", ""];
  tymczasowa=imiona.length;
</script>
Przedstawiony kod JavaScript powoduje przypisanie do zmiennej tymczasowa wartości:
A. 4
B. 1
C. 3
D. 9
Kod tworzy tablicę `imiona` i przypisuje do niej cztery elementy: trzy napisy z imionami oraz jeden pusty string. Następnie do zmiennej `tymczasowa` przypisywana jest wartość `imiona.length`. Kluczowe jest zrozumienie, co dokładnie oznacza właściwość `.length` w kontekście tablicy JavaScript.
Częsty błąd polega na myleniu `.length` tablicy z długością pojedynczego napisu. Niektórzy patrzą na pierwszy element "Ala" i kojarzą długość 3, inni sumują znaki w kilku elementach, jeszcze inni w ogóle ignorują pusty string, bo „nic tam nie ma”. To są naturalne skojarzenia, ale w tym przypadku zupełnie nietrafione. W przypadku obiektu typu Array, zgodnie ze specyfikacją ECMAScript, właściwość `length` odzwierciedla najwyższy użyty indeks plus jeden, czyli de facto liczbę pozycji w tablicy, a nie zawartość tych pozycji.
Pusty string `""` jest pełnoprawnym elementem tablicy, tak jak każdy inny. To, że ma długość tekstową 0, nie ma żadnego wpływu na długość tablicy. Tablica ma indeksy 0, 1, 2 i 3, więc `length` jest równe 4. Próby uzasadniania innych odpowiedzi zwykle wynikają z mieszania pojęć: długości tekstu, liczby niepustych elementów, albo jakiegoś intuicyjnego „liczenia tylko tych, co coś zawierają”. JavaScript tego nie robi automatycznie. Jeżeli chcielibyśmy policzyć tylko niepuste napisy, trzeba by użyć np. `imiona.filter(x => x !== "").length`.
Innym typowym nieporozumieniem jest traktowanie `.length` jak czegoś dynamicznie obliczanego na podstawie treści, a nie struktury. Tymczasem silnik języka przechowuje tę wartość jako właściwość, związaną z indeksem elementów, a nie z ich wartością. Dobra praktyka w programowaniu webowym to zawsze sprawdzać w dokumentacji, co dokładnie oznacza dana właściwość lub metoda dla konkretnego typu danych. Pozwala to unikać takich pułapek i pisać kod, który zachowuje się przewidywalnie, szczególnie gdy pracujemy z tablicami o mieszanej zawartości, w tym z pustymi stringami czy wartościami `null` i `undefined`.

Pytanie 2

Wskaż definicję metody, którą należy wstawić w miejscu kropek, aby na stronie WWW wyświetlił się tekst: Jan Kowalski

<p id="wynik"></p>
<script type="text/javascript">
    var osoba = { nazwisko: "Kowalski", imie: "Jan" };
    …
    document.getElementById("wynik").innerHTML = osoba.dane();
</script>

osoba.dane = function() {
    return this.imie+" "+this.nazwisko;
};                 A.

dane() = function() {
    return this.imie+" "+this.nazwisko;
};                 B.

osoba.dane = function() {
    return imie+" "+nazwisko;
};                 C.

dane() = function {
    this.imie+" "+this.nazwisko;
};                 D.
A. D.
B. B.
C. A.
D. C.
Fajnie, że wybrałeś dobrą odpowiedź! Metoda 'dane' jest powiązana z obiektem 'osoba', co pozwala ci używać słowa kluczowego 'this', żeby odwołać się do 'imię' i 'nazwisko'. To naprawdę ważna zasada w programowaniu obiektowym. 'This' to taki klucz, dzięki któremu możesz wskazać, z którego obiektu korzystasz w danej chwili. W tym przypadku odnosisz się do obiektu 'osoba'. Wyobraź sobie, że tworzysz aplikację i chcesz pokazać informacje o użytkowników, na przykład na stronie profilu. Dzięki metodzie 'dane', która jest częścią obiektu 'osoba', możesz łatwo wyświetlić imię i nazwisko. O to chodzi w programowaniu!

Pytanie 3

W trakcie walidacji dokumentu HTML5 napotkano komunikat o treści: "Error: Element head is missing a required instance of child element title". Co to oznacza w kontekście dokumentu?

A. element <title> nie jest konieczny.
B. element <title> nie został poprawnie zamknięty przez </title>.
C. nie zdefiniowano wymaganego atrybutu title w znaczniku <img>.
D. nie zdefiniowano elementu <title> w sekcji <head> dokumentu.
Wskazanie, że element <title> nie jest wymagany, jest niezgodne z obowiązującymi standardami HTML5, które jednoznacznie nakładają obowiązek jego obecności w sekcji <head>. Uzyskanie poprawnego HTML-a wymaga zrozumienia struktury dokumentu i obowiązkowych elementów, które muszą być zawarte. Twierdzenie, że element <title> nie został zamknięty przez </title>, sugeruje zamieszanie z pojęciem prawidłowego składania tagów. W przypadku HTML, błędy składniowe muszą być zawsze korygowane, jednak obecność elementu <title> jest kluczowa niezależnie od sposobu jego zamknięcia. Stwierdzenie, że nie zdefiniowano obowiązkowego atrybutu title w znaczniku <img> jest całkowicie mylące, ponieważ atrybut title w znaczniku <img> nie ma związku z tytułem strony i jego brak nie powoduje błędu w walidacji HTML. Zamiast tego, powinno się skupić na tym, że atrybut title w znaczniku <img> jest opcjonalny, ale jego zawartość może poprawić dostępność, co jest istotne w kontekście zgodności z WCAG. Dlatego kluczowe jest zrozumienie roli i funkcji poszczególnych elementów w HTML oraz unikanie mylnych interpretacji ich znaczenia.

Pytanie 4

Tabela Pacjenci zawiera kolumny: imie, nazwisko, wiek oraz lekarz_id. W celu stworzenia raportu z imionami i nazwiskami pacjentów, którzy mają mniej niż 18 lat i są zapisani do lekarza o id wynoszącym 6, należy zastosować kwerendę SQL

A. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6
B. SELECT imie, nazwisko WHERE wiek < 18 OR 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
Odpowiedź 'SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6' jest poprawna, ponieważ precyzyjnie określa, jakie dane mają zostać zwrócone. Kwerenda ta wykorzystuje klauzulę 'FROM', aby wskazać, z której tabeli mają zostać pobrane dane, oraz 'WHERE', aby nałożyć odpowiednie warunki. W tym przypadku chcemy uzyskać imiona i nazwiska pacjentów, którzy są poniżej 18 roku życia oraz zapisani do lekarza o identyfikatorze 6. Używanie operatora 'AND' jest kluczowe w tym kontekście, ponieważ tylko pacjenci spełniający obydwa warunki będą uwzględniani w wynikach. W praktyce, taka kwerenda jest niezwykle użyteczna w systemach medycznych, gdzie konieczne jest operowanie na danych demograficznych pacjentów oraz ich przypisania do lekarzy. Dobre praktyki w SQL wymagają jasności w określaniu warunków filtracji, co ta kwerenda osiąga, unikając niejednoznaczności, które mogłyby wyniknąć z użycia operatora 'OR'.

Pytanie 5

Aby wykonać kopię zapasową bazy danych MySQL, można posłużyć się:

A. agregacją danych
B. modyfikacją danych
C. eksportem bazy
D. importem bazy
Kopię zapasową bazy MySQL tworzy się przez eksport - zapis struktury tabel i danych do pliku (najczęściej .sql). Taki plik zawiera polecenia, które pozwalają później odtworzyć bazę w tym samym stanie, np. po awarii lub przy przenoszeniu na inny serwer. Eksport wykonasz w phpMyAdmin (zakładka Eksport) albo narzędziem mysqldump. Odwrotną operacją, przywracającą dane z pliku, jest import. Do zrobienia kopii zapasowej służy więc eksport bazy.

Pytanie 6

Konstrukcja w języku SQL ALTER TABLE USA... służy do

A. nadpisania istniejącej tabeli USA
B. stworzenia nowej tabeli USA
C. zmiany tabeli USA
D. usunięcia tabeli USA
Istnieje kilka mitów oraz powszechnych nieporozumień dotyczących polecenia ALTER TABLE, które mogą prowadzić do błędnych wniosków. Na przykład, usunięcie tabeli nie jest możliwe za pomocą ALTER TABLE, ponieważ do tego celu służy osobne polecenie DROP TABLE, które całkowicie eliminuje tabelę oraz wszystkie przechowywane w niej dane. Użytkownicy często mylą też modyfikację tabeli z jej nadpisywaniem, co jest błędne, ponieważ ALTER TABLE modyfikuje istniejącą strukturę tabeli, a nie ją zastępuje. Z kolei tworzenie nowej tabeli odbywa się za pomocą polecenia CREATE TABLE, co jest kompletnie odmiennym działaniem i nie ma związku z ALTER TABLE. Ważne jest, aby zrozumieć, że ALTER TABLE nie zmienia semantyki danych ani nie wpływa na istniejące rekordy w sposób destrukcyjny, chyba że podejmie się decyzję o usunięciu kolumn, co oczywiście wiąże się z utratą danych. Typowe błędy myślowe, które prowadzą do złych interpretacji, wynikają z niepełnego zrozumienia definicji dostępnych poleceń SQL oraz ich funkcji. W związku z tym, gruntowne opanowanie podstawowych poleceń SQL oraz ich kontekstu jest kluczowe do skutecznego zarządzania danymi w systemach bazodanowych.

Pytanie 7

Czym charakteryzuje się tablica asocjacyjna?

A. co najmniej dwoma wymiarami
B. indeksowaniem elementów zawsze od 0
C. indeksem (kluczem) w postaci łańcucha znaków
D. przechowywaniem innej tablicy w każdej komórce

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Tablica asocjacyjna różni się od zwykłej tym, że jej indeksem (kluczem) jest ŁAŃCUCH ZNAKÓW, a nie kolejny numer - np. <code><span class="code-text">$</span><span class="code-variable">osoba</span><span class="code-text">[</span><span class="code-string">'imie'</span><span class="code-text">]</span></code>. Dzięki temu do wartości sięga się po opisowej nazwie, co czyni kod czytelniejszym. Dlatego cechą tablicy asocjacyjnej jest klucz w postaci łańcucha znaków.

Pytanie 8

W SQL klauzula DISTINCT w poleceniu SELECT spowoduje, że otrzymane dane

A. zostaną uporządkowane
B. nie będą zawierały powtórzeń
C. będą spełniały dany warunek
D. będą zgrupowane według wskazanego pola
Niepoprawne odpowiedzi na to pytanie często wynikają z nieporozumienia dotyczącego podstawowych funkcji, jakimi dysponuje SQL. Klauzula DISTINCT ma jedynie na celu usunięcie duplikatów z wyników zapytania, co oznacza, że powinna być używana jedynie w kontekście potrzeby uzyskania unikalnych wartości. Odpowiedzi sugerujące, że DISTINCT grupuje dane, są mylące, ponieważ do grupowania danych służy klauzula GROUP BY, która nie tylko wydziela unikalne rekordy, ale także umożliwia ich agregację i analizę pod kątem określonych kryteriów. Twierdzenie, że DISTINCT sortuje dane, również jest błędne, ponieważ sortowanie osiąga się za pomocą klauzuli ORDER BY, która porządkuje wyniki według zadanych kryteriów. W przypadku stwierdzenia, że DISTINCT spełnia określony warunek, należy zrozumieć, że to nie jest jego funkcja; zamiast tego warunki w zapytaniach SQL wprowadza się za pomocą klauzuli WHERE. W praktyce, zrozumienie właściwego zastosowania DISTINCT jest kluczowe dla efektywnego korzystania z SQL, ponieważ niewłaściwe użycie może prowadzić do nieodpowiednich wyników i nieefektywności w zapytaniach. Dlatego ważne jest, aby pamiętać o różnicach między tymi klauzulami i umieć odpowiednio je stosować w kontekście zapytań, aby uzyskać pożądane rezultaty.

Pytanie 9

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

A. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
B. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
C. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
D. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
Odpowiedź, w której użyłeś znaczników <b> i <i> w odpowiednich miejscach, jest całkiem dobra. Znak <b> jest świetny do pogrubiania tekstu, co przydaje się, gdy chcesz podkreślić coś ważnego. Natomiast <i> pozwala na pochylanie tekstu, co dodaje mu charakteru i może sugerować cytaty czy tytuły. Co ciekawe, znacznik <sup> stosujemy, gdy chcemy pokazać górny indeks, np. przy potęgach czy jednostkach miar. Przykład takiego użycia byłby taki: <b>Waga</b> <i>w kilogramach</i> wynosi <sup>2</sup> dla dwóch jednostek. Jak widać, stosowanie HTML w odpowiedni sposób pozwala robić czytelne i estetyczne prezentacje, co jest zgodne z dobrymi praktykami w web designie oraz standardami W3C. Warto też pamiętać, że dobrze dobrane znaczniki mają znaczenie nie tylko wizualne, ale także pomagają w indeksowaniu treści przez wyszukiwarki, co z kolei wpływa na SEO.

Pytanie 10

W SQL instrukcja INSERT INTO

A. wprowadza nową tabelę.
B. dodaje kolumny do istniejącej tabeli.
C. modyfikuje rekordy przypisaną wartością.
D. wprowadza dane do tabeli.
Odpowiedź 'wprowadza dane do tabeli' jest poprawna, ponieważ polecenie INSERT INTO w języku SQL służy dokładnie do tego celu - do dodawania nowych rekordów (wierszy) do istniejącej tabeli w bazie danych. W praktyce, polecenie to pozwala na wprowadzenie danych zgodnych z określoną strukturą tabeli, co oznacza, że musimy dostarczyć wartości dla odpowiednich pól. Przykład użycia polecenia INSERT INTO: 'INSERT INTO pracownicy (imie, nazwisko, wiek) VALUES ('Jan', 'Kowalski', 30);' W tym przypadku, dodawany jest nowy rekord do tabeli 'pracownicy', wskazując konkretne wartości dla kolumn 'imie', 'nazwisko' oraz 'wiek'. Zgodnie z dobrą praktyką, przed wprowadzeniem danych do tabeli warto upewnić się, że są one zgodne z definicją kolumn, aby uniknąć błędów w czasie wykonywania polecenia. Ponadto, często zaleca się stosowanie transakcji, aby mieć możliwość wycofania wprowadzonych zmian w przypadku wystąpienia błędów. INSERT INTO jest fundamentalną częścią operacji CRUD (Create, Read, Update, Delete), które są podstawą zarządzania danymi w bazach danych, a jego właściwe zrozumienie jest kluczowe dla każdego, kto pracuje z SQL.

Pytanie 11

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. aside {float: left; }
C. nav { float: left; } aside { float: left; }
D. nav { float: right; }
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 12

W tabeli produkt znajdują się przedmioty wyprodukowane po roku 2000, z kolumnami nazwa i rok_produkcji. Klauzula SQL pokaże listę przedmiotów wyprodukowanych

SELECT * FROM `produkt` WHERE SUBSTR(rok_produkcji,3,2)=17;
A. po roku 2017
B. przed rokiem 2017
C. w roku 2017
D. w latach innych niż 2017

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Wybór odpowiedzi "w roku 2017" jest prawidłowy, ponieważ zapytanie SQL stosuje funkcję SUBSTR do wydobycia części roku produkcji. Funkcja ta zaczyna od trzeciego znaku w łańcuchu reprezentującym rok produkcji i zwraca dwa znaki, co w przypadku roku 2017 daje nam '17'. W związku z tym zapytanie wyświetli jedynie te przedmioty, których rok produkcji kończy się na '17', co obejmuje rok 2017. Zastosowanie funkcji SUBSTR jest częstą praktyką w SQL, gdy chcemy analizować lub filtrować dane tekstowe według określonych wzorców. Na przykład, w przypadku bazy danych produktów, możemy wykorzystać tę metodę do kategoryzowania towarów według roczników lub do analizy sprzedaży w danym roku. Dobrą praktyką jest także zapewnienie, że dane w kolumnie rok_produkcji są przechowywane w jednolitym formacie, co ułatwia ich przetwarzanie i analizę.

Pytanie 13

W przedstawionej definicji typu wyliczeniowego w języku C++ enumerator CZWARTEK będzie miał wartość równą

Ilustracja do pytania
A. liczbie 4
B. napisowi 'CZWARTEK'
C. liczbie 1
D. napisowi "CZWARTEK"
W języku C++ typ wyliczeniowy (enum) pozwala na definiowanie grupy nazwanych stałych całkowitych. W przedstawionej definicji enum dni {PONIEDZIAŁEK = 1, WTOREK, ŚRODA, CZWARTEK, PIĄTEK, SOBOTA, NIEDZIELA}; inicjalizacja PONIEDZIAŁEK na 1 powoduje, że kolejne wyliczane wartości są automatycznie zwiększane o 1. Oznacza to, że wartość dla WTOREK wynosi 2, ŚRODA to 3, a CZWARTEK automatycznie staje się równy 4. Takie podejście jest powszechnie stosowane w programowaniu do reprezentowania dyskretnych zestawów wartości, co ułatwia interpretację kodu i minimalizuje ryzyko błędów. W praktyce typy wyliczeniowe są używane do przechowywania dni tygodnia, stanów maszyn oraz innych uporządkowanych kolekcji. Są zgodne ze standardem C++ i odgrywają istotną rolę w tworzeniu czytelnego i efektywnego kodu. Ich zaletą jest możliwość łatwej manipulacji wartościami oraz zwiększenie czytelności kodu dzięki użyciu przyjaznych nazw zamiast surowych wartości liczbowych.

Pytanie 14

Zapis CSS

margin: auto;
wskazuje, że marginesy są
A. stałe dla konkretnej przeglądarki, niezależnie od rozmiaru jej okna
B. równe domyślnym wartościom marginesów elementu, do którego są przypisane
C. obliczane przez przeglądarkę w taki sposób, aby element został wyśrodkowany poziomo
D. dziedziczone z elementu nadrzędnego dla danego obiektu
Wybór odpowiedzi, że marginesy są odziedziczone po elemencie rodzica, jest niepoprawny, ponieważ w CSS marginesy nie są dziedziczone tak jak inne właściwości, takie jak kolor tekstu czy czcionka. Marginesy są zazwyczaj stosowane jako zewnętrzna przestrzeń wokół elementów, a ich wartości są określane niezależnie od elementów rodzicielskich. Wartości marginesów są zdefiniowane dla danego elementu, a nie dziedziczone, co oznacza, że każde wystąpienie marginesu jest osobno specyficzne dla swojego elementu. Ponadto, stwierdzenie, że marginesy są stałe dla danej przeglądarki, niezależnie od rozmiaru jej okna, również jest błędne. CSS pozwala na elastyczne dopasowywanie marginesów i innych właściwości w zależności od układu strony i rozmiaru okna przeglądarki. Z kolei twierdzenie, że marginesy są równe domyślnym wartościom marginesów elementu, jest mylące, ponieważ domyślne wartości mogą różnić się w zależności od przeglądarki, a także są często nadpisywane przez style CSS. Typowym błędem myślowym jest zakładanie, że wszystkie właściwości CSS są dziedziczne, co prowadzi do nieporozumień w implementacji i projektowaniu układów stron. Warto zapoznać się z dokumentacją i standardami CSS, aby lepiej zrozumieć, jak działa model pudełkowy oraz właściwości marginesów.

Pytanie 15

Którego polecenia użyć w PHP, aby poprawnie ZAKOŃCZYĆ połączenie z bazą MySQL?

A.
exit
B.
die
C.
mysql_exit
D.
mysqli_close
Połączenie z bazą MySQL otwierasz w PHP przez mysqli_connect(), a gdy skończysz na nim pracować, zamykasz je funkcją mysqli_close($polaczenie). Zamknięcie zwalnia zasoby serwera i uchwyt połączenia, co jest dobrą praktyką zwłaszcza w długo działających skryptach (choć PHP i tak zamyka połączenie automatycznie na końcu wykonania). Typowy schemat to: połącz się, wyślij zapytania, odbierz wyniki, a na końcu mysqli_close($polaczenie);. Zapamiętaj: skoro połączenie otwiera mysqli_connect, to symetrycznie zamyka je mysqli_close.

Pytanie 16

Który z podanych formatów pozwala na zapis zarówno dźwięku, jak i obrazu?

A. WAV
B. PNG
C. MP4
D. MP3
W przypadku formatów MP3, PNG i WAV, każdy z nich jest zaprojektowany do przechowywania jedynie jednego typu danych, co wyklucza ich zdolność do jednoczesnego zapisu dźwięku i obrazu. MP3 to format kompresji dźwięku opracowany głównie do przechowywania muzyki i innych nagrań audio. Choć jest szeroko stosowany i oferuje wysoką jakość dźwięku przy niewielkim rozmiarze pliku, nie ma możliwości zapisu danych wizualnych. Z kolei PNG jest formatem graficznym, który obsługuje przechowywanie obrazów rastrowych, oferując przezroczystość i bezstratną kompresję, ale nie jest przeznaczony do przechowywania dźwięku. Format WAV, z drugiej strony, jest standardem dla przechowywania dźwięku w postaci nieskompresowanej, co zapewnia wysoką jakość audio, ale również nie wspiera zapisu wideo. W związku z tym, wszystkie te formaty mają swoje specyficzne zastosowania, ale żaden z nich nie jest w stanie zrealizować funkcji zapisu zarówno dźwięku, jak i obrazu, co czyni MP4 jedynym odpowiednim wyborem w tym kontekście.

Pytanie 17

W którym z poniższych przykładów walidacja fragmentu kodu CSS zakończy się sukcesem?

A. <p style="font-style:bold;">
B. <p style="font-size:bold;">
C. p { text-size:bold; }
D. p { font-weight:bold; }
Odpowiedź p { font-weight:bold; } jest poprawna, ponieważ jest zgodna z obowiązującą składnią CSS. W tym przypadku użyto selektora typu, który odnosi się do wszystkich elementów <p> w dokumencie HTML, a właściwość font-weight umożliwia ustawienie grubości czcionki. Wartością 'bold' informujemy przeglądarkę, aby wyświetliła tekst w pogrubionej formie, co jest częstą praktyką w stylizacji tekstu. Stosowanie selektorów typu w CSS pozwala na efektywne zarządzanie stylami w całym dokumencie, zatem jest to zgodne z najlepszymi praktykami projektowania stron internetowych. Przykładowo, w celu nadania pogrubienia wszystkim nagłówkom w dokumencie, można by użyć: h1, h2, h3 { font-weight: bold; }. Zastosowanie takiej reguły pozwala na łatwe i szybkie wprowadzenie zmian w stylu dokumentu, co jest kluczowe w kontekście responsywnego projektowania i modernizacji stron. Dobre praktyki wskazują, aby unikać inline styles (stylów wewnętrznych) na rzecz zewnętrznych arkuszy stylów, co poprawia przejrzystość i utrzymanie kodu.

Pytanie 18

W skrypcie napisanym w języku PHP należy przeprowadzić operacje, gdy spełniony jest warunek, że adresy są parzystymi numerami na ulicach: Bratkowej oraz Nasturcjowej. Jakie wyrażenie logiczne to określa?

A. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer / 2 == 0
B. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer % 2 == 0
C. ($ulica == "Bratkowa" || $ulica == "Nasturcjowa") && $numer / 2 == 0
D. $ulica == "Bratkowa" && $ulica == "Nasturcjowa" && $numer % 2 == 0
Pojęcia zastosowane w odpowiedziach, które nie są poprawne, zawierają błędne założenia dotyczące użycia operatorów logicznych i arytmetycznych. W przypadku pierwszej odpowiedzi, użycie operatora && (i) do sprawdzania, czy zmienna $ulica jest jednocześnie równa "Bratkowa" i "Nasturcjowa" jest technicznie niemożliwe, ponieważ zmienna nie może przyjąć dwóch różnych wartości jednocześnie. Druga odpowiedź, która używa operatora / (dzielenie) w kontekście sprawdzania parzystości, wprowadza w błąd; reszta z dzielenia przez 2 jest właściwym sposobem sprawdzania parzystości, a nie dzielenie, które może prowadzić do nieprawidłowego wyniku - liczba będzie parzysta tylko wtedy, gdy reszta z dzielenia wynosi zero. W czwartej odpowiedzi, użycie operatora / również nie jest odpowiednie. Kluczowym błędem, który można zauważyć, jest nieprawidłowe myślenie o logice warunkowej i operatorach matematycznych. W praktyce, stosowanie reszty z dzielenia jako metody określenia parzystości jest powszechną praktyką w wielu językach programowania, w tym PHP. Dlatego konieczne jest zrozumienie, jak poprawnie formułować warunki logiczne oraz jakich operatorów używać, aby osiągnąć zamierzony efekt.

Pytanie 19

Którym znacznikiem wstawić listę NUMEROWANĄ (uporządkowaną)?

A.
<ol>
B.
<li>
C.
<ul>
D.
<dl>
Listę numerowaną (uporządkowaną) tworzy <ol> (ordered list), a każdą pozycję wpisujesz w <li>: <ol><li>Pierwszy</li><li>Drugi</li></ol> wyświetli kolejne punkty z numerami 1, 2... Numerację można zmienić atrybutem type lub CSS-em list-style-type. Zapamiętaj: „ol” = ordered (uporządkowana), „ul” = unordered (punktowana).

Pytanie 20

Czym jest DBMS?

A. systemem zarządzania bazą danych
B. kaskadowym arkuszem stylów do opisu wyglądu strony
C. strukturalnym językiem zapytań do bazy danych
D. obiektowym językiem programowania do tworzenia stron
DBMS (Database Management System) to system zarządzania bazą danych - oprogramowanie, które przechowuje dane, udostępnia je wielu użytkownikom, kontroluje dostęp i wykonuje zapytania (np. SQL). Przykłady to MySQL, MariaDB, PostgreSQL czy MS SQL Server. Dlatego DBMS to system zarządzania bazą danych.

Pytanie 21

Który z poniższych kodów stanowi alternatywę dla kodu umieszczonego w ramce?

Ilustracja do pytania
A. <?php
for($x=2;$x<=54;$x+=2){echo $x." ";}
?>
B. <?php
for($x=2;$x<=56;$x+=2){echo $x." ";}
?>
C. <?php
for($x=1;$x<=55;$x++){echo $x." ";}
?>
D. <?php
for($x=1;$x<=55;$x+=1){echo $x." ";}
?>
W wielu odpowiedziach widać, że nie do końca rozumiesz, jak działają pętle i warunki w PHP. Kod w ramce przyzwoicie wypisuje liczby parzyste od 2 do 54, ale pomija nieparzyste tylko dzięki warunkowi if i continue. Jak masz niepoprawne odpowiedzi, to pojawia się kilka problemów. Na przykład, jak pętla startuje od x=1 i zwiększa x o 1, to wszystkie liczby się drukują, a to nie jest to, co chcesz uzyskać. Zmiana kroku na zwiększanie x o 2 byłaby dobra, ale możesz też mieć za szeroki lub zbyt wąski zakres, tak jak w przypadku, gdy pętla kończy się na 56 zamiast 54. Żeby kod był poprawny, musisz zrozumieć, że każda iteracja musi spełniać konkretny warunek, który rozwiązuje problem. Często mylimy się, myśląc, że drobne zmiany w kodzie, jak zmiana zakresu czy kroku, same z siebie załatwią sprawę. Ważne, żeby przemyśleć, jak zaplanować strukturę pętli i warunków, żeby wszystko działało tak, jak powinno i wykorzystanie zasobów było efektywne.

Pytanie 22

W języku JavaScript, aby zmienić wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById, należy zastosować

A. pole innerHTML
B. metodę getAttribute
C. pole attribute i podać nazwę atrybutu
D. metodę setAttribute
Wybór innych metod lub pól do zmiany wartości atrybutów w elementach HTML wskazuje na pewne nieporozumienia dotyczące sposobu działania DOM w JavaScript. Metoda getAttribute służy do odczytywania wartości atrybutu, a nie do jego modyfikacji. Użytkownik może mylnie sądzić, że wystarczy odczytać wartość atrybutu, aby następnie ją zmienić, co jest błędne. Podobnie, pole innerHTML jest używane do manipulacji zawartością wewnętrzną elementu, a nie bezpośrednio do zmiany atrybutów. Umożliwia to wstawienie lub zmianę HTML w obrębie elementu, ale nie wpływa na atrybuty, co może prowadzić do niezamierzonych efektów, takich jak utrata istniejących atrybutów. W przypadku, gdy ktoś zdecyduje się użyć pola attribute, wprowadza zamieszanie, ponieważ nie istnieje takie pole w standardowym obiekcie DOM. Dlatego kluczowe jest zrozumienie różnicy pomiędzy odczytem a zapisem atrybutów, co jest fundamentalne dla efektywnego programowania w JavaScript. Aby uniknąć typowych błędów, programiści powinni skupić się na wykorzystaniu właściwych metod i narzędzi, co zapewni prawidłowe zarządzanie atrybutami w dokumentach HTML.

Pytanie 23

Który atrybut kolumny zapewnia automatyczne nadawanie kolejnych, unikalnych wartości (np. dla klucza głównego)?

A.
NOT NULL
B.
DEFAULT
C.
UNIQUE
D.
AUTO_INCREMENT
Atrybut AUTO_INCREMENT (w MySQL) sprawia, że przy dodaniu nowego wiersza baza sama wstawia do kolumny kolejną, większą o jeden liczbę. Stosuje się go najczęściej dla numerycznego klucza głównego (id), by nie trzeba było ręcznie pilnować unikalności identyfikatorów. Dlatego automatyczne nadawanie kolejnych wartości zapewnia AUTO_INCREMENT.

Pytanie 24

W CSS zapis w postaci

 h1::first-letter {color: red;} 

spowoduje, że kolor czerwony zostanie zastosowany do

A. pierwszej litery nagłówka w drugim stopniu
B. pierwszej litery nagłówka w pierwszym stopniu
C. tekstu nagłówka w pierwszym stopniu
D. pierwszej linii akapitu
Zapis <span>h1::first-letter {color: red;} </span> jest w porządku, bo korzysta z pseudoelementu :first-letter, który działa na pierwszą literkę w nagłówku h1. To całkiem fajne, bo możemy w ten sposób stylizować tę pierwszą literę i nadać nagłówkom ciekawszy wygląd. Na przykład, jeśli mamy nagłówek h1 z napisem 'Witaj świecie', to dzięki temu kodowi, litera 'W' zrobi się czerwona. W CSS warto ogarnąć, że :first-letter działa tylko na bloki, takie jak nagłówki czy akapity, więc warto to mieć na uwadze, gdy coś stylizujemy. Używanie pseudoelementów to dobre podejście do tworzenia ładnych i funkcjonalnych interfejsów, a przy okazji daje nam większą kontrolę nad tym, jak wyglądają nasze elementy.

Pytanie 25

Które stwierdzenie dotyczące klucza głównego (podstawowego) jest prawdziwe?

A. składa się tylko z jednego pola
B. jest unikalny w obrębie tabeli
C. dla danych osobowych może to być pole nazwisko
D. może przyjmować wyłącznie wartości liczbowe
Pozostałe zdania są fałszywe. Klucz główny może być ZŁOŻONY (z kilku pól), nie tylko z jednego. Nie musi być liczbą - bywa też tekstem. Nie powinien być budowany z danych zmiennych jak nazwisko (mogą się powtarzać i zmieniać). Pewną cechą jest unikalność w obrębie tabeli.

Pytanie 26

W języku PHP uzyskano wyniki kwerend z bazy danych przy użyciu polecenia mysql_query. Aby wydobyć z otrzymanej kwerendy pojedynczy wiersz danych, konieczne jest użycie polecenia

A. mysql_fetch_lengths
B. mysql_fetch_row
C. mysql_list_fields
D. mysql_field_len
Odpowiedź mysql_fetch_row jest poprawna, ponieważ to funkcja, która pozwala na pobranie pojedynczego wiersza danych z zasobu zwróconego przez mysql_query. Zwraca ona tablicę, która zawiera wartości poszczególnych pól w wierszu, co umożliwia ich dalsze przetwarzanie. Dzięki tej funkcji programista może łatwo iterować przez wyniki kwerendy, co jest kluczowe w przypadku przetwarzania danych z baz danych. Na przykład, po wykonaniu kwerendy SELECT, można użyć pętli while, aby pobierać kolejne wiersze danych i je wyświetlać. Dobrą praktyką jest również sprawdzenie, czy zasób kwerendy jest poprawny przed użyciem tej funkcji, co pozwoli uniknąć błędów w czasie wykonywania skryptu. Warto dodać, że w nowszych wersjach PHP zaleca się korzystanie z rozszerzenia mysqli lub PDO, które oferują bardziej zaawansowane możliwości i większe bezpieczeństwo przy pracy z bazami danych.

Pytanie 27

W języku JavaScript, funkcja Math.pow() wykorzystuje się do obliczenia

A. potęgi liczby
B. wartości bezwzględnej liczby
C. pierwiastka kwadratowego liczby
D. wartości przybliżonej liczby
Funkcja Math.pow() w JavaScript służy do obliczania potęgi liczby, co oznacza, że można jej użyć do podnoszenia liczby do wybranej potęgi. Poprawna składnia tej funkcji to Math.pow(base, exponent), gdzie 'base' to liczba, którą chcemy podnieść do potęgi, a 'exponent' to wykładnik. Na przykład, aby obliczyć 2 do potęgi 3, używamy Math.pow(2, 3), co zwraca 8. Ta funkcja jest niezwykle przydatna w różnych kontekstach programistycznych, takich jak obliczenia matematyczne, grafika komputerowa, czy modelowanie rzeczywistych zjawisk. W praktyce, korzystając z Math.pow(), można zrealizować wiele bardziej zaawansowanych obliczeń, takich jak obliczanie wartości funkcji wygładzających, symulacji fizycznych czy operacji na danych statystycznych. Kluczowe jest, aby pamiętać, że w JavaScript dostępne są również operator potęgowania (**), wprowadzony w ECMAScript 2016, co czyni kod bardziej czytelnym, na przykład 2 ** 3 również zwraca 8. Warto być świadomym tych narzędzi, aby optymalizować i upraszczać kod w swoich projektach.

Pytanie 28

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. id_uczestnika
B. nazwa
C. rok
D. wynik
Poprawnie wskazano, że dane w raporcie zostały pogrupowane według pola „rok”. Widać to po tym, że poszczególne rekordy są zebrane w bloki oznaczone nagłówkami 2009, 2010, 2011, 2012, 2020, a dopiero pod każdym z tych lat pojawiają się konkretne konkursy, id_uczestnika i wynik. To jest właśnie klasyczny przykład grupowania danych w raporcie po jednym z pól tabeli – w tym przypadku po kolumnie roku.
W praktyce, czy to w SQL, czy w kreatorach raportów (np. w MS Access, LibreOffice Base, Crystal Reports, narzędziach BI), gdy projektujemy raport, często definiujemy tzw. sekcję grupującą (group header) opartą na wybranym polu. Tutaj takim polem jest rok, więc każda zmiana wartości roku powoduje rozpoczęcie nowej grupy i wyświetlenie nagłówka z tą wartością. To poprawia czytelność i pozwala łatwo analizować dane w podziale na lata.
Moim zdaniem warto zapamiętać, że grupowanie po dacie lub roku to jedna z najczęściej stosowanych praktyk raportowych: używa się tego do raportów sprzedaży w latach, statystyk odwiedzin strony WWW, wyników egzaminów itd. W SQL można by to od strony danych poprzedzić np. zapytaniem sortującym: SELECT * FROM konkursy ORDER BY rok, nazwa; a samo faktyczne grupowanie wizualne realizuje już mechanizm raportów. Dobrą praktyką jest też, żeby pole, po którym grupujemy, było najpierw użyte do sortowania – inaczej grupy mogą się „rozsypać” i raport stanie się nieczytelny.

Pytanie 29

Klient wpisał adres nieistniejącego zasobu na serwerze. Próba nawiązania połączenia spowoduje wystąpienie błędu

A. 503
B. 500
C. 400
D. 404
Odpowiedź 404 jest prawidłowa, ponieważ oznacza, że serwer nie może znaleźć żądanego zasobu. Kiedy użytkownik wprowadza nieistniejący adres URL, serwer HTTP zwraca ten kod błędu jako odpowiedź informującą, że dany zasób nie został znaleziony. Jest to standardowy sposób na komunikowanie się z klientami, że ich prośba nie mogła zostać zrealizowana z powodu braku zasobu. W praktyce, kod 404 jest powszechnie używany do zarządzania sytuacjami, w których użytkownik wpisuje niewłaściwy adres lub gdy zasób został usunięty. Dobrą praktyką jest tworzenie własnych stron błędu 404, które informują użytkowników o tym, co mogą zrobić dalej, na przykład sugerując im powrót na stronę główną lub wyszukiwanie w serwisie. Z perspektywy bezpieczeństwa, warto również unikać ujawniania szczegółów dotyczących struktury serwera w odpowiedziach 404, aby zminimalizować potencjalne ryzyko ataków.

Pytanie 30

W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. zastosować pętlę z poleceniem mysqli_fetch_row
B. wyświetlić zmienną $db
C. użyć polecenia mysql_fetch
D. zaindeksować zmienną tab, tab[0] to pierwsze imię
Odpowiedź, która zakłada zastosowanie pętli z poleceniem mysqli_fetch_row, jest poprawna, ponieważ po wykonaniu zapytania do bazy danych za pomocą mysqli_query, otrzymujemy wynik w postaci zestawu rekordów, który musimy przetworzyć. Funkcja mysqli_fetch_row pozwala na iteracyjne pobieranie wierszy z tego zestawu, co jest niezbędne do wyświetlenia wszystkich imion osób, które spełniają warunek wieku poniżej 18 lat. Przykładowy kod do iteracji może wyglądać tak: while($wiersz = mysqli_fetch_row($tab)) { echo $wiersz[0]; } W ten sposób każda iteracja w pętli wyświetli pierwszą kolumnę (imie) z każdego wiersza rezultatu. Tego typu podejście jest zgodne z dobrymi praktykami, ponieważ pozwala na efektywne zarządzanie pamięcią i ogranicza ryzyko przeciążenia systemu, szczególnie w przypadku dużych zbiorów danych. Ważne jest, aby pamiętać, że połączenie z bazą danych i zapytania powinny być zawsze odpowiednio zamykane i zabezpieczane przed atakami, co jest istotne w kontekście bezpieczeństwa aplikacji.

Pytanie 31

Jaki jest domyślny port serwera HTTP?

A. 21
B. 8080
C. 80
D. 443
Pozostałe numery to porty innych usług lub zastosowań. 8080 bywa stosowany jako alternatywny port HTTP - na przykład przez serwery aplikacyjne i środowiska deweloperskie - ale nie jest domyślny dla zwykłego HTTP. 443 to domyślny port HTTPS, czyli HTTP zabezpieczonego szyfrowaniem TLS. 21 obsługuje protokół FTP, służący do przesyłania plików. Standardowy, domyślny port HTTP to 80, dlatego ta odpowiedź jest poprawna.

Pytanie 32

W języku JavaScript zapisano poniższy fragment kodu:

var x=10;
x++;
console.log(x);
Po uruchomieniu skryptu zmienna x
A. będzie miała wartość 11 i zostanie wyświetlona w konsoli przeglądarki internetowej
B. będzie miała wartość 10 i zostanie wyświetlona w głównym oknie przeglądarki internetowej
C. będzie miała wartość 11 i zostanie wyświetlona w oknie popup
D. będzie miała wartość 10 i zostanie pokazana w dokumencie HTML
W analizowanym fragmencie kodu JavaScript mamy do czynienia z prostą operacją inkrementacji zmiennej x, która początkowo wynosi 10. Operator ++ zwiększa wartość zmiennej o 1, co skutkuje wartością 11. Wartością, która zostanie wyświetlona, jest wartość zmiennej x, która po inkrementacji wynosi 11. Jednak ważnym aspektem jest to, że w kodzie jest błąd składniowy w wywołaniu funkcji console.log. Poprawna składnia powinna wyglądać tak: console.log(x); zamiast console.logx);. W obecnej formie kodu, mimo inkrementacji zmiennej x do wartości 11, pojawi się błąd wykonania, a wartość nie zostanie wypisana. Gdyby błąd został naprawiony, wynik 11 zostałby wyświetlony w konsoli przeglądarki, co jest standardowym miejscem do monitorowania wyjścia w aplikacjach JavaScript. To zachowanie jest zgodne ze specyfikacjami ECMAScript, które definiują zasady działania operatorów oraz metod konsoli.

Pytanie 33

Wskaż prawdziwe stwierdzenie o poleceniu:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. do tabeli nie można wpisywać ulic z polskimi znakami
B. rekordem tabeli nie może być „3 MAJA”
C. klauzula IF NOT EXISTS jest opcjonalna i zapobiega błędowi, gdy tabela już istnieje
D. klauzula CHARACTER SET utf8 jest obowiązkowa
Klauzula IF NOT EXISTS jest OPCJONALNA i zabezpiecza CREATE TABLE - jeśli tabela o danej nazwie już istnieje, polecenie nie zgłosi błędu i nie utworzy jej ponownie. Dlatego prawdą jest, że IF NOT EXISTS jest opcjonalna i zapobiega błędowi przy istniejącej tabeli.

Pytanie 34

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

A. liniowym
B. o skończonej odpowiedzi impulsowej
C. przyczynowym
D. niezmiennym w czasie

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Filtr liniowy to taki, który w procesie przetwarzania sygnału spełnia zasadę superpozycji. Oznacza to, że wynik działania filtru na sumie sygnałów wejściowych jest równy sumie wyników działania filtru na poszczególne sygnały. W praktyce, filtry liniowe są powszechnie stosowane w różnych zastosowaniach, takich jak audio, telekomunikacja czy przetwarzanie obrazu, co wynika z ich zdolności do efektywnej analizy sygnałów. Przykładowo, w systemach audio, filtry liniowe mogą być używane do eliminacji szumów czy wzmacniania określonych częstotliwości, co pozwala na uzyskanie lepszej jakości dźwięku. Zgodnie z dobrą praktyką inżynieryjną, projektowanie filtrów liniowych opiera się na zrozumieniu ich charakterystyki częstotliwościowej oraz odpowiedzi impulsowej, co jest kluczowe dla osiągnięcia zamierzonych efektów w przetwarzaniu sygnałów.

Pytanie 35

W systemach baz danych, aby przedstawić dane spełniające określone kryteria, należy stworzyć

A. raport
B. formularz
C. makropolecenie
D. relację
Raport w bazach danych jest narzędziem, które pozwala na prezentację danych w formacie dostosowanym do konkretnych potrzeb użytkownika. Jego głównym celem jest przedstawienie informacji, które spełniają określone kryteria, co jest niezwykle istotne w kontekście analizy danych. Raporty mogą być generowane na podstawie różnych źródeł danych, a ich struktura może obejmować tabele, wykresy i podsumowania. W praktyce, raporty są często używane w procesach decyzyjnych, na przykład w raportowaniu wyników finansowych, analizie sprzedaży czy monitorowaniu wydajności operacyjnej. Wiele systemów zarządzania bazami danych (DBMS) oferuje funkcje do tworzenia raportów, co jest zgodne z najlepszymi praktykami w dziedzinie analizy i wizualizacji danych. Dobrze zbudowany raport nie tylko dostarcza kluczowych informacji, ale także umożliwia efektywniejsze podejmowanie decyzji poprzez dostarczenie kontekstu i analizy danych.

Pytanie 36

Określ wynik działania załączonego kodu PHP, przy założeniu, że zmienna tab jest tablicą.

$tab = explode(", ", "jelenie,sarny,dziki,lisy,borsuki");
echo $tab[1]." ".$tab[2];
A. sarny dziki
B. dziki lisy
C. jelenie sarny
D. lisy borsuki
Niestety, Twoja odpowiedź okazała się niepoprawna. W analizowanym kodzie PHP jest użyta funkcja 'explode()', która dzieli ciąg znaków na tablicę, używając przecinków jako separatorów. Później wybierane są drugi i trzeci element z tej tablicy do wyświetlenia. Więc, jeśli poszedłeś w stronę 'dziki lisy' lub 'lisy borsuki', to może wynikać z niewłaściwego rozumienia działania funkcji 'explode()'. Pamiętaj, że w PHP tablice zaczynają się od 0, co oznacza, że drugi element ma indeks 1, a trzeci to 2. Ważne, żeby zwracać uwagę na dane wejściowe, które podajemy do 'explode()', bo to może mieć duży wpływ na wynik. To istotna rzecz, którą warto mieć na uwadze, gdy programujesz.

Pytanie 37

W którym pliku konfiguracyjnym serwera Apache ustawia się przekierowanie 301 (z jednego URL na inny)?

A.
.htaccess
B.
apacheConf
C.
conf.php
D.
configuration.php
Pozostałe nazwy nie są plikami konfiguracji Apache. conf.php i configuration.php to pliki PHP (np. konfiguracja aplikacji), a „apacheConf” nie istnieje. Przekierowania definiuje .htaccess.

Pytanie 38

Znacznik <pre> </pre> służy do wyświetlania

A. znaku skreślenia
B. treści czcionką o stałej szerokości
C. znaku wielokropkowego
D. treści czcionką w języku polskim
Wybór błędnych odpowiedzi może wynikać z nieporozumienia dotyczącego funkcji znacznika <pre>. Odpowiedzi sugerujące, że służy on do wyświetlania znaku przekreślenia, znaku wielokropka, lub treści polską czcionką nie mają podstaw w rzeczywistej funkcjonalności tego znacznika. Znaki przekreślenia, czy wielokropki są zazwyczaj elementami typografii, które można osiągnąć przez inne znaczniki i style CSS, a nie przez <pre>. Znacznik <pre> nie wpływa na rodzaj czcionki używanej w danym elemencie, lecz przede wszystkim na sposób wyświetlania treści. Przykładem może być tekst umieszczony w tym znaczniku, który wyświetla się w sposób stały, niezależnie od ustawień czcionki w stylach CSS, co czyni go nieodpowiednim do użycia w kontekście wyboru konkretnej czcionki, jak polska czcionka. Zrozumienie, że <pre> dotyczy przede wszystkim zachowania formatowania tekstu, a nie jego typografii, jest kluczowe do poprawnego korzystania z HTML. W przypadku, gdy użytkownik wybiera błędne odpowiedzi, może to wynikać z mylnego założenia, że <pre> jest odpowiedzialny za typografię, co prowadzi do nieprawidłowych wniosków w kontekście inżynierii oprogramowania i projektowania stron internetowych.

Pytanie 39

Tabela Pracownicy zawiera informacje o zatrudnionych w różnych działach, co jest określone przez pole liczbowe dzial. Z uwagi na to, że zazwyczaj wykonuje się kwerendy jedynie dla działu równego 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania

A. VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2
B. VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2
C. CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2
D. CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2
Pozostałe odpowiedzi są błędne z różnych powodów. Przede wszystkim, brak słowa kluczowego 'AS' w odpowiedziach, które twierdzą, że mają na celu stworzenie widoku, skutkuje nieprawidłową składnią. W SQL, podczas definiowania widoku, kluczowe jest użycie 'AS' po nazwie widoku, aby określić, że następujące zapytanie jest definicją źródła danych tego widoku. Ponadto, użycie słowa kluczowego 'VIEW' bez 'CREATE' jest niepoprawne, ponieważ struktura SQL wymaga, aby przed utworzeniem widoku zawsze były używane polecenia 'CREATE VIEW'. Również pominięcie 'SELECT *' w kontekście tworzenia widoku ogranicza elastyczność, ponieważ pozwala na wybranie tylko niektórych kolumn z tabeli, co nie jest zgodne z wymaganiami przedstawionymi w pytaniu. Zrozumienie tych zasad jest kluczowe, aby uniknąć typowych pułapek w pracy z SQL, a także pozwala na tworzenie bardziej złożonych i wydajnych strukturyzacji danych. Użycie nieprawidłowej składni może prowadzić do błędów wykonania, co w praktyce może skutkować zamieszaniem i wydłużonym czasem reakcji na wyciąganie danych. Dlatego kluczowe jest przestrzeganie standardów i dobrych praktyk w pisaniu zapytań SQL.

Pytanie 40

Która z poniższych instrukcji jest równoważna z poleceniem switch w języku PHP?

switch ($liczba) {
    case 10:
    case 20: $liczba++; break;
    default: $liczba = 0;
}

Instrukcja 1.
if ($liczba==10)
    $liczba++;
else
    $liczba = 0;

Instrukcja 2.
if ($liczba==10 or $liczba==20)
    $liczba++;
else
    $liczba = 0;

Instrukcja 3.
if ($liczba==10 or $liczba==20)
    $liczba++;

Instrukcja 4.
if ($liczba==10 and $liczba==20)
    $liczba++;
else
    $liczba = 0;
A. Polecenie 4
B. Polecenie 2
C. Polecenie 3
D. Polecenie 1
Instrukcje warunkowe if-else są często używane w programowaniu do kontrolowania przepływu programu na podstawie wartości logicznych. W kontekście podanego pytania, istotne jest zrozumienie, jak różne operatory logiczne wpływają na działanie tych instrukcji. Instrukcja 1 zakłada, że zmienna $liczba musi być równa 10, by wykonać operację inkrementacji, co nie jest zgodne z oryginalnym kodem switch, ponieważ pomija wartość 20. Taka interpretacja mogłaby prowadzić do błędów w sytuacjach, gdzie obie wartości są dopuszczalne. Instrukcja 3 używa operatora or, co wydaje się poprawne, ale brak bloku else powoduje brak możliwości przypisania wartości 0 w sytuacjach, gdy $liczba nie wynosi 10 ani 20. To oznacza niekompletność logiczną i potencjalne błędy. Instrukcja 4 stosuje operator and, co wymaga, aby $liczba jednocześnie wynosiła 10 i 20, co jest logicznie niemożliwe w tym kontekście, prowadząc do nieprawidłowego działania. Taka nieprawidłowa logika może być wynikiem błędnego zrozumienia warunków logicznych, co jest częstym problemem wśród początkujących programistów. Zrozumienie różnic między tymi operatorami jest kluczowe dla tworzenia poprawnych i efektywnych konstrukcji warunkowych w dowolnym języku programowania, w tym w PHP. Poprawne użycie instrukcji if-else oraz operatorów logicznych jest fundamentem wielu aplikacji, a błędy mogą prowadzić do nieprzewidywalnego działania programu.