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: 2 sierpnia 2026 01:14
  • Data zakończenia: 2 sierpnia 2026 01:30

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Na czym polega walidacja pól formularza?

A. na sprawdzeniu, czy wprowadzone dane spełniają określone reguły
B. na ustaleniu, który użytkownik wprowadził dane
C. na sprawdzeniu, czy istnieje plik PHP odbierający dane
D. na sprawdzeniu, czy użytkownik jest zalogowany
Pozostałe opisy dotyczą czego innego. Sprawdzanie, czy użytkownik jest zalogowany, to uwierzytelnianie/autoryzacja. Ustalanie, kto wprowadził dane, to identyfikacja. Istnienie pliku PHP odbierającego dane to kwestia konfiguracji serwera. Walidacja bada, czy dane spełniają reguły.

Pytanie 2

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

Pytanie 3

W obiektowym programowaniu w języku JavaScript zapis: this.zawod w podanym kodzie oznacza

function Uczen(){
  this.imie = '';
  this.nazwisko = '';
  this.technik = 'informatyk';
  this.zawod = function() {
    return this.technik;
  };
}
A. konstruktor
B. metodę
C. właściwość
D. klasę
W programowaniu obiektowym w JavaScript słowo kluczowe this odnosi się do kontekstu bieżącego obiektu. W przedstawionym kodzie mamy do czynienia z funkcją konstrukcyjną Uczen, która jest używana do tworzenia nowych obiektów. Wewnątrz tej funkcji, this związuje się z nowo tworzonym obiektem. Metoda this.zawod, która jest zdefiniowana jako funkcja, odwołuje się do właściwości technik za pomocą słowa this i zwraca jej wartość. W JavaScript metody są funkcjami, które są przypisane do właściwości obiektu i które mogą być wywoływane jako część tego obiektu. Zapis this.zawod = function() { return this.technik; } definiuje metodę zawod w kontekście obiektu tworzonego przez konstruktor Uczen. Praktyczne zastosowanie tej metody umożliwia dostęp do wartości właściwości technik w sposób kontrolowany, co jest zgodne z dobrymi praktykami programowania obiektowego, gdzie enkapsulacja i zarządzanie dostępem do danych są kluczowymi elementami. Metody w JavaScript są podstawowym elementem umożliwiającym realizację zachowań obiektów dzięki czemu programy są bardziej modularne i łatwiejsze do utrzymania

Pytanie 4

Aby ustawić marginesy wewnętrzne elementu: górny 50px, prawy 20px, dolny 40px, lewy 30px, należy użyć deklaracji CSS:

A.
padding: 20px 40px 30px 50px;
B.
padding: 30px 20px 40px 50px;
C.
padding: 50px 20px 40px 30px;
D.
padding: 50px 40px 20px 30px;
Skrócony zapis padding z czterema wartościami przyjmuje je w kolejności zgodnej z ruchem wskazówek zegara: góra, prawo, dół, lewo (TRBL). Dla marginesów górny 50, prawy 20, dolny 40, lewy 30 daje to padding: 50px 20px 40px 30px;. Wartości rozdziela się spacjami, nie przecinkami. Dlatego poprawna jest ta deklaracja.

Pytanie 5

Aby poprawić wydajność strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie jej rozmiarów

A. w programie graficznym
B. za pomocą właściwości CSS, podając rozmiar w procentach
C. za pomocą właściwości CSS, podając rozmiar w pikselach
D. za pomocą atrybutów HTML
Zastosowanie atrybutów HTML do zmiany rozmiaru grafiki, takie jak width i height, nie wpływa na samą wielkość pliku, a jedynie na to, jak obrazek jest prezentowany na stronie. Przykładowo, jeśli zmniejszymy wymiary w HTML, przeglądarka nadal załadowuje pełną wersję grafiki, co może prowadzić do wolniejszego ładowania strony. To podejście jest niewłaściwe, ponieważ nie rozwiązuje problemu optymalizacji pliku, a jedynie maskuje go na poziomie wizualnym. Podobnie, stosowanie właściwości CSS, aby wskazać rozmiar w pikselach lub procentach, również nie zmienia rozmiaru samego pliku, co powoduje, że strona może ładować się dłużej. Użytkownicy mogą być zdezorientowani, myśląc, że zmiana stylów CSS wystarczy do poprawy wydajności strony, podczas gdy w rzeczywistości kluczowe jest skompresowanie i zmniejszenie samego pliku graficznego. Typowym błędem myślowym jest założenie, że zmiana rozmiaru wyświetlania na stronie jest równoważna z optymalizacją pliku. W praktyce zaleca się najpierw zmniejszyć rozmiar grafiki w programie graficznym, a następnie użyć odpowiednich tagów HTML lub CSS do wyświetlenia obrazu w pożądanym rozmiarze. Takie podejście zapewnia rzeczywiste korzyści w zakresie wydajności i szybkości ładowania strony.

Pytanie 6

Kwerenda

ALTER TABLE artykuly MODIFY cena float;
ma na celu dokonanie zmian w tabeli artykuly.
A. dodać kolumnę o nazwie cena z typem float, jeżeli jeszcze nie istnieje
B. zmienić nazwę kolumny cena na float
C. usunąć kolumnę o nazwie cena typu float
D. zmienić typ kolumny cena na float
Twoja odpowiedź o zmianie typu na float dla kolumny cena jest całkiem na miejscu! W pracy z bazami danych ważne jest, żeby odpowiednio zarządzać typami danych w tabelach. Typ float to coś, co często wykorzystuje się do przechowywania wartości liczbowych, które mają część dziesiętną. To istotne przy cenach, które często muszą być dokładnie przedstawione, na przykład do dwóch miejsc po przecinku. Wspomniana kwerenda ALTER TABLE to świetne narzędzie do zmiany struktury tabeli, i to jest zgodne z dobrymi praktykami zarządzania bazami, zwłaszcza z zasadą elastyczności. Dzięki temu można dostosować tabelę do zmieniających się potrzeb bez potrzeby przebudowy całej bazy. Wiesz, takie operacje są dość typowe, ale trzeba uważać, by nie stracić danych czy mieć jakieś niezgodności. Dlatego zawsze warto zrobić kopię zapasową i testować zmiany w środowisku testowym. Zrozumienie takich operacji pomoże ci w lepszym zarządzaniu bazami danych i ich optymalizacji.

Pytanie 7

W którym formacie RASTROWYM zapisać wykres słupkowy, by miał ostre krawędzie (bez artefaktów)?

A. JPEG
B. CDR
C. SVG
D. PNG
Pozostałe formaty się nie nadają. JPEG kompresuje STRATNIE i wokół ostrych krawędzi tworzy widoczne „brudy” (artefakty). SVG i CDR to formaty WEKTOROWE - dobre do wykresów, ale pytanie wprost prosi o format RASTROWY. Rastrowy zapis wykresu bez artefaktów daje PNG.

Pytanie 8

Aby dołączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, należy użyć następującego fragmentu kodu HTML:

A.
<meta charset="styl.css">
B.
<div id="styl.css" relation="css">
C.
<option value="styl.css" type="text/css">
D.
<link rel="stylesheet" type="text/css" href="styl.css">
Poprawny jest znacznik <link rel="stylesheet" type="text/css" href="styl.css">. Zewnętrzny arkusz stylów to osobny plik .css, który dołączasz do strony w sekcji <head> dokumentu HTML właśnie znacznikiem <link>. Atrybut rel="stylesheet" mówi przeglądarce, że powiązany plik to arkusz stylów, href wskazuje jego ścieżkę, a type="text/css" (opcjonalny w HTML5) określa typ zawartości. Taki sposób dołączania CSS oddziela wygląd od treści i pozwala użyć jednego arkusza na wielu podstronach.

Pytanie 9

W dokumentacji języka PHP znajduje się informacja dotycząca jednej z jego funkcji:
„Warning. This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0.”.
Zgodnie z tą informacją użycie tej funkcji jest:

A. niezalecane w wersji PHP 5.5.0 i dostępne od wersji 7.0.0.
B. niemożliwe w wersjach PHP 5.5.0 lub starszych i dostępne dopiero od wersji 7.0.0.
C. przestarzałe od wersji PHP 5.5.0 i całkowicie usunięte w wersji 7.0.0.
D. dostępne w wersjach PHP od 5.5.0 do 7.0.0 (włącznie) i niedostępne w innych wersjach.
Opis w dokumentacji PHP, że dane rozszerzenie „was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0”, ma bardzo konkretne znaczenie i jest częścią szerszej polityki utrzymania kompatybilności wstecznej. „Deprecated” nie oznacza ani wprowadzenia funkcji, ani jej czasowej dostępności między jakimiś wersjami, tylko etap przejściowy: funkcja jeszcze działa, ale jest już oznaczona jako przestarzała i przeznaczona do usunięcia w przyszłej głównej wersji języka. Typowym błędem myślowym jest traktowanie słowa „deprecated” jako „od tej wersji pojawia się funkcja” albo „od tej wersji zaleca się jej używanie”. Jest dokładnie odwrotnie – od tej wersji należy zacząć planować rezygnację z tej funkcji. Dlatego interpretacja, że coś jest „niezalecane w 5.5.0 i dostępne od 7.0.0” kompletnie nie trzyma się kupy, bo „removed in 7.0.0” znaczy fizyczne usunięcie, a nie udostępnienie. Innym częstym nieporozumieniem jest myślenie, że skoro pojawia się ostrzeżenie „deprecated”, to w starszych wersjach (np. 5.4, 5.3) ta funkcja nie istniała. W praktyce bardzo często jest tak, że funkcja działała od dawna, w 5.5 została oznaczona jako przestarzała, a dopiero w 7.0 znikła – więc stwierdzenie, że jest „niemożliwa w 5.5.0 lub starszych i dostępna dopiero od 7.0.0” odwraca chronologię do góry nogami. Pojawia się też błędne założenie, że komunikat określa dokładnie zakres wersji, w których funkcja jest dostępna, np. „od 5.5 do 7.0 włącznie”. Tymczasem słowo „removed” jasno wskazuje, że od podanej wersji w górę funkcji już nie ma. Dobry nawyk w pracy z PHP to: zawsze czytać dokładnie notki w dokumentacji, sprawdzać sekcję „Changelog” i traktować ostrzeżenia o przestarzałości jako sygnał do migracji kodu, a nie jako informację o dodaniu nowej funkcji. Z mojego doświadczenia niedokładne zrozumienie tych komunikatów kończy się tym, że po aktualizacji do PHP 7 lub 8 projekt nagle przestaje działać, bo opierał się na funkcjach formalnie wycofanych kilka lat wcześniej.

Pytanie 10

Zmienne typu int odnoszą się do liczb całkowitych

A. naturalnych
B. w notacji stałoprzecinkowej
C. całkowitych
D. w notacji zmiennoprzecinkowej
Odpowiedzi, które nie są poprawne, opierają się na mylnym zrozumieniu typów danych w programowaniu. Zmienne odnoszące się do wartości naturalnych to liczby całkowite większe lub równe zeru, co nie obejmuje wszystkich możliwości, które daje typ int, ponieważ może on reprezentować również liczby ujemne. Zatem ograniczenie do liczb naturalnych jest zbyt wąskie i nie oddaje pełni możliwości, jakie oferują zmienne całkowite. Kolejnym błędnym założeniem jest powiązanie typów int z notacją stałoprzecinkową. Chociaż takie notacje są używane w kontekście reprezentacji liczby w pamięci, zmienne int nie są właściwie klasyfikowane jako stałoprzecinkowe, gdyż termin ten odnosi się specyficznie do zapisu wartości liczbowych, które nie zmieniają pozycji przecinka. Tak więc, typ int nie jest związany z tym pojęciem. Ostatnia odpowiedź, która sugeruje, że zmienne int są w notacji zmiennoprzecinkowej, jest również niepoprawna, ponieważ zmiennoprzecinkowe reprezentacje (np. float lub double) są używane do przechowywania liczb, które wymagają dokładności dziesiętnej. Typ int jest z definicji typem całkowitym, co w żaden sposób nie obejmuje liczb zmiennoprzecinkowych. W rzeczywistości zmienne zmiennoprzecinkowe mają całkowicie inną strukturę pod względem przechowywania i reprezentacji, co sprawia, że są one zupełnie odrębnymi typami danych od int.

Pytanie 11

W języku CSS atrybut font-size przyjmuje, zgodnie z nazwami, wartości

A. zaledwie big oraz small
B. z zestawu xx-small, x-small, medium, large, x-large, xx-large
C. jedynie small, smaller, large, larger
D. wyłącznie small, medium, large
Właściwość font-size w CSS pozwala na określenie rozmiaru czcionki za pomocą różnych wartości, w tym predefiniowanych słów kluczowych, które umożliwiają łatwe dostosowanie wielkości tekstu w dokumentach HTML. Oprócz typowych wartości takich jak small, medium i large, CSS oferuje również bardziej szczegółowe opcje, takie jak xx-small, x-small, x-large oraz xx-large. Dzięki temu projektanci mogą lepiej dopasować rozmiar tekstu do kontekstu wizualnego strony. Użycie tych wartości pozwala na uniknięcie problemów z uniwersalnością, gdyż są one zrozumiałe i zgodne z różnymi rozdzielczościami ekranów. Na przykład, podczas projektowania responsywnej witryny, zastosowanie wartości xx-large dla nagłówków oraz x-small dla przypisów skutecznie poprawia czytelność i estetykę. Zgodnie z najlepszymi praktykami, warto również rozważyć użycie jednostek względnych, takich jak em czy rem, co pozwala na jeszcze większą elastyczność w dostosowywaniu rozmiarów tekstu do preferencji użytkownika oraz rozmiaru ekranu.

Pytanie 12

<?php
$dane = fread(fopen("plik.txt", "r"), filesize("plik.txt"));
?>
Przedstawiony kod zapisany w języku PHP ma za zadanie
A. zapisać do pliku plik.txt wartość zmiennej dane
B. zmiennej dane przypisać zawartość pliku plik.txt
C. zmiennej dane przypisać wielkość pliku plik.txt
D. otworzyć plik plik.txt i jako wartość zmiennej dane przypisać rozmiar pliku
Kod z pytania wykorzystuje trzy kluczowe elementy pracy z plikami w PHP: fopen, fread i filesize. Żeby dobrze zrozumieć, dlaczego niektóre interpretacje są błędne, trzeba rozdzielić pojęcia „odczyt” i „zapis” oraz pamiętać, co tak naprawdę zwracają poszczególne funkcje. fopen z parametrem "r" otwiera plik wyłącznie do czytania. W tym trybie nie ma możliwości zapisu danych do pliku, więc każda interpretacja sugerująca, że coś jest zapisywane do pliku, stoi w sprzeczności z dokumentacją PHP. To jest częsty błąd: ktoś widzi funkcję pracującą na plikach i automatycznie myśli o zapisie, a tutaj jest tylko odczyt.
Kolejna mylna ścieżka rozumowania dotyczy funkcji filesize. Ona faktycznie zwraca rozmiar pliku w bajtach, ale w tym kodzie ten rozmiar jest użyty wyłącznie jako argument dla fread, czyli jako informacja: „ile bajtów odczytać”. Zmienna $dane nie dostaje więc wartości rozmiaru pliku, tylko wynik działania fread, czyli tekstową zawartość pliku. Rozmiar pojawia się tu tylko po to, żeby powiedzieć fread, ile danych ma pobrać z uchwytu pliku. To jest subtelna, ale ważna różnica: wartość zwracana przez filesize nie jest przypisywana bezpośrednio do $dane.
Może się też pojawić pokusa, by myśleć, że kod jednocześnie otwiera plik i „przypisuje rozmiar pliku jako wartość zmiennej”. W praktyce mamy dwie operacje: otwarcie pliku (fopen) i odczyt zawartości (fread). Otworzenie pliku nie jest celem samym w sobie, jest tylko krokiem pośrednim, koniecznym do tego, żeby fread mogło pobrać dane. Z mojego doświadczenia wynika, że uczniowie często mieszają: co zwraca uchwyt pliku, co zwraca funkcja odczytu, a co funkcja podająca rozmiar. Tutaj zwracany jest string z treścią pliku, nie liczba bajtów i nie sam uchwyt.
Podsumowując merytorycznie: w tym przykładzie nie zachodzi zapis do pliku, zmienna $dane nie przyjmuje samego rozmiaru pliku, ani też nie jest do niej wprost przypisywana wartość z filesize. Cała logika kodu prowadzi do jednego efektu – odczytania pełnej zawartości pliku plik.txt i umieszczenia jej w zmiennej $dane, co jest poprawną interpretacją zgodną ze standardowym sposobem użycia fopen i fread w PHP.

Pytanie 13

Jakie z poniższych stwierdzeń poprawnie opisuje zdefiniowaną tabelę?

CREATE TABLE dane (kolumna INTEGER(3));
A. Tabela ma jedną kolumnę, która zawiera tablice z trzema elementami.
B. Tabela o nazwie dane posiada jedną kolumnę liczb całkowitych.
C. Kolumny tabeli dane są nazywane: kolumna 1, kolumna2, kolumna3.
D. Tabela o nazwie dane zawiera trzy kolumny typu całkowitego.
Wszystkie niepoprawne odpowiedzi opierają się na błędnych założeniach dotyczących definicji tabeli i jej kolumn. Twierdzenie, że kolumny tabeli dane nazywają się kolumna1, kolumna2, kolumna3, jest błędne, ponieważ zdefiniowana tabela posiada jedynie jedną kolumnę o nazwie 'kolumna'. W SQL kolumny tworzy się na podstawie zadanej definicji, a w tym przypadku nie ma żadnych dodatkowych kolumn. Kolejne błędne stwierdzenie, że tabela posiada trzy kolumny liczb całkowitych, jest również nieprawdziwe, ponieważ w rzeczywistości mamy tylko jedną kolumnę, nie trzy. Wartości 'kolumna1', 'kolumna2' i 'kolumna3' wskazują na nieporozumienie w interpretacji struktury tabeli. Ponadto, założenie, że tabela posiada jedną kolumnę zawierającą trzyelementowe tablice, jest całkowicie błędne. Typ danych INTEGER oznacza, że kolumna przechowuje pojedyncze liczby całkowite, a nie tablice. W SQL nie definiuje się tablic w ten sposób; jeżeli konieczne byłoby przechowywanie tablic, zastosowanie wymagałoby innego podejścia, takiego jak zdefiniowanie typu danych ARRAY (w systemach, które go obsługują) lub zastosowanie relacji w inny sposób. Tego rodzaju nieporozumienia mogą prowadzić do nieefektywnego projektowania baz danych oraz problemów w aplikacjach korzystających z tych danych, co podkreśla znaczenie dokładności w definiowaniu struktur baz danych.

Pytanie 14

Jakie zapytanie umożliwi Administratorowi odebranie uprawnień do przeglądania oraz edytowania danych w bazie gazeta, dla użytkownika redaktor?

A. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
B. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
C. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
D. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ mylą pojęcie przyznawania i odbierania uprawnień. Na przykład, odpowiedź z użyciem GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost'; jest błędna, ponieważ GRANT służy do przyznawania uprawnień, a nie ich odbierania. Użytkownik, który rozważa tę opcję, może mieć fałszywe przekonanie, że jest możliwe przypisanie uprawnień w sytuacji, gdy celem jest ich cofnięcie. Podobnie, odpowiedzi zawierające ALTER, jak REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost'; wprowadzają dodatkowy zamęt, ponieważ ALTER nie jest związane z przeglądaniem lub aktualizowaniem danych, ale odnosi się do modyfikacji struktury bazy danych. Błędne rozumienie różnic między SELECT, UPDATE i ALTER może prowadzić do poważnych problemów w zarządzaniu bazą danych, na przykład do nieautoryzowanych zmian w strukturze danych. Użytkownicy mogą także popełniać błąd w zakresie lokalizacji użytkownika, co w przypadku odpowiedzi jest określone jako 'redaktor'@'localhost';, co może być mylące w sytuacji, gdy użytkownik jest przypisany do innego hosta. Właściwe zrozumienie i stosowanie uprawnień w bazach danych jest fundamentalne dla ochrony danych, a także dla zapewnienia, że tylko uprawnieni użytkownicy mają dostęp do krytycznych informacji.

Pytanie 15

Co robi polecenie:

ALTER TABLE miasta ADD kod text;
?
A. zmienia nazwę kolumny kod na text
B. dodaje do tabeli kolumnę kod typu text
C. dodaje dwie kolumny: kod i text
D. zmienia nazwę tabeli miasta na kod
Pozostałe interpretacje są błędne. W zapisie ADD kod text jest jedna nazwa kolumny (kod) i jeden typ (text), więc powstaje JEDNA kolumna, a nie dwie. Nazwa tabeli się nie zmienia (to nie RENAME), a nazwa kolumny nie jest podmieniana. Efektem jest dodanie kolumny kod typu text.

Pytanie 16

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a leży w przedziale (0,100), a wartość zmiennej b jest większa od zera. Odpowiedni zapis warunku jest następujący:

A. if (a > 0 || a < 100 || b < 0 )
B. if (a > 0 && a < 100 || b < 0 )
C. if (a > 0 || a < 100 && b > 0 )
D. if (a > 0 && a < 100 && b > 0 )
Odpowiedź 'if (a > 0 && a < 100 && b > 0)' jest dokładnie to, czego szukamy. Zmiana 'a' musi być w przedziale powyżej 0, ale poniżej 100, a do tego 'b' musi być większe od zera. To tak jakby ustalać zasady dla jakiegoś wyzwania – żeby coś się udało, musi być spełnionych kilka warunków na raz. Przykładowo, jeżeli myślimy o zakupach online, to możemy zrobić zakupy tylko wtedy, gdy kwota jest w porządku (czyli w tym przedziale) i nasze konto ma jakieś pieniądze. Takie jasne zasady są super ważne, bo pomagają w pisaniu czytelnego kodu, który potem łatwiej zrozumieć i utrzymać.

Pytanie 17

W jaki sposób można ocenić normalizację przedstawionej tabeli?

FirmaAdres
Forbotul. Krótka 11, 22-222 Warszawa
Marbotul. Długa 5, 33-333 Warszawa
A. Tabela nie została znormalizowana
B. Tabela jest w trzeciej postaci normalnej
C. Tabela znajduje się w pierwszej postaci normalnej
D. Tabela znajduje się w drugiej postaci normalnej
Pierwsza postać normalna wymaga aby wszystkie wartości atrybutów w rekordzie były atomowe czyli nieredukowalne Tabela przedstawiona w zadaniu nie spełnia tego wymogu ponieważ adresy nie są rozbite na osobne elementy takie jak ulica miasto i kod pocztowy co uniemożliwia bardziej złożoną manipulację danymi oraz precyzyjne wyszukiwanie Druga postać normalna wymaga aby wszystkie atrybuty nie będące częścią klucza głównego były w pełni funkcjonalnie zależne od całego klucza Tabela z pytania nie spełnia tych kryteriów ponieważ istnieje redundancja i brak wyraźnej struktury Klucz główny w dobrze zaprojektowanej tabeli bazy danych powinien jednoznacznie identyfikować każdy wiersz co nie jest widoczne w tej strukturze Trzecia postać normalna idzie krok dalej eliminując zależności przechodnie między atrybutami co w przypadku tej tabeli również nie ma zastosowania Problemem tutaj jest brak rozdzielenia danych na mniejsze tabele co prowadzi do redundancji i potencjalnych błędów przy aktualizacji danych często określanych jako anomaly W dobrze znormalizowanej bazie danych oddzielenie informacji takich jak dane adresowe umożliwia lepszą organizację danych ich spójność oraz zwiększa efektywność operacji na bazie danych

Pytanie 18

Jakim typem jest w PHP zmienna globalna $_POST (odbierająca dane formularza)?

A. zmienną tekstową
B. obiektem klasy stdClass
C. tablicą asocjacyjną
D. ciągiem znaków zakodowanym w JSON
Superglobalna $_POST jest TABLICĄ ASOCJACYJNĄ - kluczami są nazwy pól formularza (name), a wartościami wpisane dane, np. $_POST['email']. Dlatego $_POST to tablica asocjacyjna.

Pytanie 19

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

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

Pytanie 20

W CSS właściwość font-size może przyjmować wartości według słów kluczowych

A. jedynie big i smali
B. tylko smali, smaller, large, larger
C. z zestawu xx-small, x-small, smali, medium, large, x-large, xx-large
D. wyłącznie smali, medium, large
Właściwość font-size w CSS pozwala na określenie rozmiaru czcionki za pomocą zestawu wartości słownikowych, które obejmują xx-small, x-small, small, medium, large, x-large oraz xx-large. Użycie tych słów kluczowych jest zgodne z wytycznymi CSS i zapewnia spójne i zrozumiałe podejście do projektowania. Przykładowo, definiując klasę CSS dla nagłówka, możemy zastosować: h1 { font-size: large; } co skutkuje odpowiednim zwiększeniem rozmiaru czcionki, co jest zgodne z hierarchią typograficzną dokumentu. Zastosowanie wartości słownikowych zwiększa czytelność i dostępność treści, ponieważ są one zrozumiałe zarówno dla programistów, jak i dla przeglądarek. Ponadto, korzystając z tych wartości, projektanci mogą łatwiej dostosować wygląd strony do różnych urządzeń, co jest kluczowe w kontekście responsywnego web designu. Warto również wspomnieć, że wartości te są niezależne od jednostek miary, takich jak em czy px, co sprawia, że są bardziej elastyczne w użyciu.

Pytanie 21

Która metoda obiektu location zastępuje bieżący dokument dokumentem spod podanego adresu?

A.
open();
B.
reload();
C.
replace();
D.
close();
Pozostałe metody robią co innego. reload() odświeża bieżącą stronę, a open() i close() dotyczą okien (obiektu window), nie zastępowania dokumentu. Zastąpienie strony daje location.replace().

Pytanie 22

Elementarna animacja może być zapisana w formacie

A. BMP
B. TIFF
C. GIF
D. PSD
Format GIF (Graphics Interchange Format) jest powszechnie stosowany do tworzenia prostych animacji ze względu na swoją zdolność do kompresji obrazów i obsługi przez większość przeglądarek internetowych. GIF pozwala na zapisanie sekwencji obrazów w jednej pliku, co umożliwia ich wyświetlanie jako animacji. Standard GIF obsługuje maksymalnie 256 kolorów z palety, co czyni go idealnym do prostych grafik, takich jak ikony czy animacje internetowe. Dzięki metodzie kompresji Lempel-Ziv-Welch (LZW) możliwe jest zmniejszenie rozmiaru pliku bez utraty jakości, co jest kluczowe w kontekście transferu danych przez sieć. Przykłady zastosowania formatu GIF obejmują animowane banery reklamowe, emotikony oraz krótkie klipy wideo w formie GIF, które stały się popularne na platformach społecznościowych. Ponadto GIF wspiera przezroczystość i animacje w cyklu, co podnosi jego użyteczność w wielu aplikacjach multimedialnych. Z tego powodu GIF jest formatem, który oferuje zarówno funkcjonalność, jak i kompatybilność, co czyni go najlepszym wyborem dla prostych animacji.

Pytanie 23

Jak za pomocą CSS ustawić opływanie obrazu tekstem, wprowadzając odpowiedni kod w stylu obrazu?

Ilustracja do pytania
A. clear: both;
B. table: left;
C. float: left;
D. float: right;
Właściwość float: right; w CSS to naprawdę fajne narzędzie, bo pozwala na umieszczenie rzeczy, jak na przykład obrazek, z prawej strony kontenera. Dzięki temu tekst ładnie opływa go z lewej strony, co jest super w responsywnych projektach. Często to widzę na stronach, gdzie musimy dostosować układ do różnych ekranów. Użycie float: right; zgodne jest z dobrymi praktykami CSS i daje nam większą kontrolę nad tym, jak wygląda strona. Przykładowo, w artykułach, gdzie obrazki są często po jednej stronie tekstu, float naprawdę ułatwia życie. Tylko pamiętaj, żeby używać clearfix, bo elementy pływające mogą czasami zamieszać w układzie. Dobrze jest też wiedzieć, że float zmienia sposób, w jaki przeglądarka wyświetla elementy, więc znajomość jego wpływu na model pudełkowy CSS jest bardzo ważna. Dzięki float: right; możemy ładnie oprawić tekst wokół obrazków w blogach, co sprawia, że wygląda to estetycznie i jest bardziej czytelne.

Pytanie 24

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr:active { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. tr { background-color: Pink; }

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 25

Według którego parametru oraz dla ilu tabel zostaną zwrócone wiersze na liście w wyniku przedstawionego 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. Według parametru nr id wyłącznie dla trzech tabel.
B. Według parametru wyrób id dla wszystkich tabel.
C. Według parametru wyrób Jd wyłącznie dla trzech tabel.
D. Według parametru nr id dla wszystkich tabel.
Wybrana odpowiedź jest niepoprawna. Wszystkie tabelki są łączone przez wartość kolumny nr id, a nie konkretnie przez 'wyrób id' lub 'wyrób Jd'. Ważne jest, aby pamiętać, że zapytanie SQL odnosi się do wszystkich tabel, a nie tylko do trzech. W niektórych odpowiedziach może wystąpić błąd, polegający na myśleniu, że zapytanie dotyczy tylko trzech tabel, podczas gdy w rzeczywistości dotyczy ono czterech: producent, hurtownia, sklep i serwis. Ponadto, zrozumienie, jakie konkretne parametry są używane do zwracania wierszy, jest kluczowe dla zrozumienia, jak działa zapytanie. Zrozumienie tego, jakie parametry są używane w zapytaniu SQL, jest kluczowe dla zrozumienia, jakie dane są zwracane i dlaczego. Niewłaściwe zrozumienie tego, jakie parametry są używane w zapytaniu, może prowadzić do niewłaściwego zrozumienia, jakie dane są zwracane i dlaczego. Pamiętaj, że idealnym celem jest nie tylko zrozumienie, jak działa zapytanie, ale także zrozumienie, dlaczego zwraca konkretne dane i jak te dane są związane z naszymi potrzebami programistycznymi.

Pytanie 26

Który typ danych obsługiwany przez PHP jest przeznaczony do obsługi zmiennych typu logicznego?

A. Integer
B. Float
C. String
D. Boolean
Odpowiedź "Boolean" jest prawidłowa, ponieważ jest to typ danych w języku PHP, który jest używany do przechowywania zmiennych logicznych. Zmienne tego typu mogą mieć jedynie dwie wartości: true (prawda) lub false (fałsz). Jest to niezwykle istotne w programowaniu, ponieważ umożliwia podejmowanie decyzji na podstawie warunków. Przykładowo, w konstrukcjach warunkowych, takich jak if, można sprawdzić, czy zmienna logiczna jest prawdziwa, co pozwala na wykonanie określonej akcji. Warto również zauważyć, że w PHP można łatwo konwertować inne typy danych na typ boolean za pomocą operatorów, takich jak ! (negacja) oraz porównań, co jest zgodne z zasadami dobrych praktyk programistycznych. Używanie typów logicznych jest kluczowe w kontekście programowania obiektowego oraz podczas pracy z strukturami danych. Przykład: $isAvailable = true; if ($isAvailable) { echo 'Produkt jest dostępny.'; }.

Pytanie 27

Podczas tworzenia witryny internetowej zastosowano kod definiujący jej wygląd. Jaką szerokość przeznaczono na zawartość strony?

Ilustracja do pytania
A. 600 px
B. 2 px
C. 640 px
D. 560 px
Definiowanie szerokości elementu w CSS jest kluczowym aspektem projektowania responsywnych stron internetowych. W przedstawionym kodzie CSS zauważamy definicję width 560px która określa szerokość elementu body. Ta wartość bezpośrednio przekłada się na dostępną przestrzeń dla treści wewnętrznej tego elementu. W praktyce definiowanie szerokości w pikselach pozwala na precyzyjne kontrolowanie układu strony co jest szczególnie istotne w kontekście projektowania interfejsów użytkownika. Takie podejście jest jednak najczęściej stosowane w środowiskach gdzie mamy pełną kontrolę nad urządzeniami wyświetlającymi stronę. W kontekście nowoczesnych praktyk często stosuje się jednostki względne lub techniki takie jak media queries aby zapewnić lepszą responsywność i elastyczność. Ważne jest także rozważanie dodatkowych aspektów takich jak marginesy i wypełnienia które mogą wpływać na rzeczywistą ilość dostępnej przestrzeni na treść. Właściwe zrozumienie i zastosowanie szerokości jest kluczowe dla tworzenia estetycznych i funkcjonalnych układów strony internetowej.

Pytanie 28

W relacyjnych systemach baz danych, gdy dwie tabele są powiązane przez ich klucze główne, mamy do czynienia z relacją

A. 1..n
B. 1..1
C. n..n
D. n..1
W relacyjnych bazach danych, relacja 1..1 oznacza, że każdemu rekordowi w pierwszej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli, a odwrotnie. Gdy tabele są połączone kluczem głównym, zapewnia to unikalność powiązań między nimi. Przykładami takich relacji mogą być tabele 'Pracownicy' i 'Konta', gdzie każdy pracownik ma jedno konto, a każde konto należy do jednego pracownika. Relacja 1..1 jest typowa w sytuacjach, gdy jedna tabela zawiera szczegółowe informacje o obiektach reprezentowanych w drugiej tabeli. Z perspektywy projektowania baz danych, stosowanie relacji 1..1 pomaga w minimalizowaniu redundancji danych oraz zwiększa spójność informacji. Praktyczne podejście do projektowania bazy danych sugeruje, aby relacje 1..1 były wykorzystywane tam, gdzie konieczne jest zapewnienie jednoznacznego powiązania danych, co wspiera integralność danych zgodnie z normami ACID (Atomicity, Consistency, Isolation, Durability).

Pytanie 29

Web designer pragnie wstawić w znaczniku <header> nagłówek do treści. Zgodnie z zasadami użycia znaczników semantycznych, powinien wykorzystać znacznik

A. <p>
B. <strong>
C. <title>
D. <h1>
Zastosowanie znacznika <h1> w nagłówkach strony internetowej jest zgodne z zasadami semantycznymi HTML. Znacznik <h1> jest przeznaczony do oznaczania głównego nagłówka dokumentu i powinien być używany do przedstawienia najważniejszej treści. Dobrą praktyką jest, aby każda strona miała tylko jeden znacznik <h1>, co pomaga wyszukiwarkom zrozumieć hierarchię treści na stronie. Na przykład, w przypadku artykułu, tytuł artykułu mógłby być umieszczony w znaczniku <h1>, a podtytuły w <h2>, <h3> itd. W ten sposób struktura dokumentu jest jasna, co poprawia dostępność oraz SEO. Dodatkowo, stosowanie semantycznych znaczników ułatwia nawigację po stronie osobom korzystającym z technologii asystujących, takich jak czytniki ekranu, które interpretują hierarchię treści na podstawie użytych znaczników.

Pytanie 30

Jakie znaki <header>, <article>, <section>, <footer> są typowe dla tego języka?

A. XHTML 1.1
B. HTML 4.01 Transitional
C. HTML 4.01 Strict
D. HTML 5
Znaczniki <header>, <article>, <section>, <footer> są częścią specyfikacji HTML5, która wprowadziła bardziej semantyczne podejście do strukturyzacji dokumentów webowych. Te elementy umożliwiają programistom tworzenie bardziej przejrzystych i zrozumiałych dokumentów, zarówno dla ludzi, jak i dla maszyn. Na przykład, znacznik <header> definiuje nagłówek strony lub sekcji, <article> służy do oznaczania samodzielnych treści, które mogą być niezależnie dystrybuowane, <section> grupuje powiązane tematycznie elementy, a <footer> zawiera informacje o końcu strony lub sekcji. Użycie tych znaczników ma kluczowe znaczenie dla SEO, ponieważ wyszukiwarki mogą lepiej zrozumieć strukturę treści na stronie. Dodatkowo, zastosowanie tych elementów wspiera dostępność, ułatwiając nawigację osobom korzystającym z czytników ekranu. W praktyce, stosując te znaczniki, programiści tworzą bardziej uporządkowane i zrozumiałe strony, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 31

Wykorzystanie definicji stylu CSS spowoduje, że nagłówki drugiego poziomu będą się wyświetlać

h2 {
    text-decoration: overline;
    font-style: italic;
    line-height: 60px;
}
A. czcionką standardową, z linią pod tekstem, odległość między znakami wynosi 60 px
B. czcionką standardową, z linią nad tekstem, wysokość wiersza wynosi 60 px
C. czcionką kursywną, z linią nad tekstem, wysokość wiersza wynosi 60 px
D. czcionką kursywną, z linią pod tekstem, wysokość wiersza wynosi 60 px
Nieprawidłowe koncepcje w pozostałych odpowiedziach wynikają z błędnego zrozumienia zastosowania właściwości CSS. Pierwsza odpowiedź sugeruje użycie czcionki podstawowej z linią pod tekstem oraz odległością między znakami wynoszącą 60 px, co nie odpowiada żadnej z zastosowanych właściwości w definicji CSS. Często myli się pojęcia line-height z letter-spacing, które odpowiada za odstępy między znakami. Właściwe zastosowanie tych właściwości jest kluczowe dla poprawnej prezentacji tekstu. Trzecia odpowiedź także jest błędna, ponieważ zamiast właściwości czcionki pochylonej mowa jest o podstawowej, co nie jest zgodne z font-style: italic. Również text-decoration: overline jest zamieniona na linię nad tekstem, co jest poprawne, jednak brak pochylonej czcionki czyni tę odpowiedź niekompletną. Czwarta odpowiedź ponownie myli właściwości, ponieważ choć zawiera pochyloną czcionkę, to proponuje linię pod tekstem zamiast nad nim. To pokazuje częsty błąd w interpretacji właściwości text-decoration. Zrozumienie, jak każda z tych właściwości wpływa na ostateczny wygląd nagłówków, jest kluczowe dla efektywnego stylizowania stron internetowych. Właściwe użycie takich atrybutów jest zgodne z dobrymi praktykami projektowania stron, które kładą nacisk na spójność i estetykę wizualną w połączeniu z funkcjonalnością. Dlatego znajomość tych szczegółów i ich poprawne zastosowanie jest niezmiernie ważne w pracy projektanta stron internetowych.

Pytanie 32

Kiedy dane z formularza są przesyłane w sposób jawny jako parametry w adresie URL, w skrypcie PHP można je odczytać za pomocą tablicy

A. $_COOKIE
B. $_POST
C. $_GET
D. $_SESSION
Odpowiedzi 2, 3 i 4 są niepoprawne w kontekście przesyłania danych przez adres URL. Odpowiedź 2, odnosząca się do tablicy $_POST, jest używana do odbierania danych przesyłanych z formularzy za pomocą metody POST. W przeciwieństwie do GET, POST nie ujawnia danych w adresie URL, co czyni go bardziej odpowiednim dla przesyłania wrażliwych informacji, takich jak hasła. Użytkownicy często mylą te dwie metody, co może prowadzić do nieprawidłowego stosowania metod w sytuacjach, które powinny być odpowiednio zabezpieczone. Odpowiedzi 3 i 4 odnoszą się do tablic $_COOKIE i $_SESSION, które służą do zarządzania danymi sesji i przechowywania danych na urządzeniu klienta. $_COOKIE jest używane do przechowywania małych ilości danych na komputerze użytkownika, które mogą być wykorzystane w kolejnych wizytach, natomiast $_SESSION przechowuje dane sesyjne po stronie serwera, umożliwiając śledzenie stanu użytkownika podczas przeglądania aplikacji. Pomimo, że wszystkie te tablice są ważnymi narzędziami w PHP, żadna z nich nie jest odpowiednia w kontekście przesyłania danych przez URL, co jest kluczowe dla zrozumienia różnic między metodami przesyłania danych i ich bezpieczeństwem.

Pytanie 33

Określ na podstawie diagramu, jaką liczebność należy zdefiniować przy związku pomiędzy encjami Podręcznik i Wydawnictwo zakładając, że dane dotyczące różnych podręczników odpowiadają jednemu wydawnictwu.

Ilustracja do pytania
A. M-N (M przy encji Podręcznik, N przy encji Wydawnictwo)
B. N-1 (N przy encji Podręcznik, 1 przy encji Wydawnictwo)
C. 1-N (1 przy encji Podręcznik, N przy encji Wydawnictwo)
D. 1-1 (1 przy encji Podręcznik, 1 przy encji Wydawnictwo)

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Poprawnie wskazana krotność N–1 oznacza, że wiele podręczników może być powiązanych z jednym wydawnictwem, natomiast każdy pojedynczy podręcznik ma dokładnie jedno wydawnictwo. Dokładnie to wynika z treści: „dane dotyczące różnych podręczników odpowiadają jednemu wydawnictwu”. W notacji związków encji mówimy więc o relacji wiele‑do‑jednego z punktu widzenia encji Podręcznik. W praktycznym modelu relacyjnej bazy danych przekłada się to na klucz obcy w tabeli PODRĘCZNIK, który wskazuje na klucz główny (np. id_wydawnictwa) w tabeli WYDAWNICTWO. Dzięki temu nie powielamy danych o wydawnictwie przy każdym rekordzie, tylko przechowujemy je w jednym miejscu, zgodnie z zasadą normalizacji (co najmniej 2. i 3. postać normalna). Moim zdaniem to jest jedno z podstawowych i najczęściej wykorzystywanych powiązań: podobny schemat mamy przy relacji Produkt–Producent, Samochód–Marka, Student–Grupa itp. W takich przypadkach w tabeli „wiele” zawsze ląduje kolumna z kluczem obcym do tabeli „jeden”. Dodatkowo warto zauważyć, że gdybyśmy kiedyś chcieli pozwolić na zmianę nazwy wydawnictwa, to dzięki takiemu modelowi robimy to tylko w jednym wierszu tabeli WYDAWNICTWO, a wszystkie powiązane podręczniki automatycznie „widzą” zaktualizowaną wartość. To jest dokładnie ta dobra praktyka projektowania: minimalizacja redundancji i łatwiejsze utrzymanie spójności danych (integralność referencyjna, klucze obce z ON UPDATE/DELETE). W dobrze zaprojektowanych systemach bibliotecznych czy księgarni internetowych ta relacja N–1 między książką/podręcznikiem a wydawnictwem jest standardem branżowym i praktycznie normą w modelach ER.

Pytanie 34

Jakie są etapy w odpowiedniej kolejności przy tworzeniu aplikacji?

A. Określenie wymagań, analiza oczekiwań klienta, programowanie, wdrożenie, testowanie
B. Programowanie, analiza oczekiwań klienta, określenie wymagań, wdrożenie, testowanie
C. Analiza oczekiwań klienta, określenie wymagań, programowanie, testowanie, wdrożenie
D. Analiza oczekiwań klienta, określenie wymagań, programowanie, wdrożenie, testowanie
Odpowiedź wskazująca na kolejność: analiza wymagań klienta, specyfikacja wymagań, tworzenie, testy, wdrażanie jest poprawna i odzwierciedla standardowy model cyklu życia oprogramowania (SDLC). Zaczynamy od analizy wymagań, co oznacza zrozumienie potrzeb klienta i zebranie informacji, które będą fundamentem dalszych prac. Następnie przechodzimy do specyfikacji wymagań, gdzie dokumentujemy te potrzeby w formie, która będzie zrozumiała dla zespołu developerskiego. Tworzenie aplikacji następuje po szczegółowym omówieniu i zaakceptowaniu wymagań, co minimalizuje ryzyko błędów. Testy są kluczowym etapem, który pozwala na weryfikację, czy stworzone rozwiązanie spełnia wymagania oraz działa zgodnie z założeniami. Ostateczne wdrożenie aplikacji do użytkowania powinno nastąpić po przeprowadzeniu wszystkich testów i uzyskaniu pozytywnych wyników. Przykład zastosowania tej metodologii można zaobserwować w projektach realizowanych w metodologii Agile, gdzie iteracje pozwalają na ciągłe dostosowywanie aplikacji do zmieniających się potrzeb klienta. Takie podejście zwiększa satysfakcję użytkowników i minimalizuje koszty związane z poprawkami.

Pytanie 35

Kod CSS można włączyć do dokumentu HTML, używając znacznika

A. <style>
B. <meta>
C. <head>
D. <body>
Odpowiedź <style> jest prawidłowa, ponieważ ten znacznik HTML jest dedykowany do osadzania kodu CSS wewnątrz dokumentu HTML. Znacznik <style> powinien być umieszczony w sekcji <head> dokumentu, co umożliwia przeglądarkom interpretację stylów przed renderowaniem treści strony. Dzięki temu można definiować różne reguły CSS, które modyfikują wygląd elementów HTML, co jest kluczowe w tworzeniu estetycznych i funkcjonalnych stron internetowych. Przykładowo, można użyć <style> do określenia koloru tła, rozmiaru czcionki czy marginesów. Ważne jest, aby stosować zasady dotyczące kaskadowości, ponieważ style zdefiniowane w <style> mają priorytet nad stylem zewnętrznym, jeśli są tak samo specyficzne. Dodatkowo, korzystanie z <style> jest zgodne z zasadami dobrych praktyk, takich jak unikanie nadmiarowego ładowania zewnętrznych plików CSS w przypadku prostych projekty, co przyspiesza czas ładowania strony.

Pytanie 36

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. liczba_max(a, b, c) = wynik;
B. liczba_max(a, b, c);
C. liczba_max(a, b, c, wynik);
D. var wynik = liczba_max(a, b, c);
Wywołanie funkcji 'liczba_max' w postaci 'var wynik = liczba_max(a, b, c);' jest prawidłowe, ponieważ stosuje syntaksę języka JavaScript do przypisania wartości zwróconej przez funkcję do zmiennej. Zdefiniowana funkcja 'liczba_max' przyjmuje trzy argumenty, które są porównywane, a maksymalna z nich jest zwracana jako wynik. W tym przypadku 'var wynik' tworzy nową zmienną, która przechowuje tę wartość, co jest zgodne z najlepszymi praktykami programowania, gdzie wyniki operacji są przypisywane do zmiennych dla dalszego wykorzystania. Użycie 'var' (lub 'let', 'const' w nowszych wersjach JavaScript) jest kluczowe, aby jasno określić zakres zmiennej. Przykładowo, jeśli a = 5, b = 10, c = 3, to po wywołaniu 'var wynik = liczba_max(a, b, c);', zmienna 'wynik' będzie miała wartość 10. Tego typu konstrukcje są podstawą programowania w JavaScript i są niezwykle przydatne w tworzeniu dynamicznych aplikacji webowych, gdzie operacje na danych są na porządku dziennym.

Pytanie 37

Jaka funkcja w PHP pozwala na wyświetlenie ciągu n znaków @?

function znaki($znak,$i++){
for($i=0;$i<$n;$i++)
print($znak);
}
znaki(@,$n);
A
function znaki($i){
for($i=0;$i<$n;$i++)
print("@");
}
znaki($i);
B
function znaki($znak,$i++){
for($i=0;$i<$n;$i++)
print($znak);
}
znaki($n);
C
function znaki($znak,$n){
for($i=0;$i<$n;$i++)
print($znak);
}
znaki("@",$n);
D
A. A
B. C
C. D
D. B

Brak odpowiedzi na to pytanie.

Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź D jest prawidłowa ponieważ pokazuje właściwe zastosowanie funkcji w języku PHP aby wyświetlić ciąg n znaków @. W tej funkcji znaki podajemy dwa parametry: pierwszy określa znak do wyświetlenia w tym przypadku @ drugi liczbę powtórzeń czyli n. Funkcja wykorzystuje pętlę for aby iteracyjnie wyświetlać zadany znak dopóki licznik iteracji nie osiągnie wartości n. Przekazanie @ jako pierwszego argumentu i n jako drugiego umożliwia elastyczne i dynamiczne generowanie ciągów o żądanej długości co jest zgodne z dobrymi praktykami w programowaniu PHP. Taki sposób pisania kodu sprzyja czytelności i łatwości utrzymania co jest kluczowe w większych projektach gdzie często wymagana jest elastyczność i możliwość ponownego użycia kodu. Ponadto funkcja ta ilustruje podstawowe zasady programowania obiektowego takie jak enkapsulacja i modularność dzięki czemu kod jest łatwiejszy do zrozumienia i modyfikacji gdy zachodzi taka potrzeba. Pamiętaj że w praktycznych zastosowaniach warto używać funkcji bibliotecznych jak str_repeat które oferują podobną funkcjonalność z większą optymalizacją. Takie podejście zapewnia nie tylko poprawność działania ale także optymalizację wydajności co jest istotne szczególnie w aplikacjach o dużym obciążeniu i skali. Poprawne użycie odpowiednich funkcji i struktur danych jest kluczem do utrzymania wysokiej jakości kodu w projektach PHP.

Pytanie 38

W języku JavaScript funkcja getElementById odnosi się do

A. zmiennej numerycznej
B. elementu HTML z określoną nazwą klasy
C. klasy zdefiniowanej w CSS
D. elementu HTML z podanym id
Metoda getElementById w języku JavaScript jest kluczowym narzędziem do manipulacji DOM (Document Object Model), które pozwala deweloperom na łatwe odwoływanie się do konkretnych elementów HTML za pomocą ich atrybutu id. Dzięki temu, możemy dynamicznie zmieniać treść, style lub atrybuty tych elementów, co jest niezwykle przydatne w tworzeniu interaktywnych stron internetowych. Na przykład, jeśli mamy element HTML z atrybutem id='header', możemy użyć `document.getElementById('header')` do uzyskania do niego dostępu. To podejście jest zgodne z zasadami poprawnej struktury HTML, gdzie atrybut id powinien być unikalny w obrębie dokumentu. Rekomendowane jest, aby id było zrozumiałe i jasno określało zawartość elementu, co ułatwia późniejszą nawigację i skrypty, a także poprawia dostępność strony. W praktyce, korzystając z getElementById, możemy na przykład zmieniać tekst nagłówka: `document.getElementById('header').innerText = 'Nowy nagłówek';`.

Pytanie 39

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElementByTagName('p')[0];
B. getElement('p');
C. getElementByClassName('p.1')[0];
D. getElementById('p1');
Metoda getElementsByTagName('p')[0] jest prawidłowym sposobem odwołania się do pierwszego elementu <p> w dokumencie HTML. Funkcja getElementsByTagName zwraca kolekcję wszystkich elementów o określonej nazwie tagu. W przypadku użycia tagu 'p', funkcja zwraca tablicę wszystkich paragrafów. Aby uzyskać dostęp do pierwszego paragrafu, korzystamy z indeksu [0], co jest zgodne z konwencją numerowania od zera w językach programowania. Praktyczne zastosowanie tej metody obejmuje manipulację treścią lub stylami pierwszego paragrafu, na przykład zmiana jego tekstu za pomocą innerHTML lub dodanie klasy CSS w celu zmiany jego wyglądu. Stosowanie getElementsByTagName jest zgodne z powszechnymi standardami i dobrymi praktykami w pracy z DOM (Document Object Model) w JavaScript. Ważne jest zrozumienie tego mechanizmu, aby efektywnie operować na elementach HTML oraz tworzyć dynamiczne i interaktywne strony internetowe. Warto również pamiętać, że metoda ta zwraca dynamiczną kolekcję, co oznacza, że zmiany w DOM automatycznie wpływają na zawartość zwróconej kolekcji.

Pytanie 40

Definicja formularza została wykorzystana na stronie www, która przesyła dane do pliku w języku PHP. W której tablicy będą dostępne informacje z formularza?

<form action="plik.php" method="post">
A. $_GET
B. $_POST
C. $_COOKIE
D. $_ACTION
Formularze w HTML służą do przesyłania danych do serwera, a w kontekście języka PHP dane te są dostępne poprzez różne superglobalne tablice, z których najczęściej używaną przy metodzie POST jest tablica $_POST. Metoda POST, określona w atrybucie 'method' formularza, jest używana do przesyłania danych w bardziej bezpieczny sposób niż metoda GET, ponieważ nie pokazuje przesyłanych informacji w URL. Kiedy dane są wysyłane do skryptu PHP z formularza, wszystkie klucze i wartości formularza stają się dostępne jako elementy tablicy $_POST. Przykładowo, jeśli w formularzu znajduje się pole tekstowe o nazwie 'username', po wysłaniu formularza na stronie 'plik.php' można uzyskać dostęp do wartości tego pola za pomocą $_POST['username']. Ta metoda jest zalecana w przypadku przesyłania danych poufnych, takich jak hasła, ponieważ nie są one widoczne w pasku adresu przeglądarki. Dodatkowo, korzystając z $_POST, można przesyłać dane o większej objętości, co jest niemożliwe w przypadku $_GET, który ma ograniczenia długości URL.