Wyniki egzaminu

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

Egzamin niezdany

Wynik: 15/40 punktów (37,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

Parametr face elementu <font> jest używany do wskazania

A. efektów czcionki
B. rozmiaru czcionki
C. koloru czcionki
D. nazwa czcionki
Parametr face znacznika <font> w HTML definiuje konkretną nazwę czcionki, która ma być używana do wyświetlania tekstu. Umożliwia to projektantom stron internetowych precyzyjne określenie, jak tekst będzie wyglądał, co jest istotne dla estetyki oraz czytelności strony. W praktyce, zamiast stosować ogólne czcionki systemowe, projektanci mogą wskazać konkretne nazwy czcionek, jak 'Arial', 'Verdana' czy 'Times New Roman', aby osiągnąć zamierzony efekt wizualny. Warto jednak pamiętać, że stosowanie znacznika <font> oraz jego atrybutu face jest już przestarzałe, a w nowoczesnym kodowaniu lepiej jest korzystać z CSS, gdzie właściwość 'font-family' pełni tę samą funkcję, ale z większą elastycznością i lepszym wsparciem dla różnych urządzeń. Przykładowo, zamiast <font face='Arial'>Tekst</font>, w CSS można użyć: <style> p { font-family: Arial; } </style>. Z perspektywy dobrych praktyk, zaleca się używanie CSS do stylizacji tekstu, co pozwala na lepszą separację treści od prezentacji oraz łatwiejsze zarządzanie stylami w całym dokumencie.

Pytanie 2

W formularzu umieszczono kontrolki do podania imienia oraz nazwiska. Który z atrybutów odpowiada za wyświetlanie sugestii w polu kontrolki, która znika, gdy użytkownik zaczyna wpisywanie wartości?

<label for="imie">Imię: </label> 
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">
A. title
B. for
C. value
D. placeholder
Wybór atrybutów takich jak "for", "title" czy "value" w miejsce "placeholder" odzwierciedla powszechne nieporozumienia dotyczące roli różnych atrybutów w HTML. Atrybut "for" jest używany w tagu <label> do powiązania etykiety z odpowiednią kontrolką, co wspomaga dostępność, ale nie ma wpływu na to, co dzieje się w polu tekstowym. Użycie "title" również jest mylne; ten atrybut dostarcza dodatkowe informacje o elemencie poprzez dymek podpowiedzi, jednak nie wpływa na zachowanie wprowadzenia w formularzu. Atrybut "value" z kolei określa wartość domyślną pola, co również nie jest związane z podpowiedzią, ponieważ ta informacja pozostaje widoczna, nawet gdy użytkownik nie zacznie wpisywać danych. Prawidłowe zrozumienie funkcji tych atrybutów jest kluczowe dla tworzenia efektywnych i przyjaznych użytkownikowi formularzy. W wielu przypadkach, nieprawidłowe użycie tych atrybutów prowadzi do zamieszania i frustracji użytkowników, co podkreśla znaczenie znajomości standardów i dobrych praktyk w projektowaniu interfejsów. Warto również pamiętać, że dobry projekt formularza nie tylko ułatwia wprowadzanie danych, ale także wpływa na ogólne wrażenia użytkownika z korzystania z aplikacji lub strony internetowej.

Pytanie 3

Znaczniki HTML <strong> oraz <em>, które mają na celu podkreślenie istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. <b> oraz <u>
B. <i> oraz <mark>
C. <u> oraz <sup>
D. <b> oraz <i>
Wybór błędnych znaczników HTML często wynika z niepełnego zrozumienia różnicy między semantyką a formatowaniem. Znacznik <u> służy do podkreślenia tekstu, co może być mylące w kontekście oznaczania ważności treści. Oznaczanie tekstu w ten sposób nie dostarcza żadnej informacji o jego znaczeniu, co jest kluczowe w tworzeniu dostępnych i zrozumiałych stron internetowych. Użycie <sup> oznacza tekst w indeksie górnym, co również nie ma związku z akcentowaniem ważności. W przypadku <b> i <u>, oba znaczniki służą do formatowania, ale ignorują istotne aspekty semantyki, co może prowadzić do nieporozumień w interpretacji treści przez przeglądarki oraz urządzenia asystujące. Użycie <i> oznacza tekst w kursywie, jednak podobnie jak <b>, jest to czysto wizualne formatowanie bez znaczenia semantycznego. W praktyce, nadmierne poleganie na takich znacznikach bez zrozumienia ich ról w kontekście semantyki prowadzi do tworzenia stron, które są mniej dostępne i mniej przyjazne dla użytkowników. Kluczowym elementem budowy nowoczesnych aplikacji webowych jest stosowanie odpowiednich znaczników, które nie tylko prezentują treść, ale również przekazują jej znaczenie, co jest podstawą dobrego UX oraz SEO.

Pytanie 4

W tabeli pracownicy zdefiniowano klucz główny jako INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowano kolumny imie oraz nazwisko. W przypadku wykonania poniższej kwerendy SQL wprowadzającej dane, w której pominięto pole klucza, w bazie danych MySQL wystąpi:

INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak');
A. ignorowanie polecenia, tabela nie ulegnie zmianie
B. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
C. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
D. błąd związany z nieprawidłową liczbą kolumn
Jak używasz polecenia INSERT w MySQL i masz klucz główny ustawiony jako AUTO_INCREMENT, to system sam zajmie się przydzieleniem nowej, unikalnej wartości dla tego klucza dla każdego nowego rekordu. Kiedy wprowadzasz dane o pracowniku, takie jak imię i nazwisko, to nie musisz martwić się o podawanie wartości klucza głównego. MySQL świetnie to rozumie i dodaje kolejny wolny numer. To jest zgodne z dobrymi praktykami w bazach danych, gdzie klucz główny musi być unikalny dla każdego rekordu, ale niekoniecznie musisz go podawać ręcznie, szczególnie gdy korzystasz z mechanizmu AUTO_INCREMENT. Weźmy na przykład tabelę zamówień – tam każdy nowy wpis automatycznie dostaje unikalny numer zamówienia, co eliminuje ryzyko błędów i ułatwia późniejsze śledzenie danych. Dzięki AUTO_INCREMENT wprowadzanie danych staje się dużo prostsze, a szansa na pomyłki przy manualnym wpisywaniu wartości klucza głównego znacznie maleje.

Pytanie 5

Ile razy zostanie wykonana poniższa pętla w PHP?

for($i = 0; $i < 25; $i += 5) { ... }
A. 0
B. 5
C. 26
D. 25
W programowaniu pętle są kluczowymi konstrukcjami kontrolnymi pozwalającymi na wielokrotne wykonywanie kodu. W analizowanym przykładzie mamy do czynienia z pętlą for, która jest jedną z najczęściej używanych, z uwagi na jej elastyczność i czytelność. Pętla ta jest zdefiniowana jako for($i = 0; $i < 25; $i += 5). W tym kontekście błędem jest zakładanie, że pętla wykona 0 iteracji, ponieważ zmienna $i zaczyna od wartości 0 i spełnia warunek $i < 25, co rozpoczyna proces iteracji. Kolejną błędną koncepcją jest myślenie, że pętla wykona 25 lub 26 iteracji. Taki błąd może wynikać z niezrozumienia mechanizmu przyrostu zmiennej iteracyjnej $i. W tym przypadku, przyrost wynosi 5, co oznacza, że wartości przyjmowane przez $i to 0, 5, 10, 15 i 20, zanim warunek pętli przestanie być spełniony. Takie myślenie może prowadzić do nadmiernej ilości iteracji w pętlach, co jest typowym błędem projektowym. Warto zwrócić uwagę na poprawne formułowanie warunków pętli oraz zrozumienie wpływu inkrementacji na liczbę iteracji. Starannie zaplanowane i przemyślane pętle są kluczowe dla efektywności działania programu, a ich niepoprawne zrozumienie prowadzi do błędów, które są trudne do wykrycia i naprawy w większych projektach.

Pytanie 6

W języku HTML stworzono odnośnik z symbolem #. Co się wydarzy po kliknięciu na podany link?

<a href="#dane">

A. Uruchomi się skrypt o nazwie dane
B. Otworzy się nowa karta przeglądarki zatytułowana dane
C. Strona przewinie się do elementu z id o nazwie dane
D. Zostanie użyty względny adres URL o nazwie dane
Pierwsza z niepoprawnych odpowiedzi sugeruje, że po kliknięciu w odsyłacz zostanie wywołany skrypt o nazwie 'dane'. To podejście jest nieprawidłowe, ponieważ odsyłacz w HTML ze znakiem # nie wywołuje żadnych skryptów. Hiperłącza z # są używane wyłącznie do nawigacji po stronie i nie mają związku z uruchamianiem skryptów. Druga odpowiedź wskazuje, że otworzy się osobna karta przeglądarki o nazwie 'dane', co również jest błędne. Hiperłącza zaczynające się od # nie prowadzą do nowych kart ani okien; zamiast tego zmieniają lokalizację w bieżącej karcie przeglądarki. Kolejna z niepoprawnych koncepcji sugeruje, że zostanie wybrany adres względny URL o nazwie 'dane'. Jednakże wykorzystanie # odnosi się do lokalizacji na tej samej stronie, a nie do adresów względnych. Warto zrozumieć, że adresy względne są używane do nawigacji pomiędzy różnymi stronami, a nie do lokalizacji na tej samej stronie. Typowym błędem myślowym w takich przypadkach jest mylenie funkcji hiperłączy z różnymi innymi mechanizmami, takimi jak skrypty, nowe karty czy adresy względne. Zrozumienie tych różnic jest kluczowe dla skutecznego projektowania stron internetowych oraz optymalizacji ich nawigacji.

Pytanie 7

Kod umieszczony w ramce spowoduje wyświetlenie liczb

Ilustracja do pytania
A. 2 4 6 8
B. 1 3 5 7 9
C. 1 2 3 4 5 6 7 8 9 10
D. 2 4 6 8 10
Analizując błędne odpowiedzi można zauważyć że nie uwzględniają one poprawnego działania instrukcji continue w kodzie PHP. Ta instrukcja pomija pozostałe kroki bieżącej iteracji pętli jeśli warunek jest spełniony. Pierwsza odpowiedź 2 4 6 8 nie uwzględnia liczby 10 która także spełnia warunek parzystości i powinna być wypisana co jest błędne w kontekście działania pętli do wartości 10 włącznie. Druga propozycja 1 3 5 7 9 jest wynikiem niepoprawnego zrozumienia działania operatora modułu i instrukcji continue które eliminują liczby nieparzyste z wyjścia. Wyświetlenie tylko nieparzystych liczb oznaczałoby brak zastosowania instrukcji continue lub jej odwrotność co jest sprzeczne z kodem. Ostatnia propozycja 1 2 3 4 5 6 7 8 9 10 zakłada że wszystkie liczby od 1 do 10 są wypisywane co ignoruje kluczowy wpływ instrukcji continue na przebieg pętli. Taki wynik mógłby wskazywać na brak warunku eliminującego liczby nieparzyste co jest błędne w kontekście kodu. Typowym błędem jest tu niepoprawne rozumienie działania instrukcji sterujących jak continue które pełnią kluczową rolę w przepływie sterowania w pętlach programistycznych i powinny być zawsze dokładnie analizowane aby uniknąć błędnych wniosków i nieoczekiwanych wyników w programach. Operator modulo to również istotny element w zrozumieniu działania kodu służący do łatwego sprawdzania podzielności i warunków logicznych co jest powszechnie stosowane w wielu językach programowania do optymalizacji i filtrowania danych. Kod ilustruje również jak za pomocą prostych warunków można efektywnie zarządzać dużymi zbiorami danych w aplikacjach co jest kluczowe w optymalizacji algorytmów i poprawie wydajności systemów informatycznych.

Pytanie 8

Jakie funkcje może pełnić program FileZilla?

A. walidacji strony internetowej
B. publikacji strony internetowej
C. kompilacji skryptu na stronie
D. debugowania skryptu na stronie
FileZilla to popularny klient FTP, który umożliwia przesyłanie plików między lokalnym komputerem a serwerem internetowym. Publikacja strony internetowej polega na umieszczeniu plików strony – takich jak HTML, CSS, JavaScript czy obrazy – na serwerze, aby były dostępne dla użytkowników w Internecie. Dzięki FileZilla użytkownicy mogą łatwo zarządzać tym procesem, korzystając z przyjaznego interfejsu graficznego, który pozwala na przeciąganie i upuszczanie plików. Program obsługuje różne protokoły, w tym FTP, FTPS i SFTP, co zapewnia bezpieczeństwo podczas przesyłania danych. Dobry klient FTP, taki jak FileZilla, jest niezbędnym narzędziem w pracy web developerów, pozwalając na efektywne zarządzanie plikami oraz synchronizację lokalnych zasobów z serwerem. Dodatkowo, FileZilla udostępnia funkcje takie jak edycja plików na serwerze, co umożliwia szybką modyfikację treści bez potrzeby ponownego przesyłania całej strony. W kontekście publikuje się również znaczenie zachowania odpowiednich struktur katalogów oraz standardów, co ułatwia przyszłe aktualizacje i konserwację strony.

Pytanie 9

Zakładając, że zmienna tablicowa $tab jest wypełniona liczbami naturalnymi, wynikiem programu będzie wypisanie

$liczba = $tab[0];
foreach ($tab as $element)
{
    if ($element > $liczba)
        $liczba = $element;
}
echo $liczba;
A. największego elementu tablicy.
B. elementu tablicy, który jest równy wartości $tab[0].
C. najmniejszego elementu tablicy.
D. tych elementów, które są większe od zmiennej $liczba.
Poprawna odpowiedź sugeruje, że wynikiem programu będzie wypisanie największego elementu tablicy. To jest prawidłowe, ponieważ program używa techniki znanej jako pętla iteracyjna, aby przejść przez każdy element tablicy i porównać go z aktualnie największą znaną wartością. Na początku, największa znana wartość jest ustawiona na pierwszy element tablicy. Następnie, dla każdego elementu tablicy, program sprawdza, czy element jest większy od największej znanej wartości. Jeśli tak, to ta wartość staje się nową największą znaną wartością. Po przejściu przez wszystkie elementy, program wypisuje największą znaną wartość. Jest to standardowa technika stosowana w programowaniu, aby znaleźć największy element w tablicy lub liście.

Pytanie 10

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

A. raport
B. relację
C. makropolecenie
D. formularz
Formularze, makropolecenia i relacje to różne rzeczy, które używamy w bazach danych, ale nie nadają się do tworzenia raportów. Formularz to narzędzie do wprowadzania danych, jego głównym celem jest to, żeby użytkownik mógł dodawać lub edytować informacje w bazie. Choć są przydatne do zbierania danych, to już do ich analizy czy prezentacji się nie nadają. Makropolecenia to z kolei instrukcje, które pomagają w automatyzacji powtarzalnych zadań, ale znowu – nie są do raportów. Użytkownicy mogą myśleć, że makropolecenia zastąpią raporty, ale to zupełnie inne rzeczy. Relacje dotyczą sposobu łączenia tabel w bazie danych, co jest ważne dla struktury, ale też nie ma to nic wspólnego z prezentacją danych. Warto wiedzieć, jakie są różnice między tymi pojęciami, bo to może pomóc w lepszym zarządzaniu danymi i uniknięciu nieporozumień.

Pytanie 11

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

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

Pytanie 12

Jakie z poniższych warunków logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w zakresie 6, 203>?

A. (zm1 > 6) && (zm1 != 203)
B. (zm1 > 6) || (zm1 != 203)
C. (zm1 > 6) || (zm1 <= 203)
D. (zm1 > 6) && (zm1 <= 203)
Odpowiedź (zm1 > 6) && (zm1 <= 203) jest poprawna, ponieważ używa operatora logicznego AND (&&), co oznacza, że oba warunki muszą być spełnione, aby wyrażenie zwróciło wartość prawda (true). Zmienna zm1 musi być większa od 6 oraz jednocześnie mniejsza lub równa 203, co dokładnie definiuje przedział wartości. Takie podejście jest zgodne z najlepszymi praktykami programistycznymi, gdzie ważne jest precyzyjne określenie zakresu wartości. W zastosowaniach praktycznych, na przykład w walidacji danych użytkowników, możemy użyć tego wyrażenia do sprawdzenia, czy wiek wprowadzony przez użytkownika mieści się w dozwolonym zakresie. Warto zrozumieć, że korzystając z operatora AND, eliminujemy przypadki, w których zmienna zm1 byłaby na przykład równa 6 lub 203, co może być istotne w kontekście określonych ograniczeń biznesowych. W programowaniu ważne jest, aby warunki były jasno definiowane, co sprzyja lepszej czytelności kodu oraz minimalizuje ryzyko błędów.

Pytanie 13

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

A. operator dzielenia całkowitego
B. operator alternatywny
C. początek skryptu
D. początek komentarza jednoliniowego
Pojęcia zawarte w trzech niepoprawnych odpowiedziach nie są poprawne w kontekście użycia znaku '//' w PHP. Pierwsza odpowiedź sugeruje, że znak ten oznacza początek skryptu. W rzeczywistości, skrypt PHP rozpoczyna się od tagu otwierającego '<?php', a nie od komentarza. Znak '//' nie ma nic wspólnego z inicjacją skryptu, jego rola jest ograniczona tylko do umożliwienia dodawania komentarzy. Druga odpowiedź wskazuje na operator alternatywny. W PHP nie istnieje operator alternatywny oznaczany przez '//' - operator alternatywny jest używany w kontekście konstrukcji kontrolnych, takich jak if, i nie ma z komentarzami nic wspólnego. Ostatnia odpowiedź odnosi się do operatora dzielenia całkowitego, co jest również nieprawdziwe. W PHP operator dzielenia całkowitego to 'intdiv()', a nie '//' - ten symbol używany jest do wprowadzania komentarzy. Zrozumienie tych różnic jest kluczowe dla efektywnego programowania w PHP i uniknięcia błędów w kodzie.

Pytanie 14

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

A. zmienna+=1;
B. zmienna===zmienna+1;
C. zmienna --;
D. zmienna=zmienna+10;
W języku JavaScript operator inkrementacji '++' zwiększa wartość zmiennej o 1. Zapis 'zmienna++' jest równoważny z 'zmienna += 1', ponieważ obydwa polecenia prowadzą do tej samej końcowej wartości zmiennej. Operator '+=' to skrót, który dodaje wartość po prawej stronie operatora do aktualnej wartości zmiennej. Warto nadmienić, że 'zmienna++' działa w trybie post-inkrementacji, co oznacza, że zwraca pierwotną wartość przed inkrementacją, podczas gdy '++zmienna' działa w trybie pre-inkrementacji, zwracając wartość po inkrementacji. Przykładowo, jeśli zmienna wynosi 5, to po zastosowaniu 'zmienna++' jej nowa wartość stanie się 6, a jej wartość zwracana to 5. Zastosowanie operatora '+=' jest zgodne z ECMAScript, standardem, na którym oparty jest JavaScript. Użycie tych operatorów jest powszechne w programowaniu, zwłaszcza w iteracjach i obliczeniach. Przykładając to do praktyki, w kodzie można zobaczyć takie zastosowanie: let x = 5; x++; console.log(x); // wypisze 6, a let y = 5; y += 1; console.log(y); // również wypisze 6.

Pytanie 15

Czynność, w której identyfikuje się i eliminuje błędy w kodzie źródłowym programów, to

A. standaryzacja
B. debugowanie
C. kompilowanie
D. normalizacja
Kompilowanie to proces przekształcania kodu źródłowego napisanego w języku programowania na kod maszynowy, który może być wykonany przez komputer. Nie zajmuje się bezpośrednio identyfikacją błędów logicznych czy runtime, lecz jedynie syntaktycznymi. Standaryzacja odnosi się do procesu tworzenia norm i wytycznych, które służą do ujednolicenia metodologii w inżynierii oprogramowania, co jest istotne dla zapewnienia interoperacyjności oraz ułatwienia współpracy zespołów, ale nie dotyczy usuwania błędów w kodzie. Normalizacja to termin, który często odnosi się do procesów mających na celu ujednolicenie dokumentacji, formatów danych lub procedur w organizacji, co ma na celu poprawę efektywności, ale ponownie nie odnosi się bezpośrednio do czynności związanej z usuwaniem błędów w kodzie źródłowym. Choć wszystkie te procesy są ważne w cyklu życia oprogramowania, to żaden z nich nie pełni funkcji, jaką ma debugowanie, dlatego odpowiedzi te są niepoprawne.

Pytanie 16

Instrukcja przypisania elementu do tablicy w języku JavaScript dotyczy tablicy:

Tablica['technik'] = 'informatyk';
A. statycznej.
B. asocjacyjnej.
C. numerycznej.
D. wielowymiarowej.
Najpierw omówmy odpowiedź 'statyczna'. 'Statyczna' tablica to termin, który odnosi się do tablic o stałej wielkości, które nie mogą być dynamicznie zmieniane. W języku JavaScript jednak, tablice są dynamiczne i ich wielkość może być zmieniana w dowolnym momencie. Wybór odpowiedzi 'numeryczna' sugeruje niezrozumienie podstawowych właściwości tablic w JavaScript. Tablice numeryczne są strukturami danych, które używają numerów jako indeksów, ale to nie jest to, co pokazano na zdjęciu - tutaj kluczem jest ciąg znaków. Wybór odpowiedzi 'wielowymiarowa' wskazuje na błędną interpretację przedstawionego obrazu. Tablica wielowymiarowa to tablica tablic, a na zdjęciu pokazano jednowymiarową tablicę asocjacyjną. Pamiętaj, że rozumienie różnych rodzajów tablic i ich zastosowań jest kluczowe dla skutecznego programowania w JavaScript.

Pytanie 17

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

A. SELECT nazwisko, imie FROM mieszkancy WHERE miasto HAVING "Poznań" OR "Kraków"
B. SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" OR miasto="Kraków"
C. SELECT nazwisko, imie FROM mieszkancy AS "Poznań" OR "Kraków"
D. SELECT nazwisko, imie FROM mieszkancy WHERE miasto BETWEEN "Poznań" OR "Kraków"
Wybrana odpowiedź jest poprawna, ponieważ wykorzystuje operator logiczny OR do połączenia dwóch warunków w klauzuli WHERE. W wyniku tego zapytania zostaną zwrócone wszystkie rekordy z tabeli 'mieszkancy', gdzie miasto to 'Poznań' lub 'Kraków'. To podejście jest zgodne z zasadami SQL, gdzie operator OR umożliwia łączenie warunków, co jest powszechnie stosowane w praktyce. Warto zauważyć, że zapytanie z wykorzystaniem operatora UNION ALL, które było pierwotnie zdefiniowane, również łączy wyniki z dwóch zapytań, ale każdy SELECT działa osobno. Użycie OR w tym przypadku jest bardziej efektywne, ponieważ pozwala na jedno zapytanie, co może przyspieszyć wykonanie w porównaniu do kilku zapytań UNION. W praktycznych zastosowaniach, gdy mamy do czynienia z wieloma kryteriami, stosowanie operatorów logicznych jest kluczowe dla uzyskania precyzyjnych wyników.

Pytanie 18

W tabeli Recepta pola Imię oraz Nazwisko odnoszą się do pacjenta, dla którego recepta została wystawiona. Jaką kwerendę należy wykorzystać, aby dla wszystkich recept uzyskać datę ich wystawienia oraz imię i nazwisko lekarza, który je wystawił?

Ilustracja do pytania
A. SELECT Lekarz.Imie, Lekarz.Nazwisko, DataWystawienia FROM Recepta JOIN Lekarz ON Recepta.Lekarz_id = Lekarz.id
B. SELECT Imie, Nazwisko, DataWystawienia FROM Recepta
C. SELECT Lekarz.Imie, Lekarz.Nazwisko, DataWystawienia FROM Recepta
D. SELECT Imie, DataWystawienia FROM Recepta JOIN Lekarz ON Recepta.Lekarz_id = Lekarz.id
Patrząc na inne odpowiedzi, widzę, że sporo osób ma problem z rozumieniem relacji między tabelami w bazach danych. W tym przypadku, kluczowe jest korzystanie z JOIN, żeby połączyć dane z Recepty i Lekarza. Kiedy ktoś nie używa tej klauzuli, no to nie ma jak prawidłowo powiązać lekarza z datą wystawienia recepty, co jest wymagane. Jeżeli kwerenda się ogranicza do jednej tabeli, to niestety nie dostaniesz wszystkich potrzebnych informacji. No i musisz pamiętać, że Imie i Nazwisko dotyczą lekarza, a nie pacjenta. Zrozumienie, jak działa klucz obcy (Lekarz_id) w Recepta to kluczowa sprawa. Właściwe skonstruowanie kwerendy polega na połączeniu tych danych przez JOIN – to podstawa, jak chcesz zarządzać bazami danych. Umiejętności w SQL są naprawdę niezbędne w wielu technicznych zawodach, a złe zapytania mogą skutkować błędnymi wynikami, co w pracy może mieć poważne konsekwencje. Myślę, że warto dobrze zrozumieć, jak te relacje działają.

Pytanie 19

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

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Rafał, Rebeka, Renata, Roksana
B. Gerald, Jarosław, Marek, Tamara
C. Arleta, Krzysztof, Krystyna, Tristan
D. Krzysztof, Krystyna, Romuald
W przypadku opcji, które nie są poprawne, można dostrzec kilka kluczowych błędów w rozumowaniu. W pierwszej grupie imion, Gerald, Jarosław, Marek i Tamara, żadne imię nie spełnia kryterium '_r%', ponieważ nie mają one 'r' na drugiej pozycji. Gerald ma 'e' na drugiej pozycji, Jarosław 'a', Marek 'a', a Tamara 'a'. W drugiej grupie, Rafał, Rebeka, Renata i Roksana, również nie ma imion, które spełniają warunek. Rafał ma 'a' na drugiej pozycji, Rebeka 'e', Renata 'e', a Roksana 'o'. Co więcej, w ostatniej grupie Krzysztof i Krystyna są poprawne, ale Romuald nie spełnia warunku, gdyż 'o' jest na drugiej pozycji. Często popełnianym błędem w analizie wzorców przy użyciu LIKE jest pomijanie istotnych pozycji w analizowanym ciągu, co prowadzi do błędnych wniosków. Warto również podkreślić, że w SQL klauzula LIKE jest używana do porównywania wzorców, ale ważne jest, aby dokładnie zrozumieć, jak działają znaki wieloznaczne, takie jak '%' i '_', aby efektywnie korzystać z tej funkcjonalności. Zrozumienie, które znaki są na jakiej pozycji i jakie wartości mogą się z nimi wiązać, jest kluczowe w uzyskaniu poprawnych wyników.

Pytanie 20

Instrukcja w języku JavaScript

var napis1 = new napisy();
ma na celu
A. zadeklarowanie zmiennej napis1 oraz uruchomienie funkcji, która przyjmuje jako argument napis1
B. stworzenie obiektu napis1 z klasy napisy
C. wykonanie metody obiektu napisy
D. stworzenie nowej klasy napis1
Odpowiedź jest poprawna, ponieważ zapis "var napis1 = new napisy();" faktycznie tworzy nowy obiekt o nazwie "napis1" na podstawie klasy "napisy". W JavaScript, użycie słowa kluczowego "new" jest niezbędne do instancjonowania obiektu z klasy. Klasy w JavaScript definiują strukturę obiektów, a w tym przypadku "napisy" może być zdefiniowaną przez programistę klasą, która zawiera różne metody i właściwości związane z obiektami tego typu. Przykładowo, jeśli klasa "napisy" ma metody do manipulacji tekstem, to obiekt "napis1" może wykorzystywać te metody do operacji na łańcuchach tekstowych. W praktyce, prawidłowe stosowanie klas i obiektów w programowaniu obiektowym pozwala na lepsze organizowanie kodu, zwiększa jego czytelność oraz umożliwia ponowne wykorzystanie kodu. Warto również zauważyć, że tworzenie obiektów w ten sposób jest zgodne z najlepszymi praktykami programistycznymi, co przyczynia się do bardziej strukturalnego podejścia do rozwoju aplikacji webowych.

Pytanie 21

Wskaż stwierdzenie, które nie jest prawdziwe dla następującej definicji funkcji w języku C++?

void zamien( float &x, float &y){
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja zwraca wartość.
B. Funkcja nie zwraca wartości.
C. Funkcja odwołuje się do parametrów przez referencję.
D. Funkcja posiada dwa parametry.
Niestety, wybrałeś odpowiedź, która nie jest właściwa. Poprawna odpowiedź w tym przypadku to 'Funkcja zwraca wartość', co jest nieprawdziwe dla podanej definicji funkcji w C++. Mówimy tutaj o funkcji typu 'void', która z zasady nie zwraca nic. Typ 'void' oznacza, że nie mamy zwracanego typu. Poza tym, stwierdzenia, że funkcja nie ma parametrów czy nie odnosi się do nich przez referencję, też są błędne. W rzeczywistości, funkcja ma dwa parametry typu float, które są przekazywane przez referencję. To naprawdę istotne, bo pomaga w modyfikacji wartości zmiennych, które przekazujemy do funkcji. Zrozumienie tego jest ważne w C++, żeby lepiej zarządzać pamięcią i danymi.

Pytanie 22

Według którego parametru oraz dla ilu tabel zostaną zwrócone wiersze na liście w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
  producent.nr_id = hurtownia.nr_id AND
  producent.wyrob_id = serwis.wyrob_id AND
  hurtownia.nr_id = sklep.nr_id AND
  sklep.nr_id = serwis.nr_id AND
  producent.nr_id = 1;
A. Według parametru nr id wyłącznie dla trzech tabel.
B. Według parametru wyrób Jd wyłącznie dla trzech tabel.
C. Według parametru nr id dla wszystkich tabel.
D. Według parametru wyrób id dla wszystkich tabel.
Wybrana odpowiedź jest niepoprawna. Wszystkie tabelki są łączone przez wartość kolumny nr id, a nie konkretnie przez 'wyrób id' lub 'wyrób Jd'. Ważne jest, aby pamiętać, że zapytanie SQL odnosi się do wszystkich tabel, a nie tylko do trzech. W niektórych odpowiedziach może wystąpić błąd, polegający na myśleniu, że zapytanie dotyczy tylko trzech tabel, podczas gdy w rzeczywistości dotyczy ono czterech: producent, hurtownia, sklep i serwis. Ponadto, zrozumienie, jakie konkretne parametry są używane do zwracania wierszy, jest kluczowe dla zrozumienia, jak działa zapytanie. Zrozumienie tego, jakie parametry są używane w zapytaniu SQL, jest kluczowe dla zrozumienia, jakie dane są zwracane i dlaczego. Niewłaściwe zrozumienie tego, jakie parametry są używane w zapytaniu, może prowadzić do niewłaściwego zrozumienia, jakie dane są zwracane i dlaczego. Pamiętaj, że idealnym celem jest nie tylko zrozumienie, jak działa zapytanie, ale także zrozumienie, dlaczego zwraca konkretne dane i jak te dane są związane z naszymi potrzebami programistycznymi.

Pytanie 23

Aby uzyskać płynne przejścia obrazów w filmie, liczba klatek (niewchodzących w interakcję ze sobą) na sekundę powinna znajdować się w co najmniej takim zakresie

A. 20 - 23 fps
B. 31 - 36 fps
C. 16 - 19 fps
D. 24 - 30 fps
Wybór wartości spośród opcji takich jak 16 - 19 fps lub 20 - 23 fps nie zapewnia wystarczającej płynności obrazu w filmie. Kiedy liczba klatek na sekundę spada poniżej 24 fps, widzowie mogą doświadczyć efektów skoków w ruchu, co negatywnie wpływa na postrzeganie całości obrazu. Wartości te są przypisane do starszych technologii filmowych oraz do zastosowań, w których nie zależało na pełnej płynności. Na przykład, 18 fps był używany w niektórych wczesnych filmach niemych, ale ze względu na niewystarczającą ilość klatek na sekundę może prowadzić do niedoskonałości wizualnych. Podobnie, wybór 20 - 23 fps, chociaż teoretycznie bliższy standardowi 24 fps, w praktyce nie zapewnia odpowiedniej płynności dla współczesnych produkcji filmowych. W przypadku transmisji telewizyjnych, 30 fps jest bardziej akceptowalnym standardem, jednak nadal nie jest to idealne dla kinematografii, gdzie 24 fps preferuje się ze względu na estetykę i bardziej naturalne odwzorowanie ruchu. Wybierając niższe liczby klatek, można także napotkać problemy z synchronizacją dźwięku i obrazu, co skutkuje nieprzyjemnymi doświadczeniami wizualnymi. Dlatego warto pamiętać, że standardowe praktyki w branży filmowej są oparte na wieloletnich badaniach i doświadczeniach, które podkreślają znaczenie płynności w odbiorze wizualnym.

Pytanie 24

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

int zmienna1 = 158;
int *zmienna2 = &zmienna1;
A. liczba w kodzie binarnym, która odpowiada wartości przechowywanej w zmienna1, zostanie przypisana
B. ta sama wartość, którą zawiera zmienna1, zostanie przypisana
C. adres zmiennej o nazwie zmienna1 zostanie przypisany
D. wartość przechowywana w zmienna1 zostanie przypisana jako zamieniona na łańcuch
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 25

Na tabeli muzyka, przedstawionej na rysunku, zostało wykonane następujące zapytanie SQL. Jaki wynik zwróci ta kwerenda?

SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';
IDtytul_plytywykonawcarok_nagraniaopis
1Czas jak rzekaCzeslaw Niemen2005Przyjdz W Taka Noc itd.
2IkonaStan Borys2014
3AerolitCzeslaw Niemen2017Winylowa reedycja płyty „Aerolit”.
4JourneyMikolaj Czechowski2013
A. Czeslaw, Niemen
B. Czeslaw
C. Czeslaw, Czechowski
D. pusty wynik
Niepoprawna odpowiedź wynika ze złego zrozumienia, jak działa operator LIKE w zapytaniach SQL. Operator LIKE jest używany do porównania wartości z określonym wzorcem. W naszym przypadku, wzorzec to 'C%w', gdzie '%' oznacza dowolne zero lub więcej znaków. Czyli szukamy wykonawców, których nazwy zaczynają się na 'C' i kończą na 'w'. Błędne odpowiedzi sugerują, że niezrozumienie polega na tym, że '%w' miałoby oznaczać 'wszystkie nazwy kończące się na w', co nie jest prawdą. W rzeczywistości, '%w' oznacza 'dowolne znaki, po których następuje litera w'. Dlatego, żadne z podanych wykonawców nie spełnia tego kryterium, a wynik zapytania jest pusty. To ważne, aby zrozumieć, jak działają wzorce w SQL, gdyż są one bardzo użyteczne przy wyszukiwaniu danych w bazie.

Pytanie 26

Który z poniższych języków jest używany do stylizacji stron WWW?

A. HTML
B. CSS
C. Python
D. SQL
CSS, czyli Cascading Style Sheets, to język używany do opisywania wyglądu dokumentu HTML. Dzięki niemu możemy określić, jak mają wyglądać elementy na stronie, takie jak kolory, czcionki, odstępy między elementami, a także układ całej strony. CSS jest nieodłącznym elementem nowoczesnego tworzenia stron internetowych, ponieważ pozwala na oddzielenie treści od formy, co jest jedną z zasad dobrych praktyk w web development. Umożliwia tworzenie responsywnych projektów, które dobrze wyglądają na różnych urządzeniach, od komputerów po smartfony. Stylowanie za pomocą CSS pozwala na zdefiniowanie stylów globalnych, które mogą być zastosowane do wielu elementów na stronie, co znacznie ułatwia zarządzanie wyglądem witryny. Praktycznym zastosowaniem CSS jest na przykład zmiana koloru tekstu na stronie za pomocą prostej reguły, czy też tworzenie zaawansowanych animacji, które zwiększają interaktywność stron. CSS jest kluczowy w procesie tworzenia estetycznych i funkcjonalnych stron internetowych, co czyni go niezbędnym narzędziem dla każdego web developera.

Pytanie 27

Aby usunąć zduplikowane wiersze z wyniku zapytania, trzeba zastosować klauzulę

A. DISTINCT
B. UNIQUE
C. ORDER BY
D. LIMIT
Klauzula DISTINCT w SQL jest naprawdę przydatna, jeśli chcemy pozbyć się dublujących się wierszy w naszych wynikach. Wyobraź sobie, że masz tabelę 'Klienci' z kolumną 'Miasto'. Jak użyjesz zapytania SELECT DISTINCT Miasto FROM Klienci, to dostaniesz listę wszystkich miast, w których są klienci, bez powtarzania tych samych miejsc. To bardzo pomaga, gdy staramy się uporządkować dane i skupić się na unikalnych wartościach. Ale pamiętaj, żeby używać DISTINCT z rozwagą, bo może spowolnić nasze zapytania, zwłaszcza gdy mamy do czynienia z dużą ilością danych. Dobrze jest stosować ją tam, gdzie naprawdę jest potrzebna, według zasad optymalizacji zapytań w SQL.

Pytanie 28

Aby wykonać usunięcie wszystkich zapisów z tabeli, konieczne jest użycie kwerendy

A. ALTER COLUMN
B. TRUNCATE TABLE
C. CREATE COLUMN
D. INSERT INTO
Inne odpowiedzi nie są odpowiednie w kontekście usuwania wszystkich rekordów z tabeli. Kwerenda 'INSERT INTO' jest używana do dodawania nowych rekordów do tabeli, co stoi w sprzeczności z celem usunięcia danych. Użytkownicy często mylą te polecenia, zakładając, że mogą one działać w podobny sposób, co prowadzi do nieporozumień w zarządzaniu danymi w bazach. Z kolei 'ALTER COLUMN' służy do modyfikacji struktury kolumny w tabeli, a nie do usuwania danych. Użytkownicy mogą mylnie sądzić, że zmiana kolumn może wpłynąć na zawartość tabeli, jednak należy zwrócić uwagę, że te polecenia dotyczą przede wszystkim schematu bazy danych, a nie jej zawartości. 'CREATE COLUMN' również jest nieprawidłowe, ponieważ odnosi się do dodawania nowych kolumn do istniejącej tabeli. Użytkownicy mogą mylić te komendy, nie rozumiejąc, że każda z nich ma inny cel i zastosowanie. Kluczowe jest, aby zrozumieć, że operacje na danych wymagają precyzyjnych kwerend, które odpowiadają specyficznym potrzebom, a zamienianie jednego polecenia na inne prowadzi do nieefektywnego zarządzania danymi oraz potencjalnych błędów w aplikacjach bazodanowych.

Pytanie 29

Przedstawiono fragment kodu HTML, który nie waliduje się poprawnie. Błąd walidacji tego fragmentu kodu będzie dotyczył:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
<body>
    <img src="/obraz.gif alt="Obrazek">
    <h1>Rozdział 1</h1>
    <p>To jest tekst paragrafu, ...</p>
    <br>
    <img src="/obraz.gif" alt="Obrazek">
</body>
</html>
A. niedomknięcia znacznika <span class="code-text">br</span>
B. braku cudzysłowu
C. powtórzenia nazwy pliku graficznego
D. niedomknięcia znacznika <span class="code-text">img</span>
Niepoprawność w zakresie braku cudzysłowu w atrybucie 'src' znacznika 'img' wyklucza inne błędy, o których mowa w odpowiedziach. Znacznik 'br' jest jednym z nielicznych znaczników, które są samodomykające, co oznacza, że nie wymaga pary otwierającej i zamykającej. Dlatego informacja o niedomknięciu tego znacznika jest błędna, ponieważ poprawny zapis to po prostu <br>. Ponadto, znacznik 'img' również nie wymaga zamknięcia, ponieważ podobnie jak 'br', jest znakiem samodomykającym, co czyni obie te odpowiedzi niepoprawnymi w kontekście analizy błędów kodu HTML. Dodatkowo, kwestia powtórzenia nazwy pliku graficznego w kodzie nie jest błędem walidacji, lecz jedynie stylem programowania. Jeżeli plik graficzny jest używany wielokrotnie, jest to całkowicie akceptowalne. Dlatego te trzy odpowiedzi nie odnoszą się do rzeczywistego problemu, który występuje w przedstawionym kodzie, co podkreśla znaczenie ścisłej znajomości składni HTML oraz zasad walidacji dla prawidłowego tworzenia stron internetowych.

Pytanie 30

Atrybut value w elemencie formularza XHTML

 <input type="text" name="name" value="value">
A. ustawia pole jako tylko do odczytu
B. określa domyślną wartość
C. definiuje maksymalną długość pola
D. określa nazwę pola
Atrybut 'value' w polu formularza XHTML ma kluczowe znaczenie, ponieważ określa wartość, która będzie domyślnie wyświetlana w polu tekstowym. Kiedy użytkownik otworzy formularz, będzie widział w polu tekstowym wpisaną wartość, co ułatwia interakcję, zwłaszcza w przypadkach, gdy potrzebne są przykłady lub domyślne odpowiedzi. Na przykład, w formularzu rejestracyjnym można ustawić atrybut 'value' na 'Jan Kowalski', co sugeruje użytkownikowi, jak powinien wypełnić swoje imię i nazwisko. Jest to zgodne z dobrymi praktykami projektowania formularzy, które dążą do poprawy użyteczności i zmniejszenia liczby błędów użytkowników. Warto również zauważyć, że w przypadku formularzy, jeśli użytkownik zdecyduje się nie zmieniać tej wartości, atrybut 'value' sprawia, że odpowiedź zostanie przesłana w formularzu po jego wysłaniu. To podkreśla znaczenie predefiniowania wartości w kontekście UX, ponieważ dobrze zaprojektowane formularze mogą znacznie poprawić doświadczenia użytkowników.

Pytanie 31

Jak nazywa się organizacja odpowiedzialna za wyznaczanie standardów dla języka HTML?

A. WYSIWYG
B. NASK
C. W3C
D. ISO
Odpowiedzi ISO, NASK oraz WYSIWYG są niepoprawne w kontekście organizacji zajmującej się ustalaniem standardów dla języka HTML. ISO, czyli Międzynarodowa Organizacja Normalizacyjna, jest globalną organizacją zajmującą się ustalaniem standardów w różnych dziedzinach, takich jak jakości produktów, ale nie koncentruje się na standardach dotyczących technologii webowych. Jej standardy mogą obejmować aspekty techniczne, ale nie są specjalnie ukierunkowane na rozwój języków programowania czy specyfikacji związanych z internetem. NASK, czyli Naukowa i Akademicka Sieć Komputerowa, jest polską organizacją, która skupia się na rozwoju infrastruktury internetowej i usług sieciowych, w tym rejestracji nazw domen, ale nie jest odpowiedzialna za międzynarodowe standardy HTML. Z kolei WYSIWYG, co oznacza 'What You See Is What You Get', to termin odnoszący się do programów edytorskich, które pozwalają na tworzenie treści wizualnych w czasie rzeczywistym, ale nie jest to organizacja ani instytucja zajmująca się standardyzacją języka HTML. W zasadzie WYSIWYG to podejście do edycji treści, a nie struktura organizacyjna. Dlatego żadna z tych odpowiedzi nie odnosi się do kluczowej roli, jaką pełni W3C w kontekście ustalania standardów dla HTML i innych technologii internetowych.

Pytanie 32

Aby obliczyć liczbę wszystkich wierszy w tabeli Koty, należy zastosować zapytanie:

A. SELECT ROWNUM() FROM Koty
B. SELECT COUNT(Koty) AS ROWNUM
C. SELECT COUNT(ROWNUM) FROM Koty
D. SELECT COUNT(*) FROM Koty
W przypadku niepoprawnych odpowiedzi zauważamy różne nieporozumienia dotyczące zliczania wierszy w tabelach. Pierwsza z błędnych odpowiedzi, 'SELECT COUNT(ROWNUM) FROM Koty', opiera się na nieprawidłowym zrozumieniu pojęcia ROWNUM w SQL. ROWNUM jest pseudokolumną, która numeruje wiersze w wynikach zapytania, ale nie jest odpowiednia do zliczania wszystkich wierszy w tabeli, ponieważ nie zwraca poprawnego wyniku w kontekście zliczania. To prowadzi do błędnych interpretacji oraz nieefektywnych zapytań. Dalej, odpowiedź 'SELECT COUNT(Koty) AS ROWNUM' w ogóle nie zrozumiała zasady działania funkcji COUNT. W tym przypadku, próbując użyć tabeli jako argumentu, nie uzyskujemy żadnego sensownego rezultatu, ponieważ COUNT powinien operować na kolumnie, a nie na samej tabeli. Ostatnia odpowiedź, 'SELECT ROWNUM() FROM Koty', jest również błędna, ponieważ ROWNUM nie jest funkcją, co skutkuje błędem składniowym. Warto zrozumieć, że na wczesnych etapach nauki SQL, błędne interpretacje i użycie funkcji mogą prowadzić do niezgodnych z oczekiwaniami wyników. Zrozumienie, jak działają funkcje agregujące i pseudokolumny, jest kluczowe dla efektywnego tworzenia zapytań i przeprowadzania analiz w bazach danych. Prawidłowe podejście do zliczania wierszy jest podstawą w pracy z danymi i fundamentalnym elementem w każdej aplikacji bazodanowej.

Pytanie 33

Wykres słupkowy należy zapisać w formacie rastrowym tak, aby jakość jego krawędzi była jak najlepsza, również dla dużego powiększenia, unikając efektu aliasingu. Do tego celu można zastosować format

A. SVG
B. CDR
C. JPEG
D. PNG
Analizując dostępne możliwości, łatwo się pogubić między formatami rastrowymi a wektorowymi, bo w praktyce często mieszają się te pojęcia. Format JPEG mimo swojej popularności w fotografii zupełnie nie nadaje się do wykresów słupkowych – kompresja stratna silnie degraduje jakość ostrych krawędzi i tekstów, przez co nawet lekko powiększony wykres wygląda nieestetycznie, pojawiają się brzydkie artefakty, rozmycia czy wręcz fragmentacja kolorów. To powszechny błąd, że JPEG jest uniwersalny – tak naprawdę sprawdza się tylko przy zdjęciach i obrazach z płynnymi przejściami kolorów. Z kolei SVG to już zupełnie inna liga, bo to format wektorowy. W nim krawędzie są zawsze idealnie ostre nawet przy dowolnym powiększeniu, bo są opisane matematycznie, a nie jako siatka pikseli. Problem w tym, że pytanie dotyczyło formatu rastrowego, więc SVG – choć fantastyczny do wykresów – nie spełnia tego warunku. CDR, czyli CorelDRAW, to natomiast format projektu wektorowego, popularny raczej w poligrafii i druku, a nie w codziennym zapisie wykresów do prezentacji czy publikacji elektronicznych. Pliki CDR są niekompatybilne z większością standardowych przeglądarek czy edytorów graficznych i wymagają specjalistycznego oprogramowania, więc to raczej ślepy zaułek. Wiele osób nie odróżnia również pojęcia aliasingu – czyli poszarpanych krawędzi w grafice rastrowej – od rozmycia czy utraty jakości wynikającej ze złego formatu. PNG jako jedyny z wymienionych formatów rastrowych umożliwia uzyskanie bardzo ostrych krawędzi, a przy zachowaniu wysokiej rozdzielczości pozwala niemal całkowicie uniknąć efektu aliasingu. Moim zdaniem to jeden z tych tematów, gdzie praktyka bardzo szybko weryfikuje teorię i wybierając PNG, po prostu nie ma się później problemów z jakością czy kompatybilnością. Trzeba pamiętać, że dobór formatu ma ogromny wpływ na ostateczną prezentację danych, dlatego nie warto iść na skróty, tylko dobrać narzędzie do konkretnego celu.

Pytanie 34

Model, w którym wszystkie dane są zapisane w jednej tabeli, określa się mianem

A. jednorodnym
B. sieciowym
C. hierarchicznym
D. relacyjnym
Modele sieciowe i hierarchiczne są zupełnie inne od modelu jednorodnego, bo wprowadzają więcej złożoności w to, jak dane są trzymane. Na przykład model sieciowy pozwala tworzyć różne powiązania jak w grafie, co daje większą elastyczność, ale już dla prostych aplikacji to może być przesada. Z kolei model hierarchiczny z tą swoją drzewiastą strukturą też potrafi namieszać, bo trudniej wtedy zarządzać informacjami. Żeby dobrze zrozumieć, jak to wszystko działa, trzeba pojąć hierarchię i jak ze sobą te dane grają, co czasami bywa problematyczne, jak relacje się zmieniają. Moim zdaniem, w modelu relacyjnym, gdzie dane są w różnych tabelach połączonych kluczami, zyskujemy więcej elastyczności, ale też zwiększa się złożoność. Dlatego często można się zagubić w tych wszystkich możliwościach, a model jednorodny zazwyczaj jest najlepszy tylko tam, gdzie nic skomplikowanego nie trzeba. Większość systemów bazodanowych korzysta jednak z modelu relacyjnego, bo to zgodne ze standardami SQL, co ułatwia życie na dłuższą metę.

Pytanie 35

Przedstawiony algorytm umożliwia wyliczenie

Ilustracja do pytania
A. średniej arytmetycznej n liczb a wprowadzonych przez użytkownika.
B. najmniejszego wspólnego dzielnika dla n kolejnych liczb a.
C. średniej geometrycznej n liczb a wprowadzonych przez użytkownika.
D. reszty z dzielenia kolejnych liczb a przez liczbę n.
Na diagramie widać dość typowy schemat algorytmu: wczytanie n, zainicjowanie zmiennych, pętla z licznikiem i i na końcu pojedyncza operacja dzielenia. Taki układ często myli osoby początkujące, bo łatwo go skojarzyć z innymi pojęciami matematycznymi. Warto więc spokojnie prześledzić logikę. Najpierw ustalana jest liczba elementów n. Potem zmienna Wynik jest ustawiana na 0, a i na 0, więc mamy klasyczne przygotowanie do sumowania w pętli. Warunek i < n powoduje, że ciało pętli wykona się dokładnie n razy. W każdej iteracji wczytywana jest jedna liczba a, a następnie Wynik = Wynik + a. To jest zwykłe sumowanie wszystkich podanych wartości. Dopiero po wyjściu z pętli następuje pojedyncza operacja Wynik = Wynik / n. To wyklucza interpretację w stylu „reszta z dzielenia” lub „najmniejszy wspólny dzielnik”, bo w algorytmie nie ma ani operatora modulo, ani żadnej logiki opartej na dzielnikach, porównywaniu reszt, iteracyjnej redukcji NWD itp. Dla średniej geometrycznej potrzebne byłoby mnożenie wszystkich wartości, a na końcu pierwiastek n-tego stopnia. Tutaj nie ma ani mnożenia w pętli, ani pierwiastkowania, więc średnia geometryczna odpada. Typowym błędem myślowym jest patrzenie tylko na końcowe dzielenie przez n i dopowiadanie sobie różnych znaczeń: że to reszta, że to jakiś „wspólny dzielnik” albo inna bardziej skomplikowana operacja. Tymczasem według dobrych praktyk analizy algorytmów trzeba zawsze prześledzić pełny przebieg: co się dzieje z każdą zmienną w każdej iteracji pętli. Wtedy widać jasno, że algorytm realizuje sumę n wczytanych liczb i na końcu dzieli tę sumę przez n, czyli liczy zwykłą średnią arytmetyczną. W kontekście podstaw informatyki to klasyczny wzorzec: inicjalizacja, pętla z akumulacją, przetworzenie wyniku po zakończeniu pętli.

Pytanie 36

Aby tworzyć strony internetowe w sposób graficzny, należy skorzystać z

A. programu MS Office Picture Manager
B. przeglądarki internetowej
C. edytora CSS
D. programu typu WYSIWYG
Korzystanie z przeglądarek internetowych do tworzenia stron internetowych jest fundamentalnie niepoprawne, ponieważ przeglądarki są narzędziami do wyświetlania stron, a nie ich tworzenia. Użytkownicy mogą jedynie przeglądać treści, które zostały już opracowane w innych aplikacjach i zamieszczone w Internecie. Również edytory CSS, choć ważne w procesie stylizowania stron, nie są wystarczające do graficznego tworzenia stron internetowych. Edytory te skupiają się jedynie na aspekcie wizualnym poprzez stylowanie elementów HTML, ale nie oferują możliwości łatwego i intuicyjnego projektowania układu strony, co jest kluczowe dla grafików i projektantów stron. Co więcej, program MS Office Picture Manager jest aplikacją do zarządzania i edytowania zdjęć, a nie do tworzenia stron internetowych. Użytkownicy mogą popełniać błąd, myśląc, że podobne programy mogą być używane do projektowania stron, jednak nie są one zaprojektowane do integracji z HTML, CSS czy JavaScript. Zrozumienie tych różnic jest kluczowe dla efektywnego tworzenia stron internetowych, które są nie tylko estetyczne, ale również funkcjonalne i zgodne z nowoczesnymi standardami.

Pytanie 37

Technologia, w której komunikacja użytkownika z serwerem odbywa się bez konieczności przeładowywania całego dokumentu HTML, to

A. Django
B. PHP
C. Ruby
D. AJAX
Poprawna odpowiedź to AJAX, bo właśnie ta technologia pozwala na komunikację z serwerem bez przeładowywania całej strony HTML. W praktyce chodzi o to, że skrypt JavaScript w przeglądarce wysyła żądanie HTTP (np. GET lub POST) do serwera w tle, pobiera dane (często w formacie JSON) i na ich podstawie aktualizuje tylko wybrane fragmenty dokumentu, modyfikując DOM. Użytkownik widzi wtedy płynne odświeżanie zawartości, bez irytującego migania strony. Moim zdaniem to jest jeden z kluczowych fundamentów nowoczesnych aplikacji webowych typu SPA i ogólnie tzw. „rich internet applications”. AJAX nie jest jednym konkretnym językiem, tylko podejściem/technicznym zestawem: HTML + CSS + JavaScript + obiekt XMLHttpRequest lub fetch() + protokół HTTP + najczęściej JSON lub czasem XML. Standardy W3C i WHATWG opisują m.in. API do wykonywania żądań asynchronicznych oraz manipulacji DOM, a dobre praktyki mówią, żeby logikę AJAX trzymać w oddzielnych modułach JS, stosować obsługę błędów, time-outy, a także unikać przeładowywania serwera zbyt częstymi zapytaniami. Przykład z życia: wyszukiwarka podpowiedzi w polu tekstowym (autocomplete w Google), dynamiczne ładowanie komentarzy pod artykułem, paginacja „dociągająca” kolejne rekordy po przewinięciu strony czy formularz, który po wysłaniu zwraca komunikat „zapisano” bez zmiany adresu URL. Z mojego doświadczenia dobrze napisany kod AJAX poprawia UX i zmniejsza transfer, bo zamiast całej strony przesyłamy tylko dane. W połączeniu z frameworkami typu React, Vue czy Angular AJAX jest podstawą komunikacji klient–serwer w aplikacjach webowych klasy enterprise.

Pytanie 38

W którym z bloków powinien znaleźć się warunek pętli?

Ilustracja do pytania
A. A.
B. B.
C. D.
D. C.
Blok oznaczony literą C jest symbolem decyzji w diagramach przepływu i jest używany do umieszczania warunków pętli w programowaniu. Symbol ten, przypominający romb, pozwala na zadanie pytania lub warunku, który decyduje o dalszym przebiegu działania programu. W praktyce, w językach programowania takich jak C++ czy Python, pętle warunkowe takie jak 'while' lub 'for' wymagają zdefiniowania warunku, który kontroluje liczbę iteracji. Blok decyzyjny umożliwia tworzenie logiki kontrolowanej przez dane wejściowe, co jest fundamentalne dla dynamicznych i responsywnych aplikacji. Zastosowanie bloku decyzyjnego zgodnie ze standardami branżowymi, jak np. UML (Unified Modeling Language), jest kluczowe dla tworzenia zrozumiałych i skalowalnych diagramów przepływu. Dzięki temu, programiści mogą łatwo komunikować algorytmy złożone z sekwencji warunków i decyzji, co jest niezbędne w projektowaniu oprogramowania o dużej złożoności. Praktyczne zrozumienie i stosowanie warunków w blokach decyzyjnych jest kluczowe dla tworzenia efektywnych rozwiązań programistycznych.

Pytanie 39

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki został zwolniony
B. klawiatury został naciśnięty
C. myszki został naciśnięty
D. klawiatury został zwolniony
Nieprawidłowe odpowiedzi koncentrują się na mylnej interpretacji zdarzeń związanych z myszką oraz klawiaturą. Na przykład, wyrażenie, że zdarzenie onKeydown wywołuje się, gdy klawisz myszki został zwolniony, jest całkowicie błędne, ponieważ zdarzenie onKeydown odnosi się wyłącznie do akcji związanych z klawiszami klawiatury. Takie pomieszanie pojęć może prowadzić do nieporozumień w projektowaniu interfejsów użytkownika, gdzie różne zdarzenia muszą być obsługiwane w odpowiednich kontekstach. Obserwując, że odpowiedzi sugerujące naciśnięcie klawisza myszki również są nieprawidłowe, widzimy, że mogą one wynikać z braku zrozumienia podstawowych różnic w interakcji z urządzeniami wskazującymi versus klawiaturą. W praktyce, błędne podejście do zdarzeń klawiaturowych może prowadzić do problemów z dostępnością aplikacji. Na przykład, użytkownicy, którzy korzystają z klawiatury do nawigacji, mogą nie być w stanie w pełni wykorzystać funkcji aplikacji, jeśli zdarzenia nie są odpowiednio obsługiwane. Dlatego kluczowe jest, aby programiści dokładnie rozumieli zasady i różnice między zdarzeniami, co jest zgodne z najlepszymi praktykami w zakresie dostępności i użyteczności aplikacji webowych.

Pytanie 40

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr:hover { background-color: Pink; }
C. tr { background-color: Pink; }
D. tr:active { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.