Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 21 czerwca 2026 10:45
  • Data zakończenia: 21 czerwca 2026 11:05

Egzamin niezdany

Wynik: 10/40 punktów (25,0%)

Wymagane minimum: 20 punktów (50%)

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

Na zaprezentowanej tabeli dotyczącej samochodów wykonano zapytanie SQL SELECT

SELECT model FROM samochody WHERE rocznik=2016;
Jakie wartości zostaną zwrócone w wyniku tego zapytania?
Ilustracja do pytania
A. Punto, Corsa, Astra, Corolla, Yaris
B. Fiat, Opel, Toyota
C. Czerwony, grafitowy
D. Punto, Corsa, Corolla
Pierwsza odpowiedź Fiat, Opel, Toyota jest nieprawidłowa, bo zapytanie SQL wybiera kolumnę model, a nie marka. Marka to producent samochodu, więc to trochę mylące, ale w SQL to ważna różnica. Druga odpowiedź Czerwony, grafitowy też jest zła, bo odnosi się do koloru aut, a nie modeli. Zapytanie SQL SELECT model FROM samochody WHERE rocznik=2016 jasno pokazuje, że chodzi o modele, a nie kolory. To częsty błąd, gdy nie patrzy się na kolumnę wybraną w zapytaniu. Czwarta opcja Punto, Corsa, Astra, Corolla, Yaris ma kilka modeli, które są w porządku, ale też dodatkowe, które nie pasują do rocznika 2016. To typowe, gdy wyciąga się za daleko i zakłada więcej niż mówi zapytanie. Umiejętność dokładnego rozumienia wyników zapytań SQL jest ważna, zwłaszcza gdy analizujesz dane, bo błędna interpretacja prowadzi do złych wniosków. Dobrze jest zwracać uwagę na szczegóły, takie jak kolumny i warunki w zapytaniu, bo to kluczowe w pracy z bazami danych. Fajnie jest zrozumieć każdy element składni SQL, żeby unikać błędnych założeń i mieć pewne dane do analizy, co jest ważne w dobrym zarządzaniu danymi.

Pytanie 2

W skrypcie JavaScript operatory: ||, && zaliczane są do kategorii operatorów

A. arytmetycznych
B. logicznymi
C. bitowych
D. przypisania
Odpowiedź 'logicznym' jest poprawna, ponieważ w języku JavaScript operatory || (logiczne OR) i && (logiczne AND) są klasyfikowane jako operatory logiczne. Te operatory służą do wykonywania operacji na wartościach logicznych (prawda/fałsz). Użycie operatora && powoduje, że wyrażenie zwraca prawdę tylko wtedy, gdy oba operandy są prawdziwe. Z kolei operator || zwraca prawdę, jeśli przynajmniej jeden operand jest prawdziwy. Przykładem ich zastosowania może być warunkowe wykonywanie kodu, np. w instrukcjach if, gdzie możemy sprawdzić, czy spełnione są określone warunki. Standardowe praktyki programistyczne zalecają używanie tych operatorów do efektywnego zarządzania logiką programów, co zwiększa ich czytelność i umożliwia łatwiejszą konserwację. Ważne jest także zrozumienie, że operatory te wykonują krótką ocenę (short-circuit evaluation), co oznacza, że ​​nie obliczają drugiego operandu, jeśli pierwszy już decyduje o wyniku. Dzięki tym właściwościom, operatory logiczne są kluczowym elementem wszelkich aplikacji programistycznych, które potrzebują podejmować decyzje w oparciu o różne warunki.

Pytanie 3

Jakie polecenie pozwala na zwiększenie wartości o jeden w kolumnie RokStudiów w tabeli Studenci dla uczniów, którzy są na roku 1÷4?

A. UPDATE Studenci SET RokStudiow = RokStudiow+1 WHERE RokStudiow < 5
B. UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5
C. UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5
D. UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5
Odpowiedzi, które nie są zgodne z właściwą składnią i logiką SQL, prowadzą do nieprawidłowych aktualizacji w bazie danych. Pierwsze podejście, 'UPDATE Studenci, RokStudiow+1 WHERE RokStudiow < 5;', jest błędne, ponieważ nie wykorzystuje poprawnej struktury polecenia UPDATE. W SQL należy określić kolumnę, która ma być zaktualizowana, a nie używać dodatkowego wyrażenia w sekcji FROM. Drugie podejście, 'UPDATE Studenci SET RokStudiow WHERE RokStudiow < 5;', jest również niekompletne, ponieważ brakuje w nim informacji o nowej wartości, którą należy przypisać. W tym przypadku, SET wymaga zarówno kolumny, jak i nowej wartości. Z kolei trzecia odpowiedź, 'UPDATE RokStudiow SET RokStudiow++ WHERE RokStudiow < 5;', nie jest zgodna z składnią SQL, jako że operator '++' nie jest uznawany w standardzie SQL. Błędy te często wynikają z niewłaściwego zrozumienia, jak działa aktualizacja danych w SQL, co może prowadzić do niepoprawnych lub nieefektywnych zapytań. Kluczowym elementem jest znajomość standardów SQL i praktyczne umiejętności ich stosowania w codziennych operacjach zarządzania danymi.

Pytanie 4

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. sesjami
B. formularzami
C. bazami danych
D. ciasteczkami
Kod PHP obsługujący formularz często bywa mylony z innymi procesami ze względu na podobieństwo składniowe oraz zastosowanie tych samych superglobalnych tablic. Jednakże w przykładzie przedstawionym w pytaniu użycie $_POST jednoznacznie wskazuje na interakcję z danymi przesyłanymi z formularza. Kod nie dotyczy ciasteczek, które używają tablicy $_COOKIE do operacji związanych z przechowywaniem małych ilości danych w przeglądarce klienta. Również nie obejmuje zarządzania sesjami, które w PHP realizowane jest poprzez tablicę $_SESSION oraz funkcje takie jak session_start(), służące do przechowywania danych użytkownika pomiędzy różnymi żądaniami. Bazy danych natomiast operują na zupełnie innych mechanizmach i wymagają specyficznych funkcji oraz rozszerzeń, jak MySQLi czy PDO, do interakcji z systemami zarządzania bazami danych. Częstym błędem jest przypisywanie funkcji walidacyjnych formularzy również do innych komponentów aplikacji, co może prowadzić do mylnych wniosków na temat ich roli i zastosowania. Zrozumienie różnic między tymi elementami jest kluczowe dla poprawnego projektowania i implementacji aplikacji webowych, zapewniając ich bezpieczeństwo i poprawne działanie. Kod PHP powinien być pisany z uwzględnieniem zasad separacji logiki aplikacyjnej, aby każda część systemu była odpowiedzialna za specyficzne zadania, co ułatwia utrzymanie i rozwój aplikacji.

Pytanie 5

W wyniku wykonania przedstawionego poniżej kodu JavaScript zmienna x ma wartość:

<script>
    var x = 10;
    x++;
    console.log(x);
</script>
A. 10 i zostanie wypisana w dokumencie HTML.
B. 11 i zostanie wypisana w oknie pop-up.
C. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
D. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript:

<script>
var x = 10;
x++;
console.log(x);
</script>

Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu.

Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego.

Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 6

Jaki wynik przyjmie zmienna a po zakończeniu pętli w podanym fragmencie kodu PHP?

$i = 10; $a = 0;
while ($i)
{
    $a = $a + 2;
    $i--;
}
A. 0
B. 20
C. 2
D. 10
Błędem w rozumieniu tego fragmentu kodu może być założenie, że pętla while zakończy się wcześniej niż po 10 iteracjach. Można błędnie przypuszczać, że zmienna a przyjmuje inną wartość, na przykład 10, 0 lub 2, jeśli nie zrozumiemy poprawnie mechanizmu działania pętli while i operacji wewnątrz niej. Zmienna i początkowo wynosi 10 i jest dekrementowana o 1 w każdej iteracji, co oznacza, że pętla zakończy się dopiero, gdy i osiągnie wartość 0. W trakcie każdej iteracji do zmiennej a dodawana jest wartość 2, co prowadzi do jej końcowej wartości 20 po 10 iteracjach. Błędne odpowiedzi mogą wynikać z niedostatecznego zrozumienia, jak działa dekrementacja zmiennej sterującej pętlą lub jak wpływa to na liczbę wykonanych iteracji. Zrozumienie poprawnego przepływu kontroli w pętli while jest kluczowe w wielu sytuacjach programowania, aby przewidzieć wynik działania kodu. Pętla while jest fundamentalnym mechanizmem sterowania przepływem w wielu językach programowania, dlatego tak ważne jest, by dobrze rozumieć jej działanie i unikać błędnych wniosków, które mogą prowadzić do nieprawidłowego działania programu.

Pytanie 7

Aby pobrać dane z formularza HTML tak, aby nie były widoczne w adresie URL, należy zastosować:

A. metodę GET
B. metodę POST
C. wyłącznie funkcje z biblioteki PDO
D. same kontrolki, bez formularza
Kluczem jest tu sposób, w jaki formularz wysyła dane. Metoda GET dopisuje je bezpośrednio do adresu URL w postaci par nazwa=wartość, więc są od razu widoczne w pasku adresu, w historii i logach serwera - dokładnie tego mieliśmy uniknąć. Wybranie samych kontrolek bez formularza w ogóle nie zadziała: to formularz odpowiada za zebranie i wysłanie danych na serwer. Biblioteka PDO dotyczy zupełnie innego etapu - służy do komunikacji PHP z bazą danych, a nie do decydowania, jak dane opuszczają przeglądarkę. Aby ukryć je przed adresem URL, formularz musi korzystać z metody POST, która przenosi dane w treści żądania.

Pytanie 8

Tabela naprawy ma kolumny klient i czyNaprawione. Jak usunąć rekordy, w których czyNaprawione jest prawdą?

A.
DELETE FROM naprawy WHERE czyNaprawione = TRUE;
B.
DELETE FROM naprawy;
C.
DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
D.
DELETE naprawy WHERE czyNaprawione = TRUE;
Usuwanie wierszy spełniających warunek ma składnię DELETE FROM <tabela> WHERE <warunek>. Zapis DELETE FROM naprawy WHERE czyNaprawione = TRUE; skasuje tylko rekordy z prawdziwą wartością pola. Dlatego poprawne jest DELETE FROM naprawy WHERE czyNaprawione = TRUE;.

Pytanie 9

W dokumentacji CMS WordPress znajduje się zdanie:
"Enable comments for this post"
Co oznacza to zdanie?

A. Włącz formatowanie wpisu.
B. Włącz możliwość dodawania komentarzy do wpisu.
C. Włącz edycję wpisu.
D. Włącz publikację wpisu.
Formułka „Enable comments for this post” w WordPressie bywa myląca dla osób, które dopiero zaczynają przygodę z CMS-ami, ale technicznie rzecz biorąc nie ma ona żadnego związku z edycją, publikacją czy formatowaniem wpisu. To jest ustawienie dotyczące wyłącznie systemu komentarzy, czyli funkcji, która pozwala użytkownikom zostawiać swoje opinie i pytania pod danym postem. Mylenie tego z edycją treści wynika często z tego, że wszystko znajduje się w jednym panelu edycji wpisu i można odnieść wrażenie, że każdy przełącznik dotyczy samej zawartości. Edycja wpisu w WordPressie odbywa się jednak w edytorze treści (blokowym albo klasycznym), gdzie zmieniasz tytuł, akapity, zdjęcia, listy, osadzenia multimediów itd. Przełącznik komentarzy tylko decyduje, czy obok tej treści będzie działał mechanizm dyskusji. Podobnie błędne jest łączenie tego komunikatu z publikacją wpisu. Publikację kontroluje osobny przycisk „Opublikuj” lub „Zaktualizuj” oraz ustawienia statusu (szkic, oczekuje na przegląd, opublikowany). Możesz mieć wpis opublikowany, ale z wyłączonymi komentarzami, albo odwrotnie: przygotowywać szkic z już zaznaczoną opcją, że po publikacji komentarze będą dostępne. To pokazuje, że są to zupełnie różne mechanizmy. Równie mylące bywa kojarzenie tego z formatowaniem. Formatowanie to sprawy typu nagłówki H1–H6, pogrubienie, kursywa, wyrównanie tekstu, wstawianie list numerowanych, bloków cytatu czy elementów multimedialnych. Tego nie kontroluje żaden przełącznik od komentarzy, tylko sam edytor treści i ewentualnie motyw graficzny. W dobrych praktykach pracy z CMS-ami warto rozróżniać: ustawienia treści (co jest w poście), ustawienia prezentacji (jak to wygląda) i ustawienia interakcji (co użytkownik może zrobić: komentować, udostępniać, oceniać). „Enable comments for this post” należy właśnie do tej trzeciej grupy – steruje możliwością komentowania, a nie samą treścią czy jej wyglądem.

Pytanie 10

W języku HTML zapisano formularz. Który z efektów działania poniższego kodu zostanie wyświetlony przez przeglądarkę, zakładając, że w pierwsze pole użytkownik wpisał wartość "Przykładowy tekst"?

<form>
    <textarea rows="3" cols="30"></textarea><br>
    <input type="checkbox"> Opcja1<br>
    <input type="checkbox"> Opcja2
</form>
Ilustracja do pytania
A. Efekt 4.
B. Efekt 3.
C. Efekt 1.
D. Efekt 2.
Niestety, podana przez Ciebie odpowiedź nie jest prawidłowa. Wybrałeś 'Efekt 1', 'Efekt 3' lub 'Efekt 4', które nie są poprawnym odzwierciedleniem działania formularza HTML w opisanym scenariuszu. Formularz zawiera pole tekstowe i dwa pola typu checkbox. Po wpisaniu do pola tekstowego wartości 'Przykładowy tekst' i wyświetleniu formularza w przeglądarce, powinniśmy zobaczyć ten tekst w polu tekstowym oraz dwa pola wyboru typu checkbox poniżej z etykietami 'Opcja1' i 'Opcja2'. Tylko Efekt 2 pokazuje taki układ. Możliwe, że błąd wynika z niezrozumienia struktury formularzy HTML lub z błędnego założenia o tym, jakie elementy są wyświetlane na podstawie danego kodu. Przy projektowaniu formularzy istotne jest zrozumienie, jak różne typy pól wpływają na wygląd i funkcjonalność formularza.

Pytanie 11

Wskaż kod równoważny do przedstawionego kodu zapisanego językiem PHP.

$suma = 0;
for ($x = 10; $x <= 20; $x++) {
    $suma += $x;
}
Kod 1.
$suma = 0;
while ($x <= 20) {
    $suma += $x;
    $x++;
}
Kod 2.
$suma = 0;
$x = 10;
while ($x <= 20) {
    $suma += $x;
    $x++;
}
Kod 3.
$suma = 0;
$x = 1;
while ($x <= 10) {
    $suma += $x;
    $x++;
}
Kod 4.
$suma = 0;
$x = 10;
while ($x <= 20) {
    $suma = $x;
    $x++;
}
A. Kod 3.
B. Kod 1.
C. Kod 2.
D. Kod 4.
Wybrana przez Ciebie odpowiedź nie jest prawidłowa. Zostały tutaj przedstawione kody, które nie są równoważne do kodu PHP. Na przykład, może pojawić się kod, który używa innej pętli, ale nie inicjalizuje wartości $x na 10 lub nie inkrementuje jej aż do osiągnięcia wartości 20. Inny kod może nawet nie używać pętli, co jest fundamentalnym błędem, ponieważ pętle są niezbędne do wykonania określonej liczby operacji bez konieczności pisania dużej ilości kodu. Ważne jest, aby zwrócić uwagę na detale takie jak warunki pętli, sposoby inkrementacji, a także na to, czy kod faktycznie używa pętli. Pamiętaj, że wybór odpowiedniego rodzaju pętli jest kluczowy w zależności od problemu, który próbujesz rozwiązać. Pętle for są zazwyczaj używane, gdy z góry wiemy ile razy pętla ma być wykonana, a pętle while są używane, gdy nie wiemy ile razy pętla ma być wykonana, ale znamy warunek jej zakończenia. To jest podstawowa wiedza, którą każdy programista powinien posiadać, więc jeśli masz z tym problemy, warto poświęcić więcej czasu na zrozumienie pętli.

Pytanie 12

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

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

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

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

Pytanie 13

Zawarta baza danych składa się z trzech tabel oraz dwóch relacji. Aby uzyskać informacje o wszystkich lekarzach przypisanych do wybranego pacjenta, konieczne jest porównanie kluczy

Ilustracja do pytania
A. Lekarze.id = Recepty.id
B. Lekarze.id = Pacjenci.Lekarze_id
C. Lekarze.id = Pacjenci.id
D. Lekarze.id = Pacjenci.Recepty_id
Odpowiedź Lekarze.id = Pacjenci.Lekarze_id jest poprawna, ponieważ w bazach danych relacyjne połączenie między tabelami jest realizowane przez klucze obce. Tabela Pacjenci zawiera kolumnę Lekarze_id, która jest kluczem obcym odnoszącym się do kolumny id w tabeli Lekarze. Dzięki temu połączeniu możemy określić, który lekarz jest przypisany do danego pacjenta. W praktyce oznacza to, że możemy wykonywać zapytania SQL, które łączą te tabele i wyświetlają dane wszystkich lekarzy przypisanych do konkretnego pacjenta. Przykładowe zapytanie SELECT może wyglądać tak SELECT Lekarze.imie Lekarze.nazwisko FROM Pacjenci INNER JOIN Lekarze ON Pacjenci.Lekarze_id = Lekarze.id WHERE Pacjenci.id = [id_pacjenta]. Takie podejście jest zgodne z dobrymi praktykami projektowania baz danych zgodnie z zasadami normalizacji co zwiększa spójność i integralność danych. Poprawne użycie kluczy obcych jest fundamentalne w kontekście zarządzania relacjami między danymi oraz umożliwia przeprowadzanie bardziej złożonych analiz danych z różnych tabel w sposób wydajny i bezpieczny.

Pytanie 14

W tabeli o nazwie pracownicy zdefiniowano klucz główny w typie INTEGER z atrybutami NOT NULL oraz AUTO_INCREMENT. Dodatkowo zdefiniowane zostały pola imie oraz nazwisko. W przypadku wykonania podanej kwerendy SQL, która dodaje dane i pomija pole klucza, w bazie danych MySQL nastąpi

INSERT INTO pracownicy (imie, nazwisko)
VALUES ('Anna', 'Nowak');
A. zignorowanie polecenia, tabela nie ulegnie zmianie
B. błąd związany z niewłaściwą liczbą pól
C. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
D. dodanie rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
W kontekście baz danych MySQL wprowadzenie rekordu z pominięciem pola klucza głównego z atrybutem AUTO_INCREMENT nie prowadzi do błędu ani pozostawienia pola z wartością NULL, ponieważ mechanizm AUTO_INCREMENT automatycznie przypisuje kolejną wartość liczbową. Niepoprawne jest myślenie, że pole klucza mogłoby pozostać puste lub z wartością NULL, gdyż oznaczałoby to naruszenie zasady unikalności, co jest sprzeczne z ideą klucza głównego, który musi mieć unikalną wartość. Kolejną błędną koncepcją jest przekonanie, że polecenie SQL mogłoby zostać zignorowane pozostawiając tabelę bez zmian. Taka sytuacja mogłaby mieć miejsce jedynie w przypadku wystąpienia błędu składniowego lub naruszenia spójności danych, ale nie w tym wypadku. Często spotykanym błędem jest też wyobrażenie, że wystąpi błąd nieprawidłowej liczby pól, co miałoby miejsce, gdyby liczba wymienionych pól w instrukcji INSERT nie zgadzała się z liczbą wartości, które chcemy wprowadzić. Prawidłowe zrozumienie mechanizmu AUTO_INCREMENT jest kluczowe, by unikać tych typowych błędów i w pełni korzystać z możliwości, jakie daje ten mechanizm w kontekście automatyzacji i ułatwienia zarządzania kluczami głównymi w bazach danych.

Pytanie 15

Jaką wartość zobaczymy po wykonaniu poniższego kodu JavaScript?

<script>
document.write(Math.round(4.51)+Math.pow(2,3));
</script>
A. 11
B. 13
C. 12
D. 14
W przedstawionym kodzie JavaScript użyto dwóch metod wbudowanych obiektu Math Math.round i Math.pow. Math.round zaokrągla wartość do najbliższej liczby całkowitej. W przypadku liczby 4.51 zostanie to zaokrąglone do 5 ponieważ 0.51 jest bliżej 1 niż 0. Math.pow wykonuje potęgowanie czyli podnosi liczbę do określonej potęgi. W przypadku Math.pow(2 3) mamy do czynienia z potęgowaniem 2 do potęgi 3 co jest równe 8 ponieważ 2 * 2 * 2 = 8. Następnie te dwie wartości są dodawane do siebie co daje 5 + 8 = 13. Wartość 13 jest wyświetlana na stronie za pomocą document.write co jest prostym sposobem na wypisywanie wyników w kontekście przeglądarki. W praktyce jednak korzystanie z document.write jest odradzane na rzecz bardziej nowoczesnych rozwiązań jak manipulacja DOM czy używanie innerHTML. Dzięki tym metodom możemy skutecznie zarządzać i wyświetlać dane na stronach internetowych co jest kluczowe w nowoczesnym tworzeniu stron WWW. Zrozumienie działania takich funkcji wbudowanych pozwala na efektywne rozwiązywanie problemów związanych z obliczeniami w języku JavaScript co jest bardzo przydatne w pracy programisty.

Pytanie 16

Który zapis wyświetli obraz kotek.jpg z tekstem alternatywnym „obrazek kotka”?

A.
<img src="/kotek.jpg" title="obrazek kotka">
B.
<img href="/kotek.jpg" title="obrazek kotka">
C.
<img src="/kotek.jpg" alt="obrazek kotka">
D.
<img href="/kotek.jpg" alt="obrazek kotka">
<img> używa atrybutu src (nie href, który należy do linków). Tekst alternatywny to alt, a nie title (to tylko dymek podpowiedzi). Poprawny jest <img src="/kotek.jpg" alt="obrazek kotka">.

Pytanie 17

Debugger to narzędzie wykorzystywane do

A. optymalizacji pamięci zajmowanej przez aplikację
B. identyfikacji błędów w kodzie programu
C. analizy właściwości programu
D. oceny szybkości działania programu
Debugger to narzędzie, które odgrywa kluczową rolę w procesie tworzenia oprogramowania, umożliwiając programistom identyfikację i naprawę błędów w kodzie. Główną funkcją debuggera jest pozwolenie na analizę działania programu na poziomie linii kodu, co umożliwia użytkownikowi śledzenie wykonania programu, monitorowanie wartości zmiennych oraz sprawdzanie logiki warunkowej. Użycie debuggera pozwala na wykrywanie błędów w czasie rzeczywistym, co jest niezwykle istotne, zwłaszcza w przypadku aplikacji, które muszą działać na różnych platformach i z różnymi danymi wejściowymi. Przykładem może być programowanie w języku Python, gdzie debugger umożliwia krokowe przechodzenie przez kod, co pomaga zrozumieć proces wykonania i zidentyfikować miejsca, gdzie występują nieprawidłowości. Dobrym zwyczajem jest korzystanie z debuggera na wczesnych etapach tworzenia oprogramowania, aby zminimalizować późniejsze problemy w fazie testowania i wdrażania.

Pytanie 18

Kiedy zestawi się relacją kluczy głównych dwie tabele, uzyskuje się relację o typie

A. jeden do jednego
B. wiele do jednego
C. jeden do wielu
D. wiele do wielu
Zrozumienie relacji między tabelami w bazach danych często prowadzi do nieporozumień związanych z typami połączeń. Odpowiedzi sugerujące relacje wiele do wielu, wiele do jednego czy nawet jeden do wielu są niepoprawne w kontekście tego pytania. Relacja wiele do wielu zakłada, że wiele rekordów z jednej tabeli może być powiązanych z wieloma rekordami z drugiej tabeli. Przykładem może być sytuacja, w której studenci zapisani są na wiele kursów, a kursy mogą mieć wielu studentów. Tego typu relacje wymagają dodatkowej tabeli łączącej, co komplikuje strukturę bazy. Relacja wiele do jednego sugeruje, że wiele rekordów w jednej tabeli może odnosić się do jednego rekordu w drugiej tabeli, co nie odpowiada na pytanie o połączenie z relacjami kluczy głównych. Natomiast relacja jeden do wielu oznacza, że jeden rekord w jednej tabeli może mieć wiele powiązanych rekordów w drugiej tabeli, co również nie jest zgodne z definicją relacji jeden do jednego. Często błędne interpretacje wynikają z niepełnego zrozumienia zasad relacyjnej teorii baz danych, co może prowadzić do nieefektywnego projektowania baz danych i problemów z integralnością danych. Kluczowe jest zrozumienie, że każda relacja powinna być definiowana w kontekście jej celu oraz struktury danych, co jest fundamentalne w dobrych praktykach w zakresie projektowania baz danych.

Pytanie 19

Którego polecenia użyć, aby włączyć do skryptu zawartość pliku egzamin.php z kodem PHP?

A.
fgets("egzamin.php");
B.
getfile("egzamin.php");
C.
include("egzamin.php");
D.
fopen("egzamin.php");
Aby włączyć do skryptu zawartość innego pliku z kodem PHP, używa się include("egzamin.php"); - PHP wykona dołączony kod w miejscu wywołania. Dlatego poprawne jest include("egzamin.php");.

Pytanie 20

Zademonstrowano fragment kodu JavaScript. Po jego uruchomieniu zmienna str2 otrzyma wartość.

var str1 = "JavaScript";
var str2 = str1.substring(2, 6);
A. vaScri
B. avaS
C. vaSc
D. avaScr
Pierwsza z niepoprawnych odpowiedzi 'avaS' sugeruje, że odczytujemy znaki zaczynając od drugiego indeksu, jednak końcowy indeks 6 zmienia sposób odczytu. Możliwe, że ktoś mógł pomylić kolejność lub sposób, w jaki substring działa, co jest częstym błędem w zrozumieniu tej metody. Druga odpowiedź 'vaScri' wydaje się sugerować, że ktoś zrozumiał, jak działa substring, ale błędnie wyznaczył końcowy indeks, co prowadzi do wyodrębnienia znacznie większej ilości znaków. W rzeczywistości, aby uzyskać 'vaScri', należałoby użyć indeksów 2 i 8, co również jest nieprawidłowe. Ostatnia niepoprawna odpowiedź 'avaScr' wskazuje na błędne wyznaczenie pierwszego znaku. Użytkownik mógł pomylić interpretację indeksu zaczynając od 0, co w JavaScript jest istotne. W kontekście całego łańcucha, odpowiedzi te pokazują, jak ważne jest zrozumienie indeksowania i prawidłowego użycia metod do manipulacji tekstem, aby unikać błędów w kodzie. Rozwój umiejętności w pracy z łańcuchami tekstowymi jest kluczowy dla efektywnego programowania w JavaScript.

Pytanie 21

Która dyrektywa w pliku php.ini decyduje o WYŚWIETLANIU komunikatów o błędach na stronie?

A.
error_log
B.
log_errors
C.
display_errors
D.
max_execution_time
Pozostałe dyrektywy dotyczą innych aspektów. log_errors włącza zapisywanie błędów do dziennika, ale nie pokazuje ich użytkownikowi na stronie. error_log jedynie wskazuje plik, do którego log trafia - również nie steruje wyświetlaniem. max_execution_time ogranicza maksymalny czas wykonywania skryptu i z obsługą komunikatów o błędach nie ma związku. O pokazywaniu błędów w wyniku skryptu decyduje display_errors, dlatego to ona jest poprawna.

Pytanie 22

Która z poniższych instrukcji jest równoważna z poleceniem switch w języku PHP?

switch ($liczba) {
    case 10:
    case 20: $liczba++; break;
    default: $liczba = 0;
}

Instrukcja 1.
if ($liczba==10)
    $liczba++;
else
    $liczba = 0;

Instrukcja 2.
if ($liczba==10 or $liczba==20)
    $liczba++;
else
    $liczba = 0;

Instrukcja 3.
if ($liczba==10 or $liczba==20)
    $liczba++;

Instrukcja 4.
if ($liczba==10 and $liczba==20)
    $liczba++;
else
    $liczba = 0;
A. Polecenie 1
B. Polecenie 3
C. Polecenie 2
D. Polecenie 4
Instrukcja switch w języku PHP pozwala na wykonywanie różnych bloków kodu w zależności od wartości wyrażenia. W przykładzie, instrukcja switch sprawdza zmienną $liczba. Jeśli $liczba wynosi 10 lub 20, zostaje zwiększona o 1, natomiast w każdym innym przypadku przypisana jest wartość 0. Instrukcja 2 jest równoważna, ponieważ używa operatora or, co oznacza, że warunek zostanie spełniony, jeśli $liczba wynosi 10 lub 20, co dokładnie odwzorowuje logikę switch. Kluczowe jest zrozumienie, że operator or jest zgodny z wymaganiami logicznymi dla tego problemu, umożliwiając zwiększenie wartości zmiennej w obu przypadkach. Takie podejście jest zgodne z dobrymi praktykami programistycznymi, pozwalając na przejrzystość i efektywność kodu. Zrozumienie różnicy między operatorami and, or oraz or pozwala na bardziej elastyczne i zrozumiałe konstrukcje logiczne w programowaniu komercyjnym. Praktyka ta jest szczególnie ważna w optymalizowaniu warunkowych bloków kodu w dużych projektach.

Pytanie 23

Jak nazywa się proces, w trakcie którego identyfikuje się oraz eliminuje błędy w kodzie źródłowym aplikacji?

A. Normalizacja
B. standaryzacja
C. Debugowanie
D. Kompilacja
Kompilowanie to proces, który przekształca kod źródłowy napisany w języku wysokiego poziomu w kod maszynowy, który jest zrozumiały dla komputera. W trakcie kompilacji mogą wystąpić błędy składniowe, jednak kompilacja nie zajmuje się usuwaniem błędów logicznych, które mogą pojawić się w działającym programie. Stąd też nie jest to tożsame z procesem debugowania, który koncentruje się na wykrywaniu oraz eliminacji błędów w kodzie już skompilowanym. Standaryzacja odnosi się do procesu ustalania norm i standardów dla określonych praktyk lub produktów, co ma na celu zapewnienie ich jakości i interoperacyjności, ale nie dotyczy bezpośrednio błędów w kodzie. Normalizacja z kolei jest terminem używanym w różnych kontekstach, ale w programowaniu odnosi się często do formatu danych lub struktury, co również nie ma bezpośredniego związku z procesem wykrywania i usuwania błędów. Wybierając niewłaściwe odpowiedzi, można popaść w pułapkę myślenia, które nie uwzględnia różnicy pomiędzy różnymi etapami tworzenia oprogramowania. Każdy z wymienionych procesów ma swoje unikalne funkcje i cel, które są istotne w kontekście inżynierii oprogramowania, ale tylko debugowanie koncentruje się na naprawie błędów w kodzie, co czyni je kluczowym elementem w utrzymaniu jakości produktów programistycznych.

Pytanie 24

O obiekcie przedstawionym w JavaScript można powiedzieć, że posiada

var obiekt1 = {
    x: 0,
    y: 0,
    wsp: function() { [...] }
}
A. trzema właściwościami
B. dwoma właściwościami oraz jedną metodą
C. dwoma metodami oraz jedną właściwością
D. trzema metodami
Analizując strukturę obiektów w języku JavaScript, często spotykamy się z terminami właściwości i metody. Właściwości to elementy obiektu przechowujące dane, natomiast metody to funkcje przypisane jako wartości właściwości, które pozwalają na wykonywanie operacji na obiekcie. Błędne zrozumienie tych pojęć może prowadzić do niepoprawnej interpretacji struktury obiektu. Jeśli zakładamy, że obiekt ma dwie metody i jedną właściwość, oznaczałoby to, że w obiekcie znajdziemy dwie funkcje i jeden element przechowujący dane, co nie odpowiada rzeczywistości przedstawionej na obrazku. Podobnie, stwierdzenie, że obiekt zawiera trzy właściwości, ignoruje obecność funkcji, która pełni rolę metody. Z kolei twierdzenie, że obiekt ma trzy metody, oznaczałoby całkowity brak właściwości przechowujących dane, co jest sprzeczne z danymi stanowymi obiektu. Takie nieporozumienia wynikają często z braku zrozumienia struktury i natury obiektów w języku JavaScript. Dla poprawnego programowania kluczowe jest rozróżnienie tych elementów i poprawne przypisywanie ich ról w obiekcie, co prowadzi do bardziej wydajnego i przejrzystego kodu. Dobre praktyki programistyczne zalecają dokładne analizowanie wymagań i struktury danych przy projektowaniu obiektów, co pozwala na uniknięcie takich błędów w przyszłości i poprawia jakość aplikacji.

Pytanie 25

Który z przedstawionych kodów HTML sformatuje tekst według wzoru?
(uwaga: słowo "stacji" jest zapisane większą czcionką niż reszta słów w tej linii)

Lokomotywa

Stoi na stacji lokomotywa ...

A.
<h1>Lokomotywa</h1>
<p>Stoi na <big>stacji lokomotywa ...</p>

B.
<h1>Lokomotywa</h1>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>

C.
<h1>Lokomotywa</p>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>

D.
<p><small>Lokomotywa</small></p>
<p>Stoi na <big>stacji<big> lokomotywa ...</p>
A. D.
B. B.
C. C.
D. A.
Brawo! Wybrałeś prawidłową odpowiedź, która jest kodem HTML formatującym słowo 'stacji' większą czcionką niż reszta tekstu. Wykorzystuje ona znacznik <big>, który jest wyjątkowo przydatny w sytuacjach, gdy chcemy podkreślić pewną część tekstu i sprawić, że będzie ona wyglądać na większą niż reszta. Jest to praktyka często stosowana na stronach internetowych, by przyciągnąć uwagę użytkownika do konkretnych informacji. Pamiętaj jednak, że znacznik <big> jest przestarzały i nie jest zalecany do stosowania w nowoczesnym kodowaniu HTML. Zamiast tego, w dzisiejszych czasach lepiej jest używać CSS do zmiany rozmiaru czcionki. Niemniej jednak, znajomość różnych znaczników HTML, w tym <big>, jest nadal ważna, zwłaszcza do zrozumienia i utrzymania starszych stron internetowych.

Pytanie 26

Który typ relacji wymaga utworzenia tabeli pośredniczącej, łączącej klucze główne obu tabel?

A.
n..1
B.
1..1
C.
n..n
D.
1..n
Pozostałe relacje nie potrzebują takiej tabeli. 1..1 i 1..n (a także n..1, czyli 1..n z drugiej strony) realizuje się kluczem obcym umieszczonym we właściwej tabeli. Tabela pośrednicząca jest konieczna wyłącznie dla n..n.

Pytanie 27

Której właściwości CSS użyć, aby określić KRÓJ (rodzaj) czcionki?

A.
font-size
B.
font-style
C.
font-family
D.
font-face
Pozostałe właściwości dotyczą czego innego. font-size ustawia ROZMIAR, font-style - styl (np. kursywę), a font-face nie jest właściwością (jest reguła @font-face do osadzania czcionek). Krój czcionki ustawia font-family.

Pytanie 28

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 wyrób id dla wszystkich tabel.
B. Według parametru nr id wyłącznie dla trzech tabel.
C. Według parametru wyrób Jd wyłącznie dla trzech tabel.
D. Według parametru nr 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 29

Która z poniższych opcji najlepiej opisuje przedstawioną definicję w JavaScript?

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. klasy
B. obiektu
C. tablicy
D. zbioru
Obiekt w JavaScript jest bardziej skomplikowaną strukturą niż tablica i służy do przechowywania danych w postaci par klucz-wartość. W przedstawionym przykładzie nie mamy par klucz-wartość a jedynie listę wartości co wyklucza definicję obiektu. Kolekcja w kontekście JavaScript nie jest specyficznym typem danych; odnosi się ogólnie do struktur danych które przechowują wiele elementów. Tablice mogą być częścią kolekcji ale kolekcje mogą obejmować też inne struktury jak mapy i zestawy dlatego definicja ta byłaby zbyt ogólna w tym przypadku. Klasa natomiast jest częścią paradygmatu obiektowego wprowadzonego w nowszych wersjach JavaScript do definiowania struktur danych i ich zachowań. Klasy nie są bezpośrednio powiązane z tablicami które służą do przechowywania danych w uporządkowany sposób. Typowe błędy przy interpretacji takich struktur wynikają zwykle z niezrozumienia różnic między obiektami tablicami i klasami. Tablice są używane przede wszystkim do przechowywania zbiorów danych w uporządkowanej formie podczas gdy obiekty są bardziej elastyczne w definiowaniu struktury danych a klasy służą do tworzenia złożonych struktur danych i logiki. Zrozumienie tych różnic jest kluczowe w efektywnym korzystaniu z języka JavaScript i pozwala na bardziej świadome podejmowanie decyzji dotyczących wyboru struktur danych odpowiednich do konkretnego problemu.

Pytanie 30

Kolumna, która pełni funkcję klucza głównego w tabeli, powinna

A. zawierać unikalne wartości
B. zawierać wartości liczbowe
C. posiadać ciągłą numerację
D. być innego rodzaju niż inne kolumny
To stwierdzenie, że klucz główny musi być ciągły albo tylko liczbowy, jest nie do końca trafne. Klucz główny nie musi być tylko liczbowy ani też nie musi mieć ciągłej numeracji. Na przykład można używać stringów jako kluczy głównych, takich jak numery ID czy kody produktów. No a jeżeli byśmy mieli ciągłą numerację, to mogą wystąpić problemy, szczególnie gdy usuwamy jakieś rekordy. To może prowadzić do braku unikalności. Poza tym, klucz główny niekoniecznie musi być innego typu niż reszta kolumn. Przykładowo, kolumna z tekstem też może być kluczem, o ile wartości są unikalne. W kontekście projektowania baz danych najważniejsze jest, żeby klucz główny był unikalny, a niekoniecznie jaki to typ czy format. Ludzie zajmujący się bazami danych powinni wiedzieć, że klucz główny powinno się wybierać w zależności od kontekstu aplikacji i wymagań danych, a nie na podstawie błędnych założeń.

Pytanie 31

Hermetyzacja to zasada programowania obiektowego, która mówi, że:

A. typy pól mogą zmieniać się dynamicznie w zależności od danych
B. klasy mogą mieć metody wirtualne implementowane w klasach pochodnych
C. pola i metody używane tylko wewnątrz klasy ogranicza się zasięgiem private lub protected
D. klasy i obiekty mogą współdzielić funkcjonalność
Pozostałe odpowiedzi opisują inne pojęcia obiektowe. Współdzielenie funkcjonalności między klasami to raczej dziedziczenie lub kompozycja, a nie ukrywanie szczegółów. Metody wirtualne implementowane w klasach pochodnych dotyczą polimorfizmu i dziedziczenia - pozwalają różnie realizować tę samą metodę w klasach potomnych. Dynamiczna zmiana typu pola w zależności od danych to cecha typowania dynamicznego języka, niezwiązana z zasadami OOP. Hermetyzacja polega na ograniczaniu dostępu do wewnętrznych pól i metod (private/protected), dlatego ta odpowiedź jest poprawna.

Pytanie 32

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

A. zmiany kroju pisma na pochylony
B. określenia formularza
C. określenia nagłówka w treści
D. wstawienia obrazka
Znaczniki HTML pełnią różne funkcje, a niektóre z dostępnych odpowiedzi dotyczą zastosowań, które są niezgodne z funkcją <i>. Umieszczenie obrazka w dokumencie HTML realizuje się za pomocą znacznika <img>, który pozwala na wstawienie grafiki i definiowanie jej atrybutów, takich jak src (źródło) czy alt (opis alternatywny). Użycie <i> do umieszczenia obrazka jest technicznie niepoprawne, gdyż znacznik ten nie ma takiej funkcji ani atrybutów. Z kolei definiowanie formularza w HTML ma miejsce za pomocą znacznika <form>, który jest fundamentalny dla tworzenia interaktywnych elementów na stronie, umożliwiających użytkownikom wprowadzanie danych. Znacznik <i> nie jest odpowiedni dla tych celów, ponieważ jego główną rolą jest stylizacja tekstu. Wreszcie, definiowanie nagłówka w dokumencie HTML realizuje się przy użyciu znaczników nagłówków, takich jak <h1>, <h2>, <h3>, które hierarchizują treść i nadają strukturę stronie. Znacznik <i> nie pełni tej funkcji, co sprawia, że wszystkie wymienione odpowiedzi są niepoprawne w kontekście ich przypisanych ról w HTML.

Pytanie 33

Jaki wynik pojawi się po wykonaniu zaprezentowanego kodu HTML?

Ilustracja do pytania
A. Odpowiedź A
B. Odpowiedź D
C. Odpowiedź C
D. Odpowiedź B
Odpowiedź D jest prawidłowa, ponieważ prezentowany kod HTML zawiera zagnieżdżone listy uporządkowane i nieuporządkowane. Zewnętrzna lista uporządkowana zaczyna się od numeru 1 i zawiera elementy li, gdzie drugi z nich zawiera w sobie listę nieuporządkowaną ul. Taka struktura jest zgodna ze standardami HTML i pozwala na efektywne prezentowanie hierarchii informacji. Co ważne, dodatkowy element ol z atrybutami type=A i start=4 generuje listę literową zaczynającą się od D, co jest wykorzystywane do tworzenia niestandardowych punktów startowych w listach uporządkowanych. Praktycznie, listy zagnieżdżone są używane do tworzenia bardziej złożonych struktur danych, jak instrukcje czy spisy treści. Korzystając z atrybutów type i start, możemy manipulować prezentacją list, co jest przydatne w rozwijających się serwisach internetowych. Zastosowanie atrybutu type z wartościami A, a, I itp., pozwala na zmianę stylu numerowania, co jest zgodne z dobrymi praktykami projektowania stron.

Pytanie 34

Czy przedstawione w języku CSS ustawienia czcionki będą dotyczyć dla

* {
    font-family: Tahoma;
    color: Teal;
}
?
A. całego dokumentu HTML, niezależnie od późniejszych reguł CSS
B. znaczników z klasą przypisaną równą *
C. całego dokumentu HTML, jako domyślne formatowanie dla wszystkich elementów strony
D. znaczników o id równym *
W przypadku pierwszej odpowiedzi, sugeruje ona, że klasa lub identyfikator oznaczony znakiem * odnosi się do formatowania, co jest niepoprawne. W CSS znaki * nie są stosowane do selektorów z identyfikatorem, gdyż identyfikatory muszą być unikalne i określone za pomocą #. Stąd, gdybyśmy mieli stylować elementy o określonym id, musielibyśmy użyć odpowiedniego identyfikatora, co wyklucza uniwersalne zastosowanie. Druga odpowiedź sugeruje, że formatowanie dotyczy elementów z przypisaną klasą *, co również nie jest prawdą. W CSS, klasy są oznaczane kropką, a nie znakiem *. Dlatego żaden element z taką klasą nie będzie objęty formatowaniem, ponieważ literalny znak * nie jest używany w kontekście klas. Trzecia odpowiedź myli pojęcia, sugerując, że formatowanie CSS ma zastosowanie do całego kodu HTML, co nie jest precyzyjne. Choć formatowanie zostanie zastosowane do wszystkich elementów, to jednak nie oznacza to, że cały kod HTML zostanie zmieniony. Kod HTML pozostaje niezmienny, a jedynie sposób prezentacji tych elementów w przeglądarce jest kształtowany przez CSS. Podsumowując, zrozumienie selektorów i ich zastosowania jest kluczowe dla poprawnego stylizowania stron internetowych. Wiele osób myli te pojęcia, co prowadzi do niepoprawnych konstrukcji w stylach CSS.

Pytanie 35

Które wyrażenie w C++ sprawdza, czy liczba jest TRZYCYFROWĄ wartością PARZYSTĄ?

A.
liczba % 2 == 0 && (liczba > 99 || liczba < 999)
B.
liczba % 2 == 0 && liczba > 99 && liczba < 999
C.
liczba % 2 == 0 || liczba > 99 || liczba < 999
D.
liczba % 2 == 0 || (liczba > 99 && liczba < 999)
Pozostałe zapisy źle łączą warunki. || wystarczyłoby spełnić jeden z nich, więc przeszłaby też liczba jednocyfrowa parzysta. Warunek „liczba > 99 || liczba < 999” jest prawdziwy dla niemal każdej liczby. Trzycyfrową parzystą opisuje liczba % 2 == 0 && liczba > 99 && liczba < 999.

Pytanie 36

W wyniku działania pętli zapisanej w języku PHP zostanie wypisany ciąg liczb:

 $liczba = 10;
while ($liczba < 50) {
    echo "$liczba ";
    $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45 50
B. 10 15 20 25 30 35 40 45
C. 0 5 10 15 20 25 30 35 40 45
D. 0 5 10 15 20 25 30 35 40 45 50
Wybrana odpowiedź nie jest poprawna. Może wynikać to z niepełnego zrozumienia, jak działa pętla while w języku PHP. Pętla while wykonuje kod, dopóki warunek jest prawdziwy. W tym przypadku, rozpoczyna się od wartości zmiennej 10, która jest zwiększana o 5 za każdą iteracją, ale tylko do momentu, kiedy osiągnie wartość mniejszą niż 50. Oznacza to, że ostatnią wydrukowaną liczbą jest 45, ponieważ przy następnej iteracji wartość zmiennej wynosiłaby 50 - wartość nie spełniającą warunku pętli. Błędne odpowiedzi sugerują błędną interpretację, jak to działa - zaburzony początek ciągu (powinien zaczynać się od 10, a nie 0) lub błędną końcówkę (50 nie jest wydrukowane, ponieważ jest to wartość już poza zakresem pętli). Ważne jest, aby dokładnie analizować i rozumieć warunki pętli i jej działanie.

Pytanie 37

Wskaż prawdziwe stwierdzenie dotyczące polecenia:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. Klauzula CHARACTER SET utf8 jest obowiązkowa.
B. Do tabeli nie można wprowadzać nazw ulic zawierających polskie znaki.
C. IF NOT EXISTS stosuje się opcjonalnie, aby upewnić się, że w bazie danych nie istnieje już taka tabela.
D. Rekordem tabeli nie może być '3 MAJA'.
Niepoprawne odpowiedzi pokazują kilka powszechnych błędów myślowych. Na przykład, stwierdzenie, że do tabeli nie można wprowadzać ulic zawierających polskie znaki, jest nieprawdziwe. W rzeczywistości, zastosowanie odpowiedniego kodowania, takiego jak utf8, umożliwia przechowywanie dowolnych znaków specjalnych w tabelach SQL, w tym polskich. To jest bardzo ważne, gdy pracujemy z danymi, które mogą zawierać różne zestawy znaków. Druga nieprawidłowa odpowiedź sugeruje, że klauzula CHARACTER SET utf8 jest obowiązkowa. Jest to również mylące, ponieważ chociaż jest to dobra praktyka, aby umożliwić przechowywanie znaków specjalnych, nie jest to wymagane przez standard SQL. Ostatnia nieprawidłowa odpowiedź sugeruje, że rekordem tabeli nie może być '3 MAJA'. To jest błędne, ponieważ typ danych VARCHAR(70) w SQL pozwala na przechowywanie dowolnych ciągów znaków, w tym dat i nazw. W przypadku wszystkich tych nieprawidłowych odpowiedzi, ważne jest, aby rozumieć podstawy zarządzania danymi i struktur tabeli w SQL.

Pytanie 38

Tabela przedmioty ma pola ocena i uczenID. Która kwerenda policzy ŚREDNIĄ ocen ucznia o ID 7?

A.
COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7;
B.
SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7;
C.
SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;
D.
AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;
Pozostałe zapytania są błędne lub liczą co innego. Składnia zaczyna się od SELECT, a funkcja musi obejmować kolumnę w nawiasie - zapisy „AVG SELECT...” i „COUNT SELECT...” są niepoprawne. COUNT(ocena) policzyłoby LICZBĘ ocen, a nie ich średnią. Średnią daje AVG(ocena).

Pytanie 39

Aby stworzyć warunek w zapytaniu wybierającym nazwiska wszystkich uczniów z klas początkowych (od pierwszej do trzeciej), można zastosować klauzulę

A. WHERE klasa BETWEEN 1 AND 3
B. WHERE klasa >= 1 OR klasa <= 3
C. WHERE klasa IN (1, 3)
D. WHERE klasa < 3
Zestawienie innych odpowiedzi w kontekście tego zapytania ujawnia typowe nieporozumienia dotyczące logiki operacji SQL. Klauzula "WHERE klasa < 3" jest nieprawidłowa, ponieważ obejmuje jedynie klasy 1 i 2, co oznacza, że nie uwzględnia uczniów z klasy 3, a więc nie spełnia wymagań pytania. Również użycie klauzuli "WHERE klasa IN (1, 3)" jest mylące, ponieważ wybiera tylko uczniów z klasy 1 i 3, pomijając klasę 2, co jest sprzeczne z definicją klas nauczania początkowego. Kolejna odpowiedź, "WHERE klasa >= 1 OR klasa <= 3", generuje dodatkowe zamieszanie, ponieważ jest logicznie błędna; w praktyce ten warunek zawsze będzie prawdziwy dla wszystkich klas, ponieważ każda klasa będzie spełniać przynajmniej jeden z tych warunków, co prowadzi do zwrócenia wszystkich uczniów, a nie tylko tych z nauczania początkowego. Takie nieprawidłowe użycie operatorów może prowadzić do nieefektywnych zapytań oraz zwiększonego obciążenia bazy danych, a także do niezamierzonych wyników. W przypadku pracy z bazami danych kluczowe jest zrozumienie, jak różne klauzule wpływają na zestaw danych i jakie mogą przynieść konsekwencje w kontekście wyników, co często wymaga starannej analizy oraz testowania zapytań przed ich wdrożeniem.

Pytanie 40

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

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