Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 13 kwietnia 2026 13:33
  • Data zakończenia: 13 kwietnia 2026 14:11

Egzamin zdany!

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

Przy konwersji obrazu o 8 bitowej głębi kolorów na 4 bitową, liczba dostępnych kolorów zmniejszy się o

A. 24
B. 240
C. 16
D. 256
Wszystkie odpowiedzi, które nie są poprawne, wynikają z nieprawidłowych obliczeń związanych z ilością dostępnych kolorów w różnych głębokościach bitowych. W przypadku odpowiedzi wskazujących na 16, 24 i 256 kolorów, każda z tych wartości nie odzwierciedla rzeczywistych możliwości kolorystycznych wynikających z konwersji. 16 kolorów to dokładna liczba dostępna w 4-bitowym formacie, ale nie jest to wartość, o którą zmniejsza się liczba kolorów, a to właśnie ona jest końcową liczbą kolorów w 4-bitowym obrazie. 24 kolory nie mają sensu w kontekście 8-bitowego obrazu, ponieważ 24 kolory sugerowałyby, że redukujemy z 8-bitowego obrazu do jeszcze niższego poziomu, co jest niepoprawne. Mówiąc o 256 kolorach, to liczba ta odnosi się do początkowej ilości kolorów w obrazie 8-bitowym, a nie do liczby kolorów, które zostają po konwersji. Dla pełnego zrozumienia, warto zaznaczyć, że każdy poziom głębi kolorów w obrazach rastrowych określa liczbę kolorów, które mogą być wyświetlane i przetwarzane, a konwersja pomiędzy nimi wymaga precyzyjnych obliczeń, które uwzględniają te wartości.

Pytanie 2

Użytkownik Jan będzie mógł wykonywać

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. wszystkie operacje na tabelach bazy dane oraz nadawać prawa innym użytkownikom.
B. jedynie operacje CREATE, ALTER, DROP na tabelach bazy dane.
C. jedynie operacje manipulowania danymi i zmienić jedynie swoje prawa.
D. wszystkie operacje na tabelach bazy dane.
Prawidłowo zauważyłeś, że użytkownikowi Jan przypisano wszystkie uprawnienia (GRANT ALL PRIVILEGES) na bazie danych o nazwie 'dane.*'. Przyznanie pełnych uprawnień obejmuje możliwość tworzenia, modyfikowania, usuwania tabel, jak również manipulowania danymi w tych tabelach. W praktyce oznacza to, że Jan ma pełną kontrolę nad bazą danych. Jest to możliwe dzięki konstrukcji GRANT, która jest standardem w zarządzaniu uprawnieniami w relacyjnych bazach danych. Pozwala ona na precyzyjne definiowanie, jakie operacje może wykonywać dany użytkownik. Taka granularna kontrola jest kluczowa dla bezpieczeństwa systemów bazodanowych. Pamiętaj, że nadawanie pełnych uprawnień jest odpowiednie jedynie w sytuacjach, gdy użytkownik jest całkowicie zaufany - w innym przypadku, powinno się ograniczyć uprawnienia do tych, które są niezbędne do wykonania pewnych zadań.

Pytanie 3

Metainformacja "Description" umieszczona w pliku HTML powinna zawierać

<head>
    <meta name="Description" content="...">
</head>
A. spis słów kluczowych, które są wykorzystywane przez wyszukiwarki internetowe
B. opis treści znajdującej się na stronie
C. nazwę aplikacji, za pomocą której stworzono stronę
D. informację na temat autora strony
Meta tag Description w HTML służy do dostarczenia krótkiego streszczenia zawartości strony internetowej Jest to jeden z kluczowych elementów optymalizacji pod kątem wyszukiwarek internetowych SEO który pomaga wyszukiwarkom i użytkownikom zrozumieć tematykę strony choć nie jest bezpośrednim czynnikiem rankingowym wyszukiwarek może wpływać na wskaźnik klikalności CTR w wynikach wyszukiwania Dzięki dobrze skonstruowanemu opisowi użytkownicy mogą szybko ocenić czy strona spełnia ich potrzeby co z kolei może zwiększyć ruch na stronie Praktyką branżową jest aby opis był zwięzły i zawierał najważniejsze informacje dotyczące zawartości strony zazwyczaj nie przekraczając 160 znaków Ponadto opis ten może być wyświetlany jako fragment w wynikach wyszukiwania co czyni go istotnym elementem strategii marketingowej strony Dobre praktyki obejmują stosowanie unikalnych i precyzyjnych opisów dla każdej podstrony co przyczynia się do lepszego zrozumienia i klasyfikacji strony przez wyszukiwarki

Pytanie 4

SELECT ocena FROM oceny WHERE ocena>2 ORDER BY ocena;
Dana jest tabela oceny o polach id, nazwisko, imie, ocena. Przedstawione zapytanie jest przykładem:
A. selekcji
B. projekcji
C. łączenia
D. sumowania
Zapytanie SQL, które przedstawiłeś, jest naprawdę świetnym przykładem selekcji. Dzięki niemu można wyciągnąć konkretne dane z tabeli 'oceny'. Selekcja to nic innego jak filtracja danych według ustalonych kryteriów, a w tym przypadku chodzi o to, że 'ocena' musi być większa niż 2. Użycie klauzuli WHERE w SQL pozwala na efektywne wyodrębnienie danych spełniających te wymagania. A jak dodasz do tego klauzulę ORDER BY, to możesz posortować wyniki według wybranej kolejności, co jest naprawdę przydatne w różnych analizach. Takie operacje są kluczowe w pracy z bazami danych, bo dzięki nim zdobywasz konkretną wiedzę bez przeszukiwania całej bazy. W praktyce widać to w raportach, gdzie często potrzebne są tylko konkretne dane, przykładowo żeby sprawdzić, którzy studenci osiągnęli określony poziom ocen. Selekcja daje ci możliwość efektywnego zarządzania danymi, a to według mnie bardzo ważne, zwłaszcza w analizach.

Pytanie 5

Jaką postać ma kolor zdefiniowany w formacie szesnastkowym jako #11FE07 w modelu RGB?

A. rgb(17, 255, 7)
B. rgb(ll, 127, 7)
C. rgb(17, FE, 7)
D. rgb(17, 254, 7)
Odpowiedzi rgb(ll, 127, 7), rgb(17, 255, 7) i rgb(17, FE, 7) mają błędy, które wynikają z niewłaściwego zrozumienia konwersji szesnastkowych na dziesiętne. W pierwszej odpowiedzi 'll' to w ogóle nie jest poprawna wartość w kontekście kolorów RGB. W systemie RGB musimy używać całkowitych liczb od 0 do 255, a 'll' to żaden numer. W drugiej odpowiedzi, zmiana 'FE' na '255' to błąd, bo 'FE' w szesnastkowym to 254 w dziesiętnym, więc tu jest niezgodność. A w odpowiedzi 'rgb(17, FE, 7)' znowu nie przeliczono 'FE', przez co staje się to nieczytelne i niezgodne ze standardami RGB. Często ludzie mylą różne systemy liczbowe przy konwertowaniu kolorów i to jest zwyczajny błąd. Fajnym pomysłem na naukę jest zabawa z narzędziami do kolorów w programach graficznych, bo to pomaga lepiej zrozumieć te przeliczenia i ogarnąć różnice między systemami liczbowymi.

Pytanie 6

Ikona przedstawiająca funkcję w edytorze grafiki rastrowej, znana jako „kubełek”, pozwala na

Ilustracja do pytania
A. wybór obszaru o identycznym kolorze
B. zmianę bieżących kolorów
C. pobranie wybranej barwy i ustawienie jej jako aktywnej
D. wypełnienie obszaru, który został zaznaczony kolorem
Narzędzie 'kubełek', często spotykane w edytorach grafiki rastrowej takich jak Adobe Photoshop czy GIMP, służy do wypełniania zaznaczonego obszaru kolorem. Jest to szczególnie przydatne w sytuacjach, gdy chcemy szybko zapełnić jednolitym kolorem duże powierzchnie, takie jak tła lub obiekty. Działa na zasadzie zalewania najbliższych pikseli wybranym kolorem, uwzględniając podobieństwo kolorów, co można regulować za pomocą opcji tolerancji. W praktyce, narzędzie to usprawnia proces tworzenia grafik, ponieważ eliminuje potrzebę ręcznego kolorowania każdego piksela. Dodatkowo 'kubełek' może być stosowany w połączeniu z różnymi trybami mieszania, co pozwala na uzyskanie bardziej zaawansowanych efektów wizualnych. Praca z 'kubełkiem' wymaga zrozumienia koncepcji warstw, ponieważ wypełnianie na konkretnej warstwie ma wpływ na finalny wygląd projektu. Wiedza o tym, jak skutecznie używać narzędzia 'kubełek', jest niezbędna dla każdego grafika cyfrowego, który chce pracować efektywnie i profesjonalnie, realizując projekty zgodnie z najlepszymi praktykami branżowymi.

Pytanie 7

Co należy zrobić, gdy rozmiar pliku graficznego jest zbyt duży do umieszczenia w Internecie?

A. zmniejszyć jego rozdzielczość
B. dodać kanał alfa
C. zwiększyć jego głębię kolorów
D. zapisać w formacie BMP
Zmniejszenie rozdzielczości pliku graficznego to jedna z najskuteczniejszych metod redukcji jego rozmiaru, co jest kluczowe przy publikacji w Internecie. Rozdzielczość odnosi się do ilości pikseli, które tworzą obraz, a jej zmniejszenie prowadzi do mniejszej ilości danych do przechowania. Przykładowo, zamiast publikować obraz o rozdzielczości 4000x3000 pikseli, można zmniejszyć go do 1920x1080, co drastycznie zmniejszy wielkość pliku bez zauważalnej utraty jakości wizualnej na ekranach komputera czy urządzeń mobilnych. Zmniejszenie rozdzielczości jest zgodne z najlepszymi praktykami w zakresie optymalizacji zasobów internetowych, w tym zasadami dotyczącymi czasu ładowania strony i wydajności. Dodatkowo, odpowiednia rozdzielczość może poprawić doświadczenia użytkowników, zmniejszając czas ładowania i zwiększając responsywność witryn. Warto również pamiętać o formatowaniu plików graficznych, gdzie JPEG jest często preferowanym formatem dla zdjęć, a PNG dla obrazów z przezroczystością. Stosowanie technologii takich jak responsywne obrazy również przyczynia się do efektywnej prezentacji graficznej w sieci, co ma kluczowe znaczenie w dzisiejszym świecie online.

Pytanie 8

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

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\1\biuro.php on line 38
A. brakiem bazy danych o nazwie podanej w funkcji mysqli_connect
B. próbą odwołania do nieistniejącego elementu tablicy
C. niepowodzeniem w wykonaniu kwerendy na bazie danych
D. odwołaniem do niezadeklarowanej zmiennej
Brak bazy danych o nazwie wskazanej w funkcji mysqli_connect mógłby skutkować zupełnie innym rodzajem błędu związanym z połączeniem, a nie z dostępem do elementu tablicy. Taki problem zwykle objawia się jako błąd połączenia, wskazujący na niemożność odnalezienia bazy danych o podanej nazwie. Odwołanie się do niezadeklarowanej zmiennej w PHP skutkuje zazwyczaj błędem typu notice, który informuje, że zmienna nie była zainicjalizowana przed użyciem. Tego rodzaju błąd nie odnosi się bezpośrednio do tablic, lecz do zmiennych ogólnie. Dobra praktyka programistyczna nakazuje inicjalizację wszystkich zmiennych przed ich użyciem, co pomaga unikać takich komunikatów. Niepowodzenie wydania kwerendy na bazie danych mogłoby skutkować błędami dotyczącymi SQL, zwykle identyfikowanymi przez specyficzne komunikaty o błędach SQL zwracane przez serwer baz danych. Tego rodzaju problem jest ściśle związany z niewłaściwą konstrukcją zapytań SQL i logiką aplikacji, a nie z dostępem do elementów tablicy w PHP. Aby prawidłowo rozwiązywać takie problemy, ważne jest zrozumienie, w jaki sposób funkcje PHP współpracują z danymi i jak mogą być one obsługiwane, aby uniknąć błędów typu null w tablicach, co jest istotnym aspektem efektywnego programowania w PHP.

Pytanie 9

Kto z wymienionych zajmuje się nieprzerwanym przygotowaniem systemu bazy danych do pracy produkcyjnej, zarządzaniem kontami użytkowników oraz instalowaniem aktualizacji systemu bazodanowego?

A. Projektanci i programiści Systemu Zarządzania Bazą Danych
B. Administratorzy systemu bazy danych
C. Administratorzy serwerów oraz sieci komputerowych
D. Twórcy narzędzi dla deweloperów
Administratorzy systemu bazy danych to kluczowe osoby odpowiedzialne za wdrażanie, zarządzanie i utrzymanie baz danych w środowisku produkcyjnym. Ich zadania obejmują nie tylko konfigurację serwera baz danych, ale również dbanie o jego wydajność, bezpieczeństwo oraz integralność danych. Administratorzy monitorują działanie systemu, optymalizują zapytania i przeprowadzają regularne kopie zapasowe, co jest niezwykle istotne dla ochrony danych. Przykładem praktycznym może być zarządzanie bazą danych MySQL, gdzie administratorzy korzystają z narzędzi takich jak phpMyAdmin do monitorowania aktywności użytkowników i przeprowadzania aktualizacji systemu. Dodatkowo, administratorzy są odpowiedzialni za nadawanie i kontrolowanie uprawnień użytkowników, co polega na definiowaniu ról i przydzielaniu dostępu zgodnie z wymaganiami bezpieczeństwa. W oparciu o najlepsze praktyki branżowe, administratorzy systemów baz danych muszą być dobrze zaznajomieni z normami, takimi jak ISO/IEC 27001, które dotyczą zarządzania bezpieczeństwem informacji, co podkreśla ich ważną rolę w organizacji.

Pytanie 10

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; }
C. nav { float: right; } section { float: right; }
D. nav { float: left; } aside { float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 11

W języku PHP, instrukcja foreach pełni rolę

A. Wyboru, dotyczącej elementów tablicy
B. Pętli, przeznaczonej wyłącznie dla elementów tablicy
C. Pętli, niezależnej od typu zmiennej
D. Warunkową, niezależną od typu zmiennej
W PHP, instrukcja foreach to super sposób na przechodzenie przez elementy tablicy. Dzięki niej nie musisz się martwić o indeksy, tylko po prostu przeglądasz wszystkie wartości, co naprawdę ułatwia pisanie kodu. Na przykład, jeżeli mamy tablicę z nazwiskami, taką jak $nazwiska = ['Kowalski', 'Nowak', 'Wiśniewski'], to możemy to wrzucić w foreach: foreach ($nazwiska as $nazwisko) { echo $nazwisko; }. W tym przypadku każda wartość z tablicy zostanie wyświetlona po kolei. Z mojego doświadczenia, dobrze jest używać foreach kiedy mamy do czynienia z tablicami, bo to sprawia, że kod jest bardziej przejrzysty i łatwiejszy do zrozumienia. Co więcej, foreach ma tę fajną cechę, że poradzi sobie z różnymi typami wartości w tablicy, więc to naprawdę uniwersalne narzędzie. Pamiętaj, że używając tej pętli, poprawiasz nie tylko wydajność swojego kodu, ale też jego czytelność, co jest super ważne, zwłaszcza w dużych projektach.

Pytanie 12

Program napisany w języku PHP ma na celu wyliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6. Warunek doboru ocen w pętli obliczającej średnią powinien zawierać wyrażenie logiczne

A. $ocena > 2 and $ocena < 6
B. $ocena > 2 or $ocena < 6
C. $ocena >= 2 or $ocena <= 6
D. $ocena >= 2 and $ocena <= 6
Wybrana odpowiedź jest poprawna, ponieważ warunek '$ocena >= 2 and $ocena <= 6' precyzyjnie definiuje zakres ocen, które mają być brane pod uwagę przy obliczaniu średniej. Użycie operatora 'and' zapewnia, że tylko oceny mieszczące się w przedziale od 2 do 6, włącznie z obydwoma krańcami, będą uwzględnione. Przykład praktyczny to sytuacja, w której programista chciałby zrealizować system oceny uczniów, w którym dopuszczalne oceny to 2, 3, 4, 5 i 6. Gdybyśmy użyli operatora 'or', program mógłby przyjąć oceny spoza tego zakresu, co prowadziłoby do nieprawidłowych obliczeń i fałszywych wniosków. W kontekście programowania w PHP, stosowanie poprawnych warunków logicznych jest kluczowe dla zapewnienia prawidłowego działania kodu. Dobrym przykładem zastosowania takiego warunku jest pętla, która iteruje przez zestaw ocen i sumuje je, aby na końcu obliczyć średnią. Stosując odpowiednie warunki, programista może być pewny, że obliczenia są realizowane na danych, które są zgodne z wymaganiami. Warto również zauważyć, że w kontekście dobrych praktyk programistycznych, jasne definiowanie warunków logicznych pozwala na łatwiejsze zrozumienie kodu przez innych programistów oraz ułatwia jego późniejsze utrzymanie.

Pytanie 13

W CSS zapisana reguła ```css p::first-line {font-size: 150%;} ``` wykorzystana na stronie z wieloma paragrafami, z których każdy składa się z kilku linijek, spowoduje, że

A. pierwszy paragraf na stronie będzie miał całą czcionkę powiększoną
B. pierwsza linia każdego z paragrafów będzie miała większy rozmiar czcionki niż pozostałe linie
C. pierwsza linia każdego z paragrafów będzie miała mniejszy rozmiar czcionki niż pozostałe linie
D. cały tekst w paragrafie zostanie powiększony o 150%
Zapis CSS p::first-line {font-size: 150%;} odnosi się do pseudoelementu ::first-line, który pozwala na stylizację tylko pierwszej linii tekstu w każdym paragrafie. W tym przypadku, gdy stosujemy font-size: 150%, oznacza to, że rozmiar czcionki pierwszej linii każdego paragrafu zostanie zwiększony o 50% w stosunku do domyślnego rozmiaru czcionki ustalonego w CSS. To oznacza, że pierwsza linia będzie wizualnie wyróżniać się na tle pozostałego tekstu, który pozostanie w standardowym rozmiarze czcionki. Stylizowanie pierwszej linii paragrafu jest przydatnym narzędziem w projektowaniu stron internetowych, ponieważ pozwala na zwrócenie uwagi czytelników na istotne fragmenty tekstu, co może wpływać na lepszą czytelność i odbiór treści. Dodatkowo, zgodnie z specyfikacją CSS, użycie pseudoelementów, takich jak ::first-line, jest jednym z sposobów na wprowadzenie estetycznych i funkcjonalnych zmian w tekście bez konieczności modyfikacji HTML. W praktyce, stosując ten styl, można uzyskać efekt, który poprawia hierarchię informacji w tekstach, co jest szczególnie ważne w dłuższych artykułach czy dokumentach.

Pytanie 14

Zapisano kod HTML wstawiający grafikę na stronę internetową: ```pejzaż``` Jeżeli rysunek.png nie zostanie odnaleziony, przeglądarka:

A. w miejscu grafiki wypisze tekst "rysunek.png".
B. w miejscu grafiki wypisze tekst "pejzaż".
C. nie wyświetli strony internetowej.
D. w miejscu grafiki wypisze błąd wyświetlania strony.
Brawo! Wybrałeś prawidłową odpowiedź. Element <img> w kodzie HTML może mieć atrybut alt, który określa tekst alternatywny, który ma być wyświetlony, gdy obrazek nie może zostać załadowany. W tym przypadku, atrybut alt ma wartość 'pejzaż', co oznacza, że jeśli obraz 'rysunek.png' nie może zostać załadowany, przeglądarka wyświetli tekst 'pejzaż' w miejscu, gdzie powinien być obraz. Ta funkcja jest przydatna z kilku powodów. Po pierwsze, pozwala użytkownikowi zrozumieć kontekst strony, nawet jeśli nie może zobaczyć obrazu. Po drugie, jest to zgodne ze standardami dostępności, ponieważ czytniki ekranu dla osób niewidomych mogą odczytywać ten tekst. To jest ważne dla tworzenia stron internetowych, które są dostępne dla wszystkich.

Pytanie 15

Aby uzyskać rezultaty działania skryptu napisanego w języku PHP, który jest częścią strony WWW, musi on być

A. zinterpretowany po stronie klienta
B. skomponowany po stronie klienta
C. skomponowany po stronie serwera
D. zinterpretowany po stronie serwera
Pierwsza niepoprawna odpowiedź sugeruje, że PHP powinno działać po stronie klienta, a to nie ma sensu. PHP to język interpretowany, więc nie trzeba go kompilować do jakiegoś tam kodu maszynowego przed uruchomieniem. Nasze przeglądarki nie ogarniają kodu PHP, tylko chcą dostać gotowy HTML. Druga błędna odpowiedź znowu mówi o kompilacji, ale to nie tak działa. Choć są kompilatory PHP, to standardowo PHP działa na zasadzie interpretacji, a nie kompilacji. Ta interpretacja pozwala na to, żeby treści były generowane dynamicznie. Na koniec, ostatnia z błędnych odpowiedzi twierdzi, że PHP powinno działać po stronie klienta, co też jest totalnie nieprawda. PHP przetwarzany jest na serwerze, a klient dostaje już tylko wynik w HTML, CSS i JavaScript. Nie ma dostępu do źródłowego kodu PHP, bo jest on przerobiony przez serwer zanim trafi do klienta. To zapewnia bezpieczeństwo i wydajność stron, bo serwer ogarnia logikę, a klient tylko wyświetla to, co dostaje.

Pytanie 16

Które z poniższych poleceń pozwala na dodanie kolumny zadanie_kompletne do tabeli zadania?

A. INSERT INTO zadania VALUES zadanie_kompletne
B. ALTER TABLE zadania ADD COLUMN zadanie_kompletne int
C. CREATE INDEX zadania ADD COLUMN zadanie_kompletne int
D. ADD COLUMN zadanie_kompletne WITH zadania
Dodanie kolumny do istniejącej tabeli w relacyjnej bazie danych może być realizowane za pomocą polecenia ALTER TABLE. To polecenie jest standardem SQL i jest wspierane przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle czy Microsoft SQL Server. W przypadku zapytania 'ALTER TABLE zadania ADD COLUMN zadanie_kompletne int', polecenie to modyfikuje strukturę tabeli 'zadania', dodając nową kolumnę o nazwie 'zadanie_kompletne', która będzie przechowywać dane typu całkowitego (int). Praktycznym przykładem zastosowania tego polecenia może być system zarządzania projektami, w którym chcemy śledzić status zadań. Po dodaniu tej kolumny, możemy wprowadzać wartości 0 lub 1, które mogą reprezentować, czy zadanie zostało ukończone, czy nie. Użycie ALTER TABLE jest niezbędne, gdyż inne polecenia, takie jak CREATE INDEX czy INSERT INTO, służą do innych celów, takich jak tworzenie indeksów lub wstawianie danych, a nie do modyfikacji struktury tabeli. W praktyce, aby upewnić się, że zmiany są zgodne z wymaganiami systemu, zaleca się zawsze wykonanie kopii zapasowej bazy danych przed przeprowadzeniem operacji na strukturze tabeli.

Pytanie 17

Ile razy zostanie wykonana pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w trakcie działania pętli?
for ($i = 0; $i <= 10; $i+=2) { .... }

A. 6
B. 5
C. 0
D. 10
Wybór błędnych odpowiedzi wynika z nieprawidłowego zrozumienia działania pętli for oraz sposobu, w jaki zostają liczone iteracje. Odpowiedzi takie jak 0, 5 czy 10 są oparte na mylących założeniach. Na przykład, odpowiedzi 0 i 10 mogą sugerować, że pętla nie wykonuje żadnych iteracji lub, że wykonuje ich zbyt wiele, co jest sprzeczne z rzeczywistością. Pętla for, jak w tym przypadku, zaczyna od 0 i kończy na 10, a krok wynosi 2. Zmiana wartości $i przy każdym przejściu pętli jest kluczowym elementem do zrozumienia. Jeśli więc zmienna nie jest zmieniana, nie osiągnie ona wartości końcowej prawidłowo. Typowym błędem jest także myślenie o warunkach w sposób nieprecyzyjny; w tym wypadku warunek $i <= 10 jest spełniony dla wartości 10, co może mylić. W praktyce, programiści powinni zawsze dokładnie analizować zakres iteracji, aby uniknąć błędnych założeń. To zrozumienie jest fundamentalne, aby pisać wydajny i bezpieczny kod, stosując się do najlepszych praktyk programistycznych.

Pytanie 18

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Kraków';``` Wskaź, które zapytanie zwróci te same dane.

A. ```SELECT nazwisko, imie FROM mieszkancy AS 'Poznań' OR 'Kraków';```
B. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING 'Poznań' OR 'Kraków';```
C. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';```
D. ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków';```
Zapytanie SELECT nazwisko, imie FROM mieszkancy WHERE miasto='Poznań' OR miasto='Kraków'; jest poprawne, ponieważ umożliwia uzyskanie danych mieszkańców, którzy znajdują się w jednym z dwóch zadanych miast. Użycie operatora 'OR' pozwala na połączenie dwóch warunków, co sprawia, że zapytanie zwróci mieszkańców zarówno z Poznania, jak i z Krakowa. Takie podejście jest zgodne z zasadami SQL i umożliwia elastyczne filtrowanie danych. Alternatywnie, zastosowanie operatora UNION ALL w pierwszym zapytaniu łączy wyniki z dwóch oddzielnych zapytań, co jest również poprawne, ale może być mniej wydajne w przypadku dużych zbiorów danych. Używając UNION ALL, zwracane są wszystkie wiersze, w tym duplikaty, natomiast w przypadku zapytania z OR, uzyskujemy wiersze spełniające przynajmniej jeden z warunków. Dobrą praktyką jest testowanie zapytań w rzeczywistej bazie danych, aby ocenić ich wydajność i poprawność. W kontekście standardów SQL, takie zapytania są zgodne z definicjami języka zapytań i są stosowane do przetwarzania danych w relacyjnych bazach danych.

Pytanie 19

Definicja formularza została użyta na stronie internetowej, która przesyła dane do pliku napisanego w języku PHP. W jakiej tablicy będą dostępne dane z tego formularza?

Ilustracja do pytania
A. $_COOKIE
B. $_POST
C. $_GET
D. $_ACTION
Tablica $_POST w PHP służy do przechwytywania danych przesyłanych za pomocą metody POST. Jest to standardowa praktyka w przypadku formularzy, które zawierają dane wrażliwe lub dużą ilość informacji. Metoda POST przesyła dane w treści żądania HTTP, co oznacza, że nie są one widoczne w adresie URL, co zwiększa bezpieczeństwo w porównaniu do metody GET. Przykładem zastosowania mogą być formularze logowania czy przesyłania plików. W PHP dostęp do danych z formularza można uzyskać poprzez prostą składnię, na przykład $_POST['nazwa_pola']. Ważne jest, aby zawsze walidować i filtrować dane wejściowe, aby zabezpieczyć aplikację przed atakami typu SQL Injection czy XSS. Zastosowanie metody POST jest zgodne z ogólnymi zasadami bezpieczeństwa i standardami projektowania aplikacji webowych, które zalecają ograniczanie widoczności danych przesyłanych przez użytkownika. Dobre praktyki obejmują również stosowanie HTTPS, aby dodatkowo zaszyfrować dane przesyłane pomiędzy klientem a serwerem.

Pytanie 20

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

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

Pytanie 21

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <embed> </embed>
B. <section> </section>
C. <div> </div>
D. <video> </video>
W tym pytaniu kluczowe jest zrozumienie, że sam znacznik `<source>` nie osadza wideo na stronie, tylko dostarcza przeglądarce informacji o konkretnym pliku i jego typie. Rolę kontenera pełni inny element. Często uczniowie próbują „owijać” źródło wideo w różne ogólne znaczniki, takie jak `<div>` czy `<section>`, bo kojarzą je z budowaniem struktury strony. To jednak tylko znaczniki blokowe do organizowania layoutu i treści, nie mają one natywnej logiki odtwarzania multimediów. Jeśli włożymy `<source>` do `<div>` lub `<section>`, przeglądarka po prostu potraktuje to jako zwykły kod, który niczego nie odtwarza, bo brakuje elementu multimedialnego odpowiedzialnego za interpretację tego źródła. Innym skojarzeniem jest `<embed>`. Ten znacznik był (i bywa nadal) używany do osadzania zewnętrznych zasobów, np. animacji Flash, PDF-ów czy innych obiektów. W czasach HTML5 jego rola jest jednak ograniczona, a dla wideo i audio wprowadzono dedykowane elementy `<video>` i `<audio>`. Użycie `<embed>` do wideo jest możliwe, ale nie jest zgodne z nowoczesnymi standardami i pozbawia nas wielu zalet, takich jak spójne API, lepsza dostępność czy łatwiejsza kontrola stylów. Typowym błędem myślowym jest tu traktowanie każdego znacznika, który „coś osadza”, jako równoważnego. HTML5 mocno stawia na semantykę: `<video>` jasno mówi, że mamy do czynienia z treścią wideo, `<section>` – z logiczną sekcją dokumentu, `<div>` – z neutralnym kontenerem, a `<embed>` – z osadzonym zasobem o mniej precyzyjnym przeznaczeniu. Przeglądarka oczekuje, że `<source>` pojawi się wewnątrz elementu multimedialnego, czyli właśnie `<video>` lub `<audio>`. Z mojego doświadczenia wynika, że kiedy ktoś próbuje wkładać `<source>` w inne znaczniki, to najczęściej wynika to z mylenia struktury dokumentu (layoutu) z elementami odpowiedzialnymi za realne odtwarzanie treści. Dobra praktyka w nowoczesnym webdevie to korzystanie z elementów zgodnie z ich semantyką, dlatego do wideo zawsze używamy `<video>` jako kontenera, a `<source>` tylko jako definicji plików w środku.

Pytanie 22

Jaką funkcję w języku PHP można wykorzystać do weryfikacji typu zmiennej?

A. foreach()
B. var_dump()
C. switch()
D. strrev()
Funkcja var_dump() w języku PHP jest niezwykle przydatna do sprawdzania typu zmiennej, ponieważ wyświetla zarówno wartość zmiennej, jak i jej typ. Dzięki temu programista może szybko zrozumieć, co dokładnie znajduje się w danej zmiennej. Na przykład, jeśli mamy zmienną $a przypisaną do wartości 5, używając var_dump($a), uzyskamy wynik 'int(5)', co wskazuje, że zmienna jest typu całkowitego. Z kolei dla zmiennej $b, która jest tablicą, var_dump($b) pokaże strukturę tablicy oraz jej zawartość. Użycie var_dump() jest zgodne z dobrymi praktykami debugowania w PHP, ponieważ umożliwia identyfikację problemów z typami danych, co jest kluczowe w kontekście typowania dynamicznego, jakie ma miejsce w PHP. Dodatkowo, var_dump() jest często stosowane w sytuacjach, gdy programista chce szybko zweryfikować, co znajduje się w zmiennych podczas rozwoju aplikacji, co przyspiesza proces debugowania i pozwala na łatwiejsze znalezienie błędów w logice aplikacji.

Pytanie 23

Podczas wykonywania zapytania można skorzystać z klauzuli DROP COLUMN

A. ALTER COLUMN
B. CREATE TABLE
C. ALTER TABLE
D. DROP TABLE
Odpowiedź 'ALTER TABLE' jest poprawna, ponieważ klauzula DROP COLUMN jest używana w kontekście zmiany struktury tabeli w bazach danych. Polecenie ALTER TABLE pozwala na modyfikację istniejącej tabeli, w tym dodawanie, usuwanie lub modyfikowanie kolumn. Użycie klauzuli DROP COLUMN umożliwia usunięcie określonej kolumny z tabeli, co jest przydatne, gdy kolumna nie jest już potrzebna, zawiera nieaktualne dane lub w celu optymalizacji struktury bazy danych. Na przykład, jeśli mamy tabelę 'Użytkownicy' z kolumną 'wiek', której chcemy się pozbyć, możemy użyć polecenia: 'ALTER TABLE Użytkownicy DROP COLUMN wiek;'. Ważne jest, aby przed wykonaniem tej operacji upewnić się, że usunięcie kolumny nie wpłynie negatywnie na integralność danych lub logikę aplikacji. Praktyki dotyczące zarządzania bazami danych zalecają również wykonanie kopii zapasowej danych przed takimi operacjami, aby zminimalizować ryzyko utraty danych.

Pytanie 24

Aby wyeliminować nienaturalne odwzorowanie ukośnych krawędzi w grafice rastrowej, znane jako schodkowanie, powinno się użyć filtru

A. gradientowego
B. szumowego
C. antyaliasingu
D. pikselowego
Antyaliasing, znany również jako wygładzanie krawędzi, jest techniką stosowaną w grafice komputerowej, której celem jest redukcja efektu schodkowania występującego na krawędziach obiektów. Schodkowanie to zjawisko, w którym krawędzie obiektów w grafice rastrowej wydają się ząbkowane lub poszarpane, co jest spowodowane ograniczoną rozdzielczością pikseli. Antyaliasing działa poprzez dodawanie półprzezroczystych pikseli wzdłuż krawędzi, co pozwala na płynniejsze przejścia między kolorami, tworząc wrażenie bardziej gładkich linii. Przykładem zastosowania antyaliasingu jest renderowanie czcionek na ekranach, gdzie niewielkie, półprzezroczyste piksele wygładzają krawędzie liter. Istnieje wiele metod antyaliasingu, w tym supersampling, multisampling oraz post-process antyaliasing. Poprawne zastosowanie antyaliasingu jest kluczowe w profesjonalnej grafice, ponieważ znacznie podnosi jakość wizualną obrazów i zwiększa ich estetykę. Standardy, takie jak OpenGL czy DirectX, oferują wbudowane funkcje antyaliasingu, co ułatwia programistom jego implementację w aplikacjach graficznych.

Pytanie 25

Kwalifikatory dostępu: private, protected oraz public określają mechanizm

A. polimorfizmu
B. hermetyzacji
C. przeładowania
D. rekurencji
Wybór innych odpowiedzi, takich jak przeładowanie, polimorfizm czy rekurencja, wskazuje na pewne nieporozumienia dotyczące podstawowych zasad programowania obiektowego. Przeładowanie to technika, która pozwala na definiowanie wielu metod o tej samej nazwie, ale różniących się typem lub liczbą parametrów. Nie ma to jednak związku z zarządzaniem dostępem do danych obiektowych. Polimorfizm odnosi się do zdolności obiektów do przyjmowania różnych form, co jest kluczowe w kontekście dziedziczenia, lecz również nie dotyczy mechanizmu ograniczania dostępu do składników klas. Z kolei rekurencja jest techniką programowania, w której funkcja wywołuje samą siebie, co wprowadza zupełnie inny kontekst i nie ma związku z kwalifikatorami dostępu. Wybór tych odpowiedzi może wynikać z niepełnego zrozumienia roli hermetyzacji w programowaniu obiektowym. Warto zwrócić uwagę, że hermetyzacja ma na celu zwiększenie bezpieczeństwa oraz kontroli dostępu do danych, co jest kluczowe w tworzeniu oprogramowania. Niezrozumienie tych koncepcji może prowadzić do tworzenia kodu, który jest trudny do utrzymania i narażony na błędy, co jest sprzeczne z najlepszymi praktykami w branży.

Pytanie 26

W znaczniku meta w miejsce kropek należy wpisać

Ilustracja do pytania
A. język dokumentu
B. streszczenie treści strony
C. nazwa edytora
D. informację o dostosowaniu do urządzeń mobilnych
W znaczniku meta nie umieszcza się nazwy edytora, ponieważ znaczniki meta służą do przekazywania informacji o stronie internetowej dla przeglądarek i wyszukiwarek, a nie o narzędziach użytych do jej edycji. Nazwa edytora jest niezwiązana z funkcjonowaniem strony lub jej indeksowaniem przez wyszukiwarki. Język dokumentu jest określany za pomocą atrybutu lang w znaczniku html, a nie w meta tagu. Atrybut lang wspomaga przeglądarki i narzędzia asystujące w określeniu języka treści, co jest niezbędne do poprawnego wyświetlania i przetwarzania tekstu. Informacja o dostosowaniu do urządzeń mobilnych również nie jest umieszczana w znaczniku meta description. Zamiast tego stosuje się znacznik viewport, który instruuje przeglądarki mobilne, jak skalować i wyświetlać stronę. Poprawne użycie znacznika viewport jest kluczowe dla responsywności strony i jej optymalnego wyświetlania na różnych urządzeniach. Niepoprawne zrozumienie tych zastosowań może prowadzić do błędnego konstruowania stron, co wpływa na ich widoczność i funkcjonalność w różnych środowiskach internetowych. Każdy znacznik HTML ma określone funkcje i zastosowania, które są często regulowane przez standardy W3C i najlepsze praktyki w branży web developmentu. Zrozumienie tych zasad pozwala na tworzenie efektywnych i zgodnych z normami stron internetowych.

Pytanie 27

Które zdarzenie języka JavaScript jest wyzwalane w momencie, gdy kursor myszy znajduje się na elemencie do którego jest przypisane?

A. onmouseup
B. onmouseover
C. onmouseout
D. onmousedown
W tym pytaniu łatwo się pomylić, bo wszystkie wymienione zdarzenia są związane z myszką, ale każde z nich opisuje inny, dość precyzyjny moment interakcji użytkownika z elementem. Kluczowe jest zrozumienie, że pytanie dotyczy sytuacji, gdy kursor *znajduje się na elemencie*, czyli w praktyce momentu wejścia kursora w obszar tego elementu. Właśnie to zachowanie reprezentuje onmouseover. Zdarzenie onmouseup dotyczy chwili, gdy użytkownik puszcza (zwalnia) przycisk myszy. Nie ma znaczenia samo położenie kursora nad elementem, tylko to, że wcześniej przycisk został wciśnięty i teraz jest puszczany. Typowo wykorzystuje się je przy obsłudze drag & drop, przycisków, elementów interaktywnych, ale nie do reagowania na samo najechanie kursorem. Mylenie onmouseup z onmouseover wynika często z założenia, że „skoro klikam na elemencie, to pewnie chodzi o mysz nad elementem”, ale technicznie są to dwa różne etapy akcji. Z kolei onmouseout jest w pewnym sensie odwrotnością onmouseover. Wyzwala się wtedy, gdy kursor opuszcza obszar elementu, czyli przestaje się nad nim znajdować. Używa się go chociażby do cofania efektów stworzonych przy onmouseover, np. przywracania koloru, ukrywania dymka z podpowiedzią. Jeśli więc szukamy momentu, w którym kursor jest już nad elementem, to onmouseout opisuje raczej sytuację, kiedy z tego elementu „schodzimy”. Zdarzenie onmousedown uruchamia się przy wciśnięciu przycisku myszy, w chwili naciśnięcia, a nie najechania. Jest to ważne w interakcjach typu rysowanie na canvasie, łapanie suwaka, obsługa własnych kontrolek. W praktyce, jeżeli ktoś kojarzy wszystkie te zdarzenia jedynie ogólnie jako „coś od myszy”, to łatwo wrzucić je do jednego worka i strzelać odpowiedzi, ale według specyfikacji DOM Events każde z nich ma ściśle zdefiniowaną rolę. W kontekście pytania tylko onmouseover opisuje wejście kursora w obszar elementu i utrzymywanie się nad nim, więc właśnie ono jest poprawnym wyborem.

Pytanie 28

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

A. <object>
B. <embed>
C. <canvas>
D. <img>
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 29

Używając polecenia BACKUP LOG w MS SQL Server, można

A. wykonać kopię zapasową dziennika transakcji
B. wykonać całkowitą kopię zapasową
C. przeglądać komunikaty wygenerowane w trakcie tworzenia kopii
D. połączyć się z kopią zapasową
Pierwsza odpowiedź sugeruje, że polecenie BACKUP LOG może być użyte do wykonania pełnej kopii bezpieczeństwa bazy danych. W rzeczywistości, pełna kopia bezpieczeństwa jest realizowana za pomocą polecenia BACKUP DATABASE, które zgrywa całą bazę danych, w tym wszystkie obiekty i dane. BACKUP LOG dotyczy jedynie dziennika transakcyjnego, co oznacza, że nie jest to odpowiednia odpowiedź. Druga odpowiedź sugeruje, że można zalogować się do kopii bezpieczeństwa, co jest konceptualnie niepoprawne. Kopie zapasowe są plikami, które można przywrócić, ale nie oferują bezpośredniego dostępu do bazy danych. Użytkownik nie może zalogować się do backupu, dopóki nie zostanie przywrócony do instancji SQL Server. Wreszcie, trzecia odpowiedź sugeruje, że BACKUP LOG pozwala na przeczytanie komunikatów wygenerowanych podczas tworzenia kopii. W rzeczywistości, przy tworzeniu kopii zapasowych, komunikaty są rejestrowane w logach serwera, a polecenie BACKUP LOG nie służy do ich przeglądania. Można je jednak monitorować przy pomocy narzędzi do zarządzania SQL Server lub poprzez odpowiednie zapytania do systemowych tabel logów. Dlatego wszystkie te odpowiedzi są błędne w kontekście polecenia BACKUP LOG.

Pytanie 30

W algebrze relacji działanie selekcji polega na

A. usunięciu pustych wierszy
B. wybór krotek, które nie zawierają wartości NULL
C. wybór krotek, które spełniają określone warunki
D. usunięciu krotek z powtórzonymi polami
Wybieranie krotek niezawierających wartości NULL nie jest operacją selekcji w kontekście algebry relacji, ponieważ selekcja ma na celu filtrację krotek na podstawie określonych warunków, a nie jedynie na podstawie obecności lub braku wartości NULL. W praktyce, aby wykluczyć wartości NULL, można zastosować dodatkowe warunki w operacji selekcji, ale to nie definiuje samej operacji selekcji. Z kolei eliminacja pustych wierszy jest związana z usuwaniem krotek, które nie zawierają żadnych danych, co także nie jest równoznaczne z operacją selekcji. Ta operacja odnosi się bardziej do czyszczenia danych niż do ich wybierania na podstawie określonych kryteriów. Ponadto, eliminacja krotek z powtarzającymi się polami nie jest tożsama z selekcją, ponieważ dotyczy bardziej operacji usuwania duplikatów, które są zazwyczaj realizowane przez operacje takie jak DISTINCT w SQL, a nie przez selekcję, która ma na celu wybór krotek na podstawie warunków logicznych. W algebrze relacji kluczowe jest rozróżnienie między operacjami filtrowania danych a operacjami modyfikacji danych, co jest istotne w kontekście projektowania baz danych oraz w zapewnieniu integralności danych.

Pytanie 31

Jakim poleceniem można zobaczyć konfigurację serwera PHP, zawierającą między innymi: wersję PHP, system operacyjny serwera oraz wartości przedefiniowanych zmiennych?

A. phpcredits();
B. print_r(ini_get_all());
C. echo phpversion();
D. phpinfo();
Istnieje kilka funkcji PHP, które mogą dostarczać informacji na temat konfiguracji, jednak każda z nich ma swoje ograniczenia i specyfikę. Funkcja phpcredits() dostarcza informacji o autorach PHP oraz ich wkładzie w rozwój języka, ale nie zawiera istotnych danych o samej konfiguracji serwera. Jej użycie może prowadzić do mylnego wrażenia, że jest narzędziem diagnostycznym. Z kolei polecenie echo phpversion() zwraca jedynie wersję zainstalowanego PHP, co stanowi bardzo ograniczoną informację, jednak nie dostarcza żadnych dalszych szczegółów dotyczących systemu operacyjnego czy zainstalowanych modułów. Może to prowadzić do błędnych wniosków, na przykład, gdy programista myśli, że zna wszystkie dostępne moduły jedynie na podstawie wersji PHP. Funkcja print_r(ini_get_all()) natomiast, choć bardziej użyteczna niż wcześniejsze, również nie oddaje pełnego obrazu konfiguracji serwera, jako że zwraca jedynie konfigurację ini dla aktualnego skryptu. Użytkownicy mogą w ten sposób nie zauważać, że brakuje im krytycznych informacji, które byłyby dostępne za pomocą phpinfo(). Ostatecznie, te błędne odpowiedzi zdradzają typowe nieporozumienia związane z różnorodnością funkcji PHP i ich zastosowaniem w kontekście analizy konfiguracji serwera. Zrozumienie charakterystyki każdej z tych funkcji jest kluczowe dla efektywnego wykorzystania PHP w praktyce.

Pytanie 32

Baza danych szkoły podstawowej dla dzieci w wieku 6 lat obejmuje tabelę szkoła, która zawiera kolumny: imie, nazwisko, klasa. Wszyscy uczniowie w klasach od 1 do 5 przeszli do wyższej klasy. W celu zwiększenia wartości w kolumnie klasa o 1, należy wykonać następujące polecenie

A. UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
B. UPDATE nazwisko, imie SET klasa = klasa + 1 WHERE klasa>l OR klasa < 5
C. SELECT szkoła FROM klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
D. SELECT nazwisko, imie FROM klasa = klasa + 1 WHERE klasa>l OR klasa < 5
Poprawne polecenie to 'UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5;'. To zapytanie aktualizuje wartość w kolumnie 'klasa' dla wszystkich uczniów w tabeli 'szkoła', których aktualny poziom klasy mieści się w zakresie od 1 do 5. Kluczowym elementem jest użycie polecenia UPDATE, które jest standardowym sposobem na modyfikowanie danych w bazach danych SQL. Oznaczenie 'SET klasa = klasa + 1' wskazuje, że chcemy zwiększyć obecną wartość w kolumnie 'klasa' o 1. Warto zwrócić uwagę na warunek WHERE, który filtruje rekordy tak, aby aktualizacja dotyczyła tylko tych uczniów, którzy są w klasach 1-5. Tego rodzaju operacje są powszechnie stosowane w zarządzaniu danymi w aplikacjach edukacyjnych i są zgodne z praktykami bezpieczeństwa i integralności danych, zapewniając, że tylko odpowiednie rekordy są aktualizowane. Przykładem praktycznego zastosowania może być coroczna aktualizacja klas uczniów po zakończeniu roku szkolnego.

Pytanie 33

W języku PHP należy stworzyć warunek, który będzie prawdziwy, gdy zmienna $a będzie dowolną liczbą całkowitą mniejszą niż -10 lub gdy zmienna $b będzie jakąkolwiek liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku przyjmuje postać

A. ($a < -10) or (($b > 25) or ($b < 75))
B. ($a < -10) or (($b > 25) and ($b < 75))
C. ($a < -10) and (($b > 25) and ($b < 75))
D. ($a < -10) and (($b > 25) or ($b < 75))
Analizując niepoprawne wyrażenia logiczne, można zauważyć, że w każdym z nich występują błędy w interpretacji warunków z pytania. W przypadku wyrażenia, które używa operatora 'and', takie jak ($a < -10) and (($b > 25) and ($b < 75)), zakłada się, że oba warunki muszą być spełnione jednocześnie, co jest niezgodne z opisanymi wymaganiami. Ponieważ pytanie wskazuje na możliwość spełnienia jednego z warunków, stosowanie operatora 'and' w tym kontekście prowadzi do logicznej niepoprawności. Kolejny błąd można znaleźć w podejściu, które używa operatora 'or' w połączeniu z błędnymi granicami przedziału, jak w przypadku (($b > 25) or ($b < 75)). Takie wyrażenie nie ogranicza zmiennej $b do przedziału (25, 75), ponieważ pozwala na przyjmowanie wartości poza tym zakresem, co jest sprzeczne z wymaganiami. Typowym błędem myślowym tutaj jest mylenie operatorów logicznych oraz nieprawidłowe interpretowanie zakresu wartości. Aby uniknąć tego typu błędów, ważne jest, aby zawsze dokładnie przemyśleć, jakie warunki muszą być spełnione i jakie operatory logiczne są odpowiednie do ich realizacji. Szkolenie w zakresie logiki programowania oraz praktyka w pisaniu wyrażeń warunkowych mogą znacząco poprawić umiejętności programistyczne i zwiększyć precyzję kodu.

Pytanie 34

Podana deklaracja funkcji w języku C++ przyjmuje parametry typu liczbowego: void mojaFunkcja(int a, short b, long c);

A. liczbowe jako argumenty i nie zwraca wartości.
B. liczbowe i zmiennoprzecinkowe jako argumenty i nie zwraca wartości.
C. liczbowe jako argumenty i zwraca wartość.
D. liczbowe i zmiennoprzecinkowe jako argumenty i zwraca wartość.
Odpowiedź, że funkcja przyjmuje liczby całkowite jako parametry i nie zwraca wartości, jest poprawna z kilku powodów. Deklaracja funkcji 'void mojaFunkcja(int a, short b, long c)' wskazuje, że funkcja ma typ zwracany 'void', co oznacza, że nie zwraca ona żadnej wartości po jej wykonaniu. Parametry 'int', 'short' oraz 'long' są typami danych całkowitych, co potwierdza, że funkcja przyjmuje tylko liczby całkowite. Typ 'int' jest standardowym typem całkowitym w C++, 'short' to typ reprezentujący mniejsze liczby całkowite, a 'long' może przechowywać większe wartości całkowite. W praktyce, funkcje, które nie zwracają wartości, są często używane do wykonywania operacji na danych wejściowych, takich jak modyfikacje obiektów, zmiany w strukturach danych lub operacje wejścia/wyjścia. Takie podejście jest zgodne z zasadami programowania strukturalnego oraz dobrymi praktykami programowania, gdzie funkcje powinny być odpowiedzialne za określone zadania, zamiast zwracać wartości. Warto zaznaczyć, że użycie typów całkowitych jako parametrów jest powszechną praktyką, ponieważ pozwala na precyzyjne operacje matematyczne oraz efektywne zarządzanie pamięcią.

Pytanie 35

Wskaż zapis stylu CSS formatujący punktor list numerowanych na wielkie cyfry rzymskie, a list punktowanych na kwadraty.

A. ol { list-style-type: upper-alpha; }
   ul { list-style-type: disc; }

B. ol { list-style-type: square; }
   ul { list-style-type: upper-roman; }

C. ol { list-style-type: disc; }
   ul { list-style-type: upper-alpha; }

D. ol { list-style-type: upper-roman; }
   ul { list-style-type: square; }
A. C.
B. A.
C. D.
D. B.
Niestety, twoja odpowiedź nie jest prawidłowa. Wydaje się, że mogło wystąpić pewne nieporozumienie w zakresie formatowania list w CSS. Właściwość, której prawdopodobnie nie zrozumiałeś to list-style-type. Jest to kluczowa właściwość do definiowania wyglądu punktora list. W tym konkretnym pytaniu, dla listy numerowanej (ol) powinniśmy użyć wartości 'upper-roman', która odpowiada wielkim cyfrom rzymskim. Dla listy punktowanej (ul) powinniśmy użyć wartości 'square', co daje efekt punktów w formie kwadratów. Pamiętaj, że zrozumienie i umiejętność manipulowania różnymi właściwościami CSS jest kluczem do tworzenia atrakcyjnych i funkcjonalnych stron internetowych. Spróbuj ponownie, kiedy tylko będziesz gotowy!

Pytanie 36

W języku JavaScript następujący zapis: var napis1 = new napisy); ma na celu

A. wywołanie metody dla obiektu napisy
B. stworzenie nowej klasy napis1
C. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
D. stworzenie instancji obiektu napis1 klasy napisy
Pierwsza z niepoprawnych odpowiedzi sugeruje, że kod tworzy nową klasę 'napis1', co jest błędem. W rzeczywistości, w JavaScript klasy są definiowane za pomocą słowa kluczowego 'class', a 'new napisy()' uruchamia konstruktor, a nie definiuje klasę. Klasy w JavaScript można zdefiniować w następujący sposób: 'class napisy { constructor() { this.text = ''; }}', co wyraźnie różni się od podanego przykładu. Kolejna odpowiedź mówi o wywołaniu metody obiektu 'napisy', co również jest mylące, ponieważ aby wywołać metodę, obiekt musi być już stworzony, a 'new napisy()' nie wywołuje metody, lecz tworzy instancję obiektu. Ostatnia z odpowiedzi wskazuje na zadeklarowanie zmiennej 'napis1' i wywołanie funkcji z argumentem 'napis1', co jest całkowicie niezgodne z intencją podanego kodu. Nie ma tu żadnego wywołania funkcji z argumentem, a 'new' jest używane do instancjonowania klasy, co nie ma nic wspólnego z przekazywaniem argumentów do funkcji. Tak więc, wszystkie te odpowiedzi nie oddają prawidłowego zrozumienia działania konstrukcji obiektowych w JavaScript.

Pytanie 37

Którą technologię poleca się przy tworzeniu serwisów WWW, tak aby zmiany w treści można było wykonywać bez potrzeby ich kodowania, przez użytkowników bez kompetencji programistycznych?

A. CMS
B. SEO
C. SSL
D. FTP
W tym pytaniu łatwo dać się złapać na skojarzenia z innymi pojęciami webowymi, które brzmią „poważnie technicznie”, ale w ogóle nie rozwiązują wskazanego problemu. Kluczowe jest zrozumienie, że chodzi o możliwość samodzielnej edycji treści przez osoby bez kompetencji programistycznych. To oznacza, że potrzebny jest panel administracyjny, edytor WYSIWYG, system uprawnień i mechanizmy zapisu treści w bazie danych. Tę rolę pełnią właśnie systemy CMS. SEO, czyli Search Engine Optimization, dotyczy pozycjonowania strony w wyszukiwarkach. Owszem, dobre SEO jest ważne, a część narzędzi SEO bywa zintegrowana z CMS-em, ale samo SEO nie jest technologią do zarządzania treścią. To zestaw praktyk i technik: dobór słów kluczowych, optymalizacja tytułów, opisów, struktury nagłówków, linkowania wewnętrznego. Ktoś mógł pomyśleć, że skoro SEO „usprawnia stronę”, to też pomaga ją łatwiej edytować. W rzeczywistości SEO nic nie mówi o tym, kto i jak technicznie zmienia treść. FTP to protokół służący do przesyłania plików na serwer. Używa go się często podczas wdrażania strony: programista wysyła pliki HTML, CSS, PHP, grafiki. Ale dla zwykłego redaktora FTP jest kompletnie niepraktyczny i niebezpieczny. Trzeba znać strukturę katalogów, uważać, żeby nie nadpisać plików, a każda zmiana treści wymaga edycji pliku źródłowego. To dokładne przeciwieństwo idei „edycji bez kodowania”. Typowym błędem myślowym jest przekonanie, że skoro przez FTP „wrzuca się stronę”, to jest to technologia do jej obsługi przez użytkownika. W profesjonalnych wdrożeniach FTP zwykle jest dostępny tylko dla administratorów. SSL z kolei to technologia kryptograficzna, która służy do szyfrowania połączenia między przeglądarką a serwerem (dziś w praktyce mówimy częściej o TLS, ale skrót SSL ciągle funkcjonuje potocznie). Certyfikat SSL zapewnia poufność i integralność danych, co jest standardem przy logowaniu, płatnościach czy formularzach. Jednak nie ma żadnego wpływu na to, czy redaktor potrafi zmienić treść bez znajomości HTML. Można mieć idealnie skonfigurowany SSL i dalej edytować stronę w notatniku, a można mieć rozbudowany CMS bez certyfikatu – jedno nie wynika z drugiego. Podsumowując, SEO, FTP i SSL to ważne elementy ekosystemu webowego, ale dotyczą odpowiednio: widoczności w wyszukiwarkach, transferu plików i bezpieczeństwa transmisji. Żadne z nich nie daje typowego, przyjaznego panelu zarządzania treścią dla nietechnicznych użytkowników. Tę rolę spełniają systemy CMS, które są wręcz standardem branżowym przy tworzeniu serwisów, gdzie treść ma być często aktualizowana przez osoby spoza działu IT.

Pytanie 38

W JavaScript, funkcja matematyczna Math.pow() jest wykorzystywana do obliczania

A. potęgi liczby
B. pierwiastka kwadratowego liczby
C. wartości bezwzględnej liczby
D. wartości przybliżonej liczby
W języku JavaScript funkcja Math.pow() jest używana do obliczania potęgi liczby. Przyjmuje ona dwa argumenty: pierwszy to podstawa potęgowania, a drugi to wykładnik. W wyniku działania funkcji uzyskujemy wartość, która jest równoważna podstawie podniesionej do podanej potęgi. Na przykład, wywołanie Math.pow(2, 3) zwróci 8, ponieważ 2 do potęgi 3 to 2 * 2 * 2. Funkcja ta jest zgodna z ECMAScript, co oznacza, że jest standardem w JavaScript i można jej używać w różnych kontekstach, takich jak obliczenia matematyczne w aplikacjach webowych. Istotnym aspektem używania Math.pow() jest również fakt, że może przyjmować liczby ujemne oraz liczby zmiennoprzecinkowe, co czyni ją bardzo uniwersalnym narzędziem. Dodatkowo, dla potęgowania liczby do potęgi 0, wynik zawsze wynosi 1, co jest zgodne z zasadami matematycznymi. Dlatego Math.pow() jest kluczowym elementem biblioteki matematycznej JavaScript, ułatwiającym programistom wykonywanie bardziej skomplikowanych obliczeń.

Pytanie 39

Na zakończenie dnia w systemie zarządzania magazynem sklepu spożywczego generowany jest raport, który przedstawia produkty oraz ich dostawców, dla których ilość na stanie jest mniejsza niż 10 sztuk. Do stworzenia tego raportu zastosowano kwerendę

A. INSERT INTO
B. CHECK TABLE
C. SELECT
D. UPDATE
Odpowiedź 'SELECT' jest poprawna, ponieważ to polecenie służy do pobierania danych z bazy danych. Kwerenda SELECT umożliwia zdefiniowanie, jakie kolumny oraz z jakich tabel chcemy wyświetlić. W kontekście raportu dla sklepu spożywczego, który wyświetla produkty z ich dostawcami, gdzie stan magazynowy jest mniejszy niż 10 sztuk, kwerenda SELECT pozwoli na precyzyjne określenie kryteriów wyszukiwania, takich jak nazwa produktu, nazwa dostawcy oraz warunek dotyczący stanu magazynowego. Przykładowa kwerenda mogłaby wyglądać następująco: 'SELECT product_name, supplier_name FROM inventory WHERE stock < 10'. W praktyce, stosowanie kwerend SELECT w raportach umożliwia monitorowanie stanów magazynowych, co jest kluczowe dla efektywnego zarządzania zapasami oraz podejmowania decyzji o zamówieniach. Takie podejście jest zgodne z dobrymi praktykami w zarządzaniu danymi w sklepach detalicznych, gdzie ciągłe monitorowanie stanu magazynowego jest kluczowe dla utrzymania płynności sprzedaży i zadowolenia klientów.

Pytanie 40

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w przedziale (0, 100), a wartość zmiennej b jest większa od zera. Jak można poprawnie zapisać taki warunek?

A. if (a > 0 && a < 100 && b > 0)
B. if ((a > 0 11 a < 100) && b > 0)
C. if (a > 0 || a < 100 11 b < 0)
D. if ((a > 0 && a < 100) 11 b < 0)
Odpowiedzi, które nie spełniają wymogów pytania, zawierają różne błędy logiczne i syntaktyczne, które mogą prowadzić do nieporozumień w kodzie. W pierwszej opcji użyto operatora '11', co jest błędem, ponieważ nie jest to poprawny operator w JavaScript. Prawidłowy operator to '&&', który łączy warunki logiczne. W przypadku drugiej opcji zastosowano operator '||', co oznacza logiczne 'lub', co jest nieodpowiednie, gdyż wymaga spełnienia przynajmniej jednego z warunków, co nie jest zgodne z wymaganiem pytania. Dodatkowo, warunek a < 100 powinien być połączony z a > 0 w sposób, który jednoznacznie wskazuje na przedział wartości, co nie ma miejsca w tym zapisie. W kolejnej odpowiedzi, użycie operatora '11' również jest niepoprawne, co świadczy o nieznajomości podstawowych zasad składni języka JavaScript oraz błędnym zrozumieniu operatorów logicznych. Tego typu błędy często wynikają z ustalonych nawyków programistycznych, które nie uwzględniają specyfiki języka, co prowadzi do nieprawidłowych wniosków. Aby unikać takich pomyłek, warto regularnie przeglądać dokumentację oraz praktykować pisanie kodu z zachowaniem wytycznych dotyczących standardów i dobrych praktyk programowania.