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: 10 czerwca 2026 12:00
  • Data zakończenia: 10 czerwca 2026 12:46

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Element zadeklarowany w języku C++ double x*; oznacza

A. wskaźnik
B. typ zmiennoprzecinkowy
C. typ całkowity
D. parametr formalny o typie zmiennoprzecinkowym
Odpowiedzi, które wskazują, że <b>double x*;</b> to zmienna całkowita, zmienna rzeczywista lub parametr formalny typu rzeczywistego, opierają się na nieporozumieniach dotyczących definicji typów danych w języku C++. Po pierwsze, zmienna całkowita to typ, który przechowuje liczby całkowite, a składnia <b>double x*;</b> wyraźnie mówi, że jest to wskaźnik do zmiennej typu <b>double</b>, która jest używana do reprezentacji liczb rzeczywistych, w tym zmiennoprzecinkowych. Stąd, mylenie wskaźnika z typem zmiennoprzecinkowym może prowadzić do błędnych wniosków. Ponadto, parametr formalny typu rzeczywistego odnosi się do deklaracji funkcji, a nie do zmiennej. W C++ funkcje mogą przyjmować wskaźniki jako argumenty, co pozwala na efektywne przekazywanie dużych obiektów bez ich kopiowania, lecz sam wskaźnik nie jest parametrem formalnym, lecz zmienną przechowującą adres innej zmiennej. Często spotykaną pułapką w rozumieniu wskaźników jest ich pomylenie z odniesieniami (<b>double& x</b>), które w C++ działają nieco inaczej. Warto zatem poszerzyć wiedzę o wskaźnikach, aby lepiej zrozumieć ich rolę w zarządzaniu pamięcią i przekazywaniu argumentów w funkcjach.

Pytanie 2

Model reprezentacji kolorów z parametrami: hue, saturation i value, to

A. RGB
B. HSV
C. CMY
D. CMYK
Odpowiedź HSV (Hue, Saturation, Value) jest poprawna, ponieważ ten model opisu przestrzeni barw koncentruje się na trzech kluczowych parametrach: odcieniu, nasyceniu i jasności. Odcień odnosi się do rzeczywistego koloru, nasycenie informuje o intensywności koloru, a jasność wskazuje na jego jasność. Model HSV jest szczególnie użyteczny w aplikacjach graficznych oraz podczas pracy z grafiką komputerową, ponieważ jest bardziej intuicyjny dla ludzi, niż inne modele, takie jak RGB czy CMYK. Przykładem zastosowania modelu HSV jest edytor graficzny, gdzie użytkownik może łatwo dostosować kolor, manipulując tymi trzema parametrami. Standardy branżowe, takie jak Adobe Photoshop, implementują ten model, co pozwala na efektywne tworzenie i edytowanie kolorów. Dodatkowo, model HSV jest używany w programowaniu komputerowym do tworzenia efektów wizualnych, gdzie precyzyjne dostosowanie kolorów jest kluczowe.

Pytanie 3

Aby przenieść stronę internetową na serwer, można wykorzystać program

A. Bugzilla
B. Go!Zilla
C. CloneZilla
D. FileFilla
Bugzilla to narzędzie do zarządzania błędami, które nie jest związane z przesyłaniem plików na serwery. Jego głównym celem jest śledzenie błędów i problemów w oprogramowaniu, co czyni go przydatnym w kontekście projektów deweloperskich, ale nie znajduje zastosowania w transferze plików. Go!Zilla to program, który ma na celu przyspieszanie pobierania plików z internetu, co również nie odnosi się do przesyłania plików na serwer. Chociaż Go!Zilla może być pomocny w kontekście ściągania zawartości z sieci, jego funkcjonalność nie obejmuje zarządzania transferami w obie strony, co jest kluczowe dla administratorów stron internetowych. CloneZilla to narzędzie do klonowania dysków i partycji, które służy do tworzenia kopii zapasowych systemów operacyjnych oraz danych, ale nie ma nic wspólnego z przesyłaniem plików na serwer. Jego zastosowanie jest głównie w kontekście migracji danych pomiędzy nośnikami, co w zasadzie wyklucza jego użycie w kontekście przenoszenia witryn internetowych na serwery.

Pytanie 4

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
B. wyświetli długość tekstu z zmiennej t
C. przypisze zmiennej s zmienną t
D. przypisze zmiennej s długość tekstu z zmiennej t
W podanym kodzie zmiennej t przypisano wartość ciągu znaków Ala ma kota.. Następnie zmiennej s przypisano wynik wywołania właściwości length na zmiennej t. W JavaScript length jest właściwością obiektów String używaną do określenia długości łańcucha znaków czyli liczby znaków w napisie. W tym przypadku t.length zwróci liczbę 12 ponieważ włącznie ze spacjami i kropką ciąg Ala ma kota. składa się z 12 znaków. Przypisanie tego wyniku do zmiennej s oznacza że s będzie miało wartość 12. Takie wykorzystanie właściwości length jest zgodne z dobrymi praktykami i często stosowane w programowaniu w JavaScript. Pozwala na dynamiczne określanie długości łańcuchów co jest przydatne przy przetwarzaniu danych tekstowych. Umiejętność manipulacji łańcuchami znaków jest kluczowa w tworzeniu aplikacji webowych i skryptów które muszą obsługiwać dane użytkowników. Prawidłowe zrozumienie jak działa właściwość length pozwala na efektywne zarządzanie i przetwarzanie tekstu co jest istotne w pracy każdego programisty.

Pytanie 5

Jaki zapis znacznika <div> może występować w dokumencie HTML tylko raz, a jego ponowne użycie spowoduje pojawienie się błędów podczas walidacji dokumentu?

A. <div class="klasa">
B. <div class="klasa1 klasa2">
C. <div>
D. <div id="identyfikator">
Zapis <div id="identyfikator"> jest poprawny, ponieważ atrybut id w HTML powinien być unikalny w obrębie całego dokumentu. Oznacza to, że dla każdego elementu HTML można przypisać tylko jeden identyfikator, co pozwala na jednoznaczne odnalezienie danego elementu w kodzie. Przykładowo, w przypadku skryptów JavaScript lub stylów CSS, odwołując się do identyfikatora za pomocą selektora CSS (np. #identyfikator), mamy pewność, że dotykamy tylko jednego, konkretnego elementu. To podejście jest zgodne z zasadami dobrych praktyk webowych, które kładą duży nacisk na semantykę i czytelność kodu. Unikalność identyfikatora wspomaga również dostępność strony, umożliwiając czytnikom ekranu oraz innym technologiom asystującym łatwiejsze nawigowanie po dokumencie. Warto pamiętać, że w przypadku błędnego przypisania tego samego id do wielu elementów, walidacja HTML zgłosi błąd, co skutkuje problemami ze zgodnością z W3C i innymi standardami webowymi.

Pytanie 6

W trakcie edycji grafiki rastrowej w oprogramowaniu obsługującym kanały, dodanie kanału alfa wskazuje na

A. dodanie warstwy z przezroczystością
B. zwiększenie głębi ostrości obrazu
C. wyostrzenie krawędzi obrazu
D. ustalenie prawidłowego balansu bieli
Dodanie kanału alfa w obróbce grafiki rastrowej oznacza wprowadzenie warstwy odpowiedzialnej za przezroczystość obrazu. Kanał alfa rozszerza możliwości tradycyjnych obrazów, które składają się tylko z trzech podstawowych kanałów kolorystycznych: czerwonego, zielonego i niebieskiego (RGB). Dzięki kanałowi alfa, każdy piksel w obrazie może mieć przypisaną wartość przezroczystości, co pozwala na tworzenie efektów takich jak cienie, rozmycia, a także na precyzyjne maskowanie elementów w projekcie. Przykładem zastosowania kanału alfa może być tworzenie grafik do użycia w reklamach czy wideo, gdzie elementy muszą być płynnie nałożone na różnorodne tła. W profesjonalnym oprogramowaniu graficznym, takim jak Adobe Photoshop czy GIMP, dodanie kanału alfa jest standardową praktyką w procesie tworzenia i edycji obrazów. Ponadto, tworząc animacje czy interaktywne projekty multimedialne, kanał alfa pozwala na bardziej elastyczne zarządzanie przezroczystością poszczególnych warstw, co jest kluczowe dla finalnego efektu wizualnego.

Pytanie 7

Wskaż równoważną metodę dla instrukcji switch zapisaną w języku PHP?

Ilustracja do pytania
A. D
B. C
C. A
D. B
Switch w PHP to narzędzie, które pomaga kierować działaniem programu w zależności od wartości, i często zamienia się to na wiele if-else, żeby kod był bardziej przejrzysty. Czasami jednak pojawiają się błędne interpretacje logiki warunkowej. W odpowiedzi D, użycie operatora and oznacza, że oba warunki muszą być spełnione naraz, co jest trochę mylące, bo dla zmiennej $liczba przy wartościach 10 i 20 to nie jest za bardzo możliwe. W odpowiedzi A jest po prostu porównanie do 10, co nie pokazuje całego potencjału switch, który może radzić sobie z wieloma przypadkami. Odpowiedź C też ma problem, bo chociaż używa or poprawnie, brakuje jej else, który jest ważny w switch, bo pozwala na zrobienie czegoś, gdy żaden z warunków nie pasuje. Często zapomina się o znaczeniu default w switch, a w if-else to w sumie jest to else. Zrozumienie tych rzeczy jest ważne, żeby pisać czytelny i efektywny kod PHP, szczególnie gdy tworzymy większe aplikacje, bo bez jasnej struktury może to być naprawdę wyzwanie.

Pytanie 8

Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy.

$tab = array();
for($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}
foreach ($tab as $x){
    if ($x < 0) echo "$x ";
}
A. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich.
B. kolejnymi liczbami od 0 do 9 i wypisanie ich.
C. kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych.
D. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych.
Niektóre odpowiedzi na to pytanie zawierają błędne koncepcje dotyczące sposobu, w jaki działa kod PHP. Na przykład, jedna z odpowiedzi sugeruje, że kod wypełni tablicę kolejnymi liczbami od -100 do 100, co jest błędne, ponieważ kod generuje losowe wartości, a nie sekwencyjne. Kolejna błędna odpowiedź sugeruje, że kod wypełnia tablicę liczbami od 0 do 9, co jest niezgodne z prezentowanym kodem, w którym liczby są generowane losowo i mogą mieć wartość ujemną. Wreszcie, jedna z odpowiedzi mówi, że kod wypisze tylko wartości dodatnie, co jest nieprawidłowe, ponieważ kod wypisuje tylko wartości ujemne. Zrozumienie, jak działa ten konkretny fragment kodu, jest ważne, ale równie ważne jest zrozumienie, dlaczego inne odpowiedzi są nieprawidłowe. Pomaga to zrozumieć, jakie są typowe pułapki i błędne podejścia w programowaniu PHP i jak ich unikać w przyszłości.

Pytanie 9

Rezultatem realizacji zaprezentowanego kodu PHP jest wyświetlenie wartości

Ilustracja do pytania
A. 14
B. 147
C. 136
D. 47
Kod PHP przedstawiony w pytaniu używa pętli for do iteracji od 1 wzwyż dodając 3 do wartości zmiennej $i przy każdej iteracji aż do momentu gdy $i przekroczy 7. Pętla zaczyna zatem od $i równego 1 a następnie przy każdej iteracji wartość $i zwiększa się o 3. W pierwszej iteracji $i wynosi 1 i jest wypisywane. W drugiej iteracji wartość $i wynosi 4 i jest również wypisywane. W trzeciej iteracji wartość $i wynosi 7 i także jest wypisywane. Po tej iteracji wartość $i zwiększa się do 10 co kończy pętlę ponieważ warunek $i <= 7 przestaje być spełniony. Wynikiem jest zatem ciąg 147. Jest to zgodne z zasadami działania pętli for w języku PHP gdzie pierwszy argument ustawia wartość początkową drugi argument to warunek kontynuacji pętli a trzeci argument definiuje sposób zmiany wartości zmiennej kontrolnej. Możliwość iteracyjnego drukowania wartości jest powszechnie stosowana w automatyzacji zadań i przetwarzaniu danych w aplikacjach webowych co jest jedną z podstawowych funkcji w programowaniu PHP.

Pytanie 10

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

A. dodać więzy integralności.
B. stworzyć osobną tabelę przechowującą tylko te pola.
C. utworzyć indeks.
D. dodać klucz obcy.
Dodawanie kluczy obcych ma na celu utrzymanie integralności danych oraz relacji między tabelami, co jest niezwykle ważne w przypadku baz danych złożonych z wielu tabel. Klucz obcy wskazuje na rekord w innej tabeli, co umożliwia zachowanie spójności danych, ale nie przyspiesza operacji wyszukiwania ani sortowania w obrębie pojedynczej tabeli. Bezpośrednio nie wpływa to na wydajność zapytań do tabeli, w której te klucze są zdefiniowane, ponieważ wciąż może być konieczne przeszukiwanie całej tabeli w celu znalezienia odpowiednich rekordów. Więzy integralności, takie jak unikalność czy niepustość kolumn, również służą do utrzymania spójności danych, ale nie przyspieszają operacji wyszukiwania. Są one narzędziem do zapewnienia, że dane są zgodne z określonymi regułami, co jest istotne, ale nie wpływa na wydajność zapytań. Stworzenie osobnej tabeli przechowującej tylko te pola mogłoby w pewnych okolicznościach pomóc w organizacji danych, jednak w praktyce wprowadziłoby to dodatkową złożoność w zarządzaniu relacjami oraz zapytaniami. Takie podejście może prowadzić do większej liczby operacji JOIN, co w dłuższym okresie może spowolnić operacje, zamiast je przyspieszyć. W rezultacie, wszystkie te metody mają swoje miejsce w architekturze baz danych, ale nie są odpowiednie w kontekście optymalizacji operacji wyszukiwania i sortowania na danych.

Pytanie 11

W języku JavaScript trzeba sformułować warunek, który będzie spełniony, gdy zmienna a będzie dowolną liczbą naturalną dodatnią (więcej niż 0) lub gdy zmienna b będzie dowolną liczbą z przedziału domkniętego od 10 do 100. Wyrażenie logiczne w tym warunku powinno mieć postać

A. (a > 0) && ((b >= 10) || (b <= 100))
B. (a > 0) || ((b >= 10) && (b <= 100))
C. (a > 0) && ((b >= 10) && (b <= 100))
D. (a > 0) || ((b >= 10) || (b <= 100))
Poprawna odpowiedź (a > 0) || ((b >= 10) && (b <= 100)) uwzględnia wymaganie, aby warunek był spełniony, gdy zmienna a jest liczbą naturalną dodatnią bądź zmienna b znajduje się w przedziale od 10 do 100, włącznie. W tym przypadku użycie operatora logicznego '||' (lub) jest kluczowe, ponieważ wystarczy, że jeden z warunków będzie prawdziwy, aby cały warunek był spełniony. Przykładem może być skrypt walidujący dane wejściowe użytkownika: jeśli zmienna a przechowuje wartość 5 (czyli liczbę naturalną dodatnią), to niezależnie od wartości zmiennej b, warunek będzie prawdziwy. Analogicznie, jeśli a wynosi 0, a b = 15, warunek również będzie spełniony, ponieważ b mieści się w wymaganym przedziale. Taka konstrukcja warunku jest zgodna z dobrą praktyką programistyczną, gdyż pozwala na jasne i zrozumiałe określenie, kiedy pewne zasady powinny być stosowane. Zastosowanie operatorów logicznych w taki sposób wspiera tworzenie czytelnych i elastycznych warunków, co jest istotne w kontekście utrzymania kodu i jego przyszłych modyfikacji.

Pytanie 12

W kodzie CSS użyto stylizacji dla elementu listy, a żadne inne reguły CSS nie zostały ustalone. To zastosowane formatowanie spowoduje, że

Ilustracja do pytania
A. tekst wszystkich elementów, którym nadano id „hover”, będzie w kolorze Maroon
B. kolor Maroon obejmie co drugi element listy
C. tekst wszystkich elementów listy będzie miał kolor Maroon
D. po najechaniu myszką na element listy, kolor tekstu zmieni się na Maroon
W przypadku innych odpowiedzi występuje pewne nieporozumienie dotyczące zasad działania selektorów CSS. Pierwsza odpowiedź sugeruje, że wszystkie elementy z przypisanym id hover zmienią kolor, co jest nieprawidłowe, ponieważ w podanym kodzie nie ma odwołania do id, ale do pseudoklasy :hover. Przypisywanie stylów z użyciem id wymagałoby użycia selektora z hashtagiem, jak na przykład #hover. Kolejna koncepcja sugeruje, że wszystkie elementy listy będą miały kolor maroon. Aby to było prawdziwe, deklaracja CSS musiałaby dotyczyć selektora li bez pseudoklasy :hover. Innymi słowy, aby wszystkie elementy listy były stale w kolorze maroon, kod powinien wyglądać jak li { color: maroon; }. Ostatnia opcja zakłada, że co drugi element listy zmieni kolor. Do takiego działania niezbędne byłoby użycie selektora nth-child w połączeniu z :hover i odpowiednim stylem, na przykład li:nth-child(even):hover { color: maroon; }, co nie jest obecne w dostarczonym kodzie. W związku z tym, prawidłowe zrozumienie funkcji pseudoklas i selektorów CSS jest kluczowe do właściwego interpretowania kodu stylów i unikania typowych błędów w zastosowaniach praktycznych. Dlatego ważne jest, by projektanci stron internetowych dobrze rozumieli różne aspekty CSS, aby efektywnie wykorzystywać możliwości, jakie oferuje ten język stylów, jednocześnie dążąc do osiągnięcia optymalnej funkcjonalności i estetyki w projektach webowych. Poprawne stosowanie selektorów umożliwia tworzenie intuicyjnych i responsywnych interfejsów użytkownika, co stanowi jedno z głównych celów nowoczesnego web designu. Rozumienie tych zasad minimalizuje także ryzyko błędów i nieporozumień w zespole projektowym, przyczyniając się do lepszej współpracy i realizacji projektów.

Pytanie 13

W SQL, aby uniemożliwić stworzenie konta przy wykonywaniu kwerendy CREATE USER, gdy konto już istnieje, można zastosować następującą składnię

A. CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
B. CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
C. CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
D. CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
Odpowiedzi, które nie zawierają klauzuli 'IF NOT EXISTS', nie są optymalne, ponieważ mogą prowadzić do błędów, gdy próbuje się utworzyć konto, które już istnieje. W przypadku polecenia 'CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';', jeśli konto 'anna' jest już w systemie, użytkownik otrzyma błąd, co skutkuje niepowodzeniem całego skryptu. W kontekście administracji baz danych, jest to szczególnie problematyczne, gdy skrypty są uruchamiane automatycznie, ponieważ mogą one przerywać dalsze operacje. Natomiast składnia 'CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';' jest nieprawidłowa, ponieważ nie istnieje w standardzie SQL. Użytkownicy mogą mylić 'DROP' z opcją usunięcia konta, co w praktyce nie powinno być podejmowane bez wyraźnej intencji. Ostatecznie, 'CREATE OR REPLACE USER...' działa odmiennie, ponieważ nie jest standardową operacją w SQL dla użytkowników; bardziej odpowiednie byłoby jej zastosowanie w kontekście obiektów, takich jak procedury czy widoki. Kluczowe jest zrozumienie, że błędne podejście do tworzenia użytkowników może prowadzić do chaosu w zarządzaniu bazą danych i stwarzać potencjalne zagrożenia dla bezpieczeństwa. Dlatego tak istotne jest stosowanie klauzuli 'IF NOT EXISTS', co jest zgodne z najlepszymi praktykami w branży zarządzania systemami baz danych.

Pytanie 14

Wskaż poprawną definicję stylu CSS dla przycisku typu submit o właściwościach: czarny kolor tła, brak obramowania, marginesy wewnętrzne 5 px.

input[type=submit] {
  background-color: #000000;
  border: none;
  padding: 5px;
}                         A.

input[type=submit] {
  background-color: #ffffff;
  border: none;
  padding: 5px;
}                         B.

input=submit {
  background-color: #000000;
  border: none;
  margin: 5px;
}                         C.

input=submit {
  background-color: #000000;
  border: 0px;
  margin: 5px;
}                         D.
A. A.
B. C.
C. B.
D. D.
Wybrana przez Ciebie odpowiedź nie jest prawidłowa, ale nie martw się, ważne jest, żeby zrozumieć dlaczego. CSS to kaskadowe arkusze stylów, które umożliwiają określenie stylu strony internetowej. Kluczowym aspektem CSS jest składnia, która obejmuje selektor, właściwość i wartość. W przypadku przycisku typu 'submit', selektorem jest 'input[type='submit']'. Właściwością jest 'background-color', 'border' lub 'padding', a wartością jest 'black', 'none' lub '5px' odpowiednio. Niepoprawne odpowiedzi nie spełniają wszystkich lub niektórych z tych wymagań. Mogą one ignorować wymagany czarny kolor tła, brak obramowania, marginesy wewnętrzne 5 px lub wszystkie te elementy. Inne błędne odpowiedzi mogą zawierać nieprawidłowe selektory, właściwości lub wartości. Pamiętaj, że praktyka prowadzi do mistrzostwa, więc nie zniechęcaj się, jeśli nie udało ci się tego dostrzec za pierwszym razem.

Pytanie 15

Podane w ramce polecenie SQL ma za zadanie

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustawić wartość pola id_klasy na 1 dla wszystkich rekordów tabeli Uczen
B. ustawić wartość w kolumnie id_klasy na 1 dla wszystkich rekordów tabeli Uczen
C. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
D. zwiększyć o jeden wartość pola id_klasy w jednym rekordzie tabeli Uczen
Analizując to polecenie SQL, warto na spokojnie rozłożyć je na części, bo większość nieporozumień bierze się z mylenia stałej wartości z wyrażeniem oraz z niezauważenia braku klauzuli WHERE. W zapisie UPDATE Uczen SET id_klasy = id_klasy + 1; po lewej stronie znaku równości mamy kolumnę, którą aktualizujemy, a po prawej – wyrażenie, które określa nową wartość. To wyrażenie nie jest stałą liczbą 1, tylko operacją: bieżąca wartość id_klasy plus 1. Dlatego nie można tego interpretować jako „ustaw wartość na 1”. Gdyby celem było ustawienie identycznej wartości dla wszystkich uczniów, składnia wyglądałaby np. tak: UPDATE Uczen SET id_klasy = 1; i wtedy rzeczywiście każdemu rekordowi przypisano by dokładnie 1, bez użycia dotychczasowej wartości. Druga częsta pomyłka dotyczy zakresu działania UPDATE. W SQL to klauzula WHERE zawęża liczbę modyfikowanych rekordów. Jeśli WHERE nie ma, silnik bazy danych zgodnie ze standardem SQL przyjmuje, że operacja dotyczy wszystkich wierszy tabeli. Nie istnieje domyślne założenie „tylko jeden rekord”, chyba że jawnie wskażemy warunek, który zwróci pojedynczy wiersz, np. WHERE id_ucznia = 5. Dlatego interpretacja, że polecenie zmienia tylko jeden rekord, jest po prostu sprzeczna z tym, jak działa mechanizm UPDATE. Z mojego doświadczenia typowy błąd myślowy polega na tym, że ktoś patrzy na przykład z dokumentacji, gdzie często pojawia się WHERE, i podświadomie zakłada, że on tam „zawsze jest”. A tu go po prostu nie ma, więc działanie jest globalne. Drugi błąd to utożsamianie zapisu „+ 1” z „ustaw na 1”, co jest bardzo niebezpieczne w prawdziwych systemach, bo łatwo wtedy masowo popsuć dane. Dobre praktyki w pracy z SQL mówią jasno: zawsze dokładnie analizuj część SET oraz obecność lub brak WHERE, a przed wykonaniem złożonego UPDATE warto najpierw uruchomić SELECT z tym samym warunkiem, żeby zobaczyć, które rekordy zostaną zmienione. Taka systematyka pozwala uniknąć właśnie takich nieporozumień, jakie widać w błędnych odpowiedziach.

Pytanie 16

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. replace()
B. trim()
C. concat()
D. slice()
Wybór innych metod do manipulacji ciągami tekstowymi sugeruje niezrozumienie ich właściwości. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co nie ma nic wspólnego z wydobywaniem fragmentów. Użytkownicy mogą mylnie sądzić, że trim() jest przydatna do ekstrakcji, jednak jej zastosowanie jest zupełnie inne i polega na oczyszczaniu danych. Metoda concat() łączy dwa lub więcej ciągów tekstowych, co również nie odpowiada na potrzebę wydobywania podciągu. Zrozumienie, że concat() nie jest odpowiedzią na pytanie o wydobycie fragmentu, jest kluczowe dla efektywnego korzystania z języka JavaScript. Z kolei replace() służy do zamiany określonego fragmentu tekstu na inny, co może wprowadzać w błąd, gdyż nie wydobywa fragmentów, lecz je modyfikuje. Użytkownicy mogą mylić te metody, nie dostrzegając różnic między modyfikacją a wydobywaniem, co jest istotne w kontekście manipulacji danymi. Ważne jest, aby rozumieć specyfikę każdej metody oraz jej zastosowanie w codziennym programowaniu, co pozwala na efektywniejsze i bardziej precyzyjne pisanie kodu w JavaScript.

Pytanie 17

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. Tomasz
D. Krzysztof
W prezentowanym kodzie PHP mamy do czynienia z tablicą indeksowaną. Tablica ta zawiera cztery elementy: 'Anna' 'Tomasz' 'Krzysztof' i 'Aleksandra'. W PHP tablice indeksowane są zerowane czyli pierwszy element znajduje się pod indeksem 0 drugi pod indeksem 1 i tak dalej. Dlatego jeśli chcemy uzyskać dostęp do trzeciego elementu tablicy musimy odwołać się do indeksu 2. W związku z tym wyrażenie echo $imiona[2] wypisze wartość 'Krzysztof'. Zrozumienie indeksowania tablic w PHP jest kluczowe zwłaszcza przy operacjach na dużych zbiorach danych. Poprawna praktyka programistyczna polega na dokładnym śledzeniu indeksów aby uniknąć błędów typu 'index out of range'. Warto również zwrócić uwagę na alternatywne sposoby deklaracji tablic w PHP np. za pomocą skróconej notacji [] co jest preferowane w nowszych wersjach PHP ze względu na czytelność i zwięzłość kodu. Takie podejście zgodne jest z dobrymi praktykami w programowaniu obiektowym oraz w przypadku tworzenia API gdzie struktury danych są często wykorzystywane w podobny sposób.

Pytanie 18

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElement('p');
B. getElementByClassName('p.1')[0];
C. getElementByTagName('p')[0];
D. getElementById('p1');
Metoda getElementsByTagName('p')[0] jest prawidłowym sposobem odwołania się do pierwszego elementu <p> w dokumencie HTML. Funkcja getElementsByTagName zwraca kolekcję wszystkich elementów o określonej nazwie tagu. W przypadku użycia tagu 'p', funkcja zwraca tablicę wszystkich paragrafów. Aby uzyskać dostęp do pierwszego paragrafu, korzystamy z indeksu [0], co jest zgodne z konwencją numerowania od zera w językach programowania. Praktyczne zastosowanie tej metody obejmuje manipulację treścią lub stylami pierwszego paragrafu, na przykład zmiana jego tekstu za pomocą innerHTML lub dodanie klasy CSS w celu zmiany jego wyglądu. Stosowanie getElementsByTagName jest zgodne z powszechnymi standardami i dobrymi praktykami w pracy z DOM (Document Object Model) w JavaScript. Ważne jest zrozumienie tego mechanizmu, aby efektywnie operować na elementach HTML oraz tworzyć dynamiczne i interaktywne strony internetowe. Warto również pamiętać, że metoda ta zwraca dynamiczną kolekcję, co oznacza, że zmiany w DOM automatycznie wpływają na zawartość zwróconej kolekcji.

Pytanie 19

Aby cofnąć uprawnienia danemu użytkownikowi, należy użyć polecenia

A. REVOKE
B. GRANT NO PRIVILEGES
C. DELETE PRIVILEGES
D. DELETE
Odpowiedź 'REVOKE' jest rzeczywiście trafna. To standardowe polecenie w systemach baz danych, jak SQL, do odbierania uprawnień użytkownikom. Dzięki temu administracja może lepiej zarządzać dostępem do danych, co jest mega ważne dla ich bezpieczeństwa. Na przykład, jeśli ktoś wcześniej miał prawo do edytowania danych, administrator może użyć 'REVOKE UPDATE ON tabela FROM użytkownik', żeby cofnąć te uprawnienia. W praktyce, stosowanie odpowiednich uprawnień jest kluczowe, żeby utrzymać integralność danych oraz upewnić się, że tylko uprawnione osoby mają do nich dostęp. Użycie 'REVOKE' to dobra praktyka w zarządzaniu dostępem, bo daje możliwość elastycznego dostosowania uprawnień, co może pomóc w uniknięciu nieautoryzowanego dostępu.

Pytanie 20

Przedstawione zapytanie SELECT wykonane na tabeli przechowującej dane o uczestnikach konkursu ma za zadanie wybrać

SELECT MAX(wiek) - MIN(wiek) FROM uczestnicy;
A. różnicę wieku pomiędzy najstarszym i najmłodszym uczestnikiem.
B. średnią arytmetyczną wieku uczestników.
C. minimalny oraz maksymalny wiek uczestników.
D. liczbę najstarszych uczestników.
Gratulacje, ta odpowiedź jest poprawna. Zapytanie SQL używa funkcji agregujących MAX i MIN do określenia maksymalnej i minimalnej wartości wieku w tabeli uczestników. Użycie tych funkcji umożliwia nam zidentyfikowanie najstarszego i najmłodszego uczestnika. Następnie, zapytanie oblicza różnicę między tymi wartościami, co odpowiada różnicy wieku między najstarszym i najmłodszym uczestnikiem. To jest standardowe podejście w SQL do wykonywania tego typu zapytań. W praktyce, takie zapytania są często używane w analizie danych do określania różnorodności danych, takiej jak zakres wieku uczestników w danym konkursie. Pamiętaj, że funkcje agregujące w SQL, takie jak MAX i MIN, są niezwykle przydatne w analizie danych, umożliwiając nam podsumowanie i analizę dużych zbiorów danych.

Pytanie 21

Na podstawie tabeli Towar wykonano następujące zapytanie SQL. Jaki będzie wynik tej operacji?

 SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC;
IDnazwa_towarucena_katalogowawagakolor
1Papier ksero A4112.3biel
2Zeszyt A54.20.13wielokolorowy
3Zeszyt A5 w linie3.50.12niebieski
4Kredki 24 kolory90.3wielokolorowy
5Plecak szkolny65.51.3zielony
A. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
B. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
C. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
D. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
Twoja odpowiedź jest niepoprawna. Wydaje się, że nie zrozumiałeś, jak działa zapytanie SQL w kontekście selekcji i sortowania danych. Zapytanie to zwracałoby nazwy towarów, które spełniają warunek ceny katalogowej mniejszej niż 65. Następnie sortuje te towary od najcięższego do najlżejszego. W przypadku podanej tabeli towary, które spełniają te warunki to: Papier ksero A4 (waga 2.3), Kredki 24 kolory (waga 0.3), Zeszyt A5 (waga 0.13) i Zeszyt A5 w linie (waga 0.12). Błędne odpowiedzi sugerują, że nie zrozumiałeś, w jaki sposób zapytanie SQL sortuje wyniki na podstawie wagi. Istotne jest zrozumienie, że SQL pozwala na filtrowanie danych za pomocą różnych operatorów, takich jak 'mniejszy od', a następnie sortowanie tych wyników za pomocą różnych kryteriów. W tym przypadku sortowanie odbywa się od najcięższego do najlżejszego towaru. Upewnij się, że rozumiesz te koncepcje, ponieważ są one kluczowe w pracy z bazami danych.

Pytanie 22

W języku SQL, aby wybrać wszystkie rekordy z tabeli B, w tym część wspólną z tabelą A, należy zastosować typ związku

Ilustracja do pytania
A. A INNER JOIN B
B. A FULL OUTER JOIN B
C. A RIGHT JOIN B
D. A LEFT JOIN B
Poprawnie – w tym zadaniu kluczowe jest zrozumienie, że interesuje nas **wszystko z tabeli B**, a dodatkowo – tam gdzie się da – dokładamy dane z tabeli A. Dokładnie tak działa `RIGHT JOIN` zapisany jako `A RIGHT JOIN B ON ...`. Prawa tabela w zapisie JOIN (czyli B) jest zawsze tą „obowiązkową”: dostajemy wszystkie jej wiersze, a dane z lewej (A) pojawiają się tylko tam, gdzie warunek łączenia jest spełniony. Tam gdzie dopasowania w A nie ma, kolumny z A przyjmują wartość `NULL`. To dokładnie odpowiada zielonemu obszarowi na diagramie – cała B plus część wspólna A∩B. W praktyce taki RIGHT JOIN przydaje się np. gdy tabela B jest tabelą główną (np. `Zamowienia`), a tabela A jest pomocnicza (np. `Klienci_archiwalni`), ale z jakiegoś powodu w zapytaniu chcemy właśnie B mieć „gwarantowaną” – czyli nawet jeśli w A brakuje powiązanego rekordu, zamówienie i tak ma się pojawić w wynikach. Przykładowo: `SELECT * FROM Klienci_archiwalni A RIGHT JOIN Zamowienia B ON A.id_klienta = B.id_klienta;` Dobra praktyka w SQL mówi, że częściej stosuje się `LEFT JOIN`, bo jest czytelniejszy (łatwiej myśleć: „biorę wszystko z lewej”), ale logicznie RIGHT JOIN robi to samo, tylko „odwraca perspektywę”. Wiele zespołów wręcz zaleca, żeby zamiast RIGHT JOIN przepisać zapytanie tak, by użyć LEFT JOIN i zamienić kolejność tabel – ale na egzaminach i w testach warto znać oba. Moim zdaniem dobrze jest też od razu kojarzyć: `LEFT JOIN` – wszystko z lewej, `RIGHT JOIN` – wszystko z prawej, `INNER JOIN` – tylko przecięcie, `FULL OUTER JOIN` – suma zbiorów. Dzięki temu każde zadanie z diagramem Venna w SQL robi się dużo prostsze i mniej mylące.

Pytanie 23

W języku HTML 5 do grupowania powiązanych ze sobą elementów formularza używa się znacznika

A. <optgroup>
B. <fieldset>
C. <option>
D. <summary>
W tym pytaniu chodzi o semantykę HTML5 związaną z formularzami, więc warto spokojnie rozłożyć na czynniki wszystkie podane znaczniki. Częsty błąd polega na tym, że widząc kilka tagów kojarzonych luźno z formularzami, wybieramy któryś „na czuja”, zamiast zastanowić się, do czego dokładnie został zaprojektowany w specyfikacji HTML. Znacznik <summary> w ogóle nie służy do obsługi formularzy. Jest on elementem używanym wewnątrz <details> i odpowiada za nagłówek rozwijanego bloku. To bardziej narzędzie do tworzenia prostych elementów typu „pokaż/ukryj treść”, a nie do grupowania pól formularza. W formularzu można go użyć tylko jako zwykły element HTML, ale nie nadaje on żadnej specjalnej semantyki powiązanej z inputami czy etykietami. Znacznik <option> jest ściśle związany z kontrolką <select>. Reprezentuje pojedynczą opcję do wyboru w liście rozwijanej. On nie grupuje niczego, raczej sam jest elementem składowym większej struktury. Mylenie <option> z elementami grupującymi wynika często z tego, że w formularzach pojawia się dużo nawiasów ostrych i człowiek podświadomie kojarzy wszystkie z „formularzem”, ale rola <option> jest bardzo wąska: pojedyncza wartość w <select>. Z kolei <optgroup> faktycznie coś grupuje, ale tylko wewnątrz listy <select>. Umożliwia pogrupowanie opcji w logiczne sekcje, np. „Polska”, „Niemcy”, „Czechy” jako grupy krajów w jednym polu wyboru. To jednak nie jest ogólny mechanizm do grupowania różnych elementów formularza, tylko specjalistyczny element przeznaczony wyłącznie do porządkowania <option>. Dlatego nie zastąpi <fieldset>, który może otaczać wiele różnych kontrolek: inputy, selecty, textarea, przyciski itd. Podstawą dobrej odpowiedzi jest zrozumienie, że tylko <fieldset> ma w specyfikacji HTML5 jasno zdefiniowaną rolę „grouping form controls”. Pozostałe znaczniki pełnią inne, wyspecjalizowane funkcje i nie nadają całej grupie pól formularza właściwej semantyki ani nie współpracują tak dobrze z technologiami asystującymi. W praktyce, jeśli chcesz logicznie podzielić formularz na sekcje, zawsze myśl w pierwszej kolejności o <fieldset> + <legend>, a dopiero potem o innych elementach, które pełnią bardziej szczegółowe role.

Pytanie 24

Jak można dodać zewnętrzny arkusz stylów do dokumentu HTML?

A. <css>
B. <link>
C. <meta>
D. <style>
Dołączenie zewnętrznego arkusza stylów do kodu HTML realizowane jest przy użyciu znacznika <link>, który znajduje się w sekcji <head> dokumentu HTML. Ten znacznik umożliwia przeglądarkom internetowym odnalezienie i załadowanie zewnętrznego pliku CSS, co pozwala na zastosowanie stylów do elementów HTML. Przy użyciu atrybutu 'href' wskazujemy lokalizację arkusza stylów, natomiast atrybut 'rel' definiuje relację między dokumentem HTML a plikiem stylów, zazwyczaj ustawiając go na 'stylesheet'. Przykładowa struktura to: <link rel='stylesheet' href='styles.css'>. Taki sposób organizacji stylów pozwala na lepsze zarządzanie kodem, umożliwia wielokrotne wykorzystanie tych samych stylów w różnych dokumentach oraz przyspiesza ładowanie strony poprzez caching. Użycie zewnętrznych arkuszy stylów jest zgodne z najlepszymi praktykami programowania front-endowego, co wpływa pozytywnie na wydajność oraz SEO, umożliwiając lepszą indeksację przez wyszukiwarki. Dodatkowo, umożliwia to łatwiejsze wprowadzanie zmian w stylach bez potrzeby edytowania każdego pliku HTML z osobna.

Pytanie 25

W stylu CSS ustalono obramowanie pojedyncze, które ma następujące kolory dla krawędzi:

border: solid 1px; border-color: red blue green yellow;
A. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta
B. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółta
C. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta
D. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta
Definicja obramowania za pomocą stylu CSS z użyciem właściwości border-color pozwala na określenie kolorów każdej z krawędzi elementu w kolejności zgodnej ze wskazówkami zegara. Gdy podano cztery wartości jak w border-color: red blue green yellow; oznaczają one odpowiednio kolory krawędzi górnej prawej dolnej i lewej. Właściwość border: solid 1px; definiuje typ obramowania jako solidne i jego szerokość jako 1px. Warto zaznaczyć że podanie czterech wartości kolorów w border-color jest zgodne z zasadami CSS i umożliwia konfigurowanie wyglądu elementów w sposób szczegółowy i zindywidualizowany. Projektanci stron internetowych często używają tej techniki do tworzenia graficznych stylów które zwiększają czytelność i estetykę witryny. W praktyce wiedza o manipulacji stylem obramowania w CSS jest kluczowa dla tworzenia responsywnych i wizualnie atrakcyjnych interfejsów użytkownika. Takie podejście wspiera zachowanie spójności wizualnej co jest jedną z dobrych praktyk w projektowaniu front-endu.

Pytanie 26

Podany fragment kodu PHP ma na celu wstawienie wartości z zmiennych $a, $b, $c do bazy danych, w tabeli dane. Tabela ta składa się z czterech kolumn, z których pierwsza to autoinkrementowany klucz podstawowy. Które z zapytań powinno być przypisane do zmiennej $zapytanie? ``````

A. ```SELECT NULL, '$a', '$b', '$c' FROM dane;```
B. ```INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');```
C. ```SELECT '$a', '$b', '$c' FROM dane;```
D. ```INSERT INTO dane VALUES ('$a', '$b', '$c');```
Prawidłowa odpowiedź to "INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');" ponieważ wstawia dane do bazy danych w sposób zgodny z jej strukturą. W tabeli dane pierwsze pole jest kluczem głównym, który jest autoinkrementowany, co oznacza, że nie musimy go podawać ręcznie. Wartość NULL w tym przypadku pozwala bazie danych na automatyczne wygenerowanie nowego identyfikatora. Pozostałe zmienne, $a, $b i $c, zawierają dane, które chcemy wstawić do odpowiednich kolumn. Stosowanie przygotowanych zapytań (prepared statements) w PHP z wykorzystaniem mysqli jest najlepszą praktyką, ponieważ zapewnia ochronę przed atakami SQL injection oraz poprawia wydajność. Przykład zastosowania tego typu zapytania może obejmować dodawanie użytkowników do systemu, gdzie każdy użytkownik ma unikalny identyfikator generowany przez bazę danych. Warto również pamiętać o walidacji i sanitizacji danych przed ich wprowadzeniem do bazy.

Pytanie 27

Jakie cechy powinien posiadać klucz główny?

A. Jest unikatowy, nie może zawierać pustych wartości
B. Nie może przybierać wartości, reprezentowany jest przez dokładnie jedno pole tabeli
C. Reprezentowany jest przez jedno pole tabeli, jego wartość nie może ulegać zmianie
D. Jest unikatowy, może mieć tylko wartości całkowite
Odpowiedź wskazująca, że klucz główny jest unikatowy i nie może przyjmować pustych wartości jest absolutnie poprawna. Klucz główny w relacyjnych bazach danych pełni kluczową rolę w identyfikacji unikalnych rekordów w tabeli. Jego unikalność zapewnia, że każdy wiersz w tabeli można jednoznacznie zidentyfikować, co jest kluczowe dla utrzymania integralności danych. Na przykład, w tabeli użytkowników, identyfikator użytkownika (user_id) może pełnić rolę klucza głównego, co pozwala na łatwe wyszukiwanie i powiązanie danych z innymi tabelami, takimi jak zamówienia czy posty. Standardy takie jak ISO/IEC 9075 (SQL) podkreślają znaczenie kluczy głównych w projektowaniu baz danych. Dodatkowo, dobrym zwyczajem jest, aby kolumny będące kluczami głównymi były także oznaczone jako NOT NULL, co zapobiega wprowadzeniu pustych wartości, a tym samym zapewnia integralność danych. Zrozumienie tego konceptu jest niezbędne dla każdego, kto projektuje lub zarządza bazami danych, ponieważ błędy w definicji kluczy głównych mogą prowadzić do poważnych problemów z integralnością danych.

Pytanie 28

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym nadawaniem indeksów jej elementom?

A. for
B. do...while
C. foreach
D. while
Wybór pętli 'for' nie jest odpowiedni, gdyż wymaga ręcznego zarządzania indeksami, co może prowadzić do błędów, szczególnie w przypadku zmieniających się tablic. Pętla 'while' działa na zasadzie powtarzania bloku kodu do momentu spełnienia określonego warunku, co również nie jest optymalne do iteracji po tablicach, ponieważ wymaga dodatkowego zarządzania wskaźnikiem lub indeksem. Z kolei 'do...while' jest podobne do 'while', lecz gwarantuje przynajmniej jedno wykonanie bloku kodu, co w kontekście iteracji po tablicy nie jest koniecznym wymogiem. Pętle te, mimo że są funkcjonalne w swoich kontekstach, nie są zoptymalizowane do pracy z tablicami w PHP, co czyni je mniej praktycznymi w tej konkretnej sytuacji. Typowe błędy myślowe prowadzące do wyboru niewłaściwej pętli to nieznajomość różnic w zastosowaniu tych konstrukcji oraz niewłaściwe ocenianie kontekstu, w którym są one używane. Zrozumienie struktury danych i odpowiednich narzędzi do ich przetwarzania jest kluczowe dla skutecznego programowania.

Pytanie 29

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

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

Pytanie 30

Który z modyfikatorów określa opisany w ramce przypadek? Metoda i zmienna są dostępne wyłącznie dla innych metod tej samej klasy

A. public
B. protected
C. private
D. static
Modyfikatory dostępu mają kluczowe znaczenie dla organizacji i bezpieczeństwa kodu. Odpowiedzi wskazujące na 'static', 'public' oraz 'protected' są nieprawidłowe w kontekście podanego opisu. Modyfikator 'static' oznacza, że metoda lub zmienna należy do klasy, a nie do instancji klasy, co pozwala na dostęp do niej bez tworzenia obiektu. Jest to użyteczne w przypadku narzędzi lub metod pomocniczych, ale nie odpowiada na wymaganie dotyczące ograniczenia dostępu. Modyfikator 'public' z kolei pozwala na dostęp do elementów z każdego miejsca w kodzie, co jest sprzeczne z definicją zawężającego dostępu do innych metod klasy. Użycie 'public' w tym kontekście prowadzi do sytuacji, w której inne klasy mogą niebezpiecznie zmieniać stan obiektów, co jest sprzeczne z zasadami dobrego projektowania. Modyfikator 'protected' umożliwia dostęp do elementów dla klas dziedziczących oraz dla tych, które znajdują się w tej samej paczce, co również nie spełnia wymogu ograniczenia dostępu wyłącznie do metod własnej klasy. Typowe błędy myślowe, prowadzące do wyboru niewłaściwych odpowiedzi, często wynikają z braku zrozumienia zasad projektowania obiektowego oraz niewłaściwego kojarzenia modyfikatorów z poziomem dostępu. Dlatego kluczowe jest zrozumienie, że 'private' jest jedynym modyfikatorem, który w pełni spełnia wymagania opisane w pytaniu.

Pytanie 31

Do uruchomienia kodu napisanego w języku PHP konieczne jest posiadanie w systemie

A. serwera WWW z interpreterem PHP
B. przeglądarki internetowej
C. serwera WWW, parsera PHP oraz bazy danych MySQL
D. serwera WWW z bazą danych MySQL
Pierwsza z niepoprawnych odpowiedzi sugeruje, że wystarczy zainstalować przeglądarkę internetową do uruchamiania kodu PHP. To podejście jest błędne, ponieważ przeglądarki internetowe są narzędziami do wyświetlania zawartości HTML i nie mają zdolności do interpretowania skryptów PHP. PHP musi być przetwarzany na serwerze, a przeglądarka jedynie odbiera już przetworzone dane. Kolejna niepoprawna odpowiedź wskazuje na konieczność posiadania serwera WWW wraz z serwerem MySQL. Chociaż MySQL jest popularnym systemem zarządzania bazami danych używanym w połączeniu z PHP, nie jest on niezbędny do uruchamiania samych skryptów PHP, zwłaszcza w sytuacjach, gdy aplikacja nie korzysta z bazy danych. Ostatnia z niepoprawnych odpowiedzi odnosi się do potrzeby posiadania serwera WWW, parsera PHP oraz serwera MySQL. Choć jest to podejście bardziej kompleksowe, to znowu, do uruchomienia kodu PHP wystarczy jedynie serwer WWW z interpreterem PHP. MySQL jest opcjonalny i wykorzystywany tylko wtedy, gdy aplikacja wymaga interakcji z bazą danych. Wnioskując, aby uruchomić kod PHP, kluczowym elementem jest serwer WWW z interpreterem PHP, co czyni inne odpowiedzi niepoprawnymi w kontekście podstawowych wymagań.

Pytanie 32

W języku JavaScript wartość typu boolean może być przedstawiana przez

A. 45.3
B. null
C. true
D. –20
Typ boolean w języku JavaScript jest jednym z podstawowych typów danych, reprezentującym jedynie dwie możliwe wartości: true (prawda) oraz false (fałsz). Typ ten jest kluczowy w programowaniu, umożliwiając tworzenie warunków oraz podejmowanie decyzji w kodzie. W praktyce, boolean jest wykorzystywany w instrukcjach warunkowych, takich jak if, gdzie wyrażenia zwracające wartość logiczną decydują o dalszym przebiegu programu. Na przykład, wyrażenie 'if (x > 10)' zwraca true, jeśli x jest większe od 10, i false w przeciwnym razie. JavaScript, zgodnie ze specyfikacją ECMA-262, nie tylko definiuje typ boolean, ale również określa sposób konwersji innych typów danych na boolean. Funkcje takie jak Boolean() oraz operatory logiczne (&&, ||, !) są używane do uzyskania wartości boolean z innych typów. Warto również zauważyć, że JavaScript stosuje tzw. "truthy" i "falsy" wartości, co oznacza, że niemal każdy typ danych może być interpretowany jako boolean w kontekście warunków, jednak tylko true i false są typowymi wartościami tego typu. Zrozumienie działania typu boolean jest fundamentalne dla programistów, umożliwiając skuteczne kontrolowanie przepływu programu oraz implementację logiki decyzyjnej."

Pytanie 33

W CSS, aby ustalić różne formatowanie dla pierwszej litery w akapicie, trzeba użyć selektora

A. atrybutu p [first-letter]
B. pseudoelementu p::first-letter
C. klasy p.first-letter
D. dziecka p + first-letter
Wybór klasy p.first-letter nie jest poprawny, ponieważ klasy w CSS są używane do grupowania elementów i stylizacji ich w zbiorach, a nie do selekcji poszczególnych części tekstu, jak pierwsza litera akapitu. Klasa ta będzie odnosić się do wszystkich elementów z przypisaną daną klasą, co nie spełnia celu stylizacji wyłącznie pierwszej litery. Selekcja dziecka p + first-letter jest również błędna, gdyż operator + w CSS odnosi się do sąsiadujących ze sobą elementów. Oznacza to, że ten kombinat nie jest użyteczny w kontekście pierwszej litery akapitu, ponieważ nie zapewnia odpowiedniego targetowania. Z kolei atrybutu p [first-letter] nie funkcjonuje w CSS, ponieważ atrybuty są używane do selekcji elementów na podstawie ich atrybutów HTML, takich jak klasy czy identyfikatory, a nie do selekcji pseudoelementów, jak w przypadku first-letter. Zrozumienie różnicy pomiędzy tymi koncepcjami jest kluczowe dla skutecznego stylizowania dokumentów w CSS oraz dla tworzenia estetycznych i funkcjonalnych interfejsów użytkownika.

Pytanie 34

Język JavaScript wspiera

A. funkcje wirtualne
B. abstrakcyjne klasy
C. wysyłanie ciastek z identycznymi informacjami do wielu użytkowników strony
D. obiekty DOM
Wybór jednej z pozostałych opcji może wynikać z nieporozumienia dotyczącego podstawowych koncepcji programowania w JavaScript. Funkcje wirtualne, które są bardziej charakterystyczne dla języków programowania obiektowego, takich jak C++ czy Java, nie mają zastosowania w JavaScript, który nie wspiera klasycznej hierarchii klas w taki sposób, jak te języki. W JavaScript funkcje są obiektami, a prototypowe dziedziczenie jest kluczowym mechanizmem, co często prowadzi do mylnej interpretacji koncepcji klas abstrakcyjnych. JavaScript nie definiuje klas abstrakcyjnych w tradycyjnym sensie, chociaż od ES6 wprowadzono wsparcie dla klas. Co więcej, idea wysyłania ciastek z tą samą informacją do wielu klientów nie jest bezpośrednio związana z językiem JavaScript, lecz z mechanizmami serwerowymi oraz strukturyzowaniem danych w aplikacjach webowych. Często popełniane błędy myślowe dotyczą zrozumienia ról różnych technologii webowych i ich interakcji. JavaScript działa głównie po stronie klienta, a jego integracja z serwerami odbywa się zazwyczaj za pomocą protokołu HTTP, w którym ciasteczka są jednym z wielu elementów zarządzania stanem użytkownika. Zrozumienie roli DOM w kontekście JavaScript jest kluczowe do tworzenia efektywnych i interaktywnych aplikacji, co podkreśla znaczenie tej koncepcji w codziennym programowaniu.

Pytanie 35

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. części wspólnej.
C. wykluczenia.
D. grupowania.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 36

W języku HTML atrybut shape w znaczniku area, który definiuje typ obszaru, może mieć wartość

A. rect, square, circle
B. rect, triangle, circle
C. rect, poly, circle
D. poly, square, circle
Atrybut shape znacznika area w języku HTML jest kluczowy dla określenia kształtu obszaru, który ma być interaktywny (klikany) w mapie obrazów. Prawidłowe wartości, które można przypisać temu atrybutowi, to rect, poly oraz circle. Każda z tych wartości odpowiada innemu typowi kształtu. Rect definiuje prostokąt, gdzie wymagane są cztery współrzędne (x1, y1, x2, y2), poly pozwala na tworzenie wielokątów o dowolnej liczbie boków poprzez podanie serii współrzędnych, a circle określa koło, które wymaga podania współrzędnych środka oraz promienia. Przykładem zastosowania może być umieszczenie mapy interaktywnej na stronie internetowej, gdzie każdy obszar obrazu prowadzi do innej podstrony. Przykładowy kod HTML może wyglądać tak: <map name='myMap'><area shape='rect' coords='34,44,270,350' href='link1.html'><area shape='circle' coords='337,300,44' href='link2.html'><area shape='poly' coords='200,10,250,100,150,100' href='link3.html'></map>, co ilustruje wykorzystanie tych kształtów w praktyce. Takie podejście poprawia dostępność i użyteczność strony, a także jest zgodne z najlepszymi praktykami w zakresie tworzenia responsywnych interfejsów użytkownika.

Pytanie 37

Styl ten generuje pojedyncze obramowanie, które charakteryzuje się następującymi właściwościami:

border: solid 1px;
border-color: red blue green yellow;
A. krawędź górna ma kolor czerwony, krawędź prawa jest w kolorze niebieskim, krawędź dolna ma kolor zielony, krawędź lewa jest koloru żółtego
B. krawędź górna jest czerwonego koloru, krawędź lewa jest w kolorze niebieskim, krawędź dolna ma kolor zielony, krawędź prawa ma kolor żółty
C. krawędź lewa ma kolor czerwony, krawędź dolna jest w kolorze niebieskim, krawędź prawa jest koloru zielonego, krawędź górna ma kolor żółty
D. krawędź prawa jest koloru czerwonego, krawędź dolna ma kolor niebieski, krawędź lewa ma kolor zielony, krawędź górna ma kolor żółty
Podana odpowiedź jest prawidłowa, ponieważ opisuje właściwe przypisanie kolorów do krawędzi obramowania według standardów CSS. W zapisie border-color: red blue green yellow; kolory są przypisywane zgodnie z kierunkiem wskazówek zegara, zaczynając od góry. Zatem krawędź górna jest koloru czerwonego, prawa koloru niebieskiego, dolna zielonego, a lewa żółtego. Jest to zgodne z praktykami projektowania stron internetowych, gdzie priorytetem jest zrozumiała i spójna struktura kodu. W praktyce takie zrozumienie pozwala na efektywne tworzenie stylów w CSS, przyspieszając proces tworzenia responsywnych i estetycznych interfejsów użytkownika. Wiedza o przypisywaniu kolorów do krawędzi jest przydatna w tworzeniu zaawansowanych układów graficznych, pozwalając na lepsze wykorzystanie przestrzeni wizualnej i wprowadzenie unikalnych elementów stylistycznych. Takie podejście do CSS jest zgodne z nowoczesnymi standardami projektowania, które kładą nacisk na czytelność i efektywność kodu oraz zapewniają lepsze doświadczenia użytkownika.

Pytanie 38

W wyniku przedstawionego polecenia w tabeli zostanie ```ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;```

A. zmieniony typ kolumny nazwa2 na DOUBLE
B. dodana kolumna nazwa2 z wymuszoną wartością DOUBLE
C. zmieniona kolumna z nazwa1 na nazwa2
D. dodana kolumna nazwa2 o typie zmiennoprzecinkowym
Analizując pozostałe odpowiedzi, można zauważyć, że nie odzwierciedlają one poprawności działania zapytania SQL. Pierwsza odpowiedź sugeruje zmianę nazwy kolumny, co jest błędnym podejściem, ponieważ użycie klauzuli "ADD" wyraźnie wskazuje na dodanie nowej kolumny, a nie na modyfikację istniejącej. Zmiana nazwy kolumny wymagałaby użycia zapytania "ALTER TABLE ... RENAME COLUMN...", co jest zupełnie inną operacją. Drugie stwierdzenie koncentruje się na zmianie wartości kolumny "nazwa2" na typ DOUBLE, co jest niepoprawne, gdyż zapytanie nie zmienia wartości, a dodaje nową kolumnę. Ostatnia odpowiedź wskazuje na dodanie kolumny z wartością domyślną, co również jest błędne, gdyż w zapytaniu nie określono wartości domyślnej dla nowej kolumny. W rzeczywistości, przy dodawaniu kolumny można również ustawić wartość domyślną, ale nie jest to wymagane. Typowe błędy w myśleniu prowadzące do takich wniosków często wynikają z niepełnego zrozumienia składni SQL i funkcji poszczególnych poleceń. Dlatego istotne jest, aby przed przystąpieniem do modyfikacji struktury bazy danych dobrze zaznajomić się z dokumentacją i zasadami działania systemu zarządzania bazą danych, z którego się korzysta.

Pytanie 39

W SQL po wykonaniu zapytania ALTER TABLE osoba DROP COLUMN grupa; co się stanie?

A. kolumna grupa zostanie dodana
B. kolumna grupa zostanie usunięta
C. nazwa kolumny zmieni się na grupa
D. nazwa tabeli zmieni się na grupa
No więc dobrze trafiłeś. To zapytanie SQL ALTER TABLE osoba DROP COLUMN grupa; jest używane do usunięcia kolumny 'grupa' z tabeli 'osoba'. To polecenie jest częścią SQL, który służy do zmieniania struktury tabel. Usunięcie kolumny może być fajne, gdy już nie jest potrzebna, albo jeśli wprowadzasz jakieś zmiany w danych. Na przykład, może się zdarzyć, że kolumna 'grupa' ma dane, które są już nieaktualne, bo zmieniłeś sposób klasyfikacji. A tak w ogóle, dobrze jest przed taką operacją zrobić kopię zapasową danych, bo usunięcie kolumny to trwała zmiana. To podejście jest powszechnie wykorzystywane w zarządzaniu bazami danych oraz w procesach ETL, gdzie ważne jest, by dane były dobrze zorganizowane.

Pytanie 40

W dziedzinie grafiki komputerowej termin kanał alfa odnosi się do

A. barwienia
B. pikselizacji
C. koloryzacji
D. przezroczystości
Kanał alfa jest kluczowym elementem w grafice komputerowej, który odpowiada za reprezentowanie przezroczystości pikseli w obrazie. W praktyce oznacza to, że każdy piksel w obrazie może mieć przypisany poziom przezroczystości, co pozwala na tworzenie efektów takich jak cieniowanie, nakładanie różnych warstw oraz efekty specjalne. Kanał alfa jest zwykle reprezentowany jako dodatkowy kanał w formacie RGBA, gdzie R, G, i B oznaczają odpowiednio kolory czerwony, zielony i niebieski, a A to kanał alfa, który definiuje stopień przezroczystości. Na przykład, w przypadku edytorów graficznych, takich jak Adobe Photoshop, użytkownicy mogą łatwo manipulować przezroczystością warstw, co jest bardzo przydatne w procesie tworzenia złożonych kompozycji. W standardach graficznych, takich jak OpenGL i DirectX, kanał alfa również odgrywa istotną rolę w renderowaniu obiektów 3D, umożliwiając realistyczne efekty wizualne. Zrozumienie działania kanału alfa jest niezbędne dla artystów cyfrowych i projektantów, aby w pełni wykorzystać możliwości, jakie oferuje nowoczesna grafika komputerowa.