Wyniki egzaminu

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

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

W języku CSS zdefiniowano styl. Sformatowana stylem sekcja będzie zawierała obramowanie o szerokości

div { border: solid 2px blue;
    margin: 20px;             }
A. 20 px oraz marginesy wewnątrz tego obramowania.
B. 2 px oraz marginesy wewnątrz tego obramowania.
C. 2 px oraz marginesy na zewnątrz tego obramowania.
D. 20 px oraz marginesy na zewnątrz tego obramowania.
Wygląda na to, że niepoprawnie zrozumiałeś, jak działają obramowania i marginesy w CSS. W tym języku obramowanie (border) i margines (margin) to dwie różne typy przestrzeni, które możemy zdefiniować wokół elementu. Obramowanie jest linią otaczającą element, natomiast margines to przestrzeń między obramowaniem a następnym elementem. Marginesy są zawsze na zewnątrz obramowania, nie wewnątrz. Powiedzenie, że margines jest 'wewnątrz' obramowania, to fundamentalne nieporozumienie dotyczące tego, jak te dwie właściwości działają. Poza tym, szerokość obramowania została zdefiniowana jako 2 piksele, a nie 20. To może być łatwo pomylone, ale pamiętaj, że w CSS jednostki są ważne i mogą znacząco wpływać na wygląd strony. W praktyce, szczegółowe zrozumienie obramowania i marginesów jest kluczowe do precyzyjnego ułożenia elementów na stronie internetowej.

Pytanie 2

Który z poniższych formatów plików nie jest używany do publikacji grafiki lub animacji w internecie?

A. SVG
B. SWF
C. PNG
D. AIFF
Wybór formatów PNG, SWF i SVG jako odpowiedzi nie jest właściwy, ponieważ każdy z nich jest ściśle związany z publikacją grafiki lub animacji na stronach internetowych. PNG to format plików rastrowych, który zapewnia wysoką jakość obrazu, wspiera przezroczystość i kompresję bezstratną. Z tego powodu jest często wykorzystywany w projektowaniu stron internetowych, gdzie ważne jest zachowanie detali w grafice, a także w sytuacjach, gdy potrzebne są przezroczyste tła. Z kolei SWF jest to format, który był szeroko stosowany do tworzenia animacji, gier i interaktywnych aplikacji w środowisku Adobe Flash. Choć technologia Flash jest obecnie mniej popularna z powodu rozwoju HTML5, SWF wciąż ma swoje miejsce w historii publikacji multimedialnych. Natomiast SVG, jako format wektorowy, umożliwia tworzenie grafiki, która jest skalowalna i dostosowuje się do różnych rozmiarów ekranów, co czyni go idealnym do responsywnych designów. Wszystkie te formaty są kluczowe w kontekście tworzenia atrakcyjnych wizualnie i funkcjonalnych stron internetowych, dlatego nie mogą być uznane za błędne odpowiedzi w kontekście publikacji grafiki i animacji.

Pytanie 3

Jakie są prawidłowe kroki w kolejności, które należy podjąć, aby nawiązać współpracę między aplikacją internetową działającą na serwerze a bazą SQL?

A. wybór bazy, zapytanie do bazy, nawiązanie połączenia z serwerem baz danych, wyświetlenie na stronie WWW, zamknięcie połączenia
B. zapytanie do bazy, wybór bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
C. nawiązanie połączenia z serwerem baz danych, wybór bazy, zapytanie do bazy - wyświetlane na stronie WWW, zamknięcie połączenia
D. wybór bazy danych, nawiązanie połączenia z serwerem baz danych, zapytanie do bazy, wyświetlenie na stronie WWW, zamknięcie połączenia
Analizując inne odpowiedzi, można dostrzec kilka kluczowych nieprawidłowości. W pierwszej z nich podano, że należy najpierw wybrać bazę, co jest nielogiczne, ponieważ przed dokonaniem wyboru bazy konieczne jest nawiązanie połączenia z serwerem. Bez tego połączenia aplikacja nie ma możliwości komunikacji z bazą danych, a zatem nie można dokonać wyboru bazy. Kolejna odpowiedź sugeruje, że zapytanie do bazy powinno nastąpić przed dokonaniem wyboru bazy, co także jest błędne. Zapytania SQL są wykonywane w kontekście określonej bazy danych, więc konieczne jest jej wcześniejsze wybranie. Podobnie, trzecia odpowiedź wprowadza mylne rozumienie kolejności operacji, sugerując, że wyświetlenie danych może nastąpić bez wcześniejszego zapytania do bazy. To podejście ignoruje fakt, iż dane muszą być najpierw pobrane przed ich prezentacją na stronie. Te błędne koncepcje często wynikają z braku zrozumienia procesu interakcji z bazą danych oraz jego podstawowych zasad. W praktyce, aby efektywnie współpracować z bazą danych, istotne jest, by każdy krok był realizowany w odpowiedniej kolejności, co nie tylko zwiększa efektywność, ale również minimalizuje ryzyko błędów oraz problemów z bezpieczeństwem. Dlatego tak ważne jest, aby zrozumieć i stosować się do ustalonych standardów i dobrych praktyk w tym zakresie.

Pytanie 4

Warunek zapisany w języku PHP wyświetli liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest to liczba parzysta
B. wynik dzielenia danej liczby przez 2 jest równy 0
C. jest to liczba dodatnia
D. jest to liczba pierwsza
Odpowiedź jest prawidłowa ponieważ wyrażenie $liczba % 2 == 0 w języku PHP wykorzystuje operator reszty z dzielenia który sprawdza czy liczba po podzieleniu przez 2 ma resztę równą zero. Taki warunek jest spełniony wyłącznie dla liczb parzystych które z definicji dzielą się bez reszty przez 2. W programowaniu rozpoznawanie liczb parzystych jest często stosowane w algorytmach które wymagają specyficznego przetwarzania danych takich jak sortowanie czy filtrowanie. Warto również zauważyć że używanie operatora modulo (%) w takich przypadkach jest uznawane za dobrą praktykę branżową ze względu na jego czytelność i efektywność. Przykładem praktycznego zastosowania może być np. generowanie naprzemiennego koloru tła w tabelach aby zwiększyć ich czytelność co jest powszechnie stosowane w aplikacjach webowych. Zrozumienie tego konceptu jest fundamentalne w programowaniu ponieważ pozwala na tworzenie bardziej dynamicznych i elastycznych aplikacji które potrafią reagować na różne stany danych.

Pytanie 5

W modelu kolorów RGB kolor żółty powstaje z połączenia zielonego i czerwonego. Który kod szesnastkowy przedstawia kolor żółty?

A. #F0F0F0
B. #FFFF00
C. #FF00FF
D. #00FFFF
Pierwszy z kodów szesnastkowych, który zawiera #FF00FF, reprezentuje kolor magenta. Magenta powstaje z połączenia pełnego czerwonego i niebieskiego, przy zerowej intensywności zielonego, co sprawia, że nie jest to kolor żółty. Z kolei kod #00FFFF to kolor cyjan, który uzyskuje się z połączenia pełnego zielonego i niebieskiego, co również nie prowadzi do uzyskania żółtego. Ostatni z kodów, #F0F0F0, to odcień szarości o wysokiej jasności, co oznacza, że jego składowe RGB są prawie równe, ale zdecydowanie nie są odpowiednie dla uzyskania koloru żółtego. Warto zauważyć, że korzystając z tych kodów w projektach graficznych, można łatwo pomylić się, jeśli nie zrozumie się, jak poszczególne kolory są tworzone z podstawowych składowych RGB. Zrozumienie tego systemu kolorów jest kluczowe dla każdego, kto projektuje w cyfrowym środowisku, ponieważ różne kolory mają różne zastosowania i znaczenia, które mogą wpływać na odbiór wizualny projektu.

Pytanie 6

Podczas definiowania pola id w tabeli MySQL użyto AUTO_INCREMENT. Co to oznacza?

id int NOT NULL AUTO_INCREMENT
A. możliwe jest dodanie rekordu z dowolną wartością pola id
B. wartości dla tego pola będą generowane automatycznie przy dodawaniu nowego rekordu do bazy
C. wartość pola id zostanie nadana automatycznie przez bazę i będzie to losowo wygenerowana liczba całkowita
D. pole id może przyjmować takie wartości jak: NULL, 1, 2, 3, 4 i tak dalej
Wartości pola AUTO_INCREMENT nie są generowane losowo lecz według określonego schematu liczbowego zaczynającego się zwykle od jedynki i rosnącego z każdym nowym rekordem. Koncepcja losowego nadawania wartości jest błędna ponieważ główna cecha AUTO_INCREMENT polega na przewidywalnym wzroście wartości co jest kluczowe dla zachowania integralności danych przy użyciu kluczy głównych. Z kolei możliwość dodawania rekordu z dowolną wartością id jest ograniczona gdyż w przypadku AUTO_INCREMENT to baza narzuca wartość tego pola co zabezpiecza przed duplikacją i kolizjami identyfikatorów. Pole id w kontekście AUTO_INCREMENT nie może przyjmować wartości NULL a jedynie wartości liczbowych zaczynających się od jedynki lub innej wartości początkowej jeśli zostanie zdefiniowana na etapie tworzenia tabeli. Mylenie tych koncepcji wynika często z niezrozumienia mechanizmów generowania kluczy w bazach danych gdzie klucz główny musi być unikalny a AUTO_INCREMENT to jeden z najczęściej stosowanych sposobów osiągania tego celu zgodnie z dobrymi praktykami projektowania baz danych. Zrozumienie funkcji AUTO_INCREMENT pozwala na efektywne zarządzanie rekordami i utrzymanie spójności danych w aplikacjach wykorzystujących bazy danych.

Pytanie 7

Na ilustracji przedstawiono konfigurację serwera Apache dla środowiska XAMPP. Pod jakim lokalnym adresem jest on dostępny?

Ilustracja do pytania
A. 192.168.0.1:3306
B. 127.0.0.1:70
C. htdocs
D. localhost:80
W tym zadaniu kluczowe jest zrozumienie różnicy między katalogiem serwera, adresem IP, nazwą hosta i numerem portu. W XAMPP-ie Apache udostępnia pliki z katalogu „htdocs”, ale ten katalog nie jest adresem, pod który łączy się przeglądarka. To tylko folder w systemie plików, fizyczna lokalizacja plików strony. Adres, którego używamy w pasku URL, zawsze składa się z protokołu (np. http), nazwy hosta lub adresu IP oraz opcjonalnie numeru portu. Dlatego wpisanie samego „htdocs” w przeglądarce nie ma sensu – to nie jest ani host, ani protokół. Częsty błąd polega na myleniu ścieżki na dysku z adresem URL. Kolejna pułapka to założenie, że Apache w XAMPP zawsze działa na domyślnym porcie 80, więc „localhost:80” będzie na pewno poprawny. W teorii HTTP faktycznie używa domyślnie portu 80, ale w praktyce w środowisku deweloperskim bardzo często port jest zmieniany, np. gdy port 80 jest zajęty przez inny proces. Na zrzucie ekranu w kolumnie „Port(s)” wyraźnie widać, że Apache nasłuchuje na porcie 70, więc użycie „localhost:80” wskazywałoby na inny port niż rzeczywiście skonfigurowany. To powoduje brak połączenia lub połączenie z zupełnie inną usługą. Podobnie adres „127.0.0.1:70” jest poprawną kombinacją hosta lokalnego i właściwego portu, ale przykład „127.0.0.1:70” w zadaniu jest właśnie tą właściwą odpowiedzią, a nie jej modyfikacją z innym portem. Z kolei „192.168.0.1:3306” to już zupełnie inna bajka: adres z puli prywatnej sieci LAN i port 3306, który standardowo jest używany przez serwer MySQL, a nie przez serwer WWW Apache. Taki adres może wskazywać na bazę danych, do której łączy się aplikacja, ale nie jest to adres, pod który użytkownik wchodzi w przeglądarce, żeby zobaczyć stronę. Typowy błąd myślowy polega tutaj na mieszaniu pojęć: katalogu dokumentów, portu HTTP, portu MySQL oraz lokalnego adresu IP. Dobra praktyka jest taka, żeby zawsze patrzeć w panelu XAMPP konkretnie na kolumnę „Port(s)” przy module Apache i na tej podstawie budować URL, np. http://127.0.0.1:port lub http://localhost:port. Dzięki temu unikasz zgadywania i szybko wychwytujesz, czy problem leży w złym porcie, czy gdzie indziej.

Pytanie 8

Atrybut value w formularzu XHTML

A. ogranicza maksymalną długość pola
B. określa wartość domyślną
C. określa nazwę pola
D. ustawia pole jako tylko do odczytu
Atrybut 'value' w polu formularza XHTML pełni kluczową rolę w określeniu wartości początkowej, która jest wyświetlana w danym polu tekstowym. W przypadku elementu <input type='text'>, wartość atrybutu 'value' jest predefiniowaną odpowiedzią, która pojawia się w polu, gdy formularz jest załadowany. To pozwala programistom na wprowadzenie domyślnych danych, co jest szczególnie przydatne w kontekście ułatwienia wprowadzania informacji przez użytkowników. Na przykład, jeśli mamy formularz, w którym użytkownik ma podać swoje imię, możemy ustawić 'value' na 'Jan', co sprawi, że pole wypełni się automatycznie tą wartością, dając użytkownikowi wskazówkę. Wartość ta może być również używana do ułatwienia wprowadzania danych w przypadku, gdy formularz jest ponownie wyświetlany po błędzie. Zgodnie z dokumentacją W3C dotyczącą XHTML, atrybut 'value' jest standardowo stosowany w formularzach, co czyni go niezbędnym narzędziem w projektowaniu interfejsów użytkownika. Odpowiednie wykorzystanie tego atrybutu przyczynia się do lepszej użyteczności aplikacji internetowych oraz zwiększa komfort użytkowników.

Pytanie 9

Jakie wartości zostaną wyświetlone kolejno w wyniku wykonania podanego skryptu?

<script language = "JavaScript">
var x = 1;
var y;
++y;
document.write(++x);
document.write(" ");
document.write(x--);
document.write(" ");
document.write(x);
</script>
A. 1 2 2
B. 1 2 1
C. 2 2 1
D. 2 1 1
Poprawna odpowiedź to 2 2 1 ponieważ skrypt modyfikuje wartość zmiennej x krok po kroku. Pierwsza instrukcja ++x zwiększa wartość x z 1 do 2 i wypisuje ją na ekranie. Jest to przykład preinkrementacji gdzie wartość zmiennej jest zwiększana przed jej użyciem w wyrażeniu. Drugie wywołanie x-- to postdekrementacja która najpierw zwraca bieżącą wartość zmiennej x czyli 2 a dopiero potem ją zmniejsza. Dlatego w wyniku druga wartość to również 2. Wreszcie ostatnia instrukcja wypisuje aktualną wartość x po dekrementacji która wynosi teraz 1. Tego typu operacje na zmiennych są kluczowe w programowaniu gdyż pozwalają na efektywną kontrolę nad przepływem danych i logiką sterującą w aplikacjach. Zrozumienie różnicy między pre- i post- inkrementacją jest istotne w kontekście optymalizacji kodu i zapobiegania potencjalnym błędom logicznym.

Pytanie 10

Jaki wynik pojawi się po wykonaniu zaprezentowanego kodu HTML?

Ilustracja do pytania
A. Odpowiedź A
B. Odpowiedź C
C. Odpowiedź B
D. Odpowiedź D
W analizie kodu HTML istotne jest zrozumienie struktury zagnieżdżonych list. Błędne odpowiedzi wynikają z niedokładnej interpretacji hierarchii i stylizacji list. Listy uporządkowane oznaczone tagiem ol oraz nieuporządkowane ul są podstawą do strukturalizacji informacji w HTML. Częsty błąd polega na nieuwzględnieniu, jak przeglądarki interpretują zagnieżdżone listy. Element ol z atrybutami type i start zmienia styl numeracji. Wersje z atrybutem type=A zmieniają numerację na literową, a start=4 decyduje o punkcie startowym. Pominięcie tego aspektu prowadzi do błędnych wniosków. Dobre praktyki obejmują klarowność struktury HTML poprzez właściwe użycie tagów i atrybutów, co jest kluczowe dla dostępności i użyteczności stron. Przy projektowaniu, warto pamiętać o spójności formatowania i zgodności z semantyką HTML, co poprawia doświadczenia użytkowników i wydajność SEO. Właściwe zrozumienie i zastosowanie atrybutów list ułatwia zarządzanie złożonymi strukturami na stronach internetowych.

Pytanie 11

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

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

Pytanie 12

Funkcje takie jak rozmycie Gaussa, wygładzanie oraz szum RGB są elementami oprogramowania do przetwarzania

A. Grafiki wektorowej
B. Grafiki rastrowej
C. Ścieżki audio
D. Dźwięku w standardzie MIDI
Rozmycie Gaussa, wygładzanie oraz szum RGB to techniki powszechnie stosowane w obróbce grafiki rastrowej. Rozmycie Gaussa, jako technika filtracji, ma na celu zmiękczenie krawędzi i wygładzenie obrazów, co jest szczególnie przydatne w retuszu zdjęć oraz usuwaniu szumów. Przykładem zastosowania może być poprawa jakości zdjęć w programach takich jak Adobe Photoshop, gdzie techniki te są wykorzystywane do uzyskania bardziej estetycznych efektów wizualnych. Wygładzanie, z kolei, pomaga w eliminacji szumów, co jest kluczowe w przypadku obrazów o niskiej jakości, a również poprawia czytelność obrazów, co jest nieocenione w projektowaniu graficznym. Szum RGB to zjawisko, które występuje często w obrazach cyfrowych, a jego minimalizacja za pomocą filtrów wygładzających prowadzi do osiągnięcia bardziej realistycznych kolorów i lepszej jakości obrazu. Te techniki są zgodne z najlepszymi praktykami w dziedzinie grafiki komputerowej, gdzie jakość wizualna odgrywa kluczową rolę w tworzeniu profesjonalnych projektów.

Pytanie 13

Dodanie do tabeli Produkty kolumny data_produkcji zostanie wykonane kwerendą SQL

A. ALTER TABLE Produkty DROP data_produkcji DATE;
B. ALTER TABLE Produkty ADD DATE data_produkcji;
C. ALTER TABLE Produkty DROP COLUMN data_produkcji DATE;
D. ALTER TABLE Produkty ADD data_produkcji DATE;
Prawidłowa odpowiedź wykorzystuje dokładną składnię polecenia ALTER TABLE, którą stosuje się w SQL do modyfikowania struktury istniejącej tabeli. Instrukcja `ALTER TABLE Produkty ADD data_produkcji DATE;` robi dwie kluczowe rzeczy: wskazuje tabelę, którą zmieniamy (`Produkty`) oraz dodaje nową kolumnę (`data_produkcji`) z określonym typem danych (`DATE`). Taka forma jest zgodna z typową składnią w popularnych systemach bazodanowych, jak MySQL, PostgreSQL, SQL Server czy Oracle (choć drobne różnice składniowe mogą się pojawiać w innych, bardziej egzotycznych systemach). W praktyce oznacza to, że po wykonaniu tej komendy tabela zyska nową kolumnę, w której można przechowywać datę produkcji każdego produktu. Typ `DATE` służy do przechowywania samej daty (rok, miesiąc, dzień), bez czasu. To jest dobre rozwiązanie, jeśli interesuje nas tylko kiedy produkt został wyprodukowany, a nie konkretna godzina. W wielu projektach w technikum czy w pracy zawodowej taka kolumna przydaje się np. do wyliczania terminu przydatności, raportów wiekowania towaru, filtrowania produktów po dacie produkcji, a nawet do prostych analiz, kiedy dana partia była wytwarzana. Moim zdaniem warto od razu kojarzyć sobie taką komendę z dobrymi praktykami modelowania danych: nazwa kolumny powinna być czytelna i jednoznaczna (tutaj `data_produkcji` bardzo dobrze opisuje zawartość), typ danych powinien być możliwie najbardziej dopasowany do przechowywanej informacji (tu `DATE`, a nie np. `VARCHAR`), a zmiany struktury tabeli trzeba wykonywać świadomie, najlepiej mając kopię zapasową bazy lub przynajmniej danej tabeli. W realnych systemach produkcyjnych często dodaje się też ograniczenia, np. `NOT NULL` albo domyślną wartość, na przykład: `ALTER TABLE Produkty ADD data_produkcji DATE NOT NULL DEFAULT CURRENT_DATE;` W testach i nauce zaczyna się jednak od prostszej wersji, takiej jak w tym pytaniu, żeby dobrze zapamiętać podstawowy schemat: `ALTER TABLE <nazwa_tabeli> ADD <nazwa_kolumny> <typ_danych>;`.

Pytanie 14

Według zasad walidacji HTML5, jakie jest prawidłowe użycie znacznika hr?

A. &lt;/ hr /&gt;
B. &lt;/hr?&gt;
C. &lt;/ hr&gt;
D. &lt;hr&gt;
Wszystkie inne odpowiedzi dotyczące znacznika <hr> są błędne, i to z kilku powodów. Po pierwsze, odpowiedź &lt;/ hr&gt; sugeruje, że <hr> potrzebuje zamknięcia, co nie jest zgodne z zasadami HTML5. Znaczniki samodzielne, jak <hr>, nie mają zamykających wersji, bo to właśnie ich urok. Następnie, &lt;/hr?&gt; ma ten dziwny znak zapytania, co sprawia, że trudno to rozczytać. Tego typu znaki nie mogą być w nazwach znaczników, więc przeglądarki się w tym gubią. I jeszcze inna odpowiedź, &lt;/ hr /&gt;, wraca do starych wersji HTML, gdzie można było takie rzeczy robić, ale teraz to nie ma sensu. Niepoprawne znaczniki mogą sprawić, że strona będzie działać dziwnie, a to nie jest fajne dla użytkowników. Lepiej trzymać się aktualnych zasad, żeby wszystko działało jak należy.

Pytanie 15

Jaki jest cel wykorzystania znacznika <i> w języku HTML?

A. określenia formularza
B. zmiany kroju pisma na pochylony
C. wstawienia obrazka
D. określenia nagłówka w treści
Znacznik <i> w języku HTML jest używany do oznaczania tekstu, który powinien być wyświetlany w kroju pisma pochyłym. Takie użycie jest zgodne ze standardami HTML, gdzie <i> zwykle wskazuje na tekst, który ma być wyróżniony w kontekście stylistycznym, na przykład w przypadku tytułów książek, nazw gatunków czy terminów technicznych. Z perspektywy semantycznej, HTML5 wprowadza większą elastyczność w definiowaniu znaczenia tekstu, co czyni <i> bardziej konwencjonalnym narzędziem niż w poprzednich wersjach. Warto zaznaczyć, że dla lepszej dostępności i SEO, często zaleca się użycie znacznika <em>, który nie tylko zmienia styl, ale także podkreśla znaczenie tekstu. Przykład zastosowania <i>: <i>„Wojna i pokój”</i> to książka autorstwa Lwa Tołstoja. Z perspektywy użytkowników i wyszukiwarek, ważne jest, aby znać różnice między tymi znacznikami, co pozwala na efektywniejsze tworzenie treści internetowych.

Pytanie 16

Jakiego znacznika w języku HTML nie można użyć do wstawienia grafiki dynamicznej na stronę?

A. <strike>
B. style="margin-bottom: 0cm;"><img>
C. <object>
D. style="margin-bottom: 0cm;"><embed>
Wybór odpowiedzi 1, 3 lub 4 może wydawać się zrozumiały, jednak każdy z tych znaczników ma swoje specyficzne zastosowanie i może być użyty do integrowania grafik dynamicznych. Element <img> jest jednym z najbardziej powszechnie używanych znaczników do wyświetlania obrazów, zarówno statycznych, jak i dynamicznych, takich jak animacje w formacie GIF. Odpowiedź 3, <embed>, umożliwia osadzenie multimediów, takich jak wideo czy animacje Flash, a odpowiedź 4, <object>, jest elastycznym elementem, który może wyświetlać różne typy mediów, w tym grafiki i aplikacje interaktywne. Wybierając te odpowiedzi, można dojść do błędnego wniosku, że są one nieodpowiednie, gdyż wszystkie one wspierają umieszczanie mediów na stronie. Typowym błędem myślowym jest mylenie stylizacji tekstu z funkcjonalnością mediów, co prowadzi do niewłaściwego korzystania z semantyki HTML. Zrozumienie różnic między tymi znacznikami i ich zastosowaniem jest kluczowe dla efektywnego tworzenia stron internetowych oraz ich dostępności dla użytkowników.

Pytanie 17

W języku HTML, aby ustawić tytuł dokumentu na "Moja strona", który będzie widoczny na karcie przeglądarki internetowej, należy użyć zapisu

A. <meta title="Moja strona">
B. <head>Moja strona</head>
C. <meta name="title" content="Moja strona">
D. <title>Moja strona</title>
Odpowiedź <title>Moja strona</title> jest poprawna, ponieważ element <title> jest standardowym sposobem definiowania tytułu dokumentu HTML, który jest wyświetlany na pasku tytułowym przeglądarki. Zgodnie z normą HTML, element ten powinien być umieszczony wewnątrz sekcji <head> dokumentu. Przykładowa struktura dokumentu HTML z tytułem wygląda następująco: <html><head><title>Moja strona</title></head><body></body></html>. Tytuł jest istotny nie tylko dla użytkowników, ale również dla wyszukiwarek internetowych, ponieważ wpływa na SEO (Search Engine Optimization). Dobrze dobrany tytuł może zwiększyć klikalność linków w wynikach wyszukiwania. Dodatkowo, element <title> jest ważnym aspektem dostępności, ponieważ osoby korzystające z technologii asystujących polegają na nim, aby zrozumieć zawartość strony. W kontekście dobrych praktyk warto pamiętać, że tytuł powinien być krótki, zwięzły i adekwatny do treści strony. Warto również unikać duplikatów tytułów na różnych stronach tej samej witryny, co może prowadzić do chaosu w nawigacji i negatywnie wpływać na doświadczenia użytkowników oraz SEO.

Pytanie 18

Który z atrybutów obrazu jest niezbędny w znaczniku

<img src="nowa_lektura.jpg" ...>
aby ułatwić korzystanie ze strony użytkownikom z niepełnosprawnością narządu wzroku?
A. "height="42" width="42"
B. align="middle"
C. alt="technik informatyk"
D. usemap="#lekturamap"
W tym zadaniu chodziło o dostępność stron WWW dla osób z niepełnosprawnością narządu wzroku, czyli o to, jak strona współpracuje z czytnikami ekranu i innymi technologiami asystującymi. Wiele osób intuicyjnie skupia się na wizualnych właściwościach obrazka, takich jak wyrównanie, rozmiar czy mapy odsyłaczy, bo to widać od razu w przeglądarce. Problem w tym, że dla użytkownika niewidomego te wizualne parametry nie mają większego znaczenia – dla niego liczy się opis i funkcja elementu, którą czytnik ekranu potrafi odczytać. Atrybut align="middle" dotyczy tylko sposobu wyrównania obrazu na stronie. Kiedyś był częściej używany w starym HTML, dziś jest w zasadzie przestarzały i zgodnie z dobrymi praktykami powinno się go zastępować stylami CSS. Nie wnosi on żadnej informacji semantycznej, niczego nie opisuje, jedynie zmienia położenie elementu na ekranie. Czytnik ekranu nie zyska z niego żadnej treści, którą mógłby przekazać użytkownikowi. Atrybut usemap="..." służy do powiązania obrazu z tzw. mapą odsyłaczy, czyli zdefiniowanymi obszarami klikanymi na grafice. To jest technicznie ciekawa funkcja, ale znowu – ona nie opisuje, co jest na obrazku ani jaką ten obraz pełni rolę. Bez poprawnego tekstu alternatywnego taka mapa może być wręcz trudniejsza do obsługi dla osoby korzystającej z klawiatury i czytnika, bo ma wiele aktywnych pól, ale brak kontekstu. Rozmiar obrazu, ustawiany przez height="..." i width="...", wpływa tylko na sposób wyświetlania w przeglądarce: ile pikseli ma mieć szerokość i wysokość. Z mojego doświadczenia wielu uczniów myśli, że skoro obraz będzie większy lub mniejszy, to może będzie „czytelniejszy”, a więc jakby bardziej dostępny. Dla osoby, która nie widzi, nie ma to żadnego znaczenia – czytnik ekranu nie odczytuje rozmiarów obrazu jako opisu. Takie myślenie jest typowym błędem: mylimy komfort wizualny użytkownika widzącego z dostępnością dla użytkownika niewidomego. Kluczowe w dostępności jest dostarczenie równoważnej informacji w formie tekstu, a nie tylko ładne ustawienie grafiki. W standardach WCAG i zaleceniach W3C jednoznacznie podkreśla się, że każdy istotny obraz powinien mieć odpowiedni atrybut alt. Pozostałe atrybuty, choć czasem przydatne w projektowaniu layoutu lub nawigacji graficznej, nie zastąpią tekstu alternatywnego. Dlatego, kiedy myślisz o użytkownikach z niepełnosprawnością wzroku, najpierw zadbaj o sensowny alt, a dopiero potem o wyrównanie, rozmiar czy bardziej zaawansowane funkcje grafiki.

Pytanie 19

Warunek zapisany w języku PHP wypisze liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. wynik dzielenia liczby przez 2 jest równy 0.
B. jest ona dodatnia.
C. jest ona parzysta.
D. jest ona liczbą pierwszą.
Twoja odpowiedź jest poprawna. Warunek w języku PHP 'if($liczba % 2 == 0)' sprawdza faktycznie, czy dana liczba jest parzysta. Jak dobrze zauważyłeś, reszta z dzielenia liczby parzystej przez 2 jest zawsze równa 0. Jest to bezpośrednie odzwierciedlenie definicji liczby parzystej, która mówi, że jest to liczba, którą można podzielić przez 2 bez reszty. Dlatego warunek ten jest powszechnie stosowany w programowaniu do sprawdzania parzystości liczby. W praktyce, może on być wykorzystany np. do filtrowania danych, gdzie chcemy wykluczyć liczby nieparzyste albo też do różnego rodzaju operacji na tablicach, gdzie operacje wykonujemy tylko dla indeksów parzystych. Pamiętaj jednak, że ten warunek nie sprawdzi, czy liczba jest dodatnia, ujemna czy pierwsza. Do tego potrzebne będą inne warunki i operacje.

Pytanie 20

Po wykonaniu przedstawionego poniżej polecenia SQL użytkownik Ela będzie mógł

GRANT SELECT, INSERT, UPDATE, DELETE ON baza1.tab1 TO 'Ela'@'localhost';
A. wykonywania wszelkich działań na danych
B. wykonywania wszystkich operacji na strukturze danych
C. jedynie dodawania i edytowania danych
D. jedynie tworzenia i zmiany struktury tabel
Polecenie SQL GRANT SELECT INSERT UPDATE DELETE ON baza1.tab1 TO 'Ela'@'localhost' przyznaje użytkownikowi Ela pełny dostęp do danych w tabeli tab1 w bazie danych baza1. Oznacza to możliwość wykonywania wszystkich operacji związanych z zarządzaniem danymi w tej tabeli. Komenda GRANT jest używana do nadawania uprawnień użytkownikom bazy danych. W tym przypadku uprawnienia obejmują SELECT do odczytu danych INSERT do dodawania nowych rekordów UPDATE do modyfikacji istniejących danych oraz DELETE do usuwania rekordów. Uprawnienia te pokrywają pełne spektrum operacji związanych z manipulacją danymi co jest kluczowe w sytuacjach gdzie użytkownik musi mieć elastyczność w zarządzaniu zawartością tabeli. Dobrymi praktykami jest ograniczanie nadawania takich szerokich uprawnień tylko wtedy gdy jest to absolutnie konieczne w celu minimalizacji ryzyka nieautoryzowanej manipulacji danymi. Rozumienie i zarządzanie uprawnieniami użytkowników jest kluczowym elementem bezpieczeństwa bazy danych ponieważ pozwala na kontrolę dostępu i zapewnienie integralności danych. Tak szeroki dostęp jak w tym przypadku powinien być przyznawany z rozwagą i jedynie zaufanym użytkownikom w środowiskach produkcyjnych gdzie dane są szczególnie wrażliwe.

Pytanie 21

Wskaż styl CSS za pomocą którego został uzyskany przedstawiony efekt.

  • psy
  • koty
  • chomiki
  • świnki morskie
  • rybki
A. ul li:nth-child(even) { background-color: DodgerBlue; }
B. ul li:active { background-color: DodgerBlue; }
C. ul li:hover { background-color: DodgerBlue; }
D. ul li:nth-child(odd) { background-color: DodgerBlue; }
Wybrane przez Ciebie odpowiedzi są nieprawidłowe. Zacznijmy od selektora CSS 'ul li:active { background-color: DodgerBlue; }' - aktywny stan elementu to moment, kiedy jest on aktualnie klikany, co nie pasuje do obserwowanego efektu. Następnie 'ul li:nth-child(odd) { background-color: DodgerBlue; }' - ten selektor odnosi się do nieparzystych elementów listy, podczas gdy na obrazku parzyste elementy mają niebieskie tło. Na koniec 'ul li:hover { background-color: DodgerBlue; }' - pseudoklasa :hover odnosi się do stanu, kiedy kursor myszy jest nad elementem, co również nie jest zgodne z efektem na obrazku. Wybór nieodpowiedniej pseudoklasy sugeruje, że nie zrozumiałeś do końca ich zastosowania w CSS. Jest to typowy błąd, który można naprawić przez dokładniejsze zapoznanie się z tym aspektem języka CSS, konkretnie z różnymi pseudoklasami i ich zastosowaniem.

Pytanie 22

Systemy CMS charakteryzują się

A. możliwością programowania w zaawansowanych frameworkach dla aplikacji Web.
B. wbudowanym serwerem poczty elektronicznej.
C. wbudowanym edytorem grafiki wektorowej.
D. możliwością edycji treści bez konieczności znajomości HTML.
Systemy CMS bywają czasem mylone z kombajnem do wszystkiego, ale ich główne zadanie jest dość konkretne: zarządzanie treścią strony internetowej. Stąd łatwo wpaść w pułapkę myślenia, że skoro to rozbudowany system, to na pewno ma wbudowany edytor grafiki wektorowej albo serwer poczty. W praktyce wygląda to inaczej. CMS zazwyczaj pozwala wgrywać obrazy, zmniejszać je, czasem przyciąć czy skompresować, ale pełnoprawny edytor grafiki wektorowej (jak Inkscape czy Illustrator) to zupełnie inna kategoria narzędzi. Projektowanie logotypów, ikon SVG czy ilustracji robi się w zewnętrznych programach, a do CMS wgrywa gotowe pliki. Wbudowanie takiego edytora do CMS byłoby przerostem formy nad treścią i łamaniem zasady podziału odpowiedzialności na wyspecjalizowane narzędzia. Podobnie jest z serwerem poczty elektronicznej. CMS może wysyłać e‑maile (powiadomienia, reset hasła, newsletter), ale technicznie opiera się na zewnętrznym serwerze SMTP lub konfiguracji serwera WWW. Sam w sobie nie pełni roli pełnoprawnego MTA jak Postfix czy Exim. To częsty błąd myślowy: skoro system coś „wysyła”, to ludzie zakładają, że musi mieć wbudowaną pełną infrastrukturę pocztową. W rzeczywistości są to tylko funkcje klienckie. Jeśli chodzi o programowanie w zaawansowanych frameworkach, tu też łatwo się pomylić. CMS może być napisany w jakimś frameworku lub mieć własne API, ale to nie jest jego wyróżnik jako systemu. Programowanie w frameworkach typu Laravel, Symfony czy React to domena deweloperów tworzących aplikacje webowe, a nie typowa funkcja dostarczana redaktorowi treści. Użytkownik CMS raczej klika w panel, ustawia moduły, pluginy, szablony, niż pisze rozbudowany kod aplikacyjny. Kluczową, charakterystyczną cechą CMS jest właśnie to, że pozwala na edycję treści bez konieczności znajomości HTML. Cała reszta – grafika, poczta, frameworki – to albo funkcje zewnętrzne, albo techniczne szczegóły implementacji, które nie definiują idei systemu zarządzania treścią.

Pytanie 23

W systemach bazodanowych, aby przedstawić dane, które spełniają określone kryteria, należy stworzyć

A. makropolecenie
B. raport
C. relację
D. formularz
Raport w kontekście baz danych to coś, co naprawdę pomaga w uporządkowanej prezentacji danych. Dzięki niemu możemy pokazać informacje w taki sposób, żeby było to zrozumiałe i zgodne z tym, czego potrzebujemy. Raporty to świetne narzędzie do zbierania danych, ich analizy i wizualizacji, co jest bardzo ważne w biznesie. Na przykład, można za ich pomocą stworzyć zestawienie sprzedaży za dany okres, porównać finanse różnych działów firmy albo sprawdzić, jak skuteczne były kampanie marketingowe. W praktyce często korzysta się z takich raportów w programach jak Microsoft Access, gdzie można wybrać źródło danych, odpowiednie pola i ustawić filtry. To wszystko po to, żeby stworzyć dokument, który jasno przedstawia wyniki analizy. Warto pamiętać, że tworzenie raportów powinno opierać się na dobrych zasadach, takich jak czytelność i estetyka, a także dostosowanie do potrzeb użytkownika, bo to naprawdę się liczy, jeśli chodzi o UX.

Pytanie 24

Wskaż zapytanie, w którym dane są uporządkowane.

A. SELECT DISTINCT produkt, cena FROM artykuly;
B. SELECT nazwisko FROM firma WHERE pensja > 2000 LIMIT 10;
C. SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;
D. SELECT AVG(ocena) FROM uczniowie WHERE klasa = 2;
Odpowiedź wskazująca na zapytanie "SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;" jest prawidłowa, ponieważ zawiera klauzulę ORDER BY, która służy do sortowania rekordów w wynikach zapytania. W tym przypadku dane są sortowane według kolumny 'wiek', co pozwala na uzyskanie uporządkowanej listy mieszkańców, którzy mają więcej niż 18 lat. Sortowanie danych jest kluczowym aspektem w zarządzaniu bazami danych, umożliwiającym łatwiejsze wyszukiwanie oraz analizę informacji. Przykładem zastosowania może być generowanie raportów, gdzie istotne jest uporządkowanie danych, na przykład według wieku, aby zobaczyć, jak rozkłada się wiek mieszkańców w danej grupie. Dodatkowo, stosowanie sortowania zgodnie z przyjętymi standardami SQL zwiększa czytelność oraz efektywność zapytań, a także ułatwia rozwiązywanie problemów związanych z przetwarzaniem danych.

Pytanie 25

Po zrealizowaniu przedstawionego fragmentu kodu w języku C/C++ do zmiennej o nazwie zmienna2 przypisany zostanie ```int zmienna1 = 158; int *zmienna2 = &zmienna1;```

A. przypisany adres zmiennej o nazwie zmienna1
B. przypisana ta sama wartość, która jest przechowywana w zmienna1
C. przypisana liczba w kodzie binarnym odpowiadająca wartości, która jest przechowywana w zmienna1
D. przypisana zamieniona na łańcuch wartość, która jest przechowywana w zmienna1
W odpowiedziach 2, 3 i 4 pojawiają się błędne interpretacje tego, co właściwie dzieje się w kodzie. Odpowiedź 2 sugeruje, że zmienna2 otrzyma tę samą wartość, co zmienna1, co jest błędne, ponieważ zmienna2 jest wskaźnikiem, a nie zmienną przechowującą wartość. W C/C++ wskaźnik przechowuje adres, a nie samą wartość. Odpowiedź 3 zakłada, że wartość przechowywana w zmienna1 zostanie przekształcona na łańcuch, co jest również niepoprawne. Wskaźniki nie dokonują automatycznych konwersji wartości na inne typy, a operator '&' zwraca adres zmiennej, a nie jej wartość. Wreszcie, odpowiedź 4 sugeruje, że zmienna2 otrzyma liczbę binarną odpowiadającą wartości zmiennej zmienna1. To również jest nieprawdziwe, ponieważ adres pamięci jest reprezentowany w systemie heksadecymalnym lub dziesiętnym, a nie binarnym. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków często wynikają z niewłaściwego zrozumienia różnicy między wartością a adresem w kontekście wskaźników. Zrozumienie tego rozróżnienia jest kluczowe dla efektywnego programowania w C/C++ i unikania problemów z zarządzaniem pamięcią.

Pytanie 26

Zgodnie z zasadami ACID, odnoszącymi się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, iż

A. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
B. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
C. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
D. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
Trwałość (ang. durability) to jedno z kluczowych wymagań modelu ACID, które zapewnia, że dane zatwierdzone przez transakcję pozostają dostępne i chronione przed utratą, nawet w przypadku wystąpienia awarii systemu. Oznacza to, że po pomyślnym zakończeniu transakcji, jej efekty są trwale zapisywane w bazie danych i nie mogą zostać utracone, niezależnie od warunków zewnętrznych, takich jak przerwy w zasilaniu czy błędy systemowe. W praktyce oznacza to, że każda transakcja, która uzyskała status 'zatwierdzonej' (ang. committed), powinna być zapisana w trwały sposób, zazwyczaj z wykorzystaniem mechanizmów takich jak logi transakcyjne. Na przykład, w systemach bazodanowych takich jak PostgreSQL czy Oracle, po zakończeniu transakcji, zmiany są rejestrowane w logach, co pozwala na ich odtworzenie w przypadku awarii. Z perspektywy standardów, wymaganie trwałości jest nieodłącznym elementem zapewnienia integralności danych, które jest kluczowe w systemach obsługujących transakcje finansowe, gdzie możliwość przywrócenia stanu po awarii jest niezbędna.

Pytanie 27

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Wypisać wartość bezwzględną argumentu f
B. Zwrócić wartość bezwzględną argumentu f
C. Wypisać wartość odwrotną do argumentu f
D. Zwrócić wartość odwrotną do argumentu f
Funkcja w języku JavaScript przedstawiona w pytaniu realizuje zadanie zwracania wartości bezwzględnej z argumentu f. Wartość bezwzględna liczby jest jej odległością od zera na osi liczbowej i jest zawsze liczbą nieujemną. Mechanika działania funkcji polega na sprawdzeniu za pomocą instrukcji warunkowej if czy wartość przekazanego argumentu f jest mniejsza od zera. Jeśli tak, wartość ta jest mnożona przez -1 co przekształca ją w liczbę dodatnią. W przeciwnym razie liczba pozostaje bez zmian. Ostatecznie funkcja zwraca wynik operacji co jest typowym podejściem w programowaniu funkcyjnym. Warto zwrócić uwagę że takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ funkcja ma jednoznacznie określony cel i nie powoduje efektów ubocznych takich jak modyfikacja zmiennych globalnych. W realnych projektach często korzysta się z funkcji Math.abs która jest wbudowana w JavaScript i zwraca wartość bezwzględną liczby co jest bardziej wydajnym podejściem i zgodnym ze standardami języka

Pytanie 28

Pętla zapisana w języku PHP wstawi do tablicy liczby:

$x = 0;
for ($i = 0; $i < 10; $i++)
{
    $tabl[$i] = $x;
    $x = $x + 10;
}
A. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
B. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
C. 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
D. 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
Niestety, Twoja odpowiedź jest nieprawidłowa. Błędne odpowiedzi sugerują, że pętla wstawia do tablicy liczby od 0 do 9 lub od 10 do 100, albo od 0 do 10. To jest niepoprawne, ponieważ pętla zaczyna się od $x = 0 i wykonuje się 10 razy ($i od 0 do 9), a w każdej rundzie pętli wartość $x jest zwiększana o 10. Dlatego po 10 rundach w tablicy znajdują się liczby: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90. Wybór innej odpowiedzi może wynikać z błędnego zrozumienia działania pętli albo mylenia różnych rodzajów pętli, które mają różne zastosowania. Pętle są fundamentalnym elementem każdego języka programowania, w tym PHP, dlatego warto zrozumieć ich działanie. Proszę poświęcić więcej czasu na zrozumienie tego tematu, ponieważ jest to podstawa do dalszego programowania.

Pytanie 29

W systemie baz danych stworzono tabelę Mieszkancy zawierającą informacje. Aby usunąć tę tabelę wraz z danymi, należy użyć komendy

A. DELETE FROM Mieszkancy;
B. TRUNCATE TABLE Mieszkancy;
C. DROP TABLE Mieszkancy;
D. ALTER TABLE Mieszkancy;
Polecenie 'DROP TABLE Mieszkancy;' jest właściwym sposobem na usunięcie tabeli wraz z jej zawartością w bazie danych. To polecenie nie tylko usuwa tabelę, ale również wszystkie dane, które w niej się znajdują oraz wszelkie powiązania, takie jak klucze obce. W praktyce, gdy programista chce całkowicie wyeliminować strukturę tabeli oraz jej dane, wykorzystuje 'DROP TABLE'. Jest to szczególnie przydatne w sytuacjach, gdy tabela nie jest już potrzebna w systemie, a jej usunięcie pozwala na zwolnienie zasobów oraz uproszczenie struktury bazy danych. Warto również pamiętać, że przed wykonaniem tego polecenia warto stworzyć kopię zapasową danych, jeśli są one istotne, ponieważ operacja ta jest nieodwracalna. Ponadto, zgodnie z zasadami dobrych praktyk, przed usunięciem tabeli należy upewnić się, że nie ma na nią żadnych zależności w innych częściach bazy danych, aby uniknąć potencjalnych problemów z integralnością danych.

Pytanie 30

Po wykonaniu poniższego fragmentu kodu w języku C/C++, zmiennej o nazwie zmienna2 przypisany zostanie

int zmienna1 = 158;
int *zmienna2 = &zmienna1;
A. adres zmiennej o nazwie zmienna1 zostanie przypisany
B. wartość przechowywana w zmienna1 zostanie przypisana jako zamieniona na łańcuch
C. ta sama wartość, którą zawiera zmienna1, zostanie przypisana
D. liczba w kodzie binarnym, która odpowiada wartości przechowywanej w zmienna1, zostanie przypisana
Odpowiedzi sugerujące przypisanie wartości lub konwersję na łańcuch są błędne, ponieważ mylą podstawowe pojęcia dotyczące wskaźników i zmiennych w C/C++. Przypisanie wartości do zmiennej wskaźnikowej nie odbywa się poprzez kopiowanie samej wartości przechowywanej w zmiennej, lecz przez odniesienie do jej adresu. Odpowiedź wskazująca na przypisanie tej samej wartości, co w zmienna1, nie uwzględnia faktu, że zmienna2 jest wskaźnikiem, a nie zmienną o tej samej wartości. W przypadku konwersji na łańcuch, proces ten również jest nieprawidłowy, ponieważ wskaźniki nie są interpretowane jako łańcuchy znaków, a ich użycie wymaga znajomości typów danych i konwersji w kontekście wskaźników. Ostatnia odpowiedź, mówiąca o przypisaniu liczby w kodzie binarnym, jest myląca, gdyż wskaźniki operują na adresach w pamięci, które nie są reprezentowane w sposób binarny w kontekście zmiennych. Wartości mogą być reprezentowane binarnie w pamięci, ale wskaźniki przechowują adresy, które z perspektywy programisty nie są bezpośrednio związane z wartościami binarnymi zmiennych. Prawidłowe zrozumienie wskaźników jest kluczowe dla unikania błędów w zarządzaniu pamięcią oraz w poprawnym stosowaniu struktur danych w języku C/C++.

Pytanie 31

W języku C++ funkcja, która zwraca rezultat potęgowania i operuje na dwóch argumentach: liczbie x oraz wykładniku w, powinna mieć taką deklarację

A. int potega(int x, int w);
B. void potega(int x, int w, int wynik);
C. int potega(int x);
D. void potega(int x, int w);
Przyjrzyjmy się tym nieprawidłowym odpowiedziom. 'int potega(int x);' to trochę za mało, bo brakuje drugiego argumentu, czyli wykładnika, który jest niezbędny do potęgowania. Potęgowanie potrzebuje obu elementów: podstawy i wykładnika, więc jeżeli jeden z nich wypadnie, to funkcja będzie niekompletna. Odpowiedź 'void potega(int x, int w);' również jest błędna, bo mówi, że funkcja nie zwraca żadnej wartości. W kontekście potęgowania, każdy by oczekiwał uzyskać konkretny wynik. Jak funkcja nic nie zwraca, to można mieć spore problemy z dalszym przetwarzaniem. Co do 'void potega(int x, int w, int wynik);' - dodawanie dodatkowego argumentu niepotrzebnie komplikuje sprawę. Bywa, że można przekazywać argumenty przez referencję, ale w prostym potęgowaniu to po prostu zbędne. Dużo osób nie zdaje sobie sprawy, jak ważne jest, żeby funkcje miały jasno określony interfejs. Dobre funkcje powinny dokładnie określać, co biorą i co zwracają, wtedy łatwiej je używać i integrować w innych częściach programów.

Pytanie 32

Jakie oprogramowanie do zarządzania treścią umożliwia proste tworzenie oraz aktualizację witryny internetowej?

A. CSS
B. SQL
C. PHP
D. CMS
Systemy zarządzania treścią, znane jako CMS (Content Management System), są narzędziami stworzonymi specjalnie do łatwego tworzenia, edycji oraz zarządzania treściami na stronach internetowych. Dzięki CMS użytkownicy, nawet ci bez zaawansowanej wiedzy technicznej, mogą z łatwością aktualizować swoje witryny, dodawać nowe artykuły, zdjęcia oraz inne multimedia. Przykładami popularnych systemów CMS są WordPress, Joomla, czy Drupal. Te platformy oferują szeroką gamę wtyczek oraz szablonów, co pozwala na dostosowanie wyglądu i funkcjonalności strony do indywidualnych potrzeb. Standardy branżowe, takie jak WCAG dla dostępności czy SEO dla optymalizacji pod kątem wyszukiwarek, są również wspierane przez wiele systemów CMS, co czyni je idealnym rozwiązaniem dla osób chcących prowadzić profesjonalne serwisy internetowe. Zastosowanie CMS-u znacząco przyspiesza proces tworzenia stron oraz umożliwia ich łatwe dostosowywanie do zmieniających się potrzeb rynku.

Pytanie 33

Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
A. manipulowania danymi bazy danych klienci.
B. zarządzania strukturą bazy danych klienci.
C. zarządzania strukturą tabeli klienci.
D. manipulowania danymi w tabeli klienci.
Prawidłowa odpowiedź wskazuje, że polecenie SQL 'GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost' nadaje użytkownikowi o nazwie 'adam' z hosta 'localhost' prawa do manipulowania danymi w tabeli 'klienci'. Te konkretne operacje, takie jak SELECT (wybieranie danych), INSERT (wstawianie nowych danych), UPDATE (aktualizowanie istniejących danych), DELETE (usuwanie danych) pozwalają użytkownikowi na pełne zarządzanie danymi, ale nie strukturą tabeli czy bazy danych. Jest to zgodne z zasadą minimalnych uprawnień, która nakazuje nadawać użytkownikom tylko te uprawnienia, które są im bezwzględnie potrzebne do wykonywania ich zadań. Należy pamiętać, że nadanie większych uprawnień, takich jak zarządzanie strukturą bazy danych, mogłoby stworzyć potencjalne zagrożenie dla bezpieczeństwa systemu.

Pytanie 34

Dla przedstawionego fragmentu dokumentu HTML:

<div class="menu"></div>
zdefiniowano formatowanie CSS selektora klasy "menu" tak, aby kolor tła bloku był zielony. Która definicja stylu CSS odpowiada temu formatowaniu?
A. div:menu { color: green; }
B. div.menu { background-color: green; }
C. menu { background-color: rgb(0,255,0); }
D. #menu { background-color: rgb(0,255,0); }
Podstawowy problem w niepoprawnych odpowiedziach wynika z mylenia różnych rodzajów selektorów CSS: typu, klasy i identyfikatora, a także pseudo-klas. W HTML mamy wyraźnie wskazany element `<div class="menu"></div>`. Atrybut `class` mówi wprost, że do stylowania należy użyć selektora klasy, czyli zapisu z kropką: `.menu` lub bardziej precyzyjnie `div.menu`. Użycie dwukropka w zapisie `div:menu` wygląda jak próba zastosowania pseudo-klasy, ale `menu` nie jest żadną standardową pseudo-klasą CSS. Pseudo-klasy to np. `:hover`, `:active`, `:first-child`. Przeglądarka taki selektor po prostu zignoruje, więc styl się nie zastosuje. Kolejnym typowym nieporozumieniem jest zamiana klasy na identyfikator. Znak `#` w CSS oznacza selektor id, więc `#menu` pasowałby do elementu `<div id="menu">`, a nie do `<div class="menu">`. Id i klasa to dwie różne rzeczy: id powinno być unikalne w całym dokumencie, a klasę można stosować wielokrotnie. W realnych projektach front-endowych mieszanie tych dwóch mechanizmów prowadzi do chaosu w kodzie i trudnych do wykrycia błędów, dlatego warto od początku rozróżniać `.` od `#` bardzo świadomie. Pojawia się też zapis `menu { background-color: rgb(0,255,0); }`. Taki selektor odnosi się do znacznika HTML o nazwie `menu`, czyli do `<menu>...</menu>`. Istnieje taki tag w HTML5, ale w pytaniu nie ma go w ogóle, jest zwykły `<div>`. Sam fakt, że klasa nazywa się „menu”, nie oznacza, że selektor typu `menu` będzie pasował. CSS nie „zgaduje” naszych intencji, tylko ściśle dopasowuje selektor do struktury dokumentu. To częsty błąd myślowy: patrzymy na nazwę klasy i podświadomie traktujemy ją jak nazwę znacznika. Moim zdaniem kluczowa lekcja z tego pytania jest taka: najpierw patrzymy na HTML i dokładnie identyfikujemy, czy mamy do czynienia z klasą (`class`), identyfikatorem (`id`), czy konkretnym tagiem (`div`, `p`, `nav` itd.). Dopiero potem dobieramy odpowiedni selektor CSS: `.` dla klasy, `#` dla id, samą nazwę znacznika dla selektora typu. Takie systematyczne podejście bardzo ułatwia dalszą pracę z arkuszami stylów i pomaga budować czytelne, skalowalne style zgodnie z dobrymi praktykami branżowymi.

Pytanie 35

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

A. favicon
B. iConji
C. emoticon
D. webicon
Wybór odpowiedzi, która nie jest faviconem, wskazuje na pewne nieporozumienia dotyczące terminologii oraz funkcji tych elementów w kontekście web designu. Emotikon, na przykład, to graficzny symbol stosowany w komunikacji online, służący do wyrażania emocji, a nie jako symbol identyfikacyjny strony w przeglądarkach. Webicon i iConji to również pojęcia nieistniejące w kontekście standardów internetowych, co może sugerować mylenie ich z przyjętymi terminami. W rzeczywistości, favicon ma na celu przede wszystkim identyfikację witryny, co wpływa na doświadczenia użytkowników i pozytywne postrzeganie marki. Użytkownicy często polegają na ikonach przeglądarki, aby szybko zidentyfikować i nawigować między otwartymi kartami, co czyni favicon niezwykle ważnym w kontekście użyteczności strony. Ignorując ten aspekt, projektanci mogą wprowadzać w błąd użytkowników lub obniżać komfort korzystania z serwisu. Właściwe zrozumienie tego, czym jest favicon oraz jego znaczenia w kontekście projektowania stron, jest kluczowe dla tworzenia efektywnych i rozpoznawalnych witryn internetowych.

Pytanie 36

Która z reguł dotyczących sekcji w HTML jest właściwa?

A. W sekcji <head> mogą znajdować się znaczniki <meta>, <title>, <link>
B. W sekcji <head> nie można umieszczać kodu CSS, tylko odwołanie do pliku CSS
C. W sekcji <head> można definiować szablon strony przy użyciu znaczników <div>
D. W sekcji <head> znajduje się sekcja <body>
Sekcja <head> w HTML bardzo często bywa mylona z miejscem na wszystko, czego akurat nie chcemy pokazać użytkownikowi, i stąd biorą się różne dziwne pomysły na jej wykorzystanie. Tymczasem zgodnie ze specyfikacją HTML <head> służy do umieszczania metadanych o dokumencie, a nie właściwej struktury layoutu czy treści. Pojawia się czasem przekonanie, że w <head> nie wolno umieszczać kodu CSS, a jedynie odwołanie do zewnętrznego pliku. To nie jest prawda: jak najbardziej można stosować znacznik <style> z osadzonym CSS-em wewnętrznym. Po prostu w praktyce branżowej częściej używa się <link rel="stylesheet" href="...">, bo rozdzielenie HTML i CSS ułatwia utrzymanie kodu i ponowne wykorzystanie stylów. To jest kwestia dobrych praktyk, a nie twardego zakazu. Kolejne nieporozumienie to pomysł, że w <head> znajduje się sekcja <body>. Struktura dokumentu HTML jest jasno zdefiniowana: <head> i <body> są rodzeństwem, obydwa bezpośrednio w <html>. <body> nie może być zagnieżdżony w <head>, bo łamie to standard i prowadzi do nieprzewidywalnego zachowania przeglądarki, które co najwyżej próbuje „naprawić” taki dokument po swojemu. Równie mylące jest traktowanie <head> jako miejsca na „szablon” strony z użyciem znaczników <div>. Cały układ, kontenery, kolumny, nagłówki, sekcje itp. powinny znajdować się w <body>, bo to są elementy treściowe lub strukturalne widoczne dla użytkownika. W <head> trzymamy tylko informacje opisujące dokument, jak <meta>, <title>, <link>, ewentualnie <script> czy <style>, ale nie semantyczny layout. Typowy błąd myślowy polega na mieszaniu pojęcia „nagłówek strony” (np. baner z logo) z „nagłówkiem dokumentu” HTML, czyli sekcją <head>. Ten pierwszy jest zwykle tworzony w <body> za pomocą <header> i <div>, a ten drugi to czysto techniczna część dokumentu przeznaczona dla przeglądarki, wyszukiwarek i innych narzędzi, a nie dla bezpośredniej prezentacji użytkownikowi.

Pytanie 37

W jaki sposób można ocenić normalizację przedstawionej tabeli?

FirmaAdres
Forbotul. Krótka 11, 22-222 Warszawa
Marbotul. Długa 5, 33-333 Warszawa
A. Tabela znajduje się w pierwszej postaci normalnej
B. Tabela jest w trzeciej postaci normalnej
C. Tabela znajduje się w drugiej postaci normalnej
D. Tabela nie została znormalizowana
Pierwsza postać normalna wymaga aby wszystkie wartości atrybutów w rekordzie były atomowe czyli nieredukowalne Tabela przedstawiona w zadaniu nie spełnia tego wymogu ponieważ adresy nie są rozbite na osobne elementy takie jak ulica miasto i kod pocztowy co uniemożliwia bardziej złożoną manipulację danymi oraz precyzyjne wyszukiwanie Druga postać normalna wymaga aby wszystkie atrybuty nie będące częścią klucza głównego były w pełni funkcjonalnie zależne od całego klucza Tabela z pytania nie spełnia tych kryteriów ponieważ istnieje redundancja i brak wyraźnej struktury Klucz główny w dobrze zaprojektowanej tabeli bazy danych powinien jednoznacznie identyfikować każdy wiersz co nie jest widoczne w tej strukturze Trzecia postać normalna idzie krok dalej eliminując zależności przechodnie między atrybutami co w przypadku tej tabeli również nie ma zastosowania Problemem tutaj jest brak rozdzielenia danych na mniejsze tabele co prowadzi do redundancji i potencjalnych błędów przy aktualizacji danych często określanych jako anomaly W dobrze znormalizowanej bazie danych oddzielenie informacji takich jak dane adresowe umożliwia lepszą organizację danych ich spójność oraz zwiększa efektywność operacji na bazie danych

Pytanie 38

Wynik wykonania zapytania SQL to

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. suma ocen uczniów, których średnia ocen to 5
B. liczba uczniów, których średnia ocen wynosi 5
C. całkowita liczba uczniów
D. średnia ocen wszystkich uczniów
Poprawna odpowiedź to liczba uczniów, których średnia ocen wynosi 5. Zapytanie SQL zawiera funkcję agregującą count(*), która zlicza wszystkie rekordy spełniające warunek określony w klauzuli WHERE. W tym przypadku filtrujemy uczniów, których średnia ocen jest równa 5. Tego rodzaju operacje są powszechnie stosowane w bazach danych do uzyskiwania statystyk oraz analizowania danych. Na przykład, jeśli chcemy ocenić skuteczność programu nauczania, możemy zastosować podobne zapytanie, aby zidentyfikować liczbę uczniów osiągających określony poziom w nauce. W praktyce ważne jest, aby zrozumieć, że przy używaniu funkcji agregujących w SQL, wyniki mogą być niezwykle cenne dla menedżerów edukacyjnych, którzy podejmują decyzje na podstawie danych. Rekomendowane jest również zrozumienie kontekstu, w jakim są stosowane takie zapytania, oraz sposób, w jaki można je optymalizować dla większych zbiorów danych, aby uzyskać szybkie i dokładne wyniki.

Pytanie 39

Wskaż, który paragraf jest sformatowany przy użyciu podanego stylu CSS:

p {
    font-family: serif;
    background-color: Teal;
    color: white;
    font-style: italic;
}
Ilustracja do pytania
A. Paragraf 4
B. Paragraf 3
C. Paragraf 1
D. Paragraf 2
Paragraf 4 jest prawidłowo sformatowany zgodnie z przedstawionym stylem CSS. W stylu tym zastosowano cztery właściwości: font-family o wartości serif co sugeruje użycie czcionki o kroju szeryfowym background-color ustawiony na Teal co ustawia tło na ciemnozielony kolor color ustawiony na White co oznacza że tekst powinien być biały oraz font-style ustawiony na italic co powoduje że tekst jest pochylony. Paragraf 4 spełnia te kryteria jest napisany czcionką szeryfową ma ciemnozielone tło biały tekst i jest kursywą. Zastosowanie takich stylów jest częste w projektowaniu stron internetowych gdzie ważne jest czytelne i estetyczne przedstawienie informacji. Używanie odpowiednich stylów CSS pozwala na lepszą organizację wizualną treści co jest kluczowe w tworzeniu interfejsów przyjaznych dla użytkownika. Stylowanie w CSS wspiera standardy takie jak CSS3 które wprowadzają nowe właściwości i ulepszenia umożliwiające bardziej zaawansowane i wydajne metody formatowania.

Pytanie 40

W języku PHP znak "//" wskazuje na

A. początek komentarza jednoliniowego
B. operator alternatywny
C. operator dzielenia całkowitego
D. początek skryptu
W języku PHP znak '//' oznacza początek komentarza jednoliniowego. Komentarze w PHP są istotnym elementem kodu, pozwalającym programistom na dodawanie adnotacji, które nie wpływają na wykonywanie skryptu. Komentarze są niezwykle pomocne, gdyż umożliwiają wyjaśnienie złożonych fragmentów kodu, co ułatwia jego dalsze utrzymanie i rozwijanie. Dzięki używaniu '//', programista może opisać, co dany fragment kodu robi, dla siebie lub innych osób przeglądających kod w przyszłości. Przykład zastosowania: jeśli mamy kod 'echo "Hello World!";', możemy dodać komentarz wyjaśniający: '// Wyświetla tekst Hello World!'. Warto zaznaczyć, że PHP pozwala także na korzystanie z komentarzy wieloliniowych, które zaczynają się od '/**' i kończą na '*/'. Stosowanie komentarzy jest zgodne z najlepszymi praktykami programistycznymi, które zalecają dokumentowanie kodu oraz poprawne jego komentowanie, co jest częścią standardów kodowania, takich jak PSR-1 oraz PSR-2, promujących czytelność i spójność w kodzie.