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: 8 czerwca 2026 21:24
  • Data zakończenia: 8 czerwca 2026 21:45

Egzamin niezdany

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

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym przypisaniem indeksów tych elementów?

A. for
B. do...while
C. while
D. foreach
Zarówno konstrukcja 'for', 'while', jak i 'do...while' są pętlami, które służą do wykonywania bloków kodu wielokrotnie, jednak każda z nich ma swoje specyficzne zastosowania, które mogą prowadzić do nieefektywności w kontekście iteracji po tablicach. Użycie pętli 'for' wymaga manualnego zarządzania indeksami, co zwiększa ryzyko błędów, zwłaszcza w przypadku tablic o zmiennej długości. Przykładowo, iterując po tablicy za pomocą 'for', musimy ustawić warunki początkowe, końcowe oraz właściwie modyfikować indeks, co może prowadzić do błędów, jeśli nie zostanie to prawidłowo skonfigurowane. Z drugiej strony, pętle 'while' i 'do...while' są bardziej elastyczne, ale również wymagają dodatkowego sprawdzania warunków, co czyni je mniej przejrzystymi w kontekście iteracji po tablicach. Często prowadzi to do sytuacji, w których programiści popełniają błędy logiczne, takie jak zapętlenie się lub pominięcie elementów, co z kolei skutkuje trudnościami w utrzymaniu kodu. Dlatego, zamiast stosować te pętle, lepiej jest korzystać z 'foreach', która jest dedykowana do pracy z tablicami i eliminuje wiele problemów związanych z zarządzaniem indeksami.

Pytanie 2

Która z poniższych funkcji zdefiniowanych w języku PHP oblicza sumę połowy wartości a i połowy wartości b?

A. function licz($a, $b) {return $a/2 + $b;}
B. function licz($a, $b) {return ($a/2 + $b)/2;}
C. function licz($a, $b) {return 2/$a + 2/$b;}
D. function licz($a, $b) {return $a/2 + $b/2;}
Odpowiedź jest poprawna, ponieważ funkcja 'licz' w tej formie prawidłowo oblicza sumę połowy wartości a oraz połowy wartości b. W języku PHP, operator '/' dzieli wartość po lewej stronie przez wartość po prawej, więc w tym przypadku a/2 i b/2 zwracają odpowiednio połowę a oraz połowę b. Następnie te dwie wartości są sumowane, co jest zgodne z wymaganym wynikiem. Przykład zastosowania tej funkcji może być użyty w sytuacji, gdy chcemy obliczyć średnią wartość dwóch parametrów, co jest często spotykane w obliczeniach statystycznych i analitycznych. Dobrą praktyką jest również zapewnienie, że wartości a i b są liczbami, co można osiągnąć za pomocą walidacji danych wejściowych. Zastosowanie tej funkcji w większym kontekście, na przykład w aplikacjach webowych czy systemach obliczeniowych, pokazuje jej uniwersalność i efektywność w pracy z danymi.

Pytanie 3

W dokumencie HTML stworzono formularz. Jakie działanie kodu zostanie pokazane przez przeglądarkę, jeśli w drugie pole użytkownik wprowadzi tekst „ala ma kota”?

Ilustracja do pytania
A. Efekt 2
B. Efekt 1
C. Efekt 3
D. Efekt 4
Błędne odpowiedzi wynikają z niewłaściwego zrozumienia działania elementów HTML takich jak select i input type=password. Efekt 1 przedstawia listę kontrolną z opcjami do wyboru co jest niezgodne z kodem HTML w którym użyto elementu select pozwalającego na wybór tylko jednej opcji z rozwijanej listy. Tego typu błąd często wynika z mylenia różnych typów wprowadzania danych w HTML co może prowadzić do nieporozumień w projektowaniu interfejsów użytkownika. Efekt 3 sugeruje że w polu input można swobodnie zobaczyć wpisaną wartość co jest sprzeczne z użyciem typu password który celowo ukrywa wprowadzone znaki zapewniając ochronę danych. Taki typ błędu pojawia się gdy programiści nie uwzględniają zasady bezpieczeństwa w projektowaniu formularzy internetowych. Z kolei efekt 4 pokazuje zestaw przycisków radiowych i ukryte hasło co również nie odpowiada kodowi HTML. Przyciski radiowe są używane w formularzach do wyboru jednej opcji z grupy ale nie są częścią przedstawionego kodu. Często takie błędy są wynikiem niewłaściwego przypisywania typów wprowadzania danych i mogą prowadzić do niewłaściwego działania aplikacji webowych. Kluczowe jest więc zrozumienie różnych typów elementów formularzy i ich właściwego zastosowania w kontekście interfejsu użytkownika oraz bezpieczeństwa danych użytkownika. Dobre praktyki projektowania formularzy obejmują nie tylko estetykę i funkcjonalność ale przede wszystkim bezpieczeństwo i intuicyjność obsługi co jest kluczowe dla użytkowników końcowych. Użycie odpowiednich elementów HTML zgodnych ze standardami W3C zapewnia lepszą kompatybilność i użyteczność aplikacji internetowych oraz pomaga w unikaniu typowych błędów projektowych i implementacyjnych które mogą wpływać na doświadczenie użytkownika.

Pytanie 4

W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia

setcookie("osoba", "Anna Kowalska", time()+(3600*24));
A. będzie przechowywany na serwerze przez 24 godziny
B. będzie przechowywany na serwerze przez jedną godzinę
C. zostanie usunięty po 24 godzinach od jego stworzenia
D. zostanie usunięty po jednej godzinie od momentu jego utworzenia
W języku PHP funkcja setcookie służy do ustawiania plików cookie w przeglądarce użytkownika. Trzeci parametr tej funkcji określa czas wygaśnięcia cookie w postaci znacznika czasowego UNIX co oznacza liczbę sekund od początku epoki UNIX (01.01.1970). W podanym kodzie użyto funkcji time która zwraca aktualny czas w sekundach i dodano do niego wartość 3600 pomnożoną przez 24. Oznacza to dodanie liczby sekund odpowiadającej jednemu pełnemu dniu (24 godziny x 3600 sekund na godzinę). Takie ustawienie skutkuje tym że plik cookie zostanie usunięty automatycznie z przeglądarki użytkownika po upływie dokładnie jednego dnia od jego stworzenia. Jest to zgodne z najlepszymi praktykami zarządzania sesjami i danymi użytkowników w aplikacjach internetowych ponieważ pozwala na kontrolę nad czasem przechowywania danych wrażliwych. Dzięki temu użytkownicy mogą być pewni że ich dane nie będą przechowywane dłużej niż to konieczne co wpływa na zwiększenie bezpieczeństwa i zaufania do aplikacji.

Pytanie 5

Jakie obiekty w bazie danych służą do podsumowywania, prezentacji oraz drukowania danych?

A. formularz
B. raport
C. zestawienie
D. zapytanie
Raport jest narzędziem w bazach danych, które umożliwia podsumowywanie, wyświetlanie i wydruk danych w zorganizowanej formie. Jego głównym celem jest przedstawienie informacji w sposób zrozumiały i estetyczny, co jest szczególnie ważne w kontekście analizy danych oraz podejmowania decyzji biznesowych. Raporty mogą być wykorzystane do generowania zestawień wyników finansowych, analiz sprzedaży czy statystyk użytkowników. Umożliwiają one również prezentację danych w formie tabel, wykresów i diagramów, co zwiększa ich czytelność. W branży IT i zarządzania danymi, dobrą praktyką jest korzystanie z narzędzi raportowych, które integrują się z bazami danych, co pozwala na automatyczne aktualizowanie danych oraz lepszą wizualizację. Warto również wspomnieć o różnych formatach, w jakich raporty mogą być generowane, takich jak PDF, XLSX czy HTML, co umożliwia ich łatwe udostępnianie i archiwizowanie.

Pytanie 6

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Zadeklarować zmienną i
B. Zweryfikować, czy text ma typ string
C. Sprawdzić rozmiar tabeli tab
D. Zainicjować zmienną text
Deklaracja zmiennej i jest już zawarta w nagłówku pętli for co czyni ją poprawną konstrukcją w kontekście iteracyjnego dostępu do elementów tablicy. Sprawdzanie typu zmiennej text przed pętlą mogłoby mieć znaczenie jedynie w szczególnych przypadkach gdyby istniała niepewność co do rodzaju danych z jakimi program ma do czynienia jednak w kontekście zadania najistotniejsze jest zapewnienie że zmienna ta jest zainicjowana. Rozmiar tablicy tab jest sprawdzany w warunku pętli for co stanowi standardową praktykę w celu uniknięcia przekroczenia granic tablicy lecz operacja ta nie ma wpływu na poprawność działania zmiennej text i jej przetwarzanie w pętli. Typowe błędy myślowe w zakresie inicjalizacji zmiennych to pomijanie tego kroku z założeniem że zmienne są automatycznie ustawiane na wartość domyślną co w przypadku JavaScript jest mylące podobnie jak błędne założenie że deklaracja zmiennej i jest opcjonalna przy iteracjach co prowadzi do trudno wykrywalnych błędów w dużych kodach. Kluczowym wnioskiem jest zrozumienie że inicjalizacja zmiennej jest fundamentem poprawnej i bezpiecznej obsługi danych w cyklu programistycznym.

Pytanie 7

Stronę internetową zapisano w języku XHTML. Który z kodów stanowi implementację przedstawionego fragmentu strony, jeżeli żadne style CSS nie zostały zdefiniowane?

Początki HTML

W 1980 fizyk Tim Berners-Lee, pracownik CERN,
stworzył prototyp hipertekstowego systemu informacyjnego – ENQUIRE


A.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
B.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
C.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<hr /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
D.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<i>prototyp hipertekstowego systemu informacyjnego – <b>ENQUIRE</b></i></p>
A. C.
B. D.
C. B.
D. A.
Niestety, twoja odpowiedź nie była poprawna. Wybrany przez ciebie fragment kodu nie odpowiadał strukturze i hierarchii tagów HTML widocznej na obrazku. HTML jest językiem znaczników, który wykorzystuje różne tagi do definiowania struktury i formatowania treści na stronie internetowej. Możliwe, że niepoprawne rozumienie tagów HTML mogło skłonić cię do wybrania nieprawidłowej odpowiedzi. Na przykład, jeśli wybrałeś opcję zawierającą tagi <h2> zamiast <h1> dla nagłówka, to mogło to wynikać z niewłaściwego zrozumienia hierarchii nagłówków w HTML. Podobnie, jeśli wybrałeś opcję, która nie zawierała tagu <br />, mogło to wynikać z niewłaściwego zrozumienia funkcji tego tagu w tworzeniu przerw wiersza. Ważne jest zrozumienie, jak różne tagi HTML wpływają na prezentację i strukturę strony internetowej, aby uniknąć błędów podczas tworzenia stron.

Pytanie 8

W przedstawionej regule CSS: h1 {color: blue} h1 symbolizuje

A. selektor
B. klasę
C. wartość
D. deklarację
Wybierając jedną z pozostałych opcji, można popaść w pułapki typowych błędów związanych z interpretacją terminologii CSS. Na przykład, uznanie h1 za wartość jest mylne, ponieważ wartość odnosi się do konkretnego stylu, czyli w tym wypadku 'blue', który definiuje kolor tekstu. Odpowiedź sugerująca, że h1 to deklaracja, również jest nieprawidłowa; deklaracja to połączenie selektora z właściwością i jej wartością – w tym przypadku {color: blue} stanowi pełną deklarację, a h1 jest tylko częścią tej struktury. Selekcja elementów za pomocą klas, co sugerowałoby traktowanie h1 jako klasy, jest kolejną nieścisłością. Klasy są definiowane w CSS za pomocą kropki, jak w .className, i służą do przypisywania stylów do wielu elementów. H1, jako znacznik HTML, ma swoje zdefiniowane znaczenie w strukturze dokumentu, które jest inne niż klasy CSS. Warto zrozumieć te różnice, aby nie wprowadzać się w błąd podczas pracy z kaskadowymi arkuszami stylów. Efektywne użycie CSS wymaga precyzyjnego zrozumienia terminologii oraz struktury reguł, co pozwala na tworzenie bardziej złożonych i funkcjonalnych projekcji w web designie.

Pytanie 9

Funkcja zapisana w języku PHP ma postać jak poniżej. Jej zadaniem jest

function fun1($liczba)
{
    if($liczba % 2 == 0)
        return 1;

    return 0;
}
A. wypisanie liczby nieparzystej.
B. zwrócenie wartości 1, gdy liczba jest parzysta.
C. wypisanie liczby parzystej.
D. zwrócenie wartości 0, gdy liczba jest parzysta.
Wybrana przez Ciebie odpowiedź jest niepoprawna. W analizowanej funkcji nie ma elementów, które sugerowałyby wypisywanie wyniku, a tylko zwracanie go - stąd odpowiedzi sugerujące wypisywanie są błędne. Funkcja fun1($liczba) w PHP zwraca wartość 1, gdy liczba podana jako argument jest parzysta, a nie wypisuje jej. W PHP, do wypisywania wartości służy funkcja echo lub print, której tutaj brakuje. Poza tym, funkcja zwraca wartość 0, gdy liczba nie jest parzysta, a nie gdy jest parzysta - zatem, ostatnia odpowiedź także jest niepoprawna. Błędne odpowiedzi wynikają z niewłaściwego zrozumienia mechanizmu działania funkcji i operacji, które na niej są wykonywane. Ważne jest, aby umieć odróżnić operacje zwracania wartości od wypisywania jej, a także zrozumieć znaczenie operatora modulo i warunku porównania w kontekście analizowanej funkcji.

Pytanie 10

Który z języków skryptowych nie wykonuje operacji po stronie serwera?

A. ASP
B. CSS
C. Perl
D. PHP
ASP, PHP i Perl to języki skryptowe, które są używane po stronie serwera, co oznacza, że ich kod jest wykonywany na serwerze przed dostarczeniem strony do użytkownika. ASP (Active Server Pages) to technologia opracowana przez Microsoft, która umożliwia tworzenie dynamicznych stron internetowych poprzez integrację z bazami danych oraz obsługę skryptów. PHP (Hypertext Preprocessor) jest jednym z najpopularniejszych języków skryptowych, który również działa po stronie serwera, umożliwiając tworzenie stron internetowych, które mogą generować HTML w oparciu o dane z różnych źródeł, takich jak bazy danych MySQL. Perl, pierwotnie stworzony do przetwarzania tekstu, stał się również wszechstronnym językiem skryptowym do aplikacji webowych, obsługując różnorodne zadania serwerowe. Te języki są integralną częścią nowoczesnego rozwoju aplikacji webowych i pozwalają na obsługę logiki biznesowej, interakcji z użytkownikami oraz komunikacji z bazami danych, co jest niezbędne w tworzeniu dynamicznych i interaktywnych aplikacji internetowych.

Pytanie 11

Gdzie w dokumencie HTML mogą być umieszczane fragmenty kodu JavaScript?

A. tak w sekcji <head>, jak i <body>, w znaczniku <java>
B. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
C. jedynie w sekcji <head>, w znaczniku <script>
D. wyłącznie w sekcji <body>, w znaczniku <java>
Wiesz, wstawianie kodu JavaScript do dokumentu HTML powinno odbywać się w znaczniku <script>. Możesz go umieścić zarówno w <head>, jak i w <body>. Często wrzucamy skrypty do <head>, bo chcemy, żeby załadowały się przed wyświetleniem treści. To się przydaje, gdy skrypty zmieniają coś w DOM. Z drugiej strony, jak wrzucisz je do <body>, to skrypty będą ładowane po całej treści, co może przyspieszyć to, co widzi użytkownik. Na przykład, jeśli tworzysz coś interaktywnego, lepiej umieścić skrypty na dole, żeby nie blokować renderowania. Dobrze jest też pamiętać o atrybucie 'defer' w <script>, bo dzięki temu skrypt się ściąga równolegle z innymi rzeczami, ale działa dopiero jak cały dokument jest załadowany. To ważne, żeby strony działały sprawnie i były przyjemne w użytkowaniu.

Pytanie 12

Zdefiniowano bazę danych z tabelą sklepy, zawierającą pola: nazwa, ulica, miasto, branża. Aby odnaleźć wszystkie nazwy sklepów spożywczych znajdujących się wyłącznie we Wrocławiu, należy użyć kwerendy:

A. SELECT sklepy FROM nazwa WHERE branza='spożywczy' BETWEEN miasto='Wrocław';
B. SELECT sklepy FROM branza='spożywczy' WHERE miasto='Wrocław';
C. SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';
D. SELECT nazwa FROM sklepy WHERE branza='spożywczy' OR miasto='Wrocław';
Pierwsza odpowiedź nie jest właściwa, bo użycie BETWEEN w SQL po prostu nie ma sensu w tym kontekście. BETWEEN jest do określania zakresów wartości, na przykład dat, a nie do porównania różnych kolumn. No i zapytanie jest źle skonstruowane, bo nie mówi, z jakiej tabeli chcemy pobrać te dane. Druga odpowiedź też myli się w składni, bo zamienia kolejność operatorów i nie dodaje odpowiednich klauzul, co prowadzi do błędnych wyników. Na przykład, użycie branza='spożywczy' tam gdzie powinno być FROM, to wyraźny błąd. Trzecia odpowiedź korzysta z operatora OR, co jest technicznie błędne dla tego zapytania, ponieważ chcemy, żeby oba warunki były spełnione jednocześnie. W rezultacie, wszystkie te odpowiedzi są po prostu błędne i nie spełniają standardów pisania zapytań SQL.

Pytanie 13

Wskaż, które z poniższych zdań jest prawdziwe w odniesieniu do definicji stylu: ``````

A. Jest to styl zasięg lokalny
B. Odnośnik będzie napisany czcionką o rozmiarze 14 punktów
C. Akapit będzie przekształcany na małe litery
D. Zdefiniowano dwie klasy
Pierwsza odpowiedź sugeruje, że styl jest lokalny, ale tak naprawdę to nie jest do końca prawda. Definicje stylów w tym kodzie są globalne, więc nie możesz mówić o stylach lokalnych, które odnosiłyby się tylko do konkretnego elementu. Klasy w arkuszu stylów są dostępne w całym dokumencie, więc to są style globalne. Następna odpowiedź mówi, że akapit będzie transponowany na małe litery, co też nie jest prawdą, bo w CSS nie ma zdefiniowanej transformacji tekstu dla elementu P. Element A ma natomiast zastosowaną transformację, która zmienia tekst na małe litery, więc nie można tego przypisać do akapitu. Ostatnia błędna odpowiedź sugeruje, że odnośnik będzie miał czcionkę 14 punktów i to również jest mylne. W rzeczywistości odnośnik A ma czcionkę 16 punktów, co sprawia, że jest lepiej widoczny niż akapit. Wydaje mi się, że te błędne odpowiedzi wynikają z niepełnego zrozumienia, jak działają klasy CSS i jakie style można przypisać różnym elementom HTML.

Pytanie 14

Po wykonaniu kodu PHP zostanie wyświetlona obecna data, zawierająca jedynie

echo date("Y");
A. dzień
B. miesiąc i rok
C. rok
D. dzień oraz miesiąc
Funkcja date w PHP jest super przydatna, bo pozwala na ładne formatowanie daty i godziny. Jak podasz argument Y, to dostaniesz czterocyfrowy rok, co jest zgodne z ISO 8601. To ważne, bo w różnych systemach, jak bazy danych czy księgowość, musisz mieć jasność, który rok jest właściwy. W PHP sporo osób korzysta z tej funkcji, żeby dynamicznie wyciągać datę – to świetne, zwłaszcza gdy tworzysz raporty czy logujesz różne zdarzenia w aplikacjach webowych. Warto też pamiętać, że date Y to tylko jedna z wielu opcji, jakie masz w PHP. Programiści mają dużą swobodę w dobieraniu formatu daty, co daje im możliwość dostosowania wszystkiego do potrzeb projektu. A dobrze sformatowane daty są nie tylko zgodne ze standardami, ale też ułatwiają życie użytkownikom końcowym, bo są jasne i jednoznaczne.

Pytanie 15

W CSS określono styl dla pola do edycji, które będzie miało tło w kolorze jasnozielonym po aktywacji.

input:focus { background-color: LightGreen; }
A. gdy jest to pierwsze użycie tego elementu w dokumencie
B. w każdej sytuacji
C. po kliknięciu myszką w celu wprowadzenia tekstu
D. jeśli zostanie na nie najechane kursorem bez kliknięcia
Typowe błędy myślowe prowadzące do niepoprawnych odpowiedzi często obejmują mylenie różnych stanów interakcji z elementami formularzy. Na przykład, odpowiedź sugerująca, że stylizowane tło zostaje aktywowane "gdy zostanie wskazane kursorem myszy bez kliknięcia" myli pojmowanie stanu focus z prostym najechaniem kursorem. W rzeczywistości, stan focus aktywuje się tylko w wyniku interakcji, takiej jak kliknięcie lub nawigacja za pomocą klawiatury. Kolejną nieścisłością jest stwierdzenie, że formatowanie ma zastosowanie "w każdym przypadku". Takie podejście nie uwzględnia faktu, że styl focus jest specyficzny dla interakcji użytkownika, a więc jego zastosowanie jest ograniczone do sytuacji, w których element jest aktywny. Warto zauważyć, że dobrze zaprojektowane formularze online powinny wykorzystywać zdarzenia focus i blur, aby dostarczać użytkownikom pomocnych wskazówek oraz ułatwić wprowadzanie danych. Ignorowanie tych koncepcji prowadzi do projektowania interfejsów, które nie są w pełni responsywne wobec potrzeb użytkowników. Dlatego zrozumienie różnicy między focus a zwykłym wskazaniem kursorem jest kluczowe dla tworzenia efektywnych i przyjaznych dla użytkownika aplikacji internetowych.

Pytanie 16

W języku SQL wykonano przedstawione poniżej polecenia GRANT. Kto będzie miał prawo do przeglądania danych oraz ich zmiany?

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@localhost;
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. Adam i Anna
B. Anna i Tomasz
C. Tomasz i Adam
D. Jedynie Tomasz
Analizując inne odpowiedzi, można zauważyć, że niektóre z nich nie spełniają podstawowych wymogów związanych z przydzielaniem uprawnień w bazach danych. Na przykład, stwierdzenie, że tylko Anna ma prawo do przeglądania i modyfikowania danych, jest błędne, ponieważ w przydzielonych jej uprawnieniach nie ma komendy SELECT, która jest niezbędna do przeglądania danych. Uprawnienia ALTER, CREATE i DROP, które otrzymała, dotyczą jedynie zmiany struktury bazy, a nie samego przeglądania danych, co jest kluczowe dla jej roli w systemie. Warto także zwrócić uwagę na odpowiedź mówiącą o Tomaszu i Annie. Tomasz rzeczywiście ma przydzielone uprawnienia do przeglądania i modyfikacji danych, jednak Anna nie ma uprawnienia SELECT, więc nie może przeglądać danych. Analogicznie, odpowiedź wskazująca na Tomasza i Adama również pomija fakt, że Anna nie ma dostępu do przeglądania danych, co czyni ją nieprawidłową. W kontekście przydzielania uprawnień, istotne jest zrozumienie, że dostęp do danych powinien być zgodny z rolą użytkownika oraz zadaniami, jakie ma do wykonania. Właściwe przydzielenie uprawnień jest fundamentalne w zapewnieniu bezpieczeństwa danych i ich integralności.

Pytanie 17

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

A. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
B. CHANGE TABLE klienci MODIFY imie CHAR(30);
C. ALTER TABLE klienci CHANGE imie TEXT;
D. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
Odpowiedź ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30) jest poprawna, ponieważ w SQL polecenie ALTER TABLE służy do modyfikacji struktury istniejącej tabeli. W tym przypadku zmieniamy długość pola 'imie' w tabeli 'klienci'. Typ danych VARCHAR (zmienna długość) jest odpowiedni dla pól, które mogą przechowywać tekst o różnej długości, a określenie 30 oznacza, że maksymalna długość tego pola będzie wynosić 30 znaków. Używanie VARCHAR zamiast CHAR jest dobrą praktyką w przypadku, gdy długość danych jest zmienna, co pozwala na oszczędność miejsca w bazie danych. Przykładowo, jeśli tabela przechowuje imiona, które w większości będą krótsze niż 30 znaków, zastosowanie VARCHAR skutkuje mniejszym zużyciem miejsca w porównaniu do CHAR, który zawsze rezerwuje tę samą ilość miejsca. Warto również pamiętać, że przy modyfikowaniu tabeli w SQL należy zachować ostrożność, aby uniknąć utraty danych, szczególnie jeśli zmieniamy typ danych lub długość pola już zawierającego dane.

Pytanie 18

Metoda i zmienna są widoczne tylko dla innych metod w obrębie tej samej klasy. Jaki modyfikator odpowiada przedstawionemu opisowi?

A. public
B. private
C. static
D. protected
Zastosowanie modyfikatorów dostępu w programowaniu obiektowym jest kluczowe dla ochrony danych oraz kontroli ich użycia. Odpowiedzi wskazujące na 'static' sugerują, że metoda lub zmienna jest związana z klasą jako całością, a nie z jej instancją. W praktyce 'static' oznacza, że dany element nie może być używany w kontekście obiektów, co w sytuacji, gdy chcemy ograniczyć dostępność do elementów klasy, jest niewłaściwym podejściem. Modyfikator 'public' z kolei otwiera dostęp do elementów klasy dla wszystkich innych klas, co jest wręcz przeciwieństwem zamierzonego celu wprowadzenia ograniczeń dostępu. Umożliwia to innym klasom niekontrolowane modyfikowanie stanu obiektu, co może prowadzić do problemów z integralnością danych. Odpowiedź sugerująca 'protected' również wprowadza zamieszanie, ponieważ ten modyfikator pozwala na dostęp do elementów klasy w klasach dziedziczących, co nie spełnia warunku wyłączności dostępu do metod i zmiennych wyłącznie dla samej klasy. Często błędne zrozumienie modyfikatorów dostępu prowadzi do naruszenia zasad projektowania obiektowego, co może skutkować trudnościami w utrzymaniu i rozwoju oprogramowania oraz zwiększa ryzyko błędów. Dlatego ważne jest, aby dokładnie rozumieć, jak każdy z modyfikatorów wpływa na kontrolę dostępu i kapsułkowanie danych.

Pytanie 19

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

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

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

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

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

Kod 4.
A. Kod 4
B. Kod 2
C. Kod 3
D. Kod 1
Odpowiedź Kod 3 jest prawidłowa ponieważ instrukcja while w tej formie jest równoważna z podaną pętlą for. W obu przypadkach pętla inicjuje zmienną i na wartości 0 i zwiększa ją o 10 w każdej iteracji aż do osiągnięcia wartości mniejszej niż 100. Pętla for jest skondensowaną formą pętli while i zapewnia bardziej czytelny zapis gdy wszystkie elementy inicjalizacja warunek i inkrementacja są blisko siebie. Taka konstrukcja jest używana w wielu językach programowania zorientowanych obiektowo takich jak JavaScript czy Java. W praktyce pętle te są używane do iteracji przez listy tablice lub do wykonywania powtarzalnych zadań w kodzie. Dobre praktyki zalecają wybór pętli for gdy zakres iteracji jest znany z góry co poprawia czytelność i utrzymanie kodu. Zrozumienie jak pętla while może być przekształcona w pętlę for i odwrotnie jest podstawową umiejętnością w programowaniu co pozwala na elastyczność w pisaniu kodu i lepsze dostosowanie do specyficznych potrzeb aplikacji.

Pytanie 20

Która metoda JavaScript służy do dodawania nowego elementu na końcu tablicy?

A. shift()
B. unshift()
C. pop()
D. push()
Metoda <code>pop()</code> jest często mylona z <code>push()</code>, ale jej działanie jest odwrotne. <code>pop()</code> usuwa ostatni element z tablicy i zwraca go, co oznacza, że nie dodaje żadnych nowych elementów. Jest to użyteczne, gdy chcesz manipulować danymi poprzez usuwanie, ale nie w kontekście dodawania nowych elementów. <code>shift()</code> z kolei usuwa pierwszy element z tablicy, a nie ostatni, i przesuwa wszystkie pozostałe elementy o jedno miejsce do przodu. Jest to przydatne, gdy musisz przetwarzać elementy tablicy w kolejności FIFO, ale nie ma zastosowania przy dodawaniu nowych elementów. Natomiast <code>unshift()</code> dodaje nowe elementy na początku tablicy, co zmienia indeksy wszystkich istniejących elementów, przesuwając je w prawo. Choć może być użyteczne w niektórych scenariuszach, nie jest to metoda dodawania elementów na końcu tablicy. Wszystkie wymienione metody mają swoje specyficzne zastosowania, ale tylko <code>push()</code> jest właściwym wyborem, gdy chcemy dodać elementy na końcu tablicy. Typowe błędy myślowe obejmują mylenie kierunków zmian w tablicach i wybór niewłaściwej metody manipulacji w zależności od wymagań aplikacji.

Pytanie 21

Jakie są określenia typowych komend języka SQL, które dotyczą przeprowadzania operacji na danych SQL DML (np.: dodawanie danych do bazy, usuwanie, modyfikowanie danych)?

A. DELETE, INSERT, UPDATE
B. ALTER, CREATE, DROP
C. DENY, GRANT, REVOKE
D. SELECT, SELECT INTO
Pierwsza odpowiedź DENY, GRANT, REVOKE odnosi się do zarządzania uprawnieniami w bazach danych, a nie do operacji na danych. Te polecenia są używane do kontrolowania dostępu do danych, co jest istotne dla bezpieczeństwa, ale nie mają one wpływu na manipulację danymi. W kontekście SQL DML, są one nieodpowiednie, ponieważ nie dotyczą wstawiania, aktualizowania ani usuwania danych. Odpowiedź SELECT, SELECT INTO odnosi się do operacji wyciągania danych z bazy. SELECT służy do pobierania danych, co jest fundamentalne dla analizy i raportowania, ale nie obejmuje modyfikacji danych. SELECT INTO jest używane do kopiowania danych do nowej tabeli, co również nie spełnia wymogu manipulacji danymi w kontekście DML. Odpowiedź ALTER, CREATE, DROP dotyczy struktury bazy danych i definiowania nowych obiektów, takich jak tabele i indeksy. Te polecenia są częścią języka SQL DDL (Data Definition Language) i nie mają zastosowania w kontekście operacji na danych, które są kluczowe dla DML. Zrozumienie różnicy między DML a DDL jest niezbędne, aby skutecznie zarządzać bazą danych i realizować odpowiednie operacje na danych.

Pytanie 22

Która z poniższych zasad nie przyczyni się pozytywnie do poprawy czytelności kodu?

A. Należy dodawać komentarze w bardziej skomplikowanych fragmentach kodu
B. Kod powinien być napisany bez wcięć i zbędnych przejść do nowej linii
C. Każda linia kodu powinna zawierać jedynie jedną instrukcję
D. Nazwy zmiennych muszą odzwierciedlać ich funkcję
Sugerowanie, że kod powinien być napisany bez wcięć i zbędnych enterów prowadzi do poważnych problemów w zakresie czytelności i zrozumienia kodu. Zasady dotyczące dobrego formatowania kodu, w tym odpowiednie wcięcia, są fundamentem dobrej praktyki programistycznej. Bez wcięć, struktura kodu staje się chaotyczna, a jego logika trudna do śledzenia, co może prowadzić do błędów w obliczeniach lub nieprawidłowego działania programów. Ponadto, programiści często współpracują w zespołach, gdzie zrozumienie kodu przez innych członków zespołu jest kluczowe. Wprowadzenie wcięć oraz użycie zbędnych enterów do oddzielania funkcji czy bloków kodu zwiększa przejrzystość, co jest zgodne z najlepszymi praktykami, takimi jak Clean Code. Dobre nazewnictwo zmiennych i wprowadzanie komentarzy to ważne aspekty, ale nie wystarczą one do zapewnienia pełnej czytelności bez odpowiedniego formatowania. W praktyce, kod, który wygląda na chaotyczny i nieposortowany, może odstraszać innych programistów i prowadzić do błędów podczas dalszej pracy nad projektem. Dlatego należy unikać praktyk, które mogą podważać fundamenty czytelności kodu.

Pytanie 23

W języku MySQL należy wykorzystać polecenie REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian wyłącznie w definicji struktury bazy danych. Polecenie, które służy do odebrania tych uprawnień, ma następującą formę

A. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE ALL ON tabela1 FROM 'anna'@'localhost'
D. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
Polecenie REVOKE w MySQL jest używane do odbierania przydzielonych uprawnień użytkownikom. W przypadku użytkownika 'anna', aby odebrać mu prawa do modyfikacji struktury bazy danych, należy użyć polecenia REVOKE z odpowiednimi uprawnieniami. Wybór REVOKE CREATE ALTER DROP jest poprawny, ponieważ obejmuje kluczowe prawa związane z zarządzaniem strukturą tabeli. Uprawnienie CREATE pozwala na tworzenie nowych obiektów, ALTER umożliwia modyfikację istniejących obiektów, a DROP pozwala na ich usuwanie. Przydzielając te uprawnienia, użytkownik ma pełną kontrolę nad strukturą bazy danych. Odbierając te uprawnienia, ograniczamy możliwości użytkownika do modyfikacji struktury, co jest kluczowe w kontekście zarządzania bezpieczeństwem bazy danych i zapewnienia integralności danych. Przykładem zastosowania tego polecenia może być sytuacja, w której administrator bazy danych chce, aby użytkownik miał jedynie prawa do wprowadzania danych, ale nie do zmiany ich struktury. W takich przypadkach ważne jest, aby precyzyjnie definiować uprawnienia użytkowników, co może pomóc w unikaniu nieautoryzowanych zmian i potencjalnych utrat danych. Należy również odwołać się do standardów SQL, które definiują zarządzanie uprawnieniami w obiektach bazy danych, co jest kluczowym elementem każdego systemu zarządzania bazą danych.

Pytanie 24

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
B. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
C. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
D. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
Analizując niepoprawne odpowiedzi, można zauważyć kilka powszechnych błędów, które prowadzą do mylnych wniosków. Przede wszystkim, użycie operatora '=' zamiast '==' jest fundamentalnym błędem w kontekście języka JavaScript. Operator '=' służy do przypisania wartości, podczas gdy '==' jest operatorem porównania, który sprawdza, czy dwie wartości są sobie równe. Zastosowanie '=' w warunkach logicznych prowadzi do nieprawidłowego działania warunków, ponieważ zamiast porównania wykonujemy przypisanie, co zazwyczaj skutkuje zawsze prawdziwym wynikiem. Ponadto, użycie operatora '&&' w przypadku kolorów w odpowiedzi, która stwierdza, że kolor jest jednocześnie 'niebieski' i 'zielony', jest logicznie niemożliwe, ponieważ jedna zmienna nie może przyjmować dwóch różnych wartości jednocześnie. Tego typu niepoprawne podejścia mogą prowadzić do niezamierzonych wyników w kodzie, co jest sprzeczne z podstawowymi zasadami programowania, takimi jak zasada jedności odpowiedzialności. Kluczowe jest również zrozumienie, że warunki powinny być jasno sformułowane, aby kod był zarówno funkcjonalny, jak i łatwy do zrozumienia dla innych programistów. Dobre praktyki programistyczne wskazują na konieczność stosowania dobrze zdefiniowanych i jednoznacznych warunków, co znacznie ułatwia dalszy rozwój i konserwację kodu.

Pytanie 25

Który typ danych SQL należy użyć, jako optymalny, do zapisania numeru PESEL?

A. BLOB
B. CHAR(11)
C. TINYINT
D. FLOAT(11)
Poprawny wybór to CHAR(11), ponieważ numer PESEL nie jest liczbą w sensie matematycznym, tylko identyfikatorem tekstowym złożonym z 11 znaków. W praktyce nigdy nie wykonujemy na PESEL‑u operacji arytmetycznych (dodawanie, odejmowanie, mnożenie), więc trzymanie go w typie numerycznym nie ma sensu i zwykle tylko komplikuje życie. Z punktu widzenia projektowania baz danych przyjmuje się dobrą praktykę: wszystkie identyfikatory, które mają stałą długość i mogą zaczynać się od zera, zapisujemy w typie znakowym o stałej długości, czyli właśnie CHAR(n). Dzięki CHAR(11) mamy gwarancję, że w każdej komórce kolumny PESEL będzie dokładnie 11 znaków. Silnik bazy danych może to łatwo sprawdzić, co pomaga w walidacji danych i porządku w tabeli. Nie zgubią się też zera wiodące, które przy typach liczbowych potrafią zniknąć. Moim zdaniem, szczególnie w systemach produkcyjnych (np. system kadrowy, rejestr pacjentów, e‑sklep z weryfikacją danych klienta), taki zapis jest po prostu najbezpieczniejszy i najbardziej przewidywalny. W wielu firmowych standardach programistycznych jest wręcz zapisane wprost: PESEL, NIP, REGON, numery dokumentów, numery kart, kody pocztowe – zawsze trzymamy jako CHAR/VARCHAR, a nie jako INT czy inne typy numeryczne. Dodatkowo CHAR(11) jest efektywny wydajnościowo dla stałej długości: porównywanie, indeksowanie, sortowanie takiej kolumny jest proste dla silnika SQL. W razie potrzeby możesz też na takim polu założyć indeks unikalny (UNIQUE), żeby baza nie dopuściła do wprowadzenia dwóch takich samych PESEL‑i. To jest właśnie praktyczne połączenie typów danych z zasadami integralności i jakości danych, których oczekuje się w prawidłowo zaprojektowanych bazach.

Pytanie 26

W języku PHP nie można wykonać

A. Obsługiwania danych z formularzy
B. Tworzenia dynamicznej treści strony
C. Operacji na danych zgromadzonych w bazie danych
D. Dynamicznej zmiany treści strony HTML w przeglądarce
Zmienianie dynamiczne zawartości strony HTML w przeglądarce nie jest możliwe za pomocą języka PHP, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP generuje kod HTML, który jest następnie przesyłany do przeglądarki, ale nie ma możliwości modyfikacji tego kodu po jego załadowaniu. Przykładowo, gdy użytkownik wypełnia formularz na stronie i przesyła dane, PHP może przetworzyć te dane na serwerze, ale wszelkie zmiany muszą być wysłane do przeglądarki jako nowa strona lub w odpowiedzi Ajax. W praktyce oznacza to, że dla dynamicznych interakcji na stronie, takich jak zmiana zawartości bez przeładowania, stosuje się JavaScript, który działa po stronie klienta i jest odpowiedzialny za manipulację DOM. W kontekście dobrych praktyk, warto pamiętać o rozdzieleniu logiki przetwarzania danych (PHP) i interakcji użytkownika (JavaScript), co prowadzi do bardziej modułowych i łatwych w utrzymaniu aplikacji webowych.

Pytanie 27

Logo platformy CMS noszącej nazwę Joomla! to

Ilustracja do pytania
A. C
B. B
C. A
D. D
Pozostałe logotypy reprezentują inne popularne systemy CMS i platformy. Logo oznaczone literą A przedstawia Drupala który jest także systemem zarządzania treścią napisanym w PHP. Drupal jest znany z dużej elastyczności oraz możliwości tworzenia zaawansowanych aplikacji webowych. Jest często używany przez duże organizacje i rządy ze względu na swoje zaawansowane opcje bezpieczeństwa i możliwość personalizacji. Logo C przedstawia inny mniej znany system który nie jest tak popularny jak Joomla! czy Drupal ale może być wykorzystywany w specyficznych przypadkach. Z kolei logo D to symbol WordPressa najbardziej rozpowszechnionego systemu CMS na świecie. WordPress jest znany z prostoty obsługi i ogromnej liczby dostępnych wtyczek i motywów co czyni go idealnym wyborem dla blogerów i małych przedsiębiorstw. Wybór niewłaściwego logo wynika często z niewiedzy lub pomylenia różnych systemów CMS które różnią się funkcjonalnością i zastosowaniem. Każdy z tych systemów ma swoje unikalne zalety i jest przeznaczony do różnych rodzajów zastosowań dlatego ważne jest aby znać i rozumieć ich specyfikę przed podjęciem decyzji o wyborze odpowiedniego dla danego projektu. Porównując te systemy Joomla! oferuje unikalne funkcje które wyróżniają ją na tle innych co czyni ją doskonałym wyborem dla średnich i dużych projektów wymagających solidnej bazy danych i wsparcia społeczności użytkowników

Pytanie 28

Na przedstawionej grafice znajduje się struktura sekcji dla witryny internetowej. Przyjmując, że blok5 nie ma przypisanej szerokości, a bloki są określone w dokumencie HTML w kolejności ich numeracji, jak powinno wyglądać zdefiniowanie opływania?

Ilustracja do pytania
A. bloki 1, 2, 4 float: left; blok 3 float: right; blok 5 clear: both;
B. blok 1 float: left; bloki 2, 4 float: center; blok 3 float: right; blok 5 clear: both;
C. bloki 1, 2, 4 float: left; blok 3, 5 float: right;
D. bloki 1, 2, 3, 4 float: right; blok 5 clear: right;
Właściwe użycie float w CSS jest kluczowe do tworzenia układów stron. W pierwszej propozycji zastosowano float: left; dla bloków 1, 2, 4 oraz float: right; dla bloków 3 i 5, co jest niepoprawne, ponieważ blok 5 powinien być odseparowany od pozostałych poprzez clear: both;, aby zająć całą szerokość strony. W drugiej odpowiedzi, chociaż float: right; dla bloków 1, 2, 3, 4 może wydawać się poprawne dla niektórych stylów, blok 5 z clear: right; nie będzie działał, ponieważ nie uwzględnia float: left, które ma zastosowanie w układzie. Ostatnia odpowiedź używa float: center;, co jest nieprawidłowe, ponieważ w CSS nie istnieje taka właściwość. Elementy można centrować za pomocą innych metod, ale nie za pomocą float. Ponadto, przypisanie clear dla bloku 5 jest poprawne, ale pozostałe ustawienia float dla bloków są błędne i niezgodne z przedstawionym układem. Konsekwentne błędy często wynikają z braku zrozumienia, jak właściwości float i clear współdziałają w kontekście modelu pudełkowego w CSS.

Pytanie 29

Który z podanych formatów pozwala na zapis zarówno dźwięku, jak i obrazu?

A. WAV
B. MP4
C. MP3
D. PNG
W przypadku formatów MP3, PNG i WAV, każdy z nich jest zaprojektowany do przechowywania jedynie jednego typu danych, co wyklucza ich zdolność do jednoczesnego zapisu dźwięku i obrazu. MP3 to format kompresji dźwięku opracowany głównie do przechowywania muzyki i innych nagrań audio. Choć jest szeroko stosowany i oferuje wysoką jakość dźwięku przy niewielkim rozmiarze pliku, nie ma możliwości zapisu danych wizualnych. Z kolei PNG jest formatem graficznym, który obsługuje przechowywanie obrazów rastrowych, oferując przezroczystość i bezstratną kompresję, ale nie jest przeznaczony do przechowywania dźwięku. Format WAV, z drugiej strony, jest standardem dla przechowywania dźwięku w postaci nieskompresowanej, co zapewnia wysoką jakość audio, ale również nie wspiera zapisu wideo. W związku z tym, wszystkie te formaty mają swoje specyficzne zastosowania, ale żaden z nich nie jest w stanie zrealizować funkcji zapisu zarówno dźwięku, jak i obrazu, co czyni MP4 jedynym odpowiednim wyborem w tym kontekście.

Pytanie 30

Poniżej przedstawiono fragment kodu w języku PHP. Jakie liczby wypisze ta pętla jako wynik swojego działania?

for ($i = 0; $i <= 20; $i += 4)
echo $i . ' ';
A. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
B. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
C. 0,4,8,12,16
D. 0,4,8,12,16,20
Pętla for w PHP działa tak, że zaczyna od 0 i leci aż do 20, dodając 4 przy każdej iteracji. Dzięki temu, dostajemy liczby 0, 4, 8, 12, 16 i 20. To jest naprawdę przydatne, zwłaszcza gdy chcemy przetwarzać co czwarty element w zbiorze. Pętle for są bardzo popularne w programowaniu, bo pozwalają robić rzeczy wielokrotnie bez zbędnego powtarzania kodu. Jeśli zrozumiesz, jak to działa, to potem dużo łatwiej będzie Ci pisać różne programy. Z moich doświadczeń wynika, że lepiej jest unikać tzw. magicznych liczb w kodzie, czyli takich, które nie mają sensownego wyjaśnienia. Lepiej używać stałych czy zmiennych, bo to sprawia, że kod jest bardziej czytelny i łatwiejszy do ogarnięcia w przyszłości.

Pytanie 31

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; }
B. nav { float: left; } aside { float: left; }
C. nav { float: right; } section { float: right; }
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 32

Który znacznik lub zestaw znaczników nie jest używany do określenia struktury dokumentu HTML?

A. <div>
B. <i>, <b>, <u>
C. <section>
D. <header>, <footer>
Te znaczniki, czyli <i>, <b> i <u>, nie są jakby do tworzenia struktury dokumentu HTML, ale bardziej do formatowania tekstu. Zgodnie z nowymi standardami HTML5, są to elementy semantyczne, które wpływają na to, jak coś wygląda, a nie na to, jak jest zorganizowane. Znacznik <i> używamy, jak chcemy coś napisać kursywą, <b>, żeby coś podkreślić, a <u>, żeby coś podkreślić. Często korzysta się z nich w stylach CSS, ale nie nadają one hierarchii ani kontekstu dokumentu. Jak chcesz wyróżnić jakiś tekst w kontekście kodu czy tytułu rozdziału, lepiej skorzystać z bardziej semantycznych znaczników, jak <em> dla podkreślenia znaczenia albo <strong> dla podkreślenia wagi. W czasach, kiedy dostępność i SEO są coraz ważniejsze, używanie semantycznych elementów to klucz do tworzenia lepszych i bardziej przejrzystych stron.

Pytanie 33

W języku JavaScript zapisano kod, którego wynikiem działania jest

var osoba = prompt("Podaj imię", "Adam");
A. pobranie z formularza wyświetlonego na stronie HTML imienia "Adam".
B. wyświetlenie okna z pustym polem edycyjnym.
C. wyświetlenie okna z polem edycyjnym, w którym jest wpisany domyślny tekst "Adam".
D. bezpośrednie wpisanie do zmiennej osoba wartości "Adam".
Niepoprawne odpowiedzi sugerują, że kod JavaScript może bezpośrednio wpisać wartość do zmiennej lub pobrać dane z formularza wyświetlanego na stronie HTML. Te rozumowania są jednak błędne. W JavaScript, aby przypisać wartość do zmiennej, musimy użyć operatora przypisania =, a nie metody prompt(). Metoda prompt() służy do wyświetlania okna dialogowego z polem tekstowym dla użytkownika, a nie do manipulowania danymi na stronie. Podobnie, pobieranie danych z formularza wymaga interakcji z DOM, a nie prostego użycia metody prompt(). W przypadku pustego pola edycyjnego, jest to możliwe tylko wtedy, gdy nie podamy drugiego argumentu do metody prompt(). W podanym kodzie drugi argument to 'Adam', co oznacza, że w polu edycyjnym domyślnie będzie wpisany tekst 'Adam'.

Pytanie 34

Jakie zapytanie SQL będzie odpowiednie do odnalezienia w podanej tabeli tylko imion oraz nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
B. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
C. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
D. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
W tym zapytaniu zastosowałeś składnię SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, co jest super, bo pozwala wyciągnąć tylko te imiona i nazwiska pacjentów, którzy urodzili się przed rokiem 2002. Użycie konkretnych kolumn jak imie i nazwisko zamiast znaku * to niezła sprawa, bo ogranicza wyniki do tego, co naprawdę potrzebujesz. To z kolei może znacząco zwiększyć wydajność przesyłania danych. No i to WHERE rok_urodzenia < 2002 – świetny ruch! Fajnie, że potrafisz filtrować dane według konkretnego warunku. Bez tego miałbyś wszystkie osoby, nie tylko te sprzed 2002 roku. To jest właśnie selekcja warunkowa w SQL, a jej znajomość to podstawa przy analizie danych. Zgadzam się również, że uniknięcie znaków wieloznacznych jak LIKE w tej sytuacji to dobre podejście, bo używasz bezpośrednich porównań liczbowych, co generalnie działa lepiej i daje jaśniejsze wyniki.

Pytanie 35

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

var str1 = "JavaScript"; var str2 = str1.substring(2, 6);
A. vaSc
B. avaScr
C. avaS
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 36

Polecenie DBCC CHECKDB 'sklepAGD', Repair_fast) w systemie MS SQL Server

A. sprawdzi spójność bazy danych i naprawi uszkodzone indeksy
B. zweryfikuje spójność danej tabeli
C. zweryfikuje spójność danej tabeli oraz naprawi uszkodzone rekordy
D. potwierdzi spójność bazy danych i utworzy kopię zapasową
Odpowiedzi sugerujące, że polecenie DBCC CHECKDB sprawdza spójność jedynie określonej tabeli są nieprecyzyjne, ponieważ w rzeczywistości działa na całej bazie danych. Choć istnieje możliwość sprawdzania poszczególnych tabel za pomocą innych poleceń, DBCC CHECKDB jest narzędziem, które analizuje całą strukturę bazy danych wraz z jej indeksami i danymi. Twierdzenie, że to polecenie jedynie sprawdza spójność bazy danych oraz wykonuje kopię bezpieczeństwa, jest mylące. DBCC CHECKDB nie tworzy kopii zapasowych, a jego głównym celem jest identyfikacja i raportowanie błędów, co jest kluczowe w kontekście utrzymania zdrowia bazy danych. Użytkownicy mogą zatem błędnie zakładać, że polecenie zapewnia automatyczną naprawę danych, co w rzeczywistości wymaga zastosowania dodatkowych opcji naprawy, takich jak Repair_fast lub Repair_rebuild. Ponadto, niektóre odpowiedzi wskazują na naprawę uszkodzonych rekordów, co nie jest precyzyjne, ponieważ DBCC CHECKDB zajmuje się głównie naprawą indeksów oraz strukturalnych problemów w bazie danych, a nie pojedynczych rekordów. Rzetelne zrozumienie tych różnic jest kluczowe dla skutecznego zarządzania bazą danych i unikania nieporozumień dotyczących działania narzędzi diagnostycznych w MS SQL Server.

Pytanie 37

Podano fragment kodu PHP, w którym znajduje się zadeklarowana zmienna typu tablica. Jakie imię zostanie wyświetlone po wykonaniu tego kodu?

Ilustracja do pytania
A. Anna
B. Aleksandra
C. Krzysztof
D. Tomasz
W zadanym pytaniu istotne jest zrozumienie indeksowania tablic w PHP które jest językiem o indeksowaniu zerowym. Oznacza to że pierwszy element tablicy ma indeks 0 drugi ma indeks 1 i tak dalej. Częstym błędem jest intuicyjne przypisywanie pierwszemu elementowi indeksu 1 co prowadzi do niepoprawnych wyników. W przypadku omawianego kodu tablica zawiera elementy: 'Anna' 'Tomasz' 'Krzysztof' i 'Aleksandra'. Aby uzyskać dostęp do trzeciego elementu należy użyć indeksu 2 a nie 3. Element o indeksie 2 w tej tablicy to 'Krzysztof' co jest poprawną odpowiedzią. Pomyłki w indeksowaniu mogą prowadzić do trudnych do zdiagnozowania błędów w programach takich jak 'undefined offset' gdy próbujemy uzyskać dostęp do nieistniejącego indeksu. Dlatego ważne jest aby zawsze weryfikować zakres i poprawność używanych indeksów zwłaszcza w skomplikowanych strukturach danych. Dodatkowo warto zaznaczyć że w niektórych językach programowania takie jak Python indeksowanie również jest zerowe co pozwala na łatwiejsze przejście pomiędzy różnymi językami programowania bez zmiany mentalnego modelu działania tablic.

Pytanie 38

Wykorzystanie definicji stylu CSS spowoduje, że nagłówki drugiego poziomu będą się wyświetlać

h2 {
    text-decoration: overline;
    font-style: italic;
    line-height: 60px;
}
A. czcionką standardową, z linią nad tekstem, wysokość wiersza wynosi 60 px
B. czcionką standardową, z linią pod tekstem, odległość między znakami wynosi 60 px
C. czcionką kursywną, z linią pod tekstem, wysokość wiersza wynosi 60 px
D. czcionką kursywną, z linią nad tekstem, wysokość wiersza wynosi 60 px
Odpowiedź numer 2 jest poprawna, ponieważ definicja stylu CSS zawiera właściwości, które dokładnie odpowiadają tej opcji. Właściwość font-style: italic sprawia, że tekst nagłówka będzie zapisany czcionką pochyloną, co jest często stosowane w celu nadania tekstowi bardziej dynamicznego i estetycznego wyglądu. Jest to szczególnie przydatne w projektowaniu stron internetowych, gdzie wyróżnienie nagłówków ma kluczowe znaczenie dla czytelności i atrakcyjności wizualnej. text-decoration: overline dodaje linię nad tekstem, co jest mniej powszechnym, ale interesującym sposobem na wyróżnienie tekstu. Może być używane w nowoczesnych projektach, aby nadać stronie unikalny charakter. Wysokość wiersza line-height: 60px zapewnia odpowiednią przestrzeń między wierszami, co zwiększa czytelność, szczególnie przy większych czcionkach. Taki sposób formatowania jest zgodny ze standardami projektowania UX/UI, które kładą nacisk na estetykę i funkcjonalność. Dlatego zrozumienie tych właściwości i ich zastosowanie jest kluczowe dla każdego projektanta stron internetowych.

Pytanie 39

Jakie będzie wyjście programu napisanego w języku JavaScript, umieszczonego w ramce, po podaniu wartości 5 na wejściu?

Ilustracja do pytania
A. 60
B. 120
C. 625
D. 125
Pytanie dotyczy obliczenia silni liczby podanej przez użytkownika w języku JavaScript. Program przy użyciu pętli for oblicza silnię liczby n, zaczynając od wartości a równej 1. Silnia liczby, oznaczana jako n!, to iloczyn wszystkich liczb naturalnych od 1 do n. W tym przypadku, użytkownik podaje liczbę 5, co oznacza że program oblicza 5! czyli 5 * 4 * 3 * 2 * 1. Wynik tego działania to 120, co jest poprawną odpowiedzią. Silnia jest często wykorzystywana w kombinatoryce i statystyce, a także w algorytmach związanych z analizą permutacji. Wykorzystanie pętli for w tym kontekście jest powszechną praktyką w programowaniu, umożliwiającą iterację poprzez określony zakres liczb oraz wykonywanie logicznych działań w złożonych obliczeniach algorytmicznych. Dobrą praktyką jest zrozumienie, jak działają pętle i jawne przypisywanie wartości początkowych zmiennych, co ułatwia debugowanie i rozwój kodu. Tego typu operacje matematyczne są podstawą wielu zaawansowanych zastosowań, od teoretycznych podstaw algorytmów do praktycznych implementacji w analizach danych.

Pytanie 40

Do grupowania elementów w blok, można użyć znacznika

A. <div>
B. <p>
C. <param>
D. <span>
Poprawnie wskazany znacznik to <div>, bo właśnie on w HTML służy do ogólnego grupowania elementów w blok. <div> jest elementem blokowym (block-level), co oznacza, że domyślnie zajmuje całą dostępną szerokość i zaczyna się od nowej linii. Z punktu widzenia przeglądarki i CSS jest to taki „kontener”, do którego wrzucasz inne elementy, żeby sensownie ułożyć strukturę strony. Bardzo często używa się <div> do tworzenia sekcji layoutu: nagłówka strony, głównej zawartości, bocznego panelu, stopki. Przykładowo: <div class="container"> ... </div> pozwala Ci potem w CSS ostylować całą tę grupę jednym zestawem reguł, np. ustawić szerokość, marginesy, tło czy ramkę. W nowocześniejszych projektach <div> często łączy się z flexboxem albo gridem, np. <div class="grid"> jako główny kontener siatki. Z mojego doświadczenia <div> jest jednym z najczęściej używanych znaczników, ale warto pamiętać o semantyce: tam gdzie to możliwe, lepiej użyć <header>, <main>, <section>, <article>, <footer>. One też są blokowe, ale niosą dodatkowe znaczenie dla czytników ekranu i SEO. Gdy jednak potrzebujesz po prostu neutralnego kontenera blokowego, bez konkretnej semantyki, <div> jest dokładnie tym, czego szukasz i jest to zgodne z dobrymi praktykami opisanymi w specyfikacji HTML Living Standard.