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: 8 czerwca 2026 13:48
  • Data zakończenia: 8 czerwca 2026 13:53

Egzamin niezdany

Wynik: 19/40 punktów (47,5%)

Wymagane minimum: 20 punktów (50%)

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

Aby zaprojektować kształt logo dla strony WWW sposobem przedstawionym na obrazie, należy zastosować funkcję

Ilustracja do pytania
A. sumy.
B. części wspólnej.
C. wykluczenia.
D. różnicy.
Dobrze! Wybrano poprawną odpowiedź, którą jest 'wykluczenie'. Na przedstawionym obrazie mamy do czynienia z dwoma kształtami - jeden fioletowy, drugi czerwony. Fioletowy jest nałożony na czerwony i w wyniku tej operacji powstał nowy kształt, który pokazuje tylko te części czerwonego kształtu, które nie pokrywają się z fioletowym. Właśnie tak działa operacja wykluczenia w grafice komputerowej - wynikowa forma zawiera tylko te elementy jednego obiektu, które nie nakładają się z drugim obiektem. Jest to bardzo ważne narzędzie w projektowaniu graficznym, zwłaszcza w przypadku tworzenia logotypów, gdzie często zachodzi potrzeba nałożenia jednego kształtu na drugi, ale chcemy pokazać tylko te części pierwszego kształtu, które nie pokrywają się z drugim.

Pytanie 2

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

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

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

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

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

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

Pytanie 3

W formularzu dane z pola input o typie number zostały przypisane do zmiennej a, a następnie przetwarzane w skrypcie JavaScript w następujący sposób:

var x = parseFloat(a);
Jaki typ będzie miała zmienna x?
A. NaN
B. napisowego
C. liczbowego, całkowitego
D. zmiennoprzecinkowego
Zmienna x będzie typu zmiennoprzecinkowego, ponieważ funkcja parseFloat() konwertuje wartość przekazaną jej jako argument na liczbę zmiennoprzecinkową. W przypadku, gdy zmienna a zawiera poprawną reprezentację liczby, np. '10.5' lub '3.14', parseFloat() zwróci odpowiednią wartość zmiennoprzecinkową. Dobrą praktyką jest zapewnienie, że wartość w a jest odpowiednio walidowana przed konwersją, aby uniknąć błędów i niepożądanych wyników. Zmiennoprzecinkowe dane mogą być szczególnie użyteczne w aplikacjach finansowych, graficznych czy inżynieryjnych, gdzie precyzyjne obliczenia są kluczowe. Ponadto, JavaScript automatycznie przekształca liczby całkowite do postaci zmiennoprzecinkowej, więc nawet jeśli a zawiera liczbę całkowitą, wynik w zmiennej x również będzie typem zmiennoprzecinkowym. Znajomość tego zachowania jest istotna dla programistów, aby skutecznie obsługiwać różnorodne operacje numeryczne.

Pytanie 4

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
B. nazwa to pole klasy przedmiot.
C. zmienna x będzie przechowywać wynik działania metody nazwa.
D. nazwa to właściwość obiektu przedmiot.
Rozważając inne proponowane odpowiedzi, należy zrozumieć, że język JavaScript często wykorzystuje programowanie obiektowe, gdzie właściwości i metody obiektów różnią się w użyciu. Pierwsza opcja sugeruje, że nazwa jest właściwością obiektu przedmiot, co jest błędne w kontekście przedstawionego kodu, ponieważ użyto nawiasów okrągłych, co jednoznacznie wskazuje na wywołanie metody, a nie na odwołanie się do właściwości. Druga opcja mówi o nazwie jako polu klasy przedmiot, co jest mylące, ponieważ w JavaScript nie istnieje formalny podział na pola i metody w taki sposób, jak w statycznie typowanych językach jak Java czy C++. JavaScript, jako język dynamiczny, używa właściwości obiektu do przechowywania zarówno danych, jak i funkcji. Czwarta propozycja, że zmienna x będzie przechowywać wynik działania funkcji przedmiot, również jest błędna, ponieważ w kodzie widzimy wywołanie metody nazwa() na obiekcie przedmiot, a nie wywołanie funkcji przedmiot. Typowe błędy myślowe mogą wynikać z niewłaściwego rozróżnienia między funkcjami i metodami, czy też z niepoprawnego przypisywania ról poszczególnym elementom składni w dynamicznie typowanych językach, co prowadzi do nieporozumień w kontekście konwencji programistycznych stosowanych w JavaScript.

Pytanie 5

Co chce osiągnąć poniższe zapytanie MySQL?

ALTER TABLE ksiazki
MODIFY tytul VARCHAR(100) NOT NULL;
A. Zmienić typ kolumny w tabeli ksiazki
B. Usunąć kolumnę tytul z tabeli ksiazki
C. Zmienić nazwę kolumny w tabeli ksiazki
D. Dodać do tabeli ksiazki kolumnę tytul
Rozważając inne odpowiedzi, warto zrozumieć, dlaczego nie są poprawne. Dodanie kolumny do tabeli w SQL realizowane jest za pomocą polecenia ADD, co różni się od użytego tutaj MODIFY. Polecenie ADD jest używane, gdy chcemy wprowadzić nową kolumnę, której wcześniej w tabeli nie było. Z kolei usunięcie kolumny wymaga użycia DROP COLUMN, co także odbiega od przedstawionego polecenia. Polecenie DROP COLUMN jest bardziej destrukcyjne, ponieważ usuwa całą kolumnę i jej dane. Zmiana nazwy kolumny w SQL zazwyczaj wymaga użycia polecenia RENAME, które służy do zmiany nazewnictwa kolumn lub tabel. W zależności od systemu zarządzania bazą danych (DBMS), składnia może się różnić, ale w MySQL często używa się RENAME COLUMN. Błędne rozumienie tych poleceń często wynika z niewystarczającego zapoznania się z dokumentacją danego DBMS, co może prowadzić do zastosowania nieodpowiednich poleceń. Praktyka i znajomość standardów SQL pomagają uniknąć takich pomyłek, zapewniając poprawną i efektywną pracę z bazą danych.

Pytanie 6

Na ilustracji przedstawiono strukturę bloków na stronie internetowej. Który z poniższych fragmentów CSS odpowiada takim ustawieniom? (Dla uproszczenia pominięto właściwości dotyczące koloru tła, wysokości oraz czcionki)

Ilustracja do pytania
A. #pierwszy {float:left; width:30%; } #drugi {clear:both; width:70%; } #trzeci {float:left; width:70%; } #czwarty {clear:both; }
B. #pierwszy{float:left; width:30%;} #drugi {clear:both; width:70%;} #trzeci {clear:both; width:70%;} #czwarty {float:left; width:100%;}
C. #pierwszy {float:left; width:30%;} #drugi {float:left; width:70%;} #trzeci {float:left; width:70%;} #czwarty {clear:both; }
D. #pierwszy { width: 30%; } #drugi { width: 70%; } #trzeci { width: 70%; } #czwarty { width: 100%; }
Odpowiedź pierwsza jest prawidłowa, gdyż prawidłowo wykorzystuje właściwość float w stylach CSS, aby uzyskać pożądany układ bloków na stronie internetowej. Float pozwala elementom przemieszczać się na lewą lub prawą stronę kontenera, co jest kluczowe w tworzeniu layoutów. W tym przypadku #pierwszy, #drugi i #trzeci mają ustawione float:left, co umożliwia ich równoległe ustawienie w poziomie aż do momentu, gdy szerokości kontenera są zapełnione. Następnie blok #czwarty wymaga clear:both, aby przemieszczać się poniżej wszystkich poprzednich elementów z ustawionym float. To powszechna technika stosowana w projektowaniu responsywnych układów stron, gdzie równoległe pozycjonowanie elementów pozwala na efektywne wykorzystanie przestrzeni. Float w połączeniu z odpowiednimi szerokościami procentowymi pomaga tworzyć elastyczne projekty, które dobrze skalują się na różnych urządzeniach, co jest zgodne z nowoczesnymi standardami web developmentu. Ponadto zrozumienie działania float i clear jest fundamentem przy tworzeniu klasycznych layoutów typu grid przed wprowadzeniem nowoczesnych rozwiązań takich jak Flexbox czy CSS Grid, co pokazuje zrozumienie podstawowych zasad CSS.

Pytanie 7

Podaj definicję metody, którą trzeba umieścić w miejscu kropek, aby na stronie WWW pojawił się tekst: Jan Kowalski

Ilustracja do pytania
A. B
B. A
C. D
D. C
Pozostałe odpowiedzi zawierają błędy związane z niepoprawnym użyciem kontekstu this lub niekompletną definicją funkcji. W opcji B metoda dane została zdefiniowana jako funkcja globalna, co powoduje, że this nie odnosi się do obiektu osoba, ale do obiektu globalnego, co uniemożliwia poprawne odwołanie się do właściwości imie i nazwisko. To prowadzi do błędnych lub niezdefiniowanych wyników, ponieważ this w tym kontekście nie zawiera oczekiwanych właściwości. Opcja C nie używa słowa kluczowego this, co oznacza, że zmienne imie i nazwisko są traktowane jako zmienne globalne, a nie właściwości obiektu osoba. Jeżeli takie zmienne globalne nie istnieją, powoduje to błąd w wykonaniu, ponieważ kod próbuje odwołać się do niezdefiniowanych zmiennych. W opcji D użycie funkcji bez return powoduje, że metoda dane nie zwraca żadnej wartości, co skutkuje przypisaniem undefined do innerHTML, co jest oczywistym błędem w kontekście oczekiwanego wyświetlenia tekstu. Wszystkie te błędne podejścia wynikają z niepoprawnego zarządzania kontekstem obiektowym w JavaScript, co podkreśla znaczenie zrozumienia wiązania dynamicznego słowa kluczowego this i dobrych praktyk w projektowaniu metod obiektowych w JavaScript. Kluczowym aspektem jest zapewnienie, że metody mają dostęp do właściwości obiektu, w ramach którego zostały zdefiniowane, co jest osiągane przez poprawne użycie this w kontekście metody wewnętrznej obiektu.

Pytanie 8

Dodanie ograniczenia klucza obcego w taki sposób, aby kolumna Klasy_id z tabeli Uczniowie była powiązana z kolumną id w tabeli Klasy zostanie wykonane przy użyciu polecenia

Ilustracja do pytania
A. ALTER TABLE Uczniowie DROP FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
B. ALTER TABLE Uczniowie DROP CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
C. ALTER TABLE Uczniowie ADD CONSTRAINT FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
D. ALTER TABLE Uczniowie ADD FOREIGN KEY FKKlasy FOREIGN KEY(Klasy_id) REFERENCES Klasy(id);
W poleceniach dotyczących kluczy obcych bardzo łatwo pomylić operacje `ADD` i `DROP` oraz prawidłową składnię dla poszczególnych dialektów SQL. W przedstawionych błędnych odpowiedziach pojawia się kilka typowych nieporozumień. Część z nich próbuje używać słowa kluczowego `DROP`, które służy do usuwania istniejącego ograniczenia, a nie do jego tworzenia. Jeżeli naszym celem jest dopiero dodanie relacji między tabelą `Uczniowie` a tabelą `Klasy`, to użycie `DROP CONSTRAINT` albo `DROP FOREIGN KEY` jest po prostu logicznie sprzeczne z zadaniem – takie polecenia mogłyby mieć sens tylko wtedy, gdy klucz obcy `FKKlasy` już istnieje i chcemy go zlikwidować. W praktyce takie pomyłki wynikają z mylenia dwóch kroków: projektowania schematu (gdzie klucze dopiero dodajemy) z refaktoryzacją istniejącej bazy (gdzie często coś usuwamy i tworzymy na nowo). Kolejna sprawa to składnia `ADD FOREIGN KEY FKKlasy FOREIGN KEY(...)`. W standardowych systemach zarządzania bazą danych najpierw podaje się `ADD CONSTRAINT nazwa`, a dopiero później słowo `FOREIGN KEY` wraz z listą kolumn. Wpychanie nazwy ograniczenia między `ADD FOREIGN KEY` a definicję kolumn nie jest zgodne z zasadami składni SQL i po prostu nie zadziała. Moim zdaniem to efekt mieszania różnych przykładów z internetu, gdzie w jednych pokazuje się nazwane ograniczenia (`ADD CONSTRAINT ...`), a w innych anonimowe (`ADD FOREIGN KEY (...) REFERENCES ...`), bez nazwy. Dodatkowo, używanie w jednym poleceniu jednocześnie `DROP` i całej definicji `FOREIGN KEY(Klasy_id) REFERENCES Klasy(id)` jest nielogiczne: przy usuwaniu ograniczenia podajemy wyłącznie jego nazwę, bo silnik bazy już zna szczegóły definicji i nie trzeba ich powtarzać. W poprawnym podejściu zawsze zadajemy sobie pytanie: czy ja chcę coś dodać, czy usunąć, i czy składnia, której używam, odpowiada dokumentacji konkretnego systemu (np. SQL Server, MySQL, PostgreSQL). Stosowanie czytelnej, udokumentowanej formy `ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES ...` jest zgodne z dobrymi praktykami i oszczędza sporo nerwów przy późniejszej administracji oraz migracjach schematu.

Pytanie 9

Grafik chce przekształcić bez utraty jakości obraz formatu JPEG w format PNG w ten sposób, żeby wszędzie tam, gdzie w pierwotnym obrazie jest kolor biały, w obrazie docelowym była przezroczystość. Aby to zrobić, powinien

A. przekształcić obraz w odcienie szarości.
B. zmniejszyć rozdzielczość obrazu.
C. dodać kanał alfa.
D. zaimportować obraz do edytora grafiki wektorowej.
W tym zadaniu łatwo wpaść w pułapkę myślenia, że cokolwiek zmieniającego obraz „optycznie” przybliży nas do przezroczystości, ale technicznie to tak nie działa. Przezroczystość w grafice rastrowej nie jest związana ani z rozdzielczością, ani z kolorem białym jako takim, tylko z obecnością specjalnego kanału opisującego alfa, czyli krycie. Jeśli obraz nie ma kanału alfa, każdy piksel jest po prostu w pełni nieprzezroczysty, bez względu na to, czy jest biały, czarny czy zielony. Zmniejszenie rozdzielczości wpływa jedynie na liczbę pikseli i szczegółowość obrazu. Można to traktować jako skalowanie w dół, co często powoduje dodatkowe rozmycie i spadek ostrości, ale nie pojawi się od tego żadna przezroczystość. Program nie ma powodu uznać, że po zmniejszeniu rozdzielczości białe piksele nagle staną się „dziurą” w obrazie. To są dalej normalne piksele RGB. Podobnie przekształcenie obrazu w odcienie szarości (grayscale) jedynie zmienia sposób kodowania koloru. Zamiast trzech składowych RGB używamy pojedynczej jasności, ale wciąż każdy piksel jest w pełni kryjący. Odcienie szarości są przydatne w obróbce artystycznej czy przy optymalizacji rozmiaru plików, ale nie mają nic wspólnego z dodaniem kanału alfa ani z wycinaniem tła. Częsty błąd polega na myleniu „białego tła” z przezroczystością – w wielu edytorach białe tło wygląda podobnie do szachownicy symbolizującej alfa, ale technicznie to zupełnie inna rzecz. Z kolei import do edytora grafiki wektorowej sam z siebie nie rozwiązuje problemu. Program wektorowy może co prawda osadzić rastrowy JPEG jako obiekt, ale on dalej pozostaje bitmapą bez kanału alfa. Przezroczystość można wtedy dodać dopiero po konwersji do formatu obsługującego alfa i odpowiedniej edycji. Sam fakt, że pracujemy w środowisku „wektorowym”, nie powoduje magicznego zniknięcia białego tła. Kluczowe jest zrozumienie, że o przezroczystości decyduje struktura danych obrazu (obecność kanału alfa), a nie to, jakiego typu program otworzy plik ani jaką ma on rozdzielczość czy tryb kolorów. Taki sposób myślenia bardzo pomaga przy pracy z grafiką na strony WWW i przy przygotowaniu elementów UI, gdzie przezroczystość jest standardem.

Pytanie 10

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

Ilustracja do pytania
A. Efekt 2.
B. Efekt 4.
C. Efekt 1.
D. Efekt 3.
Odpowiedź, którą wybrałeś, nie jest poprawna, i wynika to z małego nieporozumienia dotyczącego formularzy HTML. Główna sprawa to to, że wszystko, co wpisujesz w polach formularza, jest pokazywane dopiero po jego przesłaniu. W tym przypadku, jeśli wprowadzisz 'Przykładowy text' w pole tekstowe, to będzie to widoczne, ale checkboxy będą niezaznaczone. Błędne odpowiedzi często pochodzą z mylenia działania checkboxów. Pamiętaj, że te dwa checkboxy są zawsze niezaznaczone, niezależnie od tego, co wprowadziłeś w pole tekstowe. I to, że wartość z pola tekstowego nie wpływa na checkboxy, można uznać za istotne zrozumienie działania formularzy HTML. Także warto zwrócić na to uwagę w przyszłości.

Pytanie 11

Wskaż funkcję w JavaScript, która pozwoli obliczyć połowę kwadratu liczby podanej jako argument.

A. function wynik(a) { return a*a/2; }
B. function wynik(a) { return 2*a/a; }
C. function wynik(a) { return a*2/2; }
D. function wynik(a) { return a/2+a/2; }
Funkcja function wynik(a) { return a*a/2; } jest całkiem w porządku. Działa, bo fajnie oblicza połowę kwadratu liczby, którą podajesz jako argument. W praktyce, 'a*a' to nic innego jak kwadrat liczby 'a', a potem dzielimy to przez 2, co nam daje wartość połowy tego kwadratu. To, co zrobiłeś, jest zgodne z zasadami matematyki i jak na programowanie w JavaScript to też się sprawdza. Na przykład, jak podstawisz '4', to funkcja zwróci 8, bo (4*4)/2 = 16/2 = 8. Takie obliczenia mogą się przydać w różnych aplikacjach, np. przy obliczeniach inżynieryjnych czy analizie danych, gdzie często korzysta się z takich wzorów. Użycie zmiennych i funkcji w programowaniu ułatwia zarządzanie danymi, a do tego można łatwiej się orientować w kodzie, co jest super.

Pytanie 12

Który ze sposobów komentowania NIE jest stosowany w kodzie PHP?

A.
/* komentarz */
B.
// komentarz
C.
# komentarz
D.
<!-- komentarz -->
Trzy pozostałe to prawidłowe komentarze PHP, więc nie są odpowiedzią na pytanie. # oraz // rozpoczynają komentarz jednoliniowy - wszystko za nimi do końca wiersza jest pomijane. /* ... */ obejmuje komentarz wieloliniowy. Sposobem spoza PHP jest <!-- ... --> - to komentarz HTML, którego PHP nie traktuje jako własnego, dlatego ta odpowiedź jest poprawna.

Pytanie 13

Wskaż fragment CSS, który odpowiada rozkładowi bloków 2-5, zakładając, że zostały one zbudowane na podstawie podanego kodu HTML.

Ilustracja do pytania
A. Kod 3
B. Kod 4
C. Kod 2
D. Kod 1
Niepoprawne podejścia w pozostałych kodach wynikają z niewłaściwego użycia właściwości float oraz clear. W Kodzie 1 użycie float: right; dla czwartego bloku jest poprawne, jednak clear: both; dla piątego bloku powoduje, że nie będzie on kontynuował linii z poprzednimi blokami, co nie pasuje do przedstawionego układu. Clear: both; wymusza przeniesienie bloku poniżej aktualnej linii. Kod 3 charakteryzuje się brakiem właściwości clear, co prowadzi do problemów z układem, gdyż blok 5 ułożony float: right; nie rozpocznie nowego wiersza, co jest potrzebne w tym zadaniu. W Kodzie 4 brak jest jakiegokolwiek użycia właściwości float lub clear dla bloków 3, 4 i 5 co uniemożliwia osiągnięcie założonego układu. Brak float dla trzeciego i czwartego bloku spowoduje, że będą one umieszczone pod sobą jako blokowe elementy domyślnie, co nie pasuje do układu. Prawidłowa organizacja układu bloków za pomocą właściwości float opiera się na odpowiednim przypisaniu float: left; lub right; oraz strategicznym użyciu clear, aby kontrolować przepływ elementów w wierszach. Typowym błędem jest niezrozumienie, że clear resetuje przepływ dla kolejnego bloku, co jest kluczowe w manipulacji wyglądem layoutu blokowego w starszych technikach CSS. Takie błędy mogą prowadzić do nieprzewidywalnych rezultatów, zwłaszcza gdy układ jest testowany na różnych przeglądarkach i rozdzielczościach ekranów, co podkreśla znaczenie testowania i walidacji CSS w kontekście projektów webowych. Stosowanie zasad float i clear wymaga precyzyjnego planowania, by unikać konfliktów w przepływie i zachować spójność wizualną projektu webowego.

Pytanie 14

Wskaż konstrukcję pętli w języku JavaScript, która wyświetli sześć kolejnych liczb parzystych

A. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
B. for(i=2;i<12;i++) {i++; document.write(i);}
C. for(i=2;i<12;i+=2) {document.write(i);}
D. for(i=2;i<=12;i+=2) {document.write(i);}
Prawidłowe zrozumienie działania pętli for w JavaScript jest kluczowe dla tworzenia efektywnych skryptów. Odpowiedzi, które nie są poprawne, najczęściej wynikają z nieporozumień dotyczących sposobu działania inkrementacji oraz warunków zakończenia pętli. Przykładowo, konstrukcja for(i=2;i<12;i+=2) nie osiągnie ostatniej liczby parzystej 12, co skutkuje wyświetleniem jedynie 2, 4, 6, 8 i 10, a więc pięciu liczb parzystych. Zrozumienie granic pętli jest istotne, aby uzyskać oczekiwane rezultaty. Inne podejście, czyli for(i=2;i<12;i++) {i++; document.write(i);}, wprowadza dodatkowe zwiększenie zmiennej i wewnątrz pętli, co może prowadzić do nieoczekiwanych rezultatów - w tym przypadku, liczenie kończy się na 12, ale tylko wartości nieparzyste będą drukowane, czyli 3, 5, 7, 9, 11, co jest błędne w kontekście zadania. W kontekście innej odpowiedzi, for(i=2;i<=12;i++) {i=i+2; document.write(i);}, również nie działa zgodnie z zamierzeniem, ponieważ zaczyna od 2 i natychmiast zwiększa liczbę do 4, co prowadzi do pominięcia liczby 2 w wyniku końcowym. Dokładne zrozumienie działania pętli i jej konstrukcji jest kluczowe do uniknięcia takich błędów. W programowaniu ważne jest stosowanie jasnych i prostych konstrukcji, które są łatwe do zrozumienia, co pomaga nie tylko w pracy nad bieżącym projektem, ale również w późniejszej konserwacji oraz w pracy zespołowej.

Pytanie 15

Zapis koloru w formacie #ff00e0 jest równoważny reprezentacji

A. rgb(ff, 0, e0)
B. rgb(255, 0, 224)
C. rgb(f, 0, e0)
D. rgb(255, 0, 128)
Odpowiedzi rgb(f, 0, e0) oraz rgb(ff, 0, e0) zawierają błędy dotyczące formatu wartości RGB. W przypadku formatu RGB, wartości składowych koloru muszą być liczbami całkowitymi w przedziale od 0 do 255. W pierwszym przypadku 'f' i 'e0' nie są poprawnymi wartościami, ponieważ 'f' nie reprezentuje liczby w systemie dziesiętnym, a 'e0' nie zostało przeliczone na wartość dziesiętną, co czyni tę odpowiedź niezgodną ze standardami definiowania kolorów. Z kolei druga odpowiedź, rgb(ff, 0, e0), również nie przekształca wartości szesnastkowych na format dziesiętny. Standard RGB wymaga, aby wartości były zrozumiałe dla silnika renderującego, dlatego niepoprawne są wartości, które nie są liczbami całkowitymi. Pojawiają się też koncepcje dotyczące odczytywania wartości szesnastkowych, gdzie podstawowym błędem jest brak znajomości konwersji między tymi systemami liczbowymi. Wartości szesnastkowe trzeba zamieniać na dziesiętne, aby prawidłowo interpretować kolory. W przypadku rgb(255, 0, 128), wartość niebieska została błędnie określona jako 128, co jest znacznie niższe niż 224, co prowadzi do błędnej interpretacji koloru. Używanie błędnych wartości w definicji kolorów może skutkować niezgodnością wizualną w projektach graficznych i webowych.

Pytanie 16

Która z czynności nie wpłynie na objętość zajmowanej pamięci pliku graficznego?

A. Zmiana rozmiaru obrazu przy użyciu atrybutów HTML
B. Modyfikacja rozdzielczości obrazu
C. Kompresja
D. Interpolacja
Skalowanie obrazu za pomocą atrybutów HTML to technika, która pozwala na dostosowanie rozmiaru wyświetlanego obrazu w przeglądarce internetowej bez zmiany jego rzeczywistego rozmiaru pliku. Atrybuty takie jak 'width' i 'height' w tagach <img> wpływają jedynie na to, jak obraz jest prezentowany na stronie, a nie na jego fizyczne właściwości. Przykładem może być użycie <img src='obraz.jpg' width='300' height='200'>, co sprawia, że obraz wyświetla się w określonych wymiarach, ale plik graficzny pozostaje niezmieniony. Takie podejście jest zgodne z dobrymi praktykami w projektowaniu stron internetowych, ponieważ pozwala na utrzymanie jakości obrazu bez dodatkowego obciążania serwera. W sytuacjach, gdy szybkość ładowania strony jest kluczowa, użycie odpowiednich atrybutów HTML może przyczynić się do lepszego doświadczenia użytkownika bez potrzeby modyfikacji oryginalnych plików graficznych. Warto również zaznaczyć, że w przypadku responsywnych stron internetowych stosuje się techniki CSS, które umożliwiają dalsze dostosowanie wielkości obrazów, ale także nie wpływają na ich wagę w pamięci.

Pytanie 17

Tabela sklepy ma pola: nazwa, ulica, miasto, branza. Które zapytanie wybierze nazwy sklepów spożywczych wyłącznie we Wrocławiu?

A.
SELECT sklepy FROM branza='spożywczy' WHERE miasto='Wrocław';
B.
SELECT sklepy FROM nazwa WHERE branza='spożywczy' BETWEEN miasto='Wrocław';
C.
SELECT nazwa FROM sklepy WHERE branza='spożywczy' OR miasto='Wrocław';
D.
SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';
Sklepy spożywcze WYŁĄCZNIE we Wrocławiu to te, które spełniają oba warunki naraz - branża spożywcza ORAZ miasto Wrocław - więc łączy je AND: SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';. Dlatego ta kwerenda jest poprawna.

Pytanie 18

Aby ustawić wewnętrzne marginesy dla elementu: margines górny 50px, dolny 40px, prawy 20px oraz lewy 30px, powinno się zastosować składnię CSS

A. padding: 40px, 30px, 50px, 20px;
B. padding: 50px, 20px, 40px, 30px;
C. padding: 50px, 40px, 20px, 30px;
D. padding: 20px, 40px, 30px, 50px;
Podane odpowiedzi niepoprawne wynikają z pomylenia kolejności, w jakiej wartości paddingu są interpretowane w CSS. Wartości paddingu są rozpoznawane w określonej sekwencji: najpierw górny, następnie prawy, dolny, a na końcu lewy. Dlatego, jeśli margines górny wynosi 50px, prawy 20px, dolny 40px i lewy 30px, to niektóre z przedstawionych opcji nie oddają tej kolejności. Użycie nieodpowiednich wartości skutkuje nieprzewidywalnym wyglądem elementów na stronie, co może prowadzić do problemów z układem oraz zaburzenia estetyki. W szczególności, niepoprawne zestawienie wartości może powodować, że odstępy będą nie tylko niewłaściwe, ale także mogą przyczynić się do trudności w interakcji użytkowników z elementami na stronie. Dodatkowo, błędy w stosowaniu paddingu mogą prowadzić do konfliktów z innymi stylami CSS, co jeszcze bardziej komplikuje proces projektowania. W praktyce, niepoprawne stosowanie kolejności wartości paddingu jest częstym błędem, który może być wynikiem braku zrozumienia konwencji CSS lub pośpiechu w implementacji. Kluczowe jest zrozumienie, że CSS jest oparty na ściśle określonych zasadach, a niewłaściwe stosowanie tych zasad może prowadzić do nieefektywnych rozwiązań projektowych.

Pytanie 19

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

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

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

Pytanie 20

Która funkcja PHP sortuje tablicę asocjacyjną według KLUCZY?

A.
asort()
B.
rsort()
C.
sort()
D.
ksort()
asort() sortuje po WARTOŚCIACH (zachowując klucze), sort() po wartościach z resetem kluczy, a rsort() to samo malejąco. Po kluczach sortuje ksort().

Pytanie 21

Strona internetowa została napisana w języku XHTML. Który z poniższych kodów przedstawia implementację zamieszczonego fragmentu strony, przy założeniu, że nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
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>
Wybory, które nie używają <h1> do tytułu, nie oddają poprawnej struktury semantycznej wymaganej w XHTML. Oznaczenie nagłówka jako <b> jest niewłaściwe, ponieważ <b> jest znacznikiem stylizującym tekst jako pogrubiony, ale nie semantycznie nie mówi, że jest to nagłówek. XHTML, będąc bardziej restrykcyjną wersją HTML, wymaga ścisłego trzymania się hierarchii nagłówków, co pomaga w czytelności dokumentu przez oprogramowanie wspomagające i wyszukiwarki. Użycie <hr /> w odpowiedzi trzeciej jako linia pozioma jest semantycznie mylące, gdyż nie oddziela to części tekstu, a jedynie wizualnie dzieli fragmenty, co w XHTML, gdzie semantyka jest kluczowa, nie jest zalecane. Strona zapisana w XHTML powinna używać tagów zgodnie z ich przeznaczeniem, co poprawia dostępność i zrozumienie kodu. Dodatkowo, nieprawidłowo ustrukturyzowane znaczniki mogą prowadzić do problemów z parsowaniem przez przeglądarki, co jest niepożądane w profesjonalnym tworzeniu stron internetowych. Dlatego odpowiednia semantyka i poprawna struktura są kluczowe w projektowaniu stron zgodnych z XHTML.

Pytanie 22

Atrybut colspan służy do poziomego łączenia komórek tabeli, natomiast rowspan pozwala na łączenie ich w pionie. Którą z poniższych tabel ukazuje fragment kodu napisany w języku HTML?
<table border="1" cellspaing="0" cellpadding="10" >
<tr> <td rowspan="2"> </td> <td> </td> </tr>
<tr> <td> </td> </tr>
</table>

Ilustracja do pytania
A. rys. C
B. rys. A
C. rys. D
D. rys. B
W języku HTML atrybut rowspan w znaczniku <td> pozwala na scalanie komórek w pionie co oznacza że dana komórka zajmuje miejsce w kilku wierszach tabeli W podanym kodzie pierwsza komórka w pierwszym wierszu posiada atrybut rowspan z wartością 2 co sprawia że zajmuje ona miejsce w dwóch wierszach Pierwszy wiersz zawiera dwie komórki z czego pierwsza jest połączona pionowo z komórką w drugim wierszu Druga komórka w pierwszym wierszu oraz jedyna komórka w drugim wierszu nie posiadają atrybutu rowspan ani colspan dlatego nie są połączone z innymi komórkami Takie użycie rowspan jest zgodne z praktykami HTML które umożliwiają tworzenie bardziej złożonych układów tabeli dzięki czemu można lepiej zarządzać przestrzenią w interfejsie użytkownika Jako że kod tworzy tabelę z dwiema kolumnami i dwoma wierszami gdzie pierwsza komórka po lewej stronie zajmuje dwa wiersze przedstawia to układ jak na rysunku B Możliwości jakie daje rowspan są niezwykle przydatne w sytuacjach gdy chcemy aby dane w tabeli były czytelniejsze i bardziej zorganizowane szczególnie w raportach czy formularzach gdzie różne kategorie danych muszą być jasno oddzielone

Pytanie 23

Parametr face w znaczniku <font> jest używany do określenia

A. stylów czcionki
B. typy czcionki
C. koloru czcionki
D. rozmiaru czcionki
Parametr <b>face</b> znacznika <b>&lt;font&gt;</b> jest używany do określenia nazwy czcionki, co jest kluczowe dla stylizacji tekstu w dokumentach HTML. Umożliwia on deweloperom wybór konkretnej czcionki, która będzie używana do wyświetlania tekstu, co wpływa na jego estetykę oraz czytelność. Przykładowo, można użyć wartości takiej jak 'Arial', 'Times New Roman' czy 'Courier New', aby zdefiniować preferowaną czcionkę, co jest szczególnie ważne w przypadku identyfikacji wizualnej brandu. W praktyce, dobór odpowiedniej czcionki wpływa na doświadczenie użytkownika, a także na dostępność treści. Warto zaznaczyć, że w nowoczesnych praktykach webowych, stosowanie CSS do stylizacji tekstu stało się bardziej zalecane niż używanie znaczników <font>, co wynika z dążenia do separacji treści od prezentacji. Dobre praktyki wskazują na użycie właściwości CSS takich jak 'font-family', co jest bardziej elastyczne i zgodne z aktualnymi standardami sieciowymi.

Pytanie 24

Jakim zapisem w języku PHP można określić komentarz, który rozciąga się na wiele linii?

A. <!-- -->
B. /*  */
C. #
D. //
W języku PHP komentarz wieloliniowy definiuje się za pomocą zapisu /* */. Taki komentarz może obejmować wiele linii tekstu, co czyni go niezwykle przydatnym do opisywania fragmentów kodu, które są zbyt obszerne, by umieścić je w pojedynczej linii. Używanie komentarzy wieloliniowych pozwala programistom na dodawanie szczegółowych wyjaśnień dotyczących funkcji, algorytmów czy też sposobu działania poszczególnych sekcji kodu. Dobrą praktyką jest stosowanie takich komentarzy, aby ułatwić innym programistom zrozumienie kodu lub przypomnienie sobie samego siebie, co dany fragment robi. Przykładowo:

/*
Funkcja oblicza sumę dwóch liczb
Parametr 1: pierwsza liczba
Parametr 2: druga liczba
Zwraca: suma obu liczb
*/

Ponadto, stosowanie komentarzy jest zgodne z zasadami programowania zorientowanego na zrozumiałość, które są kluczowe w projektach zespołowych oraz w długofalowym utrzymaniu kodu. Poprawne stosowanie komentarzy pomaga w dokumentowaniu kodu oraz w jego przyszłym rozwoju.

Pytanie 25

W programie do obróbki grafiki rastrowej zmodyfikowano krzywe kolorów tak, jak zaznaczono ramką na przedstawionym obrazie. Ma to na celu

Ilustracja do pytania
A. rozjaśnienie całego obrazu
B. przyciemnienie całego obrazu
C. wygładzenie krawędzi w obrazie
D. modyfikację najjaśniejszych i najciemniejszych kolorów obrazu
Modyfikacja krzywych kolorów w programie do obróbki grafiki rastrowej polega na manipulacji wartościami kolorów w obrazie, co ma na celu wpływ na najjaśniejsze i najciemniejsze odcienie. Takie działanie umożliwia zwiększenie kontrastu oraz poprawę dynamiki kolorystycznej, co jest szczególnie ważne w profesjonalnej edycji zdjęć. Na przykład, podnosząc wartości skrajnych punktów na krzywej jasności, można uzyskać efekt wyraźniejszego podziału pomiędzy cieniami a światłami, co sprawia, że obraz staje się bardziej wyrazisty. W praktyce, edytory graficzne, takie jak Adobe Photoshop, oferują narzędzie krzywych, które pozwala na precyzyjne dostosowanie kolorów, co jest standardem w branży. Tego typu modyfikacje są kluczowe, aby dostosować obrazy do potrzeb drukarskich czy prezentacji cyfrowych, gdzie jakość i kolorystyka są niezmiernie ważne. Zmiana krzywych kolorów pozwala również na osiągnięcie zamierzonych efektów artystycznych i stylizacji zdjęć, które są istotne w marketingu wizualnym.

Pytanie 26

Według którego pola tabeli zostały pogrupowane dane w przedstawionym raporcie?

Ilustracja do pytania
A. id_uczestnika
B. wynik
C. nazwa
D. rok
Na tym raporcie bardzo łatwo się pomylić, bo wizualnie wyróżnia się kilka różnych pól: nazwa konkursu, identyfikator uczestnika i wynik. Jednak kluczowe jest zrozumienie, czym jest „grupowanie” w kontekście raportów bazodanowych. Grupowanie nie oznacza tylko sortowania, ale logiczne zorganizowanie rekordów w bloki, którym często towarzyszy nagłówek grupy. W tym przykładzie takimi nagłówkami są kolejne lata: 2009, 2010, 2011, 2012, 2020. To sygnał, że dane są zorganizowane właśnie według pola „rok”.
Jeśli ktoś wybiera „wynik”, zwykle wynika to z mylenia sortowania z grupowaniem. Wynik jest tu po prostu jedną z kolumn, która może być rosnąca, malejąca, ale nie widać żadnych bloków typu „wynik = 100”, „wynik = 55” itp. Gdyby raport był pogrupowany po wyniku, spodziewalibyśmy się nagłówków z konkretnymi wartościami wyniku i pod nimi listy uczestników, co wyraźnie by się odróżniało wizualnie.
Podobnie z polem „nazwa”. Konkursy o tej samej nazwie (np. matematyczny, biologiczny) pojawiają się w różnych latach, ale nie są łączone w jedną wspólną sekcję. Gdyby grupowanie było po nazwie, widzielibyśmy nagłówki „matematyczny”, „biologiczny”, „polonistyczny”, a pod nimi przypisane lata i uczestników. Tutaj jest odwrotnie: to rok jest nadrzędny, a nazwa znajduje się w jego obrębie.
Pole „id_uczestnika” też nie jest podstawą grupowania. Identyfikatory pojawiają się tylko jako pojedyncze wartości w wierszach danych, bez żadnych nagłówków ani podziałów. Dobre narzędzia raportujące zawsze wizualnie pokazują grupę, zwykle w postaci pogrubionego nagłówka lub osobnego wiersza. W tym raporcie takim elementem jest rok. Z mojego doświadczenia typowym błędem jest patrzenie tylko na pojedyncze kolumny i nie zwracanie uwagi na układ sekcji raportu. W praktyce projektowania raportów i analiz BI zawsze warto najpierw zidentyfikować, które pole tworzy logiczne „koszyki” danych – tutaj to właśnie rok, a pozostałe pola są tylko szczegółami w ramach tych grup.

Pytanie 27

Jaką właściwość CSS należy zastosować, aby ustawić wewnętrzne marginesy dla danego elementu?

A. padding
B. hight
C. width
D. margin
Chociaż odpowiedzi hight, width i margin mają swoje zastosowania w CSS, nie są one odpowiednie do definiowania marginesów wewnętrznych elementu. Właściwość hight jest błędna, ponieważ nie istnieje taka właściwość w CSS; prawidłowa forma to height, która określa wysokość elementu, a nie jego wewnętrzne marginesy. width z kolei definiuje szerokość elementu, co również nie ma związku z przestrzenią wewnętrzną. Użytkownicy często mylą te właściwości, co prowadzi do nieprawidłowych założeń dotyczących stylizacji elementów na stronie. Zrozumienie różnicy między padding a margin jest również kluczowe. Margin definiuje przestrzeń zewnętrzną, oddzielając elementy od siebie, podczas gdy padding działa wewnątrz elementu, wpływając na układ zawartości. Tego typu błędy mogą prowadzić do nieprzewidzianych efektów wizualnych w projektach. W praktyce, aby prawidłowo dostosować wygląd strony, istotne jest zrozumienie, jakie właściwości można stosować w różnych kontekstach, oraz ich wzajemne relacje. Właściwe zarządzanie przestrzenią wewnętrzną i zewnętrzną elementów jest fundamentem efektywnego i estetycznego projektowania stron internetowych.

Pytanie 28

W tabeli zadania znajduje się pole tekstowe status. Jakie zapytanie należy użyć, aby usunąć te zadania, które mają status 'zamknięte'?

A. TRUNCATE TABLE zadania;
B. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
C. DELETE FROM zadania;
D. DELETE FROM zadania WHERE status = 'zamknięte';
Odpowiedź DELETE FROM zadania WHERE status = 'zamknięte' jest poprawna, ponieważ wykorzystuje standardową składnię SQL do usuwania rekordów z tabeli na podstawie zadanych warunków. W tym przypadku, kwerenda ta usuwa tylko te wiersze, które mają wartość 'zamknięte' w polu status. Jest to podejście zgodne z dobrymi praktykami, ponieważ pozwala na precyzyjne określenie, które dane mają zostać usunięte, co minimalizuje ryzyko przypadkowego usunięcia innych rekordów. Na przykład, w systemie zarządzania projektami, możemy mieć wiele zadań z różnymi statusami, takimi jak 'otwarte', 'w trakcie', czy 'zamknięte'. Użycie tej kwerendy pozwala na oczyszczenie bazy danych z nieaktualnych zadań, co jest kluczowe dla utrzymania porządku i efektywności w zarządzaniu projektami. Ponadto, stosując tę metodę, możemy w przyszłości łatwo modyfikować warunki usuwania, na przykład zmieniając status na 'wstrzymane', zachowując elastyczność w zarządzaniu danymi.

Pytanie 29

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

<label for="imie">Imię: </label> 
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">
A. value
B. for
C. placeholder
D. title
Atrybut "placeholder" jest kluczowym elementem w formularzach HTML, który definiuje tekst podpowiedzi umieszczony w polu kontrolki. Tekst ten zniknie, gdy użytkownik zacznie wpisywać dane, co pozwala na zapewnienie bardziej intuicyjnego interfejsu. W przypadku przykładowego formularza, atrybut "placeholder" jest użyty w polu nazwiska, co stanowi doskonały przykład jego praktycznego zastosowania. Dobrą praktyką jest stosowanie atrybutu "placeholder" w formularzach, ponieważ wprowadza on klarowność i ułatwia użytkownikom wypełnianie formularzy, jednocześnie zmniejszając ryzyko błędów. Atrybut ten nie tylko poprawia doświadczenia użytkownika, ale także zwiększa dostępność formularzy, ponieważ pozwala osobom korzystającym z czytników ekranu lepiej zrozumieć, jakie dane są wymagane. Warto również zauważyć, że "placeholder" nie powinien być używany jako substytut etykiety, która jest niezbędna do poprawnej dostępności i użyteczności. Etykiety powinny być zawsze stosowane, a "placeholder" powinien pełnić jedynie funkcję pomocniczą.

Pytanie 30

Czemu odpowiada pojęcie „krotka” w relacyjnej bazie danych?

A. tabeli
B. relacji
C. kolumnie
D. wierszowi
W modelu relacyjnym „krotka” odpowiada WIERSZOWI tabeli - czyli pojedynczemu rekordowi z danymi jednego egzemplarza encji. Dlatego krotka to wiersz.

Pytanie 31

Które z formatowań nie jest wyrażone w języku CSS?

A. Fragment pliku strona.html:
<style>
body { background-color: yellow; }
</style>
B. Fragment pliku formatowanie.css:
body { background-color: yellow; }
C. Fragment pliku strona.html:
<body bgcolor="yellow">
D. Fragment pliku strona.html:
<body style="background-color: yellow;" >
A. A.
B. D.
C. C.
D. B.
Gratulacje, prawidłowo wybrałeś odpowiedź C. To pytanie dotyczyło zrozumienia, które formatowania nie są wyrażone w języku CSS. W CSS wykorzystuje się różnego rodzaju selektory, aby określić elementy strony, do których mają być stosowane określone style. Fragmenty A i B przedstawiają formatowanie w języku CSS. Fragment A demonstruje styl wewnątrz dokumentu HTML, co jest jednym z trzech sposobów dodawania styli CSS do dokumentu HTML. Natomiast fragment B pokazuje styl z zewnętrznego pliku CSS, co jest zgodne ze standardami i uważane za najlepszą praktykę, ponieważ pozwala na utrzymanie oddzielenia struktury i prezentacji. Fragment D również wykorzystuje CSS, ale jest to tzw. "inline CSS", który jest stosowany bezpośrednio do elementu HTML. Ostatecznie, jedynie fragment C nie używa CSS. Zamiast tego, wykorzystuje przestarzały atrybut HTML "bgcolor" do określenia koloru tła, co obecnie jest uważane za złą praktykę. Pamiętaj, że zrozumienie różnicy pomiędzy HTML a CSS jest kluczowe w budowaniu poprawnie działających i dobrze zaprojektowanych stron internetowych.

Pytanie 32

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

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

Pytanie 33

Który typ danych zastosować, aby pole w bazie danych przechowywało liczby zmiennoprzecinkowe?

A.
VARCHAR
B.
FLOAT
C.
INT
D.
CHAR
Liczby zmiennoprzecinkowe (rzeczywiste, z częścią ułamkową) przechowuje w bazie typ FLOAT, np. ceny czy wyniki pomiarów. Dlatego do takich wartości stosuje się FLOAT.

Pytanie 34

Które reguły CSS poprawnie ustawiają dla akapitu czcionkę Arial, rozmiar 16 pt i pochylenie (kursywę)?

A.
p { font-style: Arial; font-size: 16pt; font-variant: normal; }
B.
p { font-style: Arial; size: 16px; font-weight: normal; }
C.
p { font-family: Arial; font-size: 16px; font-variant: normal; }
D.
p { font-family: Arial; font-size: 16pt; font-style: italic; }
Wygląd czcionki opisują w CSS trzy osobne właściwości: font-family ustala krój (np. Arial), font-size - rozmiar (tu 16pt, bo zadano punkty, a nie piksele), a font-style: italic włącza pochylenie. Razem daje to p { font-family: Arial; font-size: 16pt; font-style: italic; }. Warto pamiętać, że font-style odpowiada za kursywę, a font-weight za grubość - to częste źródło pomyłek. Dlatego poprawny jest ten zestaw reguł.

Pytanie 35

Automatyczna weryfikacja właściciela witryny udostępnianej przez protokół HTTPS jest możliwa dzięki:

A. danym whois
B. certyfikatowi SSL
C. kluczom prywatnym
D. danym kontaktowym na stronie
Pozostałe odpowiedzi nie zapewniają automatycznej, zaufanej weryfikacji. Dane kontaktowe na stronie wpisuje sam jej autor, więc można je dowolnie sfałszować - nikt ich nie potwierdza. Klucz prywatny jest tajny i nigdy nie opuszcza serwera; służy do szyfrowania, a nie do okazywania tożsamości użytkownikowi. Dane whois opisują rejestrację domeny i bywają ukryte lub niepełne, a przeglądarka ich nie sprawdza przy łączeniu. Tożsamość właściciela potwierdza certyfikat SSL wydany przez urząd certyfikacji, dlatego to on jest poprawny.

Pytanie 36

W systemie MySQL trzeba użyć polecenia REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian jedynie w definicji struktury bazy danych. Odpowiednia komenda do odebrania tych uprawnień ma postać

A. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
C. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
D. REVOKE ALL ON tabela1 FROM 'anna'@'locaihost'
Polecenie REVOKE w MySQL jest używane do odbierania przydzielonych wcześniej uprawnień użytkownikom. W kontekście pytania, właściwa odpowiedź to 'REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost''. To polecenie wskazuje na odebranie użytkownikowi 'anna' możliwości tworzenia nowych obiektów w bazie danych (CREATE), zmiany struktury istniejących obiektów (ALTER) oraz usuwania obiektów (DROP) w tabeli 'tabela1'. Odbieranie tych praw jest kluczowe w zarządzaniu bezpieczeństwem bazy danych, ponieważ pozwala na precyzyjne kontrolowanie, kto ma dostęp do modyfikacji struktury bazy danych. W praktyce, administratorzy baz danych często muszą ograniczać uprawnienia użytkowników, aby zapobiec nieautoryzowanym zmianom, które mogą wpłynąć na integralność danych. Dobrą praktyką jest regularne przeglądanie i aktualizowanie uprawnień użytkowników, aby dostosować je do zmieniających się potrzeb organizacji oraz zwiększyć poziom bezpieczeństwa systemu.

Pytanie 37

W CSS zapis w formie: p{background-image: url"rysunek.jpg")} spowoduje, że rysunek.png stanie się

A. tłem każdego bloku tekstowego
B. tłem całej witryny
C. wyświetlany obok każdego bloku tekstowego
D. pokazany, jeśli w kodzie użyty będzie znacznik img
Pierwsza niepoprawna odpowiedź twierdzi, że obrazek ma być tłem całej strony. W rzeczywistości, żeby ustawić tło dla całej strony, używa się body, a nie <p>. Tło ustawione dla paragrafów nie zmienia wyglądu całej strony. Druga niepoprawna odpowiedź sugeruje, że obrazek ma być obok każdego paragrafu. To mógłbyś osiągnąć innymi właściwościami, jak float czy display inline-block, ale background-image nie wyświetla go obok, to działa jako tło. Ostatnia niepoprawna odpowiedź mówi o użyciu znacznika img. Użycie img to inna sprawa – obrazek dodany w takim znaczniku będzie oddzielnym elementem, a nie tłem. W skrócie, background-image i img to różne techniki i używa się ich w różnych sytuacjach, więc te odpowiedzi nie mają sensu w kontekście pytanie.

Pytanie 38

Na tabeli Pracownicy, której wiersze są przedstawione na załączonym obrazie, została zrealizowana podana kwerenda SELECT. Jakie dane zostaną zwrócone?

SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2;
idimienazwiskostanowisko
1AnnaKowalska1
2MonikaNowak2
3EwelinaNowakowska2
4AnnaPrzybylska3
5MariaKowal3
6EwaNowacka4
A. Monika, Ewelina, Maria
B. Wyłącznie Anna
C. Wyłącznie Maria
D. Anna, Maria, Ewa
Ważne jest zrozumienie działania klauzuli WHERE w SQL, zwłaszcza gdy stosujemy w niej operator OR. Częstym błędem przy analizie takich zapytań jest traktowanie operatora OR jak operatora AND co prowadzi do błędnych wniosków. W zapytaniu SELECT imie FROM pracownicy WHERE nazwisko = 'Kowal' OR stanowisko > 2 celem jest wybór imion pracowników spełniających przynajmniej jedno z podanych kryteriów. Można błędnie założyć że wybierane są tylko osoby z nazwiskiem Kowal i stanowiskiem większym od 2 lub odwrotnie co prowadzi do niepoprawnej interpretacji danych. Imiona takie jak Monika czy Ewelina nie pojawiają się w wyniku ponieważ ich stanowiska wynoszą dokładnie 2 co nie spełnia wymagań stanowisko > 2. Natomiast imię Maria jest wynikowe ponieważ nazwisko Kowal spełnia pierwszy warunek a Anna i Ewa są wybierane przez drugi warunek dotyczący stanowiska. Zrozumienie różnicy między operatorami AND i OR jest kluczowe dla poprawnego tworzenia zapytań SQL oraz unikania błędów logicznych przy przetwarzaniu danych. Operator OR wymaga aby przynajmniej jeden z warunków był prawdziwy co zwiększa elastyczność filtrowania danych ale także wymaga ostrożności aby nie uzyskać wyników niezgodnych z intencjami analizy. Znajomość i umiejętność wykorzystania różnych operatorów logicznych pozwala na efektywne zarządzanie danymi i ich analizę co jest niezbędne w pracy z bazami danych.

Pytanie 39

Jaki zestaw liczb zostanie wyświetlony w wyniku działania pętli napisanej w języku PHP?

$liczba = 10;
while ($liczba < 50) {
  echo "$liczba ";
  $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45 50
B. 10 15 20 25 30 35 40 45
C. 0 5 10 15 20 25 30 35 40 45 50
D. 0 5 10 15 20 25 30 35 40 45
Pytanie dotyczyło wyniku działania pętli w języku PHP co często prowadzi do nieporozumień związanych z mechaniką działania pętli iteracyjnych. Pierwsza z niepoprawnych odpowiedzi zakładała że pętla wydrukuje również liczbę 0 co jest błędem ponieważ zmienna $liczba jest inicjalizowana wartością 10 i nigdy nie osiągnie wartości mniejszej niż 10 w trakcie działania tego programu. Częstym błędem w myśleniu jest nieuwzględnianie początkowej wartości zmiennej kontrolnej co prowadzi do fałszywych założeń na temat iteracji. Kolejna błędna odpowiedź sugerowała że pętla zakończy się po wypisaniu liczby 50 jednak warunek pętli while sprawdza czy $liczba jest mniejsza od 50 co oznacza że gdy $liczba osiągnie 50 warunek będzie fałszem i pętla zakończy działanie nie wypisując tej wartości. Ostatecznie inna opcja błędnie zakładała wypisanie liczby 0 co jak wcześniej wspomniano jest niemożliwe w kontekście tej konkretnej pętli. Aby uniknąć takich błędów należy zawsze dokładnie analizować warunki początkowe i końcowe oraz mechanizm inkrementacji zmiennej kontrolnej. Korzystanie z debuggera lub ręczne prześledzenie kolejnych kroków pętli może pomóc w lepszym zrozumieniu jej działania w praktyce co jest kluczowe w efektywnym programowaniu aplikacji wykorzystujących złożone struktury iteracyjne. Zrozumienie tych mechanizmów pozwala na tworzenie bardziej wydajnych i bezbłędnych kodów co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 40

Jak przeglądarka zaprezentuje kod HTML formularza?

<form>
stanowisko: <input type="text"><br>
obowiązki:<br>
<input type="checkbox" name="obowiazek1" value="1" disabled checked>
sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazek2" value="2" checked>
pisanie kodu<br>
<input type="checkbox" name="obowiazek3" value="3">
testy oprogramowania<br>
</form>
Ilustracja do pytania
A. B
B. D
C. A
D. C
Prawidłowa odpowiedź to D ponieważ kod HTML formularza definiuje trzy pola wyboru typu checkbox z różnymi atrybutami wpływającymi na ich stan początkowy. Pierwsze pole wyboru dotyczące sporządzania dokumentacji posiada atrybuty disabled i checked co oznacza że będzie zaznaczone ale nieaktywne dla użytkownika. Oznacza to że użytkownik nie może zmienić jego stanu w przeglądarce. Drugie pole dotyczące pisania kodu ma tylko atrybut checked co oznacza że będzie zaznaczone i dostępne do edycji. Trzecie pole dotyczące testów oprogramowania nie posiada żadnego z tych atrybutów więc będzie domyślnie niezaznaczone i edytowalne. To zachowanie jest zgodne ze standardami HTML i dobrymi praktykami kodowania gdzie atrybuty kontrolują interakcje użytkownika z formularzami. Wiedza ta jest kluczowa dla projektantów stron internetowych aby zapewnić prawidłowe działanie formularzy i poprawne doświadczenie użytkownika. Formularze są podstawowym elementem interakcji z użytkownikiem dlatego zrozumienie ich działania jest niezbędne w tworzeniu funkcjonalnych i intuicyjnych interfejsów użytkownika.