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: 12 maja 2026 12:32
  • Data zakończenia: 12 maja 2026 12:43

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

W zaprezentowanym fragmencie zapytania SQL, instrukcja SELECT ma za zadanie zwrócić

SELECT COUNT(wartosc) FROM ...
A. średniej w kolumnie wartosc
B. liczby rekordów
C. suma w kolumnie wartosc
D. średniej wartości tabeli
Komenda SELECT COUNT w języku SQL jest używana do zwracania liczby wierszy w rezultacie zapytania. Użycie funkcji COUNT z nazwą kolumny, jak w przykładzie SELECT COUNT(wartosc), pozwala policzyć wszystkie niepuste wartości w danej kolumnie wartosc w tabeli. Jest to przydatne w przypadkach, gdy chcemy zrozumieć, ile danych spełnia określone kryteria, lub gdy interesuje nas liczba wierszy zawierających wartości w konkretnej kolumnie. Funkcja COUNT jest jedną z podstawowych funkcji agregujących w SQL, co oznacza, że podsumowuje dane w określony sposób. Stosowanie tej funkcji jest zgodne z najlepszymi praktykami w projektowaniu baz danych, gdzie często potrzebujemy analizować dane w sposób ilościowy. Przykładowo, jeśli prowadzimy bazę danych klientów, możemy użyć SELECT COUNT(id) FROM klienci, aby dowiedzieć się, ilu mamy zarejestrowanych klientów. Ta funkcja jest także kluczowym elementem w optymalizacji zapytań, ponieważ pozwala na szybkie uzyskanie informacji o liczbie rekordów bez konieczności przetwarzania wszystkich danych z tabeli. Zrozumienie działania COUNT i jego zastosowań jest kluczowe dla efektywnego przetwarzania danych i tworzenia wydajnych zapytań w języku SQL.

Pytanie 2

Którą kwerendę należy wykonać, aby zaktualizować wszystkim rekordom z tabeli pracownicy wartość w kolumnie plec na K, przyjmując na potrzeby zadania, że każde imię żeńskie kończy się literą a?

A. UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';
B. UPDATE pracownicy SET plec='K' WHERE imie='%a';
C. ALTER TABLE pracownicy SET plec='K' WHERE imie='%a';
D. ALTER TABLE pracownicy SET plec='K' WHERE imie LIKE '%a';
Poprawna jest kwerenda: UPDATE pracownicy SET plec='K' WHERE imie LIKE '%a';. Po pierwsze użyty jest właściwy typ polecenia SQL do modyfikacji danych w tabeli. Do zmiany wartości w istniejących rekordach zawsze używamy instrukcji UPDATE, a nie ALTER TABLE. ALTER TABLE służy do zmiany struktury tabeli (np. dodanie kolumny, zmiana typu danych, usunięcie kolumny), a nie do operowania na danych w wierszach. To jest taki podstawowy podział: DDL (Data Definition Language) – np. ALTER TABLE, CREATE, DROP – do definicji struktury; DML (Data Manipulation Language) – np. SELECT, INSERT, UPDATE, DELETE – do pracy na rekordach. W tym zadaniu ewidentnie potrzebna jest operacja DML. Druga ważna rzecz to warunek WHERE imie LIKE '%a'. Operator LIKE służy do porównywania tekstów z wykorzystaniem wzorców. Symbol % oznacza „dowolny ciąg znaków (również pusty)”, więc wzorzec '%a' oznacza: dowolny ciąg znaków zakończony literą „a”. Dokładnie o to chodzi w zadaniu: przyjmujemy założenie, że każde imię żeńskie kończy się na „a”, więc chcemy zaktualizować wszystkie rekordy, gdzie kolumna imie kończy się na „a”. Gdybyśmy chcieli szukać imion zaczynających się na „A”, używalibyśmy 'A%'. Moim zdaniem warto zapamiętać ten schemat, bo w praktyce bardzo często stosuje się LIKE do prostych filtrów tekstowych: wyszukiwanie użytkowników po fragmencie loginu, znajdowanie produktów po części nazwy, filtrowanie adresów e-mail po domenie itp. Przykład: UPDATE klienci SET status='VIP' WHERE nazwisko LIKE 'Nowak%'; – zaktualizuje wszystkich Nowaków. Albo: UPDATE produkty SET promocja=1 WHERE nazwa LIKE '%kabel%'; – zaznaczy jako promocyjne wszystkie produkty, których nazwa zawiera słowo „kabel”. W dobrych praktykach zaleca się uważać z aktualizacjami bez WHERE, bo wtedy zmieniamy wszystkie rekordy w tabeli. Tutaj warunek LIKE '%a' pełni rolę bezpiecznego filtra. W wielu systemach bazodanowych warto też pamiętać, że domyślnie porównania tekstowe mogą być niewrażliwe na wielkość liter (collation), więc 'a' i 'A' mogą być traktowane tak samo, ale to już zależy od konfiguracji bazy. W kontekście egzaminów zawodowych i pracy z SQL-em takie zadanie to klasyk – łączy poprawne użycie UPDATE z właściwym użyciem LIKE i symbolu % jako wieloznakowego wildcarda.

Pytanie 3

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

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

Pytanie 4

Kod JavaScript uruchomiony w wyniku kliknięcia przycisku ma na celu <img id="i1" src="obraz1.gif"> <button onclick="document.getElementById('i1').src='obraz2.gif'"> test</button>

A. ukryć obraz2.gif
B. wyświetlić obraz2.gif obok obraz1.gif
C. zmienić styl obrazu o id równym i1
D. zamienić obraz1.gif na obraz2.gif
Odpowiedź 'zamienić obraz1.gif na obraz2.gif' jest poprawna, ponieważ kod JavaScript w przycisku jest odpowiedzialny za zmianę źródła obrazu. W momencie kliknięcia przycisku, funkcja `document.getElementById('i1').src='obraz2.gif'` przypisuje nowe źródło do elementu o identyfikatorze 'i1', co efektywnie powoduje wyświetlenie obraz2.gif zamiast obraz1.gif. Tego typu manipulacje DOM są powszechnie stosowane w interaktywnych aplikacjach webowych, gdzie użytkownik wchodzi w interakcję z różnymi elementami. Przykładem zastosowania tej techniki może być tworzenie galerii zdjęć, gdzie użytkownik klika na miniaturkę, a główny obrazek zostaje zmieniony na wybrane zdjęcie. Warto również zauważyć, że ta zmiana jest realizowana bez potrzeby reładowania strony, co znacząco poprawia doświadczenie użytkownika. Takie podejście jest zgodne z dobrymi praktykami w zakresie tworzenia dynamicznych interfejsów użytkownika.

Pytanie 5

W dokumentacji CMS WordPress znajduje się zdanie:
"Enable comments for this post"
Co oznacza to zdanie?

A. Włącz formatowanie wpisu.
B. Włącz publikację wpisu.
C. Włącz edycję wpisu.
D. Włącz możliwość dodawania komentarzy do wpisu.
Poprawnie – komunikat „Enable comments for this post” w WordPressie oznacza dokładnie włączenie możliwości dodawania komentarzy do konkretnego wpisu. W praktyce jest to po prostu przełącznik, który decyduje, czy pod danym postem będzie widoczny formularz komentowania i lista komentarzy użytkowników. Z mojego doświadczenia to jedna z podstawowych opcji zarządzania interakcją z czytelnikami w systemach CMS. WordPress ma wbudowany system komentarzy i dla każdego wpisu z osobna można zdecydować, czy chcesz dopuścić dyskusję, czy raczej ma to być „statyczna” treść bez opinii użytkowników. Włączenie komentarzy nie wpływa na możliwość edycji, publikacji ani formatowania treści – to zupełnie osobne funkcje. Edycja odbywa się w edytorze blokowym lub klasycznym, publikacja jest kontrolowana przyciskiem „Opublikuj” / „Zaktualizuj”, a formatowanie dotyczy układu tekstu, nagłówków, obrazków, list itd. Włączanie komentarzy to raczej kwestia konfiguracji modułu dyskusji. W dobrych praktykach administracji WordPressa zaleca się świadome zarządzanie komentarzami: włączać je tam, gdzie istotna jest interakcja (np. blog, poradniki, aktualności), a wyłączać na stronach typu regulamin, polityka prywatności czy strony czysto informacyjne. W ustawieniach dyskusji można też ustawić moderację, wymóg zatwierdzania komentarzy, filtrowanie spamu czy ograniczenia dla niezalogowanych. W poważniejszych serwisach często łączy się natywne komentarze WordPressa z dodatkowymi wtyczkami (np. antyspam, integracja z social media), ale podstawowy przełącznik zawsze oznacza to samo: czy ten konkretny wpis ma mieć aktywną sekcję komentarzy, czy nie.

Pytanie 6

Skrypt w języku JavaScript, który zajmuje się płacami pracowników, ma na celu stworzenie raportu dla osób zatrudnionych na umowę o pracę, które otrzymują wynagrodzenie w przedziale 4000 do 4500 zł, w tym przedziale obustronnie domkniętym. Jakie jest kryterium do wygenerowania raportu?

A. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
B. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
C. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
D. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
Wielu uczniów ma kłopoty z poprawnym rozumieniem operatorów logicznych i jak je łączyć. Na przykład, odpowiedź umowa == 'praca' || (pensja >= 4000 || pensja <= 4500) jest niepoprawna, bo mówi, że wystarczy spełnić chociaż jeden z warunków, co nie zgadza się z tym, czego chcieliśmy. W tej sytuacji, jeśli pracownik nie ma umowy o pracę, a jego pensja wynosi 5000 zł, to raport i tak może się wygenerować, co jest sprzeczne z zamysłem pytania. Inny błąd to użycie '||' w odpowiedzi umowa == 'praca' && (pensja >= 4000 || pensja <= 4500) – to znowu prowadzi do nieprawidłowego wniosku. Gdy pensja wynosi 3500 zł, raport ma szansę na generację, mimo że nie spełnia wymogu dotyczącego płac. W odpowiedzi umowa == 'praca' || (pensja >= 4000 && pensja <= 4500) też widać błędne zrozumienie operatorów, co prowadzi do sytuacji, w której raport może być generowany dla pracowników z pensjami poniżej 4000 zł, tylko dlatego, że mają umowę o pracę. Kluczowy błąd to brak dostrzegania, że w takich sytuacjach wszystkie warunki muszą być spełnione, co oznacza, że trzeba używać operatora '&&'. Zrozumienie operatorów logicznych to podstawa w programowaniu i bardzo ważny element przy tworzeniu skutecznych skryptów.

Pytanie 7

Które zapytanie SQL wybiera nazwiska z tabeli klient, które mają co najmniej jedną literę i zaczynają się na literę Z?

A. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%'
B. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'
C. SELECT nazwisko FROM klient WHERE nazwisko='Z_?'
D. SELECT nazwisko FROM klient WHERE nazwisko='Z?'
Odpowiedź SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'; jest poprawna, ponieważ wykorzystuje operator LIKE, który jest standardowym narzędziem w SQL do wyszukiwania wzorców w danych tekstowych. Znak procenta (%) w tym kontekście oznacza, że może wystąpić dowolna liczba znaków po literze Z, co jest zgodne z wymaganiem, aby nazwiska były co najmniej jednoliterowe. W praktyce, takie zapytanie umożliwia efektywne wyszukiwanie danych w bazach, co jest kluczowe w kontekście aplikacji zarządzających danymi klientów. Dobre praktyki w projektowaniu baz danych zalecają stosowanie operatora LIKE do filtrowania wyników, co pozwala na zwiększenie przejrzystości i wydajności. W przypadku wyszukiwania nazwisk, można również użyć indeksów, aby przyspieszyć wykonanie zapytań, co jest ważne w kontekście dużych zbiorów danych, gdzie czas odpowiedzi aplikacji może mieć istotne znaczenie dla użytkowników końcowych. Używanie LIKE w połączeniu z odpowiednimi znakami wieloznacznymi jest więc kluczowym elementem efektywnego zarządzania danymi.

Pytanie 8

Jaką treść komunikatu należy umieścić w kodzie PHP zamiast znaków zapytania?

$a = mysql_connect('localhost', 'adam', 'mojeHaslo');

if (!$a)
    echo "?????????????";
A. Błąd połączenia z serwerem SQL
B. Rekord został pomyślnie dodany do bazy
C. Wybrana baza danych nie istnieje
D. Błąd w trakcie przetwarzania zapytania SQL
Poprawna odpowiedź 'Błąd połączenia z serwerem SQL' jest właściwa, ponieważ funkcja mysql_connect() służy do nawiązywania połączenia z serwerem bazy danych MySQL. Jeśli połączenie nie powiedzie się, zwraca false. W takiej sytuacji należy poinformować użytkownika o nieudanym połączeniu. Jest to kluczowe w debugowaniu i zapewnianiu użytkownikowi zrozumiałych komunikatów błędów. W praktyce, połączenie z bazą danych jest podstawowym krokiem w wielu aplikacjach internetowych, a jego poprawna obsługa to standardowa praktyka branżowa. Współczesne podejście wymaga także użycia rozszerzenia mysqli lub PDO zamiast przestarzałej funkcji mysql_connect(). Jest to zalecane ze względu na lepsze wsparcie bezpieczeństwa i wydajności. Użycie funkcji mysqli_connect() pozwala na obsługę zarówno błędów połączenia, jak i zapytań SQL w sposób bardziej elastyczny i bezpieczny.

Pytanie 9

Wypisanie tekstu w języku JavaScript nie jest możliwe przy użyciu

A. funkcji MessageBox()
B. metody window.alert()
C. metody document.write()
D. własności innerHTML
W kontekście JavaScriptu w przeglądarce kluczowe jest rozumienie, jakie dokładnie narzędzia udostępnia środowisko uruchomieniowe, a jakie pochodzą z innych technologii czy języków. Częsty błąd polega na mieszaniu pojęć z różnych platform: ktoś programował kiedyś w C#, Delphi czy nawet w jakimś starszym systemie okienkowym i automatycznie zakłada, że funkcja MessageBox() będzie także dostępna w JavaScripcie. Tymczasem standardowe API przeglądarki definiuje inne mechanizmy do wyświetlania komunikatów. Właściwość innerHTML jest elementem DOM i absolutnie można za jej pomocą „wypisać” tekst na stronie. W praktyce sprowadza się to do modyfikacji zawartości konkretnego elementu HTML. Jeśli pobierzemy np. paragraf przez document.getElementById i ustawimy jego innerHTML na jakiś tekst, to użytkownik od razu zobaczy tę zmianę. Część osób myśli, że to coś „bardziej zaawansowanego” i nie traktuje tego jako zwykłego wypisywania, ale w realnych projektach właśnie tak się pokazuje dane: wyniki obliczeń, komunikaty, odpowiedzi z serwera itp. Metoda window.alert() jest prostym, ale w pełni poprawnym sposobem wyświetlania tekstu. Nie umieszcza treści w strukturze HTML, tylko pokazuje systemowe okienko dialogowe. Nadal jednak jest to forma prezentacji tekstu użytkownikowi, więc jak najbardziej spełnia definicję „wypisania tekstu” w kontekście zadania. Błędne przekonanie, że „prawdziwe” wypisywanie to tylko coś, co pojawia się w treści strony, jest po prostu zbyt wąskim podejściem. Document.write() z kolei jest mechanizmem historycznym, ale technicznie pozwala wstrzyknąć tekst do dokumentu podczas jego ładowania. W wielu nowych materiałach odradza się jego używanie, ponieważ utrudnia utrzymanie kodu i może nadpisać zawartość strony po załadowaniu, jednak to nie zmienia faktu, że tekst jest nim realnie wypisywany. Mylenie „złej praktyki” z „brakiem możliwości” to kolejny typowy błąd. Funkcja MessageBox() nie jest częścią standardowego API JavaScriptu w przeglądarce. Jeżeli nie zdefiniujemy jej sami w kodzie, interpreter zgłosi błąd. Właśnie dlatego to ona jest jedynym poprawnym wyborem jako mechanizm, którego nie da się użyć do wypisania tekstu w typowym środowisku webowym. Dobrą praktyką jest zawsze sprawdzanie dokumentacji konkretnego języka i platformy, a nie opieranie się na intuicji wyniesionej z innych technologii.

Pytanie 10

Co chce osiągnąć poniższe zapytanie MySQL?

ALTER TABLE ksiazki
MODIFY tytul VARCHAR(100) NOT NULL;
A. Zmienić nazwę kolumny w tabeli ksiazki
B. Usunąć kolumnę tytul z tabeli ksiazki
C. Dodać do tabeli ksiazki kolumnę tytul
D. Zmienić typ kolumny w tabeli ksiazki
Rozważając inne odpowiedzi, warto zrozumieć, dlaczego nie są poprawne. Dodanie kolumny do tabeli w SQL realizowane jest za pomocą polecenia ADD, co różni się od użytego tutaj MODIFY. Polecenie ADD jest używane, gdy chcemy wprowadzić nową kolumnę, której wcześniej w tabeli nie było. Z kolei usunięcie kolumny wymaga użycia DROP COLUMN, co także odbiega od przedstawionego polecenia. Polecenie DROP COLUMN jest bardziej destrukcyjne, ponieważ usuwa całą kolumnę i jej dane. Zmiana nazwy kolumny w SQL zazwyczaj wymaga użycia polecenia RENAME, które służy do zmiany nazewnictwa kolumn lub tabel. W zależności od systemu zarządzania bazą danych (DBMS), składnia może się różnić, ale w MySQL często używa się RENAME COLUMN. Błędne rozumienie tych poleceń często wynika z niewystarczającego zapoznania się z dokumentacją danego DBMS, co może prowadzić do zastosowania nieodpowiednich poleceń. Praktyka i znajomość standardów SQL pomagają uniknąć takich pomyłek, zapewniając poprawną i efektywną pracę z bazą danych.

Pytanie 11

Na stronie www znajduje się formularz, do którego należy stworzyć następujące funkcje: walidacja: w czasie wypełniania formularza na bieżąco kontrolowana jest poprawność danych, przesyłanie danych: po zrealizowaniu formularza i jego zatwierdzeniu, dane są przekazywane do bazy danych na serwerze. Aby zrealizować tę funkcjonalność w jak najprostszy sposób, należy zapisać

A. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
B. walidację oraz przesyłanie danych w języku PHP
C. walidację oraz przesyłanie danych w języku JavaScript
D. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
Wybór walidacji oraz przesyłania danych wyłącznie w PHP nie tylko nie jest optymalny, ale również niezgodny z dobrymi praktykami. Walidacja po stronie serwera, bez wcześniejszego sprawdzenia danych po stronie klienta, prowadzi do gorszego doświadczenia użytkownika, ponieważ każde błędne dane są wysyłane na serwer przed zwróceniem błędu do użytkownika. Taki proces zwiększa obciążenie serwera, ponieważ każde błędne żądanie wiąże się z niepotrzebnym przetwarzaniem, co jest szczególnie nieefektywne w przypadku formularzy często używanych przez użytkowników. W przypadku przesyłania danych w JavaScript, istnieje ryzyko, że dane mogą być manipulowane po drodze, co prowadzi do problemów z bezpieczeństwem, takich jak ataki typu Cross-Site Scripting (XSS). Oprócz tego, nie jest właściwe korzystanie z PHP do walidacji rzeczywistych danych wejściowych w interfejsie użytkownika, gdyż PHP jest językiem działającym po stronie serwera i nie ma dostępu do stanu interfejsu. Przykładem błędnego myślenia może być założenie, że serwer może efektywnie obsłużyć wszystkie błędy walidacji na etapie zapisu danych w bazie, co jest nieefektywne w praktyce. W związku z tym każda aplikacja internetowa powinna implementować walidację danych po stronie klienta i serwera, aby zminimalizować problemy z użytkownikami oraz zapewnić bezpieczeństwo aplikacji.

Pytanie 12

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

Pytanie 13

Który z poniższych sposobów wyświetlania tekstu nie jest określony w języku JavaScript?

A. Funkcja window.alert()
B. Właściwość innerHTML
C. Funkcja MessageBox()
D. Metoda document.write()
Funkcja MessageBox() nie istnieje w JavaScript, więc to nie jest dobła odpowiedź, jeśli chodzi o wyświetlanie tekstu. W JavaScript mamy kilka fajnych metod, które można wykorzystać do pokazywania danych na stronie. Na przykład, możesz użyć innerHTML, żeby zmieniać zawartość HTML elementów. Możesz to zrobić tak: document.getElementById('elementId').innerHTML = 'Nowa zawartość';. Inna opcja to window.alert(), która wyświetla okno z komunikatem dla użytkownika, co czasem bywa przydatne. Z kolei, jeśli chcesz coś wypisać na stronie w momencie, gdy się ładuje, to możesz użyć document.write('Hello, World!');, choć to nie jest najlepszy pomysł w nowoczesnym kodowaniu. Warto pamiętać, że wszystkie te metody są częścią ECMAScript i naprawdę często się je stosuje w praktyce programowania.

Pytanie 14

Cookie stworzony za pomocą polecenia PHP

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez 24 godziny
B. będzie przechowywany na serwerze przez jedną godzinę
C. wygaśnie po jednej godzinie od momentu jego utworzenia
D. wygaśnie po dobie od momentu jego utworzenia
Wybór odpowiedzi, że ciasteczko wygaśnie po jednej godzinie od jego utworzenia, jest błędny, ponieważ czas wygaśnięcia ciasteczka jest jasno określony w wywołaniu funkcji setcookie(). Przypisanie wartości time() + (3600 * 24) oznacza, że ciasteczko będzie ważne przez 24 godziny, a nie jedną. Pojęcia związane z czasem życia ciasteczek są kluczowe w kontekście zarządzania sesjami i stanami użytkowników w aplikacjach webowych. Wiele osób myli jednostki czasu, co prowadzi do nieprawidłowych założeń dotyczących działania ich aplikacji. Kolejny błąd polega na przeświadczeniu, że ciasteczka są przechowywane na serwerze, gdy w rzeczywistości są one zapisywane na komputerze użytkownika. Serwer ustala zasady dotyczące ciasteczek, ale ich fizyczne miejsce przechowywania to urządzenie klienckie. Często zdarza się również, że użytkownicy nie są świadomi, jak długo ciasteczka mogą pozostać aktywne, co wpływa na ich doświadczenia i może prowadzić do nieporozumień w kontekście logowania czy ustawień prywatności. W związku z tym właściwe zrozumienie działania i życia ciasteczek jest kluczowe dla zapewnienia prawidłowego funkcjonowania aplikacji oraz ochrony danych użytkowników.

Pytanie 15

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. AVG
B. SUM
C. NUMBER
D. COUNT
Funkcja COUNT jest naprawdę ważna w SQL, bo pozwala nam zliczać rekordy w naszych zbiorach danych. Używa się jej w różnych sytuacjach, na przykład przy robieniu raportów czy analizie danych. Możesz na przykład napisać zapytanie: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska'. Dzięki temu dowiesz się, ilu klientów jest z Polski. To bardzo przydaje się do analizy demograficznej czy oceniania rynku. Co też warto wiedzieć, COUNT działa na wszystkich rekordach, bez względu na to, co jest w kolumnach. Takie wszechstronne narzędzie z pewnością ułatwia pracę z danymi. A jeśli dodasz klauzulę GROUP BY do COUNT, to możesz zliczać rekordy w różnych kategoriach, co jest mega pomocne przy skomplikowanych raportach. Ogólnie rzecz biorąc, używanie funkcji agregujących jak COUNT to dobra praktyka w SQL, bo sprawia, że kod jest bardziej efektywny i czytelny.

Pytanie 16

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

A. ALTER TABLE samochody ADD FOREIGN KEY kolor REFERENCES lakier;
B. ALTER TABLE samochody ADD FOREIGN KEY (barwa) REFERENCES samochody(kolor);
C. ALTER TABLE samochody ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);
D. ALTER TABLE samochody ADD FOREIGN KEY barwa REFERENCES samochody.lakier;
Aby połączyć tabele 'samochody' i 'lakier' za pomocą klucza obcego, należy zastosować kwerendę ALTER TABLE samochody ADD FOREIGN KEY (kolor) REFERENCES lakier(lakierId);. W tym przypadku 'kolor' w tabeli 'samochody' odnosi się do identyfikatora 'lakierId' w tabeli 'lakier', co zapewnia integralność referencyjną między tymi dwoma tabelami. Klucz obcy jest mechanizmem, który pozwala na zapewnienie, że wartości w kolumnie 'kolor' w tabeli 'samochody' muszą odpowiadać wartościom w kolumnie 'lakierId' w tabeli 'lakier', co zapobiega wprowadzeniu danych, które nie mają odpowiednika w tabeli 'lakier'. Przykładowo, jeżeli próbujemy dodać samochód w kolorze, który nie istnieje w tabeli 'lakier', system nie pozwoli na to działanie. Taka struktura bazy danych jest zgodna z zasadami normalizacji, która ma na celu eliminację redundancji danych oraz zwiększenie ich spójności. Stosowanie kluczy obcych jest standardem w projektowaniu relacyjnych baz danych, ponieważ ułatwia zarządzanie danymi oraz ich integralność.

Pytanie 17

Wskaż, który z poniższych jest poprawnym zapisem zmiennej w języku JavaScript.

A. var 2nameVar = 10;
B. const var-name = 10;
C. var $name@ = 10;
D. let variableName = 10;
W JavaScript istnieje kilka zasad dotyczących nazywania zmiennych, które są kluczowe dla poprawnego działania kodu. Zmienna nie może zaczynać się od cyfry, co jest błędem w przypadku zapisu <code>var 2nameVar = 10;</code>. Numer na początku nazwy zmiennej jest zabroniony, ponieważ może prowadzić do niejednoznaczności w rozumieniu kodu przez interpreter. Z kolei <code>const var-name = 10;</code> jest błędny z powodu użycia znaku minus, który nie jest dozwolony w nazwach zmiennych. Znak minus jest interpretowany jako operator, co powoduje, że taki zapis jest nieprawidłowy. Kolejna niepoprawna opcja to <code>var $name@ = 10;</code>. Chociaż znak dolara jest dozwolony w nazwach zmiennych, to znak <code>@</code> już nie. Użycie niedozwolonych znaków w nazwach zmiennych jest częstym błędem początkujących programistów, którzy nie są zaznajomieni z pełnym zakresem dozwolonych symboli. Moim zdaniem, zrozumienie tych zasad jest kluczowe, aby uniknąć typowych pułapek w programowaniu. Dodatkowo, stosowanie się do standardowych konwencji nazewnictwa, takich jak camelCase, poprawia czytelność i zrozumiałość kodu, co jest istotne w pracy zespołowej i podczas utrzymania większych projektów. Warto pamiętać, że przestrzeganie dobrych praktyk programistycznych nie tylko zapobiega błędom, ale również ułatwia rozwój i testowanie aplikacji.

Pytanie 18

W skrypcie JavaScript operatory: ||, && zaliczane są do kategorii operatorów

A. logicznymi
B. bitowych
C. arytmetycznych
D. przypisania
Odpowiedzi przypisania, bitowe oraz arytmetyczne są błędne z kilku powodów, które dotyczą ich definicji i zastosowania w kontekście języka JavaScript. Operatory przypisania, takie jak '=', służą do przypisywania wartości do zmiennych, co jest fundamentalnym aspektem zarządzania danymi w programowaniu. Nie mają one jednak związku z operacjami logicznymi, które koncentrują się na manipulacji wartościami prawda/fałsz. Z kolei operatory bitowe, takie jak '&' i '|', operują na bitach liczby i są używane do wykonywania operacji na poziomie binarnym. Chociaż operatorzy bitowi mogą wydawać się podobni do operatorów logicznych, ich zastosowanie i efekty są zupełnie inne. Operatorzy arytmetyczni, natomiast, obejmują takie operacje jak dodawanie, odejmowanie, mnożenie i dzielenie, które są stosowane do wartości liczbowych. Ostatecznie, mylenie operatorów logicznych z tymi trzema kategoriami może prowadzić do poważnych błędów w kodzie, takich jak nieprawidłowe warunki w instrukcjach warunkowych, co może skutkować nieoczekiwanym zachowaniem aplikacji. Zrozumienie różnic pomiędzy tymi operatorami jest kluczowe dla każdego programisty, aby uniknąć typowych pułapek związanych z logiką programowania.

Pytanie 19

Kod przedstawiony poniżej został napisany w języku JavaScript. W zdefiniowanym obiekcie metoda to element o nazwie

 var obj1 = {
    czescUlamkowa: 10,
    czescCalkowita: 20,
    oblicz: function () { ... }
}
A. czescUlamkowa
B. obj1
C. oblicz
D. czescCalkowita
Odpowiedzi 'czescUlamkowa', 'obj1' oraz 'czescCalkowita' są niepoprawne, ponieważ nie są metodami w kontekście obiektu 'obj1'. 'czescUlamkowa' i 'czescCalkowita' to właściwości obiektu, które przechowują dane, ale nie wykonują żadnych operacji. W JavaScript, właściwości obiektów są parametrami, które mogą przechowywać wartości, jednak nie są to funkcje. Właściwości te mogą być wykorzystywane w metodach do przechowywania i manipulowania danymi, ale same w sobie nie wykonują żadnych obliczeń ani operacji. Odpowiedź 'obj1' odnosi się do samego obiektu, a nie do jego metod. W kontekście programowania obiektowego, obiekty są instancjami klas, które grupują ze sobą zarówno dane, jak i funkcjonalność, ale tylko metody można wywoływać w celu wykonania operacji. Typowym błędem myślowym jest mylenie pojęcia obiektu z pojęciem metody. Aby rozwiązać takie nieporozumienia, warto przyjąć podejście, w którym każda metoda jest rozumiana jako funkcjonalność obiektu, podczas gdy właściwości służą do przechowywania danych. Zrozumienie tej różnicy jest kluczowe, aby efektywnie korzystać z obiektowego modelu programowania w JavaScript.

Pytanie 20

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
B. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
C. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
D. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 21

Który typ danych SQL należy użyć, jako optymalny, do zapisania numeru PESEL?

A. BLOB
B. CHAR(11)
C. TINYINT
D. FLOAT(11)
W przypadku numeru PESEL kluczowe jest zrozumienie, że mamy do czynienia z identyfikatorem, a nie z liczbą, na której będziemy wykonywać obliczenia. To rozróżnienie jest bardzo ważne w projektowaniu baz danych, bo prowadzi do innego doboru typów danych. Częsty błąd polega na tym, że skoro PESEL składa się tylko z cyfr, to „na logikę” powinien być przechowywany jako typ liczbowy. W praktyce to podejście generuje więcej problemów niż pożytku. Typ TINYINT jest zdecydowanie zbyt mały – w większości systemów pozwala przechować zakres od 0 do 255 lub podobny, a PESEL ma 11 cyfr, więc nawet nie ma fizycznej możliwości, żeby taki typ pomieścił pełną wartość. To jest po prostu zupełnie nieadekwatny zakres. Z kolei użycie typu zmiennoprzecinkowego, takiego jak FLOAT(11), jest jeszcze gorszym pomysłem. Typ FLOAT służy do przybliżonego zapisu liczb rzeczywistych i może wprowadzać błędy zaokrągleń. W przypadku identyfikatora, który musi być zapisany dokładnie co do cyfry, jakikolwiek błąd reprezentacji jest niedopuszczalny. Dodatkowo typy zmiennoprzecinkowe nie gwarantują zachowania wszystkich cyfr w sposób bezstratny przy dużych wartościach, a PESEL ma ich 11. Można też natknąć się na problem utraty zer wiodących, bo liczby w SQL nie „pamiętają” formatu, tylko samą wartość liczbową. BLOB natomiast służy do przechowywania danych binarnych: plików, obrazów, dokumentów, zaszyfrowanych bloków danych. Używanie BLOB‑a do trzymania prostego tekstowego identyfikatora jest sprzeczne z dobrymi praktykami projektowania. Utrudnia to indeksowanie, wyszukiwanie, sortowanie i walidację, a do tego zużywa niepotrzebnie więcej zasobów. W profesjonalnych projektach baz danych przyjmuje się zasadę: dane tekstowe o znanej długości przechowujemy w typach znakowych (CHAR/VARCHAR), liczby do obliczeń w typach numerycznych, a typy binarne zostawiamy na pliki i dane nieustrukturyzowane. Błędne odpowiedzi wynikają zwykle z automatycznego kojarzenia „cyfry = liczba” i z braku rozróżnienia między wartością liczbową a identyfikatorem, który tylko składa się z cyfr, ale nie jest przeznaczony do liczenia. Właśnie dlatego optymalnym i zgodnym z dobrymi praktykami wyborem dla PESEL jest typ znakowy o stałej długości, czyli CHAR(11).

Pytanie 22

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

A. SELECT COUNT(*) FROM Koty
B. SELECT COUNT(Koty) AS ROWNUM
C. SELECT COUNT(ROWNUM) FROM Koty
D. SELECT ROWNUM() FROM Koty
Poprawna odpowiedź to 'SELECT COUNT(*) FROM Koty', ponieważ to standardowy sposób zliczania wszystkich wierszy w tabeli w SQL. Funkcja COUNT(*) zlicza wszystkie wiersze, niezależnie od tego, czy zawierają wartości NULL, czy nie. Jest to najczęściej używana metoda w praktyce, ponieważ zapewnia dokładny wynik i jest także optymalizowana przez silnik baz danych, co czyni ją efektywną. Na przykład, jeśli mamy tabelę 'Koty' zawierającą różne dane o kotach, użycie tego polecenia zwróci dokładną liczbę kotów zapisanych w tej tabeli. Dobrym zwyczajem jest również korzystanie z aliasów lub konstruowania zapytań z dodatkowymi warunkami, co pozwala na bardziej złożoną analizę danych. Przy pracy z dużymi zbiorami danych, zrozumienie jak działa COUNT(*) i jego zastosowanie w kontekście innych funkcji agregujących jest kluczowe dla optymalizacji zapytań. Warto również pamiętać, że w SQL standardowym zliczanie wierszy bezpośrednio z tabeli jest znacznie bardziej efektywne i czytelne niż inne metody, co czyni tę praktykę najlepszą do stosowania w codziennej pracy z bazami danych.

Pytanie 23

W kodzie JavaScript aby wywołać okno z polem do wprowadzania danych i przyciskami OK i ANULUJ, należy zastosować metodę

A. message();
B. alert();
C. prompt();
D. confirm();
W tym zadaniu wszystko kręci się wokół trzech podstawowych funkcji dialogowych JavaScriptu: alert(), confirm() i prompt(). Bardzo łatwo je ze sobą pomylić, bo wszystkie wywołują okienka przeglądarkowe i na pierwszy rzut oka wyglądają podobnie. Jednak ich przeznaczenie jest inne i warto to sobie raz porządnie poukładać w głowie. alert() służy wyłącznie do wyświetlenia komunikatu. Pokazuje okno z tekstem i jednym przyciskiem OK. Nie ma żadnego pola do wpisywania danych, nie zwraca też żadnej wartości od użytkownika – po prostu informuje. Typowe użycie to komunikaty ostrzegawcze albo bardzo proste debugowanie na początku nauki. Jeśli ktoś wybierze alert() przy pytaniu o wprowadzanie danych, to zwykle dlatego, że kojarzy „okienko w przeglądarce” właśnie z alertem, bo to najczęściej pokazywany przykład. confirm() to trochę inna bajka. To okno z komunikatem i dwoma przyciskami: OK i Anuluj. Ta funkcja zwraca wartość typu boolean: true dla OK, false dla Anuluj. Używa się jej, gdy chcesz zapytać użytkownika o potwierdzenie jakiejś akcji, np. „Czy na pewno chcesz usunąć ten rekord?”. I tu pojawia się częsty błąd: skoro są dwa przyciski, to wielu osobom wydaje się, że to jest dokładnie to, o co chodzi w pytaniu. Brakuje jednak kluczowego elementu – pola tekstowego do wpisania danych. confirm() niczego nie pobiera, jedynie pyta o decyzję tak/nie. Z kolei message() w ogóle nie jest standardową funkcją w JavaScripcie. Jeśli ktoś ją wybierze, to zwykle wynika to z domysłu na zasadzie „brzmi sensownie”. W specyfikacji ECMAScript nie ma takiej wbudowanej metody, więc w normalnym kodzie przeglądarkowym jej użycie zakończy się błędem ReferenceError. Tego typu odpowiedzi uczą, żeby nie zgadywać po nazwie, tylko kojarzyć konkretne funkcje z ich działaniem. Podsumowując, jedyna funkcja, która łączy w sobie pole tekstowe oraz przyciski OK i Anuluj, to prompt(). alert() tylko informuje, confirm() tylko pyta o potwierdzenie, a message() po prostu nie istnieje jako standardowa metoda. Typowy błąd myślowy polega na skupieniu się na samych przyciskach i pominięciu wymogu „pola do wprowadzania danych”, które jest tutaj kluczowe z punktu widzenia logiki języka JavaScript i sposobu komunikacji z użytkownikiem.

Pytanie 24

Definicja stylu w CSS, którą zaprezentowano, dotyczy odsyłacza, który

a:visited {color: orange;}
A. był wcześniej odwiedzany
B. posiada niepoprawny adres URL
C. ma wskaźnik myszy umieszczony nad sobą
D. jeszcze nigdy nie został odwiedzony
Pseudoklasa :visited w CSS jest używana do stylizowania odsyłaczy, które zostały już odwiedzone przez użytkownika. Oznacza to, że przeglądarka zapisuje informacje o odwiedzonych stronach w historii przeglądania i na tej podstawie zmienia styl odsyłacza. W przykładzie a:visited {color: orange;} zmienia kolor tekstu odwiedzonych linków na pomarańczowy. Jest to powszechna praktyka stosowana w projektowaniu stron internetowych, która pomaga użytkownikom wizualnie odróżniać odwiedzone odsyłacze od nieodwiedzonych, co poprawia ich orientację na stronie. Dobre praktyki projektowania zakładają tworzenie intuicyjnych interfejsów użytkownika i użycie mechanizmu :visited do poprawy użyteczności. Ważne jest, aby unikać stosowania bardziej zaawansowanych stylów w :visited, takich jak zmiana rozmiaru czcionki czy dodawanie obrazów tła, ze względu na ograniczenia bezpieczeństwa przeglądarek, które chronią prywatność użytkowników. Korzystanie z :visited w sposób świadomy i zgodny ze standardami W3C zwiększa efektywność nawigacji i jest istotnym elementem przyjaznego projektowania stron WWW

Pytanie 25

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w jednostronnie domkniętym przedziale <-5, 10)?

A. $zmienna1 <= -5 || $zmienna1 < 10
B. $zmienna1 <= -5 && $zmienna1 < 10
C. $zmienna1 >= -5 || $zmienna1 < 10
D. $zmienna1 >= -5 && $zmienna1 < 10
W analizowanych odpowiedziach pojawia się kilka błędnych koncepcji związanych z użyciem operatorów logicznych oraz interpretacją przedziałów. W przypadku wyrażenia $zmienna1 >= -5 || $zmienna1 < 10, zastosowanie operatora || (OR) prowadzi do sytuacji, w której warunki są połączone w sposób, który nie spełnia wymagań jednostronnie domkniętego przedziału. W praktyce oznacza to, że jeśli zmienna1 jest mniejsza od 10, ale większa od -5, cały warunek zwraca prawdę, co jest niezgodne z zamierzonym przedziałem. Podobny błąd występuje w wyrażeniu $zmienna1 <= -5 || $zmienna1 < 10, gdzie również użycie operatora OR skutkuje tym, że przedział nie jest odpowiednio ograniczony. Ostatnie wyrażenie $zmienna1 <= -5 && $zmienna1 < 10 zawiera dodatkowo błąd związany z interpretacją granicy -5, które nie powinno być włączone w przedział domknięty. Takie błędne rozumienie prowadzi do nieprawidłowego przechwytywania wartości zmiennej, co jest szczególnie istotne w kontekście programowania w PHP, gdzie precyzyjne określenie warunków jest kluczowe dla zapewnienia poprawności działania aplikacji. Zrozumienie różnicy między jednostronnie domkniętym a domkniętym przedziałem jest fundamentem w programowaniu i pozwala uniknąć typowych pułapek podczas implementacji logiki aplikacji. Warto także regularnie przeglądać dokumentację oraz standardy dotyczące operatorskich konstrukcji w PHP, aby utrzymać wysoką jakość kodu.

Pytanie 26

Element lub grupa elementów, która w jednoznaczny sposób identyfikuje każdy pojedynczy rekord w tabeli w bazie danych, nazywa się kluczem

A. podstawowy
B. obcy
C. przestawny
D. inkrementacyjny
Klucz inkrementacyjny to termin, który może być mylnie stosowany w kontekście kluczy podstawowych. Choć klucz podstawowy może być inkrementacyjny, co oznacza, że jego wartość rośnie w miarę dodawania nowych rekordów, nie jest to jego jedyna możliwa forma. Klucz podstawowy może być również złożony z kilku pól (klucz złożony) lub oparty na wartościach, które nie są inkrementowane. Z kolei klucz przestawny (ang. pivot key) to termin nieznany w klasycznej terminologii baz danych; nie odnosi się on do identyfikacji wierszy, a raczej do organizacji danych w tabelach przestawnych, które służą do agregacji danych. Klucz obcy (ang. foreign key) jest innym pojęciem, oznaczającym pole, które wskazuje na klucz podstawowy w innej tabeli i służy do zapewnienia powiązań między danymi, ale nie identyfikuje ono pojedynczych rekordów w danej tabeli. Typowe błędy w rozumieniu tych pojęć to mylenie ich ról oraz funkcji, co prowadzi do niewłaściwego projektowania baz danych, w którym integralność oraz relacje pomiędzy danymi są niewłaściwie zaimplementowane. Kluczowe jest, aby zrozumieć, że klucz podstawowy jest podstawowym komponentem dla każdej tabeli, a inne typy kluczy pełnią różne funkcje w kontekście relacji między danymi.

Pytanie 27

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. ALTER TABLE rosliny ADD miesiacSiewu int
B. CREATE TABLE rosliny {miesiacSiewu int}
C. UPDATE rosliny ADD miesiacSiewu int
D. INSERT INTO rosliny VALUES (miesiacSiewu int)
Wszystkie błędne odpowiedzi opierają się na nieprawidłowym rozumieniu funkcji i zastosowania instrukcji w SQL. Polecenie INSERT INTO rosliny VALUES (miesiacSiewu int) jest niewłaściwe, ponieważ służy do wstawiania nowych rekordów do tabeli, a nie do modyfikacji jej struktury. Wstawiając dane, należy określić wartości dla istniejących kolumn, a nie definiować nowego pola. Funkcja UPDATE rosliny ADD miesiacSiewu int również jest myląca, gdyż polecenie UPDATE jest używane do aktualizacji istniejących danych w tabeli, a nie do dodawania nowych kolumn. Ponadto, dodawanie kolumny powinno odbywać się za pomocą ALTER TABLE, a nie poprzez UPDATE. Ostatecznie, CREATE TABLE rosliny {miesiacSiewu int} jest niewłaściwe, ponieważ polecenie CREATE TABLE jest stosowane do tworzenia nowej tabeli, a nie do modyfikacji istniejącej. Warto zauważyć, że w SQL każda instrukcja ma swoje specyficzne zastosowanie; nie można ich dowolnie zamieniać. Typowe błędy w myśleniu o SQL mogą prowadzić do nieefektywnego zarządzania danymi, dlatego kluczowe jest zrozumienie różnic między instrukcjami, aby skutecznie korzystać z możliwości baz danych.

Pytanie 28

Aby przekształcić tekst „ala ma psa” na „ALA MA PSA”, jaka funkcja PHP powinna być zastosowana?

A. strtolower('ala ma psa');
B. ucfirst ('ala ma psa');
C. strtoupper('ala ma psa');
D. strstr ('ala ma psa');
Funkcja strtoupper w PHP jest używana do konwersji wszystkich liter w danym ciągu znaków na wielkie litery. W kontekście modyfikacji tekstu „ala ma psa” na „ALA MA PSA”, zastosowanie funkcji strtoupper('ala ma psa') jest poprawnym podejściem. Funkcja ta jest częścią standardowej biblioteki PHP i jest szeroko stosowana w projektach, gdzie zachowanie wielkich liter jest kluczowe. Przykład użycia funkcji strtoupper jest prosty: wystarczy przekazać do niej ciąg, który ma zostać przekształcony. Przykładem może być zapis: $text = 'ala ma psa'; $uppercaseText = strtoupper($text); echo $uppercaseText; co wygeneruje wynik ALA MA PSA. Warto zauważyć, że funkcja ta nie zmienia oryginalnego ciągu, lecz zwraca nowy ciąg z przekształconymi literami. Zastosowanie funkcji strtoupper jest szczególnie przydatne w aplikacjach webowych, gdzie formatowanie tekstu może być kluczowe dla zapewnienia spójności danych wyjściowych oraz ich estetyki.

Pytanie 29

Atrybut value w formularzu XHTML

A. określa nazwę pola
B. ogranicza maksymalną długość pola
C. ustawia pole jako tylko do odczytu
D. określa wartość domyślną
Odpowiedzi, które wskazują na ograniczanie długości pola, nazwę pola oraz ustawienie pola tylko do odczytu, są niepoprawne, ponieważ każda z tych funkcji ma inne atrybuty lub mechanizmy. Atrybut, który ogranicza długość wprowadzanego tekstu, to 'maxlength', który definiuje maksymalną liczbę znaków, jakie użytkownik może wprowadzić w polu. Użycie 'maxlength' jest istotne, gdy chcemy zapewnić, że dane wprowadzone przez użytkownika nie przekraczają określonej długości, co jest szczególnie ważne w przypadku danych, które muszą spełniać określone wymagania. Kolejnym błędnym stwierdzeniem jest to, że 'value' wskazuje na nazwę pola. Nazwa pola jest określona przez atrybut 'name', a nie 'value'. Atrybut 'name' jest kluczowy dla identyfikacji danych podczas przesyłania formularza. Ostatnim nieporozumieniem jest twierdzenie, że 'value' ustawia pole tylko do odczytu, co również jest nieprawdziwe. Do ustawienia pola jako tylko do odczytu stosuje się atrybut 'readonly'. Atrybut 'value' jedynie ustawia domyślną wartość, ale nie wpływa na możliwość edycji tego pola. Zrozumienie funkcji poszczególnych atrybutów HTML jest kluczowe dla efektywnego projektowania formularzy i interfejsów użytkownika.

Pytanie 30

Aby zweryfikować ustawienia w pliku php.ini, można wykonać skrypt PHP, który zawiera polecenie

A. <?php phpinfo(); ?>
B. <?php phpcredits(); ?>
C. <?php echo phpversion(); ?>
D. <?php ini_set(); ?>
Funkcja phpinfo() jest jednym z najczęściej używanych narzędzi w PHP do uzyskiwania szczegółowych informacji o środowisku PHP, w tym ustawieniach konfiguracyjnych z pliku php.ini. Po jej wywołaniu, generowana jest strona HTML zawierająca dane o wersji PHP, zainstalowanych modułach, dostępnych zmiennych i wielu innych istotnych informacjach. Dzięki temu programiści mogą szybko zidentyfikować, jakie opcje są aktywne, co jest szczególnie przydatne przy diagnozowaniu problemów lub optymalizacji aplikacji. Przykładowo, w przypadku występowania błędów związanych z pamięcią lub czasem wykonywania skryptów, programista może skorzystać z phpinfo(), aby sprawdzić, jakie limity są ustawione. Warto również zauważyć, że korzystanie z tej funkcji w środowisku produkcyjnym powinno być ograniczone, aby uniknąć ujawnienia informacji o serwerze. Dobrym praktyką jest ograniczenie dostępu do wyników phpinfo() tylko do zaufanych użytkowników lub wyłączenie jej w wersji produkcyjnej.

Pytanie 31

Którego polecenia JavaScript należy użyć, aby w oknie przeglądarki wyświetliło się okno przedstawione na obrazie?

Ilustracja do pytania
A. confirm(’Ile masz lat?’)
B. prompt(’Ile masz lat?’)
C. document.write(’Ile masz lat?’)
D. alert(’Ile masz lat?’)
W tym zadaniu chodzi o rozróżnienie trzech podstawowych funkcji okien dialogowych w JavaScript i zwykłego wypisywania tekstu w dokumencie. Obrazek pokazuje okno z polem do wprowadzania danych, przyciskiem „OK” i przyciskiem „Anuluj”. Takie zachowanie zapewnia tylko funkcja prompt(). Częsty błąd polega na wrzucaniu do jednego worka wszystkich „wyskakujących okienek” i traktowaniu alert(), confirm() i prompt() jak równoważnych, a one pełnią różne role w interakcji z użytkownikiem. alert('Ile masz lat?') tworzy wyłącznie prosty komunikat z jednym przyciskiem, zazwyczaj „OK”. Nie ma żadnego pola tekstowego, nie można nic wpisać, a funkcja nie służy do pobierania danych od użytkownika, tylko do informowania go o czymś lub debugowania. W testach i zadaniach szkolnych mylenie alert z prompt wynika często z tego, że widać po prostu „popup” i tyle, bez zwracania uwagi na szczegóły interfejsu. confirm('Ile masz lat?') również nie jest poprawne, bo confirm tworzy okno z dwoma przyciskami (np. „OK” i „Anuluj” lub „Tak” i „Nie”), ale bez pola edycji. Zwraca wartość logiczną true/false w zależności od tego, który przycisk został kliknięty. Używa się go do prostych pytań typu „Czy na pewno chcesz usunąć plik?”, a nie do wpisywania konkretnej odpowiedzi tekstowej. Ostatnia propozycja, document.write('Ile masz lat?'), w ogóle nie tworzy okna dialogowego. To polecenie po prostu wpisuje podany tekst bezpośrednio do dokumentu HTML. Co gorsza, wywołane po załadowaniu strony nadpisuje całą zawartość dokumentu, więc w praktyce jest uznawane za złą praktykę i w nowoczesnym kodzie raczej się go unika. Jeśli chcemy wyświetlać treść na stronie, stosuje się manipulację DOM, np. element.textContent, innerHTML czy nowoczesne frameworki. Kluczowe jest więc kojarzenie: alert – tylko komunikat, confirm – wybór tak/nie, prompt – pytanie z polem do wpisania danych. Świadome rozróżnianie tych funkcji to podstawa dalszej pracy z interfejsem użytkownika w JavaScript i fundament do późniejszego tworzenia własnych, bardziej zaawansowanych komponentów dialogowych.

Pytanie 32

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 "pejzaż".
B. nie wyświetli strony internetowej.
C. w miejscu grafiki wypisze tekst "rysunek.png".
D. w miejscu grafiki wypisze błąd wyświetlania strony.
Niestety, twoja odpowiedź nie jest prawidłowa. Może to wynikać z nieporozumienia co do tego, jak przeglądarki internetowe radzą sobie z brakującymi obrazami. Przeglądarka nie przestanie wyświetlać strony tylko dlatego, że nie może załadować jednego obrazu - zamiast tego wykorzysta atrybut alt elementu <img> w kodzie HTML. Atrybut alt jest tekstem alternatywnym, który jest wyświetlany, jeżeli obraz nie może zostać załadowany. W tym konkretnym przypadku, miał wartość 'pejzaż', więc jest to tekst, który przeglądarka wyświetli. Nie zostanie wyświetlony błąd, ani tekst 'rysunek.png' - przeglądarka nie ma na to wpływu. Zrozumienie tego mechanizmu jest istotne dla tworzenia stron, które są przystępne i estetycznie atrakcyjne nawet wtedy, gdy nie wszystko idzie zgodnie z planem.

Pytanie 33

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

W SQL, aby ustawić klucz główny na polu id w tabeli uczniowie, można użyć polecenia

A. ADD TABLE uczniowie PRIMARY KEY (id)
B. INSERT TABLE uczniowie ADD PRIMARY KEY (id)
C. ALTER TABLE uczniowie ADD PRIMARY KEY (id)
D. INSERT TABLE uczniowie PRIMARY KEY (id)
Wybór niewłaściwej opcji może wynikać z nieporozumienia dotyczącego składni SQL oraz zasadności użycia odpowiednich poleceń. Opcja 'ADD TABLE uczniowie PRIMARY KEY (id);' jest błędna, ponieważ polecenie ADD TABLE nie istnieje w standardzie SQL. Zamiast tego, do modyfikacji tabeli używa się polecenia ALTER TABLE. Kolejna niepoprawna odpowiedź, czyli 'INSERT TABLE uczniowie ADD PRIMARY KEY (id);', również jest błędna z tego samego powodu, a także dlatego, że instrukcja INSERT jest używana do dodawania nowych rekordów do tabeli, a nie do zmiany jej struktury. Trzecia opcja, 'INSERT TABLE uczniowie PRIMARY KEY (id);', jest niewłaściwa, ponieważ nie tylko zawiera błędne słowa kluczowe, ale również sugeruje, że można dodać klucz podstawowy za pomocą instrukcji wstawiającej, co jest całkowicie niezgodne z logiką SQL. W SQL klucz podstawowy jest definiowany podczas tworzenia tabeli lub dodawany później za pomocą ALTER TABLE. Rozumienie różnicy między tymi poleceniami jest kluczowe dla zrozumienia, jak zarządzać strukturą bazy danych. Przede wszystkim, kluczowe jest, aby unikać pomylenia operacji na danych (INSERT) z operacjami na strukturze tabeli (ALTER TABLE). To błędne myślenie może prowadzić do poważnych problemów w zarządzaniu danymi i ich integralnością w bazie.

Pytanie 35

W jakim formacie powinien być zapisany obraz, aby mógł być wyświetlany na stronie internetowej z zachowaniem przezroczystości?

A. PNG
B. BMP
C. CDR
D. JPG
Wybór formatu JPG, BMP i CDR do zapisu obrazów na stronach internetowych, zwłaszcza w kontekście przezroczystości, może prowadzić do poważnych ograniczeń i problemów. Format JPG (JPEG) to kompresowany format stratny, co oznacza, że podczas zapisywania zdjęć dochodzi do utraty jakości, a także nie obsługuje przezroczystości. To sprawia, że nie nadaje się do grafik wymagających transparentnych obszarów. W praktyce, obrazy JPG są najczęściej używane do zdjęć, gdzie pełna gama kolorów jest istotna, a przezroczystość nie jest potrzebna. BMP (Bitmap) to format zapisu obrazów, który również nie wspiera przezroczystości, a ponadto generuje duże pliki, co jest nieefektywne w kontekście ładowania stron internetowych. Grafiki w formacie BMP są zwykle zbyt ciężkie, by być praktycznymi w środowisku webowym, gdzie priorytetem są szybkość ładowania i optymalizacja zasobów. Z kolei CDR to format pliku używany głównie w oprogramowaniu do grafiki wektorowej CorelDRAW. Chociaż może on być użyteczny w projektowaniu, nie jest standardowym formatem do publikacji w Internecie i nie obsługuje przezroczystości w sposób, który jest wymagany przez nowoczesne standardy webowe. Użytkownicy często popełniają błąd, zakładając, że każdy format obrazu nadaje się do wykorzystania w sieci, mimo że różne formaty mają różne zastosowania i ograniczenia. Wybór niewłaściwego formatu może skutkować gorszą jakością wizualną, dłuższymi czasami ładowania oraz niezgodnością z wymaganiami użytkowników i przeglądarek internetowych.

Pytanie 36

Co należy zweryfikować przed wykonaniem kopii zapasowej bazy danych, aby było możliwe jej późniejsze odtworzenie w poprawny sposób?

A. poprawność składni zapytań
B. spójność bazy danych
C. możliwość udostępnienia bazy danych
D. prawa dostępu do serwera bazy danych
Zarządzanie bazą danych wymaga zrozumienia, że przed wykonaniem kopii bezpieczeństwa kluczowe jest zapewnienie, że baza danych jest spójna. Wybór odpowiedzi dotyczącej możliwość udostępnienia bazy danych wskazuje na niezrozumienie podstawowych zasad operacji na bazie danych. Udostępnienie bazy może wiązać się z ryzykiem w przypadku, gdy użytkownicy wprowadzają dane w czasie wykonywania kopii zapasowej, co może prowadzić do niespójności. Prawa dostępu do serwera bazy danych są istotne, ale bez upewnienia się, że dane są spójne, nawet najlepiej zabezpieczona baza może okazać się problematyczna podczas przywracania. Poprawność składni zapytań jest także ważna, jednak nie ma bezpośredniego wpływu na jakość kopii zapasowej, ponieważ może być temat dotyczący operacji wykonywanych na danych, a nie samego stanu bazy. Spójność danych zapewnia, że wszystkie zależności i relacje między danymi są nienaruszone, co jest kluczowe, aby móc polegać na kopii zapasowej jako wiarygodnym źródle danych. Przykładem błędnego rozumienia może być sytuacja, w której administrator baz danych, koncentrując się na dostępności, ignoruje mechanizmy zapewniające integralność danych, co prowadzi do nieprzewidzianych błędów przy próbie ich odtworzenia.

Pytanie 37

W PHP typ float oznacza

A. zmiennoprzecinkowy
B. całkowity
C. łańcuchowy
D. logiczny
Wybór innego typu danych w PHP, jak całkowity, łańcuchowy czy logiczny, może być mylący. Typ całkowity to po prostu liczby bez części dziesiętnej, więc jak mamy do czynienia z cenami, gdzie pojawiają się grosze, to nie ma szans na użycie tego typu. Z kolei typ łańcuchowy to coś zupełnie innego, związane z tekstem – i stosowanie go do obliczeń to droga do katastrofy. Typ logiczny, co prawda przyjmuje tylko dwie wartości – prawda i fałsz – ale również nie nadaje się do liczb. Kluczowe jest zrozumienie, że każdy typ ma swoje miejsce w programowaniu. Wiele osób myli je ze sobą, na przykład próbując użyć typu łańcuchowego tam, gdzie potrzebne są liczby, co zazwyczaj kończy się problemami. Aby rozwijać aplikacje skutecznie, trzeba odpowiednio dobierać typy danych, bo to jest podstawa programowania w PHP i w innych językach także.

Pytanie 38

Pętla zapisana w języku PHP wstawi do tablicy liczby:

$x = 0;
for ($i = 0; $i < 10; $i++)
{
    $tabl[$i] = $x;
    $x = $x + 10;
}
A. 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
B. 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
C. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
D. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Niestety, Twoja odpowiedź jest nieprawidłowa. Błędne odpowiedzi sugerują, że pętla wstawia do tablicy liczby od 0 do 9 lub od 10 do 100, albo od 0 do 10. To jest niepoprawne, ponieważ pętla zaczyna się od $x = 0 i wykonuje się 10 razy ($i od 0 do 9), a w każdej rundzie pętli wartość $x jest zwiększana o 10. Dlatego po 10 rundach w tablicy znajdują się liczby: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90. Wybór innej odpowiedzi może wynikać z błędnego zrozumienia działania pętli albo mylenia różnych rodzajów pętli, które mają różne zastosowania. Pętle są fundamentalnym elementem każdego języka programowania, w tym PHP, dlatego warto zrozumieć ich działanie. Proszę poświęcić więcej czasu na zrozumienie tego tematu, ponieważ jest to podstawa do dalszego programowania.

Pytanie 39

Osobistym środkiem ochrony dla oczu i twarzy może być

A. przyłbica
B. sprzęt filtrujący powietrze
C. osłona pleksi pomiędzy stanowiskami pracy
D. fartuch ochronny
Fartuch ochronny, sprzęt filtrujący powietrze oraz osłona pleksi pomiędzy stanowiskami pracy, mimo iż są istotnymi elementami ochrony w różnych kontekstach, nie stanowią indywidualnego środka ochrony oczu i twarzy. Fartuch ochronny jest przeznaczony do ochrony odzieży i ciała przed substancjami chemicznymi lub fizycznymi, ale nie oferuje bezpośredniej ochrony oczu i twarzy, które są narażone na inne rodzaje zagrożeń. Fartuch może być używany w laboratoriach czy podczas pracy z niebezpiecznymi materiałami, ale jego zastosowanie nie obejmuje ochrony wzroku. Sprzęt filtrujący powietrze, z kolei, ma za zadanie oczyszczać powietrze od zanieczyszczeń i nie jest dedykowany do ochrony oczu, a jego głównym celem jest ochrona układu oddechowego. Osłona pleksi pomiędzy stanowiskami pracy jest natomiast środkiem, który może ograniczyć ryzyko rozprzestrzeniania się drobnoustrojów w przestrzeni roboczej, jednak nie zapewnia ochrony osobistej użytkownika, co jest kluczowe w kontekście indywidualnych środków ochrony. Te błędne koncepcje wynikają z nieścisłości w interpretacji definicji środków ochrony indywidualnej, które powinny być dostosowane do konkretnego rodzaju zagrożeń w miejscu pracy, zgodnie z zasadami oceny ryzyka i dobrą praktyką w zakresie BHP. Właściwe rozpoznawanie i stosowanie odpowiednich środków ochrony jest kluczowe dla zapewnienia bezpieczeństwa pracowników w każdych warunkach.

Pytanie 40

Które z wywołań funkcji PHP round() da wynik równy 1?

A. round(-4.60)
B. round(0.29)
C. round(-1.40)
D. round(0.60)
Funkcja round() w PHP zaokrągla liczbę do najbliższej wartości całkowitej. W przypadku wywołania round(0.60), wartość ta zostanie zaokrąglona do 1. Jest to zgodne z zachowaniem funkcji, która dąży do zaokrąglania liczb w kierunku najbliższej liczby całkowitej. Dla porównania, wartości bliskie 0.5 są zaokrąglane w górę, co w tym przypadku dotyczy liczby 0.60. W praktyce, zastosowanie funkcji round() jest szerokie i obejmuje wszelkie operacje wymagające precyzyjnego zaokrąglenia wartości, na przykład w obliczeniach finansowych, gdzie istotne jest zaokrąglanie do dwóch miejsc po przecinku, czy w aplikacjach naukowych obliczających wartości eksperymentalne. Warto pamiętać, że w zależności od wersji PHP, round() może przyjmować dodatkowy parametr, który określa liczbę miejsc po przecinku, co umożliwia jeszcze bardziej precyzyjne dostosowanie zaokrąglania do potrzeb konkretnego zastosowania.