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: 10 czerwca 2026 09:54
  • Data zakończenia: 10 czerwca 2026 10:13

Egzamin zdany!

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

W formularzu, wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w pokazany sposób. Jaki typ będzie miała zmienna x?

var x = parseInt(a);
A. zmiennoprzecinkowy
B. napisowy
C. NaN
D. liczbowy, całkowity
Rzeczywiście, rozumienie tego, jak działa parseInt(), to klucz do ogarnięcia problemów związanych z danymi liczbowymi w JavaScript. Często można spotkać błąd polegający na myśleniu, że parseInt() zwraca liczby zmiennoprzecinkowe, co jest totalnie nieprawidłowe, bo zawsze dostajesz liczbę całkowitą, obcinając część dziesiętną. Inny typowy błąd to oczekiwanie, że dostaniemy NaN, kiedy dane wejściowe to liczby. NaN pojawia się tylko wtedy, gdy string nie zaczyna się od cyfry, a parseInt() nie może nic wyciągnąć. Ważne jest też to, że ta funkcja daje ci liczbę całkowitą, a nie tekst. W praktyce, jeśli nie rozumiesz dobrze konwersji typów, możesz narobić błędów w aplikacjach, co jest istotne, zwłaszcza gdy dokładność danych ma duże znaczenie. Programiści powinni mieć to na uwadze, żeby dobrze zarządzać danymi i unikać zaskakujących rezultatów, co jest zgodne z tym, co mówią najlepsze praktyki w pisaniu kodu. Warto także pamiętać o dodaniu podstawy liczbowej jako drugiego argumentu dla parseInt(), żeby uniknąć pomyłek przy interpretacji danych liczbowych w różnych systemach liczbowych, jak na przykład ósemkowy czy szesnastkowy. To naprawdę wpływa na poprawność działania aplikacji w praktyce.

Pytanie 2

Przedstawiona linia kreskowa w stylu obramowania CSS jest określona własnością

Ilustracja do pytania
A. dashed
B. double
C. doted
D. solid
Dobrze zrozumiałeś temat. Linia kreskowa w stylu CSS jest określana właściwością 'dashed'. Jest to jedna z kilku wartości, które można przypisać właściwości 'border-style' w języku CSS, aby manipulować wyglądem obramowania elementu. Stosowanie różnych styli linii pozwala na tworzenie bardziej skomplikowanych i estetycznie przyjemnych projektów. Na przykład, styl 'dashed' może być używany do zaznaczania linków lub przycisków, aby zwrócić uwagę użytkownika. Ważne jest jednak, aby zawsze pamiętać o utrzymaniu konsekwencji w projektowaniu stron internetowych. Dobre praktyki zalecają, aby wybierać styl obramowania, który najlepiej pasuje do ogólnego stylu strony. Podsumowując, właściwość 'border-style' jest kluczowym narzędziem w projektowaniu stron internetowych.

Pytanie 3

W języku SQL, jaki będzie efekt wykonania poniższego zapytania?

ALTER TABLE osoba DROP COLUMN grupa;
A. Zmieniona zostanie nazwa kolumny na grupa.
B. Zmieniona zostanie nazwa tabeli na grupa.
C. Usunięta zostanie kolumna grupa.
D. Dodana zostanie kolumna grupa.
Gratulacje, wybrałeś poprawną odpowiedź. W zaprezentowanym pytaniu skupiliśmy się na instrukcji 'ALTER TABLE' w języku SQL, a dokładniej na jej konkretnej odmianie, tj. 'DROP COLUMN'. Ta instrukcja służy do usunięcia kolumny z istniejącej tabeli. W tym konkretnym przypadku, użyto jej do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Jest to przydatne narzędzie w przypadku, gdy chcemy usunąć dane z bazy bez usuwania całej tabeli. Pamiętaj jednak o skutkach utraty wszystkich danych z tej kolumny. Zawsze warto zrobić backup bazy danych przed taką operacją. Dobrą praktyką jest także sprawdzenie, jakie inne elementy bazy są zależne od usuwanej kolumny, aby uniknąć niespodziewanych problemów.

Pytanie 4

Z którego z pól klasy

class Dane {
    public $a;
    private $b;
    protected $c;
}
będzie można uzyskać dostęp z zewnątrz przy użyciu obiektu stworzonego jako instancja tej klasy?
A. Do pola $b.
B. Do wszystkich pól.
C. Do pola $c.
D. Do pola $a.
Odpowiedzi wskazujące na dostęp do wszystkich pól, pola $b oraz pola $c są wynikiem nieporozumienia dotyczącego zasad działania modyfikatorów dostępu w programowaniu obiektowym. Modyfikator public oznacza, że pole jest dostępne z każdego miejsca w kodzie, co jest prawdziwe tylko w przypadku pola $a. Natomiast pole $b, będące prywatnym, jest dostępne wyłącznie wewnątrz klasy Dane, co uniemożliwia dostęp z zewnątrz, co często prowadzi do błędnych wniosków, że wszystkie pola powinny być dostępne. W przypadku pola $c, które jest chronione, dostęp do niego mają tylko samodzielne instancje klasy oraz klasy pochodne, co również nie pozwala na dostęp z zewnątrz. W praktyce, wiele osób, które uczą się programowania obiektowego, może mylić te dwa poziomy dostępu i w konsekwencji przyjmować, że pola chronione mogą być używane w podobny sposób jak publiczne. Z tego powodu ważne jest zrozumienie podstawowych zasad modyfikatorów dostępu oraz ich wpływu na bezpieczeństwo i organizację kodu, co jest kluczowe w dobrych praktykach programowania.

Pytanie 5

W konstrukcji warunkowej w języku JavaScript należy sprawdzić sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza niż 100. Taki warunek powinien być zapisany w następujący sposób:

A. if ( a > 0 && b > 0 && b < 100) ...
B. if ( a > 0 && b > 0 || b > 100) ...
C. if ( a > 0 || b > 0 || b > 100) ...
D. if ( a > 0 || (b > 0 && b < 100)) ...
Poprawna odpowiedź to 'if ( a > 0 && b > 0 && b <100) ...'. W tym warunku wykorzystujemy operator logiczny AND (&&), co pozwala nam na jednoczesne sprawdzenie, czy obie zmienne 'a' i 'b' są dodatnie oraz czy 'b' jest mniejsze od 100. Operator AND jest kluczowy, ponieważ wymaga, aby wszystkie warunki były spełnione jednocześnie, co w tym przypadku jest istotne dla naszej logiki programistycznej. Przykładowo, jeśli a = 10 i b = 50, warunek zwróci true, ponieważ obie zmienne są dodatnie, a 'b' jest mniejsze niż 100. Jeśli jednak 'b' wynosi 150, warunek zwróci false, co jest zgodne z naszymi wymaganiami. W kontekście standardów języka JavaScript, ważne jest, aby rozumieć różnice między operatorami logicznymi, ponieważ niewłaściwe ich zastosowanie może prowadzić do błędnej logiki w kodzie, co z kolei skutkuje nieprawidłowym działaniem aplikacji. Dlatego, w praktyce, korzystanie z operatorów AND w tej sytuacji jest nie tylko poprawne, ale także najlepszą praktyką.

Pytanie 6

W CSS zapis w postaci ```h1::first-letter{color:red;}``` spowoduje, że kolor czerwony będzie dotyczył

A. tekstów nagłówka pierwszego poziomu
B. pierwszej litery nagłówka pierwszego poziomu
C. pierwszej linii akapitu
D. pierwszej litery nagłówka drugiego poziomu
Zapis CSS h1::first-letter {color: red;} odnosi się do selektora pseudo-elementu first-letter, który jest używany do stylizacji pierwszej litery bloku tekstowego w nagłówkach. W tym wypadku, gdy selektor jest zastosowany do elementu h1, oznacza to, że kolor pierwszej litery nagłówka pierwszego stopnia (h1) zostanie zmieniony na czerwony. Pseudo-element first-letter działa tylko dla elementów blokowych, takich jak nagłówki, akapity czy listy. W praktyce, jeśli w dokumencie HTML mamy element <h1> z tekstem, np. 'Witaj świecie', to wyłącznie litera 'W' zostanie wyświetlona w kolorze czerwonym. To podejście jest zgodne ze standardami CSS, które definiują pseudo-elementy jako specyficzne fragmenty dokumentu, które można stylizować niezależnie od reszty zawartości. Warto również zauważyć, że stosowanie takich selektorów pozwala na uzyskanie bardziej złożonych efektów wizualnych bez konieczności modyfikacji struktury HTML. Umożliwia to projektantom stron internetowych większą elastyczność i kontrolę nad estetyką treści.

Pytanie 7

Które z poniższych poleceń jest poprawne w kontekście walidacji HTML5?

A. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
B. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
C. &lt;img src = mojPiesek.jpg alt = pies&gt;
D. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
Niepoprawne odpowiedzi wskazują na typowe błędy w składni HTML oraz niepełne zrozumienie zasad walidacji dokumentów HTML5. W pierwszym przypadku &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt; występuje błąd w cudzysłowie, który nie jest poprawnie zamknięty, co prowadzi do problemów z interpretacją przez przeglądarki internetowe. Przeglądarki mogą zignorować taki znacznik, co powoduje, że obraz nie zostanie wyświetlony, a tekst alternatywny nie będzie dostępny. Kolejna odpowiedź &lt;img src = mojPiesek.jpg alt = pies&gt; również jest niepoprawna, ponieważ brakuje w niej cudzysłowów wokół wartości atrybutów, co jest wymogiem w HTML5. Atrybuty w HTML powinny być zawsze otoczone cudzysłowami, aby zapewnić prawidłowe przetwarzanie przez parsery HTML. Ostatnia odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; &gt; również jest niekompletna, ponieważ nie zawiera atrybutu alt. Atrybut alt jest kluczowy dla dostępności, ponieważ służy jako opis obrazu, co jest niezbędne dla użytkowników korzystających z technologii asystujących, takich jak czytniki ekranu. Pomijanie tego atrybutu może ograniczać dostęp do informacji dla osób z niepełnosprawnościami. W praktyce, każdy znacznik obrazka powinien być starannie skonstruowany z uwzględnieniem zasad dostępności i walidacji, aby maksymalizować użyteczność i zgodność ze standardami sieciowymi.

Pytanie 8

Który z poniższych kodów HTML najlepiej ilustruje opisaną tabelę? (Obramowanie tabeli oraz komórek zostało pominięte dla uproszczenia)

Ilustracja do pytania
A. Odpowiedź D
B. Odpowiedź B
C. Odpowiedź C
D. Odpowiedź A
Odpowiedź B jest prawidłowa, ponieważ używa atrybutu rowspan do złączenia dwóch komórek w kolumnie. W przedstawionej tabeli nagłówek Telefony obejmuje dwie wartości w jednej kolumnie co jest dokładnie odwzorowane w kodzie HTML poprzez zastosowanie rowspan2 w komórce zawierającej Telefony. To podejście pozwala na logiczne i czytelne przedstawienie danych w tabeli co jest zgodne z dobrymi praktykami projektowania stron internetowych. Użycie rowspan w tabelach HTML jest powszechne gdy chcemy aby jedna komórka zajmowała miejsce większej liczby wierszy niż standardowa. Jest to przydatne w sytuacjach gdy dane muszą być grupowane pionowo co poprawia czytelność i strukturę prezentowanych informacji. Ponadto takie podejście pozwala na bardziej efektywne zarządzanie kodem HTML redukując potrzebę dodatkowego formatowania i zmniejsza złożoność dokumentu co jest zgodne z zasadami semantycznego HTML. Warto również pamiętać że użycie rowspan powinno być przemyślane aby zapewnić dostępność i poprawne wyświetlanie w różnych przeglądarkach i urządzeniach co jest kluczowe w nowoczesnym projektowaniu stron internetowych.

Pytanie 9

Jakie możliwości daje funkcja phpinfo()?

A. uruchomienie kodu w języku PHP
B. zweryfikowanie wartości zmiennych użytych w kodzie PHP
C. analizowanie kodu PHP
D. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
Funkcja phpinfo() jest niezwykle przydatnym narzędziem, które dostarcza szczegółowych informacji na temat konfiguracji środowiska PHP na serwerze. Wywołanie tej funkcji generuje stronę HTML z danymi takimi jak wersja PHP, załadowane rozszerzenia, zmienne konfiguracyjne oraz informacje o systemie operacyjnym. Przykładowo, podczas rozwiązywania problemów z aplikacjami PHP, programiści mogą skorzystać z phpinfo() w celu weryfikacji, czy odpowiednie rozszerzenia są załadowane, co może być kluczowe dla poprawnego działania aplikacji. Dodatkowo, funkcja ta umożliwia identyfikację potencjalnych problemów z konfiguracją, takich jak niewłaściwie ustawione ścieżki do skryptów czy braki w wymaganych rozszerzeniach. Zgodnie z najlepszymi praktykami, phpinfo() powinno być używane tylko w środowiskach deweloperskich, a nie produkcyjnych, aby nie ujawniać wrażliwych informacji o serwerze. Dobrą praktyką jest również usunięcie lub zabezpieczenie dostępu do stron, które wywołują tę funkcję, aby zminimalizować ryzyko ataków.

Pytanie 10

Funkcja CONCAT() w SQL służy do

A. łączenia tekstów do wyświetlenia
B. uzyskiwania podłańcucha ze wskazanego tekstu
C. usuwania określonego tekstu
D. przycinania tekstu do wyświetlenia
Funkcja CONCAT() w SQL nie ma nic wspólnego z usuwaniem tekstu, przycinaniem go ani wyznaczaniem podłańcuchów. Usunięcie wskazanego tekstu to inaczej operacja związana z funkcją REPLACE lub DELETE, które służą do usuwania fragmentów danych z tabel, a nie ich łączenia. Przycinanie tekstu, z kolei, może być realizowane za pomocą funkcji CHARINDEX lub LEN, które są używane do określenia długości tekstu lub jego pozycji, ale nie mają one zastosowania w kontekście łączenia różnych elementów. Odpowiedź sugerująca, że CONCAT() wyznacza podłańcuchy znaków, również jest mylna, ponieważ do tego celu służą funkcje takie jak SUBSTRING czy LEFT, które pozwalają na wyodrębnianie określonych części tekstu na podstawie pozycji. Typowym błędem myślowym jest mylenie różnych funkcji SQL, które pełnią odrębne role. Należy pamiętać, że każda z tych operacji ma swoje unikalne zastosowanie i są one wykorzystywane w różnych kontekstach. Dlatego przed przystąpieniem do użycia konkretnej funkcji, warto dokładnie zrozumieć jej przeznaczenie i działanie, aby uniknąć nieporozumień i błędów w zapytaniach SQL.

Pytanie 11

W SQL, aby dodać nowy wiersz do bazy danych, należy użyć polecenia

A. INSERT INTO
B. CREATE ROW
C. SELECT ROW
D. CREATE INTO
Polecenie 'INSERT INTO' jest kluczowym elementem języka SQL, służącym do dodawania nowych wierszy danych do istniejącej tabeli w bazie danych. Użycie tego polecenia wymaga podania nazwy tabeli, do której chcemy wstawić dane, oraz listy wartości, które mają być dodane. Na przykład, polecenie 'INSERT INTO klienci (imie, nazwisko) VALUES ('Jan', 'Kowalski');' dodaje nowego klienta o imieniu Jan i nazwisku Kowalski do tabeli 'klienci'. Zgodnie z dobrymi praktykami, zawsze warto również uwzględnić obsługę błędów, aby upewnić się, że operacje na danych są bezpieczne i nie powodują naruszeń integralności bazy. Warto również pamiętać, że do jednego polecenia INSERT można dodać wiele wierszy równocześnie, na przykład: 'INSERT INTO klienci (imie, nazwisko) VALUES ('Ewa', 'Nowak'), ('Anna', 'Zielona');'. Użycie 'INSERT INTO' jest fundamentalne w pracy z bazami danych i stanowi podstawę dla bardziej zaawansowanych operacji, takich jak transakcje czy manipulacje danymi w relacyjnych bazach danych.

Pytanie 12

Wskaż polecenie SQL, które dodaje kolumnę miesiacSiewu do już istniejącej tabeli rośliny

A. CREATE TABLE rosliny {miesiacSiewu int}
B. INSERT INTO rosliny Values (miesiacSiewu int)
C. UPDATE rosliny ADD miesiacSiewu int
D. ALTER TABLE rosliny ADD miesiacSiewu int
Polecenie SQL 'ALTER TABLE rosliny ADD miesiacSiewu int;' to całkiem sensowny sposób na dodanie nowej kolumny do tabeli w bazie danych. Gdy chcemy coś zmieniać w tabeli, to 'ALTER TABLE' jest tym, czego szukamy, bo pozwala nam modyfikować tabelę bez jej usuwania. Dodając kolumnę 'miesiacSiewu', przechowamy dane typu całkowitego (int), co idealnie pasuje do wartości miesięcy. Dzięki temu poleceniu możemy łatwo dostosować strukturę bazy do potrzeb aplikacji. Po jego wykonaniu, w każdej chwili można już wrzucać dane do nowej kolumny. To by się na pewno przydało przy analizie danych dotyczących upraw. W SQL to w sumie standard, więc działa w większości systemów jak MySQL czy PostgreSQL.

Pytanie 13

Podaj słowo kluczowe w języku C++, które umieszczane przed wbudowanym typem danych, umożliwia przyjmowanie jedynie nieujemnych wartości liczbowych?

A. short
B. unsigned
C. long
D. const
W języku C++ istnieją różne słowa kluczowe, które mogą wprowadzać pewne zamieszanie, jeśli chodzi o typy danych. Na przykład, słowo kluczowe 'short' zmniejsza rozmiar zmiennej, ale nie wpływa na to, czy zmienna przechowuje wartości ujemne czy nie. 'short int' może nadal przechowywać wartości zarówno dodatnie, jak i ujemne, a jego zastosowanie ma sens jedynie w kontekście zmniejszenia zajmowanej pamięci, co w niektórych przypadkach może być korzystne dla optymalizacji. Kolejne słowo kluczowe, 'const', z kolei nie ma wpływu na zakres wartości zmiennej, lecz określa, że zmienna jest stała i niezmienna po jej inicjalizacji. Użycie 'const' jest szczególnie przydatne w kontekście zapewnienia, że dane nie zostaną zmienione w trakcie działania programu, co może poprawić stabilność i przewidywalność aplikacji. 'Long' jest słowem kluczowym, które rozszerza zakres przechowywanych wartości, ale wciąż nie zapewnia, że będą one jedynie nieujemne. Wartość zmiennej 'long int' może być zarówno dodatnia, jak i ujemna. Typowe błędy myślowe związane z wyborem niepoprawnych słów kluczowych mogą wynikać z niepełnego zrozumienia tego, jak różne modyfikatory wpływają na typy danych, co z kolei prowadzi do pomyłek w kodowaniu oraz potencjalnych błędów runtime w aplikacjach.

Pytanie 14

Ile razy zostanie wykonana zaprezentowana pętla w języku PHP, zakładając, że zmienna sterująca nie jest zmieniana wewnątrz pętli?

 for ($i = 0; $i <= 10; $i++) {
    // kod pętli
}
A. 11
B. 10
C. Nieskończenie wiele
D. 0
Prawidłowa odpowiedź wynika z analizy działania pętli for w języku PHP. W przedstawionej pętli warunek iteracji jest ustawiony na '$i <= 10', co oznacza, że pętla będzie wykonywana tak długo, jak długo zmienna $i będzie mniejsza lub równa 10. Zmienna $i jest inicjalizowana wartością 0 i inkrementowana o 1 przy każdym obiegu pętli. W efekcie, pętla będzie wykonywana dla wartości $i od 0 do 10, co daje 11 iteracji. Praktycznym zastosowaniem takiej pętli może być na przykład generowanie listy numerów lub przetwarzanie elementów w tablicy. Dobrą praktyką podczas używania pętli jest również upewnienie się, że warunek zakończenia jest poprawnie zdefiniowany, aby uniknąć niezamierzonych nieskończonych iteracji. Warto także uwzględnić możliwość modyfikowania zmiennej sterującej w ciele pętli, co może prowadzić do złożonych przypadków, ale w tym konkretnym przykładzie nie mamy takiej sytuacji.

Pytanie 15

Jakie imiona spełniają warunek klauzuli LIKE w zapytaniu

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
?
A. Oda, Oksana, Oktawia
B. Oksana, Oktawia, Olga
C. Oksana, Ola, Olga
D. Oktawia, Oktawian, Olga
Wybór imion Oda, Oksana, Oktawia jest błędny, ponieważ chociaż Oksana i Oktawia są poprawne, Oda nie spełnia wymagań klauzuli LIKE 'o_%_a'. Imię Oda zaczyna się na 'O', ale nie ma znaku, który by wypełniał miejsce reprezentowane przez '_' przed literą 'a', co oznacza, że nie ma żadnego znaku między 'O' a 'a'. Kluczowym błędem w analizie tego zapytania jest niedostrzeganie, że warunek LIKE wymaga, aby były przynajmniej dwa znaki w imieniu: jeden po 'o' oraz końcowy 'a'. Imiona Oktawian i Olga pojawiają się w różnych niepoprawnych odpowiedziach, ale nie są zgodne z wymaganiami, ponieważ nie wszystkie odpowiadają wzorowi. W przypadku imienia Oktawian, kończy się ono na 'n', a nie na 'a', co narusza klauzulę końcową. Zrozumienie zasadności stosowania klauzuli LIKE oraz jej składni jest kluczowe dla prawidłowego przetwarzania danych w zapytaniach SQL. Typowym błędem jest także pominięcie, że symbole wildcard muszą być stosowane z pełnym zrozumieniem ich funkcji w kontekście danych, co może prowadzić do niepoprawnych wyników w analizach i raportach.

Pytanie 16

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 17

W języku PHP wykorzystano funkcję ```is_float()```. Które z poniższych wywołań tej funkcji zwróci rezultat true?

A. is_float(3.34)
B. is_float(334)
C. is_float(NULL)
D. is_float('3,34')
Funkcja is_float() w PHP to coś, co naprawdę warto znać, bo sprawdza, czy dana wartość jest liczbą zmiennoprzecinkową. Na przykład, jak wywołasz is_float(3.34), to dostaniesz true, bo 3.34 to faktycznie float. W programowaniu ważne jest, żeby poprawnie rozróżniać różne typy danych, bo inaczej mogą być problemy przy obliczeniach. W finansach czy modelowaniu danych, dobór typów danych to kluczowa sprawa, bo chcemy, żeby nasze obliczenia były precyzyjne. Warto wiedzieć, że w PHP liczby zmiennoprzecinkowe działają według standardu IEEE 754, co czasem może powodować zaskoczenia przy dużych albo bardzo małych liczbach. Dlatego lepiej używać funkcji is_float() do sprawdzania danych wprowadzanych przez użytkowników, żeby nie wkradały się błędy, które mogą popsuć nasze obliczenia.

Pytanie 18

Technika projektowania algorytmów, która polega na dzieleniu problemu na dwa lub więcej mniejszych podproblemów, aż do momentu gdy fragmenty staną się na tyle proste, że można je rozwiązać bezpośrednio, to

A. dziel i zwyciężaj
B. słowa Fibonacciego
C. sortowanie przez wybór
D. sito Eratostenesa
Wybór innych odpowiedzi, takich jak sito Eratostenesa, sortowanie przez wybór czy słowa Fibonacciego, wskazuje na pewne nieporozumienia dotyczące technik projektowania algorytmów. Sito Eratostenesa jest klasycznym algorytmem służącym do znajdowania liczb pierwszych w określonym zakresie, wykorzystując podejście oznaczania wielokrotności, a więc nie ma nic wspólnego z podziałem problemu. Z kolei sortowanie przez wybór to prosty algorytm sortowania, który realizuje sortowanie poprzez wielokrotne wybieranie najmniejszego elementu i umieszczanie go na początku. Ten algorytm nie wykorzystuje strategii dzielenia problemu, ponieważ działa na zasadzie iteracyjnego przeszukiwania danych. Słowa Fibonacciego dotyczą zasady generowania ciągu liczb, która również nie ma związku z metodą dziel i zwyciężaj. Typowym błędem jest mylenie tych koncepcji z bardziej złożonymi schematami rozwiązywania problemów. Przykładem może być niewłaściwe zastosowanie prostych algorytmów, które nie są w stanie efektywnie rozwiązywać bardziej złożonych problemów, co prowadzi do nieoptymalnych wyników. Ważne jest zrozumienie, że odpowiednie zastosowanie odpowiednich metod algorytmicznych jest kluczowe w informatyce oraz inżynierii oprogramowania.

Pytanie 19

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

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

Pytanie 20

Aby zapewnić integralność danych w bazie programu Microsoft Access, należy zastosować

A. defragmentację bazy
B. archiwizację bazy
C. więzy integralności
D. kwerendę aktualizującą
Kwerendy aktualizujące są narzędziem, które służą do modyfikacji istniejących danych w bazie, ale nie są one odpowiednie do zapewnienia spójności danych. Ich podstawowym celem jest wprowadzanie zmian, takich jak aktualizacja wartości w tabelach, co może prowadzić do niezamierzonych błędów, jeśli nie są stosowane ostrożnie i z pełną świadomością istniejących więzów integralności. Defragmentacja bazy to proces optymalizacji, który ma na celu poprawę wydajności dostępu do danych przez reorganizację zapisanych danych na dysku, ale nie wpływa na spójność samych danych. Chociaż defragmentacja jest istotna z perspektywy wydajności, nie ma bezpośredniego wpływu na to, czy dane są poprawne czy spójne. Archiwizacja bazy odnosi się do procesu przenoszenia danych do archiwum, co ma na celu zwolnienie miejsca w głównej bazie danych, ale także nie ma nic wspólnego z zapewnieniem integralności danych. Archiwizacja, choć pomocna w zarządzaniu dużymi zbiorami danych, nie eliminuje ryzyka wystąpienia błędów w danych, które mogą pozostać w aktywnej bazie. Wszystkie te podejścia mają swoje zastosowanie, ale nie są metodami zapewniającymi spójność danych na poziomie strukturalnym, jak to robią więzy integralności.

Pytanie 21

Model, w którym wszystkie informacje są zgromadzone w jednej tabeli, określa się jako struktura prostych baz danych

A. jednorodnym
B. relacyjnym
C. hierarchicznym
D. sieciowym
Model jednorodny, znany też jako model płaskiej tabeli, to taka struktura bazy, w której trzymamy wszystkie dane w jednej tabeli. To najprostsza opcja do zrozumienia i wdrożenia, dlatego świetnie nadaje się do małych i prostych aplikacji. W tym modelu dane są poukładane w wiersze i kolumny – każdy wiersz to jakiś rekord, a kolumny to różne cechy lub atrybuty tego rekordu. Na przykład, wyobraź sobie tabelę z informacjami o książkach: każda książka to osobny wiersz, a kolumny mogą zawierać tytuł, autora, rok wydania czy ISBN. Oczywiście, ma to swoje ograniczenia, zwłaszcza jeśli chodzi o wydajność i zarządzanie dużymi zbiorami danych. Dlatego w praktyce często przechodzi się na bardziej zaawansowane modele, jak relacyjny. Mimo to, model jednorodny sprawdza się w prototypowaniu albo tam, gdzie liczy się prostota i szybki dostęp do danych. Warto też wiedzieć, że nie korzysta się tu do końca ze standardów typu SQL, bo nie ma relacji między danymi.

Pytanie 22

Który atrybut należy dodać do znacznika <video>, aby wyciszyć dźwięk odtwarzanego w przeglądarce filmu?

<video>
    <source src="film.mp4" type="video/mp4">
</video>
A. controls
B. autoplay
C. loop
D. muted
Twoja odpowiedź jest poprawna. Atrybut 'muted' jest używany w znaczniku <video>, aby wyłączyć dźwięk dla filmu wyświetlanego w przeglądarce. Jest to sposób na sterowanie dźwiękiem bez konieczności korzystania z dodatkowych elementów kontrolujących odtwarzanie filmu. Jest to bardzo przydatne, gdy chcemy, aby film był odtwarzany w tle bez zakłócania użytkownika dźwiękiem, co jest często stosowane na stronach internetowych. Ważne jest to, że to atrybut 'muted' jest odpowiedzialny za początkowy stan dźwięku filmu, a nie za to, czy użytkownik będzie mógł go później włączyć. Dodatkowo, dobrą praktyką jest pozostawienie użytkownikowi możliwości sterowania dźwiękiem, nawet jeśli jest on domyślnie wyłączony, co można osiągnąć dodając atrybut 'controls'.

Pytanie 23

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. przypisze zmiennej s zmienną t
B. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
C. wyświetli długość tekstu z zmiennej t
D. przypisze zmiennej s długość tekstu z zmiennej t
W podanym kodzie zmiennej t przypisano wartość ciągu znaków Ala ma kota.. Następnie zmiennej s przypisano wynik wywołania właściwości length na zmiennej t. W JavaScript length jest właściwością obiektów String używaną do określenia długości łańcucha znaków czyli liczby znaków w napisie. W tym przypadku t.length zwróci liczbę 12 ponieważ włącznie ze spacjami i kropką ciąg Ala ma kota. składa się z 12 znaków. Przypisanie tego wyniku do zmiennej s oznacza że s będzie miało wartość 12. Takie wykorzystanie właściwości length jest zgodne z dobrymi praktykami i często stosowane w programowaniu w JavaScript. Pozwala na dynamiczne określanie długości łańcuchów co jest przydatne przy przetwarzaniu danych tekstowych. Umiejętność manipulacji łańcuchami znaków jest kluczowa w tworzeniu aplikacji webowych i skryptów które muszą obsługiwać dane użytkowników. Prawidłowe zrozumienie jak działa właściwość length pozwala na efektywne zarządzanie i przetwarzanie tekstu co jest istotne w pracy każdego programisty.

Pytanie 24

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. wykluczenia.
B. sumy.
C. grupowania.
D. części wspólnej.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 25

W formularzu HTML wykorzystano znacznik <input>. Wyświetlane pole będzie przeznaczone do wprowadzania maksymalnie

Ilustracja do pytania
A. 30 znaków, które nie są widoczne w polu tekstowym
B. 20 znaków, które są widoczne podczas wpisywania
C. 30 znaków, które są widoczne podczas wpisywania
D. 20 znaków, które nie są widoczne w polu tekstowym
Podany znacznik <input> definiuje element formularza HTML typu password. Gdy używasz typu password, wprowadzone znaki są maskowane, zazwyczaj używając symboli takich jak kropki lub gwiazdki, co oznacza, że nie są widoczne podczas wprowadzania. Atrybut maxlength określa maksymalną liczbę znaków, które użytkownik może wprowadzić. W tym przypadku wartość maxlength równa 20 oznacza, że użytkownik może wprowadzić do 20 znaków, nawet jeśli więcej znaków można by zobaczyć w polu dzięki atrybutowi size. Rozdzielając te dwa aspekty, atrybut size określa jedynie widoczną szerokość pola, co w przypadku tego inputu wynosi 30, ale nie wpływa na ilość możliwych do wpisania znaków. Zastosowanie pola password jest powszechne w formularzach logowania, gdzie bezpieczeństwo wprowadzanych danych jest priorytetem. Użycie maxlength pozwala kontrolować długość hasła, co może być częścią strategii zabezpieczeń, eliminując zbyt długie lub zbyt krótkie hasła, które są łatwiejsze do złamania. Takie podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych.

Pytanie 26

Aby na stronie internetowej umieścić logo z przezroczystym tłem, jaki format powinien być zastosowany?

A. PNG
B. JPG
C. BMP
D. CDR
Format PNG (Portable Network Graphics) jest preferowany do przechowywania obrazów z przezroczystym tłem, co czyni go idealnym wyborem dla logo. Główne zalety PNG to obsługa przezroczystości oraz wysoka jakość grafiki bez utraty danych, dzięki kompresji bezstratnej. W praktyce, kiedy logo jest umieszczane na różnych tłach, przezroczystość pozwala na harmonijne wpasowanie się w otoczenie, co zwiększa estetykę strony. Ponadto, PNG obsługuje różne poziomy przezroczystości (alfa), co daje projektantom więcej możliwości w zakresie efektów wizualnych. Użycie PNG w projektach internetowych jest zgodne z dobrymi praktykami w zakresie tworzenia responsywnych i estetycznych interfejsów, a także zapewnia kompatybilność z większością przeglądarek internetowych. Warto zauważyć, że PNG jest również często stosowany w grafikach wektorowych i ikonach, które wymagają przejrzystości. Korzystając z PNG, projektanci mogą być pewni, że ich grafiki będą wyglądać profesjonalnie na każdej platformie.

Pytanie 27

Zmienna zadeklarowana w C++ jako double x*; to

A. parametr formalny typu zmiennoprzecinkowego
B. zmienna typu całkowitego
C. wskaźnik
D. zmienna zmiennoprzecinkowa
Parametr formalny typu rzeczywistego nie ma zastosowania w kontekście 'double x*;', ponieważ nie jest to definicja dla parametru funkcji, lecz dla wskaźnika na zmienną typu double. Zmienna rzeczywista odnosi się do prostej deklaracji zmiennej, która przechowuje wartość typu double, jednak w tym przypadku mamy do czynienia z wskaźnikiem, a nie ze zmienną przechowującą wartość. Zmienna całkowita z kolei jest typem danych przechowującym liczby całkowite, a więc nie ma związku z typem double, który jest przeznaczony dla liczb zmiennoprzecinkowych. Wskaźniki są bardziej zaawansowanym konceptem w C++, pozwalającym na manipulacje adresami w pamięci oraz umożliwiającym dynamiczne alokacje pamięci. Użycie wskaźników jest kluczowe w przypadku struktur danych oraz programowania obiektowego, gdzie pozwalają one na efektywne przechowywanie i zarządzanie danymi. Zrozumienie różnic między różnymi typami danych w języku C++ oraz ich zastosowań jest niezbędne dla prawidłowego projektowania aplikacji i unikania błędów programistycznych.

Pytanie 28

Normalizacja tabel to proces, którego celem jest

A. wyłącznie stworzenie tabel oraz relacji w bazie
B. wizualizacja bazy
C. sprawdzenie i optymalizację bazy danych
D. dodanie danych do bazy
Normalizacja tabel jest kluczowym procesem w projektowaniu baz danych, który ma na celu usprawnienie struktury danych poprzez eliminację redundancji i zapewnienie integralności danych. Proces ten składa się z kilku kroków, które prowadzą do stworzenia dobrze zorganizowanej bazy danych. Głównym celem normalizacji jest zminimalizowanie powielania danych, co w rezultacie prowadzi do optymalizacji przestrzeni dyskowej oraz zwiększenia wydajności zapytań. Przykładem zastosowania normalizacji jest podział tabeli zawierającej informacje o klientach i zamówieniach na dwie odrębne tabele. W ten sposób, każdy klient ma swoje unikalne dane w jednej tabeli, natomiast w drugiej tabeli zapisywane są tylko odniesienia do klientów zamiast ich powtórzeń. Dobre praktyki związane z normalizacją uwzględniają różne formy normalne, z których każda ma swoje zasady, np. pierwsza forma normalna (1NF) wymaga, aby każda kolumna w tabeli zawierała tylko atomowe wartości. Wysoka jakość projektowania baz danych, w tym normalizacja, znacząco wpływa na późniejsze zarządzanie danymi oraz ich analizy.

Pytanie 29

W języku CSS zapis

p::first-line {font-size: 150%;}
zastosowany na stronie z wieloma paragrafami, z których każdy zawiera kilka linii, spowoduje, że
A. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
B. cały tekst paragrafu zostanie powiększony o 150%
C. pierwszy paragraf na stronie w całości będzie miał powiększoną czcionkę
D. pierwsza linia każdego paragrafu będzie miała mniejszą czcionkę niż pozostałe linie
Odpowiedź jest trafna, bo selektor CSS 'p::first-line' służy do stylizowania wyłącznie pierwszej linii każdego paragrafu. Kiedy przypisujesz styl 'font-size: 150%', to znaczy, że czcionka tej pierwszej linii będzie większa o 50% od standardowego rozmiaru ustalonego w CSS. To dobra praktyka w web designie, bo pomaga w czytelności i nadawaniu hierarchii informacjom. Na przykład, fajnie jest wyróżnić rozpoczęcie tekstu albo zaakcentować ważne dane. Pamiętaj tylko, że efekt będzie widoczny tylko, gdy tekst ma więcej niż jedną linię, bo w przeciwnym razie powiększenie się nie ujawni. Dodatkowo, korzystanie z pseudo-elementów, jak '::first-line', to coś, co jest w standardach CSS i jest naprawdę cenione w branży.

Pytanie 30

Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Krzysztof
B. Aleksandra
C. Anna
D. Tomasz
Niestety, inne odpowiedzi są błędne, bo wynikają z pomyłki w zrozumieniu indeksowania tablic w PHP. W tym języku liczymy od zera, czyli pierwszy element przypisany ma indeks 0, a nie 1 czy 2. To jest dość powszechna zasada, którą można spotkać w innych językach, jak C czy JavaScript, więc warto to ogarnąć. Spójrzmy na naszą tablicę: $imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra'); mamy 'Annę' na indeksie 0, 'Tomasza' na 1, 'Krzysztofa' na 2 i 'Aleksandrę' na 3. Jak używamy echo $imiona[2], to chcemy wyciągnąć trzeci element, czyli 'Krzysztofa'. Często błędy wynikają z myślenia, że liczymy od jedynki, co jest bardziej intuicyjne w niektórych kontekstach. Jednak w programowaniu przyjęło się liczenie od zera, co ułatwia różne obliczenia i operacje. Na przykład, w pętlach for często zaczynamy od i=0, co jest całkiem logiczne w związku z indeksowaniem. Niepoprawny indeks może prowadzić do błędów w czasie wykonania, więc warto to rozumieć, żeby uniknąć takich sytuacji.

Pytanie 31

W języku HTML sposób na zdefiniowanie kodowania polskich znaków to

A. atrybut znacznika <meta>
B. atrybut znacznika <p>
C. znacznik <title>
D. znacznik <charset>
Inne opcje, które rozważono jako poprawne, nie są odpowiednie do określenia kodowania znaków w HTML. Znacznik <charset> nie istnieje w standardzie HTML, co czyni go niewłaściwym wyborem. Kodowanie znaków nie jest definiowane przez atrybut znacznika <p>, który jest używany głównie do formatowania tekstu, a więc nie ma wpływu na kodowanie znaków. Warto również zauważyć, że znacznik <title> jest stosowany do nadania tytułu dokumentu, który pojawia się na karcie przeglądarki, ale nie ma on związku z kodowaniem znaków. Wybór odpowiedniego kodowania jest kluczowy dla zachowania integralności tekstu, a niewłaściwe przypisanie może prowadzić do problemów z wyświetlaniem znaków i błędów w interpretacji treści. Często użytkownicy mylnie zakładają, że inne znaczniki HTML mogą mieć wpływ na kodowanie, co prowadzi do nieporozumień. Dlatego istotne jest, aby być świadomym roli znacznika <meta> w kontekście kodowania znaków, zwłaszcza w przypadku języków z diakrytykami, takich jak język polski.

Pytanie 32

Aby utworzyć styl strony responsywnej dla ekranów o szerokości od 600 px do 800 px należy zastosować regułę CSS

A. @media screen and (max-width: 800px) and (min-width: 600px){/*style css*/}
B. @media screen (min-width: 800px) and (max-width: 600px){/*style css*/}
C. @media (min-width: 800px){/*style css*/}
D. @media (max-width: 800px) (min-width: 600px){/*style css*/}
W tym zadaniu cała trudność kręci się wokół poprawnego zapisania media queries i zrozumienia, jak działają warunki min-width oraz max-width. Wiele osób intuicyjnie czuje, o co chodzi z responsywnością, ale potyka się na szczegółach składni, a przeglądarka niestety jest bardzo „zero-jedynkowa” i najmniejszy błąd powoduje, że reguła po prostu nie zadziała. Jedno z podejść polega na użyciu tylko min-width, np. @media (min-width: 800px){...}. Taki zapis oznacza jednak: stosuj te style dla szerokości 800 px i większych, czyli w górę, bez żadnej górnej granicy. To jest typowy breakpoint dla większych ekranów, np. laptopów, a nie dla przedziału 600–800 px. To nie jest logicznie to, o co chodziło w pytaniu, bo nie ma tu żadnego ograniczenia od góry. Inny typ błędu to próba połączenia max-width i min-width bez słowa and, jak w @media (max-width: 800px) (min-width: 600px){...}. Taka składnia jest po prostu niepoprawna z punktu widzenia specyfikacji CSS – między warunkami musi wystąpić operator logiczny and, not lub only. Bez tego parser traktuje zapis jako błąd, więc reguła zostanie zignorowana. Kolejna pułapka to pomieszanie kolejności i logiki warunków, np. @media screen (min-width: 800px) and (max-width: 600px){...}. Tutaj po pierwsze brakuje and po słowie screen, więc typ medium nie jest poprawnie połączony z warunkami, a po drugie zakres jest nielogiczny: min-width: 800px i max-width: 600px tworzą zestaw warunków, którego żaden ekran nie spełni, bo nie może mieć jednocześnie szerokości co najmniej 800 px i maksymalnie 600 px. W praktyce oznacza to media query, które nigdy się nie aktywuje. To zresztą typowy błąd: ktoś zna pojęcia min i max, ale nie zastanawia się nad realnym przedziałem wartości. Dobra praktyka w responsywnym projektowaniu to zawsze sprawdzić: czy zakres ma sens matematyczny, czy składnia zawiera wszystkie konieczne słowa kluczowe (screen, and), oraz czy zapis jest spójny z resztą kodu. Wtedy media queries stają się przewidywalne i łatwiejsze do debugowania w narzędziach deweloperskich przeglądarki.

Pytanie 33

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

A. zinterpretowany po stronie serwera
B. skomputeryzowany po stronie użytkownika
C. skomputeryzowany po stronie serwera
D. interpretowany po stronie użytkownika
Odpowiedź "zinterpretowany po stronie serwera" jest poprawna, ponieważ skrypty PHP są przetwarzane na serwerze, a wynik ich działania jest następnie przesyłany do przeglądarki klienta. PHP jest językiem skryptowym, który działa w kontekście serwera, co oznacza, że kod PHP jest wykonywany, a jego wynik (np. HTML, JSON, XML) jest generowany zanim trafi do klienta. W praktyce, gdy użytkownik odwiedza stronę napisanej w PHP, serwer uruchamia skrypt, przetwarza dane, korzysta z baz danych, a następnie zwraca gotowy dokument do przeglądarki. Jest to zgodne z zasadą architektury klient-serwer, w której serwer odpowiada za logikę aplikacji, natomiast klient koncentruje się na prezentacji danych. Przykładowe zastosowanie PHP obejmuje tworzenie dynamicznych stron internetowych, systemów zarządzania treścią (CMS), a także aplikacji webowych, które wymagają interakcji z bazą danych. W branży web developmentu standardem jest używanie PHP w połączeniu z bazami danych MySQL lub PostgreSQL, co czyni go popularnym wyborem dla programistów.

Pytanie 34

W języku SQL do grupy operacji DCL (ang. Data Control Language) należą polecenia:

A. CREATE i DROP
B. GRANT i REVOKE
C. SELECT i INSERT
D. DELETE i UPDATE
W SQL rozróżnienie między DDL, DML i DCL jest kluczowe, bo każdy z tych zestawów poleceń odpowiada za inny obszar pracy z bazą danych. Wiele osób intuicyjnie wrzuca wszystkie komendy „do jednego worka”, a potem trudno jest im zrozumieć, gdzie kończy się manipulacja danymi, a zaczyna zarządzanie uprawnieniami. Data Control Language, czyli DCL, to bardzo wąska, ale ważna grupa poleceń, służąca wyłącznie do kontroli dostępu. W standardowym SQL do DCL zaliczamy praktycznie tylko GRANT i REVOKE. Odpowiedzi typu CREATE i DROP są kuszące, bo też brzmią „administracyjnie”, ale to już inna kategoria – DDL (Data Definition Language). CREATE, ALTER, DROP czy TRUNCATE służą do definiowania i modyfikowania struktury bazy: tworzą tabele, widoki, indeksy, usuwają obiekty. One nie zarządzają prawami użytkowników, tylko tym, jakie obiekty w ogóle istnieją. To, że często wykonuje je administrator, nie znaczy jeszcze, że należą do DCL. Z kolei SELECT, INSERT, UPDATE, DELETE to klasyczne DML (Data Manipulation Language). Te polecenia działają na rekordach: odczytują dane, dodają nowe wiersze, modyfikują istniejące, usuwają je. Typowy błąd myślowy polega na tym, że ktoś myśli: skoro DELETE usuwa dane, to trochę jak „kontrola”, więc może DCL. Niestety nie – DELETE w ogóle nie dotyka uprawnień, ono po prostu kasuje rekordy, o ile użytkownik już ma odpowiednie prawa. Dopiero DCL decyduje, czy użytkownik może wykonać DELETE na danej tabeli. To subtelne, ale bardzo ważne rozróżnienie. Moim zdaniem warto zapamiętać prosty schemat: DDL – struktura, DML – dane, DCL – uprawnienia. Wtedy łatwiej od razu skojarzyć, że tylko GRANT i REVOKE pasują do kategorii Data Control Language, a reszta odpowiedzi dotyczy zupełnie innych warstw pracy z bazą.

Pytanie 35

Selektor CSS a:link {color:red} w arkuszach stylów nazywanych kaskadowymi określa

A. pseudoelement.
B. pseudoklasę.
C. klasę.
D. identyfikator.
Pseudoklasa CSS to specjalny rodzaj selektora, który pozwala na stylizację elementów na podstawie ich stanu lub kontekstu w dokumencie HTML. Zapis 'a:link' wskazuje, że stylizacja dotyczy linków, które jeszcze nie zostały odwiedzone przez użytkownika. Przykładowo, w tym przypadku 'color:red' ustawia kolor tekstu linku na czerwony. Użycie pseudoklas jest zgodne z dobrymi praktykami, ponieważ pozwala na tworzenie bardziej dynamicznych i responsywnych interfejsów użytkownika, poprawiając jednocześnie doświadczenia użytkowników. Warto również zaznaczyć, że w CSS istnieją inne pseudoklasy, takie jak ':hover' czy ':active', które umożliwiają stylizację elementów w różnych interakcjach z użytkownikiem. Dzięki nim możemy na przykład zmieniać kolor linku, gdy użytkownik na niego najedzie myszką, co zwiększa przejrzystość i użyteczność strony. Używanie pseudoklas jest nie tylko praktyczne, ale także zalecane w dokumentacji CSS, co przyczynia się do lepszego zarządzania i organizacji kodu.

Pytanie 36

Uprawnienia obiektowe przyznawane użytkownikom serwera bazy danych mogą umożliwiać lub ograniczać

A. wykonywać polecenia, takie jak tworzenie kopii zapasowej
B. zmieniać role i konta użytkowników
C. przechodzić uprawnienia
D. realizować operacje na bazie, takie jak wstawianie lub modyfikowanie danych
Uprawnienia obiektowe w kontekście baz danych pozwalają na kontrolowanie dostępu do różnych zasobów, takich jak tabele, widoki czy procedury składowane. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie czy modyfikowanie danych, jest prawidłowa, ponieważ uprawnienia te bezpośrednio wpływają na możliwości użytkownika w zakresie manipulacji danymi. Przykładowo, jeśli użytkownik posiada uprawnienie do INSERT, może dodawać nowe rekordy do tabeli, natomiast uprawnienie UPDATE pozwala na zmianę istniejących danych. Takie zarządzanie uprawnieniami jest kluczowe w kontekście bezpieczeństwa danych oraz zapewnienia integralności systemu, ponieważ pozwala na ograniczenie dostępu tylko do tych operacji, które są niezbędne dla danego użytkownika. W praktyce administratorzy baz danych stosują zasady minimalnych uprawnień, przyznając użytkownikom tylko te uprawnienia, które są niezbędne do wykonywania ich pracy, co jest zgodne z najlepszymi praktykami w zakresie zarządzania bezpieczeństwem baz danych.

Pytanie 37

Jakiego typu danych w bazie MySQL należy używać, aby zapisać datę oraz czas w jednym polu?

A. DATE
B. BOOLEAN
C. YEAR
D. TIMESTAMP
Typ danych TIMESTAMP w MySQL jest idealnym wyborem do przechowywania zarówno daty, jak i czasu w jednym polu, co czyni go bardzo funkcjonalnym w kontekście aplikacji wymagających ścisłej kontroli nad czasem zdarzeń. TIMESTAMP przechowuje datę i czas jako liczbę sekund, które upłynęły od 1 stycznia 1970 roku, co pozwala na łatwe manipulowanie danymi związanymi z czasem, jak obliczanie różnic między datami czy sortowanie po czasie. Przykładowo, w aplikacjach takich jak systemy rezerwacji, gdzie istotne jest nie tylko kiedy coś zostało zarezerwowane, ale również czas rezerwacji, użycie TIMESTAMP umożliwia efektywne zarządzanie danymi. Dodatkowo, TIMESTAMP automatycznie aktualizuje się, gdy rekord jest zmieniany, co jest niezwykle przydatne w kontekście audytów i monitorowania historii zmian w danych. Warto również zauważyć, że TIMESTAMP w MySQL obsługuje strefy czasowe, co czyni go bardziej uniwersalnym w międzynarodowych zastosowaniach. W standardach branżowych dobre praktyki wskazują na używanie TIMESTAMP dla operacji wymagających ścisłej synchronizacji czasowej oraz tam, gdzie istotna jest informacja o czasie zdarzenia.

Pytanie 38

Wybierz prawidłowy sposób umieszczania komentarzy w kodzie źródłowym HTML

A. /* informacje komentarza */
B. <!-- informacje komentarza -->
C. "" informacje komentarza ""
D. -- informacje komentarza --
Komentarze w HTML mają swoją bardzo konkretną składnię i to jest coś, czego przeglądarka trzyma się dość sztywno. Wiele osób myli tu różne języki i przenosi nawyki z innych technologii. Na przykład zapis w stylu -- informacje komentarza -- wygląda trochę jak fragment właściwego komentarza, bo są myślniki, ale brakuje kluczowych elementów: otwierającego ciągu <!-- i zamykającego -->. Bez tych znaków przeglądarka potraktuje taki tekst po prostu jako zwykłą treść strony lub wręcz jako błędny fragment kodu, co może rozwalić strukturę dokumentu. Taki zapis nie jest nigdzie opisany w specyfikacji HTML, więc po prostu nie działa jako komentarz. Z kolei zapis /* informacje komentarza */ pochodzi z zupełnie innego świata – to składnia komentarzy w CSS, w JavaScript (dla komentarza blokowego), w wielu językach programowania typu C, Java, PHP. I tu pojawia się typowy błąd: ktoś zna już programowanie, więc „z przyzwyczajenia” używa tych samych komentarzy w HTML. Niestety HTML nie jest językiem programowania, tylko językiem znaczników i ma własne zasady. Przeglądarka zignoruje /* */ jako komentarz HTML, a jeśli w środku będą jakieś znaki specjalne, może to nawet powodować dziwne efekty w wyświetlaniu. Podobnie zapis w cudzysłowach, czyli "" informacje komentarza "", jest po prostu tekstem w cudzysłowie. W HTML takie coś może się pojawić np. jako wartość atrybutu, ale na pewno nie jako komentarz. Przeglądarka to normalnie wyświetli, bo nie ma żadnego powodu, żeby to ukrywać. Typowy błąd myślowy jest tu taki, że skoro komentarz to „coś, czego użytkownik nie widzi”, to wystarczy „jakoś to oznaczyć”. Niestety, w technologiach webowych nie działa „jakoś”, tylko dokładnie to, co przewiduje standard. Jedyną poprawną formą komentarza w HTML jest <!-- treść komentarza -->. Warto to sobie dobrze utrwalić, bo mieszanie składni z CSS, JavaScriptu czy języków backendowych w HTML prowadzi do trudnych do wykrycia błędów i nieczytelnego kodu.

Pytanie 39

Rezultatem realizacji zaprezentowanego kodu PHP jest wyświetlenie wartości

Ilustracja do pytania
A. 14
B. 47
C. 147
D. 136
W pytaniu testowym dotyczącym przedstawionego kodu PHP niektóre odpowiedzi mogą wydawać się intuicyjnie poprawne jednak takie podejście często prowadzi do błędów. Kod PHP wykorzystuje pętlę for która jest formą kontrolowanej iteracji. Rozpoczyna się ona od ustalenia pierwszej wartości zmiennej kontrolnej $i na 1 a pętla kontynuuje swoją pracę tak długo jak długo warunek $i <= 7 jest spełniony. Każdorazowo $i zwiększa się o 3. Niewłaściwe zrozumienie tego mechanizmu może prowadzić do niepoprawnych estymacji wyniku zwłaszcza gdy nie analizuje się kolejnych wyrazów ciągu. Pierwsza wartość to 1 następnie 4 i kończy się na 7. Częstym błędem jest przeoczenie faktu że $i zwiększa się o 3 w każdej iteracji co może skutkować błędnym założeniem że pętla iteruje po wszystkich liczbach od 1 do 7 bezpośrednio. Innym częstym błędem jest błędne odczytanie wyników jako sumy wartości co wynika z niepełnej interpretacji działania funkcji print w kontekście pętli. Warto podkreślić że język PHP w kontekście iteracji wymaga szczególnej uwagi w interpretacji warunków sterujących co jest kluczowe dla prawidłowego działania aplikacji w środowisku produkcyjnym. Unikanie tych błędów wymaga zrozumienia podstawowych zasad działania pętli i dokładnego śledzenia logiki programu co jest esencją programowania proceduralnego i imperatywnego w PHP. To podejście zapobiega prostym błędom logicznym które mogą prowadzić do nieoczekiwanych rezultatów w bardziej złożonych aplikacjach webowych i skryptach.

Pytanie 40

Jaką instrukcję w JavaScript można uznać za równoważną pod względem funkcjonalności do zaprezentowanej?

Ilustracja do pytania
A. Kod 3
B. Kod 4
C. Kod 2
D. Kod 1
W przypadku analizy niepoprawnych odpowiedzi, ważne jest zrozumienie błędnych koncepcji, które mogą prowadzić do błędnych wniosków. W Kodzie 1 błędnie zastosowano mechanizm else, który prowadzi do tego, że ostatnia operacja jest wykonywana zawsze, gdy żaden poprzedni warunek nie jest spełniony. Może to prowadzić do nieprzewidywalnych wyników, jeśli wartość 'dzialanie' nie pasuje do żadnego z przypadków. Kod 3, z użyciem operatora !=, nie zapewnia prawidłowego działania, gdyż realizuje wszystkie operacje niezależnie od wartości 'dzialanie', co jest sprzeczne z zamiarem instrukcji switch. To powszechny błąd, gdzie brak pełnego zrozumienia logiki warunkowej prowadzi do pomyłek w implementacji. Z kolei, Kod 4 ma poprawną strukturę if-else if, ale różni się od poprawnej odpowiedzi nadmiarem zagnieżdżonych warunków, co może wprowadzać niepotrzebne komplikacje i zwiększać czas wykonania. Zrozumienie błędów w logice warunkowej jest kluczowe do pisania efektywnego i poprawnego kodu, co jest fundamentalne w programowaniu aplikacji o wysokiej niezawodności. Kluczem do unikania takich błędów jest praktyka i głębokie zrozumienie struktury danych oraz logiki w programowaniu.