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: 8 czerwca 2026 11:39
  • Data zakończenia: 8 czerwca 2026 11:55

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

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

W relacyjnym modelu danych, krotki definiuje się jako

A. liczbę rekordów w tabeli
B. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
C. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
D. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
Krotka to taki ważny element w relacyjnych bazach danych, który odnosi się do konkretnych rekordów w tabeli. Każda krotka to jakby zestaw informacji, który dotyczy jednej jednostki, na przykład pojedynczego użytkownika w tabeli 'Użytkownicy'. Zawiera wartości atrybutów, które są przypisane do kolumn w tabeli. Te wartości są przechowywane w wierszach, a nagłówek z nazwami kolumn nie wchodzi w grę, jeśli chodzi o definicję krotek. Na przykład, w tabeli dotyczącej studentów, każdy wiersz mógłby zawierać dane jednego studenta, takie jak imię, nazwisko, wiek czy kierunek studiów. Myślę, że zrozumienie, czym jest krotka, jest kluczowe, żeby dobrze projektować bazy danych i używać SQL, bo w nim operacje na krotkach to podstawa większości zapytań. W praktyce, krotki pomagają również tworzyć relacje między tabelami w bazie danych, gdzie można je wykorzystać do przedstawiania powiązań między różnymi obiektami, na przykład 'Studenci' i 'Kursy'.

Pytanie 2

Jakie zadania programistyczne należy wykonać na serwerze?

A. Zapisanie danych pozyskanych z aplikacji internetowej w bazie danych
B. Ukrywanie i wyświetlanie elementów strony w zależności od aktualnej pozycji kursora
C. Weryfikacja danych wprowadzonych do pola tekstowego na bieżąco
D. Zmiana stylu HTML na stronie spowodowana ruchem kursora
Zapisanie danych pobranych z aplikacji internetowej w bazie danych to zadanie, które powinno być wykonywane po stronie serwera ze względów bezpieczeństwa, integralności danych oraz zarządzania zasobami. Serwer jest odpowiedzialny za przechowywanie informacji, które mogą być wykorzystywane przez wielu użytkowników, co wymaga centralizacji ich przetwarzania. W przypadku aplikacji internetowych, dane są często przesyłane z klienta (przeglądarki) do serwera, gdzie są walidowane oraz zapisywane w bazach danych. Na przykład, gdy użytkownik rejestruje się w aplikacji, jego dane osobowe są wysyłane do serwera, który sprawdza poprawność tych informacji i zapisuje je w bazie danych. Właściwe implementacje powinny stosować bezpieczne połączenia (np. HTTPS), a także techniki, takie jak sanitizacja danych, aby unikać ataków typu SQL Injection. Dobrą praktyką jest także stosowanie ORM (Object-Relational Mapping), co umożliwia łatwiejsze zarządzanie danymi i ich relacjami. Przechowywanie danych po stronie serwera pozwala na efektywne zarządzanie zasobami i umożliwia późniejsze przetwarzanie informacji w sposób zorganizowany i bezpieczny.

Pytanie 3

W języku PHP przypisano zmiennej $a wartość 1. Porównanie $a === $b zwraca true, gdy zmienna $b ma przypisaną wartość

A. '1'
B. '1' lub "1"
C. *1
D. 1 lub '1'
Zmienna $a, zainicjowana wartością 1, jest typu integer i porównując ją z inną zmienną $b za pomocą operatora identyczności (===), należy zwrócić szczególną uwagę na typ i wartość obu zmiennych. Wiele osób myli operator porównania identyczności z operatorem równości (==), który nie wymaga, aby typy były zgodne. Z tego powodu odpowiedzi takie jak 1 lub '1' mogą wydawać się poprawne, jednak w przypadku porównania identyczności, istotne jest, aby zmienne były tego samego typu. Odpowiedź, która sugeruje wartość 1, jest błędna, ponieważ porównuje wartość integer z potencjalnie innym typem bez uwzględnienia konwersji typów, co prowadzi do niejednoznaczności. Z kolei odpowiedź sugerująca wartość '1' nie do końca zdaje sobie sprawę, że chociaż string '1' jest zgodny w kontekście równości, nie spełnia warunków identyczności w dosłownym sensie, gdyż typy są różne. Typowe błędy myślowe prowadzące do takich nieprawidłowych wniosków często wynikają z założenia, że PHP automatycznie wykonuje konwersje typów, co nie zawsze jest pożądane. Dla programistów istotne jest zrozumienie różnic między typami oraz kiedy stosować odpowiednie operatory, aby zapewnić poprawność logiki aplikacji i uniknąć potencjalnych błędów, które mogą prowadzić do trudnych do zdiagnozowania problemów w przyszłości.

Pytanie 4

Aby uzyskać dane z tabeli pracownicy wyłącznie dla osób, które osiągnęły 26 lat, należy zastosować zapytanie

A. SELECT * FROM pracownicy WHERE wiek > '25'
B. SELECT * FROM pracownicy OR wiek > '25'
C. SELECT * FROM wiek WHERE pracownicy > '25'
D. SELECT * FROM pracownicy AND wiek > '25'
Poprawne zapytanie to 'SELECT * FROM pracownicy WHERE wiek > '25';'. To zapytanie jest zgodne z zasadami SQL i pozwala na wyświetlenie wszystkich rekordów z tabeli 'pracownicy', które spełniają określony warunek dotyczący wieku. Używając klauzuli WHERE, precyzyjnie filtrujemy wyniki i zwracamy tylko tych pracowników, którzy mają więcej niż 25 lat. Warto pamiętać, że w SQL operator '>' jest wykorzystywany do porównywania wartości, a w tym przypadku pozwala nam na wybranie pracowników, którzy ukończyli 26 lat. Przy projektowaniu zapytań SQL, kluczowe jest stosowanie odpowiednich warunków filtrujących, aby ograniczyć zwracane dane do tych istotnych dla analiz. Przykładowo, analiza wieku pracowników w kontekście przyznawania dodatków lub przeprowadzania szkoleń może opierać się na takich zapytaniach. W praktyce, ważne jest także wykorzystanie indeksów w bazach danych, aby zwiększyć wydajność zapytań, zwłaszcza w dużych zbiorach danych.

Pytanie 5

Który z obrazków ilustruje efekt działania podanego fragmentu kodu HTML?

Ilustracja do pytania
A. Obrazek C
B. Obrazek B
C. Obrazek A
D. Obrazek D
Prawidłowa odpowiedź to C ponieważ atrybut rowspan="2" w komórce oznacza że komórka ta zajmuje miejsce w dwóch wierszach. W kodzie HTML mamy tabelę z dwoma wierszami. W pierwszym wierszu znajdują się dwie komórki pierwsza z tekstem 'pierwszy' ma ustawiony rowspan na 2 co sprawia że zajmuje miejsce w obu wierszach tabeli. Druga komórka w pierwszym wierszu zawiera tekst 'drugi'. W drugim wierszu znajduje się jedna komórka z tekstem 'trzeci'. Taki układ powoduje że komórka z 'pierwszy' rozciąga się na wysokość dwóch wierszy a pozostałe komórki 'drugi' i 'trzeci' są obok siebie w pierwszym i drugim wierszu obok tej rozciągniętej komórki. Zastosowanie atrybutu rowspan to popularna technika w tworzeniu złożonych układów tabeli i pozwala na efektywne wykorzystanie przestrzeni układu. Jest to dobra praktyka stosowana w celu zachowania czytelności danych w tabelach na stronach internetowych a także pomagająca w poprawnym renderowaniu danych w czytnikach ekranu co wspiera dostępność strony WWW.

Pytanie 6

W MS SQL Server instrukcja RESTORE DATABASE jest używana do

A. reorganizacji bazy danych na podstawie zapisanych danych
B. przywrócenia bazy danych z kopii zapasowej
C. usunięcia bazy danych z głównego serwera subskrybenta
D. aktualizacji bazy danych z kontrolą więzów integralności
Zgłębiając swoją odpowiedź, dobrze zrozumieć, czemu inne odpowiedzi były błędne. Mówiąc o „przebudowywaniu bazy danych o buforowane dane”, to w sumie nie ma sensu w kontekście polecenia RESTORE DATABASE. Buforowe dane to coś zupełnie innego, są tymczasowe i w ogóle nie pasują do tematu przywracania bazy. Właściwie to takie „przebudowanie” nie jest w ogóle techniką zarządzania danymi. A usunięcie bazy danych z serwera? To już w ogóle inna sprawa; chodzi tu o DROP DATABASE, które po prostu ją likwiduje, a nie przywraca. Przymiarki do „odświeżenia bazy z kontrolą więzów integralności” mogą być mylące, bo to nie ma z tym nic wspólnego. Więzy integralności są ważne, ale nie są bezpośrednio związane z procesem przywracania. Warto zrozumieć różnice między backupem, przywracaniem danych a ich zarządzaniem, bo to kluczowe dla każdego, kto zajmuje się administrowaniem baz danych.

Pytanie 7

W języku JavaScript, aby uzyskać podciąg tekstu pomiędzy wskazanymi indeksami, należy skorzystać z metody

A. slice()
B. replace()
C. concat()
D. trim()
Wybór innych metod do manipulacji napisami może wynikać z nieporozumienia dotyczącego ich funkcji. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co jest przydatne w kontekście walidacji danych wejściowych, ale nie pozwala na wydzielanie fragmentów napisu. Z kolei concat() jest zarezerwowana do łączenia dwóch lub więcej napisów w jeden, co również nie ma związku z wydzielaniem fragmentów. Użytkownicy często mylą concat() z slice(), błędnie sądząc, że obie metody operują na podobnych zasadach, gdyż obydwie dotyczą manipulacji napisami, jednak ich funkcjonalność jest całkowicie różna. Metoda replace() pozwala na zamianę określonych fragmentów tekstu na inne, co jest przydatne w kontekście przetwarzania danych, jednak również nie odpowiada na pytanie o wydzielanie segmentów. Typowe błędy w myśleniu na ten temat mogą wynikać z niepełnego zrozumienia celów tych metod oraz ich zastosowania w praktyce. Aby uniknąć takich nieporozumień, warto zwrócić uwagę na dokumentację JavaScript oraz praktykować ich zastosowanie w różnych scenariuszach, co z pewnością pomoże w zrozumieniu różnicy między tymi metodami.

Pytanie 8

Jak powinien być poprawnie zapisany znacznik <img>, służący do umieszczenia na stronie internetowej obrazu rys.jpg, przeskalowanego do szerokości 120 px oraz wysokości 80 px z tekstem alternatywnym "krajobraz"?

A. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
B. <img href="rys.jpg" height="120px" width="80px" info="krajobraz"/>
C. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
D. <img src="rys.jpg" height="120px" width="80px" info="krajobraz"/>
Odpowiedź <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/> jest poprawna z kilku powodów. Przede wszystkim, atrybut 'src' wskazuje na lokalizację pliku graficznego, co jest kluczowe dla poprawnego wyświetlania obrazu na stronie internetowej. Atrybuty 'width' oraz 'height' pozwalają na precyzyjne określenie rozmiarów obrazu, co jest istotne zarówno dla responsywności strony, jak i dla optymalizacji czasu ładowania. Użycie jednostki 'px' (pikseli) jest poprawne, jednak w HTML5 można pominąć tę jednostkę, wpisując jedynie wartość liczbową. Atrybut 'alt' jest niezwykle ważny dla dostępności, ponieważ dostarcza alternatywny opis obrazu dla użytkowników, którzy nie mogą go zobaczyć, na przykład osób niewidomych korzystających z czytników ekranu. Używanie odpowiednich atrybutów oraz wartości jest zgodne z najlepszymi praktykami w tworzeniu stron WWW oraz standardami W3C, co wpływa na lepszą użyteczność oraz SEO strony. Przykładem praktycznym może być umieszczenie grafiki w nagłówku strony, gdzie obraz jest widoczny, a opis alternatywny wspiera dostępność i kontekst treści.

Pytanie 9

Aby usunąć z nagrania szmery i zakłócenia tła, należy zastosować efekt:

A. pogłosu (reverb)
B. redukcji szumów
C. zmiany wysokości dźwięku
D. normalizacji
Redukcja (usuwanie) szumów to obróbka, która analizuje stałe, niepożądane tło - szum, przydźwięk, syk - i wycisza je, pozostawiając właściwy sygnał. W edytorach audio zwykle pobiera się próbkę samego szumu, a program odejmuje go z całego nagrania. Dlatego do usunięcia szmerów i zakłóceń tła służy efekt redukcji szumów.

Pytanie 10

Które z poniższych wyrażeń logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w przedziale (6, 203>?

A. (zm1 > 6) || (zm1 != 203)
B. (zm1 > 6) || (zm1 <= 203)
C. (zm1 > 6) && (zm1 <= 203)
D. (zm1 > 6) && (zm1 != 203)
Odpowiedź (zm1 > 6) && (zm1 <= 203) jest poprawna, ponieważ w pełni odzwierciedla definicję przedziału otwartego dla dolnej granicy (6) i domkniętej dla górnej granicy (203). Operator && (AND) zapewnia, że oba warunki muszą być spełnione jednocześnie: zmienna zm1 musi być większa niż 6 oraz jednocześnie musi być mniejsza lub równa 203. Taki zapis jest zgodny z powszechnie przyjętymi praktykami programowania, gdzie jasne określenie warunków dla zakresu wartości jest kluczowe do unikania błędów logicznych. Przykładem zastosowania tej logiki może być weryfikacja danych wejściowych w formularzu, gdzie akceptowane są jedynie wartości mieszczące się w określonym przedziale. Użycie odpowiednich operatorów logicznych, takich jak && i ||, jest niezbędne do precyzyjnego definiowania warunków w aplikacjach, co prowadzi do bardziej niezawodnych i czytelnych kodów. Zrozumienie tych koncepcji jest fundamentalne dla każdego programisty, który dąży do tworzenia efektywnych i bezbłędnych aplikacji.

Pytanie 11

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

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

Pytanie 12

Jaką funkcję w edytorze grafiki rastrowej trzeba wykorzystać, żeby przygotować rysunek do publikacji na stronie tak, aby widoczne było jedynie to, co znajduje się w obrębie ramki?

Ilustracja do pytania
A. Odbicie
B. Skalowanie
C. Kadrowanie
D. Perspektywa
Kadrowanie w edytorze grafiki rastrowej pozwala na wycięcie określonego fragmentu obrazu aby skupić uwagę na jego najważniejszej części. Proces kadrowania jest niezbędny w sytuacjach gdy chcemy przedstawić tylko wybrany obszar grafiki co jest powszechną praktyką w przygotowywaniu ilustracji do publikacji online. Poprzez kadrowanie eliminujemy zbędną przestrzeń wokół istotnych elementów dzięki czemu obraz staje się bardziej czytelny i estetyczny. Jest to szczególnie ważne w kontekście ograniczonej przestrzeni na stronach internetowych oraz chęci optymalizacji rozmiarów plików graficznych co wpływa na szybkość ładowania witryny. Dobrze wykonane kadrowanie pozwala również na zachowanie estetyki kompozycji obrazu poprzez zastosowanie zasad takich jak reguła trójpodziału co zwiększa atrakcyjność wizualną. Warto również pamiętać że w kontekście norm branżowych kadrowanie jest podstawowym narzędziem w arsenale każdego grafika co znajduje odzwierciedlenie w większości współczesnych aplikacji do edycji grafiki rastrowej.

Pytanie 13

Globalne zmienne do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION stanowią część języka

A. JavaScript
B. C#
C. PHP
D. Perl
Odpowiedź PHP jest prawidłowa, ponieważ $_COOKIE i $_SESSION to superglobalne tablice w tym języku, które są wykorzystywane do zarządzania danymi sesyjnymi oraz ciasteczkami. $_COOKIE umożliwia przechowywanie danych na komputerze użytkownika w formie ciasteczek, które mogą być odczytywane przez serwer przy każdym żądaniu. Ciasteczka mogą być używane do identyfikacji użytkownika, zapamiętywania preferencji lub sesji. Przykładowe zastosowanie to np. pamiętanie, czy użytkownik jest zalogowany oraz jakie preferencje dotyczące wyświetlania treści ustawił. Z kolei $_SESSION jest używane do przechowywania danych sesji na serwerze, co zapewnia większe bezpieczeństwo, ponieważ dane nie są również dostępne po stronie klienta. Przykładem zastosowania $_SESSION jest przechowywanie informacji o użytkowniku, takich jak jego identyfikator, które mogą być używane do autoryzacji w różnych częściach aplikacji. W obu przypadkach, przy użyciu tych mechanizmów, programiści muszą pamiętać o optymalizacji wydajności oraz przestrzeganiu zasad ochrony prywatności użytkowników, co jest kluczowe w kontekście aktualnych regulacji dotyczących danych osobowych.

Pytanie 14

Na podstawie jakiego parametru oraz z ilu tabel będą zwrócone wiersze w wyniku podanego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
producent.nr_id = hurtownia.nr_id AND
producent.wyrob_id = serwis.wyrob_id AND
hurtownia.nr_id = sklep.nr_id AND
sklep.nr_id = serwis.nr_id AND
producent.nr_id = 1;
A. Na podstawie parametru wyrob_id tylko dla trzech tabel
B. Na podstawie parametru nr_id tylko dla trzech tabel
C. Na podstawie parametru wyrob_id tylko dla trzech tabel
D. Na podstawie parametru nr_id dla wszystkich tabel
Analizując błędne odpowiedzi można zauważyć że kluczowym aspektem w tym pytaniu jest zrozumienie zastosowania parametrów w klauzuli WHERE Odpowiedzi sugerujące selekcję według parametru wyrob_id są nieprawidłowe ponieważ w klauzuli WHERE dominującą rolę odgrywa parametr nr_id choć występuje tam także warunek dotyczący wyrob_id to jednak główną funkcją jest połączenie tabel według nr_id Jest to typowy błąd wynikający z nieuwzględnienia hierarchii oraz sposobu połączenia tabel w relacyjnych bazach danych Ponadto niektóre odpowiedzi ograniczają się wyłącznie do trzech tabel co również jest błędne ponieważ zapytanie obejmuje wszystkie cztery wymienione tabele producent hurtownia sklep i serwis Koncentracja na jednej lub dwóch tabelach często bierze się z pominięcia kluczowych związków logicznych między tabelami jak w przypadku odpowiedzi które ograniczają scope do mniejszej liczby tabel niż rzeczywiście obejmuje zapytanie Kluczową umiejętnością jest zrozumienie jak różne parametry mogą wpływać na wybór danych zwłaszcza w kontekście tworzenia złożonych zapytań SQL gdzie przemyślane zastosowanie klauzul jest niezbędne do efektywnego zarządzania danymi i unikania niepoprawnych interpretacji wyników Właściwe zrozumienie jak parametry takie jak nr_id czy wyrob_id funkcjonują w zapytaniach pozwala na ich poprawne i skuteczne zastosowanie co jest kluczowe w profesjonalnym podejściu do pracy z bazami danych

Pytanie 15

Którym poleceniem wyświetlisz konfigurację serwera PHP (wersję PHP, system serwera, wartości zmiennych predefiniowanych)?

A.
echo phpversion();
B.
print_r(ini_get_all());
C.
phpcredits();
D.
phpinfo();
Aby zobaczyć konfigurację serwera PHP - wersję, system, rozszerzenia i zmienne predefiniowane - używa się phpinfo();. Funkcja sama buduje czytelną stronę z tymi danymi, więc nie trzeba ich zbierać ręcznie. Zapamiętaj: jedno wywołanie phpinfo() zastępuje dziesiątki osobnych sprawdzeń środowiska.

Pytanie 16

W kontekście PGP zmienna $_GET jest zmienną

A. zdefiniowaną przez autora strony, wykorzystywaną do przesyłania danych z formularzy przez adres URL
B. predefiniowaną, stosowaną do przesyłania informacji do skryptów PHP poprzez adres URL
C. predefiniowaną, służącą do zbierania wartości z formularzy po nagłówkach zapytań HTTP (dane z formularzy nie są widoczne w URL)
D. zwykłą, stworzoną przez autora strony
Odpowiedzi dotyczące zmiennej $_GET zawierają szereg nieścisłości, które mogą wprowadzać w błąd. Pierwsza z nich sugeruje, że $_GET jest używana do gromadzenia wartości formularza po nagłówkach zlecenia HTTP. W rzeczywistości, $_GET jest używana do przesyłania danych poprzez adres URL, a nie z nagłówków formularza; to zmienna $_POST odpowiada za przesyłanie danych z formularza, których nie widać w adresie. Druga niepoprawna odpowiedź twierdzi, że $_GET jest zdefiniowana przez twórcę strony. Należy podkreślić, że $_GET jest zmienną predefiniowaną, co oznacza, że jest wbudowana w PHP i nie można jej zmienić ani zdefiniować na nowo. Ostatnia odpowiedź sugeruje, że $_GET jest zwykłą zmienną, co jest nieprecyzyjne, ponieważ zmienne predefiniowane, takie jak $_GET, mają specjalne znaczenie i funkcjonalność w kontekście aplikacji webowych. W związku z tym każda z tych odpowiedzi zawiera błędne zrozumienie roli zmiennej $_GET, co może prowadzić do nieprawidłowego użycia tej zmiennej w praktyce.

Pytanie 17

Jaki wynik daje poniższy kod PHP?

$dane = array ('imie' => 'Anna', 'nazwisko' => 'Nowak', 'wiek' => 21);
A. określa tablicę zawierającą sześć wartości
B. jest błędny, ponieważ indeksami tablicy mogą być wyłącznie liczby całkowite
C. jest niepoprawny, nieznany operator =>
D. definiuje tablicę z trzema wartościami
Ten kod w PHP pokazuje, jak zdefiniować tablicę asocjacyjną z trzema elementami. To fajna sprawa, bo tablice asocjacyjne pozwalają na użycie kluczy, które nie muszą być tylko liczbami, a mogą być także opisowe, jak w tym przypadku. Klucze to 'imie', 'nazwisko' oraz 'wiek', a ich wartości to odpowiednio 'Anna', 'Nowak' i 21. Operator '=>' służy do przypisywania wartości do klucza - to dość typowa konstrukcja, bo ułatwia organizację danych. Podoba mi się, że tablice asocjacyjne w PHP są przydatne w różnych sytuacjach, na przykład do przechowywania danych użytkowników czy różnych ustawień. W sumie, ważne, żeby dbać o typy danych przypisywanych do kluczy, bo dzięki temu później łatwiej będzie się z nimi pracować. PHP ma dużo funkcji do pracy z tablicami, jak sortowanie czy iteracja, więc na pewno warto to znać.

Pytanie 18

Na przedstawionej grafice widać fragment bazy danych. Jakie kwerendę należy zastosować, aby uzyskać nazwy produktów zakupionych przez klienta o id = 1?

Ilustracja do pytania
A. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) JOIN transakcje USING(nr_transakcji) WHERE nr_klienta = 1
B. SELECT nazwa FROM produkty JOIN transakcje_produkty JOIN transakcje WHERE nr_klienta = 1
C. SELECT nazwa FROM produkty JOIN transakcje_produkty USING(nr_produktu) WHERE nr_klienta = 1
D. SELECT nazwa FROM produkty JOIN transakcje ON nr_produktu = nr_klienta WHERE nr_klienta = 1
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia struktury bazy danych oraz sposobu łączenia tabel. Błędem w połączeniach JOIN jest nieprawidłowe określenie warunków łączenia tabel co prowadzi do niekompletnych lub błędnych wyników. W przypadku bazy danych relacyjnej kluczowe jest aby każda tabela była prawidłowo połączona przez klucz obcy co zapewnia integralność danych. Źle skonstruowane zapytania mogą powodować problemy wydajnościowe jak również zwracać niewłaściwe informacje co jest szczególnie problematyczne w środowisku produkcyjnym. Typowe błędy myślowe obejmują nieprawidłowe zrozumienie pojęcia klucza obcego jako mechanizmu łączącego tabele oraz błędne stosowanie klauzuli WHERE bez uwzględnienia pełnej relacji między tabelami. Również użycie niewłaściwych aliasów czy nieprecyzyjnych warunków może prowadzić do nieoptymalnych zapytań. Dlatego też ważne jest zrozumienie działania JOIN oraz jego wpływu na zapytania SQL aby móc skutecznie projektować systemy bazodanowe które są skalowalne i efektywne w działaniu.

Pytanie 19

Z tabeli mieszkancy trzeba wydobyć unikalne nazwy miast, w tym celu należy użyć wyrażenia SQL zawierającego klauzulę

A. CHECK
B. DISTINCT
C. UNIQUE
D. HAVING
Odpowiedź 'DISTINCT' jest prawidłowa, ponieważ klauzula ta w SQL służy do eliminacji duplikatów z wyników zapytania. Gdy chcemy uzyskać unikalne wartości z określonej kolumny, stosujemy 'SELECT DISTINCT nazwa_kolumny FROM nazwa_tabeli'. Na przykład, używając zapytania 'SELECT DISTINCT miasto FROM mieszkancy', otrzymamy jedynie unikalne nazwy miast bez powtórzeń. To podejście jest szczególnie przydatne w analizach, gdzie kluczowe jest posiadanie jedynie jednorazowych wartości, na przykład w raportach marketingowych czy badaniach demograficznych. W praktyce 'DISTINCT' powinno być używane z rozwagą, gdyż jego użycie może wpływać na wydajność zapytania, zwłaszcza w przypadku dużych zbiorów danych. Należy również pamiętać, że 'DISTINCT' dotyczy wszystkich kolumn w zapytaniu – jeśli wybierzemy więcej niż jedną kolumnę, to zduplikowane wiersze będą usuwane tylko wtedy, gdy wszystkie kolumny są identyczne. To sprawia, że 'DISTINCT' jest elastycznym narzędziem w SQL, pozwalającym na efektywne zarządzanie i przetwarzanie danych.

Pytanie 20

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. wiele wpisów z tabeli A powtórzy się w tabeli B
B. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
C. tabela A będzie miała identyczne pola jak tabela B
D. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
Odpowiedź, że należy zdefiniować trzecią tabelę z kluczami obcymi do tabel A i B, jest poprawna, ponieważ relacja wiele do wielu wymaga pośrednictwa trzeciej tabeli, często nazywanej tabelą asocjacyjną lub łączącą. W praktyce oznacza to, że każdy rekord w tabeli A może być powiązany z wieloma rekordami w tabeli B i vice versa. Tabela asocjacyjna zawiera co najmniej dwa pola kluczy obcych: jedno wskazujące na odpowiedni rekord w tabeli A i drugie na odpowiadający mu rekord w tabeli B. Na przykład, w systemie zarządzania kursami, tabela 'Studenci' i tabela 'Kursy' mogą być połączone poprzez tabelę 'Rejestracje', która przechowuje identyfikatory studentów i kursów, umożliwiając przypisanie wielu studentów do wielu kursów. To podejście jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizację redundancji i zapewnienie spójności danych. Dobrą praktyką jest również zapewnienie, że klucze obce w tabeli asocjacyjnej są odpowiednio indeksowane, co poprawia wydajność zapytań oraz umożliwia łatwe zarządzanie relacjami.

Pytanie 21

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 4
B. Efekt 2
C. Efekt 1
D. Efekt 3
Odpowiedź Efekt 3 jest poprawna, ponieważ odzwierciedla wszystkie zadane style CSS. Styl zawiera padding 20px co oznacza, że wewnętrzna przestrzeń wokół tekstu w paragrafie powinna wynosić 20 pikseli. Daje to efekt przestrzeni pomiędzy tekstem a obramowaniem. Kolor tekstu został ustawiony na niebieski co powoduje, że sam tekst przyjmuje niebieską barwę. Parametr font-weight jest ustawiony na 900 co oznacza, że tekst powinien być bardzo pogrubiony. Obecnie jest to maksymalna wartość dla własności font-weight w standardzie CSS która powoduje, że tekst wygląda na bardzo wyrazisty i wyróżnia się na tle innych elementów. Dodatkowo border ustawiono na 1px solid co oznacza, że paragraf powinien mieć jednolitą linię o grubości jednego piksela otaczającą jego obszar. Wszystkie te style są poprawnie zastosowane w Efekcie 3 gdzie tekst jest niebieski bardzo pogrubiony z przestrzenią 20 pikseli do obramowania oraz otoczony cienką linią. Taki styl jest często wykorzystywany w projektach stron internetowych dla wyraźnego wyróżnienia ważnych sekcji co zgodne jest z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 22

Co oznacza selektor CSS p > i { color: red; }?

A. tekst w <i> znajdującym się BEZPOŚREDNIO wewnątrz <p>
B. każdy tekst w <p> oprócz tego w <i>
C. tekst w <p> z klasą o nazwie i
D. każdy tekst w <p> lub w <i>
Znak > w selektorze oznacza „bezpośrednie dziecko”, więc p > i trafia tylko w te <i>, które leżą wprost wewnątrz <p> (na pierwszym poziomie zagnieżdżenia), a nie głębiej. Reguła p > i { color: red; } pokoloruje taki tekst na czerwono. Dlatego selektor dotyczy <i> bezpośrednio w <p>.

Pytanie 23

Jaką wartość zwróci funkcja zao, która została zdefiniowana w języku C++, gdy zostanie wywołana z argumentem 3.55?

int zao(float x) {
    return x+0.5;
}
A. 3
B. 4.05
C. 3.5
D. 4
Funkcja zaofloat zdefiniowana w C++ przyjmuje argument typu float, a następnie zwraca go po dodaniu do niego wartości 0.5. W przypadku wywołania tej funkcji z argumentem 3.55, najpierw dodajemy 0.5, co daje nam 4.05. Następnie, w kontekście C++, funkcja ta nie została jeszcze zaimplementowana w sposób, który by zaokrąglał wynik. W rezultacie, gdybyśmy zaokrąglili wynik do najbliższej liczby całkowitej, otrzymalibyśmy 4. Takie podejście jest zgodne z zasadami zaokrąglania, które mówią, że liczby z częścią dziesiętną równą lub większą od 0.5 powinny być zaokrąglane w górę. Tego rodzaju funkcje są powszechnie stosowane w programowaniu, zwłaszcza w kontekście obliczeń finansowych i inżynieryjnych, gdzie precyzyjne zarządzanie wartościami liczbowymi jest kluczowe. Warto dodać, że w C++ istnieją standardowe funkcje, takie jak round() z biblioteki cmath, które mogą być wykorzystywane do efektywnego zaokrąglania wartości do najbliższej liczby całkowitej, co może być przydatne w wielu sytuacjach.

Pytanie 24

Wskaż równoważną metodę dla instrukcji switch zapisaną w języku PHP?

Ilustracja do pytania
A. B
B. C
C. A
D. D
Switch w PHP to narzędzie, które pomaga kierować działaniem programu w zależności od wartości, i często zamienia się to na wiele if-else, żeby kod był bardziej przejrzysty. Czasami jednak pojawiają się błędne interpretacje logiki warunkowej. W odpowiedzi D, użycie operatora and oznacza, że oba warunki muszą być spełnione naraz, co jest trochę mylące, bo dla zmiennej $liczba przy wartościach 10 i 20 to nie jest za bardzo możliwe. W odpowiedzi A jest po prostu porównanie do 10, co nie pokazuje całego potencjału switch, który może radzić sobie z wieloma przypadkami. Odpowiedź C też ma problem, bo chociaż używa or poprawnie, brakuje jej else, który jest ważny w switch, bo pozwala na zrobienie czegoś, gdy żaden z warunków nie pasuje. Często zapomina się o znaczeniu default w switch, a w if-else to w sumie jest to else. Zrozumienie tych rzeczy jest ważne, żeby pisać czytelny i efektywny kod PHP, szczególnie gdy tworzymy większe aplikacje, bo bez jasnej struktury może to być naprawdę wyzwanie.

Pytanie 25

Która z zasad dotyczących poprawnego kodu HTML jest BŁĘDNA (nieprawdziwa)?

A. w nazwach znaczników nie rozróżnia się wielkości liter (<p> = <P>)
B. znaczniki zamyka się w odwrotnej kolejności niż otwierano
C. znaczniki (poza pustymi) działają do domknięcia, np. <p>...</p>
D. atrybuty trzeba podawać w kolejności ALFABETYCZNEJ
Pozostałe zasady są PRAWDZIWE, więc nie pasują do pytania o błąd. Znaczniki (poza pustymi) faktycznie działają do domknięcia (np. <p>...</p>), w nazwach znaczników nie rozróżnia się wielkości liter, a zamyka się je w odwrotnej kolejności niż otwierano. Nieprawdziwy jest tylko wymóg alfabetycznej kolejności atrybutów.

Pytanie 26

W języku HTML zdefiniowano listę, która

<ol>
  <li>biały</li>
  <li>czerwony
    <ul>
      <li>różowy</li>
      <li>pomarańczowy</li>
    </ul></li>
  <li>niebieski</li>
</ol>
A. nie zawiera zagłębień i jest numerowana, słowo "niebieski" ma przyporządkowany numer 5
B. jest punktowana z zagłębioną listą numerowaną
C. jest numerowana z zagłębioną listą punktowaną
D. nie posiada zagłębień i jest punktowana, wyświetla 5 punktów
To pytanie świetnie pokazuje, jak w HTML można łączyć różne typy list, czyli listy numerowane (<ol>) oraz punktowane (<ul>). W tym przypadku mamy główną listę numerowaną, gdzie każdy element to <li>. Jednym z tych elementów jest „czerwony”, pod którym zagnieżdżono listę punktowaną z dwoma podpunktami („różowy”, „pomarańczowy”). Taki sposób strukturyzowania treści w HTML to całkowicie zgodna ze specyfikacją praktyka – właśnie dzięki kombinowaniu <ol> i <ul> można czytelnie przedstawiać np. instrukcje czy hierarchiczne zestawienia. Moim zdaniem to jedno z najprostszych, a zarazem najbardziej efektywnych narzędzi do prezentowania hierarchii – nie tylko na stronach technicznych, ale nawet w prostych notatkach. Przeglądarki zawsze renderują <ol> jako listę numerowaną, a <ul> jako wypunktowaną, więc użytkownik końcowy od razu widzi, co jest ważniejsze, a co podrzędne. Takie zagnieżdżenie list to w branży webowej chleb powszedni – np. instrukcje krok po kroku, gdzie niektóre kroki mają dodatkowe podpunkty. Warto pamiętać, że trzymanie się tej struktury i nie mieszanie porządkowania (np. nie zamieniać miejscami <ol> i <ul> bez powodu) ułatwia późniejszą edycję i utrzymanie kodu, co w większych projektach bardzo doceni każdy programista. Sam często stosuję takie rozwiązania i naprawdę nie ma tu lepszej praktyki, jeśli chodzi o przejrzystość kodu HTML.

Pytanie 27

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

Który z przedstawionych poniżej fragmentów kodu HTML5 zostanie uznany przez walidator HTML za niepoprawny?

A. <p class= "stl"><style>.a{color:#F00}</style>tekst</p>
B. <p class= "stl">tekst</p>
C. <p class= "stl" style= "color: #F00 ">tekst</p>
D. <p class= "stl" id= "a">tekst</p>
Poprawna odpowiedź, która została wskazana, to <p class= "stl"><style>.a{color:#F00}</style>tekst</p>. W kontekście HTML5, element <style> jest przeznaczony do umieszczania w nagłówkach dokumentu (<head>), a nie wewnątrz elementów blokowych, takich jak <p>. Umieszczanie tagu <style> w tagu <p> narusza zasady dotyczące struktury dokumentu HTML. Walidatory HTML5, które sprawdzają zgodność kodu z obowiązującymi standardami W3C, uznają takie umieszczenie za błąd, ponieważ stylizacja powinna być oddzielona od treści. Zgodnie z najlepszymi praktykami, CSS powinno być zaimplementowane w plikach zewnętrznych lub sekcjach <head>, co ułatwia utrzymanie i modyfikację kodu. Przykładem poprawnej struktury może być: <head><style>.a{color:#F00}</style></head><body><p class="stl">tekst</p></body>. To zapewnia przejrzystość i zgodność z zasadami HTML5, co jest kluczowe dla SEO oraz dostępności strony.

Pytanie 29

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

A. $ocena > 2 or $ocena < 6
B. $ocena >= 2 or $ocena <= 6
C. $ocena >= 2 and $ocena <= 6
D. $ocena > 2 and $ocena < 6
Wybór odpowiedzi $ocena >= 2 and $ocena <= 6 jest poprawny, ponieważ precyzyjnie określa zakres, w jakim dopuszczalne są oceny ucznia. Operator logiczny 'and' zapewnia, że obie części warunku muszą być spełnione jednocześnie: ocena musi być większa lub równa 2 oraz mniejsza lub równa 6. Taki sposób definiowania zakresu jest zgodny z dobrymi praktykami programowania, gdzie ważne jest, aby warunki logiki były jednoznaczne i precyzyjne. Dla przykładu, w kontekście obliczania średniej, wykorzystanie tego warunku pozwala na uwzględnienie wszystkich ocen, które są zgodne z regulaminem szkoły, co jest kluczowe dla uzyskania dokładnego wyniku. W praktyce, przy implementacji tego typu logiki w PHP, możemy spotkać się z używaniem podobnych zapytań w kontekście przetwarzania danych uczniów, co podkreśla znaczenie poprawnego definiowania warunków w programach. Dodatkowo, stosowanie takich wyrażeń pozwala na łatwe rozbudowywanie kodu, gdyż łatwo można dodawać nowe warunki lub modyfikować istniejące, co wpisuje się w założenia elastyczności i czytelności kodu.

Pytanie 30

Dla jakiej wartości zmiennej x instrukcja warunkowa w JavaScript jest spełniona?

if ((x < -5) || (x > 2))
    x++;
A. -4
B. 2
C. -1
D. 3

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W danym przykładzie mamy do czynienia z instrukcją warunkową w języku JavaScript, która sprawdza, czy zmienna x spełnia jedno z dwóch warunków: x jest mniejsze od -5 lub x jest większe od 2. Operator logiczny OR (||) oznacza, że wystarczy spełnienie jednego z tych warunków, aby kod wewnętrzny został wykonany. Dla wartości x równej 3, warunek (x > 2) jest spełniony, ponieważ 3 jest większe od 2. W rezultacie instrukcja x++ zostanie wykonana, co oznacza inkrementację zmiennej x, czyli zwiększenie jej wartości o 1. Jest to przykład typowego zastosowania operatorów logicznych w programowaniu do kontroli przepływu programu. W praktyce umiejętność stosowania takich instrukcji jest kluczowa w tworzeniu kodu zdolnego do dynamicznej reakcji na różne warunki wejściowe. Ponadto, użycie operatora inkrementacji jest zgodne z najlepszymi praktykami w optymalizacji kodu, gdyż jest to szybki i efektywny sposób na modyfikację wartości liczbowych.

Pytanie 31

Jakie wyjście zostanie pokazane po zrealizowaniu podanego kodu HTML?

Ilustracja do pytania
A. Rys.A
B. Rys. B
C. Rys. D
D. Rys. C

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź to Rys. D ponieważ przedstawiony kod HTML zawiera dwie listy. Pierwsza lista to lista uporządkowana <ol> z trzema elementami <li> gdzie drugi element zawiera listę nieuporządkowaną <ul> z dwoma elementami. Lista zagnieżdżona używa standardowego symbolu kropki jako punktora. Druga lista <ol> zaczyna się od litery D dzięki atrybutowi type="A" i start="4". To powoduje że ostatni element wyświetlany jest jako D. punkt. Ta właściwość HTML jest używana do personalizacji wyglądu list aby dopasować je do wymagań projektowych lub edytorskich. Stosowanie atrybutów takich jak type i start pozwala na większą kontrolę nad sposobem wyświetlania list co jest zgodne z dobrymi praktykami w tworzeniu przejrzystych i spójnych interfejsów użytkownika. Personalizacja list może być użyteczna w dokumentach technicznych raportach czy aplikacjach które wymagają dokładnego odwzorowania struktury danych.

Pytanie 32

Jaką złożoność obliczeniową mają problemy związane z przeprowadzaniem operacji na łańcuchach lub tablicach w przypadku dwóch zagnieżdżonych pętli przetwarzających wszystkie elementy?

A. O(n!)
B. O(n)
C. O(log n)
D. O(n2)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź O(n²) jest jak najbardziej trafna. Wiesz, jak to działa? Gdy masz dwie zagnieżdżone pętle, które przetwarzają elementy w kolekcji, to liczba operacji rośnie kwadratowo w zależności od tego, ile tych elementów masz. Dla n elementów w tablicy, każda z tych n elementów wymaga n operacji w drugiej pętli, co daje razem n*n, czyli n². Przykłady? Algorytmy sortowania bąbelkowego czy przez wstawianie świetnie to ilustrują – obydwa działają w czasie O(n²). Pamiętaj, że jako programiści musimy zwracać uwagę na złożoność algorytmów, bo to wpływa na wydajność naszych aplikacji, szczególnie gdy mamy do czynienia z dużymi zbiorami danych. Dobrze jest próbować optymalizować złożoność, żeby nie wpaść w pułapki wydajnościowe. No i fakt, przy problemach, gdzie musimy porównywać wszystkie elementy, O(n²) to często jedyna opcja, która się sprawdza.

Pytanie 33

.format1 {
    …
}
W CSS określono wspólne style dla pewnej grupy elementów. Użycie takich stylów w kodzie HTML odbywa się za pomocą atrybutu:
A. id = "format1"
B. style = "format1"
C. class = "format1"
D. div = "format1"

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Użycie atrybutu class w języku HTML do formatowania grupy znaczników jest zgodne z najlepszymi praktykami web developmentu. Atrybut class pozwala na zastosowanie tej samej definicji stylu CSS do wielu elementów, co jest efektywne i utrzymuje porządek w kodzie. Umożliwia to również łatwą zmianę wyglądu strony poprzez modyfikację tylko jednej definicji CSS zamiast ręcznego edytowania stylów każdego z elementów z osobna. Dzięki takiemu podejściu, programista może szybko aktualizować wygląd całej strony lub jej części bez ryzyka, że pominięte zostaną pojedyncze elementy. Ponadto użycie klas jest zgodne ze standardami W3C, co zapewnia kompatybilność i poprawne renderowanie w różnych przeglądarkach. Praktycznym przykładem zastosowania jest stronie, gdzie wszystkie elementy z klasą .format1 będą miały jednolity wygląd, na przykład wszystkie przyciski na stronie mogą mieć jednakowy kolor i styl. Pozwala to na tworzenie spójnych interakcji użytkownika i ułatwia przyszłą rozbudowę strony o dodatkowe funkcje.

Pytanie 34

Po wykonaniu poniższego kodu JavaScript, który operuje na wcześniej przygotowanej tablicy liczby, w zmiennej wynik znajduje się suma

var wynik = 0;
for (i = 0; i < 100; i++)
  if (liczby[i] % 2 == 0)
    wynik += liczby[i];
A. parzystych elementów tablicy
B. nieparzystych elementów tablicy
C. dodatnich elementów tablicy
D. wszystkich elementów tablicy

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Przedstawiony kod JavaScript oblicza sumę wszystkich parzystych elementów tablicy liczby. W języku JavaScript operator modulo (%) jest używany do obliczania reszty z dzielenia. W tym przypadku liczby[i] % 2 == 0 sprawdza, czy dany element tablicy liczby jest parzysty. Jeśli reszta z dzielenia przez 2 wynosi 0, oznacza to, że liczba jest parzysta. Dlatego każda parzysta liczba z tablicy jest dodawana do zmiennej wynik. Warto zauważyć, że pętla for przechodzi przez pierwsze 100 elementów tablicy, co sugeruje, że tablica liczby musi mieć co najmniej 100 elementów. Tego typu operacje są często wykorzystywane w praktycznych zastosowaniach, takich jak analiza danych, gdzie konieczne jest filtrowanie i przetwarzanie określonych wartości z dużych zbiorów danych. Dobre praktyki zalecają, aby zrozumieć zarówno składnię, jak i zastosowanie operacji warunkowych i pętli, co jest kluczowe w efektywnym programowaniu. Takie rozwiązania są fundamentem optymalnego przetwarzania danych, a ich zrozumienie umożliwia tworzenie bardziej złożonych algorytmów.

Pytanie 35

Wskaż przycisk sformatowany przedstawionym stylem CSS.

#przycisk {
    background-color: white;
    padding: 10px;
    border-width: 2px;
    border-bottom-style: dashed;
}



Przycisk 1

Przycisk 2

Przycisk 3

Przycisk 4
A. Przycisk 4
B. Przycisk 2
C. Przycisk 3
D. Przycisk 1

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Przycisk 2 jest jedynym, który spełnia wszystkie warunki określone w podanym stylu CSS. Białe tło, odstęp wewnętrzny 10 pikseli, szerokość obramowania 2 piksele oraz przerywana dolna krawędź obramowania są elementami, które zostały ustawione w stylach CSS dla przycisku 2. Ta wiedza jest niezwykle przydatna przy projektowaniu i tworzeniu stron internetowych, gdzie kształtowanie elementów interaktywnych, takich jak przyciski, jest często kluczowym elementem doświadczenia użytkownika. Pamiętaj, że CSS pozwala na dużą swobodę w dostosowywaniu wyglądu poszczególnych elementów strony, a zrozumienie, jak działa selekcja elementów i stylizacja, to fundamenty tworzenia atrakcyjnych i funkcjonalnych projektów webowych. Zrozumienie, jakie style zostały zastosowane do danego elementu, pozwala na szybkie i efektywne dostosowywanie strony do potrzeb klienta.

Pytanie 36

Podany fragment kodu PHP ma na celu wstawienie wartości z zmiennych $a, $b, $c do bazy danych, w tabeli dane. Tabela ta składa się z czterech kolumn, z których pierwsza to autoinkrementowany klucz podstawowy. Które z zapytań powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A. ```SELECT '$a', '$b', '$c' FROM dane;```
B. ```INSERT INTO dane VALUES ('$a', '$b', '$c');```
C. ```INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');```
D. ```SELECT NULL, '$a', '$b', '$c' FROM dane;```

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa odpowiedź to "INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');" ponieważ wstawia dane do bazy danych w sposób zgodny z jej strukturą. W tabeli dane pierwsze pole jest kluczem głównym, który jest autoinkrementowany, co oznacza, że nie musimy go podawać ręcznie. Wartość NULL w tym przypadku pozwala bazie danych na automatyczne wygenerowanie nowego identyfikatora. Pozostałe zmienne, $a, $b i $c, zawierają dane, które chcemy wstawić do odpowiednich kolumn. Stosowanie przygotowanych zapytań (prepared statements) w PHP z wykorzystaniem mysqli jest najlepszą praktyką, ponieważ zapewnia ochronę przed atakami SQL injection oraz poprawia wydajność. Przykład zastosowania tego typu zapytania może obejmować dodawanie użytkowników do systemu, gdzie każdy użytkownik ma unikalny identyfikator generowany przez bazę danych. Warto również pamiętać o walidacji i sanitizacji danych przed ich wprowadzeniem do bazy.

Pytanie 37

Dana jest tabela studenci o polach id_albumu, ubezpieczenie. Modyfikacja w kolumnie ubezpieczenie polegająca na zmianie wierszy bez wartości (NULL) na ciąg znaków „brak” zostanie wykonana kwerendą

A. UPDATE studenci ubezpieczenie IS NULL SET ubezpieczenie='brak';
B. ALTER TABLE studenci ADD ubezpieczenie='brak' WHERE ubezpieczenie IS NULL;
C. ALTER TABLE studenci MODIFY COLUMN ubezpieczenie='brak' NOT NULL;
D. UPDATE studenci SET ubezpieczenie='brak' WHERE ubezpieczenie IS NULL;

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Prawidłowa kwerenda używa instrukcji UPDATE z klauzulą SET oraz warunkiem w części WHERE: „UPDATE studenci SET ubezpieczenie='brak' WHERE ubezpieczenie IS NULL;”. To dokładnie odpowiada temu, co chcemy zrobić: zaktualizować istniejące rekordy w tabeli, tylko w tych wierszach, gdzie kolumna ubezpieczenie ma wartość NULL. UPDATE służy właśnie do modyfikowania danych w tabeli, a nie do zmiany jej struktury. Kluczowy jest tu warunek WHERE ubezpieczenie IS NULL – bez tego zmienilibyśmy wartość ubezpieczenie na „brak” we wszystkich wierszach, co byłoby poważnym błędem. W SQL porównanie z NULL odbywa się zawsze przez IS NULL lub IS NOT NULL, a nie przez operator =, bo NULL oznacza „brak danych”, a nie konkretną wartość. Moim zdaniem warto zapamiętać ten schemat, bo w praktyce pracy z bazami danych bardzo często trzeba „sprzątać” dane: zastępować wartości NULL jakimiś domyślnymi opisami, np. „nieznany”, „nie dotyczy”, „brak danych”. Przykładowo: UPDATE klienci SET telefon='brak' WHERE telefon IS NULL; albo UPDATE pracownicy SET premia=0 WHERE premia IS NULL;. To jest ten sam wzorzec działania. Dobrą praktyką jest też najpierw wykonać SELECT z tym samym warunkiem WHERE, żeby zobaczyć, które rekordy zostaną zmodyfikowane, zanim puścimy właściwy UPDATE. W projektowaniu baz danych przyjęło się, że UPDATE służy do zmiany zawartości wierszy, a ALTER TABLE do zmiany struktury tabeli (dodawanie kolumn, zmiana typów, kluczy itp.). Mieszanie tych dwóch ról prowadzi potem do dziwnych błędów. W standardowym SQL nie ma możliwości aktualizacji tylko części wierszy poprzez ALTER TABLE, dlatego tutaj jedynym sensownym, poprawnym i zgodnym z dobrymi praktykami rozwiązaniem jest właśnie użycie UPDATE z warunkiem WHERE ubezpieczenie IS NULL.

Pytanie 38

W zamieszczonym kodzie PHP, zamiast znaków zapytania powinien być wyświetlony komunikat:

$x = mysql_query('SELECT * FROM mieszkancy');
if (!$x)
    echo '??????????????????????';
A. Błąd w trakcie przetwarzania zapytania
B. Niepoprawna nazwa bazy danych
C. Zapytanie zostało poprawnie przetworzone
D. Niepoprawne hasło do bazy danych

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W przedstawionym kodzie PHP, komunikat "??????????????????????" powinien wskazywać na błąd przetwarzania zapytania SQL. Kiedy wynik funkcji mysql_query() jest równy fałszowi (false), oznacza to, że zapytanie nie mogło zostać poprawnie wykonane. Może to być spowodowane różnymi czynnikami, takimi jak błędy w składni zapytania, problemy z połączeniem z bazą danych, lub nieprawidłowe tabele. W tym przypadku, dobrym podejściem jest użycie funkcji mysql_error() w celu uzyskania bardziej szczegółowych informacji na temat natury błędu. Przykład poprawnego kodu mógłby wyglądać tak: <p>$x = mysql_query('SELECT * FROM mieszkancy');<br>If (!$x) {<br>echo mysql_error();<br>}</p> Używanie tej metody pomaga w diagnostyce problemu i pozwala na szybsze jego rozwiązanie. Znalezienie i naprawienie błędów w zapytaniach SQL jest kluczowe w pracy z bazami danych, szczególnie w kontekście aplikacji internetowych, które muszą być niezawodne i efektywne.

Pytanie 39

Plik HTML jest w folderze www/html/, a styl.css w www/style/. Jak poprawnie (ścieżką względną) dołączyć arkusz w pliku HTML?

A.
<link rel="stylesheet" href="style/styl.css">
B.
<link rel="stylesheet" href="styl.css">
C.
<link rel="stylesheet" href="www/style/styl.css">
D.
<link rel="stylesheet" href="../style/styl.css">

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Ścieżka względna prowadzi „od miejsca, w którym jesteśmy”. Plik HTML leży w <code><span class="code-variable">www</span><span class="code-text">/</span><span class="code-variable">html</span><span class="code-text">/</span></code>, a arkusz w <code><span class="code-variable">www</span><span class="code-text">/</span><span class="code-variable">style</span><span class="code-text">/</span></code>, więc trzeba najpierw cofnąć się o katalog w górę (<code><span class="code-text">.</span><span class="code-text">.</span><span class="code-text">/</span></code> prowadzi do <code><span class="code-variable">www</span><span class="code-text">/</span></code>), a potem zejść do <code><span class="code-variable">style</span><span class="code-text">/</span></code>. Daje to <code><span class="code-variable">href</span><span class="code-text">=</span><span class="code-string">"../style/styl.css"</span></code>.

Pytanie 40

Angielskim odpowiednikiem słowa „zapytanie”, używanym w bazach danych SQL, jest:

A. query
B. keyword
C. select
D. asterisk

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
W terminologii baz danych zapytanie to po angielsku „query” - polecenie kierowane do bazy w celu pobrania lub zmiany danych. Stąd pojęcia takie jak query language (język zapytań) czy subquery (podzapytanie). Dlatego angielskim odpowiednikiem słowa „zapytanie” jest query.