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: 5 maja 2026 20:10
  • Data zakończenia: 5 maja 2026 20:33

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element

A. Janek o indeksie im
B. Janek z następnym numerem indeksu
C. im z indeksem Janek
D. im z następnym numerem indeksu
Poprawna odpowiedź to "Janek o indeksie im", ponieważ w PHP, gdy formularz jest przesyłany, wartości pól formularza są przekazywane do tablicy globalnej $_POST, gdzie kluczami są nazwy pól, a wartościami są dane wprowadzone przez użytkownika. W przypadku pola <input name="im">, po wprowadzeniu przez użytkownika ciągu "Janek", w tablicy $_POST pojawi się element, w którym klucz to "im", a wartość to "Janek". Zgodnie z dobrymi praktykami programistycznymi, nazwy pól powinny być zrozumiałe i znaczące, co ułatwia późniejsze przetwarzanie danych. Przykładem może być sytuacja, w której tworzymy formularz rejestracyjny; odpowiednie nazewnictwo pól, takich jak "im" dla imienia, poprawia czytelność kodu oraz jego konserwowalność. Warto dodać, że dobrym zwyczajem jest również walidacja danych przed ich przetworzeniem, aby zapewnić bezpieczeństwo aplikacji oraz uniknąć potencjalnych ataków, takich jak SQL Injection.

Pytanie 2

Jaką funkcję pełni program debugger?

A. interpretacji kodu w ramach wirtualnej maszyny Java
B. badania kodu źródłowego w celu wykrycia błędów składniowych
C. analizy działającego programu w celu wykrycia błędów
D. przekładania kodu napisanego w języku wyższego poziomu na język maszynowy
Pojęcia związane z błędnymi odpowiedziami często wynikają z nieporozumienia dotyczącego ról, jakie pełnią różne narzędzia i procesy w inżynierii oprogramowania. Analiza kodu źródłowego w celu odnalezienia błędów składniowych odnosi się do działania kompilatorów i narzędzi statycznej analizy kodu, które zajmują się oceną jakości kodu przed jego wykonaniem. Tego rodzaju narzędzia są przydatne, ale nie mają na celu lokalizacji błędów w czasie rzeczywistym, co jest kluczowe dla debuggowania. Tłumaczenie kodu na język maszynowy to zadanie kompilatorów, które przekształcają kod źródłowy w formę, która może być zrozumiana przez komputer, ale nie zajmują się analizą błędów podczas działania programu. Interpretacja kodu w wirtualnej maszynie Java również nie odnosi się bezpośrednio do lokalizacji błędów, bowiem jest to proces, w którym kod bajtowy jest wykonywany, ale bez możliwości interakcji w czasie rzeczywistym, jak to ma miejsce w przypadku debuggera. Dlatego kluczowe jest zrozumienie, że debugger ma za zadanie monitorować i analizować program w trakcie jego działania, co jest fundamentalne dla diagnostyki i poprawy jakości oprogramowania.

Pytanie 3

Wskaż zapis stylu CSS, który formatuje punktor listy numerowanej na wielkie cyfry rzymskie oraz listy punktowanej na kwadraty?

A. ol { list-style-type: disc; } ul { list-style-type: upper-alpha; }
B. ol { list-style-type: square; } ul { list-style-type: upper-roman; }
C. ol { list-style-type: upper-alpha; } ul { list-style-type: disc; }
D. ol { list-style-type: upper-roman; } ul { list-style-type: square; }
Odpowiedź jest poprawna, ponieważ styl CSS `ol { list-style-type: upper-roman; }` ustawia numerację dla listy uporządkowanej na wielkie cyfry rzymskie, co jest zgodne z wymaganiami. Użycie `ul { list-style-type: square; }` definiuje styl dla listy nieuporządkowanej, gdzie punkty są przedstawiane jako kwadraty. Stylizacja list w CSS jest kluczowa dla estetyki i czytelności dokumentu, a korzystanie z różnych typów markerów dla różnych rodzajów list potrafi znacząco poprawić organizację treści. Przykładem zastosowania może być dokumentacja techniczna, gdzie numery rzymskie używane są do oznaczania sekcji głównych, a kwadratowe punkty do podpunktów. Tego rodzaju stylizacja jest zgodna z dobrymi praktykami w projektowaniu stron internetowych, które wymaga dobrego zrozumienia CSS i jego właściwości. Ponadto, CSS pozwala na elastyczne dostosowywanie stylów, co jest istotne w kontekście responsywności i dostępności stron.

Pytanie 4

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

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

Pytanie 5

W SQL, aby zaktualizować informacje w wierszach w tabeli, konieczne jest użycie polecenia

A. UPDATE
B. SELECT
C. INSERT INTO
D. ALTER TABLE
Odpowiedź "UPDATE" jest właściwa, bo w SQL to właśnie to polecenie używamy do zmiany danych w już istniejących wierszach tabeli. Żeby zaktualizować konkretne kolumny w danym wierszu, trzeba wpisać coś takiego: "UPDATE nazwa_tabeli SET kolumna1 = wartość1, kolumna2 = wartość2 WHERE warunek". Dzięki klauzuli WHERE możemy dokładnie wskazać, które wiersze chcemy zmienić, co jest naprawdę ważne, żeby wszystko działało sprawnie i bezpiecznie. Na przykład, jeśli chcemy zmienić nazwisko użytkownika o id równym 1, napiszemy: "UPDATE Użytkownicy SET nazwisko = 'NoweNazwisko' WHERE id = 1". Używanie tego polecenia to dobra praktyka w zarządzaniu bazami danych. Nie zapominajmy o transakcjach, żeby mieć pewność, że dane są bezpieczne. A jak korzystamy z przygotowanych zapytań, to zminimalizujemy ryzyko ataków SQL injection, co jest bardzo istotne w kontekście bezpieczeństwa aplikacji bazodanowych.

Pytanie 6

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Ta odpowiedź jest prawidłowa, ponieważ używa funkcji agregującej AVG, która oblicza średnią wartość z określonego pola, w tym przypadku pensji. Warunek WHERE zapewnia, że tylko pracownicy z stażem od 10 do 20 lat są brani pod uwagę w obliczeniach. Użycie funkcji AVG w kontekście SQL jest standardową praktyką, gdy chcemy uzyskać średnią z danych numerycznych. Na przykład, jeśli w tabeli mamy pracowników z różnymi pensjami, a chcemy zrozumieć, jak wygląda średnia wynagrodzeń w określonym przedziale stażu, to właśnie ta kwerenda dostarcza nam niezbędnej informacji. Dobre praktyki w analizie danych wskazują, że obliczenie średniej pensji jest kluczowe dla zarządzania zasobami ludzkimi i podejmowania decyzji dotyczących polityki wynagrodzeń. Przykładem może być sytuacja, gdy firma decyduje o podwyżkach lub bonusach, a analiza średniej pensji w danej grupie pracowników może znacząco wpłynąć na te decyzje.

Pytanie 7

Jakim protokołem można bezpiecznie przesłać pliki strony internetowej na serwer WWW?

A. IMAP
B. POP3
C. SFTP
D. Telnet
SFTP, czyli Secure File Transfer Protocol, to taki fajny protokół do bezpiecznego przesyłania plików między komputerami w sieci. Działa to na bazie SSH, co sprawia, że nasze dane są w miarę bezpieczne, bo są szyfrowane. Dzięki temu wiadomo, że nikt nieprzyjemny ich nie przechwyci. SFTP jest super przydatne, zwłaszcza jak przesyłamy pliki na serwery WWW, bo można też nimi zarządzać na serwerze bez strachu, że coś pójdzie nie tak. Przykładowo, programista może potrzebować wrzucić nowe wersje plików HTML, CSS czy JavaScript na serwer. Warto wiedzieć, że są jakieś standardy jak RFC 4253 czy RFC 4251, które mówią, jak to wszystko działa, więc mamy pewność, że jest to dosyć solidny sposób na transfer danych.

Pytanie 8

W celu modyfikacji danych w bazie danych można wykorzystać

A. filtrowaniem
B. raportem
C. kwerendą SELECT
D. formularzem
Formularz jest kluczowym narzędziem do edytowania danych w bazach danych, ponieważ umożliwia użytkownikom interakcję z danymi w sposób przyjazny i zrozumiały. Stosując formularze, można łatwo wprowadzać, modyfikować i usuwać informacje w bazie, co jest szczególnie ważne w aplikacjach typu CRUD (Create, Read, Update, Delete). W kontekście baz danych, formularze są często zintegrowane z systemami zarządzania bazami danych (DBMS), co pozwala na walidację danych wprowadzanych przez użytkowników i zabezpieczenie przed błędami. Przykładem zastosowania formularzy może być system zarządzania klientami, gdzie pracownik wprowadza dane klientów za pomocą formularza, co automatycznie aktualizuje odpowiednie tabele w bazie danych. Właściwe projektowanie formularzy uwzględnia zasady UX/UI, co zwiększa efektywność użytkowników i zmniejsza ryzyko pomyłek. Ponadto, formularze mogą być wspierane przez zaawansowane technologie, takie jak AJAX, które umożliwiają dynamiczne aktualizacje danych bez konieczności przeładowania strony.

Pytanie 9

Aby zwiększyć wydajność operacji w bazie danych, należy skupić się na polach, które są często wyszukiwane lub sortowane

A. utworzyć indeks
B. dodać klucz obcy
C. stworzyć oddzielną tabelę przechowującą wyłącznie te pola
D. dodać więzy integralności
Dodawanie kluczy obcych nie jest bezpośrednią metodą na przyspieszenie operacji na bazie danych. Klucze obce są używane do zapewnienia integralności referencyjnej, co oznacza, że ich celem jest zapewnienie spójności danych w relacjach pomiędzy tabelami. Choć klucze obce mogą wpłynąć na wydajność w kontekście zapytań, nie przyspieszają one ani nie optymalizują wyszukiwania w obrębie pojedynczych tabel. Tworzenie osobnych tabel przechowujących tylko te pola również nie jest metodą optymalizacji efektywności wyszukiwania. Tego rodzaju podejście może prowadzić do komplikacji w zarządzaniu danymi oraz zmniejszenia wydajności przy łączeniu tabel w zapytaniach. Dodanie więzów integralności, które zapewniają, że dane w tabelach są poprawne i zgodne z określonymi zasadami, jest również istotne, ale nie wpływa bezpośrednio na szybkość operacji na bazie danych. Takie podejścia mogą prowadzić do błędnych przekonań, że poprawa wydajności bazy danych można osiągnąć poprzez wprowadzenie dodatkowych ograniczeń lub zmian w strukturze danych, co w rzeczywistości może generować dodatkowe koszty obliczeniowe przy wykonywaniu podstawowych operacji. Kluczowe jest stosowanie odpowiednich technik indeksacji, które są powszechnie uznawane za najlepszą praktykę w kontekście optymalizacji zasobów bazy danych.

Pytanie 10

W języku CSS stworzono określony styl. Sekcja sformatowana tym stylem będzie miała obramowanie o szerokości

div {
    border: solid 2px blue;
    margin: 20px;
}
A. 2 px oraz marginesy wewnętrzne tego obramowania
B. 2 px oraz marginesy zewnętrzne tego obramowania
C. 20 px oraz marginesy zewnętrzne tego obramowania
D. 20 px oraz marginesy wewnętrzne tego obramowania
Wybór odpowiedzi która nie uwzględnia prawidłowego połączenia właściwości border i margin prowadzi do błędnych założeń Odpowiedzi które sugerują że marginesy znajdują się wewnątrz obramowania są mylące ponieważ w CSS właściwość padding odpowiada za marginesy wewnętrzne natomiast margin dotyczy przestrzeni na zewnątrz obramowania Częstym błędem jest mylenie tych dwóch pojęć co prowadzi do niepoprawnego stylizowania elementów na stronie internetowej W przypadku definicji CSS przedstawionej na obrazku właściwość margin jest ustawiona na 20px co oznacza że do każdego z boków elementu dodawane jest 20 pikseli przestrzeni na zewnątrz jego obramowania Obramowanie samo w sobie ma 2 piksele grubości co precyzyjnie określa border 2px Próby rozumienia tej definicji w kategoriach wewnętrznych marginesów są błędne i wynikają z niepoprawnego zrozumienia struktury boksu w CSS Poprawne zrozumienie różnic między margin i padding jest kluczowe dla prawidłowego stosowania stylów CSS w praktyce projektowania stron internetowych oraz dla uzyskania estetycznych i funkcjonalnych układów które poprawiają doświadczenie użytkownika poprzez właściwe zarządzanie przestrzenią i separacją elementów

Pytanie 11

W SQL, aby zmienić dane w tabeli, wykorzystuje się instrukcję

A. SELECT
B. CREATE
C. JOIN
D. UPDATE
Odpowiedź 'UPDATE' jest poprawna, ponieważ w języku SQL polecenie to służy do modyfikacji danych w istniejących rekordach tabeli. Umożliwia aktualizację wartości w jednym lub więcej polach w wybranych wierszach, których identyfikacja może być dokonana poprzez zastosowanie klauzuli WHERE. Na przykład, aby zaktualizować nazwisko użytkownika w tabeli 'Użytkownicy', można użyć polecenia: 'UPDATE Użytkownicy SET nazwisko = 'NoweNazwisko' WHERE id = 1;'. Dobrą praktyką jest zawsze uwzględnienie klauzuli WHERE, aby uniknąć przypadkowego zaktualizowania wszystkich rekordów w tabeli. Polecenie UPDATE jest częścią standardu SQL i szeroko stosowane w codziennej pracy z bazami danych, co czyni je kluczowym narzędziem w zarządzaniu danymi. Warto również pamiętać, że przed wykonaniem aktualizacji zaleca się wykonanie kopii zapasowej danych, aby zabezpieczyć się przed niezamierzonymi zmianami.

Pytanie 12

Programista stworzył pętlę w języku C++, która miała za zadanie obliczyć wynik 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż ```int a = 1; for (int i=1; i < 5; i++) { a = a * i; } cout << a;```

Ilustracja do pytania
A. zmienna a powinna być początkowo ustawiona na 0 zamiast 1
B. w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5
C. zmienna i w pętli powinna być rozpoczynana od 0, a nie od 1
D. zmienna i pętli powinna być zmniejszana, a nie zwiększana
Zmienna a, odpowiedzialna za przechowywanie wyniku, nie powinna być inicjowana wartością 0, gdyż każdy wynik mnożenia przez 0 również daje 0, co zniweczyłoby cały proces obliczeniowy. Inicjalizacja zmiennej wartością 1 jest odpowiednia, ponieważ jest to element neutralny dla mnożenia. Pomysł inicjowania parametru i pętli wartością 0 zamiast 1 jest błędny, ponieważ obliczanie silni wymaga rozpoczęcia od wartości 1, nie 0. Rozpoczęcie od 0 jest odpowiednie dla iteracji związanych z indeksami tablic w wielu językach programowania, ale nie w przypadku obliczeń liczbowych, takich jak silnia. Dekrementacja parametru i zamiast inkrementacji w kontekście silni jest nieodpowiednia, ponieważ wymagałaby przebiegania pętli wstecz od większej wartości do 1, co komplikuje logikę i zwiększa ryzyko błędów logicznych. Takie podejście nie tylko odbiega od standardowych praktyk, ale również jest mniej czytelne i trudniejsze do zrozumienia oraz utrzymania. Dobre praktyki kodowania zalecają, aby pętla for była używana w sposób, który jest intuicyjnie zrozumiały i logiczny, co oznacza inkrementację w przypadku iteracji przez rosnące wartości. Ustalenie poprawnego warunku zakończenia pętli jest kluczowe dla otrzymania właściwego wyniku, a w przypadku obliczania silni, musi obejmować wszystkie liczby w zakresie od 1 do n. Zrozumienie tych podstawowych zasad jest niezbędne dla każdego programisty, aby unikać powszechnych błędów logicznych w algorytmach.

Pytanie 13

Jakie zadania programistyczne należy realizować po stronie serwera?

A. Ukrywanie oraz odkrywanie elementów strony w zależności od bieżącej pozycji kursora
B. Zapisanie danych pobranych z aplikacji internetowej do bazy danych
C. Zmiana stylu HTML na stronie spowodowana ruchem kursora
D. Walidacja danych wpisanych w pole tekstowe w czasie rzeczywistym
Kiedy użytkownik coś klika, jak na przykład zmienia styl HTML na stronie, to wszystko dzieje się po stronie klienta, czyli w przeglądarce. Zmiany te są przeważnie robione za pomocą JavaScript i CSS, dzięki czemu wszystko działa płynnie i szybko, bo nie musimy za każdym razem gadać z serwerem. Weźmy na przykład efekty hover – to coś, co naprawdę poprawia doświadczenie na stronie. Sprawdzanie danych w polach, jak adres e-mail, również odbywa się po stronie klienta. To właśnie tam walidujemy dane, co robi się najczęściej przez JavaScript. Dzięki temu nasz serwer nie dostaje za dużo niepotrzebnych zapytań, co czyni aplikacje bardziej responsywnymi. Jeśli chodzi o ukrywanie lub pokazywanie elementów na stronie w zależności od kursora, to również robimy to po stronie klienta. Takie rzeczy są zwykle ogarniane przez skrypty JavaScript, które zmieniają DOM. Tak więc, tego typu zadania musimy robić po stronie klienta, a nie na serwerze.

Pytanie 14

W PHP typ float oznacza

A. zmiennoprzecinkowy
B. całkowity
C. logiczny
D. łańcuchowy
Typ float w PHP to coś, co przydaje się do przechowywania liczb zmiennoprzecinkowych, a więc do liczb, które mają część dziesiętną. To naprawdę ważne, zwłaszcza jak robimy obliczenia związane z finansami czy nauką. Dzięki float możemy dokładnie przedstawić liczby rzeczywiste, co w programowaniu jest kluczowe. Te wartości są zgodne ze standardem IEEE 754, co oznacza, że można je przenosić między różnymi systemami i platformami bez problemów. Jeżeli chcesz np. obliczyć cenę z VAT-em albo policzyć coś w grze, to float jest najlepszym typem, bo pozwala na robienie precyzyjnych obliczeń z ułamkami. W PHP masz też funkcje jak round() czy number_format(), które pomagają w manipulacji tymi liczbami, co jest super przy prezentacji wyników, żeby ładnie wyglądały.

Pytanie 15

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Powoduje wycięcie określonego fragmentu z pierwotnego obrazu w celu uzyskania lepszego widoku
B. Łączy lub odejmuje figury
C. Powoduje zmianę wymiarów obrazu bez modyfikacji istotnej zawartości wizualnej
D. Polega na modyfikacji sposobu zapisu obrazu, aby zmienić metodę kompresji
Wiele osób myli proces skalowania obrazu z innymi technikami edycji grafiki, co może prowadzić do nieporozumień. Odpowiedzi sugerujące, że skalowanie obrazu polega na łączeniu lub odejmowaniu kształtów, są mylące, ponieważ te działania rzadziej odnoszą się do zmiany rozmiaru, a bardziej do modyfikacji kompozycji obrazu. Na przykład, łączenie kształtów w programie graficznym wynika z potrzeby tworzenia nowych form, co jest odrębnym procesem. Podobnie, wycinanie fragmentów obrazu w celu uzyskania lepszego widoku odnosi się do techniki kadrowania, która, choć również ważna, nie jest równoznaczna ze skalowaniem. Kadrowanie polega na usunięciu zbędnych elementów, a nie na zmianie rozmiaru zachowującego całość wizualną. Ponadto zmiana formatu zapisu obrazu i kompresji obrazu odnosi się do optymalizacji plików, a nie do ich rozmiaru w sensie wymiarów pikseli. Zrozumienie tych różnic jest kluczowe, by poprawnie pracować w dziedzinie grafiki komputerowej i wykorzystać odpowiednie techniki w zależności od potrzeb projektu.

Pytanie 16

Jakie dane zostaną wyświetlone po wykonaniu podanych poleceń?

bool gotowe = true;
cout << gotowe;
A. 1
B. tak
C. nie
D. 0
W języku C++ zmienne typu bool mogą przyjmować jedynie dwie wartości: true i false. Gdy zmienna typu bool zostanie wypisana przy użyciu standardowego strumienia wyjściowego cout, to domyślnie wartości true i false są konwertowane na liczby całkowite 1 i 0 odpowiednio. Dlatego w zaprezentowanym fragmencie kodu zmiennej gotowe przypisano wartość true, a następnie jej zawartość została wypisana przy użyciu cout. Wynikiem tego działania będzie wyświetlenie liczby 1 na ekranie. Jest to zgodne z domyślnym zachowaniem cout w przypadku zmiennych typu bool w C++. Aby modyfikować to zachowanie i bezpośrednio wypisywać słowa true lub false, można użyć specjalnej flagi boolalpha, która sprawia, że wartości logiczne są reprezentowane jako tekst. Jednak w podanym przykładzie nie użyto tej flagi, co prowadzi do wypisania wartości liczbowej. Takie podejście jest powszechne w wielu aplikacjach, gdzie wartości logiczne muszą być szybko zamieniane na wartości liczbowe, na przykład w obliczeniach binarnych czy przy operacjach bitowych. Poprawne zrozumienie tego mechanizmu jest kluczowe dla programistów tworzących efektywne i czytelne aplikacje w C++.

Pytanie 17

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

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Wypisać wartość odwrotną do argumentu f
B. Zwrócić wartość odwrotną do argumentu f
C. Zwrócić wartość bezwzględną argumentu f
D. Wypisać wartość bezwzględną argumentu f
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia funkcji i jej założeń. Wypisanie wartości bezwzględnej z f sugerowałoby że funkcja korzysta z mechanizmu wyjściowego takiego jak console.log co nie ma miejsca w tym przypadku. Funkcja jedynie zwraca wynik za pomocą return a nie wypisuje go na konsolę. Zwrócenie wartości odwrotnej do f oznaczałoby że funkcja miałaby inny cel: przekształcenie liczby na jej odwrotność czyli wartość 1/f co wymagało by dodatkowej logiki i warunkowania aby uniknąć dzielenia przez zero. Podobnie wypisanie wartości odwrotnej do f również wskazywałoby na potrzebę użycia mechanizmu wyjściowego a nie tylko return. Kluczowym błędem w takich rozumowaniach jest nieodróżnianie funkcji zwracających wartość od tych które wypisują wynik oraz niedocenienie znaczenia przekształcania wartości co jest fundamentem programowania funkcyjnego. Dobre praktyki programistyczne wymagają jasno zdefiniowanego celu funkcji co w tym przypadku jest poprawnie zrealizowane poprzez zwracanie wartości bezwzględnej co jest częstym i użytecznym wzorcem w wielu zastosowaniach praktycznych.

Pytanie 18

Tablica tab[] jest wypełniona losowymi liczbami całkowitymi. Jaka będzie wartość zmiennej zm2 po wykonaniu poniższego fragmentu kodu?

int tab[10];
int zm1 = 0;
double zm2 = 0;

for (int i=0; i < 10; i++)
{
    zm1 = zm1 + tab[i];
}
zm2 = zm1 / 10;
A. Suma liczb od 1 do 10
B. Średnia arytmetyczna liczb z tablicy
C. Suma elementów z tablicy
D. Średnia geometryczna liczb od 0 do 9
W tym kodzie jest trochę do zrozumienia, zwłaszcza w kontekście pętli for i operacji matematycznych. Mylisz się, myśląc, że zm2 to średnia geometryczna liczb od 0 do 9, bo w tym kodzie nie ma ani mnożenia, ani pierwiastkowania, które są konieczne do obliczenia średniej geometrycznej. Zmienna zm2 odnosi się do liczb w tablicy tab[], a nie do tych od 0 do 9. Ponadto, twierdzenie, że zm2 to suma liczb od 1 do 10, jest błędne, bo kod nie operuje na takich liczbach. Sumowanie dotyczy tylko wartości w tablicy. Mylna jest też informacja, że zm2 to suma z tablicy – to zm1 przechowuje tę sumę, a zm2 to średnia po podzieleniu przez 10. Błędy takie mogą wynikać z braku zrozumienia działania pętli i operacji matematyk. Ważne, żeby zawsze śledzić, co się dzieje z danymi w kodzie i jakie operacje są wykonywane, bo to klucz do rozwiązywania problemów w programowaniu. Warto dokładnie zrozumieć strukturę kodu i rolę zmiennych, aby unikać błędów logicznych.

Pytanie 19

Jakiego rodzaju oprogramowanie narzędziowe powinno być zainstalowane, aby umożliwić użytkownikowi przeprowadzanie operacji na zgromadzonych danych?

A. Otwarty mechanizm komunikacji bazy danych
B. System Zarządzania Bazą Danych (SZBD)
C. Obiektowy System Zarządzania Bazą Danych
D. Klucz obcy
Klucz obcy to dość ciekawe zagadnienie, które dotyczy relacji między tabelami w bazach danych. Dzięki niemu można powiązać różne rekordy, ale nie jest to coś, co działa samodzielnie. To nie jest jakieś oprogramowanie, które można zainstalować i oczekiwać, że wszystko będzie działać. Z kolei Obiektowy System Zarządzania Bazą Danych (OSZBD) to inny temat, który opiera się na podejściu obiektowym. Może być przydatny, ale nie jest powszechnym rozwiązaniem. Samo otwarte mechanizmy komunikacji bazy danych też w sumie nie zapewnia skutecznego zarządzania danymi. Błędem jest myślenie, że wybór nieodpowiednich elementów, takich jak klucz obcy czy te mechanizmy, załatwi sprawę. Efektywna praca z danymi w praktyce wymaga wyboru SZBD, który jest stworzony do tego, żeby skutecznie zarządzać danymi i nie pomijanie tego prowadzi do nieporozumień.

Pytanie 20

Które zapytanie SQL wybiera nazwiska z tabeli klient, które mają co najmniej jedną literę i zaczynają się na literę Z?

A. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'
B. SELECT nazwisko FROM klient WHERE nazwisko='Z_?'
C. SELECT nazwisko FROM klient WHERE nazwisko='Z?'
D. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%'
Zastosowanie zapytań, które nie wykorzystują operatora LIKE w odpowiedni sposób, prowadzi do błędnych wniosków i nieprawidłowych wyników. Na przykład, użycie zapytania SELECT nazwisko FROM klient WHERE nazwisko='Z_?'; i SELECT nazwisko FROM klient WHERE nazwisko='Z?'; jest mylące, ponieważ w tych przypadkach znak podkreślenia (_) jest interpretowany jako znak zastępczy reprezentujący dokładnie jeden dowolny znak. Oznacza to, że te zapytania będą szukały nazwisk, które zaczynają się na Z, ale mają łącznie tylko dwa lub trzy znaki, co nie spełnia wymogu przynajmniej jednoliterowego nazwiska. Tego rodzaju nieścisłości mogą wynikać z niepełnego zrozumienia działania operatorów w SQL. Kolejnym błędem jest zapytanie SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%';, które również ogranicza wynik do nazwisk składających się przynajmniej z trzech znaków, co nie spełnia wymagań zadania. W praktyce, takie pomyłki mogą prowadzić do nieefektywnego wyszukiwania i obniżenia jakości aplikacji, co skutkuje frustracją użytkowników i zwiększonymi kosztami rozwoju. Kluczowe jest zrozumienie, jak działają różne znaki wieloznaczne oraz ich zastosowanie w kontekście konkretnych zadań, aby skutecznie i precyzyjnie przeszukiwać dane w bazie.

Pytanie 21

Który link jest poprawnie sformułowany?

A. <a href="http::/strona.pl>strona</a>
B. <a href="http://strona.pl">strona</a>
C. <a href=http://strona.pl>strona</a>
D. <a src="/www.strona.pl">strona</a>
Odpowiedź <a href="http://strona.pl">strona</a> jest poprawna, ponieważ używa atrybutu "href" do definiowania odnośnika. Atrybut ten jest standardem w języku HTML i służy do określenia docelowego adresu URL, do którego ma prowadzić link. W przypadku tej odpowiedzi, składnia jest prawidłowa: adres URL jest umieszczony w cudzysłowach, a prefiks HTTP jest poprawny. W praktyce, poprawne użycie atrybutu href jest kluczowe dla zapewnienia, że użytkownicy mogą bezproblemowo nawigować po stronie internetowej. Na przykład, w dokumentacji HTML5, wyraźnie zaznaczone jest, że atrybut href powinien być używany, aby wskazać lokalizację zasobu. W rezultacie, stosując tę poprawną składnię, można uniknąć potencjalnych błędów w działaniu strony oraz poprawić jej dostępność, co jest istotne z punktu widzenia najlepszych praktyk webowych oraz SEO.

Pytanie 22

Aby na witrynie internetowej pokazać logo z przezroczystym tłem, należy użyć formatu

A. JPG
B. PNG
C. CDR
D. BMP
Format PNG (Portable Network Graphics) jest najbardziej odpowiednim wyborem do wyświetlania logo z przezroczystym tłem na stronie internetowej. Główną zaletą formatu PNG jest jego zdolność do obsługi przezroczystości, co oznacza, że tło logo może być całkowicie przezroczyste, pozwalając na bezproblemowe wkomponowanie go w różnorodne tła. W praktyce oznacza to, że logo w formacie PNG nie będzie miało niepożądanych białych lub kolorowych ramek, co ma kluczowe znaczenie dla estetyki i profesjonalnego wyglądu strony. Dodatkowo, PNG obsługuje wysoką jakość obrazu oraz kompresję bezstratną, co pozwala na zachowanie detali w grafice. Format ten jest powszechnie stosowany w projektowaniu stron internetowych oraz aplikacji mobilnych, zwłaszcza w przypadku ikon i grafik, które wymagają zachowania wyrazistości i przezroczystości. Warto również wspomnieć, że PNG stał się standardem w branży, szczególnie w kontekście użycia w sieci, co czyni go najlepszym wyborem dla projektantów i deweloperów.

Pytanie 23

Który z elementów jest opcjonalny w kodzie HTML5 i jego pominięcie nie spowoduje wygenerowania błędu lub ostrzeżenia walidatora HTML?

A. <html lang="pl">
B. <!DOCTYPE html>
C. <title>Tytuł strony</title>
D. <meta name="keywords" content="">
Poprawnie – właśnie znacznik meta z atrybutem name="keywords" jest w HTML5 całkowicie opcjonalny i jego brak nie powoduje żadnych błędów walidacji. Ten element był kiedyś używany głównie do pozycjonowania stron w wyszukiwarkach, ale w aktualnych wytycznych SEO praktycznie wszystkie większe wyszukiwarki (Google, Bing itd.) ignorują meta keywords. Z punktu widzenia specyfikacji HTML5 jest to zwykły, opcjonalny metatag: możesz go użyć, ale w żaden sposób nie jest wymagany do poprawnej struktury dokumentu. Validator W3C nie zgłasza ostrzeżeń, jeśli go nie ma, bo nie jest to element strukturalny, tylko dodatkowa informacja opisowa. W praktyce, w nowoczesnych projektach webowych, meta name="keywords" często się po prostu pomija. Dużo ważniejsze są inne meta tagi, np. meta charset, meta name="viewport" dla responsywności czy meta name="description", która jest używana w wynikach wyszukiwania. Możesz mieć całkowicie poprawny, walidujący się dokument HTML5 zaczynający się od <!DOCTYPE html>, z elementem html z atrybutem lang, poprawnie zdefiniowaną sekcją head z tytułem strony i bez ani jednego meta keywords – i to jest jak najbardziej zgodne ze standardem. Moim zdaniem dobrze jest znać historię tego znacznika: kiedyś nauczyciele i różne stare kursy mocno go promowały, dlatego wciąż pojawia się w kodzie. Ale w aktualnych projektach lepiej skupić się na semantycznym HTML, dostępności (ARIA, poprawne nagłówki), porządnych opisach w meta description i na poprawnej strukturze dokumentu. Meta keywords możesz traktować jako ciekawostkę z dawnych czasów, a nie obowiązkowy element kodu.

Pytanie 24

W tabeli artykuly wykonano określone instrukcje dotyczące uprawnień użytkownika jan. Po ich realizacji użytkownik jan uzyska możliwość

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan
A. tworzenia tabeli oraz edytowania jej zawartości
B. tworzenia tabeli i wypełniania jej informacjami
C. edycji danych i przeglądania zawartości tabeli
D. sprawdzania zawartości tabeli
Prawidłowa odpowiedź wskazuje na to że użytkownik jan ma prawa do tworzenia tabeli i wypełniania jej danymi co wynika z początkowego nadania pełnych praw za pomocą komendy GRANT ALL PRIVILEGES i późniejszego cofnięcia konkretnych przywilejów SELECT i UPDATE. To oznacza że jan zachował uprawnienia do tworzenia tabelek i wstawiania danych do tabeli bez możliwości przeglądania czy aktualizowania danych w istniejących wierszach. W kontekście zarządzania bazami danych takie precyzyjne przyznawanie i odbieranie uprawnień jest kluczowe do utrzymania integralności i bezpieczeństwa danych. Przykładowo w środowisku produkcyjnym tworzenie i wypełnianie tabel może być ograniczone do administratorów baz danych lub zespołów deweloperskich podczas gdy inne role mogą mieć jedynie prawa do odczytu. Takie zarządzanie uprawnieniami pomaga zminimalizować ryzyko błędów i nieautoryzowanych modyfikacji danych. Standardy takie jak ISO/IEC 27001 zalecają precyzyjne zarządzanie dostępem w celu zabezpieczenia informacji co jest dobrą praktyką w branży IT.

Pytanie 25

Która wartość tekstowa nie pasuje do podanego w ramce wzorca wyrażenia regularnego?

(([A-ZŁŻ][a-ząęóżźćńłś]{2,})(-[A-ZŁŻ][a-ząęóżźćńłś]{2,})?)
A. Kasprowicza
B. Nowakowska-Kowalska
C. Kowalski
D. Jelenia Góra
Wyrażenie regularne, które zostało podane w pytaniu, to [A-ZŁŻ][a-ząęóżźćńłś]{2,}-[A-ZŁŻ][a-ząęóżźćńłś]{2,}. Wyrażenie to jest używane do walidacji polskich nazwisk, gdzie pierwsza litera musi być dużą literą z zakresu A-Z oraz polskimi znakami diakrytycznymi, następnie muszą występować co najmniej dwa znaki małe, również z zestawu polskich liter. Po pierwszej części, która odpowiada za pierwsze nazwisko, mamy opcjonalny fragment, który zaczyna się od znaku '-', co oznacza, że można podać drugie nazwisko, które także musi spełniać te same warunki. Przykład poprawnych wartości to Kowalski oraz Nowakowska-Kowalska. Wartość 'Jelenia Góra' nie pasuje do tego wzorca, ponieważ zawiera spację, która nie jest dozwolona w tym kontekście. Dodatkowo, spację można interpretować jako rozdzielenie dwóch słów, co wykracza poza przyjęty format. W związku z tym, prawidłowa odpowiedź to 'Jelenia Góra'.

Pytanie 26

Przedstawiony kod źródłowy, zapisany w języku C++, ma za zadanie dla wprowadzanych dowolnych całkowitych liczb różnych od zera wypisać:

int main()
{
    int liczba;
    cin >> liczba;
    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;
        cin >> liczba;
    }
    return 0;
}
A. liczby pierwsze
B. jedynie liczby parzyste
C. wyłącznie liczby nieparzyste
D. wszystkie liczby
Ten kod w C++ jest zaprojektowany tak, żeby wypisywał tylko liczby parzyste, które podaje użytkownik. Zaczyna od wczytania liczby całkowitej i potem wchodzi w pętlę, która działa, dopóki użytkownik nie wkroczy z zerem. W pętli sprawdza, czy liczba jest parzysta, co robi poprzez operację modulo. Jeśli reszta z dzielenia przez 2 jest 0, to znaczy, że liczba jest parzysta i wtedy jest wyświetlana na ekranie. To przykład podstawowych rzeczy w programowaniu, jak pętle i warunki, i to są naprawdę ważne umiejętności. Takie konstrukcje są przydatne w wielu programach, na przykład finansowych lub graficznych, gdzie często trzeba sprawdzić i przefiltrować dane według określonych zasad.

Pytanie 27

Który z czterech głównych kolorów w modelu barw CMYK jest

A. pomarańczowy
B. brązowy
C. zielony
D. czarny
Zielony, brązowy i pomarańczowy nie są podstawowymi kolorami modelu CMYK, co można wyjaśnić na podstawie zasad działania tego modelu barw. Zielony, będący kolorem wtórnym, powstaje z połączenia cyjanu i żółtego, co oznacza, że nie jest niezależnym kolorem w tym systemie. Pomarańczowy również jest kolorem wtórnym, tworzonym przez mieszanie czerwieni i żółtego, co sprawia, że brakuje mu statusu podstawowego koloru w kontekście druku. Brązowy natomiast jest kolorem, który powstaje z kombinacji różnych kolorów podstawowych, takich jak czerwony, żółty i czarny, co również wyklucza go z grona kolorów podstawowych. W modelu CMYK kluczowe jest zrozumienie, że kolory są tworzone poprzez subtractive mixing, co oznacza, że każdy dodany kolor absorbuje pewne długości fal świetlnych, co w efekcie zmienia postrzegany kolor. Z tego powodu, kolory takie jak zielony, brązowy i pomarańczowy, które są wynikiem mieszania, nie mogą być uznawane za podstawowe elementy tego modelu. W kontekście druku, poprawne zastosowanie kolorów podstawowych jest niezbędne dla uzyskania oczekiwanych rezultatów wizualnych, dlatego ważne jest, aby znać ich właściwości i sposób, w jaki wpływają na finalny efekt druku.

Pytanie 28

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

A. <img src="/kotek.jpg" title="obrazek kotka">
B. <img href="/kotek.jpg" alt="obrazek kotka">
C. <img src="/kotek.jpg" alt="obrazek kotka">
D. <img href="/kotek.jpg" title="obrazek kotka">
Poprawna odpowiedź to <img src="/kotek.jpg" alt="obrazek kotka">, ponieważ stosuje właściwe atrybuty do wyświetlania obrazów w HTML. Atrybut 'src' wskazuje na źródło obrazu, a 'alt' zawiera tekst alternatywny, który jest ważny dla dostępności oraz SEO. Standardy WCAG (Web Content Accessibility Guidelines) podkreślają znaczenie atrybutu 'alt', który zapewnia kontekst dla użytkowników korzystających z czytników ekranu. Ponadto, zastosowanie tego zapisu jest zgodne z dobrymi praktykami, które zachęcają do dostarczania informacji o obrazie, gdy nie może on być wyświetlony. Przykładem zastosowania może być dodanie obrazów w artykułach blogowych, gdzie 'alt' opisuje zawartość obrazu, co poprawia ogólne wrażenie oraz dostępność treści. Prawidłowe użycie atrybutów jest kluczowe dla stworzenia semantycznego i dostępnego kodu HTML.

Pytanie 29

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Inwersja.
B. Krzywe.
C. Progowanie.
D. Barwienie.
Prawidłowo wskazana funkcja to „Progowanie”, bo dokładnie ona zamienia obraz kolorowy lub w odcieniach szarości na obraz dwuwartościowy: piksel jest albo czarny, albo biały, w zależności od tego, czy jego jasność przekracza ustawiony próg. W GIMP-ie znajdziesz ją w menu Kolory → Progowanie. Suwakami ustalasz zakres poziomów jasności, które mają zostać potraktowane jako „białe”, a wszystko poza tym zakresem staje się „czarne”. Efekt, który się wtedy uzyskuje, jest bardzo charakterystyczny: mocno kontrastowy, bez półtonów, coś w stylu skanu czarno-białego lub grafiki do druku na ploterze tnącym. Z mojego doświadczenia progowanie świetnie nadaje się do przygotowania logotypów, szkiców technicznych, schematów, a także do wyciągania konturów z lekko rozmytych zdjęć. Często używa się go też przed wektoryzacją, żeby program śledzący krawędzie miał wyraźne granice między czernią a bielą. W pracy z grafiką na potrzeby stron WWW próg bywa stosowany np. przy tworzeniu prostych ikon, piktogramów albo masek (maski przezroczystości można przygotować właśnie na bazie obrazu progowanego). Dobrą praktyką jest najpierw sprowadzenie obrazu do odcieni szarości i dopiero potem użycie progowania, bo wtedy masz większą kontrolę nad tym, jak rozkłada się jasność i gdzie wypadnie granica progu. Warto też pamiętać, że progowanie jest operacją destrukcyjną – traci się informacje o półtonach – więc najlepiej pracować na kopii warstwy, żeby w razie czego móc wrócić do oryginału i poprawić ustawienia progu.

Pytanie 30

Jaki format CSS dla akapitu definiuje styl szarej ramki z następującymi cechami?

p {
  padding: 15px;
  border: 2px dotted gray; }
A. linia ciągła; grubość 2 px; marginesy poza ramką 15 px
B. linia kreskowa; grubość 2 px; marginesy poza ramką 15 px
C. linia kropkowa; grubość 2 px; marginesy między tekstem a ramką 15 px
D. linia ciągła; grubość 2 px; marginesy między tekstem a ramką 15 px
Odpowiedzi, które sugerują inne rodzaje obramowań, nie są zgodne z przedstawionym kodem CSS. Linia ciągła, określana jako 'solid', różni się od linii kropkowanej 'dotted', ponieważ jest to ciągła linia bez przerw. Wybór typu linii jest istotny w kontekście wizualnej prezentacji treści i ma wpływ na percepcję estetyczną strony internetowej. Ponadto, odpowiedzi sugerujące marginesy poza ramką zamiast marginesów wewnętrznych wprowadzają błąd w interpretacji właściwości 'padding'. 'Padding' odnosi się do przestrzeni wewnątrz elementu, pomiędzy jego zawartością a granicą, a nie do zewnętrznej przestrzeni między elementem a otaczającymi go obiektami, która jest kontrolowana za pomocą właściwości 'margin'. Tego typu błędne rozumienie może prowadzić do nieprawidłowego stylizowania elementów na stronie, co skutkuje nieestetycznym układem treści i pogorszoną czytelnością. Warto zawsze dokładnie zapoznać się z definicjami i działaniem poszczególnych właściwości CSS, aby unikać takich pomyłek. Zrozumienie różnicy między 'padding' a 'margin' jest kluczowe dla poprawnego projektowania układów stron zgodnie z najlepszymi praktykami w branży web designu

Pytanie 31

Na podstawie jakiego parametru oraz z ilu tabel zostaną zwrócone wiersze 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. Na podstawie parametru nr_id ze wszystkich tabel
B. Na podstawie parametru wyrob_id ze wszystkich tabel
C. Na podstawie parametru nr_id wyłącznie z trzech tabel
D. Na podstawie parametru wyrob_id wyłącznie z trzech tabel
Problem z błędnymi odpowiedziami polega na niewłaściwym zrozumieniu użycia parametrów w zapytaniu SQL Pierwsza z nich sugeruje użycie parametru wyrob_id wyłącznie dla trzech tabel co jest błędne ponieważ w analizowanym zapytaniu wyrob_id jest używany do łączenia jedynie dwóch tabel producent i serwis Nie łączy on wszystkich czterech tabel co ogranicza zakres danych Druga odpowiedź mylnie zakłada że wyrob_id jest używany dla wszystkich tabel co wskazuje na nieprawidłową interpretację struktury samego zapytania Trzecia odpowiedź błędnie sugeruje że parametr nr_id ogranicza się do trzech tabel co również jest sprzeczne z rzeczywistością zapytania które używa nr_id jako wspólnego klucza dla wszystkich czterech tabel Często pomyłki tego typu wynikają z braku zrozumienia jak działa klucz podstawowy i obcy w bazach danych Klucze te są podstawą dla relacji pomiędzy tabelami i ich poprawne użycie jest kluczowe dla uzyskiwania poprawnych wyników z zapytań Skupienie się na zrozumieniu struktury relacyjnej oraz zasad normalizacji pomoże w unikaniu takich błędów w przyszłości co jest kluczowe dla zachowania integralności i spójności danych w systemach bazodanowych

Pytanie 32

W zaprezentowanym fragmencie dokumentu HTML ustalono stylowanie CSS dla selektora klasy "menu", aby kolor tła tego elementu był zielony. Które z poniższych określeń stylu CSS odpowiada temu stylowaniu?

<div class="menu"></div>
A. #menu { background-color: rgb(0,255,0); }
B. menu { background-color: rgb(0,255,0); }
C. div.menu { background-color: green; }
D. div:menu { color: green; }
Odpowiedź div.menu { background-color: green; } jest prawidłowa, ponieważ odnosi się do selektora klasy w języku CSS. W HTML, atrybut class jest używany do przypisywania elementom jednej lub wielu klas, które mogą być następnie stylizowane w CSS. Selektor klasy jest definiowany przez poprzedzenie nazwy klasy kropką, co pozwala na stylizację wszystkich elementów używających tej klasy. W przypadku selektora div.menu, stylizacja dotyczy wszystkich elementów div z klasą menu. Użycie właściwości background-color z wartością green ustawia zielone tło dla zdefiniowanego elementu. Taki sposób definiowania stylów jest zgodny z dobrymi praktykami, które zalecają użycie klas do stylizacji wielokrotnego użytku w celu zwiększenia elastyczności i czytelności kodu. Ponadto używanie nazw klas i odpowiednich selektorów pozwala na łatwe zarządzanie stylistyką większych projektów, co jest kluczowe w rozwoju współczesnych stron internetowych. Warto zauważyć, że stosowanie klas zamiast identyfikatorów jest bardziej elastyczne, ponieważ jedna klasa może być przypisana do wielu elementów, podczas gdy identyfikator musi być unikalny w całym dokumencie.

Pytanie 33

Jakie mechanizmy powinno się wykorzystać do stworzenia ankiety w języku działającym po stronie serwera, tak aby wyniki były zapisane w postaci małego pliku u użytkownika?

A. bazy danych SQL
B. sesji
C. ciasteczek
D. tablicy globalnej $_FILES
Przy wyborze nieodpowiednich mechanizmów do przechowywania wyników ankiety, warto zrozumieć, dlaczego inne opcje nie są właściwe. Używanie tablicy globalnej $_FILES jest całkowicie niewłaściwe, ponieważ ta tablica służy do obsługi przesyłanych plików, a nie do przechowywania danych w formie ankiety. Z kolei sesje, mimo że pozwalają na przechowywanie danych użytkownika w kontekście danej sesji, są bardziej odpowiednie do przechowywania tymczasowych informacji, które nie wymagają długoterminowego przechowywania. W przypadku ankiety, gdzie istotne jest zachowanie wyników pomiędzy różnymi sesjami, sesje mogą być nieefektywne i prowadzić do ich utraty po zakończeniu sesji przeglądarki. Bazy danych SQL, chociaż są potężnym narzędziem do przechowywania danych, wymagają większej złożoności w implementacji oraz zarządzaniu danymi, co może być zbędne w przypadku prostych ankiet, gdzie ciasteczka mogą spełnić wystarczające wymagania. Typowym błędem myślowym jest zakładanie, że każda forma przechowywania danych wymaga skomplikowanej infrastruktury, podczas gdy w wielu przypadkach prostsze rozwiązania, takie jak ciasteczka, oferują wystarczającą funkcjonalność w bardziej ergonomicznym podejściu do programowania aplikacji webowych.

Pytanie 34

Rodzaj zmiennej w języku JavaScript

A. powinien być zadeklarowany na początku skryptu
B. następuje poprzez przypisanie wartości
C. nie występuje
D. istnieje tylko jeden
W kontekście języka JavaScript pojawiają się różne nieporozumienia dotyczące zmiennych i ich typów. Nie jest prawdą, że istnieje tylko jeden typ zmiennej w JavaScript. Programowanie w tym języku opiera się na dynamicznym typowaniu, co oznacza, że zmienne mogą przyjmować różne typy danych w czasie działania aplikacji. Stwierdzenie, że zmienna musi być zadeklarowana na początku skryptu, jest również mylące. W praktyce, zmienne można deklarować w dowolnym miejscu w kodzie, a ich zasięg (scope) określa kontekst, w którym zostały zadeklarowane. Z kolei twierdzenie, że zmienne nie występują w JavaScript, jest całkowicie błędne, ponieważ zmienne są kluczowym elementem tego języka, umożliwiającym przechowywanie i manipulowanie danymi. Typowe błędy myślowe prowadzące do takich wniosków to nieporozumienia dotyczące zasięgu zmiennych oraz różnic między językami statycznie a dynamicznie typowanymi. Warto podkreślić, że poprawne zrozumienie, jak działają zmienne w JavaScript, jest kluczowe dla efektywnego programowania, a znajomość dynamicznego typowania jest niezbędna dla każdego, kto pragnie tworzyć zaawansowane aplikacje w tym języku.

Pytanie 35

W poniższym kodzie PHP wykonano operację na bazie danych. Której funkcji należy użyć, aby pobrać liczbę zmienionych w tabeli wierszy?

$zapytanie="UPDATE kadra SET stanowisko='Programista' WHERE id < 10";
mysqli_query($db, $zapytanie);
A. mysqli_affected_rows()
B. mysqli_num_rows()
C. mysqli_field_count()
D. mysqli_use_result()
Wybrana odpowiedź jest niestety niepoprawna. Może to wynikać z niezrozumienia różnych funkcji dostępnych w języku PHP do manipulowania danymi w bazach danych MySQL. Funkcja mysqli_field_count() zwraca liczbę pól w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Z kolei mysqli_use_result() inicjuje pobieranie wyników zapytania wysłanego do serwera MySQL i nie zwraca informacji o liczbie zmienionych wierszy. Natomiast funkcja mysqli_num_rows() zwraca liczbę wierszy w wyniku zapytania SELECT, a nie liczbę zmienionych wierszy. Do tego celu służy jedynie funkcja mysqli_affected_rows(), która zwraca liczbę wierszy zmienionych, dodanych lub usuniętych przez ostatnie wywołanie funkcji mysqli_query() na serwerze MySQL. Pamiętaj więc, że wybór odpowiedniej funkcji zależy od kontekstu i rodzaju operacji wykonanej na bazie danych.

Pytanie 36

Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?

 var osoba = {
    imie: "Jan",
    jezyk: "EN",
    set j(nazwa) {  ...  }
};
A. return this.jezyk;
B. this.j = nazwa;
C. this.jezyk = nazwa;
D. return this.j;
Twoja odpowiedź jest poprawna. W pytaniu mamy do czynienia z obiektem 'osoba' w JavaScript, który posiada właściwości 'imie' i 'jezyk'. Właściwość 'jezyk' jest obsługiwana przez setter 'set j(nazwa)', którego zadaniem jest przypisanie wartości do tej właściwości. Instrukcja 'osoba.j = "PL";' oznacza, że chcemy ustawić wartość 'PL' dla właściwości 'jezyk'. Aby to osiągnąć, setter musi przypisać tę wartość do właściwości 'jezyk'. Dlatego poprawnym kodem jest 'this.jezyk = nazwa;'. 'This' w tym kontekście odnosi się do obiektu 'osoba', a 'nazwa' to wartość, którą chcemy przypisać do właściwości 'jezyk'. To przykład dobrej praktyki zarządzania stanem obiektu w JavaScript, a także dobrej praktyki tworzenia setterów, które są integralną częścią programowania zorientowanego obiektowo.

Pytanie 37

W zamieszczonym kodzie PHP, który łączy się z serwerem bazy danych, jakie działania powinny być umieszczone w instrukcji warunkowej w miejscu trzech kropek?

$db = mysqli_connect("localhost","root","qwerty","baza1");
if ( !$db ) {
...
}
A. Przetwarzanie danych otrzymanych z bazy
B. Zamknięcie połączenia z bazą danych
C. Informacja o udanym połączeniu z bazą
D. Zarządzanie błędem połączenia
W przypadku nawiązywania połączenia z bazą danych kluczowym aspektem jest sprawdzenie czy połączenie zostało nawiązane pomyślnie. W PHP funkcja mysqli_connect() zwraca false w przypadku nieudanego połączenia dlatego pierwszym krokiem po jej użyciu powinno być sprawdzenie czy połączenie zostało zainicjowane poprawnie. W sytuacji gdy połączenie nie powiedzie się należy wykonać odpowiednie czynności obsługi błędu. Najczęściej stosowaną praktyką jest wyświetlenie użytkownikowi komunikatu o błędzie oraz zapisanie szczegółów błędu do logów systemowych co umożliwia późniejszą diagnostykę problemu. Można to zrealizować za pomocą funkcji mysqli_connect_error() która zwraca szczegóły błędu połączenia. Obsługa błędów na tym etapie jest zgodna z dobrymi praktykami programistycznymi i pomaga zapobiegać sytuacjom w których aplikacja działałaby w sposób nieprzewidywalny lub nieefektywny. Prawidłowe zarządzanie błędami połączenia jest niezbędne do tworzenia stabilnych i bezpiecznych aplikacji internetowych. Ponadto pozwala na wczesne wykrycie problemów konfiguracyjnych takich jak nieprawidłowe dane logowania czy brak dostępu do serwera bazy danych.

Pytanie 38

Który z przedstawionych kodów XHTML sformatuje tekst według podanego wzorca?
Ala ma kota
a kot ma Alę

A. <p>Ala ma <b>kota<br> a <i>kot</i> ma Alę</p>
B. <p>Ala ma <b>kota</b><br> a <i>kot</i> ma Alę</p>
C. <p>Ala ma <b>kota</b><br> a <b>kot</b> ma Alę</p>
D. <p>Ala ma <b>kota</i><br> a <b>kot</b> ma Alę</p>
Poprawna odpowiedź to <p>Ala ma <b>kota</b><br/>a <i>kot</i> ma Alę</p>. W tym kodzie XHTML tekst 'Ala ma kota' jest odpowiednio sformatowany dzięki zastosowaniu znaku <b>, który definiuje tekst pogrubiony, oraz <i>, który oznacza tekst kursywą. Ponadto <br/> jest używane do wstawienia przerwy w linii, co jest zgodne z praktykami formatowania tekstu w HTML/XHTML. Zgodnie ze standardami W3C, XHTML jest stricte oparty na XML, co oznacza, że wszystkie elementy muszą być poprawnie zagnieżdżone i zamknięte. Użycie <i> w drugiej części tekstu jest poprawne, ponieważ wskazuje na pewną formę wyróżnienia, a jednocześnie zachowuje semantykę. Przy tworzeniu stron internetowych ważne jest, aby formatowanie tekstu było zarówno estetyczne, jak i zgodne z regułami semantycznymi, co ta odpowiedź spełnia. Przykładowo, tekst ten można umieścić w dowolnym dokumencie HTML, aby zachować poprawne formatowanie, co wpływa na czytelność.

Pytanie 39

Jaki będzie rezultat po uruchomieniu podanego skryptu?

class Owoc {
    function __construct() {
        echo "test1";
    }
    function __destruct() {
        echo "test2";
    }
}
$gruszka = new Owoc();
A. Pojawi się jedynie tekst „test1”
B. Nie pojawi się żaden tekst
C. Pojawi się wyłącznie tekst „test2”
D. Pojawią się oba teksty: „test1” i „test2”
Wybór błędnych odpowiedzi może wynikać z tego, że nie do końca rozumiesz, jak działają konstruktory i destruktory w programowaniu obiektowym. Nie jest tak, że nie ma żadnego napisu, bo nawet jeżeli nie stworzysz obiektu, to przy końcu skryptu destruktor powinien się uruchomić i wtedy wyświetli się 'test2'. Tak że, gdy mówisz, że tylko 'test1' się pokaże, to nie bierzesz pod uwagę, co się dzieje po zakończeniu skryptu. I to, co napisałeś, że tylko 'test2' się wyświetli, też nie jest prawdą, bo konstruktor musi być wywołany, kiedy robi się obiekt. Zrozumienie tych wszystkich spraw jest naprawdę ważne, by dobrze zarządzać danymi w aplikacjach, zwłaszcza w większych projektach, gdzie jest masa obiektów i różne interakcje między nimi.

Pytanie 40

Aby włączyć kaskadowy arkusz stylów zapisany w oddzielnym pliku, należy zastosować poniższy fragment kodu HTML

A. <div id="styl.css" relation="css" />
B. <meta charset="styl.css" />
C. <link rel="stylesheet" type="text/css" href= "styl.css" />
D. <option value="styl.css" type="text/css" />
Aby dołączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, poprawnie używamy tagu <link>. Ten tag pozwala na powiązanie zewnętrznego pliku CSS z dokumentem HTML, co jest kluczowe dla zarządzania stylem witryny internetowej. W atrybucie 'rel' określamy, że jest to arkusz stylów ('stylesheet'), a w atrybucie 'type' informujemy przeglądarkę, że plik jest typu 'text/css'. Atrybut 'href' wskazuje lokalizację pliku CSS. To podejście jest zgodne z zaleceniami W3C, co zapewnia kompatybilność z różnymi przeglądarkami. Przykładowe użycie wygląda następująco: <link rel='stylesheet' type='text/css' href='styl.css'>. Dzięki temu możemy oddzielić strukturę dokumentu HTML od jego stylizacji, co ułatwia zarządzanie kodem oraz poprawia efektywność ładowania stron. Praktyczne zastosowanie tego rozwiązania pozwala na łatwe wprowadzanie globalnych zmian w stylach, co jest szczególnie przydatne w dużych projektach, gdzie wiele stron korzysta z tego samego pliku CSS.