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: 27 kwietnia 2026 14:14
  • Data zakończenia: 27 kwietnia 2026 14:33

Egzamin niezdany

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

Celem testów wydajnościowych jest ocena

A. ciągu zdarzeń, w którym prawdopodobieństwo danego zdarzenia zależy tylko od wyniku zdarzenia wcześniejszego
B. zdolności programu do funkcjonowania w sytuacjach, gdy system działa niepoprawnie
C. zdolności programu do funkcjonowania w sytuacjach, gdy sprzęt działa niepoprawnie
D. stopnia, w jakim system lub moduł spełnia wymagania dotyczące wydajności
Analizując pozostałe odpowiedzi, można zauważyć, że żadna z nich nie odnosi się bezpośrednio do istoty testów wydajnościowych. Pierwsza z nich sugeruje, że testy te mają na celu sprawdzenie zdolności oprogramowania do działania w warunkach wadliwej pracy sprzętu. Chociaż testowanie pod kątem awarii sprzętowych jest istotnym elementem inżynierii oprogramowania, to nie jest to kluczowy aspekt testów wydajnościowych. Testy wydajnościowe koncentrują się na ocenie wydajności, a nie na sprawdzaniu reakcji systemu na uszkodzenia sprzętu. Druga odpowiedź dotyczy zdolności oprogramowania do działania w warunkach wadliwej pracy systemu, co także jest ważnym zagadnieniem w kontekście testowania, lecz nie jest to celem testów wydajnościowych. Testowanie odporności i niezawodności systemu jest częścią testowania funkcjonalnego, a nie wydajnościowego. Z kolei ostatnia z propozycji odnosi się do analizy ciągu zdarzeń, w którym prawdopodobieństwo każdego zdarzenia zależy jedynie od wyniku poprzedniego. To zagadnienie dotyczy bardziej teorii prawdopodobieństwa i statystyki, a nie bezpośrednio wydajności oprogramowania. Testy wydajnościowe skupiają się na mierzeniu i optymalizacji parametrów, a nie na analizie statystycznej zdarzeń w kontekście ich prawdopodobieństwa.

Pytanie 2

W bazie danych znajduje się tabela pracownicy z kolumnami: id, imie, nazwisko, pensja. W nowym roku zdecydowano o podwyżce pensji dla wszystkich pracowników o 100 zł. Ta aktualizacja w bazie danych powinna mieć formę

A. UPDATE pracownicy SET pensja = pensja + 100
B. UPDATE pensja SET +100
C. UPDATE pracownicy SET pensja = 100
D. UPDATE pensja SET 100
Odpowiedź 'UPDATE pracownicy SET pensja = pensja + 100;' jest właściwa, ponieważ używa standardowej składni SQL do aktualizacji danych w tabeli. W tym przypadku, instruktacja 'SET pensja = pensja + 100' oznacza, że dla każdego rekordu w tabeli 'pracownicy', wartość kolumny 'pensja' zostanie zwiększona o 100 zł. To podejście jest zgodne z zasadami dobrych praktyk w programowaniu SQL, ponieważ aktualizuje wartość na podstawie jej bieżącej wartości, co pozwala na zachowanie pełnej kontroli nad danymi. Tego rodzaju aktualizacja jest często stosowana w bazach danych, gdy konieczne jest modyfikowanie istniejących danych na podstawie ich aktualnych wartości. Na przykład, jeśli w tabeli mamy pracowników z różnymi wynagrodzeniami, każdemu z nich dodamy stałą kwotę, co sprawia, że struktura danych pozostaje spójna. Dodatkowo, takie podejście ma zastosowanie w praktycznych scenariuszach, takich jak coroczne podwyżki wynagrodzeń, co jest powszechną praktyką w wielu organizacjach, a poprawność tej operacji można zweryfikować poprzez zapytania SELECT po aktualizacji.

Pytanie 3

W przedstawionym kodzie HTML ukazany styl CSS to styl:

<p style="color: red;">To jest przykładowy akapit.</p>
A. dynamiczny.
B. nagłówkowy.
C. lokalny.
D. zewnętrzny.
Odpowiedź "lokalnym" jest prawidłowa, ponieważ styl CSS zastosowany w podanym kodzie HTML definiuje właściwości stylu bezpośrednio w elemencie HTML, co określamy jako styl lokalny (inline style). W tym przypadku, styl "color: red;" został zastosowany bezpośrednio w tagu <p>, co wpływa wyłącznie na ten konkretny akapit. Praktyczne zastosowanie lokalnych stylów polega na tym, że można je szybko dodać do pojedynczych elementów, ale należy pamiętać, że nadmiar lokalnych stylów może prowadzić do problemów z utrzymywaniem i zarządzaniem kodem. Zamiast tego zaleca się stosowanie zewnętrznych arkuszy stylów CSS, co pozwala na centralne zarządzanie stylami dla całej strony. Warto zauważyć, że lokalne style mają wyższy priorytet niż style zewnętrzne, co może prowadzić do konfliktów, jeśli nie zostaną odpowiednio użyte. Aby zapewnić zgodność z najlepszymi praktykami, zaleca się ograniczanie stosowania lokalnych stylów tam, gdzie to możliwe, na rzecz bardziej zorganizowanego podejścia z użyciem klas i identyfikatorów w zewnętrznych arkuszach stylów.

Pytanie 4

Która z wymienionych metod umożliwia wyświetlenie komunikatu w konsoli przeglądarki internetowej przy użyciu języka JavaScript?

A. console.log("test");
B. console.echo("test");
C. console.print("test");
D. console.write("test");
Odpowiedź 'console.log("test");' jest poprawna, ponieważ jest to standardowa metoda w JavaScript, służąca do wypisywania komunikatów w konsoli przeglądarki. Funkcja console.log jest powszechnie stosowana przez programistów do debugowania kodu i monitorowania wartości zmiennych w czasie rzeczywistym. Umożliwia to efektywne śledzenie działania aplikacji internetowych oraz szybkie identyfikowanie błędów. Przykładowo, jeśli chcemy sprawdzić wartość zmiennej, możemy użyć polecenia console.log(myVariable);, co pozwoli nam zobaczyć aktualny stan zmiennej w konsoli. Warto również pamiętać, że console.log obsługuje różne typy danych, w tym obiekty i tablice, co czyni go niezwykle wszechstronnym narzędziem w arsenale programisty. Używanie tej metody jest zgodne z dobrymi praktykami w programowaniu, ponieważ pozwala na przejrzystość i lepsze zrozumienie logiki aplikacji. W kontekście pracy z konsolą, warto zaznajomić się również z innymi metodami, takimi jak console.error, console.warn czy console.info, które umożliwiają różnicowanie wypisywanych komunikatów według ich znaczenia.

Pytanie 5

W formularzu HTML wykorzystano znacznik <input>. Wyświetlane pole będzie przeznaczone do wprowadzania maksymalnie

Ilustracja do pytania
A. 20 znaków, które nie są widoczne w polu tekstowym
B. 30 znaków, które nie są widoczne w polu tekstowym
C. 20 znaków, które są widoczne podczas wpisywania
D. 30 znaków, które są widoczne podczas wpisywania
Podany znacznik <input> definiuje element formularza HTML typu password. Gdy używasz typu password, wprowadzone znaki są maskowane, zazwyczaj używając symboli takich jak kropki lub gwiazdki, co oznacza, że nie są widoczne podczas wprowadzania. Atrybut maxlength określa maksymalną liczbę znaków, które użytkownik może wprowadzić. W tym przypadku wartość maxlength równa 20 oznacza, że użytkownik może wprowadzić do 20 znaków, nawet jeśli więcej znaków można by zobaczyć w polu dzięki atrybutowi size. Rozdzielając te dwa aspekty, atrybut size określa jedynie widoczną szerokość pola, co w przypadku tego inputu wynosi 30, ale nie wpływa na ilość możliwych do wpisania znaków. Zastosowanie pola password jest powszechne w formularzach logowania, gdzie bezpieczeństwo wprowadzanych danych jest priorytetem. Użycie maxlength pozwala kontrolować długość hasła, co może być częścią strategii zabezpieczeń, eliminując zbyt długie lub zbyt krótkie hasła, które są łatwiejsze do złamania. Takie podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych.

Pytanie 6

Przedstawiony styl generuje pojedyncze obramowanie, które posiada następujące właściwości:

border: solid 1px;
border-color: red blue green yellow;
A. krawędź prawa ma kolor czerwony, krawędź dolna w kolorze niebieskim, krawędź lewa w odcieniu zielonym, krawędź górna w kolorze żółtym
B. krawędź górna jest koloru czerwonego, krawędź prawa koloru niebieskiego, krawędź dolna koloru zielonego, krawędź lewa koloru żółtego
C. krawędź lewa ma kolor czerwony, krawędź dolna w kolorze niebieskim, krawędź prawa w odcieniu zielonym, krawędź górna w kolorze żółtym
D. krawędź górna ma kolor czerwony, krawędź lewa w kolorze niebieskim, krawędź dolna w odcieniu zielonym, krawędź prawa w kolorze żółtym
Niewłaściwe zrozumienie składni border-color prowadzi do błędnych odpowiedzi. Właściwość border-color pozwala przypisać do każdej krawędzi elementu osobne kolory według kolejności: góra prawa dół lewa. Przy czterech wartościach każda odpowiada innej krawędzi rozpoczynając od górnej w ruchu zgodnym z ruchem wskazówek zegara. Niektórzy mogą błędnie założyć że kolejność zaczyna się od lewej krawędzi co prowadzi do niepoprawnych wniosków. Podanie wyłącznie dwóch kolorów skutkuje ich przypisaniem do przeciwległych krawędzi ale w przypadku czterech wartości każda odpowiada innej krawędzi. Typowy błąd polega na myleniu kolejności przypisania kolorów co komplikuje interpretację i prowadzi do niepoprawnego zrozumienia jak właściwość border-color działa w praktyce. Dla poprawności i zgodności z standardami CSS niezbędne jest precyzyjne i dokładne analizowanie dokumentacji oraz przykładów co pozwala uniknąć typowych błędów i ułatwia poprawne wdrażanie stylów na stronach internetowych. Zrozumienie właściwości CSS i ich poprawne zastosowanie jest kluczowe w projektowaniu nowoczesnych stron internetowych co zapewnia zarówno estetyczny wygląd jak i funkcjonalność interfejsu użytkownika. Właściwe używanie border-color wspiera tworzenie atrakcyjnych i dostępnych projektów co jest nieocenione w pracy każdego specjalisty od front-endu.

Pytanie 7

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 2
B. Efekt 4
C. Efekt 1
D. Efekt 3
Odpowiedź Efekt 3 jest poprawna, ponieważ odzwierciedla wszystkie zadane style CSS. Styl zawiera padding 20px co oznacza, że wewnętrzna przestrzeń wokół tekstu w paragrafie powinna wynosić 20 pikseli. Daje to efekt przestrzeni pomiędzy tekstem a obramowaniem. Kolor tekstu został ustawiony na niebieski co powoduje, że sam tekst przyjmuje niebieską barwę. Parametr font-weight jest ustawiony na 900 co oznacza, że tekst powinien być bardzo pogrubiony. Obecnie jest to maksymalna wartość dla własności font-weight w standardzie CSS która powoduje, że tekst wygląda na bardzo wyrazisty i wyróżnia się na tle innych elementów. Dodatkowo border ustawiono na 1px solid co oznacza, że paragraf powinien mieć jednolitą linię o grubości jednego piksela otaczającą jego obszar. Wszystkie te style są poprawnie zastosowane w Efekcie 3 gdzie tekst jest niebieski bardzo pogrubiony z przestrzenią 20 pikseli do obramowania oraz otoczony cienką linią. Taki styl jest często wykorzystywany w projektach stron internetowych dla wyraźnego wyróżnienia ważnych sekcji co zgodne jest z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 8

Aby zmienić strukturę tabeli w bazie danych MySQL, należy użyć komendy

A. UPDATE
B. INSERT INTO
C. GRANT
D. ALTER TABLE
Odpowiedź 'ALTER TABLE' jest poprawna, gdyż to polecenie w MySQL służy do modyfikacji struktury istniejącej tabeli. Dzięki niemu możemy dodawać nowe kolumny, zmieniać typy danych kolumn, usuwać kolumny, a także zmieniać właściwości tabeli, takie jak klucze główne czy unikalne. Przykład zastosowania polecenia ALTER TABLE to dodanie kolumny do tabeli: 'ALTER TABLE pracownicy ADD COLUMN wiek INT;' co skutkuje dodaniem kolumny 'wiek' o typie INT do tabeli 'pracownicy'. Zgodnie z najlepszymi praktykami, przed wykonaniem takich operacji warto wykonać kopię zapasową bazy danych, aby uniknąć utraty danych w przypadku nieprawidłowego wykonania polecenia. Używanie ALTER TABLE jest kluczowe podczas rozwoju aplikacji, gdyż często zachodzi potrzeba dostosowania struktury bazy danych do zmieniających się wymagań biznesowych.

Pytanie 9

Aby zoptymalizować operacje na bazie danych, należy stworzyć indeksy dla pól, które są często wyszukiwane lub sortowane?

A. utworzyć indeks.
B. dodać więzy integralności.
C. dodać klucz obcy.
D. stworzyć osobną tabelę przechowującą tylko te pola.
Indeksowanie to kluczowy mechanizm optymalizacji wydajności baz danych. Indeksy pozwalają na szybsze wyszukiwanie, sortowanie oraz filtrowanie danych, co znacząco poprawia czas reakcji na zapytania. Kiedy tworzymy indeks na kolumnach, które są często używane w klauzulach WHERE, ORDER BY lub JOIN, silnik bazy danych może szybciej zlokalizować potrzebne dane, minimalizując czas przeszukiwania. Na przykład, w bazie danych o dużej liczbie rekordów, wyszukiwanie konkretnego użytkownika bez indeksu może wymagać przeszukania całej tabeli, co jest czasochłonne. W przypadku dodania indeksu do kolumny 'username', zapytanie SELECT * FROM users WHERE username = 'janek' będzie mogło wykorzystać indeks, aby natychmiastowo znaleźć odpowiedni rekord. Zgodnie z dokumentacją SQL Server i MySQL, indeksowanie jest również zalecane w przypadku kolumn, które są często modyfikowane, ponieważ pozwala na utrzymanie wysokiej wydajności przy dużych zbiorach danych. Indeksy mogą być zarówno unikalne, jak i nieunikalne, a ich odpowiednie zaplanowanie jest kluczowe dla zachowania równowagi między szybkością przetwarzania a wydajnością operacji zapisu. Ostatecznie, optymalizacja bazy danych za pomocą indeksów to niezbędny krok dla każdej aplikacji wymagającej efektywnego zarządzania danymi.

Pytanie 10

W konstrukcji warunkowej w języku JavaScript należy sprawdzić sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza niż 100. Taki warunek powinien być zapisany w następujący sposób:

A. if ( a > 0 && b > 0 || b > 100) ...
B. if ( a > 0 || b > 0 || b > 100) ...
C. if ( a > 0 || (b > 0 && b < 100)) ...
D. if ( a > 0 && b > 0 && b < 100) ...
Poprawna odpowiedź to 'if ( a > 0 && b > 0 && b <100) ...'. W tym warunku wykorzystujemy operator logiczny AND (&&), co pozwala nam na jednoczesne sprawdzenie, czy obie zmienne 'a' i 'b' są dodatnie oraz czy 'b' jest mniejsze od 100. Operator AND jest kluczowy, ponieważ wymaga, aby wszystkie warunki były spełnione jednocześnie, co w tym przypadku jest istotne dla naszej logiki programistycznej. Przykładowo, jeśli a = 10 i b = 50, warunek zwróci true, ponieważ obie zmienne są dodatnie, a 'b' jest mniejsze niż 100. Jeśli jednak 'b' wynosi 150, warunek zwróci false, co jest zgodne z naszymi wymaganiami. W kontekście standardów języka JavaScript, ważne jest, aby rozumieć różnice między operatorami logicznymi, ponieważ niewłaściwe ich zastosowanie może prowadzić do błędnej logiki w kodzie, co z kolei skutkuje nieprawidłowym działaniem aplikacji. Dlatego, w praktyce, korzystanie z operatorów AND w tej sytuacji jest nie tylko poprawne, ale także najlepszą praktyką.

Pytanie 11

Baza danych, która fizycznie znajduje się na wielu komputerach, lecz logicznie postrzegana jako całość, opiera się na architekturze

A. lokalną
B. rozproszoną
C. abstrakcyjną
D. relacyjną
Wybór architektury relacyjnej, abstrakcyjnej czy lokalnej do opisu systemu, w którym baza danych jest rozproszona, wskazuje na pewne nieporozumienia w zakresie terminologii i koncepcji baz danych. Architektura relacyjna odnosi się do struktury baz danych, w której dane są przechowywane w tabelach oraz powiązaniach między nimi, a nie do fizycznego rozmieszczenia danych. Systemy relacyjne mogą być wdrażane zarówno w architekturze lokalnej, jak i rozproszonej. Abstrakcyjna architektura danych dotyczy natomiast sposobów modelowania, które są niezależne od konkretnej technologii i nie odnoszą się bezpośrednio do fizycznego rozproszenia danych. Z kolei architektura lokalna odnosi się do sytuacji, w której wszystkie komponenty systemu są umieszczone w jednym miejscu, co zdecydowanie wyklucza możliwość rozproszenia danych. W praktyce, nieprawidłowy wybór architektury może prowadzić do problemów z wydajnością, dostępnością i skalowalnością systemu. Często mylone są pojęcia związane z architekturą baz danych i ich implementacją, co może skutkować błędnymi decyzjami projektowymi i trudnościami w zarządzaniu danymi. Dobrze jest zrozumieć, że architektura rozproszona nie tylko zwiększa wydajność, ale również poprawia bezpieczeństwo i dostępność danych, co czyni ją odpowiednim wyborem dla nowoczesnych systemów przetwarzania danych.

Pytanie 12

W formularzu, wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w pokazany sposób. Jaki typ będzie miała zmienna x?

var x = parseInt(a);
A. NaN
B. napisowy
C. liczbowy, całkowity
D. zmiennoprzecinkowy
Funkcja parseInt() w JavaScript jest super przydatna, bo pozwala zamienić ciąg znaków na liczbę całkowitą. Jak masz zmienną a, która bierze dane z inputu typu number, to parseInt() łapie te liczby i wyrzuca wszystko, co nie jest cyfrą. Dzięki temu dostajesz liczby całkowite. Warto wiedzieć, że ta funkcja nie zaokrągla wyników, tylko obcina część dziesiętną. To świetna opcja, gdy potrzebujesz tylko całkowitych wartości. parseInt() dobrze działa w programowaniu – często wykorzystuje się go do walidacji i manipulacji liczbami. Z mojego doświadczenia, kiedy pracujesz z różnymi typami danych, musisz zadbać, żeby przekształcenia były na miejscu, bo to bardzo ważne dla aplikacji. Użycie parseInt() jest zgodne z zasadami ECMAScript, co oznacza, że działa w różnych środowiskach JavaScript. Przykładem dobrego zastosowania są aplikacje webowe, gdzie często potrzebujesz liczb całkowitych, na przykład w kalkulatorach czy formularzach z wyborem ilości produktów.

Pytanie 13

W programowaniu obiektowym proces, dzięki któremu klasa podrzędna może wykorzystywać metody z klasy nadrzędnej, określa się mianem

A. dziedziczeniem
B. polimorfizmem
C. hermetyzacją
D. wirtualizacją
Polimorfizm, hermetyzacja i wirtualizacja to pojęcia związane z programowaniem obiektowym, ale nie odnoszą się do mechanizmu współdzielenia pól i metod klasy. Polimorfizm to koncepcja, która pozwala obiektom różnych klas być traktowanymi jako obiekty jednej klasy bazowej. Umożliwia to pisanie bardziej elastycznego kodu, który może pracować z różnymi typami obiektów. Na przykład, jeśli mamy metodę, która przyjmuje jako argument obiekt klasy 'Pojazd', możemy przekazać zarówno obiekt 'Samochód', jak i 'Motocykl', a metoda zadziała poprawnie w obu przypadkach. Hermetyzacja to natomiast technika ograniczania dostępu do wewnętrznych danych klasy, co pozwala na ochronę stanu obiektu przed nieautoryzowanymi modyfikacjami. Oznacza to, że pola klasy są często oznaczane jako prywatne, a dostęp do nich uzyskuje się za pomocą metod publicznych. Wirtualizacja odnosi się do technik umożliwiających tworzenie wirtualnych instancji, co jest bardziej związane z wirtualizacją systemów operacyjnych niż z dziedziczeniem w OOP. Typowe błędy myślowe mogą wynikać z mylenia tych pojęć z dziedziczeniem, co często zdarza się osobom, które dopiero zaczynają swoją przygodę z programowaniem obiektowym. Kluczowe jest zrozumienie, że każda z tych koncepcji ma swoje unikatowe zastosowanie i nie można ich stosować zamiennie bez utraty sensu i poprawności kodu.

Pytanie 14

Jaką metodę przesyłania danych za pomocą formularza do kodu PHP należy uznać za najbardziej bezpieczną dla poufnych informacji?

A. Metoda POST, przy użyciu protokołu HTTPS
B. Metoda GET, przy użyciu protokołu HTTPS
C. Metoda POST, przy użyciu protokołu HTTP
D. Metoda GET, przy użyciu protokołu HTTP
Wybór metody GET za pomocą protokołu HTTP do przesyłania poufnych danych wiąże się z poważnymi zagrożeniami dla bezpieczeństwa. Metoda GET przesyła dane jako część adresu URL, co oznacza, że mogą one być łatwo widoczne w historii przeglądania użytkownika i logach serwera. Oznacza to, że jakiekolwiek dane osobowe lub informacje finansowe mogą zostać przypadkowo ujawnione osobom trzecim. Przykładowo, jeśli użytkownik wprowadza swoje hasło w formularzu używając metody GET, to jego hasło będzie widoczne w pasku adresu przeglądarki, co stwarza ryzyko kradzieży tożsamości. Protokół HTTP dodatkowo nie zapewnia żadnego szyfrowania, co czyni go podatnym na ataki typu „man-in-the-middle”, w których złośliwy użytkownik może przechwycić przesyłane dane. Praktyki bezpieczeństwa wymagają, aby poufne informacje były zawsze przesyłane za pomocą bezpiecznego połączenia oraz odpowiedniej metody, co czyni odpowiedzi na bazie HTTP jako nieodpowiednie. Często spotykanym błędem jest mylenie metod GET i POST; niektórzy użytkownicy mogą nie dostrzegać różnicy i nie zdawać sobie sprawy z tego, jak ważne jest odpowiednie zabezpieczenie komunikacji w sieci. Dlatego kluczowe jest, aby przy przesyłaniu wrażliwych danych zawsze korzystać z HTTPS oraz metody POST, co stanowi standard w branży internetowej.

Pytanie 15

Które z poniższych poleceń jest poprawne w kontekście walidacji HTML5?

A. &lt;img src = mojPiesek.jpg alt = pies&gt;
B. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
C. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
D. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
Niepoprawne odpowiedzi wskazują na typowe błędy w składni HTML oraz niepełne zrozumienie zasad walidacji dokumentów HTML5. W pierwszym przypadku &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt; występuje błąd w cudzysłowie, który nie jest poprawnie zamknięty, co prowadzi do problemów z interpretacją przez przeglądarki internetowe. Przeglądarki mogą zignorować taki znacznik, co powoduje, że obraz nie zostanie wyświetlony, a tekst alternatywny nie będzie dostępny. Kolejna odpowiedź &lt;img src = mojPiesek.jpg alt = pies&gt; również jest niepoprawna, ponieważ brakuje w niej cudzysłowów wokół wartości atrybutów, co jest wymogiem w HTML5. Atrybuty w HTML powinny być zawsze otoczone cudzysłowami, aby zapewnić prawidłowe przetwarzanie przez parsery HTML. Ostatnia odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; &gt; również jest niekompletna, ponieważ nie zawiera atrybutu alt. Atrybut alt jest kluczowy dla dostępności, ponieważ służy jako opis obrazu, co jest niezbędne dla użytkowników korzystających z technologii asystujących, takich jak czytniki ekranu. Pomijanie tego atrybutu może ograniczać dostęp do informacji dla osób z niepełnosprawnościami. W praktyce, każdy znacznik obrazka powinien być starannie skonstruowany z uwzględnieniem zasad dostępności i walidacji, aby maksymalizować użyteczność i zgodność ze standardami sieciowymi.

Pytanie 16

Funkcją przedstawionego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x) {
    if ($x < 0) echo "$x ";
}
A. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
B. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
C. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
D. Kolejnymi liczbami od 0 do 9 i wypisanie ich
Analizując błędne odpowiedzi, warto zauważyć, że niektóre z nich sugerują nieprawidłowe zrozumienie działania funkcji rand() i pętli for w PHP. Kod pokazuje, że pętla for jest używana do iteracji 10 razy, co oznacza, że tablica będzie wypełniona 10 wartościami, a nie 100. Funkcja rand(-100,100) generuje liczby z przedziału od -100 do 100, a nie tylko dodatnie czy kolejne liczby, co wyklucza możliwość wypełnienia tablicy kolejnymi liczbami od 0 do 9 czy od -100 do 100. Dalsze nieporozumienia mogą wynikać z błędnego zrozumienia instrukcji warunkowej w pętli foreach, która wyświetla tylko wartości ujemne, a nie dodatnie. Częste błędy to także założenie, że wszystkie elementy są przetwarzane jednakowo bez sprawdzenia warunku. Dobre praktyki programistyczne wymagają uważnego czytania i analizy kodu, aby zrozumieć jego logikę. Zrozumienie mechaniki działania pętli i instrukcji warunkowych jest kluczowe w programowaniu i często stanowi podstawę bardziej zaawansowanych algorytmów. Ostatecznie skuteczne przetwarzanie danych w PHP wymaga dokładnego zrozumienia struktury kodu i jego funkcji, co może być wyzwaniem, jeśli koncepcje te są źle zinterpretowane. Ważne jest, aby programista dokładnie rozumiał, jakie wartości są generowane i które z nich są wyświetlane, aby uniknąć niezamierzonych rezultatów w aplikacji.

Pytanie 17

 SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel"; 

Tabela samochody zawiera rekordy przedstawione na obrazie. Wydając przedstawione zapytanie SQL zostaną zwrócone dane:
idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
A. opel zafira; opel insignia
B. zafira
C. zafira; insignia
D. opel zafira
Gratulacje, twoja odpowiedź jest poprawna. Zapytanie SQL 'SELECT model FROM samochody WHERE rocznik > 2017 AND marka = 'opel';' ma na celu wyświetlenie modelu samochodu marki 'opel' z roku produkcji późniejszego niż 2017. Analizując dostępną tabelę, możemy zauważyć, że tylko model 'zafira' spełnia oba kryteria. W tym przypadku wykorzystaliśmy dwa kluczowe elementy języka SQL, tj. instrukcję SELECT i klauzulę WHERE. Instrukcja SELECT służy do zapytań o konkretne dane z bazy, a klauzula WHERE to powszechnie stosowane narzędzie do filtrowania wyników zapytania według określonych kryteriów. Jest to bardzo praktyczny aspekt SQL, który pozwala na wydobywanie tylko tych danych, które są potrzebne, co jest niezwykle przydatne przy dużych bazach danych.

Pytanie 18

Aby stworzyć relację jeden do wielu, w tabeli po stronie wiele, co należy zdefiniować?

A. klucz obcy wskazujący na klucz podstawowy tabeli po stronie jeden
B. klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden
C. klucz sztuczny odnoszący się do kluczy podstawowych obu tabel
D. klucz obcy wskazujący na klucz obcy tabeli po stronie jeden
W kontekście relacji jeden do wielu w bazach danych, każda z podanych niepoprawnych opcji wprowadza w błąd odnośnie do zasady funkcjonowania kluczy obcych i ich roli w modelowaniu danych. Klucz obcy wskazujący na klucz obcy tabeli po stronie jeden jest konceptualnie błędny, ponieważ klucz obcy zawsze odnosi się do klucza podstawowego innej tabeli, a nie do innego klucza obcego. Taki układ narusza zasady referencyjności i integralności danych, co może prowadzić do trudności w utrzymaniu spójności w bazie. Kolejną niepoprawną opcją jest klucz sztuczny odnoszący się do kluczy podstawowych obu tabel. Klucze sztuczne, choć mogą być użyteczne w pewnych kontekstach, nie powinny być używane jako sposób tworzenia relacji, ponieważ nie odzwierciedlają naturalnych powiązań między danymi. Klucz podstawowy wskazujący na klucz podstawowy tabeli po stronie jeden również jest mylny, ponieważ w relacji jeden do wielu klucz podstawowy tabeli 'jeden' musi być referencjonowany przez klucz obcy w tabeli 'wiele', a nie odwrotnie. Te nieporozumienia mogą prowadzić do błędów projektowych w bazach danych, co w efekcie utrudnia ich rozwój i zarządzanie, szczególnie w dużych systemach, gdzie spójność danych jest kluczowa dla funkcjonowania aplikacji.

Pytanie 19

Rodzaj zmiennej w języku JavaScript

A. następuje poprzez przypisanie wartości
B. powinien być zadeklarowany na początku skryptu
C. istnieje tylko jeden
D. nie występuje
W języku JavaScript typ zmiennej jest określany poprzez przypisanie wartości, co oznacza, że zmienna może przyjmować różne typy danych w trakcie działania programu. JavaScript jest językiem, który wspiera dynamiczne typowanie, co pozwala na elastyczność w programowaniu. Przykładowo, można zadeklarować zmienną i przypisać do niej wartość liczbową: let x = 5; a następnie przypisać wartość tekstową: x = 'Hello';. W momencie przypisania wartości, JavaScript automatycznie dostosowuje typ zmiennej w zależności od typu przypisanej wartości. To podejście jest zgodne z dobrymi praktykami programowania, ponieważ umożliwia łatwe tworzenie i modyfikowanie kodu, bez potrzeby wcześniejszego określania typów zmiennych, co jest charakterystyczne dla języków statycznie typowanych. Warto również zaznaczyć, że w JavaScript mamy do czynienia z różnymi typami danych, takimi jak liczby, łańcuchy tekstowe, obiekty, tablice czy wartości logiczne (boolean), co daje programistom dużą swobodę w modelowaniu danych.

Pytanie 20

Z tabeli należy wybrać imiona osób, które spełniają kryterium, że drugą literą jest 'e', a słowo ma co najmniej 5 znaków (pięć lub więcej znaków). W tym celu w klauzuli WHERE można użyć wyrażenia

A. imie LIKE '_e___' (po literze e trzy podkreślniki)
B. imie LIKE '_e___%' (po literze e trzy podkreślniki)
C. imie LIKE '%e%'
D. imie LIKE '_e_%'
Odpowiedź 4 jest poprawna, ponieważ stosuje wyrażenie LIKE w sposób, który precyzyjnie spełnia zadany warunek. Wyrażenie '_e___%' wskazuje, że imię musi mieć co najmniej pięć znaków, gdzie 'e' jest drugą literą. Podkreślnik '_' pełni rolę symbolu zastępczego dla pojedynczego znaku, więc '_e___' oznacza, że przed literą 'e' może znajdować się jeden dowolny znak, a po niej co najmniej trzy znaki. Znak '%' na końcu oznacza, że po tych pięciu znakach mogą występować dodatkowe znaki, co jest zgodne z wymogiem, aby długość imienia wynosiła co najmniej pięć znaków. Przykłady zastosowania tego wyrażenia obejmują zapytania do baz danych, gdzie chcemy uzyskać imiona takie jak 'Marek', 'Tereska' czy 'Petrus'. Tego rodzaju zapytania są zgodne z dobrymi praktykami SQL, które podkreślają znaczenie precyzyjnych warunków wyszukiwania dla optymalizacji i ograniczenia zbiorów danych, co przekłada się na większą efektywność operacji. W kontekście projektowania baz danych, stosowanie takich precyzyjnych kryteriów w zapytaniach jest kluczowe dla zapewnienia szybkości i efektywności systemów bazodanowych, co jest istotne w dzisiejszych zastosowaniach biznesowych, gdzie czas odpowiedzi jest niezwykle ważny.

Pytanie 21

Aby zmienić strukturę już istniejącej tabeli przy użyciu zapytania SQL, należy użyć kwerendy

A. INSERT INTO
B. CREATE TABLE
C. UPDATE
D. ALTER TABLE
Wybór odpowiedzi 'UPDATE' jest niepoprawny, ponieważ polecenie UPDATE służy jedynie do modyfikacji danych znajdujących się w już istniejących rekordach tabeli, a nie do zmiany samej struktury tabeli. Użycie tego polecenia w kontekście pytania prowadzi do mylnego wniosku, że można za jego pomocą dodawać kolumny lub zmieniać ich typy. Podobnie jak UPDATE, odpowiedź 'INSERT INTO' jest również niewłaściwa. To polecenie jest używane do dodawania nowych rekordów do tabeli, a nie do modyfikacji jej struktury. W praktyce, błędne użycie INSERT INTO w kontekście zmiany struktury tabeli może prowadzić do nieporozumień i komplikacji w zarządzaniu danymi. Ponadto odpowiedź 'CREATE TABLE' jest także nieadekwatna, ponieważ to polecenie tworzy nową tabelę w bazie danych, a nie modyfikuje istniejącą. Typowym błędem w rozumieniu poleceń SQL jest mylenie między operacjami na danych a operacjami na strukturze bazy danych. Kluczowe jest zrozumienie różnicy między tymi typami operacji, ponieważ każda komenda SQL ma swoje specyficzne zastosowanie i nie można ich stosować zamiennie. W kontekście administracji bazami danych, umiejętność rozróżnienia tych komend jest niezbędna, aby efektywnie zarządzać strukturą i danymi w bazach danych.

Pytanie 22

Znacznik <pre> </pre> służy do prezentacji

A. treści polską czcionką
B. znaku wielokropka
C. treści czcionką o stałej szerokości
D. znaku przekreślenia
Znacznik <pre> </pre> jest używany w HTML do wyświetlania tekstu w formacie preformatowanym, co oznacza, że zawartość wewnątrz tego znacznika jest wyświetlana czcionką o stałej szerokości, gdzie wszystkie białe znaki, w tym spacje i nowe linie, są zachowywane tak, jak zostały wpisane. To sprawia, że jest on niezwykle przydatny przy prezentacji kodu źródłowego, skryptów oraz innych danych, gdzie zachowanie dokładnego formatowania jest kluczowe. Przykładem może być kod HTML, JavaScript czy CSS, który można umieścić wewnątrz znacznika <pre> w celu poprawienia czytelności i umożliwienia użytkownikom łatwego skopiowania. Ponadto, znaczniki <pre> są często stosowane w dokumentacji technicznej, gdzie precyzyjne odwzorowanie formatowania jest istotne dla zrozumienia. Ważne jest również, aby zwrócić uwagę na to, że domyślnie tekst w elemencie <pre> nie jest łamany, co pozwala zachować jego oryginalny kształt i układ.

Pytanie 23

Jak kwerenda SQL przedstawiona w ramce wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9
B. Zmieni typ danych kolumny plec na znakowy o stałej długości 9
C. Doda kolumnę plec ze znakowym typem danych o stałej długości 9
D. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9
Inne odpowiedzi, które podałeś, dotyczą różnych operacji SQL, które nie mają związku z tym, co robi ALTER TABLE pracownicy MODIFY plec char(9). Musisz zrozumieć, że różnica między CHAR a VARCHAR jest dość istotna. CHAR ma stałą długość, to znaczy, że każda wartość w kolumnie zawsze ma tę samą liczbę znaków, uzupełnianą spacjami. Z kolei VARCHAR przechowuje dane o zmiennej długości, co może oszczędzać miejsce, ale wymaga więcej uwagi w zarządzaniu długością. Dodatkowo, jeśli chciałbyś dodać nową kolumnę, musiałbyś użyć polecenia ADD, a nie MODIFY. Ta różnica między dodawaniem a modyfikowaniem często myli początkujących w projektowaniu baz danych. Z mojego doświadczenia, wybór odpowiedniego typu danych i operacji jest kluczowy, bo źle przypisane polecenie może prowadzić do problemów z aplikacjami i zarządzaniem danymi. Tak że kluczowe jest zrozumienie, jak działają te polecenia SQL, żeby dobrze projektować efektywne bazy danych.

Pytanie 24

Instrukcja języka PHP tworząca obiekt pkt dla zdefiniowanej w ramce klasy Punkt ma postać

class Punkt {  public $x;
                public $y;  }
A. pkt Punkt;
B. pkt = new Punkt();
C. pkt Punkt();
D. Punkt() pkt;
Twoja odpowiedź jest prawidłowa, gratuluję! W języku PHP, aby utworzyć nowy obiekt klasy, używamy słowa kluczowego 'new', a następnie nazwy klasy. Poprawna instrukcja, która tworzy obiekt 'pkt' klasy 'Punkt', ma więc postać '$pkt = new Punkt();'. Tę konstrukcję używamy, kiedy chcemy utworzyć nową instancję klasy. Warto pamiętać, że można tworzyć wiele obiektów tej samej klasy, a każdy z nich będzie miał własny zestaw danych (właściwości). Instancje klas są podstawą programowania obiektowego, które pozwala na tworzenie bardziej złożonych i łatwiejszych do zarządzania systemów. Dobre zrozumienie tego konceptu jest kluczowe dla efektywnego programowania w PHP.

Pytanie 25

W teorii relacji operacja selekcji polega na

A. wybraniu krotek, które spełniają określone warunki
B. pozbywaniu się pustych wierszy
C. wybraniu krotek, które nie zawierają wartości NULL
D. eliminuje krotki z powtarzającymi się polami
W kontekście algebry relacji, operacja selekcji nie polega na eliminowaniu krotek z powtarzającymi się polami czy też usuwaniu pustych wierszy. Tego rodzaju zrozumienie jest mylące, ponieważ w rzeczywistości selekcja ma na celu wydobycie krotek, które spełniają określone kryteria. Eliminowanie krotek z powtarzającymi się polami odnosi się bardziej do operacji związanych z usuwaniem duplikatów, co jest osobnym zagadnieniem w algebrze relacji. Również wykluczanie pustych wierszy, choć może być istotne w kontekście czyszczenia danych, nie jest bezpośrednio związane z operacją selekcji. Typowym błędem jest nieprawidłowe utożsamianie selekcji z procesem filtrowania danych, który niekoniecznie odnosi się do spełniania określonych warunków. Ważne jest, aby pamiętać, że selekcja jest operacją, która pozwala na wybór tylko tych krotek, które są zgodne z zadaną logiką, co czyni ją niezwykle użyteczną w codziennej pracy z bazami danych. Zrozumienie tej różnicy jest kluczowe dla efektywnego korzystania z baz danych i tworzenia precyzyjnych zapytań, które mogą przyczynić się do lepszego zarządzania informacjami.

Pytanie 26

Którą wartość atrybutu name znacznika <meta> wykorzystuje się do kontrolowania obszaru widzialnego na różnych urządzeniach, na których jest wyświetlana strona internetowa?

A. generator
B. keywords
C. viewport
D. description
Poprawnie wskazana została wartość „viewport”. W praktyce właśnie meta name="viewport" służy do kontrolowania tzw. obszaru widzialnego (ang. viewport) na urządzeniach mobilnych i desktopowych. Przeglądarka mobilna domyślnie zakłada szeroką stronę i sztucznie ją pomniejsza, żeby „zmieściła się” na ekranie telefonu. Dopiero meta viewport mówi jej: potraktuj szerokość ekranu urządzenia jako bazową szerokość strony. Najczęściej spotykana, zgodna z dobrymi praktykami konstrukcja to: <meta name="viewport" content="width=device-width, initial-scale=1.0">. Parametr width=device-width ustawia szerokość obszaru widzialnego na szerokość ekranu urządzenia, a initial-scale=1.0 definiuje początkowe powiększenie. Dzięki temu layout responsywny oparty na media queries w CSS działa poprawnie, bez dziwnych przeskalowań i zbyt małej czcionki. W nowoczesnym front-endzie przyjmuje się, że każda strona, która ma być używalna na telefonach, tabletach i laptopach, powinna mieć prawidłowo ustawiony meta viewport. Moim zdaniem to jest absolutna podstawa RWD, zaraz obok poprawnego użycia jednostek względnych (np. %, vw, em) i zaprojektowania siatki w CSS. Warto też pamiętać, żeby nie przesadzać z blokowaniem powiększania (np. user-scalable=no), bo to pogarsza dostępność strony dla osób słabiej widzących i jest uznawane za złą praktykę. Podsumowując: jeśli chcesz mieć stronę, która naprawdę „żyje” na różnych ekranach, meta name="viewport" to obowiązkowy element w sekcji <head>.

Pytanie 27

W bazie danych znajduje się tabela ksiazki, która zawiera pola: tytul, id_autora, data_wypoz oraz id_czytelnika. Co dzień generowany jest raport dotyczący książek wypożyczonych w danym dniu, który prezentuje tylko tytuły książek. Która z poniższych kwerend SQL będzie odpowiednia do utworzenia tego raportu?

A. SELECT tytul FROM ksiazki
B. SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATE_NT_E()
C. SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE()
D. SELECT * FROM ksiazki
Wybór innych kwerend nie spełnia wymagania, by uzyskać tylko tytuły wypożyczonych książek z konkretnego dnia. Kwerenda 'SELECT tytul FROM ksiazki;' zwraca wszystkie tytuły książek z tabeli, nie uwzględniając daty wypożyczenia. Takie podejście mogłoby prowadzić do nieefektywnego przetwarzania danych oraz przeciążenia systemu, ze względu na duże ilości danych. W kontekście baz danych, selekcja zbyt ogólnych danych jest niezalecana, ponieważ nie dostarcza istotnych informacji i nie spełnia wymagań użytkowników, prowadząc do frustracji. Kwerenda 'SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATE_NT_E();' zawiera błąd w nazwie funkcji, jako że 'CURRDATE_NT_E()' nie jest standardową funkcją SQL, co skutkuje błędem wykonania zapytania. Dodatkowo, nawet gdyby była poprawna, ta kwerenda zwracałaby więcej danych niż potrzebne, co znowu nie jest praktyką zgodną z efektywnym zarządzaniem danymi. Ostatnia propozycja, 'SELECT * FROM ksiazki;', również nie jest odpowiednia, ponieważ zwraca wszystkie kolumny z tabeli, a nie tylko tytuły książek, co skutkuje nieoptymalnym przetwarzaniem i brakiem precyzyjnych informacji. Kluczową lekcją jest to, że kwerendy w SQL powinny być precyzyjnie dopasowane do potrzeb użytkowników, aby minimalizować obciążenie bazy danych oraz maksymalizować użyteczność raportów.

Pytanie 28

Jaką wartość wyświetli standardowe wyjście dla podanego w ramce fragmentu kodu w języku C++?

Ilustracja do pytania
A. 0
B. 3
C. 2
D. 32
Analizując podane odpowiedzi warto zwrócić uwagę na podstawowe błędy w zrozumieniu działania operatorów w języku C++. Operator %= jest często źle interpretowany jako zwykłe dzielenie zamiast operacji modulo co prowadzi do błędnych wniosków takich jak wynik równy 0 lub 32. Reszta z dzielenia 32 przez 3 nie wynosi 0 ponieważ 32 nie dzieli się przez 3 bez reszty. Zapominając że operator ten zwraca resztę nie wynik dzielenia łatwo jest przyjąć błędne założenia. Dodatkowo zignorowanie inkrementacji x++ po operacji modulo może prowadzić do niepoprawnego oczekiwania że wynik pozostanie 2. Inkrementacja to podstawowa operacja która zwiększa wartość zmiennej o 1 co jest kluczowe w wielu algorytmach i strukturach danych. Brak zrozumienia tej operacji często prowadzi do błędnych rezultatów w programach. Przy rozwiązywaniu takich problemów należy brać pod uwagę sekwencję operacji oraz ich wpływ na końcowy rezultat. Praktyka oraz dokładna analiza działania poszczególnych operatorów pozwalają uniknąć typowych błędów które mogą powodować nieoczekiwane zachowanie aplikacji. Dobrze jest testować kod w małych fragmentach aby zobaczyć bezpośredni wpływ operacji na wynik co jest zgodne z dobrymi praktykami w programowaniu ukierunkowanym na testowanie i debugowanie. Zrozumienie tych koncepcji ułatwia pisanie wydajnego i niezawodnego kodu co jest celem każdego programisty w profesjonalnym środowisku.

Pytanie 29

W SQL klauzula DISTINCT w poleceniu SELECT spowoduje, że otrzymane dane

A. będą spełniały dany warunek
B. nie będą zawierały powtórzeń
C. będą zgrupowane według wskazanego pola
D. zostaną uporządkowane
Niepoprawne odpowiedzi na to pytanie często wynikają z nieporozumienia dotyczącego podstawowych funkcji, jakimi dysponuje SQL. Klauzula DISTINCT ma jedynie na celu usunięcie duplikatów z wyników zapytania, co oznacza, że powinna być używana jedynie w kontekście potrzeby uzyskania unikalnych wartości. Odpowiedzi sugerujące, że DISTINCT grupuje dane, są mylące, ponieważ do grupowania danych służy klauzula GROUP BY, która nie tylko wydziela unikalne rekordy, ale także umożliwia ich agregację i analizę pod kątem określonych kryteriów. Twierdzenie, że DISTINCT sortuje dane, również jest błędne, ponieważ sortowanie osiąga się za pomocą klauzuli ORDER BY, która porządkuje wyniki według zadanych kryteriów. W przypadku stwierdzenia, że DISTINCT spełnia określony warunek, należy zrozumieć, że to nie jest jego funkcja; zamiast tego warunki w zapytaniach SQL wprowadza się za pomocą klauzuli WHERE. W praktyce, zrozumienie właściwego zastosowania DISTINCT jest kluczowe dla efektywnego korzystania z SQL, ponieważ niewłaściwe użycie może prowadzić do nieodpowiednich wyników i nieefektywności w zapytaniach. Dlatego ważne jest, aby pamiętać o różnicach między tymi klauzulami i umieć odpowiednio je stosować w kontekście zapytań, aby uzyskać pożądane rezultaty.

Pytanie 30

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 4.
C. Kod 1.
D. Kod 2.
Gratulacje, Twoja odpowiedź jest poprawna! Wybrałeś Kod 2, który jest równoważny do kodu PHP przedstawionego w pytaniu. Kod ten składa się z pętli while, która jest zainicjowana wartością $x równą 10. Pętla ta jest wykonywana, aż wartość zmiennej $x osiągnie 20. Co ważne, za każdym obiegiem pętli wartość zmiennej $x jest inkrementowana, co jest równoważne do działania pętli for w kodzie PHP. Wykorzystanie różnych rodzajów pętli do osiągnięcia tego samego efektu jest dobrym przykładem na to, jak różne konstrukcje języka programowania mogą służyć do rozwiązania tego samego problemu. Pamiętaj, że wybór pętli zależy od kontekstu. Pętle for są zazwyczaj używane, kiedy z góry wiemy ile razy pętla ma być wykonana. Pętle while są często wykorzystywane, gdy nie wiemy ile razy pętla ma być wykonana, ale znamy warunek jej zakończenia. To praktyczna wiedza, którą możesz zastosować w codziennym programowaniu.

Pytanie 31

W relacyjnym modelu baz danych, termin krotka odnosi się do

A. wszystkich kolumn tabeli, które zawierają atrybuty danego obiektu
B. wierszy tabeli, z wyjątkiem wiersza nagłówkowego, w którym znajdują się nazwy kolumn
C. liczby rekordów w danej tabeli
D. wszystkich wierszy tabeli łącznie z wierszem nagłówkowym
Pierwsza z niepoprawnych odpowiedzi sugeruje, że krotki to liczba rekordów tabeli. Jednak w rzeczywistości krotki są pojedynczymi wierszami zawierającymi zbiory atrybutów, a nie ich ilość. Liczba rekordów, czyli krotek, jest zmienną miarą, która jest istotna dla analizy danych, ale sama w sobie nie definiuje krotek. Kolejna odpowiedź zakłada, że krotki obejmują wszystkie wiersze tabeli wraz z wierszem nagłówkowym. Wiersz nagłówkowy, który zawiera nazwy kolumn, nie jest częścią krotek, ponieważ krotki reprezentują tylko dane użytkownika. W związku z tym, takie ujęcie błędnie interpretuje strukturę danych w tabeli. Ostatnia niepoprawna odpowiedź sugeruje, że krotki to wszystkie kolumny tabeli zawierające atrybuty obiektu. Kolumny definiują atrybuty i zapewniają strukturę dla danych, ale same w sobie nie są krotkami. Krotka odnosi się do konkretnego zestawu wartości atrybutów w jednym wierszu, a nie do ich zbioru jako całości. Te nieścisłości odzwierciedlają fundamentalne różnice między strukturą relacyjnych baz danych a ich interpretacją w kontekście pojedynczych rekordów.

Pytanie 32

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%'
Odpowiedź SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'; jest poprawna, ponieważ wykorzystuje operator LIKE, który jest standardowym narzędziem w SQL do wyszukiwania wzorców w danych tekstowych. Znak procenta (%) w tym kontekście oznacza, że może wystąpić dowolna liczba znaków po literze Z, co jest zgodne z wymaganiem, aby nazwiska były co najmniej jednoliterowe. W praktyce, takie zapytanie umożliwia efektywne wyszukiwanie danych w bazach, co jest kluczowe w kontekście aplikacji zarządzających danymi klientów. Dobre praktyki w projektowaniu baz danych zalecają stosowanie operatora LIKE do filtrowania wyników, co pozwala na zwiększenie przejrzystości i wydajności. W przypadku wyszukiwania nazwisk, można również użyć indeksów, aby przyspieszyć wykonanie zapytań, co jest ważne w kontekście dużych zbiorów danych, gdzie czas odpowiedzi aplikacji może mieć istotne znaczenie dla użytkowników końcowych. Używanie LIKE w połączeniu z odpowiednimi znakami wieloznacznymi jest więc kluczowym elementem efektywnego zarządzania danymi.

Pytanie 33

W standardzie HDTV wykorzystywana jest rozdzielczość

A. 720 x 480 px
B. 704 x 576 px
C. 1280 x 1024 px
D. 1920 x 1080 px
Rozdzielczość 1920 x 1080 px jest standardem w technologii HDTV, znanym również jako Full HD. Oznacza to, że obraz składa się z 1920 pikseli w poziomie i 1080 pikseli w pionie, co daje łącznie ponad 2 miliony pikseli. Taki poziom rozdzielczości zapewnia wyraźny i szczegółowy obraz, co jest szczególnie ważne w kontekście nowoczesnych mediów wizualnych, takich jak filmy, transmisje telewizyjne oraz gry komputerowe. Standard HDTV ma kluczowe znaczenie w branży filmowej i telewizyjnej, ponieważ umożliwia osiągnięcie wysokiej jakości obrazu potrzebnej do pełnego doświadczenia wizualnego. Warto zaznaczyć, że wiele nowoczesnych urządzeń, takich jak telewizory, projektory i monitory, jest dostosowanych do odtwarzania w tej rozdzielczości, co czyni ją standardowym wyborem w domowych i profesjonalnych zastosowaniach. Zastosowanie Full HD jest szerokie; obejmuje transmisje sportowe, filmy akcji oraz produkcje artystyczne, gdzie szczegóły obrazu mają kluczowe znaczenie dla odbioru.

Pytanie 34

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

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

Pytanie 35

W języku JavaScript stworzono zmienną i, która będzie przechowywać wynik dzielenia równy 1, to

A. var i=parseInt(3/2)
B. var i=3/2
C. var i=Number(3/2)
D. var i=parseFloat(3/2)
Wybór pozostałych opcji jest błędny z kilku powodów związanych z typem zwracanej wartości oraz sposobem, w jaki JavaScript obsługuje konwersję typów. Pierwsza z niepoprawnych odpowiedzi, która korzysta z operatora dzielenia 3/2, zwraca wartość 1.5, a następnie wykorzystuje ją w konstrukcji var i=3/2; bez jakiejkolwiek konwersji. Rezultatem jest wartość zmiennoprzecinkowa, co nie odpowiada wymaganiu przechowywania wyniku jako liczby całkowitej. Druga odpowiedź wykorzystuje funkcję Number, co również skutkuje zwróceniem wartości 1.5. Funkcja Number konwertuje każdy argument na typ liczbowy, ale nie zaokrągla go w dół do najbliższej liczby całkowitej, co jest celem tego zadania. Ostatnia z niepoprawnych odpowiedzi, var i=parseFloat(3/2);, również prowadzi do tego samego rezultatu: 1.5. Funkcja parseFloat przekształca argument na liczbę zmiennoprzecinkową, a nie całkowitą, co jest sprzeczne z wymaganiami dotyczącymi uzyskania wyniku 1. W kontekście tego pytania, kluczowe znaczenie ma zrozumienie różnic między tymi funkcjami oraz ich zastosowania w praktyce programistycznej.

Pytanie 36

Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?

x = 0;
x += 10;
A. x = 10; x = 0;
B. x = 0; x++; x = x + 9;
C. x = 10; x = x + 10;
D. x = 0; x--; x *= 9;
Wybrana przez Ciebie odpowiedź, niestety nie jest zgodna z przykładem kodu przedstawionym na zdjęciu. Wszystkie niepoprawne odpowiedzi zawierają błędny rozumowanie dotyczące operacji na zmiennych w JavaScript. Bardzo częstym błędem jest mylenie operatorów inkrementacji i dekrementacji. Operator '--' w JavaScript zmniejsza wartość zmiennej o 1, a nie zwiększa. Również, operator '*=' jest skrótem dla mnożenia i przypisania wyniku do zmiennej, a nie dla dodawania. Kolejnym błędem jest niezrozumienie przypisania wartości do zmiennej. Instrukcja 'x = 10; x = 0;' przypisuje najpierw wartość 10 do zmiennej 'x', a potem nadpisuje ją wartością 0, co jest niezgodne z kodem na zdjęciu. To są typowe błędy, które prowadzą do niepoprawnych wniosków na temat działania JavaScript. Ważne jest zrozumienie podstawowych operatorów i ich działania, aby uniknąć takich pomyłek. Pamiętaj, że zrozumienie zasad działania języka programowania jest kluczowe dla tworzenia poprawnych i efektywnych kodów.

Pytanie 37

Jaką wartość będzie mieć zmienna str2 po wykonaniu poniższego fragmentu kodu JavaScript?

var str1 = "JavaScript"; var str2 = str1.substring(2, 6);
A. avaScr
B. avaS
C. vaSc
D. vaScri
Zrozumienie działania metody substring jest kluczowe do prawidłowego wyodrębniania części łańcucha znaków w JavaScript. Metoda ta przyjmuje dwa argumenty: indeks początkowy oraz opcjonalny indeks końcowy. Indeks początkowy wskazuje od którego znaku zaczynamy wycinanie a indeks końcowy wskazuje na pierwszy znak który nie zostanie uwzględniony. Jeśli indeks końcowy nie jest podany metoda wycina do końca łańcucha. Indeksowanie w JavaScript jest zerowe co oznacza że pierwszy znak ma indeks 0 drugi indeks 1 itd. To może prowadzić do mylnych założeń jeśli nie zrozumie się poprawnie jak działają indeksy. Typowym błędem jest użycie indeksu końcowego w sposób który uwzględnia także znak na tej pozycji co jest błędne ponieważ indeks końcowy jest wyłączny. W pytaniu gdy użyjemy substring(2 6) z łańcuchem JavaScript zaczynamy od znaku o indeksie 2 czyli v i kontynuujemy do indeksu 6 nie włączając go co daje nam ciąg vaSc. Inne odpowiedzi mogą wynikać z błędnego uwzględnienia indeksów początkowego lub końcowego co prowadzi do wycinania niepoprawnych fragmentów łańcucha. Rozumienie i stosowanie zasad indeksowania oraz logiki zerowania indeksów jest kluczowe przy pracy z łańcuchami znaków w JavaScript.

Pytanie 38

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

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

Pytanie 39

Wskaź złożony typ danych.

A. bool
B. class
C. char
D. float
Typy takie jak 'char', 'bool' i 'float' to prostsze typy, które mają na prawdę ograniczone możliwości w porównaniu do typów złożonych. 'char' to pojedynczy znak, więc może pomieścić na przykład 'A' albo '9', ale to wszystko. Używa się go czasami do przechowywania tekstu, ale jego funkcjonalność kończy się na prostych operacjach. Typ 'bool' to logiczny typ, który ma tylko dwie wartości - prawda (true) i fałsz (false). Jest istotny w podejmowaniu decyzji w programach, ale nie nadaje się do większych struktur danych. 'float' to typ liczbowy dla liczb zmiennoprzecinkowych, czyli takich z miejscami po przecinku. Jest przydatny w obliczeniach, ale jak widać, te wszystkie typy są dosyć ograniczone w porównaniu do złożonych typów, jak klasy, które pozwalają na tworzenie bardziej skomplikowanych struktur danych.

Pytanie 40

Wskaż fragment kodu CSS, który odpowiada układowi bloków 2 - 5, zakładając, że są one oparte na poniższym kodzie HTML.

Ilustracja do pytania
A. D
B. C
C. B
D. A
Niepoprawne odpowiedzi często wynikają z błędnego zrozumienia działania właściwości float oraz szerokości elementów w układzie blokowym. Float jest potężnym narzędziem które pozwala na pływające rozmieszczenie elementów ale wymaga precyzyjnego planowania aby uniknąć niepożądanych efektów takich jak elementy wychodzące poza przewidywane miejsca. Przy wyborze błędnych odpowiedzi można zauważyć że nieodpowiednie użycie float może prowadzić do nieprawidłowego wyświetlania bloków. Na przykład brak odpowiedniego ustawienia float left lub right dla niektórych bloków może skutkować ich przesunięciem poza zamierzony układ. Dodatkowo nieprawidłowe zarządzanie szerokością bloków może spowodować że układ przekroczy dostępny obszar wyświetlania co szczególnie jest problematyczne w responsywnym projektowaniu stron. Typowym błędem jest również brak uwzględnienia clearfix co może prowadzić do nieprawidłowego przepływu kolejnych elementów w układzie. Zrozumienie jak float wpływa na otaczające elementy oraz jak kontrolować szerokość i przepływ elementów jest kluczowe w tworzeniu stabilnych i przewidywalnych układów stron internetowych. Poprawne zastosowanie tych zasad jest kluczowe dla zgodnego z dobrymi praktykami projektowania stron które są nie tylko estetyczne ale i funkcjonalne w różnych kontekstach urządzeń i środowisk użytkownika.