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: 21 marca 2026 20:10
  • Data zakończenia: 21 marca 2026 20:14

Egzamin niezdany

Wynik: 9/40 punktów (22,5%)

Wymagane minimum: 20 punktów (50%)

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

W CSS, stosowanie poniższego kodu na stronie z kilkoma akapitami, gdzie każdy składa się z kilku linijek, spowoduje, że

p::first-line
{
    font-size: 150%;
}
A. cały tekst w paragrafie zostanie powiększony o 150%
B. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
C. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
D. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
Rozważając pozostałe możliwości zauważamy że zapis p::first-line { font-size: 150%; } odnosi się tylko do pierwszej linii każdego paragrafu a nie do całego tekstu paragrafu. Błędne myślenie że całość tekstu paragrafu będzie powiększona o 150% wynika z mylnego zrozumienia zasięgu pseudo-elementu. Pseudo-elementy takie jak ::first-line mają zastosowanie tylko do specyficznych części elementów blokowych w tym przypadku pierwszej linii co oznacza że ich działanie nie rozciąga się na cały paragraf. Podobnie sugerowanie że cała czcionka paragrafu zostanie zmieniona na mniejszą jest niepoprawne ponieważ ::first-line nie zmienia domyślnej wielkości czcionki pozostałych linii. W kontekście CSS rozmiar czcionki dla całego elementu można zmodyfikować bezpośrednio przez selektor elementu a nie przez pseudo-element. Przypisywanie zmiany czcionki tylko do pierwszej linii jest częstym sposobem na wyróżnienie tekstu w sposób który nie ingeruje w ogólny styl i strukturę dokumentu co jest zgodne z najlepszymi praktykami projektowania stron. Takie podejście umożliwia bardziej elegancką i czytelną prezentację informacji co jest kluczowe w tworzeniu intuicyjnych interfejsów użytkownika. Ważne jest aby rozumieć różnice między pseudo-elementami a innymi metodami stylizacji aby dokładnie przewidywać efekty określonych stylów w CSS i skutecznie stosować je do osiągania zamierzonych efektów projektowych. W przypadku chęci zmiany stylu całego paragrafu należałoby bezpośrednio użyć odpowiedniego selektora CSS dla całego elementu bez ograniczania się do pseudo-elementu first-line co pozwala na pełną kontrolę nad wszystkimi aspektami wizualnymi tekstu w danym kontekście.

Pytanie 2

Aby przekształcić tekst "ala ma psa" na "ALA MA PSA", należy zastosować funkcję PHP

A. strstr("ala ma psa")
B. ucfirst("ala ma psa")
C. strtolower("ala ma psa")
D. strtoupper("ala ma psa")
Fajnie, że użyłeś funkcji strtoupper w PHP! Dzięki niej przekształcasz cały tekst na wielkie litery, co w tym przypadku zmienia 'ala ma psa' na 'ALA MA PSA'. To naprawdę przydatna funkcja, zwłaszcza w aplikacjach webowych, gdzie ważne jest, żeby tekst wyglądał tak, jak powinien, np. zgodnie z zasadami SEO czy przy prezentacji danych. Przykładowo, w formularzach warto, żeby nazwy użytkowników zawsze były w tym samym formacie. Poza tym jest cała masa innych funkcji w PHP, które mogą przydać się do manipulacji tekstem, a ich znajomość poprawia jakość kodu i jego czytelność.

Pytanie 3

Zdefiniowano bazę danych z tabelą sklepy, zawierającą pola: nazwa, ulica, miasto, branża. Aby odnaleźć wszystkie nazwy sklepów spożywczych znajdujących się wyłącznie we Wrocławiu, należy użyć kwerendy:

A. SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';
B. SELECT sklepy FROM branza='spożywczy' WHERE miasto='Wrocław';
C. SELECT sklepy FROM nazwa WHERE branza='spożywczy' BETWEEN miasto='Wrocław';
D. SELECT nazwa FROM sklepy WHERE branza='spożywczy' OR miasto='Wrocław';
Pierwsza odpowiedź nie jest właściwa, bo użycie BETWEEN w SQL po prostu nie ma sensu w tym kontekście. BETWEEN jest do określania zakresów wartości, na przykład dat, a nie do porównania różnych kolumn. No i zapytanie jest źle skonstruowane, bo nie mówi, z jakiej tabeli chcemy pobrać te dane. Druga odpowiedź też myli się w składni, bo zamienia kolejność operatorów i nie dodaje odpowiednich klauzul, co prowadzi do błędnych wyników. Na przykład, użycie branza='spożywczy' tam gdzie powinno być FROM, to wyraźny błąd. Trzecia odpowiedź korzysta z operatora OR, co jest technicznie błędne dla tego zapytania, ponieważ chcemy, żeby oba warunki były spełnione jednocześnie. W rezultacie, wszystkie te odpowiedzi są po prostu błędne i nie spełniają standardów pisania zapytań SQL.

Pytanie 4

Którego atrybutu należy użyć w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby zdefiniować źródło cytatu?

<blockquote ...="https://pl.wikipedia.org">
Pokojowa Nagroda Nobla jest przyznawana kandydatom, którzy wykonali największą lub najlepszą
pracę na rzecz braterstwa między narodami
</blockquote>
A. src
B. cite
C. href
D. alt
Niestety, twoja odpowiedź nie jest poprawna. Atrybut 'cite' w znaczniku <blockquote> jest używany do definiowania źródła cytatu, a nie 'alt', 'src' ani 'href'. Atrybut 'alt' jest używany w obrazach jako tekst alternatywny, który jest wyświetlany, gdy obraz nie może być ładowany lub jest odczytywany przez czytniki ekranowe. Z kolei 'src' jest atrybutem, który określa ścieżkę do obrazu lub innego zasobu multimedialnego. 'href' jest używany w znacznikach 'a' i 'link' do określenia URL strony lub innego zasobu, do którego prowadzi link. Pomyłka ta może wynikać z braku zrozumienia różnych zastosowań atrybutów w HTML. Pamiętaj, że każdy atrybut ma swoje specyficzne zastosowanie i nie są one zamienne.

Pytanie 5

Jakie są przykłady standardowych poleceń w języku zapytań SQL, odnoszących się do operacji na danych SQL DML, takich jak wstawianie, usuwanie oraz modyfikacja danych?

A. ALTER, CREATE, DROP
B. DELETE, INSERT, UPDATE
C. DENY, GRANT, REVOKE
D. SELECT, SELECT INTO
Wybór innych odpowiedzi nie jest poprawny, ponieważ skupiają się na różnych aspektach zarządzania bazami danych. Polecenia typu ALTER, CREATE i DROP są związane z definicją danych (DDL, Data Definition Language). ALTER umożliwia modyfikację struktury tabeli, na przykład dodawanie nowych kolumn, natomiast CREATE jest używane do tworzenia nowych obiektów w bazie danych, takich jak tabele czy widoki. DROP z kolei służy do usuwania tych obiektów. Te polecenia są fundamentalne dla zarządzania strukturą bazy, ale nie dotyczą bezpośrednio operacji na danych. Inna grupa poleceń, takich jak DENY, GRANT i REVOKE, odnosi się do zarządzania uprawnieniami użytkowników w systemie baz danych, co jest istotne dla bezpieczeństwa, ale nie wpływa na manipulację danymi. Te polecenia kontrolują, kto ma dostęp do jakich danych, co jest kluczowe w kontekście bezpieczeństwa, ale nie są one używane do wprowadzania, usuwania czy aktualizacji danych w tabelach. Dlatego te zestawy poleceń, mimo że są istotne w kontekście zarządzania bazami danych, nie odpowiadają na pytanie dotyczące operacji na danych w kontekście DML.

Pytanie 6

Jak określa się metodę umożliwiającą nawiązanie asynchronicznego połączenia klienta z serwerem i prowadzenie komunikacji bez konieczności przeładowania całej strony WWW?

A. AJAX
B. VBScript
C. PHP
D. XML
PHP, VBScript i XML to technologie, które w kontekście pytania nie pełnią roli techniki asynchronicznej komunikacji między klientem a serwerem. PHP to język skryptowy wykorzystywany głównie po stronie serwera do generowania dynamicznych treści HTML. Jego działanie polega na przetwarzaniu kodu na serwerze przed wysłaniem strony do klienta, co nie pozwala na asynchroniczną komunikację. VBScript, z kolei, to język skryptowy stworzone przez Microsoft, który jest używany głównie w kontekście aplikacji Windows i nie jest standardem w programowaniu po stronie klienta. Nie jest on także szeroko wspierany w nowoczesnych przeglądarkach internetowych. XML (Extensible Markup Language) to format wymiany danych, który może być używany z AJAX-em, ale sam w sobie nie jest techniką komunikacyjną. Często błędne podejście do tematu polega na myleniu formatu wymiany danych z metodą komunikacji. Użytkownicy mogą sądzić, że XML może zastąpić AJAX, co jest nieprawidłowe, ponieważ XML służy jako format danych, a nie jako mechanizm do asynchronicznej wymiany. Warto zrozumieć, że skuteczne projekty webowe opierają się na zintegrowanym stosie technologii, a nie tylko na pojedynczych elementach. Praktyki takie jak RESTful API czy SOAP są bardziej związane z AJAX-em, podczas gdy PHP i inne technologie serwerowe pełnią inną rolę w architekturze aplikacji.

Pytanie 7

Walidacja formularzowych pól polega na zweryfikowaniu

A. czy użytkownik jest zalogowany.
B. który użytkownik wprowadził informacje.
C. czy istnieje plik PHP, który odbierze dane.
D. czy wprowadzone dane spełniają określone reguły.
Jak przeanalizować te niepoprawne odpowiedzi, to widać, że większość z nich kompletnie nie rozumie, o co chodzi z walidacją formularzy. Na przykład, mówienie, że walidacja ma na celu sprawdzenie, czy użytkownik jest zalogowany, to nie to, o co chodzi. Walidacja jest po to, żeby upewnić się, że dane wprowadzone przez użytkownika są poprawne i można je przetwarzać. Z kolei, twierdzenie, że walidacja dotyczy właśnie tego, kto konkretnie wprowadził dane, to inna sprawa, bo to już bardziej o autoryzacji, a nie o walidacji. Co więcej, mówienie o pliku PHP, który ma odbierać dane, też jest mylące. Jasne, że plik PHP jest potrzebny, ale sam w sobie nie wpłynie na to, czy dane są poprawne. Kluczowe w walidacji jest to, żeby dane się zgadzały z określonymi zasadami, bo inaczej możemy narobić sobie kłopotów z błędami w bazach danych czy z bezpieczeństwem systemu. Ignorowanie tego może się skończyć naprawdę źle.

Pytanie 8

Instrukcja w języku JavaScript

var napis1 = new napisy();
ma na celu
A. wykonanie metody obiektu napisy
B. zadeklarowanie zmiennej napis1 oraz uruchomienie funkcji, która przyjmuje jako argument napis1
C. stworzenie obiektu napis1 z klasy napisy
D. stworzenie nowej klasy napis1
Niepoprawne odpowiedzi bazują na powszechnych nieporozumieniach dotyczących podstaw programowania w JavaScript. Wywołanie metody obiektu napisów nie może być zrealizowane w sposób przedstawiony w pytaniu, ponieważ fragment "var napis1 = new napisy();" nie wskazuje na jakiekolwiek metody, a jedynie na tworzenie nowego obiektu. Istnieje różnica między deklarowaniem obiektu a wywoływaniem jego metod. Również nie ma możliwości, aby zadeklarować zmienną napis1 i jednocześnie wywołać funkcję z jej argumentem w tym kontekście, gdyż zapis ten nie zawiera żadnych funkcji. Kolejna koncepcja dotycząca utworzenia nowej klasy jest błędna, ponieważ "var napis1 = new napisy();" nie tworzy klasy, a instancję obiektu. W praktyce, typowe błędy myślowe związane z tymi odpowiedziami wynikają z mylenia instancji obiektu z definicją klasy. Użytkownicy mogą myśleć, że przypisanie "new napisy()" tworzy klasę, podczas gdy tak naprawdę ta operacja tworzy nowy obiekt z dostępem do metod i właściwości zdefiniowanych w klasie napisy. Ważne jest zrozumienie, że klasy w JavaScript muszą być zdefiniowane wcześniej, aby można było tworzyć ich instancje, co stanowi kluczowy element programowania obiektowego.

Pytanie 9

W CSS zapis

a[target="_blank"] {color: yellow;}
spowoduje, że tekst linków przybierze kolor żółty.
A. linków, które otwierają się w nowej karcie.
B. linków, które otwierają się w tej samej karcie.
C. treści akapitu.
D. wszystkich linków.
Odpowiedź 'odnośników, które otwierają się w osobnej karcie' jest poprawna, ponieważ w CSS selektor 'a[target="_blank"]' odnosi się do elementów <a> (odnośników), które mają atrybut 'target' ustawiony na '_blank'. Oznacza to, że te odnośniki są zaprojektowane do otwierania linków w nowej karcie lub oknie przeglądarki. Przykład zastosowania: jeśli tworzymy stronę internetową z odnośnikami do zewnętrznych zasobów, użycie atrybutu 'target="_blank"' pozwala użytkownikom na zachowanie otwartej strony w przeglądarce. W CSS, kolor czcionki tych odnośników został ustawiony na żółty, co jest praktycznym podejściem do wyróżnienia ich w stosunku do innych linków. Warto również zauważyć, że stosowanie kolorów w kontekście dostępności jest istotne, dlatego dobór kolorów powinien być przemyślany, aby nie wpłynąć negatywnie na czytelność. Dobre praktyki obejmują również dodanie wskazówki do odnośnika, na przykład poprzez użycie atrybutu 'title', co jeszcze bardziej ułatwia użytkownikom zrozumienie, czego mogą się spodziewać po kliknięciu w link.

Pytanie 10

W JavaScript metoda Math.random() ma na celu

A. porównać dwie sekwencje znaków
B. zwrócić liczbę po zaokrągleniu
C. zaokrąglić liczbę do najbliższej większej liczby całkowitej
D. zwrócić liczbę pseudolosową
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 11

Z tabel Artykuly oraz Autorzy należy wyodrębnić tylko nazwiska autorów oraz tytuły ich artykułów, które uzyskały ocenę 5. Odpowiednia kwerenda do pozyskania tych informacji ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
C. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
D. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
Odpowiedź SELECT nazwisko tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5; jest poprawna ponieważ precyzyjnie wykorzystuje konstrukcję SQL do połączenia tabel Autorzy i Artykuly. JOIN łączy te tabele na podstawie klucza obcego autorzy_id w tabeli Artykuly który odpowiada kluczowi głównemu id w tabeli Autorzy. To pozwala na uzyskanie pełnej informacji o autorach i ich artykułach. Klauzula WHERE ocena = 5 filtruje wyniki i zwraca jedynie te które mają ocenę równą 5. Jest to standardowe podejście w SQL do pobierania danych na podstawie określonych kryteriów co jest bardzo efektywne w zarządzaniu dużymi zbiorami danych. Praktyczne zastosowanie tego typu kwerend obejmuje na przykład systemy rekomendacji artykułów gdzie tylko dobrze ocenione treści są pokazywane użytkownikom. Stosowanie takich kwerend zgodnie z najlepszymi praktykami pozwala na utrzymanie wydajności bazy danych oraz na zapewnienie integralności danych co jest kluczowe w profesjonalnym zarządzaniu bazami danych.

Pytanie 12

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

A. imion, numerów PESEL i wieku osób, które mają 18 lub 30 lat
B. imion, nazwisk i numerów PESEL osób młodszych niż 18 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 13

Która z zasad dotyczących użycia semantycznych znaczników sekcji w języku HTML 5 jest poprawna?

A. Znacznik <main> może być użyty tylko raz w danym dokumencie
B. Znacznik <aside> jest wykorzystywany dla dodatkowej treści strony
C. Znacznik <footer> powinien być umieszczony na górze strony, a <header> na jej końcu
D. Znacznik <nav> jest przypisany do sekcji <article>
Każda z pozostałych odpowiedzi zawiera nieprawidłowe założenia dotyczące używania znaczników semantycznych w HTML5. Znacznik <nav> nie jest ograniczony do sekcji <article>, lecz jest przeznaczony do oznaczania linków nawigacyjnych w całym dokumencie, co oznacza, że może występować w różnych miejscach, nie tylko w kontekście artykułów. Z kolei umiejscowienie znaczników <footer> i <header> w odwrotnych pozycjach jest również błędne. Zgodnie z najlepszymi praktykami, <header> powinien znajdować się na górze dokumentu, a <footer> na jego końcu, co jest zgodne z intuicyjnym podejściem do struktury strony. Ostatnia odpowiedź sugerująca, że <aside> jest używane dla głównej treści strony, również nie jest prawdziwa. Znacznik <aside> służy do oznaczania treści pobocznej, która jest związana z główną treścią, ale nie jest jej integralną częścią. Przykłady błędów myślowych związanych z tymi nieprawidłowymi odpowiedziami często wynikają z mylenia funkcjonalności znaczników z ich miejscem w hierarchii dokumentu. Użycie nieprawidłowych znaczników lub niewłaściwe umiejscowienie znaczników semantycznych prowadzi do osłabienia struktury dokumentu oraz negatywnie wpływa na dostępność i SEO strony.

Pytanie 14

Formularze do zarządzania bazami danych są tworzone w celu

A. wyszukiwania rekordów spełniających określone kryteria
B. tworzenia powiązań w relacyjnych bazach danych
C. generowania raportów z danych
D. łatwiejszego wprowadzania, edytowania oraz usuwania danych
Wiele osób może pomylić rolę formularzy w codziennej pracy z bazami danych, koncentrując się na ich potencjalnych zastosowaniach do wyszukiwania danych, raportowania czy wprowadzania powiązań relacyjnych. Wyszukiwanie wierszy spełniających dane kryteria jest procesem, który zazwyczaj wiąże się z używaniem kwerend SQL, a nie bezpośrednio z formularzami. Formularze nie mają na celu zastępowania tego procesu, lecz oferują przyjazny interfejs do interakcji z danymi, co może być mylnie interpretowane jako ich główna funkcja. Podobnie, raportowanie danych odbywa się zazwyczaj na poziomie analizy danych, a nie za pomocą formularzy, które są narzędziem do manipulacji danymi. Wprowadzenie powiązań w relacyjnych bazach danych dotyczy strukturalnego projektowania bazy, co jest odrębnym zagadnieniem od funkcji formularzy. Te błędne zrozumienia mogą prowadzić do nieefektywnego korzystania z systemów baz danych oraz frustracji użytkowników, którzy nie potrafią w pełni wykorzystać możliwości, jakie oferują formularze. Kluczowe jest zrozumienie, że formularze są narzędziem wspierającym zarządzanie danymi, a nie ich analizę czy strukturalne projektowanie, co powinno być podstawą każdej pracy z bazami danych.

Pytanie 15

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: left; } aside { float: left; }
B. nav { float: right; }
C. nav { float: right; } section { float: right; }
D. aside {float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 16

Z jakich elementów składa się tabela generowana przez poniższy kod?

<table border="1">
<tr>
<td> 1 </td>
<td> 2 </td>
</tr>
</table>
A. jednego wiersza oraz dwóch kolumn
B. dwóch wierszy oraz jednej kolumny
C. jednego wiersza oraz jednej kolumny
D. dwóch wierszy i dwóch kolumn
Podstawowe zrozumienie struktury HTML jest kluczowe do prawidłowego interpretowania kodu tabeli. Zrozumienie ilości wierszy i kolumn wymaga analizy znaczników <tr> i <td>. Często popełniany błąd polega na myleniu ilości wierszy i kolumn z ilością znaczników <td> w jednym <tr>. Znacznik <tr> definiuje wiersz w tabeli, a każdy <td> wewnątrz <tr> to oddzielna kolumna. W przedstawionym przykładzie mamy jeden wiersz z dwoma kolumnami, co jest podstawową konfiguracją tabeli. Mylenie tej koncepcji z dwoma wierszami lub inną liczbą kolumn jest często wynikiem niepełnej analizy struktury kodu. Warto zwrócić uwagę na semantykę HTML, która jest istotna z punktu widzenia dostępności i SEO. Stosowanie tabeli powinno być ograniczone do prezentacji danych tabularycznych, a nie jako narzędzie do ogólnej struktury strony, co jest niezgodne z nowoczesnymi standardami. Poznanie i zrozumienie tych zasad jest niezbędne dla efektywnego tworzenia stron internetowych i unikania typowych błędów w kodzie HTML. W przypadku tworzenia bardziej złożonych układów, zaleca się korzystanie z CSS Grid lub Flexboxa, które oferują większą elastyczność i kontrolę nad wyglądem strony.

Pytanie 17

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
B. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
C. Wyświetli długość tekstu ze zmiennej n
D. Przypisze zmienną n do zmiennej s
Analizując błędne odpowiedzi można zauważyć kilka typowych nieporozumień związanych z właściwością length w JavaScript. Pierwszym z nich jest mylne założenie że length służy do wycinania fragmentu napisu co sugeruje odpowiedź o przypisaniu zmiennej s fragmentu napisu. W rzeczywistości length to właściwość która zwraca liczbę elementów w stringu a nie jego część. Aby wyciąć fragment stringa należy użyć metod takich jak slice lub substring które są przeznaczone do tego celu. Kolejne nieporozumienie polega na traktowaniu length jako funkcji która wyświetla długość napisu. Właściwość length po prostu zwraca wartość dlatego jeśli chcemy ją wyświetlić musimy użyć dodatkowych konstrukcji takich jak console.log w środowisku programistycznym przeglądarki. Następne potencjalne nieporozumienie związane jest z przypisaniem zmiennej n do zmiennej s. Bezpośrednie przypisanie całego stringa do innej zmiennej wymagałoby użycia operatora przypisania (=) bez kontekstu length. Takie błędne rozumowanie często wynika z nieuwagi lub braku doświadczenia w pracy z właściwościami obiektów w JavaScript. Programując w tym języku warto pamiętać że każda właściwość i metoda ma swoje konkretne zastosowanie i przeznaczenie stąd znajomość ich specyfiki jest kluczowa dla efektywnego kodowania. Dzięki tej wiedzy programista może unikać typowych pułapek i optymalizować procesy przetwarzania danych co jest szczególnie istotne w kontekście aplikacji webowych rozwijanych w JavaScript.

Pytanie 18

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

A. 0
B. TRUE
C. FALSE
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 19

Symbol, który pojawia się przed adresem w pasku adresowym przeglądarki internetowej lub przy tytule otwartej karty, określany jest mianem

A. iConji
B. emoticon
C. favicon
D. webicon
Favicon, czyli ikona ulubionej strony, to mały obrazek wyświetlany w przeglądarkach internetowych obok adresu URL, w zakładkach oraz na kartach przeglądarki. Favicon jest istotnym elementem identyfikacji wizualnej witryny, ponieważ pozwala użytkownikom na szybkie rozpoznawanie stron, które odwiedzają. Tworzenie faviconu wiąże się z określonymi standardami, ponieważ rozmiar pliku powinien wynosić 16x16 lub 32x32 pikseli. Można go zapisać w formacie .ico, .png, .gif, co zapewnia szeroką kompatybilność z różnymi przeglądarkami. Wdrożenie faviconu poprawia UX, zwiększa profesjonalizm strony i wpływa na jej rozpoznawalność. Dobrym przykładem zastosowania faviconu jest umieszczanie go na stronie głównej, co ułatwia zapamiętywanie marki oraz zwiększa szanse na powrót użytkowników do witryny. Właściwe przygotowanie faviconu oraz jego umiejscowienie w kodzie HTML (z wykorzystaniem tagu <link rel="icon" href="ścieżka_do_faviconu">) to dobrych praktyk, które warto stosować w każdej nowoczesnej aplikacji webowej.

Pytanie 20

W języku JavaScript rezultat wykonania polecenia zmienna++; będzie identyczny jak polecenia

A. zmienna --;
B. zmienna+=1;
C. zmienna=zmienna+10;
D. zmienna===zmienna+1;
Wszystkie pozostałe odpowiedzi są niepoprawne z technicznego punktu widzenia. Pierwsza z nich, 'zmienna--;', wskazuje na operator dekrementacji, który zmniejsza wartość zmiennej o 1. W przeciwieństwie do inkrementacji, dekrementacja prowadzi do obniżenia wartości zmiennej. Na przykład, jeśli zmienna wynosi 5, to po zastosowaniu 'zmienna--;' jej wartość stanie się 4, co jest zupełnie odmiennym wynikiem. Kolejna odpowiedź, 'zmienna=zmienna+10;', wprowadza dodatkowy element, który zwiększa wartość zmiennej o 10, co znacznie odbiega od pierwotnej idei inkrementacji o 1. Przykładowo, przy pierwotnej wartości zmiennej 5, wynik po tej operacji będzie 15, co jest całkowicie innym wynikiem niż w przypadku inkrementacji. Ostatnia z odpowiedzi, 'zmienna===zmienna+1;', jest operacją porównania, która sprawdza, czy wartość zmiennej jest równa wartości zmiennej powiększonej o 1. Wartość ta nigdy nie będzie równa w przypadku, gdy zmienna ma jakąkolwiek wartość inną niż 0. Dla zmiennej o wartości 5, wynik będzie fałszywy, co jest zupełnie inną logiką niż pożądane zwiększenie wartości. Tak więc, wszystkie te odpowiedzi nie oddają idei prostego zwiększenia wartości zmiennej o 1, co czyni je niepoprawnymi w kontekście pytania.

Pytanie 21

Jaką wartość zwróci funkcja w języku C++, jeśli parametry wynoszą a = 4 oraz b = 3?

long int fun1(int a, int b)
{
long int wynik = 1;
for (int i = 0; i < b; i++)
wynik *= a;
return wynik;
}
A. 12
B. 16
C. 64
D. 1
Rozpatrując niepoprawne odpowiedzi należy zauważyć że błędne zrozumienie działania pętli for oraz operacji w niej zawartych może prowadzić do niepoprawnych wyników. Niektórzy mogą błędnie zakładać że funkcja wykonuje dodawanie a nie mnożenie co prowadzi do odpowiedzi takich jak 12 lub 16. W rzeczywistości pętla for w tej funkcji przemnaża wartość zmiennej wynik przez a dla każdej iteracji co oznacza że wynik końcowy jest a podniesione do potęgi b. Błąd polegający na uznaniu że wynik to 12 może wynikać z pomyłki i traktowania operacji jak klasycznego dodawania zamiast przemnożenia a z kolei wynik 16 mógłby wynikać z błędnego wnioskowania że pętla wykonuje inną liczbę iteracji niż w rzeczywistości. Kolejnym częstym błędem jest nieprawidłowe przypisanie wartości początkowej do wyniku albo niezrozumienie że pętla zaczyna od 0 i iteruje do b-1. Takie błędne założenia mogą wynikać z niezrozumienia podstawowej składni i logicznych kroków algorytmu. Zrozumienie tego jak działa pętla for oraz jak operacje na zmiennych zmieniają ich wartości w trakcie iteracji jest kluczowe aby poprawnie przewidzieć wynik działania funkcji. Kluczem do poprawnego rozwiązania jest metodyczne sprawdzenie każdego kroku algorytmu co pozwoli uniknąć podobnych błędów w przyszłości. Zasady te są fundamentalne dla każdego programisty a ich zrozumienie ma zastosowanie w szerokim zakresie zagadnień programistycznych i algorytmicznych zapewniając nie tylko poprawność ale również efektywność pisanych programów. Poprawne zrozumienie tych podstaw umożliwia tworzenie bardziej złożonych i wydajnych algorytmów co jest kluczowe w środowisku zawodowym.

Pytanie 22

Rekordy do raportu mogą pochodzić z

A. makropolecenia
B. innego raportu
C. tabeli
D. zapytania INSERT INTO
Tabela stanowi fundamentalne źródło danych w kontekście raportowania, ponieważ przechowuje zorganizowane informacje w formie wierszy i kolumn. W praktyce, raporty często opierają się na danych zgromadzonych w tabelach, które są częścią bazy danych. Dzięki strukturze tabeli, możliwe jest łatwe filtrowanie, sortowanie i agregowanie danych, co jest kluczowe w procesie tworzenia raportów. Na przykład, w systemach CRM, dane o klientach są przechowywane w tabeli, co pozwala na wygenerowanie raportów dotyczących sprzedaży, aktywności klientów czy trendów rynkowych. W kontekście standardów branżowych, stosowanie tabel w relacyjnych bazach danych jest nie tylko powszechne, ale również zgodne z najlepszymi praktykami, które zalecają utrzymywanie danych w znormalizowanej formie, aby minimalizować redundancję i ułatwiać zarządzanie danymi. Dodatkowo, w przypadku tworzenia raportów, można korzystać z języka SQL, aby dynamicznie wydobywać dane z tabel, co zwiększa elastyczność i precyzję raportowania.

Pytanie 23

Jak określa się proces przekształcania informacji zawartych w dokumencie elektronicznym na format odpowiedni dla konkretnego środowiska?

A. Rasteryzacja
B. Teksturowanie
C. Mapowanie
D. Renderowanie
Wybór mapowania, rasteryzacji lub teksturowania jako odpowiedzi na pytanie o proces przedstawienia informacji zawartych w dokumencie elektronicznym jest niepoprawny, gdyż każdy z tych terminów odnosi się do innego aspektu przetwarzania obrazu lub informacji. Mapowanie to proces, który zazwyczaj odnosi się do przypisywania współrzędnych w przestrzeni 3D do punktów na powierzchni obiektu. W kontekście grafiki komputerowej, mapowanie jest często używane w kontekście mapowania tekstur na 3D obiektach, co jest tylko jednym z wielu kroków w procesie renderowania, ale samo w sobie nie generuje wizualnej reprezentacji. Rasteryzacja to technika przekształcania wektorowych reprezentacji obrazów w piksele. Choć rasteryzacja jest istotnym krokiem w procesie renderowania, nie jest to cały proces, lecz jeden z jego etapów, który zamienia obiekt 3D na obraz 2D, co również nie odnosi się bezpośrednio do przedstawienia informacji zawartych w dokumencie elektronicznym. Teksturowanie natomiast to technika nadawania kolorów i detali powierzchniom obiektów 3D, a także nie jest to proces końcowy, lecz bardziej jest to część szerokiego procesu renderowania, który poprawia wizualną jakość obiektów. Każda z tych technik ma swoje specyficzne zastosowanie, ale nie odpowiadają na pytanie o przekształcanie informacji do formy wizualnej, co jest domeną renderowania.

Pytanie 24

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

A. stworzenie instancji obiektu napis1 klasy napisy
B. wywołanie metody dla obiektu napisy
C. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
D. stworzenie nowej klasy napis1
Pierwsza z niepoprawnych odpowiedzi sugeruje, że kod tworzy nową klasę 'napis1', co jest błędem. W rzeczywistości, w JavaScript klasy są definiowane za pomocą słowa kluczowego 'class', a 'new napisy()' uruchamia konstruktor, a nie definiuje klasę. Klasy w JavaScript można zdefiniować w następujący sposób: 'class napisy { constructor() { this.text = ''; }}', co wyraźnie różni się od podanego przykładu. Kolejna odpowiedź mówi o wywołaniu metody obiektu 'napisy', co również jest mylące, ponieważ aby wywołać metodę, obiekt musi być już stworzony, a 'new napisy()' nie wywołuje metody, lecz tworzy instancję obiektu. Ostatnia z odpowiedzi wskazuje na zadeklarowanie zmiennej 'napis1' i wywołanie funkcji z argumentem 'napis1', co jest całkowicie niezgodne z intencją podanego kodu. Nie ma tu żadnego wywołania funkcji z argumentem, a 'new' jest używane do instancjonowania klasy, co nie ma nic wspólnego z przekazywaniem argumentów do funkcji. Tak więc, wszystkie te odpowiedzi nie oddają prawidłowego zrozumienia działania konstrukcji obiektowych w JavaScript.

Pytanie 25

Jakie znaczniki należy zastosować, aby w pliku z rozszerzeniem php umieścić kod napisany w języku PHP?

A. <php ..................................... />
B. <?php> .......................... <php?>
C. <php>  .......................  </php>
D. <?php ................................ ?>
Wszystkie te błędne odpowiedzi mają błędy w składni, które sprawiają, że interpreter nie może poprawnie przetworzyć kodu PHP. W pierwszej odpowiedzi użyto tagu <php>, a to jest nieprawidłowe, bo PHP wymaga znaczników <?php i ?>, a nie <php>. Druga odpowiedź jeszcze gorzej kończy znacznik otwierający, używając </php>, co jest totalnie niezgodne z poprawną składnią. Tag <?php nie powinien kończyć się w ten sposób, bo wtedy interpreter tego nie rozumie. W trzeciej odpowiedzi także pojawiają się błędne znaczniki, jak <php> i </php>, zamiast tych właściwych <?php i ?>. Przez to kod nie zadziała, będą błędy w aplikacji. W PHP znaczniki muszą być zgodne z zasadami języka, nie można korzystać z zamknięć typowych dla HTML. Te błędy mogą prowadzić do poważnych problemów w działaniu aplikacji, a także do wielu trudności w naprawianiu błędów, dlatego tak ważne jest, by rozumieć te zasady przy pisaniu kodu PHP.

Pytanie 26

Jaki jest cel zapisu w języku JavaScript?

var napis1 = new napisy();
A. stworzenie obiektu napis1 z klasy napisy
B. wykonanie metody obiektu napisy
C. założenie nowej klasy napis1
D. zainicjowanie zmiennej napis1 oraz wywołanie funkcji, której argumentem jest napis1
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia procesu tworzenia obiektów w JavaScript. Propozycja zadeklarowania zmiennej i wywołania funkcji z argumentem napis1 nie odpowiada rzeczywistej funkcjonalności przedstawionego kodu. Zadeklarowanie zmiennej w JavaScript jest kluczowym krokiem, ale bez poprawnego użycia słowa kluczowego new oraz odpowiednio zdefiniowanej funkcji lub klasy nie można stworzyć instancji obiektu. Natomiast wywołanie funkcji z argumentem napis1 sugeruje, że mamy do czynienia z operacją na już istniejącym obiekcie, co nie ma miejsca w kontekście inicjalizacji obiektu. Próba wywołania metody obiektu napisy nie jest poprawna, ponieważ najpierw trzeba utworzyć instancję obiektu, a dopiero potem można wywoływać jego metody. Bez tego kroku każda próba pracy z metodami zakończy się błędem. Wreszcie, stworzenie nowej klasy napis1 byłoby sprzeczne z pokazanym kodem, ponieważ żaden element składni nie sugeruje deklaracji klasy. W języku JavaScript klasy są definiowane z użyciem słowa kluczowego class, które w analizowanym kodzie nie występuje. Zrozumienie procesu tworzenia obiektów oraz wykorzystania klas i konstruktorów w JavaScript jest fundamentalne, aby efektywnie pisać oraz zarządzać kodem w tym języku. Poprawne rozpoznanie i stosowanie tych mechanizmów pozwala na tworzenie bardziej złożonych i elastycznych aplikacji.

Pytanie 27

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

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z jednego pola
B. Z dwóch pól
C. Z czterech pól
D. Z trzech pól
Wybranie niepoprawnych odpowiedzi, takich jak 'z jednego pola' czy 'z dwóch pól', może wynikać z niepoprawnego zrozumienia struktury danych zwracanych przez funkcję mysqli_fetch_row. Odpowiedzi te sugerują, że użytkownik może nie dostrzegać, że funkcja ta zwraca wszystkie kolumny z wiersza jako elementy tablicy, co ma kluczowe znaczenie w kontekście przetwarzania wyników zapytań. Odpowiedzi wskazujące na jedno lub dwa pola mogą prowadzić do błędnych wniosków, ponieważ ignorują one pełny zakres danych, które są dostępne w każdym wierszu. W praktyce, często umieszcza się w bazie danych więcej informacji, a każda kolumna odpowiada innemu atrybutowi obiektu, na przykład klienta. Dlatego jeśli zapytanie SQL zwraca trzy kolumny, to oczekiwanym wynikiem powinno być właśnie wyświetlenie tych trzech, co podkreśla istotność precyzyjnego formułowania zapytań i poprawnego odczytywania wyników. Zrozumienie struktury danych jest kluczowe dla poprawnego odczytu wyników i ich późniejszego wykorzystania, co potwierdzają standardy związane z programowaniem w PHP oraz obsługą baz danych.

Pytanie 28

Podczas przygotowywania grafiki do umieszczenia na stronie internetowej konieczne jest wycięcie tylko pewnego fragmentu. Jak nazywa się ta czynność?

A. zmiana rozmiaru.
B. kadrowanie.
C. odwracanie obrazu.
D. łączanie warstw.
Skalowanie to po prostu zmiana rozmiaru obrazka, ale nie zmienia on jego zawartości. Jak robimy grafikę na stronę, to może to się nie najlepiej skończyć, bo obraz może się zniekształcić, a tego chyba nikt nie chce w profesjonalnych projektach. Odbicie obrazu to lustrzane odwzorowanie grafiki, które tak naprawdę nie ma nic wspólnego z kadrowaniem. Może w sztuce się przyda, ale do wycinania nie pasuje. Łączenie warstw to technika, gdzie nakładamy różne elementy na siebie i to też nie ma nic wspólnego z wycinaniem, a bardziej z integracją. Ogólnie rzecz biorąc, to wszystko wynika z mylenia podstawowych pojęć związanych z edycją grafiki. Ludzie mogą myśleć, że te techniki są podobne, co prowadzi do nieporozumień. Ważne jest, żeby wiedzieć, że każda z tych technik ma swoje cele, a kadrowanie to coś, co skupia się na wycinaniu i kompozycji.

Pytanie 29

Aby dodać wpis do tabeli Pracownicy, konieczne jest użycie polecenia SQL

A. INSERT VALUES Pracownicy INTO (Jan, Kowalski);
B. INSERT INTO Pracownicy VALUES ("Jan", "Kowalski");
C. INSERT (Jan), (Kowalski) INTO TABLE Pracownicy;
D. INSERT VALUES (Jan; Kowalski) INTO Pracownicy;
Wszystkie pozostałe odpowiedzi zawierają błędy składniowe oraz koncepcyjne, które uniemożliwiają poprawne wykonanie zapytań SQL. W przypadku pierwszej niepoprawnej odpowiedzi, "INSERT VALUES Pracownicy INTO (Jan, Kowalski);", składnia jest nieprawidłowa, ponieważ kolejność słów kluczowych jest błędna. W SQL słowo kluczowe 'INTO' powinno występować po 'INSERT' oraz przed nazwą tabeli. Druga odpowiedź, "INSERT (Jan), (Kowalski) INTO TABLE Pracownicy;" również nie spełnia standardów SQL. Użycie 'TABLE' jest zbędne, a także nawiasy są zastosowane niewłaściwie, co prowadzi do niejednoznaczności danych wstawianych do tabeli. Ostatnia odpowiedź, "INSERT VALUES (Jan; Kowalski) INTO Pracownicy;" zawiera błędne użycie średnika zamiast przecinka, co jest naruszeniem reguł składniowych. Tego typu błędy są powszechne wśród osób, które nie są zaznajomione z dokładnymi wymaganiami języka SQL. Dlatego ważne jest, aby uczyć się poprawnej składni oraz struktury zapytań, aby uniknąć frustracji w pracy z bazami danych oraz zapewnić integralność danych. Dobrą praktyką jest także testowanie zapytań w środowisku deweloperskim przed ich wdrożeniem w produkcji.

Pytanie 30

Jakie imiona spełniają warunki klauzuli LIKE w podanym zapytaniu?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Krzysztof, Krystyna, Romuald
B. Rafał, Rebeka, Renata, Roksana
C. Gerald, Jarosław, Marek, Tamara
D. Arleta, Krzysztof, Krystyna, Tristan
Wybór tych imion, które nie pasują do wzoru z klauzulą LIKE, jest trochę mylący. Te imiona, które zaznaczyłeś, nie mają 'r' na właściwych miejscach, co jest kluczowe. Na przykład, 'Rafał', 'Rebeka', 'Renata' czy 'Roksana' mają 'r' na pierwszej pozycji albo w ogóle! To pokazuje, jak ważne jest rozumienie pozycji znaków w wzorze LIKE, gdzie '_' oznacza jeden znak, a '%' może być niczym lub więcej. No i jak 'r' jest na pierwszej pozycji, to nie ma szans, żeby pasowało do '_r%'. Często błędy we wzorach wynikają z niedopatrzeń w pozycjach znaków. Wiedza na ten temat jest mega ważna, gdy pracujemy z bazami danych, bo bez tego może być bałagan w wyszukiwaniach.

Pytanie 31

Z którego z pól klasy

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

Pytanie 32

Aby usunąć tabelę, trzeba użyć kwerendy

A. DROP TABLE
B. DELETE
C. UNIQUE
D. TRUNCATE TABLE
Odpowiedź 'DROP TABLE' jest poprawna, ponieważ jest to standardowe polecenie SQL służące do usunięcia całej tabeli z bazy danych. Użycie tego polecenia oznacza, że wszystkie dane przechowywane w tabeli zostaną trwale usunięte, a sama struktura tabeli również zostanie skasowana. Przykład zastosowania: jeśli mamy tabelę 'klienci' i chcemy usunąć ją z bazy danych, stosujemy polecenie 'DROP TABLE klienci;'. Ważne jest, aby przed wykonaniem tego polecenia upewnić się, że nie ma już odniesień do tej tabeli w innych obiektach bazy danych, takich jak klucze obce. Usunięcie tabeli jest procesem nieodwracalnym, dlatego zaleca się wykonanie kopii zapasowej danych przed podjęciem takiej decyzji. W praktyce, ten operator jest często używany w sytuacjach, gdy dane są zbędne, a struktura bazy danych wymaga reorganizacji lub uproszczenia, co jest zgodne z najlepszymi praktykami w zarządzaniu bazami danych.

Pytanie 33

Dla dowolnego a z przedziału (0, 99) zadaniem funkcji zapisanej w języku JavaScript jest

function fun1(a)
{
    for (n = a; n <= 100; n++)
        document.write(n);
    return n;
}
A. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
B. wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n
C. zwrócenie liczb z przedziału a .. 99
D. wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100
Wybrane przez Ciebie odpowiedzi są niepoprawne, gdyż nie odzwierciedlają w pełni działania pętli for w JavaScript. Pętla for jest używana do iterowania tyle razy, ile wynosi różnica między 100 a wartością argumentu a, wypisując każdą iterację. Następnie funkcja zwraca wartość o 1 większą niż warunek kończący pętlę (100), co wynosi 101. Błędem było zakładanie, że funkcja zwraca wartości w inny sposób. Przykładowo, jedna z nieprawidłowych odpowiedzi sugerowała, że funkcja zwraca liczby z przedziału a do 99 - jednakże zwracana jest liczba 101. Inna błędna odpowiedź sugerowała, że funkcja wypisuje wartość zmiennej a i zwraca wartość zmiennej n - jednakże wypisywane są liczby od a do 100, a zwracana jest wartość 101. Kolejnym błędem było zakładanie, że funkcja zwraca wartość 100 - co jest nieprawdą, gdyż funkcja zwraca wartość 101. Zrozumienie działania pętli for i funkcji zwracających wartości jest kluczowe dla programowania w JavaScript, dlatego warto poświęcić więcej czasu na praktykę i naukę tych konceptów.

Pytanie 34

Zapytanie przedstawione poniżej zwróci wynik:

SELECT COUNT(cena) FROM uslugi;
A. sumę wartości cen usług w tabeli
B. liczbę wszystkich cen usług w tabeli
C. wszystkie wartości cen usług w tabeli
D. średnią wartość cen usług w tabeli
Pojawiające się nieporozumienia związane z interpretacją zapytania mogą prowadzić do błędnych wniosków. Wybór odpowiedzi, która zakłada, że zapytanie zwróci wszystkie ceny usług, jest nieprecyzyjny, ponieważ funkcja COUNT() nie wyświetla wszystkich wartości, a jedynie ich ilość. Z kolei odpowiedź sugerująca, że zapytanie oblicza średnią cenę usług, również jest błędna, ponieważ do obliczenia średniej stosuje się funkcję AVG(), a nie COUNT(). Dodatkowo, wybór opcji dotyczącej sumy cen usług jest mylący, gdyż do tego celu używa się funkcji SUM(). Zrozumienie, jak działają te funkcje, jest kluczowe w pracy z bazami danych. Funkcja COUNT() wykonuje zadanie zliczenia, co różni się od zadań agregacyjnych takich jak SUM() czy AVG(), które operują na wartościach liczbowych. Typowym błędem jest mylenie zadań zliczania z zadaniami obliczeniowymi, co może prowadzić do nieprawidłowych analiz danych. Dlatego ważne jest, aby przed sformułowaniem zapytania dobrze zrozumieć, jakie operacje są wykonywane na danych i jakie funkcje są do tego odpowiednie.

Pytanie 35

Który znacznik ma zastosowanie w sekcji body dokumentu HTML?

A. <link>
B. <title>
C. <meta>
D. <h2>
W tym pytaniu często myli się dwa podstawowe obszary dokumentu HTML: sekcję <head> oraz sekcję <body>. To jest taki klasyczny błąd początkujących – wszystko wygląda jak „znaczniki HTML”, więc kusi, żeby wrzucać je wszystkie do jednego worka, a jednak każdy ma swoje konkretne miejsce i przeznaczenie. Sekcja <body> służy do umieszczania treści widocznej dla użytkownika: nagłówków, akapitów, obrazów, list, przycisków, formularzy. Natomiast <head> zawiera metadane, konfigurację i informacje pomocnicze dla przeglądarki, wyszukiwarek i innych narzędzi. Znacznik <link> jest elementem typowym dla sekcji <head>. Służy między innymi do podłączania arkuszy stylów CSS (np. <link rel="stylesheet" href="style.css">), ikon strony (favicon) czy innych zasobów powiązanych z dokumentem. Umieszczanie <link> w <body> jest sprzeczne z dobrą praktyką i specyfikacją – przeglądarka zwykle to „przełknie”, ale jest to zły nawyk i może powodować problemy z wydajnością i walidacją kodu. Podobnie <title> to znacznik, który definiuje tytuł strony wyświetlany na karcie przeglądarki oraz używany przez wyszukiwarki. On musi się znajdować w <head>. Nie jest elementem treści, którą widzi użytkownik w samym obszarze strony, tylko opisem dokumentu. Wstawienie <title> do <body> łamie strukturę dokumentu, a część narzędzi i walidatorów wskaże to jako błąd. Znacznik <meta> również należy wyłącznie do sekcji <head>. Służy do przekazywania metadanych, na przykład informacji o kodowaniu znaków (<meta charset="UTF-8">), opisu strony, słów kluczowych, ustawień dla robotów wyszukiwarek czy danych dla mediów społecznościowych (Open Graph). To są dane konfiguracyjne, a nie zawartość strony. Typowym błędnym myśleniem jest traktowanie wszystkich tych znaczników jako „zwykłych elementów HTML, które można dać gdziekolwiek”. W nowoczesnym podejściu kładzie się duży nacisk na semantykę: każdy element ma swoje logiczne miejsce. Dzięki temu kod jest czytelny, zgodny ze standardami W3C, lepiej interpretowany przez wyszukiwarki i narzędzia wspomagające. Dlatego w sekcji <body> powinniśmy umieszczać takie znaczniki jak <h1>–<h6>, <p>, <div>, <section>, <article>, <nav> i inne elementy treści, natomiast <link>, <title> i <meta> pozostają w <head>, bo pełnią zupełnie inną rolę niż widoczna zawartość strony.

Pytanie 36

Pokazane pole input pozwala na

<input type="checkbox" name="text1" value="text2">
A. selekcję opcji z listy zawierającej wartości text1 oraz text2
B. wprowadzenie hasła
C. wybranie opcji
D. wpisanie dowolnego ciągu znaków
Pole input typu checkbox to fajna opcja, bo pozwala użytkownikom zaznaczać jedną albo więcej opcji z dostępnych wyborów. Takie checkboxy można zobaczyć na różnych stronach internetowych, są super przydatne, a użytkownik może je odznaczać kiedy chce. W HTML mamy atrybut type, który mówi, co użytkownik może wpisać. W przypadku checkboxa mamy to pole, które można zaznaczyć i dzięki temu dodajemy wartość do formularza, gdy go wysyłamy. Przykładem mogą być formularze zgód, gdzie trzeba potwierdzić kilka polityk prywatności lub warunków korzystania z serwisu. Ważne jest także, żeby każdy checkbox miał odpowiednio przypisane atrybuty name i value, bo dzięki temu łatwiej jest je zidentyfikować, gdy przesyłamy dane. I pamiętajmy, żeby dobrze oznaczać checkboxy etykietami przez element label – to pomaga, zwłaszcza osobom korzystającym z technologii wspomagających. Takie poprawne używanie checkboxów to klucz do budowania intuicyjnych i użytecznych interfejsów użytkowników.

Pytanie 37

Aby uzyskać dane z tabeli pracownicy wyłącznie dla osób, które osiągnęły 26 lat, należy zastosować zapytanie

A. SELECT * FROM pracownicy WHERE wiek > '25'
B. SELECT * FROM pracownicy OR wiek > '25'
C. SELECT * FROM wiek WHERE pracownicy > '25'
D. SELECT * FROM pracownicy AND wiek > '25'
Niepoprawne odpowiedzi wskazują na pewne nieporozumienia związane z konstrukcją zapytań SQL. W pierwszej z nich sugerowana jest składnia 'SELECT * FROM wiek WHERE pracownicy > '25';', co nie tylko używa niewłaściwej tabeli, ale także błędnie odnosi się do struktury zapytania. W SQL każda tabela powinna być podana w kontekście, w którym chcemy wykonać zapytanie. Druga odpowiedź 'SELECT * FROM pracownicy AND wiek > '25';' również jest błędna, ponieważ użycie operatora AND w tej formie jest niepoprawne. Operator AND służy do łączenia kilku warunków w klauzuli WHERE, a nie do wskazywania tabel. Tymczasem w trzeciej opcji 'SELECT * FROM pracownicy OR wiek > '25';' zastosowano operator OR, który jest również niewłaściwy, ponieważ może prowadzić do zwracania wszystkich pracowników, niezależnie od ich wieku. Takie podejście może wprowadzać w błąd i prowadzić do nieefektywnego przetwarzania danych. Kluczowe jest zrozumienie, że zapytania SQL wymagają precyzyjnego określenia zarówno tabel, jak i warunków filtrujących, aby były skuteczne i zgodne z zamierzonymi wynikami. Dlatego w praktyce, twórcy zapytań muszą być ostrożni w doborze składni i logiki, aby uniknąć tych typowych błędów.

Pytanie 38

Które wartości będą przechowywane w zmiennych po wykonaniu przedstawionej pętli języka PHP?

$i = 20;    $a = 0;
while($i) {
  $a += 2;
  $i--;
}
A. a = 20, i = 20
B. a = 40, i = 0
C. a = 0, i = 20
D. a = 40, i = 20
Zrozumienie, jak działa pętla w języku PHP, jest kluczowe do efektywnej pracy z tym językiem. Błędne odpowiedzi sugerują niezrozumienie, jak zmienne są aktualizowane i przechowywane w pętli. Można pomylić, że wartość 'a' będzie wynosić 0 lub 20, jeżeli nie zauważymy, że wartość 'a' jest zwiększana o 2 w każdej iteracji pętli. Podobnie, można pomylić, że wartość 'i' pozostanie na 20, jeśli nie zrozumie się, że 'i' jest zmniejszane o 1 w każdej iteracji pętli, aż osiągnie wartość 0, co kończy pętlę. To jest typowy błąd, który można zrobić, jeżeli nie zwróci się uwagi na szczegóły operacji wykonywanych w pętli. Przypomnijmy, że zrozumienie, jak działa pętla, jest kluczowe do tworzenia efektywnych i wydajnych programów w PHP i w każdym języku programowania.

Pytanie 39

Instrukcję for można zastąpić inną instrukcją

A. while
B. continue
C. case
D. switch
Wybór odpowiedzi, którymi są 'case', 'switch' oraz 'continue', wskazuje na pewne nieporozumienia dotyczące funkcji oraz zastosowań tych konstrukcji w programowaniu. Instrukcje 'case' i 'switch' są wykorzystywane do realizacji struktury warunkowej, a nie do iteracji. Służą one do wykonania określonego bloku kodu w zależności od wartości zmiennej, co jest zupełnie innym zastosowaniem niż pętle. Programista, który myli te konstrukcje, może napotkać problemy z logicznym rozumieniem przepływu programu. Z kolei instrukcja 'continue' jest stosowana w kontekście pętli i pozwala na pominięcie bieżącej iteracji pętli, co również jest innym zastosowaniem niż podstawowe wykonywanie kodu w pętli. Dobrą praktyką w programowaniu jest rozróżnianie tych różnych typów instrukcji i stosowanie ich zgodnie z ich przeznaczeniem. Niezrozumienie różnicy między pętlami a instrukcjami warunkowymi może prowadzić do błędów w kodzie, zmniejszenia czytelności oraz trudności w jego późniejszej modyfikacji. W kontekście pętli, 'for' i 'while' są bardziej odpowiednie do realizacji powtarzających się operacji, podczas gdy 'switch' i 'case' powinny być stosowane, gdy konieczne jest wykonywanie różnych działań w zależności od wartości zmiennej.

Pytanie 40

Funkcja pg_connect w języku PHP służy do nawiązania połączenia z bazą danych

A. MS SQL
B. PostgreSQL
C. MS ACCESS
D. mySQL
Wszystkie inne odpowiedzi dotyczą baz danych, które nie są obsługiwane przez funkcję pg_connect. Użycie MS SQL, MS ACCESS lub mySQL w kontekście pg_connect wprowadza w błąd, ponieważ każda z tych technologii ma swoje własne metody połączenia. MS SQL, na przykład, jest systemem zarządzania bazą danych stworzonym przez Microsoft i do połączeń z tą bazą używa się funkcji syb_connect lub PDO w zależności od preferencji programisty. MS ACCESS, z kolei, jest bazą danych, która często jest wykorzystywana w mniejszych aplikacjach i wymaga innych podejść do połączeń, często przy użyciu ODBC lub DAO. MySQL, popularna baza danych open source, używa funkcji mysqli_connect lub PDO_MySQL. Typowe błędy myślowe prowadzące do nieprawidłowych odpowiedzi często wynikają z nieznajomości specyfiki i architektury różnych systemów baz danych oraz błędnego utożsamiania ich z funkcjami PHP. Każde z tych rozwiązań ma swoje unikalne cechy i różnice, które są istotne dla projektowania aplikacji oraz ich późniejszego rozwoju.