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: 24 lipca 2026 17:49
  • Data zakończenia: 24 lipca 2026 18:00

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

Wskaż zdanie, które jest nieprawdziwe w odniesieniu do poniższej definicji funkcji w języku C++? void zamien(float &x, float &y){ float tmp; tmp=x; x=y; y=tmp; }

A. Funkcja zwraca jakąś wartość
B. Funkcja korzysta z parametrów przez referencję
C. Funkcja nie zwraca żadnej wartości
D. Funkcja ma dwa argumenty
Funkcja zamien jest przykładem funkcji w języku C++, która nie zwraca wartości. Zdefiniowana jako 'void', co oznacza, że nie ma zwracanej wartości. W C++ typ zwracany przez funkcję jest kluczowym elementem definicji funkcji. W przypadku, gdy funkcja jest określona jako 'void', użytkownik nie powinien oczekiwać, że funkcja przekaże jakąkolwiek wartość po jej zakończeniu. Funkcja ta przyjmuje dwa argumenty typu 'float' przekazywane przez referencję, co pozwala na modyfikację ich wartości bezpośrednio w miejscu ich wywołania. Przykładowo, jeżeli zmienne 'x' i 'y' mają przypisane wartości 5.0 i 10.0 przed wywołaniem funkcji, po jej wykonaniu ich wartości zmienią się na odpowiednio 10.0 i 5.0. Oznacza to, że modyfikacja wartości zmiennych zewnętrznych jest możliwa dzięki użyciu referencji. W praktyce oznacza to także, że nie ma potrzeby korzystania z dodatkowych zmiennych do przechowywania wyników, co może być wydajniejsze. Funkcje 'void' są często stosowane w przypadkach, gdy operacje nie wymagają zwracania wyników, a jedynie modyfikacji przekazanych argumentów.

Pytanie 2

Który odnośnik (hiperłącze) jest poprawnie zapisany?

A.
<a src="/www.strona.pl">strona</a>
B.
<a href="http::/strona.pl>strona</a>
C.
<a href="http://strona.pl">strona</a>
D.
<a href=http://strona.pl>strona</a>
Pozostałe zapisy zawierają błędy. Pierwszy używa atrybutu src, który wskazuje źródło (np. dla obrazu czy skryptu), a nie adres odnośnika - tu powinien być href. Drugi pomija cudzysłowy wokół wartości href, co jest niezgodne z dobrą praktyką zapisu atrybutów. Trzeci ma błędny adres http::/ (powinno być http://) oraz niezamknięty cudzysłów. Poprawnie odnośnik zapisuje się jako <a href="http://strona.pl">strona</a>, dlatego ta odpowiedź jest właściwa.

Pytanie 3

Po wydaniu polecenia użytkownik Jacek będzie mógł

GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. usuwać tabelę i tworzyć nową.
B. przeglądać dane w tabeli i wstawiać nowe dane.
C. usuwać dane z tabeli i przeglądać dane.
D. zmieniać strukturę tabeli i wstawiać nowe dane.
Twoja odpowiedź jest nieprawidłowa. Po wydaniu polecenia SQL 'GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';', użytkownik Jacek zyskuje jedynie uprawnienia do przeglądania (SELECT) i wstawiania (INSERT) danych w tabeli 'mojaTabela' w bazie danych 'baza1'. Nie ma jednak możliwości usuwania danych (co wymagałoby uprawnienia DELETE), zmieniania struktury tabeli (co wymagałoby uprawnienia ALTER) czy usuwania i tworzenia nowej tabeli (co wymagałoby uprawnienia DROP). Misinterpretacja rodzaju nadanych uprawnień może prowadzić do błędów, niewłaściwego zarządzania bazą danych i potencjalnych problemów z bezpieczeństwem. Ważne jest, aby zrozumieć i prawidłowo interpretować polecenia SQL dotyczące nadawania uprawnień, aby zapewnić prawidłowe i bezpieczne zarządzanie danymi.

Pytanie 4

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

A. /* informacje komentarza */
B. "" informacje komentarza ""
C. <!-- informacje komentarza -->
D. -- informacje komentarza --
Poprawny komentarz w HTML musi być zapisany dokładnie w formie: <!-- treść komentarza -->. To jest jedyny format zgodny ze specyfikacją HTML (HTML5, ale też starsze wersje). Przeglądarka traktuje wszystko, co znajduje się między ciągiem znaków <!-- a -->, jako komentarz, czyli tego nie wyświetla użytkownikowi i nie interpretuje jako kod. Dzięki temu można w kodzie zostawiać sobie uwagi, opisy sekcji, tymczasowo coś „wyłączyć” albo oznaczyć fragment do późniejszej edycji. W praktyce stosuje się np.: <!-- Nawigacja główna strony --> albo <!-- TODO: dodać link do panelu logowania -->. Moim zdaniem komentarze są szczególnie ważne w większych projektach, bo po miesiącu naprawdę trudno pamiętać, po co była jakaś dziwna konstrukcja w HTML. Warto też wiedzieć, że w HTML nie stosujemy ani //, ani /* */ jak w JavaScript czy CSS. To są inne języki, inne reguły. Jeżeli wstawisz coś w stylu <!-- <p>Tekst</p> -->, to cały ten akapit jest ignorowany przez przeglądarkę, co jest wygodne przy testowaniu. Dobra praktyka jest też taka, żeby nie przesadzać z ilością komentarzy, ale tam gdzie struktura jest mniej oczywista (np. zagnieżdżone divy, rozbudowane formularze), lepiej dodać krótki, konkretny opis. W projektach komercyjnych często używa się komentarzy do oznaczania sekcji layoutu, np. <!-- HEADER START -->, <!-- FOOTER END -->, co ułatwia pracę całemu zespołowi. W skrócie: tylko zapis z nawiasami ostrymi i myślnikami, czyli <!-- ... -->, jest w HTML prawidłowy i rozpoznawany jako komentarz.

Pytanie 5

Aby dodać nową kolumnę do już istniejącej tabeli, należy użyć polecenia SQL:

A.
INSERT INTO
B.
UPDATE TABLE
C.
ALTER TABLE
D.
CREATE TABLE
Pozostałe polecenia nie zmieniają struktury istniejącej tabeli. CREATE TABLE tworzy zupełnie nową tabelę - nie da się nim dołożyć kolumny do już istniejącej. UPDATE TABLE nie istnieje w SQL, a samo UPDATE modyfikuje dane w wierszach, a nie kolumny. INSERT INTO dodaje nowy wiersz z wartościami, czyli działa na danych, nie na strukturze. Dodanie kolumny do tabeli wykonuje ALTER TABLE z klauzulą ADD.

Pytanie 6

Jaki zestaw liczb zostanie wyświetlony w wyniku działania pętli napisanej w języku PHP?

$liczba = 10;
while ($liczba < 50) {
  echo "$liczba ";
  $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45 50
B. 0 5 10 15 20 25 30 35 40 45 50
C. 0 5 10 15 20 25 30 35 40 45
D. 10 15 20 25 30 35 40 45
Prawidłowa odpowiedź to 10 15 20 25 30 35 40 45 ponieważ pętla while w języku PHP działa na zasadzie sprawdzania warunku przed każdą iteracją. W tym przypadku zmienna $liczba jest inicjalizowana wartością 10 a warunek w pętli sprawdza czy $liczba jest mniejsza niż 50. Wartość zmiennej jest wypisywana i następnie zwiększana o 5 w każdym kroku iteracyjnym. Pętla zakończy się gdy $liczba osiągnie wartość 50 lub większą. Dlatego ostatnią wypisaną wartością będzie 45 gdyż po dodaniu 5 zmienna $liczba wyniesie 50 i przestanie spełniać warunek pętli. Takie konstrukcje pętli są powszechne w programowaniu szczególnie gdy mamy do czynienia z iteracją po stałych przedziałach liczbowych. Stosowanie pętli while jest zalecane w przypadku gdy liczba iteracji nie jest z góry znana a jedynie zależy od spełnienia określonego warunku. Ważne jest by pamiętać o możliwości nieskończonej pętli jeśli warunek nigdy nie zostanie spełniony co może prowadzić do błędów wykonania programu. Praktycznym zastosowaniem takiej pętli jest iteracja po zbiorze danych którego rozmiar zależy od zewnętrznych czynników np danych wejściowych od użytkownika lub zawartości pliku.

Pytanie 7

Jaką relację typu uzyskuje się w wyniku powiązania kluczy głównych dwóch tabel?

A. jeden do jednego
B. wiele do jednego
C. jeden do wielu
D. wiele do wielu
Relacje między tabelami w bazach danych mogą przyjmować różne formy, a wybór niewłaściwego typu relacji może prowadzić do poważnych konsekwencji w zakresie integralności danych i wydajności zapytań. W przypadku odpowiedzi wskazujących na relacje wiele do wielu, jeden do wielu czy wiele do jednego, kluczowym błędem jest niepełne zrozumienie, jak działają klucze główne i obce. Relacja wiele do wielu jest stosowana, gdy każdy rekord w jednej tabeli może być związany z wieloma rekordami w drugiej tabeli oraz odwrotnie. Przykładem takiej relacji mogą być tabele reprezentujące autorów i książki, gdzie jeden autor może napisać wiele książek, a jedna książka może być napisana przez wielu autorów. Relacja jeden do wielu z kolei oznacza, że jeden rekord w tabeli nadrzędnej może być powiązany z wieloma rekordami w tabeli podrzędnej, co jest typowe w przypadku hierarchicznych struktur danych, jak na przykład kategorie i produkty w sklepie internetowym. Relacja wiele do jednego z definicji jest odwrotnością relacji jeden do wielu, co również nie jest adekwatne w kontekście łączenia tabel z kluczem głównym do klucza obcego. Te błędne koncepcje mogą wynikać z mylnego założenia, że każda forma powiązania między rekordami jest równie efektywna, co może prowadzić do problemy z wydajnością bazy danych oraz błędami w analizie danych. Warto zatem zawsze dokładnie analizować wymagania systemu przed podjęciem decyzji o typie relacji, aby zapewnić optymalne zarządzanie danymi.

Pytanie 8

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest widoczne na zamieszczonym rysunku?

Ilustracja do pytania
A. Drupal
B. MediaWiki
C. Joomla!
D. WordPress
Podczas wyboru systemu zarządzania treścią istotne jest zrozumienie różnic między różnymi platformami. Drupal jest potężnym CMS-em często wybieranym do budowy złożonych stron gdzie wymagane są skomplikowane struktury danych i zaawansowana kontrola uprawnień użytkowników. Jednak jego zaawansowane funkcje mogą sprawić że krzywa uczenia się będzie bardziej stroma szczególnie dla początkujących użytkowników. Drupal jest jednak doskonałym wyborem dla dużych organizacji które potrzebują niezawodności i skalowalności. Z kolei WordPress jest najbardziej popularnym CMS-em na świecie znanym ze swojej prostoty i ogromnej liczby dostępnych wtyczek i motywów co czyni go idealnym wyborem dla blogów i prostych stron internetowych. Jego przystępność i łatwość użycia sprawiają że jest on preferowany przez początkujących ale może być niewystarczający dla bardziej rozbudowanych projektów. MediaWiki to platforma stworzona dla projektów typu wiki i jest najlepiej znana z napędzania Wikipedii. Jej funkcje są skoncentrowane na umożliwieniu wielu użytkownikom współpracy i edycji treści co czyni ją mniej odpowiednią dla tradycyjnych stron internetowych. Typowym błędem podczas wyboru CMS-a jest kierowanie się wyłącznie popularnością zamiast analizowania specyficznych potrzeb projektu i odpowiednich funkcji jakie oferuje dany CMS. Dlatego kluczowe jest zrozumienie że wybór CMS-a powinien być podyktowany konkretnymi wymaganiami dotyczącymi funkcjonalności i zarządzania treścią.

Pytanie 9

W HTML, aby dodać obrazek z tekstem przylegającym, umiejscowionym na środku obrazka, trzeba użyć znacznika

A. <img src="/obrazek.png" alt="obraz2" align="middle">tekst
B. <img src="/obrazek.png" alt="obraz3" height="50%">tekst
C. <img src="/obrazek.png" alt="obraz1" hspace="30px">tekst
D. <img src="/obrazek.png" alt="obraz4">tekst
Aby wstawić obrazek z tekstem przyległym w HTML, należy skorzystać ze znacznika <img> z atrybutem align ustawionym na 'middle'. Atrybut align jest przestarzały w HTML5, ale nadal może być używany w kontekście tekstów przylegających do obrazków. Ustawiając 'middle', obrazek będzie wyśrodkowany w pionie względem linii tekstu, co pozwala na estetyczne umiejscowienie obrazu w odniesieniu do towarzyszącego mu tekstu. Dobrym przykładem jest zastosowanie <img src='/obrazek.png' alt='obraz2' align='middle'>tekst, co sprawia, że obrazek staje się integralną częścią tekstu, a nie tylko jego dodatkiem. W kontekście standardów, warto zauważyć, że HTML5 zaleca stosowanie CSS do pozycjonowania, dlatego bardziej współczesnym podejściem byłoby użycie stylów CSS, np. 'vertical-align: middle'. Można to osiągnąć poprzez dodanie klasy do obrazka oraz odpowiedniego stylu CSS. Chociaż align jest przestarzały, jego rozumienie jest istotne dla osób przystosowujących starsze strony do nowych standardów.

Pytanie 10

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

A. zmienna+=1;
B. zmienna --;
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 11

Dostosowanie wyglądu witryny do indywidualnych preferencji użytkownika oraz jego identyfikacja w systemie są możliwe dzięki mechanizmowi

A. cookie
B. łączenia z bazą
C. formularzy
D. obiektów DOM
Wybór formularzy, DOM i łączenia z bazą danych jako sposobów na personalizację strony i identyfikację użytkownika to trochę nieporozumienie. Formularze pozwalają na wysyłanie danych, jak logowanie czy rejestracja, ale same w sobie nie przechowują informacji o użytkownikach. Ich głównym celem jest interakcja z użytkownikiem. Obiekty DOM to właściwie struktura dokumentu HTML i umożliwiają modyfikację elementów na stronie, ale nie służą do identyfikacji użytkownika. Łączenie z bazą danych jest ważne dla przechowywania danych, ale to nie to samo co lokalne przechowywanie, które jest kluczowe dla personalizacji. Jeśli chcesz dobrze projektować aplikacje webowe, warto zrozumieć te różnice, bo błędy mogą się zdarzyć, zwłaszcza jeśli chodzi o cookies.

Pytanie 12

Jakie oprogramowanie jest potrzebne do uruchomienia skryptu JavaScript działającego na stronie?

A. debugger JavaScript
B. przeglądarka internetowa
C. serwer MySQL
D. serwer WWW
Pozostałe oprogramowanie nie jest konieczne do działania JS w przeglądarce. Serwer WWW i serwer MySQL obsługują stronę i bazę po stronie SERWERA, niezależnie od skryptów klienta. Debugger JS pomaga szukać błędów, ale nie jest wymagany do uruchomienia kodu. Wystarczy przeglądarka internetowa.

Pytanie 13

Która funkcja PHP zamieni słowo "kota" na "mysz" w napisie "ala ma kota"?

A.
replace("ala ma kota", "kota", "mysz");
B.
str_replace("kota", "mysz", "ala ma kota");
C.
replace("kota", "mysz", "ala ma kota");
D.
str_replace("ala ma kota", "kota", "mysz");
Pozostałe wywołania są błędne. Funkcja replace() (bez str_) w PHP nie istnieje. Wariant str_replace("ala ma kota", "kota", "mysz") używa właściwej funkcji, ale w złej kolejności - jako pierwszy podaje cały tekst zamiast szukanego fragmentu. Poprawne jest str_replace("kota", "mysz", "ala ma kota").

Pytanie 14

Który z przedstawionych poniżej fragmentów kodu HTML5 zostanie uznany przez walidator HTML za niepoprawny?

A. <p class= "stl"><style>.a{color:#F00}</style>tekst</p>
B. <p class= "stl">tekst</p>
C. <p class= "stl" style= "color: #F00 ">tekst</p>
D. <p class= "stl" id= "a">tekst</p>
Pozostałe odpowiedzi nie zawierają błędów, które mogłyby skutkować odrzuceniem przez walidator HTML5. W pierwszym przypadku użycie atrybutu class w tagu <p> jest w pełni zgodne z HTML5, co pozwala na przypisanie stylu do elementu. Atrybut class jest standardowym sposobem klasyfikacji elementów, co umożliwia ich stylizację z użyciem CSS. W drugim przykładzie, dodanie atrybutu id do tagu <p> również nie narusza zasad poprawności HTML i pozwala na jednoznaczne identyfikowanie elementu na stronie. Identyfikatory są istotnym narzędziem w programowaniu front-end i są często wykorzystywane w JavaScript oraz przy stylizacji CSS. W trzecim przypadku stylowanie bezpośrednie na elemencie <p> przy użyciu atrybutu style jest akceptowalne w HTML5, mimo że nie jest to najlepsza praktyka ze względu na zasady separacji treści i stylu. Współczesne podejścia do programowania zalecają korzystanie z zewnętrznych arkuszy stylów, aby poprawić organizację kodu i jego ponowne użycie. Wszystkie te przykłady ilustrują biegłość w korzystaniu z HTML5 i jego atrybutów, co jest niezbędne do tworzenia semantycznych i dostępnych stron internetowych.

Pytanie 15

Spośród wymienionych formatów, który charakteryzuje się najszerszą rozpiętością tonalną?

A. BMP
B. RAW
C. JPEG
D. PNG
Odpowiedzi, które nie są poprawne, można analizować w kontekście ich technicznych ograniczeń. Format PNG, mimo że obsługuje przezroczystość i jest bezstratnym formatem, ma ograniczoną rozpiętość tonalną, co oznacza, że nie przechowuje tak dużej ilości informacji tonalnych jak RAW. Ponadto, jego główną funkcją jest przechowywanie obrazów z dużą ilością detali w mniej skomplikowanych kolorach, co czyni go mniej odpowiednim do profesjonalnej obróbki zdjęć w trudnych warunkach oświetleniowych. Format BMP, choć prosty i łatwy w użyciu, również nie wspiera zaawansowanej obróbki kolorów, a jego duża objętość plików powoduje, że nie jest praktyczny dla profesjonalnych zastosowań. BMP nie korzysta z kompresji, co sprawia, że pliki są znacznie większe niż w przypadku innych formatów, ale nie oferuje dodatkowych korzyści w zakresie tonalności. JPEG, pomimo szerokiego zastosowania w fotografii i sieci, jest formatem stratnym, co oznacza, że podczas kompresji traci część danych, a tym samym rozpiętość tonalna jest ograniczona. JPEG jest bardziej odpowiedni do codziennego użytku ze względu na mniejszy rozmiar plików, ale nie daje takiej elastyczności w edycji jak RAW, co czyni go niewłaściwym wyborem dla profesjonalnych fotografów poszukujących najwyższej jakości obrazu.

Pytanie 16

Jakie skutki przyniesie zastosowanie przedstawionego formatowania CSS dla nagłówka trzeciego stopnia?

<style> h3 { background-color: grey; } </style> ... <h3 style="background-color: orange;"> Rozdział 1.2.2. </h3>
A. kolor tekstu będzie pomarańczowy
B. tło będzie pomarańczowe
C. kolor tekstu będzie szary
D. tło będzie szare
W tym przykładzie pokazano dwa różne sposoby stylizacji za pomocą CSS: styl wbudowany i styl zewnętrzny. Styl wbudowany ma wyższy priorytet, bo jest przypisany bezpośrednio do elementu HTML, a to oznacza, że w nagłówku trzeciego stopnia kolor tła będzie pomarańczowy. To ma sens, bo czasem musimy przeskoczyć ogólne reguły stylizacji, żeby wprowadzić jakieś szczególne zmiany. Używanie stylów wbudowanych może być jednak ryzykowne, bo jak się ich nagromadzi, to ciężko się potem w tym połapać. Dlatego lepiej korzystać z zewnętrznych stylów – są bardziej uporządkowane i pozwalają na łatwe powtarzanie kodu CSS. Ważne jest też, żeby nie łączyć HTML z CSS w sposób, który wprowadza zamęt, bo to ułatwia życie i sprawia, że kod jest bardziej zrozumiały. Wiedza na temat priorytetów w CSS jest kluczowa dla każdego, kto chce dobrze projektować strony i mieć wszystko ładnie poukładane.

Pytanie 17

Jaką instrukcją można zastąpić poniższy kod JavaScript, pełniącą tę samą funkcję?

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}

Kod 1.
while (i < 100) {
  document.write(i + ' ');
}

Kod 2.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}

Kod 3.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}

Kod 4.
A. Kod 3
B. Kod 2
C. Kod 1
D. Kod 4
Odpowiedzi inne niż Kod 3 są niepoprawne ponieważ nie odzwierciedlają poprawnie logiki oryginalnej pętli for. Kod 1 gdzie warunek jest i < 10 zamiast i < 100 będzie iterować zbyt mało razy ponieważ inkrementacja i odbywa się co 10 jednostek a warunek przerywający pętlę jest osiągnięty już po pierwszej iteracji co nie odpowiada strukturze pętli for. Kod 2 również używa błędnego warunku i < 100 ale brakuje w nim inicjalizacji zmiennej i co może prowadzić do błędów związanych z używaniem nieokreślonej zmiennej. W praktyce taki błąd jest często spotykany w przypadku gdy programista zapomina o zdefiniowaniu zmiennej przed rozpoczęciem pętli co prowadzi do nieprzewidywalnego działania kodu. Kod 4 także nie jest poprawny ponieważ w warunku while używa i < 10 co oznacza że pętla znów nie zostanie wykonana odpowiednią ilość razy. Ponadto inkrementacja i o 1 jednostkę zamiast o 10 znacznie zmienia ilość iteracji wymaganych do zakończenia pętli co nie jest zgodne z początkową pętlą for. Rozważając te błędne odpowiedzi warto zauważyć że precyzyjne określanie warunków i operacji w pętlach jest kluczowe dla ich prawidłowego działania co jest podstawą efektywnego programowania.

Pytanie 18

Jak ustalany jest typ zmiennej w języku JavaScript?

A. musi być zadeklarowany na początku skryptu
B. istnieje tylko jeden typ
C. typy w ogóle nie występują
D. wynika z przypisanej wartości
Pozostałe opisy są nieprawdziwe. JavaScript ma wiele typów (nie jeden) i z pewnością ich „używa”. Nie wymaga też deklarowania typu na początku skryptu - to cecha języków o typowaniu statycznym, jak C++. W JS typ ustala przypisana wartość.

Pytanie 19

W HTML umieszczono formularz. Jakie skutki działania tego kodu zostaną pokazane przez przeglądarkę, jeśli użytkownik w drugim polu wprowadzi wartość "ala ma kota"?

Ilustracja do pytania
A. Efekt 2
B. Efekt 1
C. Efekt 3
D. Efekt 4
Efekt 1 nie jest poprawny, ponieważ użycie checkboxów zamiast rozwijanej listy nie odpowiada kodowi HTML gdzie zastosowano element select. Checkboxy pozwalają na wybór wielu opcji co nie jest zgodne z intencją kodu który pozwala na wybór tylko jednej z kilku opcji. Efekt 3 również jest niepoprawny gdyż prezentuje pole tekstowe wewnątrz którego widoczne są dane wpisane przez użytkownika jako tekst jawny. Kod HTML używa pola typu password które służy do maskowania wpisywanego tekstu. Efekt 4 przedstawia użycie przycisków radiowych które podobnie jak checkboxy pozwalają na wybór jednej opcji ale są prezentowane w formie przycisków zamiast listy rozwijanej. Kod HTML nie zawiera jednak elementu input type=radio więc to podejście również nie jest zgodne z kodem. Błędne rozumienie funkcji poszczególnych elementów formularzy HTML może prowadzić do niepoprawnej interpretacji ich działania dlatego istotne jest aby rozumieć zastosowanie i różnice między nimi co pozwala na efektywne projektowanie i wdrażanie formularzy internetowych zgodnych z standardami sieciowymi.

Pytanie 20

Jakie sformułowanie najlepiej opisuje metodę POST do przesyłania formularzy?

A. Dane są przesyłane przez adres URL, co czyni je widocznymi dla użytkownika
B. Może być zarejestrowana jako zakładka w przeglądarce internetowej
C. Ma dodatkowe ograniczenia związane z długością adresu - maksimum 255 znaków
D. Jest zalecana, gdy przesyłane są dane poufne, na przykład hasło, numer telefonu lub numer karty kredytowej
Metoda POST jest jedną z podstawowych metod przesyłania danych w protokole HTTP, której głównym celem jest umożliwienie przesyłania dużych objętości danych, w tym informacji poufnych. Gdy używamy metody POST do wysyłania formularzy, dane nie są widoczne w adresie URL, co czyni tę metodę bardziej odpowiednią do przesyłania wrażliwych informacji, takich jak hasła, numery kart kredytowych czy dane osobowe. W przeciwieństwie do metody GET, która dodaje dane do adresu URL, metoda POST przesyła je w ciele zapytania, co ogranicza ryzyko przypadkowego ujawnienia informacji. Standardy bezpieczeństwa w branży webowej zalecają użycie metody POST do wszelkich operacji, które zmieniają stan serwera, jak dodawanie użytkowników, logowanie czy przesyłanie informacji finansowych. Przykładem może być formularz logowania, w którym dane użytkownika są przesyłane do serwera w sposób niewidoczny dla osób trzecich, co minimalizuje ryzyko przechwycenia tych informacji przez złośliwe oprogramowanie.

Pytanie 21

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. jedynie tworzenia i zmiany struktury tabel
B. jedynie dodawania i edytowania danych
C. wykonywania wszelkich działań na danych
D. wykonywania wszystkich operacji na strukturze danych
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 22

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. ALTER TABLE klienci CHANGE imie TEXT;
B. CHANGE TABLE klienci MODIFY imie CHAR(30);
C. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
D. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
Aby zmienić maksymalną długość pola 'imie' w tabeli 'klienci' na 30 znaków, używamy polecenia SQL 'ALTER TABLE', które jest standardowym sposobem modyfikacji struktury tabeli w bazach danych. W tym przypadku wykorzystujemy 'MODIFY COLUMN', co jest istotne, ponieważ pozwala na precyzyjne określenie, że chcemy zmienić właściwości konkretnej kolumny. Typ danych 'VARCHAR' oznacza, że kolumna może przechowywać zmienne długości tekstu, a wartość 30 oznacza maksymalną liczbę znaków. Przykładowo, jeśli w bazie danych już istnieją rekordy, to zmiana ta nie wpłynie na dane, które są krótsze niż 30 znaków, ale może być problematyczna, jeśli próbujemy wprowadzić dane dłuższe niż dozwolone, ponieważ takie operacje mogą kończyć się błędami. Warto również zaznaczyć, że różne systemy zarządzania bazami danych, takie jak MySQL, PostgreSQL czy Oracle, mogą mieć drobne różnice w składni, ale zasada działania polecenia 'ALTER TABLE' pozostaje zasadniczo taka sama. To podejście jest zgodne z zaleceniami standardu SQL i jest powszechnie stosowane w praktykach administracji bazami danych.

Pytanie 23

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
B. wypisanie liczb parzystych z zakresu od a do b
C. wypisanie wszystkich liczb z zakresu od a do b
D. zwrócenie wartości liczb parzystych od a do b
Odpowiedzi takie jak "wypisanie wszystkich liczb z przedziału od a do b" oraz "zwrócenie wartości parzystych liczb od a do b" ilustrują powszechne nieporozumienia dotyczące działania funkcji oraz jej logiki. Funkcja nie wypisuje wszystkich liczb z przedziału, ponieważ jej konstrukcja ogranicza wyniki do liczb parzystych. Odpowiedź ta nie uwzględnia kluczowego kroku w funkcji, polegającego na modyfikacji zmiennej a, co oznacza, że w przypadku nieparzystego a, pierwsza wypisana liczba będzie parzysta. Natomiast odpowiedź sugerująca, że funkcja zwraca wartości parzyste, jest również myląca, ponieważ funkcja nie zwraca wartości (nie używa return), a jedynie wypisuje je na stronie za pomocą document.write(). To może prowadzić do nieporozumień, zwłaszcza w kontekście oczekiwań dotyczących struktury danych. Typowym błędem myślowym jest zakładanie, że pętle for mogą generować wszystkie liczby w danym zakresie, gdy w rzeczywistości sposób ich inkrementacji (w tym przypadku o 2) determinuje, które wartości są ostatecznie wyświetlane. Przykładem na to jest sytuacja, gdy użytkownik nie dostrzega, że pętla zmienia krok zwiększenia i przez to nie uzyskuje pełnej sekwencji liczb. Warto zwrócić uwagę na konwencje programistyczne, takie jak zasady dotyczące wypisywania danych i używania zwrotów, co jest kluczowe dla tworzenia przejrzystego i efektywnego kodu.

Pytanie 24

Wskaż równoważną metodę dla instrukcji switch zapisaną w języku PHP?

Ilustracja do pytania
A. A
B. C
C. B
D. D
Switch w PHP to narzędzie, które pomaga kierować działaniem programu w zależności od wartości, i często zamienia się to na wiele if-else, żeby kod był bardziej przejrzysty. Czasami jednak pojawiają się błędne interpretacje logiki warunkowej. W odpowiedzi D, użycie operatora and oznacza, że oba warunki muszą być spełnione naraz, co jest trochę mylące, bo dla zmiennej $liczba przy wartościach 10 i 20 to nie jest za bardzo możliwe. W odpowiedzi A jest po prostu porównanie do 10, co nie pokazuje całego potencjału switch, który może radzić sobie z wieloma przypadkami. Odpowiedź C też ma problem, bo chociaż używa or poprawnie, brakuje jej else, który jest ważny w switch, bo pozwala na zrobienie czegoś, gdy żaden z warunków nie pasuje. Często zapomina się o znaczeniu default w switch, a w if-else to w sumie jest to else. Zrozumienie tych rzeczy jest ważne, żeby pisać czytelny i efektywny kod PHP, szczególnie gdy tworzymy większe aplikacje, bo bez jasnej struktury może to być naprawdę wyzwanie.

Pytanie 25

W jaki sposób, stosując język PHP można usunąć ciasteczko o nazwie ciastko?

A. unsetcookie(""$ciastko"");
B. setcookie(""ciastko"", """", time()-3600);
C. deletecookie(""ciastko"");
D. setcookie(""$ciastko"", """", 0);
Odpowiedź setcookie("ciastko", "", time()-3600) jest poprawna, ponieważ to standardowy sposób usuwania ciasteczek w PHP. Funkcja setcookie odsyła nagłówek HTTP do przeglądarki, informując ją, że ciasteczko o podanej nazwie ('ciastko') powinno być usunięte. Aby to osiągnąć, musisz ustawić wartość ciasteczka na pusty ciąg oraz określić czas wygaśnięcia na przeszły, co w tym przypadku realizuje polecenie time()-3600. Dobre praktyki sugerują, że zawsze należy wyznaczyć ten czas, aby mieć pewność, że ciasteczko zostanie usunięte niezależnie od ustawień przeglądarki użytkownika. Warto również pamiętać, że aby usunięcie ciasteczka było skuteczne, należy użyć takiej samej ścieżki oraz domeny, które zostały użyte przy ustawieniu ciasteczka. Przykładowe zastosowanie to logowanie wyjścia użytkownika, gdzie usunięcie ciasteczek jest kluczowe dla zapewnienia bezpieczeństwa aplikacji. Dodatkowo, jako dobry zwyczaj, przed usunięciem ciasteczek można sprawdzić, czy istnieją, aby uniknąć niepotrzebnych operacji.

Pytanie 26

Podczas działania skryptu JavaScript został w konsoli wygenerowany błąd związany z działaniami na atrybucie elementu DOM. Z komunikatu wynika, że próbowano ustawić atrybut dla

Ilustracja do pytania
A. tabeli.
B. odnośnika.
C. paragrafu.
D. obrazu.
Wybrana przez Ciebie odpowiedź była niestety niepoprawna. Atrybut 'src', o którym mówi komunikat błędu, jest specyficzny dla obrazów, a nie dla tabel, paragrafów ani odnośników. W przypadku tabeli, typowy atrybut, który mógłby być manipulowany, to 'border' lub 'cellspacing'. Dla paragrafów często manipulowane są atrybuty takie jak 'align' czy 'dir'. Odnośniki, natomiast, mają charakterystyczny atrybut 'href', który wskazuje na adres URL, do którego prowadzi dany odnośnik. Manipulacja atrybutami DOM jest częstą praktyką w programowaniu JavaScript, jednak ważne jest zrozumienie, że różne elementy HTML mają różne atrybuty, i próba manipulacji nieodpowiednim atrybutem dla danego elementu skutkować będzie błędem. W tym konkretnym przypadku, błąd 'Uncaught TypeError: Cannot set property 'src' of null' wskazuje na próbę manipulacji atrybutem 'src', który jest charakterystyczny dla obrazów, a nie dla innych elementów HTML.

Pytanie 27

Efekt przedstawiony na obrazie, wykonany za pomocą edytora grafiki rastrowej, to

Ilustracja do pytania
A. szum RGB.
B. rozmycie Gaussa.
C. grawerowanie.
D. pikselizacja.
Twoja odpowiedź jest prawidłowa! Wybrany efekt to pikselizacja. Pikselizacja polega na zmniejszeniu rozdzielczości obrazu do poziomu, gdy każdy piksel staje się widoczny dla oka. Efekt ten charakteryzuje się wyraźnymi, dużymi blokami pikseli tworzącymi obraz. Jest to efekt często stosowany w grafice komputerowej, szczególnie w celu nadania grafice stylu retro. Pikselizacja była też kluczowym elementem estetyki gier wideo z lat 80. i 90., kiedy to technologiczne ograniczenia sprzętowe wymuszały korzystanie z niskiej rozdzielczości obrazu. W dzisiejszych czasach efekt pikselizacji jest często stosowany celowo, dla uzyskania określonego efektu artystycznego lub dla celów nostalgicznych. Warto jednak pamiętać, że nadmierne pikselizowanie obrazu może prowadzić do utraty szczegółów, dlatego zawsze warto dobrze przemyśleć zastosowanie tego efektu.

Pytanie 28

Deklaracja typu dokumentu HTML: <!DOCTYPE HTML> wskazuje, że kod został stworzony w wersji

A. 4
B. 5
C. 6
D. 7
Gdy widzisz deklarację <!DOCTYPE HTML>, to znaczy, że mówimy o wersji HTML5. To obecny standard, który wprowadza naprawdę sporo nowych funkcji w porównaniu do wcześniejszych wersji. Na przykład, HTML5 pozwala na osadzanie audio i wideo bez potrzeby dodatkowych wtyczek, co jest super wygodne. Mamy też fajne semantyczne elementy jak <article>, <section> czy <nav>, które sprawiają, że łatwiej zorganizować treści na stronie. Ważne jest, żeby zawsze na początku dokumentu umieszczać tę deklarację, bo to pozwala przeglądarkom na prawidłowe wyświetlanie strony. Dzięki temu unikamy problemów z interpretacją kodu, co z doświadczenia mówię, jest naprawdę istotne.

Pytanie 29

Jak nazywa się metoda udostępniania bazy danych w programie Microsoft Access, która dotyczy wszystkich obiektów bazy umieszczonych na dysku sieciowym i wykorzystywanych jednocześnie przez kilku użytkowników?

A. serwera bazy danych
B. witryny programu SharePoint
C. folderu sieciowego
D. dzielonej bazy danych
Odpowiedzi, które wskazują na "serwera bazy danych", "dzielonej bazy danych" lub "witryny programu SharePoint", nie są adekwatne w kontekście udostępniania bazy danych w Microsoft Access. Serwer bazy danych to złożony system, który zarządza dużymi zbiorami danych oraz zapewnia ich integralność i bezpieczeństwo, jednak w przypadku Microsoft Access, który jest narzędziem bazodanowym bardziej skomplikowanym niż prostsze rozwiązania, udostępnianie odbywa się głównie za pośrednictwem folderów sieciowych. Dzielona baza danych oznacza, że baza danych jest podzielona na dwie części: jedną na serwerze (backend) i drugą lokalnie na komputerach użytkowników (frontend). Pomimo że ta konstrukcja może być stosowana do zwiększenia wydajności, nie odnosi się bezpośrednio do koncepcji folderu sieciowego jako metody udostępniania. Witryna programu SharePoint jest platformą do współpracy, która pozwala na zarządzanie dokumentami i danymi w chmurze, ale nie jest bezpośrednio związana z mechanizmem udostępniania bazy danych w Microsoft Access. Zrozumienie różnic między tymi podejściami jest kluczowe, ponieważ często prowadzi to do mylnych wniosków dotyczących rozwiązań technologicznych oraz ich zastosowania w praktyce. W kontekście Access, praktyka umieszczania bazy danych w folderze sieciowym jest standardem branżowym, który zwiększa dostępność i ułatwia współpracę w zespole.

Pytanie 30

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

A. #ff0f10
B. #ff8011
C. #008010
D. #ff8010
Odpowiedzi takie jak #008010, #ff8011 oraz #ff0f10 są nieprawidłowe z różnych powodów. Zaczynając od #008010, zauważamy, że pierwszy składnik (R) wynosi 0, co oznacza, że kolor nie zawiera czerwonego komponentu. Oryginalny kolor rgb(255, 128, 16) ma maksymalne wartości czerwonego, co wyklucza odpowiedzi z zerowymi wartościami. Przechodząc do #ff8011, widzimy, że ostatnia cyfra jest 1, co wynika z konwersji wartości 16, która w systemie szesnastkowym powinna być 10. Użycie 1 zamiast 10 nie oddaje prawidłowo oryginalnego koloru. Wreszcie, analiza #ff0f10 ujawnia problem z zielonym komponentem, który w tej odpowiedzi wynosi 0, biorąc pod uwagę, że wartość zielona powinna wynosić 128 (80 w systemie szesnastkowym). Te błędy mogą wynikać z nieprecyzyjnego zrozumienia konwersji wartości kolorów między systemami. Ważne jest, aby zrozumieć, że RGB to model addytywny, w którym kolory są tworzone przez łączenie światła czerwonego, zielonego i niebieskiego, a każdy składnik ma swoje przypisane wartości, które muszą być dokładnie odzwierciedlone w kodzie szesnastkowym. Przy pracy z kolorami, szczególnie w projektowaniu cyfrowym, dobrze jest również korzystać z narzędzi do konwersji oraz palet kolorów, aby uniknąć takich pomyłek.

Pytanie 31

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu JavaScript należy wykonać przed pętlą?

var text;
for(var i=0; i<tab.length; i++ ){
    text+=tab[i] + "<br>";
}
A. Sprawdzić długość tablicy tab
B. Upewnić się, że text jest typu string
C. Zainicjować zmienną text
D. Zadeklarować zmienną i
Zadeklarowanie zmiennej 'i' przed pętlą nie jest konieczne, ponieważ JavaScript automatycznie deklaruje zmienną 'i' w kontekście pętli. Deklaracja zmiennych przy pomocy 'var', 'let' lub 'const' jest wystarczająca w momencie ich użycia w pętli. Kolejnym aspektem jest sprawdzenie rozmiaru tablicy 'tab'. Choć podjęcie takiego sprawdzenia jest dobrym zwyczajem, nie jest to warunek konieczny do poprawnego działania kodu. Pętla for działa w oparciu o długość tablicy, więc jeżeli tablica jest pusta, pętla po prostu się nie wykona, co nie prowadzi do błędów. Ostatnim punktem jest sprawdzenie, czy 'text' jest typu znakowego. JavaScript jest językiem dynamicznie typowanym, co oznacza, że zmienne mogą przyjmować różne typy danych w trakcie działania programu. Na początku 'text' powinno być inicjalizowane jako pusty łańcuch, ale sprawdzanie jego typu w momencie, gdy jest używane w pętli, nie jest konieczne. Wszystkie powyższe odpowiedzi mogą być postrzegane jako dobre praktyki, ale nie są kluczowymi krokami, które należy wykonać przed rozpoczęciem pętli, aby program działał poprawnie.

Pytanie 32

W środowisku PHP pobrano z bazy danych rezultat działania zapytania przy użyciu komendy mysql_query. W celu uzyskania z otrzymanej kwerendy jednego wiersza danych, konieczne jest użycie polecenia

A. mysql_fetch_lengths
B. mysql_list_fields
C. mysql_field_len
D. mysql_fetch_row
Odpowiedzi, takie jak 'mysql_list_fields', 'mysql_fetch_lengths' i 'mysql_field_len', nie są odpowiednie w kontekście pobierania wiersza danych. 'mysql_list_fields' służy do pobierania informacji o polach w tabeli i nie zwraca wyników kwerendy, tylko metadane tabeli, co oznacza, że nie nadaje się do uzyskania dostępu do danych. 'mysql_fetch_lengths' dostarcza długości wszystkich pól w ostatnio pobranym wierszu, ale nie pozwala na bezpośrednie pobranie danych. Z kolei 'mysql_field_len' zwraca długość określonego pola w tabeli, a nie wiersza wyników kwerendy. Te funkcje mogą być użyteczne w określonych kontekstach, jednak nie realizują głównego celu, którym jest dostarczenie danych. Typowym błędem, który popełniają programiści, jest mylenie tych funkcji z właściwym sposobem na pobieranie danych. Kluczowe jest zrozumienie, że do pracy z danymi zawsze należy używać funkcji, które bezpośrednio zwracają wyniki zapytania. W tej sytuacji wybór odpowiedniej funkcji jest nie tylko kwestią techniczną, ale również najlepszych praktyk w programowaniu, które obejmują optymalizację kodu oraz unikanie nieefektywnych metod dostępu do danych.

Pytanie 33

Wskaż, jaki błąd walidacyjny zawiera przedstawiony fragment kodu w języku HTML 5.

<h6>CSS</h6>
<p>Kaskadowe arkusze stylów (<b>ang. <i>Cascading Style Sheets</b></i>)<br>to język służący ...</p>
A. Znacznik br nie został prawidłowo zamknięty
B. Znacznik br nie powinien znajdować się wewnątrz znacznika p
C. Znacznik h6 nie jest używany w HTML5
D. Znacznik zamykający /b jest niezgodny z zasadą zagnieżdżania
Znacznik br w języku HTML5 może być stosowany samodzielnie i nie wymaga dodatkowego zamykania. Jest to znacznik pusty, który służy do wstawiania przerw w tekście i nie ma żadnych treści wewnętrznych. Jest szeroko używany i całkowicie dopuszczalny w ramach standardu HTML5. Użycie go wewnątrz znacznika p nie jest błędem; br jest wykorzystywany do łamania linii w akapitach i jest często stosowany w celach formatowania tekstu. W przypadku znacznika <h6>, jest on jak najbardziej częścią HTML5, służąc do definiowania nagłówków o najmniejszej ważności w hierarchii nagłówków. Zastosowanie wszystkich sześciu poziomów nagłówków (<h1> do <h6>) jest zgodne ze standardami, a każdy z nich ma swoje specyficzne zastosowanie w strukturze dokumentu. Dlatego też odpowiedzi sugerujące, że znacznik br musi być zamknięty lub że h6 nie jest częścią HTML5, są błędne i wynikają z niezrozumienia lub nieaktualnej wiedzy na temat standardów HTML. Prawidłowa konstrukcja dokumentu HTML i znajomość specyfikacji pozwalają na tworzenie semantycznie poprawnych i dobrze działających stron WWW.

Pytanie 34

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

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

Pytanie 35

Jak nazywa się program, który wykonuje instrukcje kodu źródłowego BEZ wcześniejszego generowania pliku wynikowego?

A. konwerter języka
B. interpreter
C. kompilator
D. konwerter kodu
Kompilator działa odwrotnie - najpierw TŁUMACZY cały kod na plik wynikowy (np. .exe), który dopiero potem się uruchamia. „Konwerter kodu” i „konwerter języka” to nie są nazwy programu wykonującego kod. Wykonywaniem bez pliku wynikowego zajmuje się interpreter.

Pytanie 36

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

A. nav { float: right; } section { float: right; }
B. nav { float: right; }
C. nav { float: left; } aside { float: left; }
D. aside {float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi.

Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego.

Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 37

Który z poniższych obrazów został sformatowany przy użyciu zaprezentowanego stylu CSS?

Ilustracja do pytania
A. A
B. C
C. D
D. B
Odpowiedź A jest prawidłowa, ponieważ zastosowane style CSS dokładnie odzwierciedlają podany kod. Styl img { padding: 5px; border: 1px solid grey; border-radius: 10px; } oznacza, że obrazek otrzymuje wewnętrzny margines o wartości 5 pikseli, szary, jednopikselowy, ciągły obramowanie oraz zaokrąglenie narożników o promieniu 10 pikseli. Efektem tego jest estetyczny wygląd, który umożliwia lepszą prezentację treści graficznych w projektach webowych. Padding pozwala na uzyskanie równowagi wizualnej, natomiast border-radius zapewnia miękkość krawędzi, co jest często stosowane w nowoczesnym web designie. Praktycznym zastosowaniem takich stylów jest m.in. tworzenie kart wizualnych na stronach internetowych, gdzie estetyka i czytelność są kluczowe. Dobrym przykładem jest stosowanie tych technik w responsywnych projektach, gdzie obrazy muszą dobrze współgrać z różnymi elementami interfejsu użytkownika. CSS umożliwia tworzenie atrakcyjnych wizualnie stron, które przyciągają uwagę i poprawiają interakcję użytkownika z treścią.

Pytanie 38

Który ze skrótów oznacza sieć bezprzewodową?

A. WAN
B. WLAN
C. MAN
D. LAN
WLAN (Wireless Local Area Network) to bezprzewodowa sieć lokalna - litera „W” (Wireless) wskazuje brak kabli, a łączność zapewnia technologia Wi-Fi (standardy IEEE 802.11). Pozostałe skróty opisują sieci według zasięgu, nie sposobu transmisji: LAN to sieć lokalna (np. w biurze), MAN obejmuje miasto, a WAN to sieć rozległa, jak internet. Dlatego sieć bezprzewodową oznacza skrót WLAN.

Pytanie 39

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

A. SELECT AVG(ocena) FROM uczniowie WHERE klasa = 2;
B. SELECT nazwisko FROM firma WHERE pensja > 2000 LIMIT 10;
C. SELECT DISTINCT produkt, cena FROM artykuly;
D. SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;
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 40

1       <script>
2       const liczba = 1;
3       let gora = 10, dol = 1;
4       let podaj = parseInt(prompt("Podaj liczbę całkowitą z zakresu <1-10>"));
5       liczba = Math.random() * ( gora - dol + 1 ) + dol;
6       liczba = parseInt(liczba);
7       if (liczba == podaj) {
8           document.write("Liczba została odgadnięta");
9       } else {
10          document.write("Niestety nie tym razem");
11      }
12      </script>
Przedstawiony fragment kodu JavaScript powinien wylosować liczbę całkowitą z zakresu <1 , 10> i porównać ją z liczbą podaną przez użytkownika w oknie dialogowym. Skrypt po uruchomieniu generuje błąd, którego przyczyną jest
A. przypisanie wartości do stałej liczba w piątej linii skryptu .
B. błędna składnia deklaracji zmiennych gora i dol w drugiej linii skryptu.
C. błędna składnia instrukcji warunkowej if ... else.
D. niepotrzebne użycie konwersji z funkcji prompt do liczby całkowitej.
W tym zadaniu łatwo skupić się na szczegółach, które wyglądają podejrzanie, ale w rzeczywistości są poprawne. Wiele osób patrzy najpierw na deklarację zmiennych `gora` i `dol` w trzeciej linii, bo mamy tam dwa identyfikatory zadeklarowane w jednym wierszu: `let gora = 10, dol = 1;`. Taka składnia w JavaScript jest całkowicie poprawna i bardzo często spotykana w kodzie produkcyjnym. Standard ECMAScript dopuszcza deklarację wielu zmiennych w jednym instrukcie `let`, `const` czy `var`, oddzielonych przecinkami. To nie ma żadnego wpływu na poprawność działania skryptu, jest tylko kwestią stylu kodowania. Niektórzy lintersi zalecają jedną zmienną na linię, ale to jest wyłącznie konwencja, nie błąd.

Podobnie z instrukcją warunkową `if ... else`. Konstrukcja `if (liczba == podaj) { ... } else { ... }` jest jak najbardziej poprawna składniowo. Nawet użycie operatora `==` (zamiast bardziej restrykcyjnego `===`) nie powoduje tu błędu wykonania, najwyżej może być dyskusyjne ze względu na dobre praktyki, bo `===` nie robi konwersji typów. Jednak w tym konkretnym kodzie obie wartości są konwertowane do liczb, więc porównanie zadziała logicznie. Błąd wykonania nie ma więc źródła w warunku.

Czasem pojawia się też myśl, że problemem może być `parseInt(prompt(...))`, bo prompt zwraca tekst. Tymczasem właśnie dlatego używamy `parseInt`, żeby zamienić łańcuch znaków na liczbę całkowitą. Bez tej konwersji porównywalibyśmy liczbę z tekstem, co mogłoby dawać dziwne wyniki logiczne. Konwersja jest tu więc nie tylko „nie niepotrzebna”, ale wręcz wskazana. W nowoczesnym kodzie można by użyć np. `Number(prompt(...))` albo dodatkowo sprawdzić, czy użytkownik faktycznie podał liczbę, ale sam `parseInt` jest jak najbardziej OK.

Sednem problemu nie są więc ani deklaracje `gora` i `dol`, ani składnia `if ... else`, ani konwersja wartości z prompta, tylko próba nadpisania stałej. Z mojego doświadczenia wynika, że to bardzo typowy błąd przy nauce `const` i `let`: mylenie stałych z „zwykłymi” zmiennymi. Warto zawsze zadać sobie pytanie: czy ta wartość ma się zmieniać w czasie działania skryptu? Jeśli tak, używamy `let`. Jeśli nie, wtedy dopiero `const`. To prosta zasada, która pozwala uniknąć takich błędów logicznych i runtime'owych.