Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 13 maja 2026 17:40
  • Data zakończenia: 13 maja 2026 18:10

Egzamin zdany!

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

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z dwóch pól
B. Z jednego pola
C. Z czterech pól
D. Z trzech pól
Kod PHP wyświetla dane z bazy danych przy użyciu funkcji mysqli_fetch_row, która zwraca wiersz danych jako tablicę. W tym przypadku, wiersz zawiera trzy elementy: '$wiersz[0]', '$wiersz[1]' oraz '$wiersz[2]'. Pierwszy element '$wiersz[0]' odpowiada nazwisku klienta, drugi '$wiersz[1]' to imię klienta, a trzeci '$wiersz[2]' to adres. Wyświetlanie danych w formacie HTML (znacznik <p>) wskazuje, że wszystkie trzy elementy są używane do stworzenia czytelnej prezentacji. W praktyce, korzystanie z mysqli_num_rows do określenia liczby zwróconych wierszy pozwala na dynamiczne przetwarzanie danych z bazy danych, co jest zgodne z najlepszymi praktykami programowania PHP. Zastosowanie pętli for umożliwia iterację przez wszystkie wiersze wynikowe i wyświetlenie ich w odpowiedniej formie. Takie podejście jest powszechnie stosowane przy budowaniu aplikacji webowych, gdzie wyświetlanie danych z bazy jest kluczowym elementem interakcji z użytkownikiem.

Pytanie 2

Jaką wartość przyjmie zmienna po wykonaniu poniższego fragmentu kodu w JavaScript?

var w=0;
var i=1;
for (i = 1; i < 50; i++)
{
    if (i%2 == 0)
        w += i;
}
A. suma wszystkich naturalnych liczb nieparzystych, które są większe od 50
B. liczbom naturalnym, które są nieparzyste i mniejsze od 50
C. liczbie naturalnych liczb parzystych większych od 50
D. suma naturalnych liczb parzystych, które są mniejsze od 50
Pozostałe odpowiedzi przedstawiają niepoprawne interpretacje kodu, co często wynika z nieprawidłowego zrozumienia mechanizmów iteracji i warunków w programowaniu. Pierwsza z opcji sugeruje, że kod oblicza sumę nieparzystych liczb większych od 50. Jest to błędne, ponieważ pętla kończy się na i<50, więc żadna liczba większa od 50 nie jest w ogóle brana pod uwagę. Ponadto warunek if w kodzie sprawdza parzystość, a nie nieparzystość. Kolejna koncepcja sugeruje liczenie nieparzystych liczb mniejszych od 50. Choć liczby nieparzyste są brane pod uwagę w iteracji, kod nie posiada mechanizmu ich liczenia, gdyż w instrukcji if sprawdzana jest parzystość, co skutkuje pominięciem operacji na nieparzystych liczbach. Ostania odpowiedź to liczba parzystych większych od 50, co również jest nieprawidłowe z powodu ograniczenia iteracji do i<50 oraz fakt, że kod sumuje wartości, a nie zlicza ich ilość. Zrozumienie kluczowych mechanizmów, takich jak operator modulo i pętle, jest niezbędne do prawidłowej analizy działania algorytmów. Takie błędy są powszechne, gdy nie uwzględnia się dokładnego działania warunków kontrolnych i zakresów iteracji, co jest istotne w kontekście pisania efektywnego i poprawnego kodu programistycznego. Poprawne rozumienie tych koncepcji jest fundamentalne w rozwoju umiejętności programistycznych i zapobiega częstym błędom logicznym w kodzie.

Pytanie 3

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 3
B. Skrypt 2
C. Skrypt 1
D. Skrypt 4
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 4

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

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

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

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

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

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

Pytanie 5

Elementy <header>, <article>, <section>, <footer> są typowe dla języka

A. XHTML 1.1
B. HTML 5
C. HTML 4.01 Strict
D. HTML 4.01 Transitional
Odpowiedź HTML 5 jest prawidłowa, ponieważ to właśnie w tej wersji języka HTML wprowadzono nowe semantyczne znaczniki, takie jak <header>, <article>, <section> oraz <footer>. Te znaczniki mają na celu lepsze strukturalne organizowanie treści w dokumentach internetowych, co ułatwia zarówno odczyt zrozumienia przez przeglądarki, jak i poprawia dostępność dla osób korzystających z technologii wspomagających. Na przykład, <header> zazwyczaj zawiera nagłówki i elementy nawigacyjne, podczas gdy <article> służy do oznaczenia niezależnej jednostki treści, np. artykułu prasowego. <section> jest używane do grupowania powiązanych sekcji, a <footer> zawiera informacje takie jak prawa autorskie czy linki do polityki prywatności. Wdrożenie tych znaczników zgodnie z najlepszymi praktykami zwiększa semantykę strony, co jest korzystne dla SEO, a także pozwala na lepsze zrozumienie struktury strony przez roboty indeksujące. HTML 5 jest obecnie standardem w tworzeniu stron internetowych i jego znajomość jest kluczowa dla współczesnych deweloperów.

Pytanie 6

Jaką funkcję spełnia atrybut value w polu formularza XHTML?

<input type="text" name="name" value="value">
A. określa domyślną wartość
B. definiuje maksymalną długość pola
C. czyni pole jedynie do odczytu
D. określa nazwę pola
Atrybut value w polu formularza XHTML określa domyślną wartość, jaka pojawi się w polu tekstowym po załadowaniu strony. Jest to przydatne, gdy chcemy zasugerować użytkownikowi domyślne dane lub ułatwić wprowadzanie informacji. Przykładem może być formularz logowania, gdzie atrybut value jest używany do wczytywania zapisanego wcześniej adresu e-mail użytkownika. W formularzach XHTML stosuje się ten atrybut zgodnie z dobrymi praktykami, aby poprawić doświadczenie użytkownika i ułatwić interakcję z witryną. Warto zauważyć, że w przypadku innych typów pól formularzy, na przykład checkbox lub radio, atrybut value określa wartość, która zostanie przesłana, gdy dane pole zostanie zaznaczone. W kontekście dobrych praktyk należy także pamiętać o zabezpieczeniach formularzy, takich jak walidacja danych po stronie serwera, aby zapobiec potencjalnym lukom bezpieczeństwa wynikającym z nieoczekiwanych danych wejściowych. Stosowanie atrybutu value w sposób przemyślany pozwala również na lepszą integrację formularzy z mechanizmami autouzupełniania przeglądarek, co jest korzystne dla użytkowników

Pytanie 7

Na ilustracji przedstawiono

Ilustracja do pytania
A. testy bezpieczeństwa strony.
B. analizę ruchu sieciowego między serwerem a przeglądarką.
C. testy funkcjonalne strony interenetowej.
D. analizę poprawności kodu strony internetowej.
Na ilustracji widoczna jest zakładka „Network” w narzędziach deweloperskich przeglądarki, a nie panel do testów funkcjonalnych, skanera bezpieczeństwa ani walidatora kodu HTML/CSS. Wiele osób myli te pojęcia, bo wszystko dzieje się w przeglądarce i dotyczy tej samej strony, ale zakres i cel tych narzędzi jest zupełnie inny. Testy funkcjonalne strony internetowej dotyczą sprawdzenia, czy funkcje działają zgodnie z wymaganiami: czy formularz poprawnie się wysyła, czy przyciski reagują, czy logowanie i rejestracja działają poprawnie, czy przekierowania prowadzą we właściwe miejsca. Do tego używa się zwykle scenariuszy testowych, narzędzi typu Selenium, Cypress, Playwright itp. Sama zakładka Network tylko pokazuje żądania HTTP i odpowiedzi, nie „wie”, czy logowanie jest zgodne z wymaganiami biznesowymi. Z kolei testy bezpieczeństwa strony obejmują takie tematy jak podatność na SQL Injection, XSS, CSRF, błędne konfiguracje nagłówków bezpieczeństwa, słabe hasła, podatne biblioteki. Do tego służą skanery bezpieczeństwa (np. OWASP ZAP, Burp Suite), audyty kodu, testy penetracyjne. W DevTools możesz co najwyżej podejrzeć pewne nagłówki bezpieczeństwa, ale to wciąż tylko analiza ruchu, a nie pełny test security. Analiza poprawności kodu strony internetowej to znowu coś innego: walidacja HTML i CSS (np. W3C Validator), lintowanie JavaScript (ESLint), sprawdzanie składni i semantyki. Na ekranie nie ma żadnych komunikatów walidatora, tylko tabela żądań sieciowych. Typowym błędem myślowym jest tu skupienie się na tym, że „to narzędzia deweloperskie, więc pewnie testy” albo „widzę pliki CSS i JS, więc to analiza kodu”. Tymczasem kluczowe jest to, co faktycznie pokazuje interfejs: czasy, statusy HTTP, typy zasobów, rozmiary odpowiedzi. To klasyczne monitorowanie i analizowanie ruchu sieciowego między przeglądarką a serwerem, które pomaga w debugowaniu komunikacji klient–serwer, optymalizacji wydajności i diagnozowaniu błędów ładowania zasobów.

Pytanie 8

1       <script>
2       const liczba = 1;
3       let gora = 10, dol = 1;
4       let podaj = parseInt(prompt("Podaj liczbę całkowitą z zakresu <1-10>"));
5       liczba = Math.random() * ( gora - dol + 1 ) + dol;
6       liczba = parseInt(liczba);
7       if (liczba == podaj) {
8           document.write("Liczba została odgadnięta");
9       } else {
10          document.write("Niestety nie tym razem");
11      }
12      </script>
Przedstawiony fragment kodu JavaScript powinien wylosować liczbę całkowitą z zakresu <1 , 10> i porównać ją z liczbą podaną przez użytkownika w oknie dialogowym. Skrypt po uruchomieniu generuje błąd, którego przyczyną jest
A. błędna składnia instrukcji warunkowej if ... else.
B. niepotrzebne użycie konwersji z funkcji prompt do liczby całkowitej.
C. błędna składnia deklaracji zmiennych gora i dol w drugiej linii skryptu.
D. przypisanie wartości do stałej liczba w piątej linii skryptu .
W tym zadaniu łatwo skupić się na szczegółach, które wyglądają podejrzanie, ale w rzeczywistości są poprawne. Wiele osób patrzy najpierw na deklarację zmiennych `gora` i `dol` w trzeciej linii, bo mamy tam dwa identyfikatory zadeklarowane w jednym wierszu: `let gora = 10, dol = 1;`. Taka składnia w JavaScript jest całkowicie poprawna i bardzo często spotykana w kodzie produkcyjnym. Standard ECMAScript dopuszcza deklarację wielu zmiennych w jednym instrukcie `let`, `const` czy `var`, oddzielonych przecinkami. To nie ma żadnego wpływu na poprawność działania skryptu, jest tylko kwestią stylu kodowania. Niektórzy lintersi zalecają jedną zmienną na linię, ale to jest wyłącznie konwencja, nie błąd. Podobnie z instrukcją warunkową `if ... else`. Konstrukcja `if (liczba == podaj) { ... } else { ... }` jest jak najbardziej poprawna składniowo. Nawet użycie operatora `==` (zamiast bardziej restrykcyjnego `===`) nie powoduje tu błędu wykonania, najwyżej może być dyskusyjne ze względu na dobre praktyki, bo `===` nie robi konwersji typów. Jednak w tym konkretnym kodzie obie wartości są konwertowane do liczb, więc porównanie zadziała logicznie. Błąd wykonania nie ma więc źródła w warunku. Czasem pojawia się też myśl, że problemem może być `parseInt(prompt(...))`, bo prompt zwraca tekst. Tymczasem właśnie dlatego używamy `parseInt`, żeby zamienić łańcuch znaków na liczbę całkowitą. Bez tej konwersji porównywalibyśmy liczbę z tekstem, co mogłoby dawać dziwne wyniki logiczne. Konwersja jest tu więc nie tylko „nie niepotrzebna”, ale wręcz wskazana. W nowoczesnym kodzie można by użyć np. `Number(prompt(...))` albo dodatkowo sprawdzić, czy użytkownik faktycznie podał liczbę, ale sam `parseInt` jest jak najbardziej OK. Sednem problemu nie są więc ani deklaracje `gora` i `dol`, ani składnia `if ... else`, ani konwersja wartości z prompta, tylko próba nadpisania stałej. Z mojego doświadczenia wynika, że to bardzo typowy błąd przy nauce `const` i `let`: mylenie stałych z „zwykłymi” zmiennymi. Warto zawsze zadać sobie pytanie: czy ta wartość ma się zmieniać w czasie działania skryptu? Jeśli tak, używamy `let`. Jeśli nie, wtedy dopiero `const`. To prosta zasada, która pozwala uniknąć takich błędów logicznych i runtime'owych.

Pytanie 9

Rozmiar grafiki JPEG zamieszczonej na stronie www może wpływać na

A. zgodność z systemem Windows.
B. szybsze sprawdzanie linków.
C. błędy w składni HTML.
D. czas ładowania strony.
Wielkość grafiki JPEG umieszczonej na stronie internetowej ma istotny wpływ na długość czasu ładowania strony. Gdy obraz jest zbyt duży, wymaga większej ilości danych do pobrania, co wydłuża czas, który użytkownik musi czekać na wyświetlenie zawartości. Optymalizacja grafik jest więc kluczowym aspektem projektowania stron internetowych. W praktyce, kompresja zdjęć przed ich załadowaniem na stronę, na przykład przy użyciu narzędzi takich jak ImageOptim lub TinyPNG, może znacząco zmniejszyć rozmiar pliku bez widocznej utraty jakości. Zgodnie z wytycznymi Google PageSpeed Insights, obrazy powinny być odpowiednio dostosowane do wymagań dotyczących jakości i rozmiaru. Sprawne zarządzanie grafiką może poprawić współczynnik konwersji oraz zredukować współczynnik odrzuceń, co jest kluczowe dla sukcesu witryny. Prędkość ładowania strony ma również znaczenie dla SEO, ponieważ wyszukiwarki preferują strony, które ładują się szybko, co wpływa na pozycjonowanie. Dlatego odpowiednia optymalizacja obrazów JPEG jest niezbędna dla każdej witryny internetowej, aby zapewnić pozytywne doświadczenia użytkowników oraz dobre wyniki w rankingach wyszukiwarek.

Pytanie 10

Aby zmienić strukturę już istniejącej tabeli przy użyciu zapytania SQL, należy użyć kwerendy

A. CREATE TABLE
B. ALTER TABLE
C. INSERT INTO
D. UPDATE
Odpowiedź 'ALTER TABLE' jest poprawna, ponieważ ta kwerenda jest używana do modyfikacji struktury istniejącej tabeli w bazach danych SQL. Dzięki komendzie ALTER TABLE można dodawać nowe kolumny, usuwać istniejące kolumny, zmieniać typy danych kolumn, a także modyfikować ograniczenia (constraints) dotyczące tabeli. Dla przykładu, aby dodać nową kolumnę 'wiek' do tabeli 'pracownicy', można użyć następującej kwerendy: 'ALTER TABLE pracownicy ADD wiek INT;'. Warto również wspomnieć, że ALTER TABLE może być używane w różnych systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL czy SQL Server, co czyni go uniwersalnym narzędziem w pracy z bazami danych. Podczas modyfikacji tabeli należy jednak zachować ostrożność, aby nie wprowadzić niezgodności w aplikacjach korzystających z tej tabeli. Praktyką zalecaną jest wykonywanie kopii zapasowej danych przed wprowadzeniem większych zmian. Zrozumienie tej komendy i jej zastosowania jest kluczowe dla efektywnego zarządzania danymi w systemach bazodanowych.

Pytanie 11

Które stwierdzenie na temat funkcji fun1 zapisanej w języku JavaScript jest prawdziwe?

var x = fun1(3, 24, "Mnożymy");

function fun1(a, b, c) {
    return a * b;
}
A. Przyjmuje trzy parametry, lecz nie zwraca wartości.
B. Ma dwa parametry liczbowe i zwraca wartość typu napisowego.
C. Zwraca dwie wartości przechowywane w zmiennych a i b.
D. Ma trzy parametry wejściowe, w tym jeden typu napisowego, i zwraca wartość numeryczną.
Gratulacje, Twoja odpowiedź jest poprawna. Istotą funkcji w JavaScript jest to, że mogą one przyjmować dowolną liczbę argumentów i mogą zwracać wartość. W przypadku funkcji fun1, przyjmuje ona trzy parametry: a, b, c. Parametr c jest typu napisowego, co jest istotne, ponieważ JavaScript jest językiem słabo typowanym, co oznacza, że możemy przekazywać różne typy zmiennych jako argumenty dla funkcji. Funkcja fun1 zwraca wynik mnożenia dwóch pierwszych parametrów, co jest wartością numeryczną. To jest zgodne z zasadami JavaScript, gdzie funkcje mogą zwracać dowolne wartości - w tym przypadku wartość numeryczną. W praktyce, funkcje takie jak ta mogą być używane w różnych kontekstach, na przykład do manipulacji danymi wejściowymi i zwracania przetworzonych wyników.

Pytanie 12

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Powoduje zmianę wymiarów obrazu bez modyfikacji istotnej zawartości wizualnej
B. Powoduje wycięcie określonego fragmentu z pierwotnego obrazu w celu uzyskania lepszego widoku
C. Polega na modyfikacji sposobu zapisu obrazu, aby zmienić metodę kompresji
D. Łączy lub odejmuje figury
Skalowanie obrazu to proces, który polega na zmianie jego rozmiaru, zachowując przy tym kluczowe elementy wizualne. Istotne jest, aby w trakcie skalowania nie doszło do zniekształcenia ważnych detali czy proporcji obrazu. W praktyce, stosowanie algorytmów interpolacji, takich jak biliniowa czy bikubiczna, pozwala na uzyskanie wysokiej jakości powiększeń lub pomniejszeń obrazów, co jest fundamentem w grafice komputerowej, projektowaniu stron internetowych oraz w fotografii cyfrowej. Dzięki odpowiednim technikom, możemy skalować zdjęcia do różnych rozmiarów bez utraty istotnych informacji, co jest niezwykle ważne w kontekście przygotowywania materiałów do druku lub publikacji online. Dobrze wykonane skalowanie obrazu zapewnia estetyczny wygląd i zgodność z wymogami technicznymi, co jest kluczowe w mediach, marketingu i projektowaniu graficznym.

Pytanie 13

Narzędzie phpMyAdmin służy do administrowania serwerem

A. FTP
B. WWW
C. baz danych
D. plików
Poprawnie – phpMyAdmin to narzędzie służące do administrowania serwerem baz danych, najczęściej MySQL lub MariaDB. Działa jako aplikacja webowa, czyli obsługujesz ją przez przeglądarkę, ale jej głównym zadaniem nie jest zarządzanie stroną WWW, tylko właśnie strukturą i danymi w bazie. Dzięki phpMyAdmin możesz tworzyć nowe bazy danych, zakładać i usuwać tabele, definiować typy kolumn, klucze główne i obce, indeksy, a także wykonywać zapytania SQL, eksportować i importować dane (np. do formatu SQL, CSV, czasem też JSON), robić backupy i przywracać je, zarządzać użytkownikami i ich uprawnieniami do konkretnych baz. W praktyce, gdy stawiasz stronę w PHP opartą na WordPressie, Joomla czy autorskim CMS-ie, to bardzo często pierwsze narzędzie, po które się sięga do ogarnięcia bazy, to właśnie phpMyAdmin. Z mojego doświadczenia to jest taki „szwajcarski scyzoryk” do MySQL – niby prosty interfejs, ale pod spodem pełna moc SQL-a. Warto też wiedzieć, że phpMyAdmin nie zastępuje poprawnie napisanego kodu aplikacji czy mechanizmów migracji baz danych, ale w codziennej pracy administratora i programisty webowego jest niesamowicie przydatny: do szybkiego podglądu rekordów, debugowania problemów z danymi, sprawdzania wydajności zapytań czy ręcznej korekty błędnie zapisanych wpisów. Dobrą praktyką jest ograniczanie dostępu do phpMyAdmina (np. przez hasło, IP, HTTPS), bo daje on bardzo szerokie możliwości ingerencji w dane – a więc jest newralgicznym punktem z punktu widzenia bezpieczeństwa.

Pytanie 14

Przedstawione zapytanie MySQL ma za zadanie

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;
A. usunąć kolumnę tytul z tabeli ksiazki.
B. zmienić nazwę kolumny w tabeli ksiazki.
C. zmienić typ kolumny tytul w tabeli ksiazki.
D. dodać do tabeli ksiazki kolumnę tytul.
Twoja odpowiedź dobrze odczytuje składnię polecenia ALTER TABLE w MySQL. Instrukcja: ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; służy do zmiany definicji już istniejącej kolumny tytul w tabeli ksiazki. Słowo kluczowe MODIFY w MySQL oznacza właśnie modyfikację typu danych i atrybutów kolumny, bez zmiany jej nazwy. W tym przykładzie kolumna tytul zostaje ustawiona jako typ VARCHAR o długości 100 znaków oraz z ograniczeniem NOT NULL, czyli pole nie może przyjmować wartości pustej. Moim zdaniem to jedno z częstszych poleceń przy rozwijaniu aplikacji, bo schemat bazy prawie nigdy nie jest idealny od początku. W praktyce takie polecenie stosuje się np. gdy początkowo założyliśmy zbyt krótki tytuł, np. VARCHAR(50), i po czasie okazuje się, że część danych się nie mieści. Zamiast tworzyć nową kolumnę, zmieniamy typ i parametry istniejącej. Dobra praktyka przy pracy z ALTER TABLE to zawsze sprawdzić, czy modyfikacja nie spowoduje utraty danych, np. przy skracaniu długości VARCHAR. W środowiskach produkcyjnych często robi się to najpierw na kopii bazy lub w środowisku testowym, bo zmiany w strukturze tabel potrafią blokować tabelę i wpływać na wydajność. Warto też wiedzieć, że w MySQL do zmiany nazwy kolumny używa się ALTER TABLE ... CHANGE stara_nazwa nowa_nazwa typ, a do dodania nowej kolumny słowa kluczowego ADD. Dzięki rozróżnieniu MODIFY/CHANGE/ADD/ DROP łatwiej czyta się skrypty migracyjne i utrzymuje spójny model danych. Dobrą praktyką jest też trzymanie wszystkich takich zmian w repozytorium razem z kodem aplikacji, żeby zawsze było wiadomo, jaka wersja schematu jest aktualna.

Pytanie 15

Poniżej przedstawiono fragment kodu w języku PHP. Jakie liczby wypisze ta pętla jako wynik swojego działania?

for ($i = 0; $i <= 20; $i += 4)
echo $i . ' ';
A. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
B. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
C. 0,4,8,12,16
D. 0,4,8,12,16,20
Pętla for w PHP działa tak, że zaczyna od 0 i leci aż do 20, dodając 4 przy każdej iteracji. Dzięki temu, dostajemy liczby 0, 4, 8, 12, 16 i 20. To jest naprawdę przydatne, zwłaszcza gdy chcemy przetwarzać co czwarty element w zbiorze. Pętle for są bardzo popularne w programowaniu, bo pozwalają robić rzeczy wielokrotnie bez zbędnego powtarzania kodu. Jeśli zrozumiesz, jak to działa, to potem dużo łatwiej będzie Ci pisać różne programy. Z moich doświadczeń wynika, że lepiej jest unikać tzw. magicznych liczb w kodzie, czyli takich, które nie mają sensownego wyjaśnienia. Lepiej używać stałych czy zmiennych, bo to sprawia, że kod jest bardziej czytelny i łatwiejszy do ogarnięcia w przyszłości.

Pytanie 16

Jaką wartość w formacie RGB będzie miała barwa oznaczona kodem heksadecymalnym: #1510FE?

A. rgb(21, 16, FE)
B. rgb(15, 10, FE)
C. rgb(21, 16, 255)
D. rgb(21, 16, 254)
Odpowiedź rgb(21, 16, 254) jest dobra, bo te wartości RGB pochodzą z kodu heksadecymalnego #1510FE. W tym kodzie każda para cyfr pokazuje, jak mocno świeci dany kolor: od 00, co oznacza brak koloru, do FF, gdzie mamy pełną intensywność. W naszym przypadku, pierwsza para '15' to kolor czerwony, '10' to zielony, a 'FE' to niebieski. Jak to przeliczymy na dziesiętny, to '15' daje nam 21, '10' daje 16, a 'FE' to 254. I stąd mamy rgb(21, 16, 254). Te wartości są super przydatne, na przykład przy tworzeniu stylów CSS, gdzie kolory są podstawą. Warto ogarnąć, jak przerabiać kolory z jednego formatu na drugi – to naprawdę pomaga w projektowaniu grafiki i stron www.

Pytanie 17

Aby strona WWW mogła być przesyłana do przeglądarki w formie zaszyfrowanej, należy zastosować protokół

A. HTTPS
B. SFTP
C. SSH
D. HTTP
HTTPS (Hypertext Transfer Protocol Secure) to protokół komunikacyjny, który umożliwia bezpieczne przesyłanie danych pomiędzy przeglądarką internetową a serwerem. Jego podstawowym zadaniem jest zapewnienie poufności i integralności informacji, co osiąga dzięki zastosowaniu szyfrowania. HTTPS korzysta z protokołu SSL/TLS do szyfrowania połączenia, co oznacza, że dane przesyłane pomiędzy użytkownikiem a serwerem są chronione przed podsłuchiwaniem i modyfikacją. Na przykład, w przypadku logowania się do bankowości internetowej, użycie HTTPS zapewnia, że nasze dane logowania są bezpieczne przed potencjalnymi atakami. Zastosowanie HTTPS stało się standardem w branży webowej, zwłaszcza po wprowadzeniu przez Google polityki priorytetowego traktowania stron zabezpieczonych tym protokołem w wynikach wyszukiwania. To nie tylko wzmacnia bezpieczeństwo, ale także zwiększa zaufanie użytkowników do witryn. Standardy dotyczące bezpieczeństwa w sieci zalecają użycie HTTPS jako domyślnego protokołu dla wszystkich stron internetowych, co jest zgodne z najlepszymi praktykami w zakresie ochrony danych.

Pytanie 18

W języku PHP, aby zaprezentować ciąg n znaków @, konieczne jest skorzystanie z funkcji

A. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki($n);
B. function znaki($znak,$n){for($i=0;$i<$n;$i++)print($znak);}znaki("@",$n);
C. function znaki($i){for($i=0;$i<$n;$i++)print("@");}znaki($i);
D. function znaki($znak,$i++){for($i=0;$i<$n;$i++)print($znak);}znaki(@,$n);
Wszystkie inne przedstawione odpowiedzi nie są poprawne z kilku powodów. Pierwsza z analizowanych koncepcji nie definiuje funkcji w sposób zgodny z wymaganiami, ponieważ argumenty są niepoprawnie zdefiniowane, a pętla iteracyjna nie ma jasno określonej liczby powtórzeń. Co więcej, nie przekazuje ona znaku do wydrukowania w sposób, który umożliwiałby elastyczność. Kolejna odpowiedź nie uwzględnia przekazywania znaku, a zamiast tego skupia się jedynie na iteracjach, co skutkuje błędnym podejściem do zadania. Funkcja, która nie przyjmuje znaku jako argumentu, nie jest w stanie spełnić wymagań związanych z dynamicznym wyświetlaniem konkretnego znaku. W ostatniej niepoprawnej koncepcji, argumenty funkcji są błędnie przypisane, ponieważ nie ma dość logicznego powiązania pomiędzy nimi a zamierzonym celem funkcji, co prowadzi do niepoprawnego działania kodu. Tego rodzaju błędy w definicji i implementacji funkcji mogą prowadzić do nieczytelności oraz trudności w debugowaniu, co jest nie do zaakceptowania w profesjonalnym programowaniu.

Pytanie 19

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. IIS, Perl oraz MySQL
B. PHP oraz MySQL
C. Apache oraz PHP
D. Apache, PHP i MySQL
Aby uruchomić system CMS Joomla!, niezbędne jest środowisko składające się z serwera Apache, języka PHP oraz bazy danych MySQL. Apache jest jednym z najpopularniejszych serwerów WWW, który obsługuje zapytania HTTP i serwuje zawartość stron internetowych. PHP to skryptowy język programowania, który jest powszechnie używany do tworzenia dynamicznych stron internetowych i aplikacji webowych. W kontekście Joomla!, PHP jest odpowiedzialne za przetwarzanie kodu i interakcję z bazą danych. MySQL natomiast to system zarządzania relacyjnymi bazami danych, który przechowuje wszystkie dane potrzebne do działania Joomla!, takie jak informacje o użytkownikach, artykułach i ustawieniach systemowych. Współpraca tych trzech komponentów tworzy stabilne środowisko do działania Joomla!, zapewniając optymalizację wydajności oraz bezpieczeństwo. Warto również zaznaczyć, że Joomla! wymaga minimum wersji PHP 7.2 oraz MySQL 5.5, aby zapewnić pełną funkcjonalność i wsparcie dla nowoczesnych rozwiązań webowych.

Pytanie 20

Aby przeanalizować rozkład ilościowy różnych kolorów na zdjęciu, należy skorzystać z

A. desaturacji
B. histogramu
C. balansu kolorów
D. rozmycia Gaussa
Histogram to coś jak graficzna mapka kolorów w Twoim zdjęciu. Pokazuje, jak rozłożone są różne kolory – czerwony, zielony i niebieski – co jest mega przydatne, gdy chcesz zobaczyć, które kolory dominują w Twoim obrazie. Dzięki histogramowi można ogarnąć siłę kolorów i ich proporcje. Jak się nim pobawisz, to łatwiej zauważysz, czy kolory są zbyt intensywne, zbyt blade albo czy masz jakieś przepalenia czy zbyt ciemne miejsca w obrazku. Osobiście, jak używam histogramu, to mogę fajnie dostosować jasność czy kontrast, żeby zdjęcie wyglądało tak, jak chcę. W fotografii i grafice komputerowej histogramy są po prostu standardem – bez nich ciężko ocenić jakość obrazu i podjąć sensowne decyzje w postprodukcji. Dlatego naprawdę warto z nich korzystać, bo dają konkretny wgląd w kolorystykę.

Pytanie 21

W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nowym roku zdecydowano o podwyżce pensji dla wszystkich pracowników o 100 zł. Ta aktualizacja w bazie danych powinna mieć formę

A. UPDATE pensja SET 100
B. UPDATE pensja SET +100
C. UPDATE pracownicy SET pensja = 100
D. UPDATE pracownicy SET pensja = pensja + 100
Odpowiedź 'UPDATE pracownicy SET pensja = pensja + 100;' jest właściwa, ponieważ używa standardowej składni SQL do aktualizacji danych w tabeli. W tym przypadku, instruktacja 'SET pensja = pensja + 100' oznacza, że dla każdego rekordu w tabeli 'pracownicy', wartość kolumny 'pensja' zostanie zwiększona o 100 zł. To podejście jest zgodne z zasadami dobrych praktyk w programowaniu SQL, ponieważ aktualizuje wartość na podstawie jej bieżącej wartości, co pozwala na zachowanie pełnej kontroli nad danymi. Tego rodzaju aktualizacja jest często stosowana w bazach danych, gdy konieczne jest modyfikowanie istniejących danych na podstawie ich aktualnych wartości. Na przykład, jeśli w tabeli mamy pracowników z różnymi wynagrodzeniami, każdemu z nich dodamy stałą kwotę, co sprawia, że struktura danych pozostaje spójna. Dodatkowo, takie podejście ma zastosowanie w praktycznych scenariuszach, takich jak coroczne podwyżki wynagrodzeń, co jest powszechną praktyką w wielu organizacjach, a poprawność tej operacji można zweryfikować poprzez zapytania SELECT po aktualizacji.

Pytanie 22

W systemie baz danych zdefiniowano tabelę Mieszkancy, która zawiera dane. W celu usunięcia tej tabeli oraz jej zawartości, należy użyć polecenia

A. ALTER TABLE Mieszkancy;
B. TRUNCATE TABLE Mieszkancy;
C. DROP TABLE Mieszkancy;
D. DELETE FROM Mieszkancy;
Polecenie 'DROP TABLE Mieszkancy;' jest odpowiednie do usunięcia tabeli z bazy danych, wraz ze wszystkimi jej danymi i strukturą. W przeciwieństwie do innych poleceń, takich jak 'DELETE' czy 'TRUNCATE', które modyfikują zawartość tabeli, 'DROP TABLE' usuwa całą tabelę z systemu. Użycie tego polecenia jest nieodwracalne, dlatego przed jego zastosowaniem warto upewnić się, że posiadamy kopię zapasową danych, jeśli będą one w przyszłości potrzebne. W praktyce, jeśli jesteś administratorem bazy danych i chcesz usunąć zbędną tabelę, polecenie to jest niezwykle efektywne i pozwala na zwolnienie zasobów. Zgodnie z najlepszymi praktykami, przed wykonaniem operacji na bazie danych, zawsze warto przeprowadzić analizę wpływu na inne powiązane obiekty, takie jak relacje między tabelami. Dobrą praktyką jest również włączenie kontroli dostępu, aby nieuprawnione osoby nie mogły wykonywać takich operacji.

Pytanie 23

W znaczniku <meta ...> w sekcji <meta ...> na stronie internetowej nie zamieszcza się informacji o

A. autorze
B. kodowaniu
C. typie dokumentu
D. automatycznym odświeżaniu
Wszystkie wymienione odpowiedzi, z wyjątkiem informacji dotyczącej typu dokumentu, są poprawne i mogą być umieszczane w znaczniku <meta>. Informacja o autorze jest istotna, ponieważ pozwala wskazać osobę odpowiedzialną za treść na stronie, co może być ważne w kontekście cytowania i prawa autorskiego. Wyszukiwarki również mogą brać pod uwagę te informacje w kontekście wiarygodności źródła. Z kolei kodowanie jest kluczowe, ponieważ określa, w jaki sposób znaki są interpretowane przez przeglądarkę, co ma fundamentalne znaczenie dla prawidłowego wyświetlania treści, zwłaszcza w przypadku stron wielojęzycznych. Możliwość określenia kodowania w znaczniku <meta charset='UTF-8'> jest powszechnie stosowana, aby zapewnić, że wszystkie znaki są renderowane poprawnie. Automatyczne odświeżanie za pomocą znacznika <meta http-equiv='refresh' content='30'> jest przydatne, gdy strona potrzebuje być często aktualizowana, na przykład w przypadku stron informacyjnych czy serwisów newsowych. Dlatego też, umieszczanie tych informacji w znaczniku <meta> jest zgodne z praktykami webowymi i przyczynia się do poprawy działania strony oraz jej optymalizacji dla użytkowników i wyszukiwarek.

Pytanie 24

W bazie danych znajdują się dwie tabele, które są ze sobą połączone relacją 1..n. Jakiej klauzuli SQL należy użyć, aby uzyskać odpowiadające sobie dane z obu tabel?

A. OUTER LINK
B. INNER LINK
C. AND
D. JOIN
Klauzula JOIN w SQL służy do łączenia tabel w bazie danych, pozwalając na pobranie powiązanych danych z różnych tabel. W przypadku relacji 1..n, przy której jedna tabela (nazwa tabeli `A`) może mieć wiele powiązanych rekordów w drugiej tabeli (nazwa tabeli `B`), klauzula JOIN jest idealna do uzyskania korespondujących wartości z obu tabel. Przykład zastosowania to: SELECT A.*, B.* FROM A JOIN B ON A.id = B.a_id; W powyższym zapytaniu `A.id` to klucz główny tabeli `A`, a `B.a_id` to klucz obcy w tabeli `B`, który odnosi się do `A`. Klauzula JOIN może przyjmować różne formy, takie jak INNER JOIN, LEFT JOIN, RIGHT JOIN, i FULL JOIN, które różnią się sposobem łączenia danych i wynikami. JOIN jest standardem SQL, co oznacza, że jest wspierany przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle, czy Microsoft SQL Server. Użycie klauzuli JOIN jest kluczowe w relacyjnych bazach danych, gdzie dane są rozdzielone w różnych tabelach, ale muszą być analizowane łącznie.

Pytanie 25

Jakie zapytanie pozwoli Administratorowi cofnąć uprawnienia do przeglądania oraz modyfikacji danych w bazie gazeta dla użytkownika redaktor?

A. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
B. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
C. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
D. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
Wybrana odpowiedź jest poprawna, ponieważ polecenie REVOKE służy do odbierania wcześniej przyznanych uprawnień użytkownikowi w systemie zarządzania bazą danych. W tym przypadku, REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost'; skutecznie odbiera prawo do przeglądania (SELECT) oraz aktualizacji (UPDATE) danych w bazie danych 'gazeta' dla użytkownika 'redaktor'. Przykładowe zastosowanie tego zapytania może mieć miejsce w sytuacji, gdy redaktor przestaje pełnić swoją funkcję i nie powinien już mieć dostępu do tych informacji. Standardową praktyką w zarządzaniu dostępem do baz danych jest stosowanie zasady najmniejszych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są mu niezbędne do wykonywania swoich obowiązków. W przypadku, gdy konieczne jest zmodyfikowanie uprawnień, zamiast usuwania użytkownika, łatwiej jest po prostu odebrać mu konkretne prawa, co jest dokładnie tym, co robi to polecenie.

Pytanie 26

Jak można umieścić komentarz w kodzie PHP, używając odpowiednich symboli?

A. <!-- ... -->
B. /? ... ?/
C. /* ... */
D. <? ... ?>
W języku PHP, komentarze można umieszczać w kodzie przy użyciu znaku '/*' na początku i '*/' na końcu. Jest to standardowy sposób tworzenia komentarzy blokowych, który pozwala na dodanie dłuższych opisów lub notatek. Komentarze te są ignorowane przez interpreter PHP, co oznacza, że nie wpływają na działanie programu. Użycie komentarzy blokowych jest szczególnie przydatne w sytuacjach, gdy chcemy wyłączyć większe fragmenty kodu lub dokumentować skomplikowane algorytmy. Można również stosować komentarze jednolinijkowe, które rozpoczyna się od znaku '//'. Ważne jest, aby stosować komentarze w sposób przemyślany, aby poprawić czytelność kodu oraz ułatwić jego utrzymanie. Warto zaznaczyć, że zgodnie z zaleceniami standardów PEP8 i PSR-12, dobrze udokumentowany kod jest kluczowy dla jego długoterminowej użyteczności i współpracy w zespole programistycznym. Przykładem użycia komentarza blokowego może być: /* To jest komentarz blokowy, który wyjaśnia poniższy kod. */

Pytanie 27

Model, w którym wszystkie dane są zapisane w jednej tabeli, określa się mianem

A. jednorodnym
B. sieciowym
C. relacyjnym
D. hierarchicznym
Model jednorodny to taka podstawowa struktura w bazach danych, gdzie wszystko trzymamy w jednej tabeli. To się fajnie sprawdza w prostych aplikacjach, bo wtedy relacje między danymi są dość oczywiste. Klasycznym przykładem może być baza kontaktów, gdzie każdy ma swoje info w jednym miejscu. Dzięki temu mamy łatwy dostęp do danych i prosto nimi zarządzać. Z mojego doświadczenia, to rozwiązanie jest super efektywne, ale jak system staje się większy i złożony, to zaczynają się schody. Wtedy inne modele, jak relacyjne, mogą mieć więcej sensu. W branży często korzysta się z modelu jednorodnego, zwłaszcza tam, gdzie szybki dostęp do danych jest kluczowy, a sztywne struktury tylko przeszkadzają. Na codzień to naprawdę przydatna rzecz, jak ktoś nie chce się męczyć z komplikacjami.

Pytanie 28

Jakie znaczniki <header>, <article>, <section>, <footer> są typowe dla języka

A. style="margin-bottom: 0cm;">HTML 5
B. style="margin-bottom: 0cm;">HTML 4.01 Strict
C. HTML 4.01 Transitional
D. style="margin-bottom: 0cm;">XHTML 1.1
Znaczniki <header>, <article>, <section> oraz <footer> są częścią standardu HTML5, który wprowadza nowe semantyczne elementy, mające na celu poprawę struktury dokumentów HTML. Element <header> używany jest do definiowania nagłówków sekcji lub całej strony, co ułatwia nawigację i zrozumienie układu treści. <article> natomiast służy do oznaczania samodzielnych jednostek treści, które mogą być niezależnie dystrybuowane lub zrozumiane. <section> dzieli dokument na tematyczne sekcje, a <footer> zazwyczaj zawiera informacje o autorze, prawach autorskich czy linki do powiązanych materiałów. Stosowanie tych elementów zgodnie z ich przeznaczeniem sprzyja lepszej dostępności oraz optymalizacji SEO, ponieważ wyszukiwarki mogą lepiej interpretować strukturę strony. Przykładem zastosowania może być blog, w którym każdy post jest oznaczony jako <article>, co pozwala systemom wyszukiwania na łatwiejsze indeksowanie poszczególnych wpisów. Warto pamiętać, że HTML5 wspiera także inne aspekty nowoczesnego web designu, takie jak media, formularze i API, co czyni go standardem przyszłości.

Pytanie 29

Przedstawione zapytanie SELECT wykonane na tabeli przechowującej dane o uczestnikach konkursu ma za zadanie wybrać

SELECT MAX(wiek) - MIN(wiek) FROM uczestnicy;
A. różnicę wieku pomiędzy najstarszym i najmłodszym uczestnikiem.
B. średnią arytmetyczną wieku uczestników.
C. liczbę najstarszych uczestników.
D. minimalny oraz maksymalny wiek uczestników.
Gratulacje, ta odpowiedź jest poprawna. Zapytanie SQL używa funkcji agregujących MAX i MIN do określenia maksymalnej i minimalnej wartości wieku w tabeli uczestników. Użycie tych funkcji umożliwia nam zidentyfikowanie najstarszego i najmłodszego uczestnika. Następnie, zapytanie oblicza różnicę między tymi wartościami, co odpowiada różnicy wieku między najstarszym i najmłodszym uczestnikiem. To jest standardowe podejście w SQL do wykonywania tego typu zapytań. W praktyce, takie zapytania są często używane w analizie danych do określania różnorodności danych, takiej jak zakres wieku uczestników w danym konkursie. Pamiętaj, że funkcje agregujące w SQL, takie jak MAX i MIN, są niezwykle przydatne w analizie danych, umożliwiając nam podsumowanie i analizę dużych zbiorów danych.

Pytanie 30

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

A. stworzenie instancji obiektu napis1 klasy napisy
B. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
C. wywołanie metody dla obiektu napisy
D. stworzenie nowej klasy napis1
W podanym kodzie JavaScript mamy do czynienia z próbą utworzenia obiektu klasy 'napisy'. Operacja 'new' w JavaScript jest używana do instancjowania obiektów z funkcji konstrukcyjnych, które pełnią rolę klas. Przykład działania: jeśli mamy zdefiniowaną funkcję konstrukcyjną 'function napisy() { this.text = ''; }', to użycie 'var napis1 = new napisy();' stworzy nowy obiekt 'napis1', który będzie posiadał właściwość 'text'. Warto zwrócić uwagę, że 'napisy' musi być zdefiniowane jako funkcja konstrukcyjna, aby mogło być użyte w kontekście 'new'. Zrozumienie tego mechanizmu jest kluczowe w programowaniu obiektowym w JavaScript, gdzie klasy i obiekty odgrywają fundamentalną rolę w organizacji kodu. Aby lepiej zrozumieć działanie tego fragmentu, warto zapoznać się z dokumentacją dotyczącą obiektów i funkcji w JavaScript, co znajduje się w standardzie ECMAScript. Przykładowy kod ilustrujący tworzenie obiektu mógłby wyglądać tak: 'var napis1 = new napisy(); console.log(napis1.text);'.

Pytanie 31

W HTML-u, aby umieścić animację FLASH w formacie .swf na stronie internetowej, należy skorzystać ze znacznika

A. <audio>
B. <video>
C. <img>
D. <object>
Aby dodać animację FLASH z rozszerzeniem .swf na stronę internetową, należy użyć znacznika <object>. Ten znacznik jest zgodny z wieloma standardami HTML i pozwala na osadzanie różnorodnych mediów, w tym plików FLASH. Użycie <object> umożliwia nie tylko wyświetlenie animacji, ale także interakcję z nią, co jest niezbędne w przypadku interaktywnych aplikacji FLASH. Warto zauważyć, że HTML5 wprowadził nowe elementy, takie jak <video> i <audio>, które są bardziej odpowiednie do obsługi multimediów w nowoczesnych aplikacjach internetowych, ale jeśli chodzi o pliki FLASH, to <object> pozostaje właściwym wyborem. Przykład użycia: <object data='animacja.swf' type='application/x-shockwave-flash' width='550' height='400'></object>. Pomimo, że wsparcie dla FLASH jest obecnie ograniczone, zrozumienie tego znacznika i jego zastosowania jest kluczowe dla pracy z większą ilością multimediów w HTML. Ponadto, zgodność z danymi standardami zapewnia, że strona będzie działać poprawnie w różnych przeglądarkach.

Pytanie 32

Jednostka ppi (pixels per inch) oznacza

A. jest parametrem wyznaczającym rozdzielczość cyfrowych urządzeń dokonujących pomiarów
B. jest jednostką rozdzielczości skanerów definiującą częstość próbkowania obrazu
C. określa rozdzielczość obrazów tworzonych przez drukarki oraz plotery
D. określa rozdzielczość obrazów rastrowych
Odpowiedź "określa rozdzielczość obrazów rastrowych" jest prawidłowa, ponieważ jednostka ppi (pixels per inch) jest kluczowym wskaźnikiem dla obrazów rastrowych, które składają się z pikseli. PPI definiuje gęstość pikseli w odniesieniu do jednostki długości, co ma bezpośredni wpływ na jakość i szczegółowość obrazu. Im wyższa wartość ppi, tym więcej pikseli przypada na cal, co skutkuje wyraźniejszymi i bardziej szczegółowymi obrazami. Na przykład, w druku wysokiej jakości, często stosuje się wartości ppi w zakresie 300 lub wyżej, co pozwala na uzyskanie wyrazistych detali. W kontekście grafiki komputerowej i edycji zdjęć, ppi jest również ważne przy ustalaniu rozmiaru druku oraz jakości obrazu, co jest zgodne z praktykami branżowymi. Ponadto, standardy takie jak sRGB i Adobe RGB określają, jak ppi wpływa na reprodukcję kolorów i detali w druku i wyświetlaniu cyfrowym, co czyni te informacje niezwykle istotnymi dla profesjonalnych grafików i fotografów.

Pytanie 33

Który składnik nie jest wymagany do instalacji i uruchomienia systemu CMS Joomla!?

A. parser PHP
B. platforma .NET
C. serwer WWW
D. baza danych
Poprawnie wskazana została platforma .NET jako element, który nie jest wymagany do instalacji i działania Joomla!. Ten CMS jest napisany w PHP i z założenia działa w klasycznym stosie LAMP/LEMP, czyli Linux/Windows + serwer WWW (najczęściej Apache lub Nginx) + PHP + baza danych (MySQL/MariaDB, czasem PostgreSQL). Joomla! korzysta z interpretera PHP do wykonywania całej logiki aplikacji: obsługi logowania, generowania szablonów, pracy z bazą danych, modułów, komponentów itd. Serwer WWW (HTTP) odpowiada za przyjmowanie żądań z przeglądarki i przekazywanie ich do PHP, a baza danych przechowuje treści, użytkowników, konfigurację, menu, artykuły i całą resztę danych dynamicznych. Platforma .NET to zupełnie inny ekosystem technologiczny, typowy dla aplikacji pisanych w C#, ASP.NET, .NET Core, działających np. na IIS. Joomla! nie jest aplikacją .NET, więc nie potrzebuje środowiska uruchomieniowego .NET ani serwera IIS, żeby działać. W praktyce, w typowej firmie hostingowej, gdy chcesz uruchomić Joomla!, patrzysz czy jest obsługa PHP w odpowiedniej wersji, dostęp do bazy MySQL/MariaDB oraz czy serwer WWW pozwala na friendly URLs (mod_rewrite lub odpowiednik). To są realne wymagania. Można oczywiście postawić Joomla! także na Windowsie, ale dalej korzystasz z PHP i serwera WWW, a nie z ASP.NET. Moim zdaniem warto zapamiętać prostą zasadę: jeśli CMS jest napisany w PHP, to kluczowe są PHP, serwer HTTP i baza danych, a nie platformy typowe dla innych języków, jak .NET czy Java.

Pytanie 34

W HTML atrybut alt elementu img służy do określenia

A. treści, która zostanie pokazana, gdy grafika nie może być załadowana
B. lokalizacji i nazwy pliku źródłowego grafiki
C. parametrów grafiki, takich jak wymiary, ramka, wyrównanie
D. opisu, który pojawi się pod grafiką
Atrybut <b>alt</b> znacznika <b>img</b> w języku HTML jest niezwykle istotnym elementem, który ma na celu zapewnienie dostępności treści wizualnych dla użytkowników. Gdy obrazek nie może zostać załadowany (np. z powodu problemów z siecią lub błędnej ścieżki do pliku), tekst zawarty w atrybucie <b>alt</b> zostaje wyświetlony zamiast obrazu. W praktyce oznacza to, że osoba korzystająca z technologii asystujących, takich jak czytniki ekranu, będzie miała możliwość zrozumienia, co miało się pojawić w danym miejscu na stronie. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), stosowanie atrybutu <b>alt</b> jest kluczowe dla zapewnienia dostępności stron internetowych. Przykładem może być sytuacja, w której na stronie internetowej znajduje się obrazek przedstawiający produkt. Atrybut <b>alt</b> powinien zawierać opis tego produktu, co pozwoli użytkownikom, którzy nie widzą obrazu, zrozumieć jego znaczenie. Prawidłowe użycie atrybutu <b>alt</b> nie tylko poprawia dostępność, ale także może wpłynąć na SEO strony, ponieważ wyszukiwarki traktują ten atrybut jako dodatkowy kontekst dla treści wizualnych.

Pytanie 35

Wskaźnik HTML, który umożliwia oznaczenie tekstu jako błędnego lub nieodpowiedniego poprzez jego przekreślenie, to jaki?

A. <u> </u>
B. <b> </b>
C. <s> </s>
D. <em> </em>
Element <s> w HTML służy do oznaczania tekstu jako nieaktualnego, błędnego albo już nieobowiązującego poprzez jego przekreślenie. Przeglądarka domyślnie renderuje taki fragment z poziomą linią przez środek tekstu. W praktyce używa się go np. przy cenach promocyjnych: <p>Stara cena: <s>199 zł</s> Nowa cena: 149 zł</p> albo przy korektach treści, kiedy chcemy pokazać, że coś zostało zmienione, ale wciąż widoczne jest, co było wcześniej. Warto wiedzieć, że historycznie do podobnych celów używano też <strike>, ale ten znacznik jest przestarzały (deprecated) w standardzie HTML i nie powinien być już stosowany. Moim zdaniem lepiej od razu przyzwyczajać się do poprawnych, aktualnych tagów, bo to się później opłaca przy większych projektach. W nowszych specyfikacjach HTML5 zaleca się stosowanie <s> właśnie do treści nieaktualnych, ale nie takich, które zostały formalnie wycofane – do tego jest znacznik <del>, który dodatkowo semantycznie wskazuje usunięcie fragmentu, często używany w systemach kontroli wersji treści. Z mojego doświadczenia warto rozróżniać <s>, <del> i <ins>, bo w połączeniu z CSS i narzędziami do dostępności (np. czytnikami ekranu) daje to lepszą semantykę dokumentu. Dobrą praktyką jest też nie nadużywać przekreśleń tylko dla „efektu wizualnego” – jeśli chcesz coś tylko wyróżnić graficznie, lepiej użyć CSS, a znaczników semantycznych używać zgodnie z ich przeznaczeniem.

Pytanie 36

W CSS, aby zmienić kolor czcionki dowolnego elementu HTML po najechaniu na niego kursorem, należy użyć pseudoklasy

A. :coursor
B. :active
C. :visited
D. :hover
Pseudoklasa :hover jest kluczowym elementem w CSS, umożliwiającym stylizację elementów HTML w momencie, gdy użytkownik najeżdża na nie kursorem myszy. Dzięki temu możemy w sposób dynamiczny zmieniać właściwości prezentacyjne, takie jak kolor czcionki, tło, obramowanie, a także inne atrybuty, co znacząco zwiększa interaktywność strony. Definiując regułę CSS z użyciem :hover, możemy na przykład zmienić kolor tekstu z szarego na niebieski, co przyciąga uwagę użytkownika. Przykładowa reguła CSS wygląda następująco: `a:hover { color: blue; }`, co oznacza, że elementy linków zmienią kolor na niebieski po najechaniu na nie kursorem. Pseudoklasa :hover jest zgodna z W3C CSS Specification i działa w większości nowoczesnych przeglądarek, co czyni ją niezbędnym narzędziem w arsenale każdego web developera. Używanie tej pseudoklasy pomaga w budowaniu responsywnych interfejsów użytkownika, które są bardziej przyjazne i angażujące. Poprawne zastosowanie :hover zwiększa również dostępność witryn, ponieważ użytkownicy mogą lepiej orientować się w interakcji z elementami strony.

Pytanie 37

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Zmniejszenie kontrastu zdjęcia.
C. Przenikanie zdjęć.
D. Zwiększenie ostrości zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 38

Podany poniżej kod źródłowy w języku C++ ma na celu wypisywanie dla wprowadzonych dowolnych liczb całkowitych różniących się od zera:

int main(){
    int liczba;
    cin >> liczba;
    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;
        cin >> liczba;
    }
    return 0;
}
A. wszystkie liczby
B. jedynie liczby parzyste
C. liczby pierwsze
D. tylko liczby nieparzyste
Kod źródłowy napisany w języku C++ ma na celu wypisywanie tylko liczb parzystych. Funkcja main() wczytuje liczbę całkowitą za pomocą cin, a następnie wchodzi w pętlę while, która trwa tak długo, jak długo wczytana liczba nie jest równa zero. Wewnątrz pętli, zastosowano sprawdzenie warunku, który definiuje, czy liczba jest parzysta, poprzez operator modulo: (liczba % 2) == 0. Jeśli wynik tego działania jest równy zero, liczba jest parzysta i zostaje wypisana na ekranie. Wszelkie inne liczby (nieparzyste) nie są wyświetlane. Przykładem praktycznego zastosowania tego kodu może być program do analizy danych liczbowych, gdzie chcemy zebrać tylko liczby parzyste do dalszej obróbki, na przykład w statystyce lub w aplikacjach finansowych. Praktyczne podejście do programowania w C++ wymaga znajomości takich konstrukcji jak pętle i warunki, co jest zgodne z najlepszymi praktykami inżynieryjnymi w branży oprogramowania.

Pytanie 39

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

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

Pytanie 40

Wymiary:4272x2848px
Rozdzielczość:72 dpi
Format:JPG

W ramce przedstawiono właściwości pliku graficznego. W celu optymalizacji czasu ładowania rysunku na stronę WWW należy
A. zwiększyć rozdzielczość
B. zmniejszyć rozmiary obrazu
C. zmienić format grafiki na CDR
D. dostosować proporcje szerokości do wysokości
Zmniejszenie wymiarów rysunku to kluczowy krok w optymalizacji czasu ładowania grafiki na stronę internetową. Wymiary rysunku 4272x2848px są znaczące, co oznacza, że obraz ma dużą ilość pikseli, co przekłada się na większy rozmiar pliku. Przy standardowej rozdzielczości 72 dpi, która jest odpowiednia do wyświetlania na ekranach, mniejsze wymiary skutkują zmniejszeniem liczby pikseli, co automatycznie obniża wagę pliku. Przykładem może być przeskalowanie obrazu do wymiarów 800x600px, co może znacznie przyspieszyć czas ładowania strony. W praktyce, witryny internetowe powinny dążyć do używania obrazów o wymiarach dostosowanych do wyświetlacza, a optymalne wymiary to te, które są zgodne z responsywnym designem. Ponadto, standardy dotyczące wydajności stron, takie jak Web Page Test czy Google PageSpeed Insights, zalecają minimalizację rozmiaru plików graficznych jako kluczowy element poprawy szybkości ładowania. Zmniejszenie wymiarów rysunku jest zatem jednym z najprostszych i najbardziej efektywnych rozwiązań, które mogą przynieść znaczące korzyści w zakresie wydajności stron internetowych.