Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 23 kwietnia 2026 12:57
  • Data zakończenia: 23 kwietnia 2026 13:15

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

Przedstawiony kod PHP nawiązuje połączenie z serwerem bazy danych. Jakiego typu operacje powinny się znaleźć w instrukcji warunkowej w miejscu trzech kropek?
$db = mysqli_connect("localhost", "root", "qwerty", "baza1");
if (!$db) {
...
}

A. Zamknięcie połączenia z bazą danych
B. Obsługa błędu połączenia
C. Informacja o udanym połączeniu z bazą
D. Obsługa danych uzyskanych z bazy
Zamknięcie bazy danych w kontekście nieudanego połączenia jest koncepcją, która nie ma sensu. Jeśli połączenie się nie uda, to nie ma nawet nawiązanej sesji, która mogłaby być zamknięta. Połączenie z bazą danych powinno być zamykane tylko w momencie, gdy zostało nawiązane i jest już niepotrzebne, a nie w przypadku, gdy wystąpił błąd w trakcie łączenia. Komunikat o pomyślnym połączeniu także nie ma zastosowania w tej sytuacji, ponieważ, skoro połączenie się nie udało, nie ma podstaw do informowania użytkownika o jego powodzeniu. Obsługa danych pobranych z bazy również nie ma miejsca, jeśli połączenie nie zostało ustanowione, co czyni te odpowiedzi błędnymi. Właściwe podejście w takich sytuacjach to zawsze najpierw sprawdzenie, czy połączenie zostało nawiązane, a następnie działania w przypadku usunięcia błędu. Ignorowanie tej zasady może prowadzić do nieprzewidzianych zachowań aplikacji, a nawet do wycieków danych lub awarii serwerów.

Pytanie 2

W SQL, który jest używany przez bazę danych MySQL w tabeli samochody, aby przypisać wartość 0 do kolumny przebieg, trzeba skorzystać z zapytania

A. UPDATE przebieg SET 0 FROM samochody;
B. UPDATE przebieg SET 0 TABLE samochody;
C. UPDATE samochody SET przebieg=0;
D. UPDATE samochody SET przebieg VALUE 0;
Pierwsza z błędnych odpowiedzi sugeruje kwerendę 'UPDATE przebieg SET 0 FROM samochody', która jest niepoprawna ze względu na niewłaściwą składnię. W SQL nie stosuje się słowa kluczowego 'FROM' w tym kontekście, ponieważ UPDATE działa na zaktualizowanej tabeli bez potrzeby określania źródła danych, co w tym przypadku jest zbędne. Kolejna niepoprawna odpowiedź 'UPDATE przebieg SET 0 TABLE samochody' również łamie zasady składni SQL, ponieważ użycie słowa 'TABLE' w tym kontekście jest zbędne i niezgodne z konwencją. SQL nie wymaga ani nie pozwala na takie sformułowanie kwerendy. Ostatnia błędna propozycja 'UPDATE samochody SET przebieg VALUE 0' błędnie używa słowa kluczowego 'VALUE'. W SQL używamy 'SET' do przypisywania wartości, a nie 'VALUE', co jest konstrukcją z innych języków programowania. Prawidłowa forma to 'SET kolumna=nowa_wartość'. Każda z tych odpowiedzi pokazuje istotne nieporozumienia dotyczące podstawowych zasad składni SQL, co podkreśla znaczenie nauki i praktyki w pracy z bazami danych.

Pytanie 3

Etap, w którym identyfikuje się oraz eliminuje błędy w kodzie źródłowym programów, to

A. debugowanie
B. normalizacja
C. standaryzacja
D. kompilowanie
Debugowanie to proces identyfikacji, analizy i eliminacji błędów w kodzie źródłowym programów komputerowych. Jest to kluczowy etap w cyklu życia oprogramowania, który zapewnia, że aplikacje działają zgodnie z założeniami projektowymi. W praktyce debugowanie może obejmować różne techniki, takie jak stosowanie punktów przerwania, śledzenie wartości zmiennych czy analiza stosu wywołań. Przykładowo, programista może użyć narzędzi debugujących, takich jak GDB dla programów w C/C++ lub wbudowane debugery w IDE, takie jak Visual Studio czy Eclipse. Debugowanie jest również związane z dobrymi praktykami, jak testowanie jednostkowe i integracyjne, które pozwalają na wczesne wykrycie błędów. Zrozumienie i umiejętność efektywnego debugowania jest niezbędna dla każdego programisty, aby tworzyć wysokiej jakości, niezawodne i wydajne oprogramowanie. Warto również podkreślić znaczenie dokumentacji oraz korzystania z systemów kontroli wersji, takich jak Git, które pozwalają śledzić zmiany w kodzie i ułatwiają proces debugowania.

Pytanie 4

Wskaż właściwą zasadę związaną z integralnością danych w bazie danych?

A. pole klucza obcego nie może być puste
B. w relacji 1..n pole klucza obcego łączy się z polem klucza obcego innej tabeli
C. pole klucza podstawowego nie może pozostawać puste
D. pole klucza podstawowego musi mieć utworzony indeks
Niepoprawne odpowiedzi wskazują na niewłaściwe zrozumienie zasad spójności danych w kontekście relacyjnych baz danych. Pole klucza obcego, które powinno być używane do tworzenia powiązań między różnymi tabelami, może być puste w przypadku, gdy dany rekord nie odnosi się do innego. Na przykład, w systemie zarządzania zamówieniami, pole klucza obcego, które łączy tabelę zamówień z tabelą klientów, może być puste, jeśli zamówienie jest anonimowe lub tymczasowe. Istotne jest, aby zrozumieć, że klucz obcy nie zawsze musi wskazywać na obiekt zależny, co pozwala na większą elastyczność w projektowaniu bazy danych. Odpowiedzi, które sugerują, że klucz podstawowy musi mieć utworzony indeks lub że w relacji 1..n klucz obcy jest połączony z kluczem obcym innej tabeli, również są mylne. Indeksowanie klucza podstawowego jest praktyką zalecaną, ale nie jest to obowiązkowe z punktu widzenia definicji klucza. Klucz obcy jest używany do ustanawiania relacji i nie musi być połączony z innym kluczem obcym, a może wskazywać tylko na klucz podstawowy innej tabeli. Te nieporozumienia mogą prowadzić do błędnego projektowania bazy danych, co w dłuższej perspektywie wpływa na wydajność, integralność oraz bezpieczeństwo danych.

Pytanie 5

Kod       SELECT imie, pesel, wiek FROM dane WHERE wiek IN (18,30) spowoduje wybranie

A. imion, nazwisk i numerów PESEL osób młodszych niż 18 lat
B. imion, numerów PESEL i wieku osób, które mają 18 lub 30 lat
C. imion, numerów PESEL oraz wieku ludzi mających ponad 30 lat
D. imion, numerów PESEL oraz wieku osób w przedziale 18 do 30 lat
Pierwsza odpowiedź, która wskazuje na osoby poniżej 18 lat, jest błędna. To zapytanie SQL nie ma na celu wybrania młodszych; przecież filtruje tych, którzy mają 18 lub 30 lat. Co do drugiej odpowiedzi, to sugeruje, jakoby zapytanie wybierało osoby w przedziale od 18 do 30, co też jest pomyłką. Operator IN wskazuje konkretne liczby, a nie przedzial, dlatego w tym przypadku wiek pośredni nie ma miejsca. Trzecia odpowiedź, dotycząca osób powyżej 30 lat, kompletnie nie pasuje, bo nie dotyczy tego, co jest w zapytaniu. Właściwie to nie ma związku między tą składnią SQL a osobami, które mają więcej niż 30 lat. Każda z tych odpowiedzi wynika z niepoprawnego zrozumienia, jakie jest intencja zapytania, które jasno wybiera osoby tylko w dwóch podanych przedziałach. Myślę, że ważne jest, żeby dobrze rozumieć, jak działają operatory w SQL, żeby unikać takich pomyłek i nieporozumień.

Pytanie 6

Który z wymienionych formatów umożliwia zapisanie materiału wideo z towarzyszącą ścieżką dźwiękową?

A. AAC
B. MP4
C. WAV
D. WMA
Odpowiedź MP4 jest poprawna, ponieważ jest to jeden z najpopularniejszych formatów kontenerowych używanych do przechowywania wideo wraz z dźwiękiem. Format MP4 (MPEG-4 Part 14) pozwala na efektywne kodowanie wideo, przy jednoczesnym zachowaniu wysokiej jakości obrazu i dźwięku. Umożliwia on przechowywanie różnorodnych strumieni danych, w tym wideo, audio, a także tekstu, co czyni go bardzo wszechstronnym rozwiązaniem dla twórców multimediów. Przykładowo, format MP4 jest często używany w aplikacjach do strumieniowania wideo, takich jak YouTube, oraz w systemach zarządzania treścią (CMS) do publikacji materiałów wideo w Internecie. Dzięki kompresji zgodnej z kodekiem H.264 dla wideo i AAC dla audio, pliki MP4 są względnie małe, co ułatwia ich przesyłanie i przechowywanie. To czyni format MP4 standardem branżowym w produkcji filmowej, telewizyjnej oraz w aplikacjach mobilnych i webowych.

Pytanie 7

Jednym z kluczowych identyfikatorów wpisu w bazie danych jest pole

A. relacji
B. klucza podstawowego
C. numeryczne
D. klucza obcego
Klucz podstawowy jest fundamentalnym elementem każdej relacyjnej bazy danych, ponieważ jednoznacznie identyfikuje każdy rekord w tabeli. Jego główną cechą jest unikalność, co oznacza, że żaden z rekordów w tabeli nie może mieć tego samego klucza podstawowego. Klucz podstawowy może składać się z jednego lub więcej atrybutów (kolumn), ale zawsze musi zapewniać jednoznaczność identyfikacji. Przykładem może być tabela 'Użytkownicy', gdzie 'ID_Użytkownika' działa jako klucz podstawowy, pozwalając na łatwe i szybkie wyszukiwanie konkretnych użytkowników. Zgodnie z najlepszymi praktykami projektowania baz danych, klucze podstawowe powinny być stabilne i niezmienne w czasie, aby uniknąć komplikacji związanych z aktualizacją wartości. Klucz podstawowy jest również kluczowy dla relacji między tabelami, ponieważ inne tabele mogą odwoływać się do niego poprzez klucze obce. Dzięki temu, struktura bazy danych staje się bardziej zorganizowana i lepiej znormalizowana, co z kolei prowadzi do zwiększonej wydajności i integralności danych.

Pytanie 8

Który z linków ma prawidłową budowę?

A. <a href='mailto:adres'> tekst </a>
B. <a href="mailto:adres"> tekst </a>
C. <a href="http://adres"> tekst <a>
D. <a href='http://adres'> tekst </a>
Odpowiedzi, które nie spełniają standardów HTML, prowadzą do niepoprawnych wyników. Na przykład, użycie pojedynczych cudzysłowów w atrybucie href, jak w konstrukcji <a href='mailto:adres'> tekst </a>, choć działa w wielu przeglądarkach, nie jest zgodne z zaleceniami HTML5, które preferują podwójne cudzysłowy. Ten błąd może prowadzić do problemów z interpretacją przez parsery HTML, a w ekstremalnych przypadkach może uniemożliwić poprawne wyświetlanie odsyłaczy. Dodatkowo, ostatnia odpowiedź <a href="http://adres"> tekst <a> jest błędna, ponieważ nie zamyka znacznika <a>, co skutkuje usunięciem semantycznego znaczenia linku i może prowadzić do problemów z dostępnością oraz indeksowaniem przez wyszukiwarki. Tego typu błędy są często wynikiem niedbałości lub braku zrozumienia podstaw HTML. Poprawna konstrukcja odsyłaczy jest kluczowa w budowaniu dostępnych stron internetowych, które są łatwe do nawigacji i interpretacji przez różne urządzenia i technologie asystujące. Przykłady błędów w HTML mogą również prowadzić do frustracji użytkowników, którzy mogą mieć problemy z interakcją z witryną, co w efekcie wpływa na ich postrzeganie jakości i profesjonalizmu danej strony.

Pytanie 9

W języku SQL, aby dodać atrybut klucza podstawowego do pola id w istniejącej tabeli produkt należy użyć składni

A. ALTER TABLE produkt ADD PRIMARY KEY (id)
B. ALTER TABLE produkt DROP PRIMARY KEY
C. ALTER TABLE produkt DROP CONSTRAINT id
D. ALTER TABLE produkt ALTER COLUMN id INT
Poprawna składnia to ALTER TABLE produkt ADD PRIMARY KEY (id), bo dokładnie to polecenie dodaje do istniejącej tabeli nowy klucz podstawowy oparty na kolumnie id. Instrukcja ALTER TABLE służy do modyfikowania struktury tabeli, a klauzula ADD PRIMARY KEY definiuje ograniczenie (constraint) typu klucz podstawowy dla wskazanej kolumny lub zestawu kolumn. W praktyce oznacza to, że kolumna id musi być unikalna i nie może przyjmować wartości NULL. Silnik bazy danych (np. MySQL, PostgreSQL, SQL Server) zwykle tworzy do tego indeks typu UNIQUE, który przyspiesza wyszukiwanie po kluczu głównym. Moim zdaniem warto pamiętać, że takie polecenie będzie działać tylko wtedy, gdy dane w kolumnie id już spełniają warunki klucza podstawowego: brak duplikatów i brak wartości pustych. W realnym projekcie często robi się to w dwóch krokach: najpierw uzupełnia się brakujące wartości, usuwa lub poprawia duplikaty, a dopiero potem dodaje PRIMARY KEY. Przykładowo: ALTER TABLE produkt ADD PRIMARY KEY (id); W wielu systemach, zwłaszcza w aplikacjach webowych, kolumna id jest też często ustawiana jako AUTO_INCREMENT (MySQL) lub używa sekwencji (PostgreSQL, Oracle). Wtedy definicja tabeli przy tworzeniu może wyglądać np. tak: CREATE TABLE produkt (id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(100)); Jeśli jednak tabela już istnieje i kolumna id była zwykłą kolumną, to właśnie ALTER TABLE ... ADD PRIMARY KEY (id) jest standardowym, poprawnym sposobem nadania jej roli klucza głównego. To rozwiązanie jest zgodne z ogólną składnią SQL i dobrą praktyką modelowania relacyjnych baz danych, gdzie każda tabela powinna mieć jasno zdefiniowany klucz podstawowy, najlepiej prosty, stabilny i jednoznaczny.

Pytanie 10

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return dodaj()">dodaj</button>
B. <button onclick="return oblicz()">dodaj</button>
C. <button onselect="return dodaj()">oblicz</button>
D. <button onselect="return dodaj()">dodaj</button>
Gratulacje, wybrałeś poprawną odpowiedź. Przycisk w JavaScript jest aktywowany poprzez zdarzenie onclick, które jest wyzwalane po kliknięciu przycisku. Właściwość onclick jest jednym z wielu zdarzeń w JavaScript, które są używane do obsługi interakcji użytkownika. Kiedy użytkownik kliknie przycisk, zdarzenie onclick jest wywoływane i kod zawarty w tym zdarzeniu jest wykonany. W tym przypadku, kod to 'return dodaj()', co oznacza, że funkcja 'dodaj' jest wywoływana. Ta funkcja została zdefiniowana w skrypcie JavaScript i realizuje dodawanie dwóch liczb. Zdarzenie onclick jest często używane w praktycznych zastosowaniach, takich jak przyciski subskrybcji, przyciski do logowania czy przyciski do przesyłania formularzy. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają utrzymanie interakcji użytkownika w kodzie JavaScript zamiast HTML.

Pytanie 11

Jakie oznaczenie w języku PHP wskazuje na komentarz wieloliniowy?

A. /* */
B. <!-- -->
C. //
D. #
Komentarze wieloliniowe w języku PHP definiuje zapis /* */. Umożliwia on umieszczanie dłuższych opisów lub wyjaśnień w kodzie, które są ignorowane przez interpreter PHP. Użycie tego typu komentarzy jest szczególnie przydatne w sytuacjach, kiedy chcemy opisać złożone fragmenty kodu lub zablokować dużą ilość kodu w czasie testowania. Przykładem może być zasłonięcie sekcji kodu, która nie jest aktualnie potrzebna: /* echo 'To jest test'; */. Warto pamiętać, że komentarze powinny być używane do poprawy czytelności kodu, co jest zgodne z dobrą praktyką programistyczną. Zaleca się również stosowanie komentarzy w sposób przemyślany, aby nie tworzyć nadmiernej ilości niepotrzebnych informacji, co mogłoby wprowadzać chaos w projekcie. W PHP można także łączyć różne typy komentarzy, co pozwala na elastyczne i czytelne dokumentowanie kodu.

Pytanie 12

Kod PHP z fragmentem ```if(empty($_POST["name"])){ $nameErr = "Name is required"; }``` służy do obsługi

A. sesji
B. bazy danych
C. ciasteczek
D. formularza
Przedstawiony fragment kodu PHP sprawdza, czy w przesłanym formularzu (metodą POST) zawartość pola 'name' jest pusta. Jeśli tak, ustawia zmienną $nameErr z komunikatem "Name is required", co oznacza, że pole imienia jest wymagane. Tego typu walidacja jest kluczowym elementem przy pracy z formularzami, ponieważ pozwala na zapewnienie, że użytkownik dostarcza wszystkie niezbędne dane przed ich przetworzeniem. W praktyce, walidacja po stronie serwera jest niezbędna dla bezpieczeństwa aplikacji oraz poprawności danych, które są później przetwarzane i przechowywane w bazie danych. Standardy branżowe sugerują, aby każdy formularz miał walidację zarówno po stronie klienta (JavaScript), jak i serwera (PHP), aby minimalizować ryzyko nieprawidłowych danych i ataków, takich jak SQL Injection. Przykładowo, w formularzach rejestracyjnych i logowania, walidacja pól takich jak imię, email czy hasło jest powszechną praktyką, aby poprawić doświadczenie użytkownika oraz bezpieczeństwo aplikacji.

Pytanie 13

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

A. identyfikator.
B. klasę.
C. pseudoklasę.
D. pseudoelement.
Wybór odpowiedzi związanej z klasą, identyfikatorem lub pseudoelementem nie uwzględnia kluczowej różnicy między tymi pojęciami a pseudoklasami. Klasa w CSS definiuje grupę elementów, które mają wspólne cechy stylistyczne, natomiast identyfikator jest unikalny dla jednego elementu na stronie i powinien być używany tylko raz. Klasy i identyfikatory są przypisywane za pomocą atrybutów 'class' i 'id' w HTML, co czyni je bardziej statycznymi, podczas gdy pseudoklasy odnoszą się do konkretnego stanu elementu, co wprowadza element dynamiki. Pseudoelementy, takie jak '::before' lub '::after', również różnią się, ponieważ pozwalają na stylizację części elementu, a nie jego całego stanu. Typowe błędy myślowe związane z myleniem tych pojęć wynikają często z braku zrozumienia, jak działa kaskadowość i dziedziczenie w CSS. Kluczowe jest zrozumienie, że pseudoklasy są narzędziem do reakcji na interakcje użytkownika, co pozwala na bardziej zaawansowane i intuicyjne projektowanie stron internetowych. Ignorowanie tych różnic prowadzi do nieefektywnego stylowania i może obniżać jakość interfejsów użytkownika.

Pytanie 14

Jaką wartość zwróci algorytm? ```Z = 0 N = 1 dopóki Z < 3: N = N * 2 + 1 Z = Z + 1 wypisz N```

A. 3
B. 5
C. 7
D. 15
Wartości 3, 5 oraz 7 są wynikiem błędnej interpretacji działania algorytmu. Często zdarza się, że osoby podchodzące do analizy pętli zapominają o kluczowej roli każdej iteracji oraz o tym, jak zmieniają się wartości zmiennych wewnątrz pętli. W przypadku odpowiedzi 3, można by pomyśleć, że program wyliczy wartość N po pierwszej iteracji, co jest niewłaściwe, ponieważ algorytm kontynuuje swoje działanie do momentu, aż Z osiągnie wartość 3. Odpowiedź 5 wynika z błędnego założenia, że algorytm kończy się po drugiej iteracji, co również jest mylne, ponieważ algorytm jest zaprojektowany do wykonania trzech iteracji. Z kolei wartość 7 może wydawać się logiczna po drugiej iteracji, jednak jest to kolejny przypadek niewłaściwego zrozumienia działania pętli. Kluczowym błędem myślowym jest niezdolność do dostrzegania, że zmienne są aktualizowane w każdej iteracji, a algorytm nie kończy się na pierwszej, czy drugiej, ale działa do momentu spełnienia warunku dla Z. Zrozumienie tego mechanizmu jest niezbędne w programowaniu, szczególnie podczas pracy z algorytmami iteracyjnymi, gdzie każda zmiana zmiennych wpływa na dalszy przebieg programu.

Pytanie 15

Jakie zapytanie należy użyć, aby wyświetlić tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
B. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
C. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
D. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
Odpowiedź SELECT imie nazwisko ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id jest trafna, bo korzysta z dobrej składni dołączenia tabel w SQL. Dzięki temu wyciągasz tylko te kolumny, które są Ci potrzebne. W tym przypadku, używając JOIN, łączysz tabele Mieszkancy i Adresy na podstawie odpowiednich kluczy, co dobrze odpowiada zasadom baz danych. Klucz obcy Adresy_id w tabeli Mieszkancy wskazuje na id w tabeli Adresy, co jest super ważne, bo zapewnia, że dane są spójne. To zapytanie pokazuje, jak optymalizować SQL, bo ogranicza wybór do niezbędnych kolumn (imie, nazwisko, ulica), co zmniejsza obciążenie bazy i przyspiesza wyrzucanie wyników. W praktyce takie podejście jest fajne do efektywnego zarządzania danymi w relacyjnych bazach. Dobrze jest mieć w głowie, jak używać JOIN oraz wybierać konkretne kolumny, bo to naprawdę pomaga w pisaniu bardziej zrozumiałych i wydajnych zapytań, co jest przydatne w pracy zawodowej.

Pytanie 16

W przypadku podanego fragmentu kodu walidator HTML zgłosi błąd, ponieważ <img src="kwiat.jpg alt="kwiat">

A. użyto niewłaściwego znacznika do wyświetlenia obrazu
B. zastosowano nieznany atrybut alt
C. nie zamknięto cudzysłowu
D. brak obrazu kwiat.jpg
W przedstawionym kodzie HTML występuje błąd związany z niedomknięciem cudzysłowu dla atrybutu 'src'. Prawidłowa składnia powinna wyglądać następująco: <img src="kwiat.jpg" alt="kwiat">. Brak cudzysłowu po 'kwiat.jpg' uniemożliwia poprawne zinterpretowanie kodu przez przeglądarki, co skutkuje błędem walidacji. Zasady walidacji kodu HTML są zgodne z wytycznymi W3C, które zalecają, aby każdy atrybut był zamknięty cudzysłowem. Poprawność kodu nie tylko wpływa na jego działanie, ale również na dostępność strony oraz SEO. Użytkownicy, którzy poruszają się po stronach bez pełnej obsługi HTML, mogą napotkać problemy z wyświetlaniem obrazów. W praktyce, zawsze warto stosować dobregi praktyki kodowania, takie jak użycie linterów do sprawdzania poprawności kodu przed jego publikacją, aby uniknąć takich błędów.

Pytanie 17

W tabeli podzespoly należy zaktualizować wartość pola URL na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent to TOSHIBA. W języku SQL ta zmiana będzie wyglądała następująco

A. UPDATE podzespoly SET URL='toshiba.pl';
B. UPDATE podzespoly.producent='TOSHIBA' SET URL='toshiba.pl';
C. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
D. UPDATE producent='TOSHIBA' SET URL='toshiba.pl';
Odpowiedź ta jest prawidłowa, ponieważ poprawnie wykorzystuje składnię języka SQL do aktualizacji danych w tabeli. W instrukcji UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA'; najpierw wskazujemy tabelę, w której chcemy dokonać zmian, czyli 'podzespoly'. Następnie używamy klauzuli SET, aby zdefiniować nową wartość pola URL, a klauzula WHERE precyzuje, które rekordy mają zostać zaktualizowane, w tym przypadku te, gdzie producent to 'TOSHIBA'. To podejście jest zgodne z dobrymi praktykami, ponieważ stosowanie klauzuli WHERE zapobiega masowym aktualizacjom, które mogą prowadzić do niezamierzonych zmian w danych. Przykładowo, jeśli chcielibyśmy zaktualizować tylko określoną grupę produktów, klauzula WHERE pozwala na precyzyjne określenie zakresu zmian. Wprowadzenie takiej modyfikacji w bazie danych, z uwzględnieniem warunków, minimalizuje ryzyko błędów i poprawia integralność danych.

Pytanie 18

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

A. jednorodnym
B. hierarchicznym
C. relacyjnym
D. sieciowym
No więc, wybór modelu sieciowego mija się z celem, bo ten model opiera się na strukturze grafik, gdzie dane są przechowywane z różnymi relacjami między sobą. Model sieciowy pozwala na tworzenie bardziej skomplikowanych więzi niż te w modelu jednorodnym, co jest fajne w systemach, które potrzebują lepszego zarządzania danymi. A model relacyjny też tu nie pasuje, bo on działa na relacjach między tabelami i wykorzystuje klucze do łączenia danych z różnych tabel – to już jest przeciwieństwo modelu jednorodnego. Model hierarchiczny natomiast buduje dane jak drzewo, gdzie każdy element może mieć pod-elementy, co też nie pasuje do prostego modelu jednorodnego. Każdy z tych modeli ma swoje zastosowanie i plusy, ale żaden z nich nie oddaje idei modelu jednorodnego z danymi w jednej tabeli. Warto pamiętać, że dobry wybór modelu danych to klucz do łatwiejszej pracy z bazą, a zrozumienie różnic między nimi naprawdę wpływa na projektowanie systemów informatycznych.

Pytanie 19

Aby zweryfikować konfigurację w pliku php.ini, można uruchomić skrypt PHP, który zawiera zapis

A. <?php echo phpversion(); ?>
B. <?php phpcredits(); ?>
C. <?php phpinfo(); ?>
D. <?php ini_set(); ?>
Wszelkie inne odpowiedzi nie spełniają funkcji dostarczania szczegółowych informacji o konfiguracji PHP w sposób tak kompleksowy jak phpinfo(). Funkcja <?php phpcredits(); ?> dostarcza informacji o autorach PHP oraz licencjach, ale nie ma na celu sprawdzania ustawień konfiguracyjnych. Jest to użyteczne w kontekście edukacyjnym, ale nie w praktyce związanej z konfiguracją. Z kolei <?php ini_set(); ?> jest używana do ustawiania wartości konfiguracyjnych w czasie działania skryptu, a nie do ich podglądania. I choć może być przydatna do dostosowywania środowiska, nie generuje podsumowania obecnych ustawień. Ostatnia odpowiedź, <?php echo phpversion(); ?>, jedynie zwraca wersję PHP, co również jest zbyt ograniczone, aby uzyskać pełny obraz konfiguracyjny. Błędem jest zatem założenie, że wystarczy znać wersję PHP lub autorów, aby prawidłowo skonfigurować środowisko, gdyż kluczowe są szczegóły dotyczące ustawień. Zrozumienie tych różnić jest kluczowe dla efektywnego zarządzania środowiskiem PHP i unikania problemów, które mogą wynikać z nieodpowiednich konfiguracji.

Pytanie 20

Najłatwiejszym i najmniej czasochłonnym sposobem na przetestowanie funkcjonowania strony internetowej w różnych przeglądarkach oraz ich wersjach jest

A. testowanie strony w programie Internet Explorer, zakładając, że inne przeglądarki będą kompatybilne
B. zainstalowanie na kilku maszynach różnych przeglądarek i przeprowadzenie testu witryny
C. skorzystanie z narzędzia do walidacji kodu HTML
D. użycie emulatora przeglądarek internetowych, np. Browser Sandbox
Wykorzystywanie walidatora języka HTML do testowania witryny w różnych przeglądarkach nie jest wystarczającą metodą. Walidatory są narzędziami, które sprawdzają poprawność kodu HTML pod kątem zgodności ze standardami W3C, ale nie oceniają, jak rzeczywiście strona będzie działać w różnych przeglądarkach. Możliwe jest, że strona przejdzie test walidacji, ale w rzeczywistości może wyświetlać się inaczej w różnych przeglądarkach z powodu różnych silników renderujących. Instalowanie różnych przeglądarek na wielu komputerach również nie jest efektywnym rozwiązaniem, gdyż wymaga znacznych nakładów czasu i zasobów, a także trudności w utrzymaniu aktualizacji i wersji. Testowanie jedynie w programie Internet Explorer, zakładając, że inne przeglądarki będą działać podobnie, jest mylne, gdyż różnice w implementacji standardów HTML, CSS i JavaScript w różnych przeglądarkach mogą prowadzić do nieoczekiwanych błędów. Takie podejście może skutkować poważnymi problemami z użytecznością, a także obniżyć jakość doświadczenia użytkownika. Istnieje zatem ryzyko, że aplikacja webowa nie będzie działać prawidłowo na kluczowych platformach, co w dzisiejszym zróżnicowanym środowisku przeglądarek stanowi istotne zagrożenie dla reputacji i funkcjonalności witryny.

Pytanie 21

Wskaż fragment CSS, który odpowiada rozkładowi bloków 2-5, zakładając, że zostały one zbudowane na podstawie podanego kodu HTML.

Ilustracja do pytania
A. Kod 4
B. Kod 3
C. Kod 1
D. Kod 2
Niepoprawne podejścia w pozostałych kodach wynikają z niewłaściwego użycia właściwości float oraz clear. W Kodzie 1 użycie float: right; dla czwartego bloku jest poprawne, jednak clear: both; dla piątego bloku powoduje, że nie będzie on kontynuował linii z poprzednimi blokami, co nie pasuje do przedstawionego układu. Clear: both; wymusza przeniesienie bloku poniżej aktualnej linii. Kod 3 charakteryzuje się brakiem właściwości clear, co prowadzi do problemów z układem, gdyż blok 5 ułożony float: right; nie rozpocznie nowego wiersza, co jest potrzebne w tym zadaniu. W Kodzie 4 brak jest jakiegokolwiek użycia właściwości float lub clear dla bloków 3, 4 i 5 co uniemożliwia osiągnięcie założonego układu. Brak float dla trzeciego i czwartego bloku spowoduje, że będą one umieszczone pod sobą jako blokowe elementy domyślnie, co nie pasuje do układu. Prawidłowa organizacja układu bloków za pomocą właściwości float opiera się na odpowiednim przypisaniu float: left; lub right; oraz strategicznym użyciu clear, aby kontrolować przepływ elementów w wierszach. Typowym błędem jest niezrozumienie, że clear resetuje przepływ dla kolejnego bloku, co jest kluczowe w manipulacji wyglądem layoutu blokowego w starszych technikach CSS. Takie błędy mogą prowadzić do nieprzewidywalnych rezultatów, zwłaszcza gdy układ jest testowany na różnych przeglądarkach i rozdzielczościach ekranów, co podkreśla znaczenie testowania i walidacji CSS w kontekście projektów webowych. Stosowanie zasad float i clear wymaga precyzyjnego planowania, by unikać konfliktów w przepływie i zachować spójność wizualną projektu webowego.

Pytanie 22

Utworzono bazę danych z tabelą mieszkancy, która zawiera pola: nazwisko, imie, miasto. Następnie zrealizowano poniższe zapytanie do bazy: ```SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Kraków"``` Wskaż zapytanie, które zwróci te same dane:

A. SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN "Poznań" OR "Kraków"
B. SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING "Poznań" OR "Kraków"
C. SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" OR miasto="Kraków"
D. SELECT nazwisko, imie FROM mieszkancy AS "Poznań" OR "Kraków"
Zarówno druga, jak i trzecia odpowiedź zawierają błędne konstrukcje zapytań SQL, które nie są zgodne z syntaktyką SQL. W drugiej propozycji użycie aliasu 'AS' dla miast jest niepoprawne, ponieważ aliasowanie dotyczy głównie tabel i kolumn, a nie wartości w klauzuli WHERE. W konsekwencji zapytanie nie zwróci żadnych danych, gdyż nie jest w stanie poprawnie zinterpretować podanych warunków. Trzecia odpowiedź sugeruje użycie operatora BETWEEN w kontekście miast, co również jest niepoprawne. BETWEEN wymaga wartości liczbowych lub dat, a nie tekstowych. Dodatkowo, użycie operatora OR w kontekście BETWEEN jest błędne, ponieważ BETWEEN sam w sobie definiuje zakres wartości. Ostatnia odpowiedź jest również niepoprawna, ponieważ klauzula HAVING jest wykorzystywana w kontekście agregacji danych i nie jest przeznaczona do stosowania w prostych warunkach filtracji, jak w tym przypadku. Typowym błędem jest mylenie kontekstu użycia różnych klauzul w SQL oraz niewłaściwe stosowanie operatorów, co prowadzi do niepoprawnych wniosków o skutkach zapytań. Warto zrozumieć zasady rządzące składnią SQL, aby efektywnie tworzyć zapytania, które zwracają oczekiwane wyniki.

Pytanie 23

Który zapis CSS wprowadzi niebieskie tło dla bloku?

A. div {border-color: blue;}
B. div {shadow: blue;}
C. div {background-color: blue;}
D. div {color: blue;}
Odpowiedź div {background-color: blue;} jest poprawna, ponieważ wykorzystuje właściwość CSS 'background-color', która służy do definiowania koloru tła elementu. Wartość 'blue' jest jedną z predefiniowanych nazw kolorów w CSS, co sprawia, że zapis jest czytelny i łatwy do zrozumienia dla każdego, kto pracuje z tą technologią. Przykładowo, jeżeli chcemy zmienić tło sekcji na naszej stronie internetowej na niebieskie, możemy użyć tego zapisu w pliku CSS lub w sekcji stylów na stronie. Dobrym podejściem w projektowaniu stron jest korzystanie z jednoznacznych nazw kolorów, co poprawia czytelność kodu. Warto również zaznaczyć, że CSS pozwala na użycie różnych formatów kolorów, takich jak RGB, HEX czy HSL, co zwiększa elastyczność w doborze odcieni. Ważne jest, aby przestrzegać standardów dostępności, co oznacza, że kolor tła powinien kontrastować z kolorem tekstu, aby zapewnić dobrą widoczność i dostępność dla wszystkich użytkowników.

Pytanie 24

W tabeli personel znajdują się pola: imie, nazwisko, pensja, staz. Aby otrzymać średnią pensję pracowników, dla których staż wynosi od 10 do 20 lat pracy włącznie, należy wykonać kwerendę:

A. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Wybór kwerend, które nie wykorzystują funkcji AVG() do uzyskania średniej pensji, może prowadzić do poważnych nieporozumień w analizie danych. Użycie 'SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20;' jest błędne, ponieważ funkcja COUNT() zlicza liczbę rekordów, a nie oblicza średniej. Przy użyciu COUNT() otrzymamy jedynie liczbę pracowników z wymaganym stażem, co jest informacją, ale nie odpowiada na pytanie o ich średnią pensję. Również kwerenda 'SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20;' działa podobnie, bo zlicza wszystkie pasujące rekordy, co nie ma związku z obliczaniem wartości średniej. Ostatecznie, kwerenda 'SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20;' jest syntaktycznie błędna, ponieważ AVG() wymaga konkretnej kolumny jako argumentu, a nie symbolu wieloznacznego '*'. Tego rodzaju błędne podejścia mogą wynikać z mylnego rozumienia funkcji i ich zastosowania w SQL. Praktyka pokazuje, że kluczowe jest zrozumienie różnicy między funkcjami agregującymi, takimi jak AVG(), a funkcjami zliczającymi, jak COUNT(). Niezrozumienie tych różnic prowadzi do niepoprawnych wyników analizy danych oraz utrudnia podejmowanie decyzji opartych na faktach. Właściwe wykorzystanie SQL jest istotne w każdym środowisku, gdzie analiza danych odgrywa kluczową rolę.

Pytanie 25

W języku HTML aby zdefiniować słowa kluczowe strony, należy użyć zapisu

A. <meta name = "keywords" content = "psy, koty, gryzonie">
B. <meta name = "description" content = "psy, koty, gryzonie">
C. <meta name = "keywords" = "psy, koty, gryzonie">
D. <meta keywords = "psy, koty, gryzonie">
Odpowiedzi, które nie spełniają standardów HTML, mogą prowadzić do nieporozumień i utraty efektywności w kontekście SEO. Przykładowo, zapis <meta name = "keywords" = "psy, koty, gryzonie"> jest niepoprawny z kilku powodów. Po pierwsze, atrybut 'name' i 'content' muszą być oddzielone spacją, a nie znakiem równości. Poprawna struktura wymaga, aby 'name' był atrybutem wskazującym na rodzaj metadanych, a 'content' dostarczał ich wartość. Kolejna odpowiedź, <meta name = "description" content = "psy, koty, gryzonie">, jest nieprawidłowa, ponieważ odnosi się do opisu strony, a nie słów kluczowych. Opis jest ważnym elementem, ale to nie on definiuje słowa kluczowe, które są stosowane do kategoryzacji treści. Z kolei zapis <meta keywords = "psy, koty, gryzonie"> pomija kluczowy atrybut 'name', co sprawia, że jest to niezgodne z zasadami HTML. Kluczową kwestią jest również to, że wiele wyszukiwarek, takich jak Google, zrezygnowało z brania pod uwagę metatagu 'keywords' w swoich algorytmach rankingowych, co sprawia, że jego stosowanie jest mniej efektywne. Użytkownicy powinni zrozumieć, że stosowanie poprawnych metatagów jest nie tylko kwestią formalną, ale również wpływa na sposób, w jaki ich strona jest postrzegana i indeksowana przez różne wyszukiwarki.

Pytanie 26

Którego znacznika NIE NALEŻY umieszczać w nagłówku dokumentu HTML?

A. <meta>
B. <h2>
C. <title>
D. <link>
Wybierając <link>, <meta> i <title>, można łatwo się pogubić, bo to zupełnie inna bajka niż nagłówki. Znacznik <meta> służy do definiowania rzeczy takich jak opis strony czy słowa kluczowe i jest umieszczany w <head>. To ważne, bo przeglądarki i roboty indeksujące potrzebują tych informacji, co ma duże znaczenie dla SEO. <link> używamy do łączenia zewnętrznych zasobów, jak arkusze stylów CSS, co pozwala stronie ładnie wyglądać. A <title> to tytuł strony, który widać na karcie przeglądarki. Chociaż wszystkie te znaczniki są istotne, to mają inne zadania niż <h2>, które się zajmuje nagłówkami treści. Ogólnie ważne jest, żeby wiedzieć, co do czego służy, żeby dobrze formatować i organizować dokument HTML.

Pytanie 27

Wskaż nieprawidłowy opis optymalizacji kodu generowanego przez program.

A. Może być realizowana na różnych etapach działania w celu przyspieszenia wykonania kodu przez procesor
B. Jej celem jest zwiększenie efektywności działania programu
C. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
D. Powinna skutkować modyfikacją kodu źródłowego, aby działał on szybciej
Wszystkie niepoprawne odpowiedzi odnoszą się do różnych aspektów, które nie są zgodne z rzeczywistym celem optymalizacji kodu wynikowego. Poprawa wydajności programu i zwiększenie szybkości wykonywania kodu przez procesor są kluczowymi elementami optymalizacji; niezbędne jest dążenie do maksymalizacji efektywności działania aplikacji. Proces optymalizacji nie może być związany jedynie z zgodnością z wymogami formalnymi, ponieważ to bardziej dotyczy analizy jakości kodu i jego zgodności z zasadami programowania, a nie jego wydajności. Dodatkowo, modyfikacje kodu źródłowego w kontekście optymalizacji powinny koncentrować się na przyspieszeniu działania, a nie tylko na poprawie formalnych aspektów, które mogą nie wpływać na wydajność. W praktyce, jeśli kod źródłowy nie jest zoptymalizowany pod kątem wydajności, może prowadzić do znacznych opóźnień, co jest niezgodne z celem optymalizacji. Dlatego istotne jest, aby w procesie tym skupić się na zwiększaniu szybkości i wydajności, a nie na spełnianiu jedynie formalnych wymogów, które mogą być mniej istotne w kontekście ogólnej funkcjonalności i szybkości działania programów.

Pytanie 28

Zestaw narzędzi oraz funkcji umożliwiający tworzenie aplikacji, który dodatkowo narzuca ramy wizualne aplikacji, jej strukturę oraz czasami wzór, według którego ma być stworzona aplikacja, to

A. biblioteka
B. komponent
C. framework
D. middleware
Framework to zestaw skomponowanych narzędzi oraz komponentów, które wspierają programistów w procesie tworzenia aplikacji poprzez dostarczenie struktury i organizacji kodu. Charakteryzuje się on tym, że określa pewne zasady, standardy oraz architekturę, co pozwala na łatwiejsze zarządzanie projektem i jego przyszłym rozwojem. Przykłady popularnych frameworków to Angular, React dla aplikacji webowych oraz Django, Ruby on Rails w przypadku aplikacji serwerowych. Frameworki często implementują wzorce projektowe, takie jak Model-View-Controller (MVC), które segregują logikę aplikacji na różne warstwy, co pozwala na lepszą organizację kodu. Dzięki zastosowaniu frameworków, programiści mogą skupić się na pisaniu logiki biznesowej, zamiast tracić czas na implementację podstawowych funkcji, ponieważ wiele z nich jest już dostarczanych przez framework. Umożliwia to również łatwiejsze wprowadzanie zmian oraz współpracę w zespołach programistycznych. Frameworki są zgodne z różnymi standardami, co zapewnia ich wszechstronność i szeroką akceptację w branży.

Pytanie 29

W CSS określono styl dla paragrafu, który nada mu poniższe cechy:

background-color: red;
color: blue;
margin: 40px;
A. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy wewnętrzne o wartości 40px
B. tło w kolorze niebieskim, tekst w kolorze czerwonym, marginesy zewnętrzne o wartości 40px
C. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy zewnętrzne o wartości 40px
D. tło w kolorze czerwonym, tekst w kolorze niebieskim, marginesy wewnętrzne o wartości 40px
Rozumienie różnicy między marginesami wewnętrznymi a zewnętrznymi jest kluczowe w projektowaniu stron internetowych. CSS umożliwia precyzyjne ustawianie obu typów marginesów dzięki czemu projektant ma pełną kontrolę nad układem i estetyką strony. Marginesy wewnętrzne określane jako padding tworzą przestrzeń między zawartością a krawędzią elementu. Z kolei marginesy zewnętrzne czyli margin określają odstępy między elementami na stronie. Błędne przypisanie wartości 40px do padding zamiast margin skutkowałoby innym rozmieszczeniem elementów na stronie co mogłoby wpływać na czytelność i estetykę projektu. Innym często spotykanym błędem jest mylenie nazewnictwa kolorów tła oraz tekstu. W CSS background-color definiuje kolor tła a color dotyczy koloru tekstu. Pomylenie tych pojęć skutkowałoby odmiennym efektem wizualnym i potencjalnym brakiem czytelności tekstu w kontekście dobranego tła. W tym kontekście znajomość specyfikacji CSS jest niezbędna aby unikać błędów prowadzących do niezgodności wizualnej oraz utraty spójności projektu. Właściwe stosowanie właściwości CSS zgodnie z ich przeznaczeniem i standardami zapewnia nie tylko estetykę ale także poprawne działanie interfejsu na różnych urządzeniach i przeglądarkach co jest kluczowe dla zapewnienia pozytywnego doświadczenia użytkownika UX. Praktyczna wiedza na temat CSS pozwala na tworzenie bardziej elastycznych i dostosowanych do różnych potrzeb projektów co jest niezwykle cenne w zmieniających się trendach web designu.

Pytanie 30

Zasłanianie niektórych pól lub metod obiektów danej klasy w sposób, który umożliwia dostęp wyłącznie wewnętrznym metodom tej klasy lub funkcjom zaprzyjaźnionym, to

A. dziedziczenie
B. polimorfizm
C. hermetyzacja
D. konkatenacja
Polimorfizm to zdolność obiektów do przyjmowania różnych form, co oznacza, że można stosować tę samą metodę do różnych typów obiektów. Nie ma on jednak związku z ukrywaniem pól i metod, a raczej koncentruje się na interfejsach i implementacjach, które mogą różnić się w zależności od kontekstu, co sprawia, że nie jest poprawną odpowiedzią w kontekście tego pytania. Konkatenacja to proces łączenia dwóch lub więcej ciągów tekstowych w jeden długi ciąg. Choć często pojawia się w programowaniu, nie jest to koncepcja związana z ukrywaniem pól czy metod w klasach, więc jej wybór w tym kontekście jest błędny. Dziedziczenie to mechanizm, który pozwala na tworzenie nowych klas na podstawie istniejących, co umożliwia ponowne użycie kodu. Podobnie jak polimorfizm, dziedziczenie nie odnosi się do hermetyzacji, ponieważ nie dotyczy ochrony i ukrywania wewnętrznych danych czy metod w klasie, lecz skupia się na relacjach między klasami i ich hierarchią. W związku z tym te odpowiedzi nie pasują do opisanego w pytaniu zagadnienia.

Pytanie 31

W języku JavaScript rezultat działania instrukcji zmienna1 –= 1; będzie identyczny jak wynik instrukcji

A. zmienia1 = zmienna1 - 0;
B. zmienna1––;
C. zmienna1++;
D. zmienna1 === zmienna1 - 1;
W analizowanych odpowiedziach pojawiają się różne nieprawidłowe koncepcje. Pierwsza z nich, 'zmienna1 === zmienna1 - 1;', jest błędna, ponieważ porównuje dwie wartości, a nie aktualizuje zmiennej. Ten zapis stwierdza, czy 'zmienna1' jest równa 'zmienna1 - 1', co nie ma związku z dekrementacją, a jedynie sprawdza warunek. Kolejna odpowiedź, 'zmienna1++;', jest również niepoprawna. Operator '++' to operator inkrementacji, który zwiększa wartość zmiennej o 1, a więc całkowicie zaprzecza intencji dekrementacji. Zastosowanie tego operatora zamiast dekrementacji prowadziłoby do zwiększenia wartości 'zmienna1', co jest sprzeczne z założeniem pytania. Ostatnia odpowiedź, 'zmienia1 = zmienna1 - 0;', jest błędna z dwóch powodów: użycie 'zmienia1' sugeruje błąd typograficzny, a sama operacja 'zmienna1 - 0' nie wpłynie na wartość zmiennej, co jest niezgodne z zamiarem jej obniżenia. Powszechnym błędem w programowaniu jest mylenie operatorów oraz nieznajomość ich właściwości, co może prowadzić do poważnych błędów w kodzie. Właściwe rozumienie funkcji operatorów przypisania oraz ich skróconych form jest kluczowe dla efektywnego programowania w JavaScript.

Pytanie 32

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

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

Pytanie 33

W kaskadowych arkuszach stylów do oznaczenia selektora klasy wykorzystuje się symbol

A. . (kropka)
B. : (dwukropek)
C. #
D. *
Odpowiedzi #, *, oraz : nie są poprawne w kontekście definicji selektorów klas w CSS. Symbol # jest używany do definiowania selektorów identyfikatorów, co oznacza, że w przypadku elementu z identyfikatorem 'element1', selektor w CSS będzie wyglądał tak: #element1. Identyfikatory są unikalne dla danego elementu w dokumencie i mogą być używane tylko raz, co sprawia, że są mniej elastyczne w porównaniu do klas. Użycie identyfikatorów jest często niezalecane, gdyż prowadzi do mniejszej reużywalności stylów. Z kolei symbol * jest selektorem uniwersalnym, który odnosi się do wszystkich elementów na stronie. Chociaż może być użyteczny w pewnych sytuacjach, jego nadużywanie może prowadzić do spadku wydajności, zwłaszcza w większych projektach, ponieważ styluje każdy element w dokumencie. Ostatni symbol : jest używany w pseudo-klasach i pseudo-elementach, takich jak :hover czy ::before, które pozwalają na stylizację elementów w specyficznych stanach lub na dodawanie stylów do części elementu. Pojęcia te są często mylone z klasami, co prowadzi do błędnych wniosków i nieefektywnego zarządzania stylem. Używanie właściwych selektorów jest kluczowe dla utrzymania dobrze zorganizowanego i wydajnego kodu CSS.

Pytanie 34

Jak wygląda prawidłowy zapis samozamykającego się znacznika w zgodzie ze standardem języka XHTML, który odpowiada za łamanie linii?

A. </br/>
B. <br />
C. </ br>
D. <br> </br>
Zapis </ br> jest niepoprawny, ponieważ nie przestrzega zasad składni XHTML. W XHTML nie używa się ukośnika przed znacznikiem, co powoduje, że znaczniki takie jak <br> są interpretowane jako błędne. Właściwie zapisany znacznik łamania linii zawsze powinien kończyć się ukośnikiem, co oznacza zgodność z regułami języka. Z kolei <br> </br> jest redundantny, ponieważ <br> jest znacznikiem samozamykającym się, a jego zamknięcie dodatkowymi znacznikami nie ma sensu i wprowadza niepotrzebny szum w kodzie. Odpowiedź </br/> również jest błędna, ponieważ kończy się niepoprawnym zapisem, gdzie nie jest dopuszczalne użycie ukośnika przed zamknięciem znacznika, co jest sprzeczne z zasadami XHTML. Użytkownicy często mylą składnię HTML z XHTML, co prowadzi do kodu, który może wydawać się poprawny, ale nie spełnia stricte określonych zasad składniowych. Dlatego korzystanie z poprawnych znaczników jest kluczowe dla zapewnienia, że dokumenty HTML/XHTML będą działać w różnych przeglądarkach i platformach, co jest niezbędne dla ich prawidłowego wyświetlania oraz przetwarzania.

Pytanie 35

W języku JavaScript poniższy fragment funkcji ma na celu

wynik = 0;
for (i = 0; i < tab.length; i++) {
  wynik += tab[i];
}
A. dodać do każdego elementu tablicy ustaloną wartość
B. obliczyć sumę wszystkich elementów tablicy
C. wprowadzić do każdego elementu tablicy bieżącą wartość zmiennej i
D. wyświetlić wszystkie elementy tablicy
Funkcja w podanym fragmencie rzeczywiście ma na celu policzenie sumy wszystkich elementów tablicy. Przy inicjalizacji zmiennej 'wynik' na 0, kod iteruje przez każdy element tablicy 'tab' przy użyciu pętli for. W każdej iteracji do 'wynik' dodawana jest wartość bieżącego elementu tablicy, co prowadzi do skumulowania wszystkich wartości. Tego typu operacje są powszechnie stosowane w programowaniu, szczególnie w analizie danych, gdzie często zachodzi potrzeba obliczenia sumy, średniej lub innych statystyk na podstawie zebranych danych. Ważne jest również, aby pamiętać o typach danych w JavaScript – elementy tablicy powinny być liczbami, aby suma była poprawna. Zastosowanie tej techniki jest standardem w wielu algorytmach i jest fundamentalne dla zrozumienia bardziej zaawansowanych koncepcji, jak np. funkcje redukujące.

Pytanie 36

W PHP, aby poprawnie zakończyć połączenie z bazą danych MySQL, ostatnim krokiem powinno być użycie polecenia

A. exit
B. die
C. mysqli_close
D. mysql_exit
Aby prawidłowo obsłużyć połączenie z bazą danych MySQL w języku PHP, kluczowym krokiem jest zamknięcie tego połączenia po zakończeniu operacji na bazie danych. Najlepszą praktyką jest użycie funkcji mysqli_close. Ta funkcja jest częścią rozszerzenia MySQLi (MySQL Improved), które oferuje nowoczesne podejście do komunikacji z bazą danych, w tym zwiększone bezpieczeństwo i wydajność. Po wywołaniu mysqli_close, wszystkie zasoby związane z połączeniem są zwalnianie, co pozwala na uniknięcie potencjalnych wycieków pamięci. Przykładowe użycie: $connection = mysqli_connect('host', 'user', 'password', 'database'); // Po dokonaniu operacji na bazie danych mysqli_close($connection);. Ważne jest, aby zamykać połączenia, szczególnie w aplikacjach działających w środowisku produkcyjnym, aby zapewnić optymalne wykorzystanie zasobów serwera oraz bezpieczeństwo danych. Standardowe zalecenia dokumentacji PHP podkreślają znaczenie użycia mysqli_close w celu zakończenia sesji z bazą danych, co sprzyja stabilności i niezawodności aplikacji.

Pytanie 37

W HTML-u atrybut shape w znaczniku area, który definiuje kształt obszaru, może przyjąć wartość

A. rect, poly, circle
B. rect, triangle, circle
C. poly, square, circle
D. rect, square, circle
Wybór niewłaściwej odpowiedzi może wynikać z nieporozumień dotyczących atrybutu shape w znaczniku area. Odpowiedzi wskazujące na 'square' lub 'triangle' są błędne, ponieważ te kształty nie są obsługiwane przez standard HTML. W przypadku 'square', mogłoby się wydawać, że jest to po prostu inna forma prostokąta, jednak HTML nie definiuje takiej wartości dla atrybutu shape. Również 'triangle' nie jest uznawany w kontekście standardowych atrybutów; HTML nie pozwala na bezpośrednie definiowanie kształtów trójkątnych w obszarach mapy obrazów. Tego rodzaju zamieszanie może wynikać z niepełnego zrozumienia funkcji atrybutu, który jest jednoznacznie związany z prostokątem, okręgiem oraz wielokątem. Kluczowe jest, aby przyjrzeć się dokumentacji HTML oraz standardom W3C, które jasno określają poprawne wartości dla atrybutu shape. W praktyce, zrozumienie tych różnic jest istotne dla tworzenia efektywnych i dostępnych interfejsów użytkownika, gdzie każdy element jest precyzyjnie zdefiniowany i zrozumiały dla przeglądarek oraz użytkowników. Ponadto, stosowanie niepoprawnych wartości może prowadzić do błędów w renderowaniu strony, co negatywnie wpływa na doświadczenia użytkowników i dostępność serwisu.

Pytanie 38

Który z grafikowych formatów umożliwia zapis przezroczystego tła?

A. GIF
B. BMP
C. RAW
D. JPEG
RAW to format, który przechowuje dane obrazu w formie nieprzetworzonej, co oznacza, że nie zawiera informacji o przejrzystości. Pliki RAW są wykorzystywane głównie w profesjonalnej fotografii, gdzie istotne jest zachowanie jak największej ilości szczegółów w obrazie, jednak nie oferują one żadnej funkcji przejrzystości, co czyni je nieodpowiednimi do zastosowań, gdzie przezroczystość tła jest kluczowa. BMP (Bitmap) to kolejny format, który nie wspiera przezroczystości. Jest to format bezstratny, który przechowuje szczegółowe informacje o każdym pikselu, ale nie umożliwia określenia żadnego koloru jako przezroczystego. BMP jest szeroko stosowany w aplikacjach graficznych, jednak jego duża objętość plików oraz brak wsparcia dla przezroczystości ogranicza jego zastosowanie w sieci. JPEG to format skompresowany, który również nie obsługuje przejrzystości. Chociaż JPEG jest świetny do przechowywania zdjęć ze względu na jego zdolność do kompresji z zachowaniem jakości, nie jest w stanie zapisać informacji o przezroczystości, co czyni go mało użytecznym w sytuacjach, w których wymagane jest zastosowanie przezroczystego tła. W związku z tym, dla projektów wymagających przezroczystości, format GIF pozostaje najlepszym wyborem.

Pytanie 39

W języku PHP, aby nawiązać połączenie z bazą danych MySQL za pomocą biblioteki mysqli, wykorzystując podany kod, w miejscu parametru 'c' powinno się wpisać

$a = new mysqli('b', 'c', 'd', 'e')
A. lokalizację serwera bazy danych
B. nazwę użytkownika
C. hasło użytkownika
D. nazwę bazy danych
Aby poprawnie korzystać z biblioteki mysqli w PHP konieczne jest zrozumienie kolejności i znaczenia parametrów używanych do nawiązywania połączenia z bazą danych MySQL. Pierwszym parametrem w funkcji mysqli_connect lub konstruktorze klasy mysqli jest lokalizacja serwera bazy danych. Zazwyczaj wartością domyślną jest 'localhost' co oznacza że serwer bazy danych działa na tej samej maszynie co serwer PHP. Błędne przypisywanie innej wartości w tym miejscu może prowadzić do problemów z połączeniem jeśli serwer bazy danych jest w rzeczywistości lokalny. Drugim parametrem jest nazwa użytkownika która jest niezbędna do autoryzacji dostępu do bazy danych. Często stosowanym błędem jest użycie niewłaściwego użytkownika co może skutkować odmową dostępu do bazy. Trzecim jest hasło które powinno być silne i dobrze zabezpieczone aby zapobiec nieautoryzowanemu dostępowi. Błędne przypisanie tego parametru może skutkować podatnością na ataki. Czwartym parametrem jest nazwa bazy danych do której zamierzamy się połączyć. Błędne podanie tej wartości może powodować że operacje bazy danych będą wykonywane na niewłaściwej bazie co może mieć katastrofalne skutki dla danych. Zrozumienie i poprawne przypisanie tych wartości jest kluczowe w kontekście bezpieczeństwa i stabilności aplikacji webowych i często jest elementem dobrych praktyk w programowaniu PHP. Również zrozumienie tego w kontekście skalowalności i zarządzania środowiskami produkcyjnymi jest istotne aby uniknąć problemów związanych z konfiguracją na różnych etapach rozwoju aplikacji. Właściwe zarządzanie tymi parametrami często wiąże się z używaniem plików konfiguracyjnych co pozwala na łatwiejsze zarządzanie i większą elastyczność w kontekście różnych środowisk programistycznych i produkcyjnych. Poprawne zrozumienie tego mechanizmu jest kluczowe dla tworzenia bezpiecznych i stabilnych aplikacji webowych.

Pytanie 40

W CSS zapisany w ten sposób:

p { background-image: url("rysunek.png"); }

spowoduje, że rysunek.png stanie się

A. widoczny obok każdego akapitu
B. wyświetlony, jeśli w kodzie użyty zostanie znacznik img
C. tłem każdego akapitu
D. tłem całej witryny
W przypadku stylowania elementów za pomocą CSS, bardzo łatwo popełnić błąd interpretacyjny, jeśli nie zna się szczegółów działania selektorów czy właściwości stylów. Zapis p { background-image: url("rysunek.png"); } dotyczy wyłącznie elementów <p>, czyli akapitów, a nie całej witryny. Popularnym nieporozumieniem jest myślenie, że taka reguła zmieni tło całej strony — w rzeczywistości, aby osiągnąć taki efekt, należałoby użyć selektora body, np. body { background-image: ... }, bo to body odpowiada za tło całego dokumentu. Jeśli ktoś zakłada, że obrazek pojawi się tylko wtedy, gdy w HTML użyjemy <img src="rysunek.png">, to miesza dwie zupełnie osobne koncepcje: background-image ustawia grafikę w tle elementu, a <img> osadza ją w strukturze treści jako samodzielny obiekt — to dwie różne rzeczy. Sam background-image nie potrzebuje obecności znacznika <img>; przeglądarka pobierze i wyświetli grafikę tylko jako tło elementu. Natomiast odpowiedź sugerująca, że obrazek będzie widoczny obok każdego akapitu, wynika chyba z niezrozumienia mechanizmu renderowania tła: CSS nie wstawia obrazka "obok" treści, tylko pod nią, w tle elementu, wypełniając całą jego powierzchnię (lub jej fragment w zależności od innych właściwości tła, np. background-repeat czy background-position). To często mylone z dekoracjami typu list-style-image w listach, gdzie obrazek rzeczywiście pojawia się obok tekstu listy. Warto zawsze czytać dokumentację i testować takie rzeczy samodzielnie — praktyka bardzo pomaga zrozumieć niuanse w CSS. Przemyślenie działania selektorów i właściwości to podstawa unikania takich nieporozumień podczas projektowania layoutów.