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: 4 lutego 2026 12:48
  • Data zakończenia: 4 lutego 2026 13:13

Egzamin niezdany

Wynik: 19/40 punktów (47,5%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

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

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

Pytanie 2

W języku SQL, dla dowolnych zbiorów danych w tabeli Uczniowie, aby uzyskać rekordy zawierające tylko uczennice o imieniu "Aleksandra", które urodziły się po roku "1998", należy sformułować zapytanie

A. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia < "1998"
B. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998"
C. SELECT * FROM Uczniowie WHERE imie ="Aleksandra" OR rok_urodzenia < "1998"
D. SELECT * FROM Uczniowie WHERE imie="Aleksandra" OR rok_urodzenia > "1998"
Zapytanie SQL 'SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998";' jest całkiem w porządku. Dobrze wyciąga dane o uczennicach nazywających się Aleksandra, które przyszły na świat po 1998 roku. W tym zapytaniu używasz operatora AND, co oznacza, że obydwa warunki muszą być spełnione, żeby coś się pokazało. Fajnie jest korzystać z operatora AND w SQL, gdy potrzebujesz ograniczyć wyniki do takich, które pasują do więcej niż jednego kryterium. Cała ta logika pozwala na lepsze filtrowanie danych, co jest mega ważne, zwłaszcza w edukacji, gdzie chcemy uzyskać konkretne informacje o uczniach. Pamiętaj też, że używanie cudzysłowów do oznaczania tekstu jest kluczowe, bo wtedy system wie, że to jest tekst, a nie coś innego. A jak chcesz, żeby daty były bardziej precyzyjne, to można też wykorzystać różne funkcje datowe, żeby uzyskać jeszcze lepsze wyniki.

Pytanie 3

Która z komórek tabeli została sformatowana przedstawionym stylem CSS zakładając, że pozostałe własności przyjmują wartości domyślne?

td {
  border: 1px solid black;
  padding: 15px;
  height: 40px;
  vertical-align: bottom;
}
dane w tabeli


dane w tabelidane w tabelidane w tabeli
Komórka 1Komórka 2Komórka 3Komórka 4
A. Komórka 1.
B. Komórka 3.
C. Komórka 4.
D. Komórka 2.
Niestety, ta odpowiedź jest nieprawidłowa. Wybór jakiejkolwiek innej komórki oprócz komórki 3. oznacza niezrozumienie, jak działają style CSS w kontekście formatowania komórek tabeli. Obramowanie, padding, wysokość i wyrównanie tekstu to atrybuty CSS, które wpływają na wygląd komórki tabeli. Często błędem jest mylenie paddingu (wewnętrznego marginesu) z marginesem (zewnętrznym marginesem) lub niezrozumienie, jak działa wyrównanie tekstu. Warto pamiętać, że w CSS 'vertical-align: bottom' oznacza wyrównanie tekstu do dolnej krawędzi komórki. Wybór innej komórki, która nie spełnia podanych kryteriów, sugeruje, że nie zrozumiałeś prawidłowo tych konceptów. Radzę powtórzyć materiał dotyczący stylizacji komórek tabeli w CSS i spróbować ponownie. Pamiętaj, że kluczem do zrozumienia CSS jest praktyka, więc nie bój się eksperymentować z różnymi stylami!

Pytanie 4

Wskaż funkcję PHP, która umożliwia zapisanie odczytanej zawartości pliku do zmiennej, która reprezentuje ciąg znaków?

A. fwrite()
B. file_get_contents()
C. get_file()
D. eof()
Odpowiedzi takie jak fwrite(), eof() oraz get_file() nie są prawidłowe w kontekście odczytu zawartości pliku do zmiennej. fwrite() jest funkcją przeznaczoną do zapisywania danych do pliku, co oznacza, że zamiast odczytu, jej zastosowanie polega na wprowadzaniu danych do plików, co jest odwrotne do potrzebnego działania. eof() natomiast sprawdza, czy osiągnięto koniec pliku, ale nie ma związku z odczytem zawartości pliku do zmiennej; jest to funkcja używana w kontekście strumieni plikowych. Wreszcie, get_file() nie jest standardową funkcją PHP i nie istnieje w dokumentacji PHP. Tego rodzaju błędy mogą wynikać z nieporozumienia dotyczącego funkcji i ich zastosowania w PHP. Ważne jest, aby przy wyborze funkcji kierować się ich specyfiką i przeznaczeniem. Właściwa wiedza na temat dostępnych funkcji oraz ich właściwego użycia jest kluczowa w programowaniu, aby uniknąć błędów logicznych i technicznych w kodzie.

Pytanie 5

Która z wymienionych metod umożliwia wyświetlenie komunikatu w konsoli przeglądarki za pomocą języka JavaScript?

A. console.log("test");
B. console.write("test");
C. console.print("test");
D. console.echo("test");
Wybór innych metod wypisywania komunikatów w konsoli, takich jak console.write(), console.print() oraz console.echo(), jest błędny, ponieważ nie są one zdefiniowane w standardowym API JavaScript. Istnieje powszechne nieporozumienie, że podobne nazwy funkcji mogą sugerować ich prawidłowe działanie, co prowadzi do stosowania niepoprawnych metod. JavaScript, jako język skryptowy, posiada zestaw wbudowanych funkcji, które są precyzyjnie zdefiniowane przez ECMAScript. Metody takie jak console.write() i console.print() nie istnieją w tym standardzie, co sprawia, że ich użycie kończy się błędami wykonania. Ponadto, console.echo() również nie jest rozpoznawane przez silniki JavaScript i może prowadzić do frustracji, gdy programista spodziewa się, że jego kod będzie działał zgodnie z intuicją. Kluczowe jest, aby każdy programista znał podstawowe funkcje i ich właściwe zastosowanie, aby uniknąć takich pułapek. Niezrozumienie dostępnych funkcji konsoli może prowadzić do marnowania czasu na debugowanie kodu, który nie działa, ponieważ został oparty na nieprawidłowych założeniach. Właściwe podejście do nauki JavaScript obejmuje eksperymentowanie z wbudowanymi funkcjami oraz zrozumienie dokumentacji, co znacznie przyspiesza proces uczenia się i wzmacnia umiejętności programistyczne.

Pytanie 6

Dla celu strony internetowej stworzono grafikę rysunek.jpg o wymiarach: szerokość 200 px, wysokość 100 px. Aby zaprezentować tę grafikę jako miniaturę – pomniejszoną z zachowaniem proporcji, można użyć znacznika

A. <img src="/rysunek.png" style="width: 25px; height:50px;">
B. <img src="/rysunek.png" style="width: 50px">
C. <img src="/rysunek.png" style="width: 25px; height:25px;">
D. <img src="/rysunek.png">
Wybór innych opcji, takich jak <img src="/rysunek.png" style="width: 25px; height:50px;"> czy <img src="/rysunek.png" style="width: 25px; height:25px;"> prowadzi do nieproporcjonalnego wyświetlenia obrazu, co skutkuje jego zniekształceniem. Ustalenie zarówno szerokości, jak i wysokości w stylach CSS sprawia, że obrazek jest zmuszony do dopasowania się do tych wymiarów, co narusza jego naturalne proporcje. To podejście jest niezgodne z zaleceniami dotyczącymi responsywności, które sugerują, aby ograniczać się do jednego wymiaru, co pozwala drugiemu na automatyczne dostosowanie. Typowym błędem jest przyjęcie, że podanie obu wymiarów w pikselach zawsze przyniesie optymalny efekt wizualny, co jest mylące i może prowadzić do złego doświadczenia użytkownika. Zniekształcenie obrazów nie tylko obniża estetykę strony, ale także może wpływać na jej użyteczność oraz SEO. Dobrą praktyką jest również używanie atrybutów 'alt' w znacznikach obrazów, aby poprawić dostępność i SEO, co nie zostało uwzględnione w żadnej z opcji. Warto także zauważyć, że stosowanie odpowiednich formatów obrazów i ich optymalizacja pod względem rozmiaru pliku są kluczowe dla przyspieszenia ładowania strony.

Pytanie 7

Jakie jest właściwe określenie stylu CSS dla przycisku typu submit z czarnym tłem, bez ramki oraz z marginesami wewnętrznymi równymi 5 px?

input[type=submit] {
    background-color: #000000;
    border: none;
    padding: 5px;
} A
input[type=submit] {
    background-color: #ffffff;
    border: none;
    padding: 5px;
} B
input=submit {
    background-color: #000000;
    border: none;
    margin: 5px;
} C
input=submit {
    background-color: #000000;
    border: 0px;
    margin: 5px;
} D
A. B
B. C
C. A
D. D
Odpowiedź A jest na pewno właściwa, bo definiuje styl CSS dla przycisku input o typie submit. Ustawienie background-color na #000000 to kluczowa sprawa, bo w pytaniu wymagano czarnego tła. Dodatkowo użycie selektora input[type=submit] jest naprawdę dobrym pomysłem, bo precyzyjnie wskazuje ten konkretny element formularza. Warto też zauważyć, że border: none; usuwa obramowanie, co zgadza się z wymaganiami. Padding: 5px; dodaje trochę miejsca wewnątrz przycisku, więc tekst nie przylega do krawędzi. Stylowanie przycisków typu submit jest istotne w projektowaniu, bo wpływa na estetykę i funkcjonalność. Nie zapominaj, że CSS daje możliwość naprawdę fajnego dostosowywania wyglądu, co pozwala na stworzenie atrakcyjnych i łatwych w obsłudze elementów. Dobrze jest stosować selektory z wysoką specyficznością i unikać przesadnego używania !important, bo to może skomplikować sprawy związane z kaskadą stylów. Na przykład zmienne CSS mogą pomóc uporządkować kolory w większych projektach, co jest przydatne.

Pytanie 8

Jaką wartość w systemie szesnastkowym przyjmie kolor określony kodem RGB rgb(255, 128, 16)?

A. #ff8011
B. #008010
C. #ff8010
D. #ff0f10
Odpowiedź #ff8010 jest prawidłowa, ponieważ kolor o wartości rgb(255, 128, 16) w systemie szesnastkowym przekłada się na poszczególne wartości RGB. Wartości te są konwertowane w sposób następujący: 255 w systemie dziesiętnym odpowiada FF w systemie szesnastkowym, 128 to 80, a 16 to 10. Zatem, łącząc te składniki, otrzymujemy #ff8010. W praktyce, kolory te są często stosowane w projektowaniu graficznym oraz tworzeniu stron internetowych, gdzie dokładne odwzorowanie kolorów jest kluczowe. Kod szesnastkowy jest powszechnie używany ze względu na swoją kompaktowość i łatwość odczytu dla programistów. Warto więc zaznaczyć, że znajomość konwersji kolorów między różnymi systemami jest ważnym elementem w pracy nad kolorystyką w projektach cyfrowych oraz w branżach zajmujących się grafiką i designem. Dobre praktyki obejmują stosowanie narzędzi do wizualizacji kolorów oraz testowanie ich na różnych urządzeniach, aby zapewnić spójność wizualną.

Pytanie 9

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. NUMBER
B. SUM
C. AVG
D. COUNT
Wybór funkcji SUM, AVG czy NUMBER nie jest najlepszy, jeśli chodzi o zliczanie rekordów. Funkcja SUM sumuje wartości w kolumnach, a nie zlicza rekordy. Na przykład, zapytanie SELECT SUM(wartość) FROM zamówienia pokaże nam całkowitą wartość zamówień, ale nie powie, ile ich było. Funkcja AVG natomiast oblicza średnią, więc też nie nadaje się do liczenia rekordów. Używając zapytania SELECT AVG(wiek) FROM pracownicy dostaniemy średni wiek, ale nie wiedząc, ile mamy pracowników. Co do NUMBER, to w SQL nie jest nawet standardową funkcją, więc może być tu jakieś nieporozumienie. Często mylimy te funkcje i to prowadzi do złych analiz. Zrozumienie, jakie są różnice między nimi, to klucz do robienia dobrych analiz danych. Dlatego warto zwracać na to uwagę.

Pytanie 10

Arkusze stylów w formacie kaskadowym są tworzone w celu

A. połączenia struktury dokumentu strony z odpowiednią formą jej wizualizacji
B. blokowania wszelkich zmian w wartościach znaczników już przypisanych w pliku CSS
C. nadpisywania wartości znaczników, które już zostały ustawione na stronie
D. ułatwienia formatowania strony
Kaskadowe arkusze stylów (CSS) stanowią kluczowy element w tworzeniu nowoczesnych stron internetowych, umożliwiając deweloperom separację zawartości od stylizacji. Poprawna odpowiedź, dotycząca ułatwienia formatowania strony, odnosi się do głównej funkcji CSS, która polega na umożliwieniu precyzyjnego stylizowania elementów HTML przy użyciu różnych właściwości, takich jak kolor, czcionka, marginesy czy tło. Dzięki CSS, można łatwo zmieniać wygląd całej strony lub jej części, co znacznie upraszcza proces utrzymania i aktualizacji. Na przykład, jeśli chcemy zmienić kolor tła całej witryny, wystarczy zaktualizować jedną regułę w arkuszu stylów, zamiast edytować każdy element osobno. Dodatkowo, CSS wspiera responsywność, co oznacza, że możemy dostosować wygląd strony do różnych rozmiarów ekranów, co jest istotne w dobie urządzeń mobilnych. Takie podejście do rozwijania stron internetowych jest zgodne z najlepszymi praktykami branżowymi, co pozwala na bardziej efektywne zarządzanie projektem oraz zapewnienie spójnego wyglądu witryny.

Pytanie 11

Jakie znaki lub sekwencje oznaczają początek komentarza w języku JavaScript?

A. <?
B. #
C. //
D. <!--
W języku JavaScript komentarze są oznaczane na dwa podstawowe sposoby. Najbardziej powszechnym sposobem jest użycie podwójnego ukośnika, co wygląda jak '//' i jest stosowane do tworzenia komentarzy jednolinijkowych. Komentarze te są ignorowane przez interpreter JavaScript, co oznacza, że nie mają wpływu na działanie kodu. Na przykład, w kodzie można napisać: // To jest komentarz, który nie wpływa na wykonanie kodu. Oprócz tego, JavaScript obsługuje też komentarze wielolinijkowe, które rozpoczynają się od '/*' i kończą na '*/'. Umożliwiają one wstawienie dłuższego opisu, obejmującego kilka linii. Przykład: /* To jest komentarz, który zajmuje kilka linii. */ Komentarze w kodzie są niezwykle istotne, ponieważ poprawiają czytelność skryptu, umożliwiają dokumentację oraz ułatwiają pracę z zespołem. Warto zaznaczyć, że zgodność z ECMAScript, standardem, na którym oparty jest JavaScript, wymaga użycia tych znaczników w celu prawidłowego komentowania kodu.

Pytanie 12

<?php  
$pi = 3.14;
var_dump($pi);
?>
Jakie będzie wyjście po wykonaniu przedstawionego kodu PHP?
A. object(3.14)
B. string(3)
C. float(3.14)
D. int(314)
Odpowiedź 'float(3.14)' jest poprawna, ponieważ w kodzie PHP zmienna \$pi została zainicjalizowana jako liczba zmiennoprzecinkowa z wartością 3.14. Funkcja var_dump() służy do wyświetlania typu oraz wartości zmiennej, a w przypadku liczby zmiennoprzecinkowej wynik będzie wskazywał na typ float. Warto zauważyć, że PHP automatycznie rozpoznaje typy zmiennych, a liczby zmiennoprzecinkowe są powszechnie używane w obliczeniach wymagających precyzji, takich jak matematyka finansowa czy fizyka. W kontekście programowania w PHP, dobrym zwyczajem jest korzystanie z funkcji var_dump() podczas debugowania kodu, aby mieć jasny obraz typów danych i ich wartości w danym momencie. W praktyce, dobrze jest również implementować typowanie w PHP 7 i nowszych, co umożliwia lepszą kontrolę nad typami zmiennych, co z kolei prowadzi do bardziej stabilnego i czytelnego kodu. Warto także zwrócić uwagę na zasadę, że odpowiednie typy danych są kluczowe dla wydajności i niezawodności aplikacji, co czyni tę wiedzę szczególnie istotną dla każdego programisty."

Pytanie 13

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;
W języku SQL, aby zaktualizować wartość kolumny w tabeli, stosuje się polecenie UPDATE. Poprawna kwerenda 'UPDATE samochody SET przebieg=0;' jest zgodna z syntaksą SQL i oznacza, że dla wszystkich rekordów w tabeli 'samochody' wartość kolumny 'przebieg' zostanie ustawiona na 0. Taka operacja jest szczególnie przydatna w przypadku, gdy chcemy zresetować dane dotyczące przebiegu pojazdów, na przykład po wprowadzeniu nowego pojazdu do bazy danych. Ważne jest, aby pamiętać, że ta kwerenda zmodyfikuje wszystkie rekordy w tabeli, co może być niezamierzonym działaniem, dlatego w praktyce często stosuje się dodatkowe warunki w klauzuli WHERE, aby zaktualizować tylko wybrane wiersze. Przykład kwerendy z warunkiem: 'UPDATE samochody SET przebieg=0 WHERE id=1;' zaktualizuje tylko rekord o identyfikatorze 1. Znajomość składni SQL oraz zrozumienie działania instrukcji UPDATE są kluczowe dla efektywnego zarządzania danymi w bazach danych.

Pytanie 14

Jakie ustawienia dotyczące czcionki będą miały zastosowanie w przypadku kodu CSS?

* {
    font-family: Tahoma;
    color: Teal;
}
A. znaczników z klasą przypisaną jako *.
B. znaczników o identyfikatorze równym *.
C. wszystkiego kodu HTML, niezależnie od kolejnych ustawień CSS.
D. wszystkiego kodu HTML, jako domyślne formatowanie dla wszystkich elementów strony.
Wybór opcji dotyczącej całego kodu HTML jako formatowania domyślnego dla wszystkich elementów strony jest poprawny, ponieważ użycie selektora uniwersalnego * w CSS oznacza, że wszystkie dostępne elementy na stronie będą dziedziczyć określone style. W tym przypadku, zarówno font-family ustawiony na Tahoma, jak i kolor tekstu zmieniony na Teal, będą dotyczyły każdego elementu HTML, bez względu na jego typ. To podejście jest zgodne z zasadami stosowania stylów kaskadowych, gdzie style są aplikowane do elementów w sposób hierarchiczny, a selektor uniwersalny jest najogólniejszym z dostępnych. Przykładem zastosowania może być sytuacja, gdy chcemy ustawić jednolite formatowanie dla całej strony, co upraszcza proces projektowania i zapewnia spójność wizualną. Dobrą praktyką jest jednak używanie selektora uniwersalnego z umiarem, aby uniknąć nadmiernego obciążenia wydajności, szczególnie w większych dokumentach, gdzie precyzyjniejsze selektory mogą przynieść lepsze rezultaty.

Pytanie 15

Który z języków skryptowych nie wykonuje operacji po stronie serwera?

A. ASP
B. PHP
C. Perl
D. CSS
ASP, PHP i Perl to języki skryptowe, które są używane po stronie serwera, co oznacza, że ich kod jest wykonywany na serwerze przed dostarczeniem strony do użytkownika. ASP (Active Server Pages) to technologia opracowana przez Microsoft, która umożliwia tworzenie dynamicznych stron internetowych poprzez integrację z bazami danych oraz obsługę skryptów. PHP (Hypertext Preprocessor) jest jednym z najpopularniejszych języków skryptowych, który również działa po stronie serwera, umożliwiając tworzenie stron internetowych, które mogą generować HTML w oparciu o dane z różnych źródeł, takich jak bazy danych MySQL. Perl, pierwotnie stworzony do przetwarzania tekstu, stał się również wszechstronnym językiem skryptowym do aplikacji webowych, obsługując różnorodne zadania serwerowe. Te języki są integralną częścią nowoczesnego rozwoju aplikacji webowych i pozwalają na obsługę logiki biznesowej, interakcji z użytkownikami oraz komunikacji z bazami danych, co jest niezbędne w tworzeniu dynamicznych i interaktywnych aplikacji internetowych.

Pytanie 16

Aby utworzyć relację wiele do wielu pomiędzy tabelami A i B, należy

A. wiele wpisów z tabeli A zduplikuje się w tabeli B
B. tabela A będzie miała identyczne pola jak tabela B
C. wprowadzić trzecią tabelę zawierającą klucze obce do tabel A i B
D. tabelę A połączyć z tabelą B przez utworzenie kluczy obcych
Twierdzenie, że wystarczy połączyć tabelę A z tabelą B za pomocą zdefiniowania kluczy obcych, jest błędne, ponieważ taka operacja tworzy jedynie relację jeden do wielu, a nie wiele do wielu. W przypadku relacji jeden do wielu jedna tabela (np. tabela A) może być połączona z wieloma rekordami w drugiej tabeli (np. tabela B), ale nie odwrotnie. Co więcej, zduplikowanie wielu rekordów z tabeli A w tabeli B prowadziłoby do powstania redundancji i nieefektywnego zarządzania danymi, co jest sprzeczne z zasadami normalizacji baz danych. Wreszcie, posiadanie tabeli A z takimi samymi polami co tabela B jest nieadekwatne i niezgodne z ideą relacji wiele do wielu. Tego typu rozwiązanie prowadziłoby do chaosu w strukturze bazy danych oraz utrudniałoby jakiekolwiek operacje na zbiorach danych. Aby zrealizować relację wiele do wielu, należy zawsze wprowadzić osobną tabelę, która będzie w stanie efektywnie łączyć obie oryginalne tabele, umożliwiając ich prawidłowe powiązanie i zarządzanie danymi.

Pytanie 17

Klucz obcy w tabeli jest ustanawiany w celu

A. zapewnić jednoznaczną identyfikację rekordu w tabeli
B. opracować formularz do wprowadzania danych do tabeli
C. wiązać go z innymi kluczami obcymi w tabeli
D. określić relację 1..n powiązującą go z kluczem głównym innej tabeli
Klucz obcy (foreign key) w bazach danych jest fundamentalnym elementem w modelowaniu relacji pomiędzy tabelami. Jego podstawowym celem jest zdefiniowanie relacji 1..n pomiędzy tabelą, w której się znajduje, a kluczem głównym innej tabeli. Oznacza to, że jeden rekord w tabeli, która zawiera klucz główny, może być powiązany z wieloma rekordami w tabeli z kluczem obcym. Na przykład, w systemie zarządzania zamówieniami, tabela 'Klienci' może mieć klucz główny 'ID_klienta', a tabela 'Zamówienia' może zawierać klucz obcy 'ID_klienta', co pozwala na powiązanie wielu zamówień z jednym klientem. To nie tylko ułatwia strukturalne organizowanie danych, ale również wspiera integralność referencyjną; czyli zapewnia, że każdy wpis w tabeli 'Zamówienia' odnosi się do istniejącego klienta. W praktyce, dobre praktyki projektowania baz danych zalecają używanie kluczy obcych do zachowania spójności danych i ułatwienia ich analizy, co odzwierciedla większą efektywność w strumieniu pracy oraz w raportowaniu.

Pytanie 18

Aby utworzyć strukturę strony internetowej za pomocą znaczników semantycznych języka HTML 5, zgodnie z przedstawionym na ilustracji projektem, SEKCJA B powinna być zawarta w znaczniku

Ilustracja do pytania
A. <header></header>
B. <section></section>
C. <article></article>
D. <nav></nav>
W tym zadaniu kluczowe jest rozpoznanie, że sekcja B na ilustracji nie jest zwykłym fragmentem treści, tylko blokiem służącym do poruszania się po stronie: linki „Główna”, „O nas”, „Kontakt”. W semantycznym HTML5 dla takiej właśnie grupy odsyłaczy przewidziano specjalny znacznik <nav>. Częsty błąd polega na tym, że projektanci wrzucają menu nawigacyjne do zwykłego <div> albo <section>, a semantykę zostawiają na później. Technicznie strona działa, ale traci się zalety wynikające z poprawnej struktury: czytniki ekranu nie mogą łatwo przeskoczyć do nawigacji, roboty wyszukiwarek gorzej interpretują układ, a cała strona staje się mniej dostępna. Innym typowym nieporozumieniem jest używanie <header> dla wszystkiego, co znajduje się „na górze” strony. Nagłówek faktycznie często zawiera menu, ale to menu i tak powinno być wydzielone znacznikiem <nav> wewnątrz <header>. Sam <header> opisuje obszar wprowadzający: logo, tytuł, czasem slogan. Z kolei <section> i <article> służą do logicznego dzielenia treści merytorycznej, a nie do nawigacji. Jeśli więc sekcja B zawiera tylko linki menu, zamykanie jej w <section> myli sens dokumentu – wygląda, jakby to była kolejna część artykułu, a nie narzędzie przechodzenia między podstronami. Podobnie znaczniki typu <aside> czy <footer> też nie pasują: <aside> jest na treści poboczne, a <footer> na stopkę. W nowoczesnych projektach, zgodnych z HTML Living Standard i dobrymi praktykami dostępności, wszystkie główne obszary nawigacji opisuje się konsekwentnie za pomocą <nav> i to właśnie odróżnia kod „zlepiony byle działał” od kodu, który jest przemyślany i profesjonalny.

Pytanie 19

Kod źródłowy przedstawiony poniżej ma na celu wyświetlenie

Ilustracja do pytania
A. wylosowanych liczb z zakresu od 1 do 99
B. ciągu liczb od 1 do 100
C. losowych liczb od 0 do 100, aż do wylosowania wartości 0
D. liczb wprowadzonych z klawiatury, aż do momentu wprowadzenia wartości 0
Kod źródłowy przedstawiony w pytaniu inicjuje losowanie liczb w przedziale od 0 do 100 i wyświetla je na ekranie aż do momentu wylosowania liczby 0. Taki sposób działania jest możliwy dzięki zastosowaniu pętli while która wykonuje się dopóki warunek w niej zawarty jest spełniony. W tym przypadku warunek ten to różność zmiennej liczba od zera. Funkcja rand(0 100) generuje losowe liczby całkowite z zadanego przedziału. W momencie wylosowania wartości 0 pętla przestaje się wykonywać co skutkuje zakończeniem procesu wyświetlania liczb na ekranie. Tego typu pętle są często używane w programowaniu do tworzenia losowych zdarzeń np. w grach komputerowych gdzie potrzebne jest dynamiczne generowanie wartości. Warto zwrócić uwagę na to że funkcja rand jest standardową funkcją w wielu językach programowania pozwalającą na generowanie losowych liczb co jest przydatne w testowaniu algorytmów w różnych warunkach. Praktyka ta wspomaga proces nauki i doskonalenia umiejętności programistycznych dzięki możliwości symulacji losowych scenariuszy.

Pytanie 20

Który z poniższych sposobów na dodawanie komentarzy do kodu nie jest używany w języku PHP?

A. // komentarz
B. # komentarz
C. /* komentarz */
D. <!-- komentarz -->
Komentarze w kodzie PHP są kluczowym aspektem, który wspomaga zrozumienie i utrzymanie kodu. W PHP możemy korzystać z różnych metod komentowania, które są standardowo akceptowane w branży. Użycie # lub // pozwala na tworzenie komentarzy jedno-liniowych, co jest szczególnie przydatne w przypadku krótkich uwag lub przypomnienia o szczególnych funkcjach kodu. Komentarze wielo-liniowe, z kolei, realizowane przy pomocy /* komentarz */ są idealne do bardziej rozbudowanych objaśnień lub do tymczasowego wyłączenia większych bloków kodu podczas testowania. Zastosowanie <!-- komentarz --> jest błędne, ponieważ jest to sposób komentowania stosowany w HTML, a nie w PHP. To mylne powiązanie może prowadzić do nieporozumień i błędów w kodzie, szczególnie dla programistów, którzy pracują z różnymi językami programowania. Kluczowe jest, aby przy pracy z różnymi językami programowania znać specyfikę ich składni oraz standardy. W praktyce, niepoprawne stosowanie komentarzy może skutkować poważnymi problemami w zrozumieniu kodu, co może prowadzić do zwiększenia czasu potrzebnego na jego debugowanie oraz mniejsze zrozumienie między członkami zespołu. W związku z tym, istotne jest, aby programiści byli świadomi różnorodnych konwencji komend oraz ich kontekstu, co jest kluczowe dla skutecznej współpracy i efektywności wszystkich pracujących nad projektem.

Pytanie 21

Którą wartość zwróci funkcja zapisana w języku C++, jeżeli jej parametrem wejściowym jest tablica wypełniona w następujący sposób: tablica[6] = {3, 4, 2, 4, 10, 0};?

int fun1(int tab[]) {
    int wynik = 0;
    for (int i = 0; i < 6; i++)
        wynik += tab[i];
    return wynik;
}
A. 23
B. 10
C. 960
D. 0
Twoja odpowiedź jest niepoprawna. Wygląda na to, że nie do końca zrozumiałeś, jak działa ta funkcja w języku C++. Funkcja, o której mówimy, sumuje wartości wszystkich elementów tablicy. W podanym pytaniu mamy tablicę z sześcioma elementami: 3, 4, 2, 4, 10, 0. Suma tych elementów wynosi 23, a nie 960, 10 ani 0. Wartości 960, 10 i 0 mogą pochodzić z różnorodnych błędnych wniosków. Na przykład, 960 to produkt wszystkich elementów tablicy, a nie ich suma. Podobnie, 10 to najwyższa wartość w tablicy, a 0 to najniższa. Możliwe, że te wartości byłyby poprawne w innych kontekstach, na przykład, gdybyśmy pytali o produkt elementów, największy element lub najmniejszy element. Ważne jest, aby zawsze dokładnie czytać pytanie i zrozumieć, czego dokładnie oczekuje od nas funkcja. Praca z tablicami jest kluczowym aspektem programowania w języku C++, dlatego warto poświęcić więcej czasu na zrozumienie, jak one działają.

Pytanie 22

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

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Sprawdzić rozmiar tabeli tab
B. Zadeklarować zmienną i
C. Zweryfikować, czy text ma typ string
D. Zainicjować zmienną text
Deklaracja zmiennej i jest już zawarta w nagłówku pętli for co czyni ją poprawną konstrukcją w kontekście iteracyjnego dostępu do elementów tablicy. Sprawdzanie typu zmiennej text przed pętlą mogłoby mieć znaczenie jedynie w szczególnych przypadkach gdyby istniała niepewność co do rodzaju danych z jakimi program ma do czynienia jednak w kontekście zadania najistotniejsze jest zapewnienie że zmienna ta jest zainicjowana. Rozmiar tablicy tab jest sprawdzany w warunku pętli for co stanowi standardową praktykę w celu uniknięcia przekroczenia granic tablicy lecz operacja ta nie ma wpływu na poprawność działania zmiennej text i jej przetwarzanie w pętli. Typowe błędy myślowe w zakresie inicjalizacji zmiennych to pomijanie tego kroku z założeniem że zmienne są automatycznie ustawiane na wartość domyślną co w przypadku JavaScript jest mylące podobnie jak błędne założenie że deklaracja zmiennej i jest opcjonalna przy iteracjach co prowadzi do trudno wykrywalnych błędów w dużych kodach. Kluczowym wnioskiem jest zrozumienie że inicjalizacja zmiennej jest fundamentem poprawnej i bezpiecznej obsługi danych w cyklu programistycznym.

Pytanie 24

Tabela faktury w bazie danych zawiera pola: numer, data, id_klienta, wartość oraz status. Każdego dnia tworzony jest raport dotyczący faktur z dnia bieżącego. Zawiera on jedynie numery oraz wartości faktur. Która z poniższych kwerend SQL pozwoli na wygenerowanie tego raportu?

A. SELECT * FROM faktury WHERE data=CURRENT_DATE();
B. SELECT * FROM faktury;
C. SELECT numer, wartość FROM faktury;
D. SELECT numer, wartosc FROM faktury WHERE data=CURRENT_DATE();
Aby wygenerować raport faktur z bieżącego dnia, kluczowe jest zastosowanie odpowiednich filtrów oraz wybranie tylko tych pól, które są istotne w kontekście raportu. Kwerenda SQL, która prawidłowo odpowiada na postawiony problem, to 'SELECT numer, wartosc FROM faktury WHERE data=CURRENT_DATE();'. Dzięki temu zapytaniu, system wyciąga z bazy danych jedynie numery i wartości faktur, które zostały wystawione w dniu dzisiejszym. Użycie funkcji CURRENT_DATE() pozwala na dynamiczne filtrowanie danych według aktualnej daty, co jest niezbędne do stworzenia codziennego raportu. W praktyce, taka kwerenda może być używana w aplikacjach do zarządzania finansami, gdzie użytkownicy chcą szybko uzyskać podsumowanie transakcji z danego dnia. Standardy SQL wymagają precyzyjnego określenia, które kolumny mają być wyświetlane, a także jakiego rodzaju dane mają być filtrowane. W związku z tym, zastosowanie warunku WHERE jest kluczowe, aby ograniczyć wyniki do faktur z dzisiaj, co zwiększa efektywność analizy danych.

Pytanie 25

W CSS zapis selektora

p > i { color: red;} 
wskazuje, że kolorem czerwonym będzie wyróżniony
A. jedynie tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
B. każdy tekst w znaczniku <p> z wyjątkiem tych w znaczniku <i>
C. wszystkie teksty w znaczniku <p> lub każdy tekst w znaczniku <i>
D. tylko ten tekst znacznika <p>, który ma przypisaną klasę o nazwie i
Odpowiedzi, które nie uznają znaczenia operatora > oraz kontekstu, w jakim elementy <i> są umieszczone, mogą prowadzić do błędnych wniosków. Przykładowo, stwierdzenie, że każdy tekst w znaczniku <p> za wyjątkiem tych w znaczniku <i> zostanie sformatowany, jest niezgodne z zasadami działania CSS, ponieważ selektor ten nie wyklucza jedynie <i>, lecz odnosi się do hierarchii struktury DOM. W praktyce, jeśli <i> nie jest bezpośrednim dzieckiem <p>, to nie będzie objęte regułą. Z kolei pomylenie selektorów może skutkować tym, że nie osiągniemy zamierzonych efektów stylizacji, co jest częstym problemem w projektach webowych. Ponadto, odpowiedzi sugerujące, że selektor dotyczy wszystkich elementów <p> lub że dotyczy on klasy <i>, wynikają z niepełnego zrozumienia podstaw CSS. Należy pamiętać, że klasy są definiowane w osnowie HTML, a nie w kontekście selektorów bezpośrednich. Właściwe zrozumienie selektorów jest kluczowe dla efektywnego stylizowania i organizacji kodu, a także dla osiągnięcia zamierzonych efektów wizualnych na stronach internetowych.

Pytanie 26

W jakim języku została napisana podana linia kodu

Ilustracja do pytania
A. C#
B. Python
C. PHP
D. JavaScript
Kod pokazany na obrazku jest zapisany w języku JavaScript. JavaScript jest językiem programowania, który odgrywa kluczową rolę w tworzeniu dynamicznych i interaktywnych stron internetowych. Linia kodu wykorzystuje metodę document.getElementById która jest częścią Document Object Model (DOM) w JavaScript. DOM pozwala na manipulację elementami HTML strony internetowej. W tym wypadku, metoda getElementById odwołuje się do elementu o identyfikatorze paragraf1, a właściwość innerHTML umożliwia zmianę zawartości tego elementu. To podejście jest powszechnie stosowane w celu dynamicznej aktualizacji treści na stronach bez konieczności przeładowania całej strony. Znajomość JavaScriptu pozwala na tworzenie bardziej responsywnych i atrakcyjnych wizualnie aplikacji webowych. JavaScript jest integralną częścią stosu technologii sieciowych i jest szeroko stosowany w praktycznie każdej nowoczesnej witrynie internetowej. Standardy ECMAScript definiują zasady i poprawne użycie JavaScript, co wspiera rozwój profesjonalny i zgodny z dobrymi praktykami.

Pytanie 27

W języku PHP, aby wyeliminować białe znaki na początku i końcu łańcucha znaków, należy zastosować funkcję

A. strlen( )
B. time( )
C. sort( )
D. trim( )
Funkcja trim() w języku PHP jest kluczowym narzędziem do usuwania zbędnych spacji oraz innych białych znaków z początku i końca ciągu znaków. Jest to istotne, gdyż nieprawidłowe białe znaki mogą prowadzić do błędów w przetwarzaniu danych wejściowych, np. przy porównywaniu czy zapisywaniu do bazy danych. Przykład użycia funkcji trim() może wyglądać następująco: $str = ' Hello World! '; $result = trim($str); echo $result; // Wyświetli 'Hello World!'. Warto zauważyć, że funkcja trim() działa nie tylko na spacji, ale również na tabulatorach i innych znakach białych. Z perspektywy dobrych praktyk, warto stosować trim() przed zapisem danych użytkownika w celu uniknięcia nieprzewidzianych błędów w aplikacji. W kontekście bezpieczeństwa, usuwanie niepotrzebnych spacji pomoże również w walidacji i sanitizacji danych, co jest kluczowe w kontekście ochrony przed atakami typu injection.

Pytanie 28

Pokazane pole input pozwala na

<input type="checkbox" name="text1" value="text2">
A. wybranie opcji
B. wpisanie dowolnego ciągu znaków
C. wprowadzenie hasła
D. selekcję opcji z listy zawierającej wartości text1 oraz text2
Checkboxy różnią się sporo od innych form wprowadzania danych w HTML. Na przykład typ password, który maskuje wprowadzone znaki, by zapewnić ich poufność. Z kolei pole typu text to jeden z najprostszych elementów formularzy, ale nie można w nim zaznaczać opcji. Jak wybierasz coś z listy rozwijanej, to korzystasz z elementu select, który pozwala wybrać jedną z predefiniowanych wartości, ale to nie ma nic wspólnego z checkboxami. Wiele osób myli checkboxy z radiobuttonami, ale te drugie zawsze pozwalają wybrać tylko jedną opcję w grupie. Checkboxy mogą być zaznaczane w dowolnej liczbie, co daje większą elastyczność w projektowaniu. Etykiety label są też istotne, bo ułatwiają zrozumienie, co każdy checkbox robi, co jest ważne dla dostępności. Zrozumienie różnic między typami input to kluczowa sprawa, gdy tworzysz funkcjonalne formularze na stronach. Wiedza o przypisywaniu atrybutów i ich funkcjach to podstawowe umiejętności w HTML i frontendzie.

Pytanie 29

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
B. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
C. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
D. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
Prawidłowa odpowiedź wskazuje, że pierwszym krokiem w procesie tworzenia bazy danych jest określenie celu, co jest kluczowe dla zrozumienia, jakie dane będą gromadzone i w jaki sposób będą one używane. Następnie, stworzenie tabel to fundament, na którym opiera się cała baza danych. Tabele definiują struktury danych, które będą przechowywane, a ich projektowanie powinno uwzględniać normalizację, czyli proces eliminowania redundancji danych i zapewniania ich integralności. Utworzenie relacji między tabelami jest kolejnym krokiem, który pozwala na efektywne łączenie danych w różnych tabelach, co z kolei umożliwia bardziej złożone zapytania. Normalizacja, będąca ostatnim krokiem, pozwala na optymalizację struktury bazy, co zwiększa wydajność operacji. Przykład zastosowania tej kolejności można zobaczyć w projektowaniu systemów zarządzania bazami danych w przedsiębiorstwach, gdzie dokładne określenie potrzeb biznesowych wpływa na przyszłe modele danych i ich relacje.

Pytanie 30

Interpreter PHP zgłosi błąd i nie zrealizuje kodu, jeśli programista:

A. pobierze dane z formularza, w którym pole input pozostało puste
B. nie umieści średnika po wyrażeniu w instrukcji if, gdy po nim występuje sekcja else
C. będzie definiował zmienne w obrębie warunku
D. będzie pisać kod bez zastosowania wcięć
W przypadku pierwszej odpowiedzi dotyczącej pobierania wartości z formularza, należy zrozumieć, że PHP nie generuje błędu, nawet jeśli pole input nie zostało wypełnione. Wartość z pustego pola formularza zostanie przekazana jako pusty string, co nie prowadzi do błędu, ale wymaga dodatkowej walidacji. Niezapełnione pola mogą być zatem obsługiwane bez problemów. Drugą odpowiedzią jest kwestia wcięć w kodzie. Chociaż wcięcia poprawiają czytelność kodu, PHP nie wymaga ich stosowania, a brak wcięć nie spowoduje błędu wykonania, co jest mylącą koncepcją. Warto jednak podkreślić, że stosowanie wcięć jest dobrą praktyką, gdyż pozwala na lepsze zrozumienie struktury programu. Ostatnia odpowiedź dotycząca deklaracji zmiennych wewnątrz warunku również nie prowadzi do błędu interpretera. PHP pozwala na tworzenie zmiennych w dowolnym zakresie, w tym w instrukcjach warunkowych, co jest istotne dla elastyczności języka. Aby uniknąć błędnych wniosków, warto pamiętać, że błędy w PHP wynikają najczęściej z niepoprawnej składni lub niezgodności w konwencji użycia, a nie ze sposobu organizacji kodu w kontekście wcięć czy deklaracji zmiennych.

Pytanie 31

Jaką wartość zwróci funkcja empty($a); w języku PHP, gdy zmienna $a będzie miała wartość 0?

A. TRUE
B. FALSE
C. 0
D. NULL
Wartości 0 i NULL nie są uznawane za tożsame. W przypadku zwrócenia FALSE z funkcji empty(), można byłoby pomyśleć, że 0 jest uważane za wartość pełną, co jest błędnym wnioskiem. 0 w kontekście PHP jest interpretowane jako wartość, która jest pusta, co prowadzi do nieporozumień w stosowaniu tej funkcji. Odpowiedź sugerująca, że funkcja zwróci 0, nie uwzględnia faktu, że empty() nie zwraca wartości liczbowej, lecz logiczną reprezentację pustoty. Podobnie, NULL to inna kategoria wartości, oznaczająca brak wartości. Przyjmowanie NULL jako zwracanej wartości przez empty() jest błędne, ponieważ ta funkcja nie zwraca NULL, a jedynie TRUE lub FALSE w zależności od tego, czy zmienna jest pusta. Odpowiedź sugerująca TRUE jako wynik działa zgodnie z logiką PHP, a błędne wnioski mogą wynikać z braku zrozumienia, jak PHP interpretuje różne typy danych. W praktyce warto unikać takich nieporozumień, stosując dokładne definicje typów i rozumiejąc, jak funkcje manipulują tymi typami.

Pytanie 32

Jakim zapisem można w dokumencie HTML stworzyć element, który wyświetla obraz kotek.jpg oraz zawiera tekst alternatywny „obrazek kotka”?

A. <img href="/kotek.jpg" alt="obrazek kotka">
B. <img src="/kotek.jpg" title="obrazek kotka">
C. <img src="/kotek.jpg" alt="obrazek kotka">
D. <img href="/kotek.jpg" title="obrazek kotka">
W analizowanych odpowiedziach pojawiają się błędne koncepcje dotyczące atrybutów używanych w tagu <img>. Atrybut 'href' nie jest właściwy w kontekście obrazów; jest on używany w tagu <a> do definiowania linków. W związku z tym zapisy, które zawierają 'href', są niepoprawne, ponieważ nie prowadzą do załadowania obrazu. Zamiast tego, atrybut 'src' jest kluczowy, ponieważ informuje przeglądarkę, skąd ma pobrać plik graficzny. Ponadto ważne jest, aby używać atrybutu 'alt' w celu opisu zawartości obrazów, co znacząco wpływa na dostępność strony internetowej. W przypadku pominięcia atrybutu 'alt' lub użycia niewłaściwego atrybutu, użytkownicy korzystający z technologii asystujących mogą nie otrzymać istotnych informacji o wizualnych elementach strony, co może prowadzić do frustracji i braku zrozumienia treści. Należy unikać typowych błędów myślowych, takich jak przekonanie, że atrybuty są zamienne lub że nie mają one znaczenia dla dostępności. Łączenie niewłaściwych atrybutów z tagiem <img> skutkuje poważnymi problemami z wyświetlaniem treści oraz dostępnością strony, co jest sprzeczne z najlepszymi praktykami tworzenia stron internetowych.

Pytanie 33

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

A. więzy integralności
B. archiwizację bazy
C. kwerendę aktualizującą
D. defragmentację bazy
Rozważając archiwizację bazy, defragmentację bazy oraz kwerendy aktualizujące jako strategie zapewnienia spójności danych, można zauważyć istotne różnice w ich funkcjach i zastosowaniach. Archiwizacja bazy danych polega na przeniesieniu starych lub nieaktywnych danych do archiwum, co ma na celu zwolnienie przestrzeni oraz poprawę wydajności systemu. Choć archiwizacja może pośrednio wpłynąć na spójność danych poprzez usunięcie danych nieaktualnych, nie jest to bezpośrednia metoda zapewnienia integralności danych w momencie ich wprowadzania czy modyfikacji. Defragmentacja bazy danych to proces mający na celu uporządkowanie fizycznego rozmieszczenia danych na dysku, co poprawia szybkość dostępu do danych. Mimo że poprawia to wydajność systemu, defragmentacja nie ma wpływu na reguły dotyczące spójności i poprawności danych. Z kolei kwerendy aktualizujące służą do modyfikacji istniejących danych w bazie, jednak same w sobie nie ustanawiają zasad dotyczących integralności danych. Użytkownicy mogą mylnie sądzić, że te procesy mogą zastąpić więzy integralności, co jest nieprawdziwe, ponieważ więzy te są kluczowe dla utrzymania logicznej spójności i poprawności danych w bazie. Właściwe podejście do zarządzania danymi wymaga zastosowania więzów integralności jako fundamentu, na którym opiera się cała struktura bazy danych, zapewniając jej niezawodność i spójność.

Pytanie 34

Jakie działanie wykonuje poniższy fragment kodu w języku JavaScript? n = "Napis1"; s = n.length;

A. Zwraca długość napisu zawartego w zmiennej n
B. Przypisuje do zmiennej s wartość odpowiadającą długości napisu z zmiennej n
C. Przypisuje wartość zmiennej n do zmiennej s
D. Przypisuje do zmiennej s część napisu z zmiennej n, o długości określonej przez zmienną length
Odpowiedzi, które błędnie interpretują fragment kodu, wskazują na nieporozumienie dotyczące działania właściwości length oraz przypisania wartości w JavaScript. Przypisanie zmiennej n do zmiennej s nie jest możliwe w kontekście omawianego fragmentu, ponieważ zmienna s nie przyjmuje obiektu, a wyłącznie wartość długości napisu. Stwierdzenie, że skrypt wyświetli długość napisu, jest również nieprawidłowe, ponieważ w danym kodzie nie ma operacji wyświetlania - zmienne są jedynie przypisane. Kolejnym błędnym wnioskiem jest przypisanie fragmentu napisu do zmiennej s, co nie ma miejsca, ponieważ length zwraca tylko liczbę, a nie podłańcuch. Podstawowym błędem myślowym jest pomylenie przypisania wartości z operacjami wyświetlania i manipulacji łańcuchami. Warto zrozumieć, że JavaScript, jako język o dynamicznej typizacji, wymaga precyzyjnego rozumienia typów danych, a także właściwości i metod obiektów, co jest kluczowe dla efektywnego programowania. Niezrozumienie tych podstawowych konceptów może prowadzić do wielu błędów w kodzie, które są trudne do zdiagnozowania, a także mogą wpływać na wydajność i stabilność aplikacji.

Pytanie 35

Funkcja phpinfo() umożliwia:

A. analizowanie kodu PHP pod kątem błędów
B. uzyskanie informacji o środowisku pracy serwera obsługującego PHP
C. inicjowanie skryptu w języku PHP
D. sprawdzanie wartości zmiennych wykorzystanych w skrypcie PHP
Funkcja phpinfo() jest kluczowym narzędziem w ekosystemie PHP, które dostarcza szczegółowych informacji o konfiguracji środowiska, w którym działa PHP. Użycie tej funkcji pozwala deweloperom na uzyskanie danych takich jak wersja PHP, zainstalowane rozszerzenia, ustawienia konfiguracyjne, oraz dane o systemie operacyjnym. Przykładowo, deweloper może wykorzystać phpinfo() do szybkiego sprawdzenia, czy potrzebne rozszerzenie, takie jak GD lub cURL, jest zainstalowane na serwerze. Pozwoli to uniknąć problemów związanych z brakującymi funkcjami w kodzie. Ponadto, funkcja ta jest także pomocna w procesach rozwiązywania problemów, ponieważ umożliwia natychmiastowy wgląd w kluczowe zmienne konfiguracyjne, co jest zgodne z najlepszymi praktykami w zakresie zarządzania środowiskami aplikacji webowych. Warto jednak pamiętać, że phpinfo() powinno być używane ostrożnie i tylko w środowisku deweloperskim, aby nie ujawniać danych konfiguracyjnych w produkcji.

Pytanie 36

Z tabel Klienci oraz Uslugi należy wyodrębnić tylko imiona klientów oraz odpowiadające im nazwy usług, które kosztują więcej niż 10 zł. Kwerenda uzyskująca te informacje ma formę

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id
B. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10
C. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id
Odpowiedź 4 jest prawidłowa, ponieważ prawidłowo wykorzystuje składnię SQL do połączenia dwóch tabel oraz filtrowania danych na podstawie podanego warunku. Kwerenda używa JOIN, aby połączyć tabele Klienci i Uslugi na podstawie wspólnej kolumny uslugi_id, co jest zgodne z zasadami relacyjnej bazy danych, gdzie klucz obcy w jednej tabeli odnosi się do klucza głównego w innej tabeli. Następnie, kwerenda stosuje filtrację WHERE cena > 10, co pozwala na wybór tylko tych rekordów, gdzie cena usługi przekracza 10 zł. Jest to zgodne z praktyką selektywnego pobierania danych, co jest kluczowe w optymalizacji zapytań i skutecznym zarządzaniu zasobami bazy danych. Zastosowanie takich technik jest standardem w branży, umożliwiając efektywne zarządzanie dużymi zbiorami danych oraz zwiększenie wydajności aplikacji poprzez ograniczenie liczby zwracanych wierszy do tych, które spełniają określone kryteria. Zrozumienie i umiejętność implementacji takich zapytań SQL to podstawowa umiejętność dla specjalistów IT pracujących z bazami danych.

Pytanie 37

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

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

Pytanie 38

Na ilustracji przedstawiono rezultat stosowania stylów CSS oraz odpowiadający mu kod HTML, który generuje ten przykład. Przyjmując, że marginesy wewnętrzne mają wartość 50 px, natomiast zewnętrzne wynoszą 20 px, styl CSS dla tego obrazu wygląda następująco

Ilustracja do pytania
A. Odpowiedź C
B. Odpowiedź A
C. Odpowiedź B
D. Odpowiedź D
Odpowiedź C jest poprawna, ponieważ zdefiniowany styl CSS zawiera wszystkie elementy odpowiadające przedstawionemu formatowaniu obrazu. Styl ten określa kolor tła jako Teal, co jest zgodne z opisem wizualnym obrazu. Dodatkowo zastosowanie solidnej czarnej ramki o grubości 4 pikseli odpowiada profesjonalnym standardom, które zapewniają wyraźne oddzielenie obrazu od reszty treści przez wyróżnienie go. Zastosowanie marginesów zewnętrznych o wartości 20 pikseli oraz wewnętrznych paddingów o wartości 50 pikseli jest zgodne z podanym założeniem, co pozwala na właściwe umiejscowienie obrazu na stronie, dając przestrzeń wokół i wewnątrz elementu. Dbałość o takie szczegóły jest kluczowa dla tworzenia responsywnych i estetycznych stron internetowych. Praktyczne stosowanie tego typu stylizacji umożliwia poprawienie czytelności oraz przyciąga uwagę użytkowników na znaczące elementy strony. Warto przy tym pamiętać o zasadzie KISS (Keep It Simple, Stupid), która zachęca do utrzymywania prostoty w projektach, co nie tylko ułatwia ich tworzenie ale też późniejsze utrzymanie.

Pytanie 39

W CSS określono styl dla stopki. Jak można zastosować to formatowanie do bloku oznaczonego znacznikiem div?

#stopka { ... }
A. <div "stopka"> …
B. <div class = "stopka"> …
C. <div title = "stopka"> …
D. <div id = "stopka"> …
Poprawnie – zapis #stopka w CSS oznacza selektor identyfikatora (ID), więc w HTML musimy użyć atrybutu id="stopka" dokładnie z tą samą nazwą. W CSS znak # wskazuje, że styl jest przypisany do elementu o konkretnym identyfikatorze, a nie do klasy czy czegokolwiek innego. Dlatego jedynym prawidłowym sposobem podpięcia tego stylu do bloku div jest konstrukcja: <div id="stopka">…</div>. W praktyce wygląda to tak: CSS: #stopka { background-color: #333; color: white; padding: 20px; } HTML: <div id="stopka">To jest stopka strony</div> Przeglądarka łączy selektor #stopka z elementem, który ma id="stopka" i nakłada na niego zdefiniowane właściwości. Identyfikator powinien być unikalny w obrębie całego dokumentu HTML, co jest zgodne z zaleceniami W3C i ogólnie przyjętą dobrą praktyką. Do jednego ID odwołujemy się w CSS przez #, a w JavaScript przez document.getElementById("stopka"). Moim zdaniem warto zapamiętać prostą zasadę: # w CSS = id w HTML, kropka (.) w CSS = class w HTML. Gdy projektujesz layout strony, zwykle elementy typu nagłówek, stopka, główna nawigacja mają unikalne ID, bo występują raz na stronie. Natomiast powtarzalne elementy (np. kafelki z produktami) dostają klasy. Dzięki temu kod jest czytelniejszy, łatwiej się go utrzymuje i unikamy dziwnych konfliktów stylów. Dobrą praktyką jest też używanie opisowych nazw, np. id="stopka" zamiast skrótów typu id="s1", bo po miesiącu nikt nie pamięta, co to znaczyło.

Pytanie 40

W SQL warunek ten odpowiada warunkowi liczba >= 10 AND liczba <= 100?

A. NOT (liczba < 10 AND liczba > 100)
B. liczba IN (10, 100)
C. liczba BETWEEN 10 AND 100
D. liczba LIKE '10%'
Odpowiedzi, które nie są poprawne, mogą wynikać z nieporozumień dotyczących operatorów logicznych i porównawczych w SQL. Rozważając pierwszą odpowiedź, 'NOT (liczba < 10 AND liczba > 100)', można zauważyć, że wyrażenie to w rzeczywistości sprawdza, czy liczba nie jest ani mniejsza niż 10, ani większa niż 100. Choć może się wydawać, że jest to zbliżone do sprawdzania, czy liczba mieści się w przedziale, to w rzeczywistości wyrażenie to jest kluczowo różne – może być mylące, ponieważ nie uwzględnia wartości brzegowych, co prowadzi do błędnych wyników. Z kolei odpowiedź 'liczba IN (10, 100)' również nie oddaje sensu warunku, ponieważ operator IN sprawdza tylko, czy liczba jest równa jednej z wymienionych wartości, a nie czy mieści się w przedziale. Co więcej, 'liczba LIKE '10%'' to wyrażenie, które jest stosowane do porównywania z wzorcami tekstowymi i nie jest odpowiednie w kontekście porównywania wartości liczbowych. Użycie LIKE w takim przypadku może prowadzić do nieprzewidywalnych wyników, szczególnie gdy porównywane są liczby i tekst. Takie błędne podejścia mogą wynikać z niewłaściwego zrozumienia różnicy między operatorami porównawczymi a operatorami logicznymi, co jest kluczowe w efektywnym korzystaniu z SQL.