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: 23 kwietnia 2026 12:52
  • Data zakończenia: 23 kwietnia 2026 13:13

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

Baza danych zawiera tabelę uczniowie z kolumnami: imie, nazwisko, klasa. Jakie polecenie SQL powinno być użyte, aby wyświetlić imiona i nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN "M%"
B. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = "M%"
C. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE "M%"
D. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN "M%"
Wybór opcji SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE "M%" jest poprawny, ponieważ używa klauzuli WHERE do filtrowania rekordów na podstawie warunków. Operator LIKE pozwala na wyszukiwanie wzorców w danych tekstowych, a symbol % jest używany jako wildcard, co oznacza, że zastępuje dowolny ciąg znaków. Dzięki temu zapytanie zwraca wszystkich uczniów, których nazwiska zaczynają się na literę M. Takie podejście jest zgodne z najlepszymi praktykami w SQL, gdzie klauzula WHERE jest fundamentalnym elementem selekcji danych. W praktyce, gdy chcemy wyszukiwać dane w bazach danych, użycie LIKE w połączeniu z symbolami wieloznacznymi (takimi jak %) jest powszechną techniką, stosowaną w aplikacjach webowych i systemach zarządzania danymi. Przykładowo, w systemie szkolnym, takie zapytanie może być używane do generowania listy uczniów w celu wysyłania powiadomień lub gromadzenia informacji o postępach w nauce.

Pytanie 2

W języku JavaScript zapis ```x = przedmiot.nazwa();``` oznacza, że

A. nazwa jest polem klasy przedmiot.
B. zmienna x będzie przechowywać wynik działania metody nazwa.
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
D. nazwa jest właściwością obiektu przedmiot.
Twoja odpowiedź jest poprawna. W języku JavaScript, zapis 'x = przedmiot.nazwa();' oznacza wywołanie metody 'nazwa' na obiekcie 'przedmiot' i przypisanie zwróconego przez nią wyniku do zmiennej 'x'. Metoda to funkcja zdefiniowana w kontekście obiektu. Ten zapis jest stosowany, gdy chcesz wykonać określone działanie na obiekcie i przechować wynik dla dalszego użycia. Jest to zgodne ze standardami i dobrymi praktykami JavaScript, które zalecają wykorzystywanie metod obiektów do manipulacji ich stanem. Dzięki temu, kod jest bardziej zorganizowany, czytelny i łatwiejszy do utrzymania.

Pytanie 3

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

A. rect, poły, circle
B. rect, sąuare, circle
C. style="margin-bottom: 0cm;">poły, square, circle
D. style="margin-bottom: 0cm;">rect, triangle, circle
W przypadku odpowiedzi, które nie są poprawne, należy zwrócić uwagę na kilka kluczowych aspektów. Po pierwsze, wartości 'triangle' oraz 'square' nie są uznawane w atrybucie shape znacznika area w HTML. Zamiast tego, 'triangle' nie ma odpowiedniego wsparcia w standardach, a więc nie może być używane do definiowania obszarów na mapach obrazów. Również 'square', chociaż może przypominać prostokąt, nie ma odrębnej definicji i nie jest akceptowany w specyfikacji. Mapa obrazów ogranicza się do określonych kształtów, takich jak 'rect', 'circle' oraz 'poly', co czyni te odpowiedzi niepoprawnymi. Dodatkowo, wspomnienie o 'sąuare' wskazuje na literówkę, co również podważa poprawność tej opcji. Termin 'poły' nie tylko nie istnieje w kontekście atrybutu shape, ale także nie odnosi się do żadnego znanego kształtu w HTML. Zrozumienie właściwych terminów oraz ich zastosowania w HTML jest kluczowe dla tworzenia funkcjonalnych stron internetowych, a każda niepoprawna odpowiedź może prowadzić do mylących implementacji.

Pytanie 4

W PHP zmienna $_GET stanowi zmienną

A. predefiniowaną, wykorzystywaną do zbierania danych formularza po nagłówkach żądania HTTP (informacje z formularza nie są widoczne w URL)
B. zwykłą, utworzoną przez autora strony
C. utworzoną przez autora strony, przeznaczoną do przesyłania danych z formularza przez adres URL
D. predefiniowaną, służącą do przesyłania informacji do skryptów PHP przez adres URL
Odpowiedzi, które wskazują na to, że zmienna $_GET jest zwykłą zmienną lub jest definiowana przez twórcę strony, są nieprawidłowe. $_GET jest superglobalną tablicą, co oznacza, że jej dostępność jest zapewniona w całym skrypcie bez potrzeby wcześniejszego deklarowania. Zrozumienie różnicy między zmiennymi predefiniowanymi a tymi zdefiniowanymi przez użytkownika jest kluczowe dla właściwego zarządzania danymi w PHP. Ponadto, odpowiedzi sugerujące, że $_GET służy do gromadzenia wartości formularza po nagłówkach zlecenia HTTP, mylą metodę GET z metodą POST. W przeciwieństwie do POST, dane przesyłane za pomocą GET są widoczne w adresie URL, co czyni je mniej bezpiecznymi dla wrażliwych danych. Mówiąc o formularzach, $_GET jest jedynie jedną z metod przesyłania danych, obok $_POST i $_REQUEST, z których każda ma swoje specyficzne zastosowania i ograniczenia. Generalnie, korzystanie z $_GET jest odpowiednie do przesyłania niewielkich ilości danych, takich jak parametry zapytań, ale należy być świadomym, że wykorzystywanie tej metody z danymi wrażliwymi jest ryzykowne i należy unikać tego podejścia w praktyce. Dbając o bezpieczeństwo aplikacji, warto zrozumieć te różnice i stosować się do dobrych praktyk dotyczących przetwarzania danych wejściowych.

Pytanie 5

Który typ danych jest przeznaczony do zapisywania daty urodzenia uczniów w bazie danych szkoły?

A. ENUM
B. DATE
C. BLOB
D. TIME
Poprawnie wskazany został typ DATE, który w relacyjnych bazach danych (np. MySQL, PostgreSQL, SQL Server) jest standardowym typem do przechowywania samych dat, bez informacji o godzinie. To dokładnie to, czego potrzebujemy przy dacie urodzenia ucznia: interesuje nas dzień, miesiąc i rok, a nie konkretna godzina czy sekunda. Typ DATE przechowuje wartość w ustalonym formacie (najczęściej 'YYYY-MM-DD'), dzięki czemu baza może poprawnie sortować rekordy, filtrować je w zapytaniach SQL (np. WHERE data_urodzenia BETWEEN '2008-01-01' AND '2010-12-31') oraz wykonywać operacje na datach, jak obliczanie wieku czy czasu, jaki minął od urodzenia. Z mojego doświadczenia używanie typu DATE jest też dużo wygodniejsze przy raportach i statystykach, np. liczenie ilu uczniów urodziło się w danym roku szkolnym, w danym miesiącu itp. Dodatkowo jest to zgodne z dobrymi praktykami projektowania baz danych: dla dat używamy typów datowych, a nie tekstu czy typów binarnych. Dzięki temu mechanizmy bazy potrafią walidować poprawność danych (np. nie pozwolą zapisać 31.02) oraz optymalnie korzystać z indeksów na kolumnach typu DATE. W profesjonalnych systemach szkolnych czy kadrowych przy danych takich jak data urodzenia, data zatrudnienia, data wystawienia świadectwa zawsze używa się właśnie typów pokrewnych DATE (DATE, DATETIME, czasem TIMESTAMP, ale do urodzin raczej zwykły DATE). To też ułatwia współpracę z aplikacjami webowymi w PHP czy JavaScript, bo większość frameworków ma gotowe mapowanie typu DATE na odpowiednie klasy lub struktury daty w kodzie. Ogólnie: prosty, czytelny i zgodny ze standardem wybór, dokładnie taki, jaki powinien się pojawić w dobrze zaprojektowanej bazie danych szkoły.

Pytanie 6

Który z akapitów wykorzystuje opisaną właściwość stylu CSS?

Ilustracja do pytania
A. D
B. A
C. B
D. C
Odpowiedź B jest poprawna, ponieważ właściwość CSS border-radius: 20% określa zaokrąglenie narożników elementu. W tym przypadku zastosowanie 20% promienia powoduje, że narożniki akapitu są zaokrąglone w umiarkowanym stopniu. Właściwość ta jest powszechnie wykorzystywana w projektowaniu stron internetowych, aby nadać elementom bardziej łagodny, przyjazny wygląd. Użycie procentowej wartości oznacza, że wielkość zaokrąglenia zależy od wymiarów elementu, co pozwala na zachowanie proporcji na różnych urządzeniach i przy różnych rozmiarach ekranu. Zaokrąglenie w CSS jest istotnym aspektem responsywnego designu, ponieważ może poprawiać czytelność i estetykę interfejsu użytkownika. Praktyczne zastosowania obejmują przyciski, karty, obrazki i inne elementy interfejsu, gdzie płynne linie mogą wpływać na ogólne wrażenie wizualne strony. Zrozumienie i umiejętne wykorzystanie border-radius jest częścią standardowych umiejętności projektanta stron internetowych, co również wspiera zgodność ze współczesnymi trendami w UI/UX.

Pytanie 7

Na zaprezentowanym schemacie bazy danych biblioteka, elementy takie jak: czytelnik, wypożyczenie oraz książka stanowią

Ilustracja do pytania
A. krotki
B. pola
C. encje
D. atrybuty
Na tym schemacie bazy danych warto najpierw odróżnić kilka podstawowych pojęć: encja, atrybut, krotka i pole. To jest taki fundament, bez którego łatwo się pogubić. Prostokąty podpisane „czytelnik”, „wypożyczenie” i „książka” reprezentują ogólne typy obiektów, które występują w systemie. W języku modelowania danych nazywamy je encjami. Encja to nie pojedynczy rekord, tylko pewien rodzaj bytu, np. każdy konkretny czytelnik będzie instancją encji CZYTELNIK. Częsty błąd polega na myleniu encji z atrybutami. Atrybut to pojedyncza cecha encji – na przykład imię, nazwisko, tytuł, rok wydania. Na diagramie są one wypisane wewnątrz prostokąta, pod nazwą encji. Gdyby „czytelnik” był atrybutem, to musiałby opisywać jakąś inną encję, co tu nie ma sensu. Podobnie jest z pojęciem pola: w praktyce pola kojarzymy z kolumnami w tabeli lub polami formularza. Pole to techniczna reprezentacja atrybutu w konkretnej tabeli, a nie osobny obiekt biznesowy. Zdarza się też, że uczniowie zaznaczają odpowiedź „krotki”, bo widzą powiązanie z relacyjną bazą danych. Krotka (rekord, wiersz tabeli) oznacza jednak pojedyńczy wpis w tabeli, np. jednego konkretnego Kowalskiego jako czytelnika albo jedną konkretną książkę. Na diagramie nie widzimy pojedynczych rekordów, tylko definicję struktur, z których te rekordy będą się składać. Innymi słowy: encja to wzór, a krotka to jego konkretne wystąpienie. Moim zdaniem najbezpieczniejsza metoda zapamiętania jest taka: na etapie projektowania koncepcyjnego mówimy o encjach i atrybutach, na etapie fizycznej bazy – o tabelach, kolumnach (polach) i rekordach (krotkach). W tym pytaniu mówimy właśnie o poziomie modelu koncepcyjnego, dlatego poprawnym pojęciem są encje, a nie atrybuty, krotki czy pola.

Pytanie 8

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Progowanie.
B. Barwienie.
C. Inwersja.
D. Krzywe.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 9

Podstawowym celem korzystania z edytora WYSIWYG jest

A. automatyzacja odtwarzania plików multimedialnych
B. szybka wizualizacja tworzonej strony
C. wykrywanie błędów w bazie danych
D. ściąganie z Internetu pełnych portali WWW
Wskazanie innych odpowiedzi jako celów edytorów WYSIWYG sugeruje podstawowe nieporozumienia dotyczące ich funkcji i zastosowania. Wyszukiwanie błędów w bazie danych jest związane z procesami zarządzania danymi i programowaniem, nie zaś z edycją treści wizualnych. Edytory WYSIWYG nie służą do diagnozowania problemów z danymi, ale do tworzenia i edytowania treści, co jest zupełnie innym zadaniem. Pobieranie z Internetu kompletnych portali WWW również nie znajduje się w zakresie ich funkcji. Edytory te nie są narzędziami do pobierania, lecz do tworzenia treści, co oznacza, że ich głównym celem jest umożliwienie użytkownikom generowania zawartości, a nie przenoszenia istniejących portali. Zautomatyzowanie odtwarzania plików multimedialnych to kolejny aspekt, który nie jest bezpośrednio związany z edytorami WYSIWYG. Choć edytory mogą wspierać dodawanie multimediów, nie są one zaprojektowane do automatyzacji ich odtwarzania. Dlatego mylenie tych funkcji z celami edytorów WYSIWYG prowadzi do niewłaściwego zrozumienia ich roli w procesie tworzenia stron internetowych. Kluczowe jest zrozumienie, że WYSIWYG to narzędzia umożliwiające wizualny interfejs, a nie programy do zarządzania danymi czy automatyzacji poszczególnych procesów.

Pytanie 10

W SQL, aby zmodyfikować strukturę tabeli, na przykład dodając lub usuwając kolumnę, należy użyć polecenia

A. TRUNCATE
B. DROP TABLE
C. UPDATE
D. ALTER TABLE
Odpowiedź "ALTER TABLE" jest poprawna, ponieważ jest to standardowe polecenie w języku SQL używane do modyfikacji istniejącej struktury tabeli. Dzięki temu poleceniu można dodawać nowe kolumny, usuwać istniejące, a także zmieniać typy danych kolumn. Przykładowo, aby dodać kolumnę "wiek" do tabeli "pracownicy", można użyć polecenia: "ALTER TABLE pracownicy ADD COLUMN wiek INT;". Innym zastosowaniem może być usunięcie kolumny, co osiągamy poprzez zapis: "ALTER TABLE pracownicy DROP COLUMN wiek;". W praktyce, stosowanie ALTER TABLE jest kluczowe w zarządzaniu bazami danych, szczególnie w przypadku rozwijania aplikacji, gdzie schematy danych mogą ewoluować z czasem. Warto pamiętać, że modyfikacje struktury tabeli mogą wpływać na integralność danych, dlatego przed ich wykonaniem zaleca się tworzenie kopii zapasowych oraz dokładne przemyślenie wpływu zmian na aplikacje korzystające z danej bazy danych.

Pytanie 11

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest pokazane na dołączonym rysunku?

Ilustracja do pytania
A. MediaWiki
B. Joomla!
C. Drupal
D. WordPress
Odpowiedź Joomla! jest poprawna ponieważ logo przedstawione na rysunku jest oficjalnym znakiem identyfikacyjnym tego systemu zarządzania treścią CMS. Joomla! to jeden z najpopularniejszych systemów CMS używany do tworzenia stron internetowych oraz aplikacji. Dzięki swojej elastyczności i dużej liczbie dostępnych rozszerzeń Joomla! pozwala na tworzenie zarówno prostych stron wizytówkowych jak i zaawansowanych serwisów e-commerce. Główne zalety Joomla! to intuicyjny interfejs użytkownika który ułatwia zarządzanie treściami oraz silna społeczność użytkowników zapewniająca wsparcie techniczne i rozwój oprogramowania. Joomla! jest zgodna z wieloma standardami webowymi co czyni ją wszechstronnym narzędziem do wdrażania profesjonalnych projektów internetowych. Korzystanie z Joomla! umożliwia szybkie i efektywne tworzenie responsywnych stron które dobrze współdziałają na różnych urządzeniach mobilnych. Praktyczne zastosowanie Joomla! obejmuje tworzenie stron korporacyjnych portali społecznościowych oraz serwisów informacyjnych. Dzięki modulowej architekturze użytkownicy mogą łatwo dostosowywać funkcjonalność swoich stron do specyficznych potrzeb branżowych co jest zgodne z dobrymi praktykami projektowania zorientowanego na użytkownika. Platforma Joomla! obsługuje także wielojęzyczność i różne metody uwierzytelniania co czyni ją idealnym rozwiązaniem dla międzynarodowych projektów.

Pytanie 12

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

Ilustracja do pytania
A. wykluczenia.
B. sumy.
C. różnicy.
D. części wspólnej.
Niestety, wybrana odpowiedź jest niepoprawna. Zamiast 'różnicy', 'sumy' czy 'części wspólnej', poprawnym rozwiązaniem jest 'wykluczenie'. Na obrazie mamy do czynienia z dwoma kształtami, z których fioletowy jest nałożony na czerwony. Wynik to kształt pokazujący 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. Operacje różnicy, sumy czy części wspólnej miałyby inne efekty. 'Różnica' usunęłaby część czerwonego kształtu pokrywającą się z fioletowym, 'suma' utworzyłaby kształt zawierający całość obu kształtów, a 'część wspólna' wytworzyłaby kształt pokrywający się z oboma kształtami. Odnoszenie się do niewłaściwych operacji może prowadzić do znacznych błędów w projektowaniu graficznym.

Pytanie 13

W bazie danych sklepu internetowego, w tabeli klienci znajdują się m.in. pola całkowite: punkty, liczbaZakupow oraz pole ostatnieZakupy o typie DATE. Klauzula WHERE dla zapytania wybierającego klientów, którzy mają ponad 3000 punktów lub dokonali zakupów więcej niż 100 razy, a ich ostatnie zakupy miały miejsce co najmniej w roku 2022, przyjmuje postać

A. WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'
B. WHERE punkty > 3000 OR liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
C. WHERE punkty > 3000 AND liczbaZakupow > 100 AND ostatnieZakupy >= '2022-01-01'
D. WHERE punkty > 3000 AND liczbaZakupow > 100 OR ostatnieZakupy >= '2022-01-01'
Odpowiedź ta jest poprawna, ponieważ zastosowano w niej właściwą logikę warunków w klauzuli WHERE. Aby wybrać klientów, którzy spełniają co najmniej jeden z dwóch pierwszych warunków (posiadają więcej niż 3000 punktów lub wykonali więcej niż 100 zakupów), używamy operatora OR. Z kolei ostatni warunek, dotyczący daty ostatnich zakupów, musi łączyć się z poprzednimi za pomocą operatora AND. Oznacza to, że aby klient został uwzględniony w wynikach, musi spełniać przynajmniej jeden z warunków dotyczących punktów lub liczby zakupów, a równocześnie musi mieć ostatnie zakupy dokonane w roku 2022 lub później. Takie podejście jest zgodne z dobrymi praktykami w SQL, w których operator OR jest wykorzystywany do łączenia warunków alternatywnych, a AND do warunków koniecznych. Na przykład, jeśli chcemy analizować dane klientów w kontekście programów lojalnościowych, takie zapytanie pozwoliłoby nam na wyodrębnienie najbardziej aktywnych klientów, co może być przydatne przy planowaniu kampanii marketingowych.

Pytanie 14

Funkcja PHP var_dump() prezentuje dane na temat zmiennej, w tym jej typ oraz wartość. Jakim wynikiem zakończy się poniższy fragment kodu?

$x = 59.85; var_dump($x);
A. float(59.85)
B. array(2) { [0]=> int(59) [1]=> int(85) }
C. int(59)
D. string(5) "59.85"
Wybrane odpowiedzi nie są zgodne z poprawnym wynikiem działania funkcji var_dump() w PHP. Odpowiedź, która sugeruje, że wynik to "int(59)" jest błędna, ponieważ funkcja ta nie konwertuje zmiennoprzecinkowych wartości na liczby całkowite, a 59.85 jest wyraźnie liczbą zmiennoprzecinkową. Inna odpowiedź, sugerująca "string(5) "59.85"", jest myląca, ponieważ zmienna $x została zadeklarowana jako liczba, a nie jako string. PHP automatycznie określa typ zmiennej na podstawie przypisanej wartości, a w tym przypadku jest to typ float. Odpowiedź "array(2) { [0]=> int(59) [1]=> int(85) }" również jest nieprawidłowa, ponieważ nie mamy do czynienia z tablicą, a z pojedynczą zmienną. Przykłady te ilustrują typowe nieporozumienia dotyczące typów danych w PHP. Programiści powinni zrozumieć, że PHP jest dynamicznie typowanym językiem, co oznacza, że typ zmiennej jest określany podczas wykonywania programu, a nie w czasie kompilacji. Właściwe zrozumienie typów danych oraz ich konwersji jest kluczowe dla zapewnienia poprawności i bezpieczeństwa kodu.

Pytanie 15

Do którego akapitu przypisano podaną właściwość stylu CSS?
border-radius: 20%;

Ilustracja do pytania
A. Rys. C
B. Rys. B
C. Rys. A
D. Rys. D
Właściwość CSS border-radius służy do zaokrąglania rogów elementu na stronie internetowej. W przypadku wartości procentowej jak 20% zaokrąglenie jest obliczane w stosunku do wymiarów elementu co pozwala na uzyskanie proporcjonalnego wyglądu niezależnie od rozmiaru ramki. Wybranie odpowiedzi Rys. B jest poprawne ponieważ widoczny jest tam efekt zaokrąglonych rogów co jednoznacznie wskazuje na zastosowanie border-radius. Takie stylizacje są powszechnie używane w projektowaniu nowoczesnych interfejsów użytkownika aby nadać im bardziej miękki i przyjazny wygląd. Dobre praktyki projektowe zalecają umiarkowane stosowanie zaokrągleń aby nie przesadzić z efektami wizualnymi co mogłoby pogorszyć czytelność i funkcjonalność. Warto również pamiętać o aspekcie responsywności – używanie wartości procentowych pozwala na lepsze dostosowanie się do różnych rozdzielczości ekranów co jest kluczowe w nowoczesnym web designie. Dzięki border-radius można także tworzyć zaawansowane efekty graficzne łącząc go z innymi właściwościami CSS jak cienie czy gradienty co pozwala na osiągnięcie atrakcyjnych wizualnie elementów bez potrzeby użycia obrazów.

Pytanie 16

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

A. static
B. public
C. protected
D. private
Modyfikator 'private' w języku programowania Java, a także w innych językach obiektowych, jest kluczowym elementem kontrolowania dostępu do metod i zmiennych. Oznaczenie metody lub zmiennej jako 'private' sprawia, że jest ona dostępna wyłącznie dla wewnętrznych operacji klasy, co zwiększa bezpieczeństwo kodu i chroni przed niezamierzonymi modyfikacjami z zewnątrz. Przykładem zastosowania 'private' może być zmienna, która przechowuje ważne dane, takie jak hasło użytkownika w klasie zarządzającej danymi logowania. Dzięki temu, że jest ona prywatna, inne klasy nie mają możliwości jej odczytu lub zmiany, co ogranicza ryzyko naruszenia bezpieczeństwa. Dobra praktyka programistyczna zaleca stosowanie modyfikatora 'private' tam, gdzie to możliwe, aby implementować kapsułkowanie, co jest jedną z fundamentalnych zasad programowania obiektowego. Standaryzacja praktyk dostępu do danych w ten sposób wspiera łatwe zarządzanie kodem oraz jego przyszłą modyfikowalność.

Pytanie 17

Elementarna animacja może być zapisana w formacie

A. PSD
B. BMP
C. TIFF
D. GIF
Format GIF (Graphics Interchange Format) jest powszechnie stosowany do tworzenia prostych animacji ze względu na swoją zdolność do kompresji obrazów i obsługi przez większość przeglądarek internetowych. GIF pozwala na zapisanie sekwencji obrazów w jednej pliku, co umożliwia ich wyświetlanie jako animacji. Standard GIF obsługuje maksymalnie 256 kolorów z palety, co czyni go idealnym do prostych grafik, takich jak ikony czy animacje internetowe. Dzięki metodzie kompresji Lempel-Ziv-Welch (LZW) możliwe jest zmniejszenie rozmiaru pliku bez utraty jakości, co jest kluczowe w kontekście transferu danych przez sieć. Przykłady zastosowania formatu GIF obejmują animowane banery reklamowe, emotikony oraz krótkie klipy wideo w formie GIF, które stały się popularne na platformach społecznościowych. Ponadto GIF wspiera przezroczystość i animacje w cyklu, co podnosi jego użyteczność w wielu aplikacjach multimedialnych. Z tego powodu GIF jest formatem, który oferuje zarówno funkcjonalność, jak i kompatybilność, co czyni go najlepszym wyborem dla prostych animacji.

Pytanie 18

Przy użyciu komendy ALTER TABLE można

A. usunąć dane z rekordu
B. skasować tabelę
C. zmienić dane w rekordach
D. zmodyfikować strukturę tabeli
W kontekście baz danych warto zrozumieć, że ALTER TABLE nie zmienia wartości rekordów. Do tego mamy polecenie UPDATE, które pozwala nam na aktualizację danych w konkretnych kolumnach dla wybranych rekordów. Jeśli użyjesz ALTER TABLE w tym przypadku, to będzie to po prostu złe podejście, bo ALTER TABLE zajmuje się strukturą, a nie zawartością tabeli. Też, żeby usunąć rekordy, korzystamy z DELETE, które pozwala na usunięcie jednego lub więcej rekordów na podstawie warunków w klauzuli WHERE. Jak użyjesz ALTER TABLE w tej sytuacji, to może dojść do sporych nieporozumień. Kolejny błąd to myślenie, że ALTER TABLE może usunąć całą tabelę, co tak naprawdę robimy za pomocą DROP TABLE. Ta komenda całkowicie kasuje tabelę z bazy danych, łącznie ze wszystkimi danymi, co jest zupełnie inną sprawą niż modyfikowanie struktury tabeli. Te nieporozumienia mogą prowadzić do złych praktyk w zarządzaniu bazami danych, co w efekcie może wpłynąć na integralność i wydajność systemu.

Pytanie 19

Który z kodów PHP sprawi, że zostanie wyświetlona sformatowana data oraz czas ostatnich odwiedzin użytkownika witryny, natomiast podczas pierwszej wizyty nic się nie wyświetli?

Kod 1.   echo date('d.m.Y, H:i', $_COOKIE['c1']);
         setcookie('c1', time());

Kod 2.   if(isset($_COOKIE['c1']))
           echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 3.   echo date($_COOKIE['c1']);
         setcookie('c1', time(), time() + 30 * 86400);

Kod 4.   setcookie('c1', time(), time() + 30 * 86400);
A. Kod 3.
B. Kod 1.
C. Kod 2.
D. Kod 4.
Niepoprawne kody PHP nie spełniają wymagań zadania z różnych powodów. Niektóre nie wykorzystują funkcji isset() do sprawdzenia, czy ciasteczko 'c1' istnieje, co może prowadzić do błędów, jeżeli ciasteczko nie zostało ustawione. Inne zawsze wyświetlają datę i czas ostatnich odwiedzin, nawet jeżeli jest to pierwsza wizyta użytkownika na stronie, co jest niezgodne z treścią pytania. Kolejnym błędnym podejściem jest nieaktualizowanie ciasteczka 'c1' po wyświetleniu daty i czasu ostatnich odwiedzin, co powoduje, że zawsze wyświetlana jest ta sama data i czas. Ważnym elementem pracy z ciasteczkami w PHP jest zrozumienie, jak są one zapisywane i odczytywane, a także jak można je wykorzystać do przechowywania informacji o użytkownikach. Błędy te pokazują brak zrozumienia tych kwestii.

Pytanie 20

W języku PHP przeprowadzono operację przedstawioną w ramce. Jak można postąpić, aby wyświetlić wszystkie wyniki tego zapytania?

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. zastosować pętlę z poleceniem mysqli_fetch_row
B. zaindeksować zmienną tab, tab[0] to pierwsze imię
C. pokazać zmienną $db
D. użyć polecenia mysql_fetch
W przypadku wyświetlania wyników zapytania SQL w PHP, ważne jest zrozumienie mechanizmu działania funkcji dostępnych w bibliotece mysqli. Wśród niewłaściwych koncepcji można wymienić próbę wyświetlenia zmiennej $db, która jest zazwyczaj uchwytem połączenia do bazy danych a nie bezpośrednim wynikiem zapytania. To podejście często prowadzi do błędów logicznych, ponieważ $db reprezentuje połączenie a nie dane wynikowe. Polecenie mysql_fetch, choć kiedyś używane w starszej wersji PHP, obecnie nie jest zalecane z powodu przestarzałości i braku wsparcia dla rozszerzenia mysql, które zostało zastąpione przez mysqli i PDO. Próba zaindeksowania zmiennej tab jako tab[0] bez odpowiedniego pobrania danych wynikowych jest również błędna. Zmienna tab przechowuje rezultat zapytania w postaci obiektu typu mysqli_result, a bez użycia odpowiednich funkcji fetch nie można bezpośrednio uzyskać dostępu do danych. Takie podejście wynika z niezrozumienia struktury danych zwracanych przez zapytania. Iteracyjne pobieranie wyników za pomocą funkcji typu mysqli_fetch_row czy mysqli_fetch_assoc jest standardem w nowoczesnych aplikacjach PHP, ponieważ umożliwia elastyczne i efektywne zarządzanie danymi. Zastosowanie odpowiednich mechanizmów fetch pozwala na bezbłędne iterowanie przez wiersze wynikowe co jest kluczowe dla poprawnego przetwarzania danych z bazy.

Pytanie 21

Który standard video cechuje się rozdzielczością 1920 px na 1080 px?

A. 4K
B. HD Ready
C. Full HD
D. Ultra HD 
Prawidłowa odpowiedź to „Full HD”, bo właśnie ten standard oznacza rozdzielczość 1920 × 1080 pikseli w proporcjach 16:9. W praktyce, gdy mówimy o filmach na YouTube, streamach, nagraniach z kamery czy materiałach promocyjnych na stronę WWW, opcja 1080p to właśnie Full HD. Litera „p” oznacza skanowanie progresywne (progressive), czyli wyświetlanie całych klatek po kolei, co daje płynniejszy obraz niż przeplot („i” jak interlaced). W branży webowej Full HD to taki „złoty standard” jakości wideo – pliki mają jeszcze rozsądny rozmiar, a obraz jest już bardzo szczegółowy, więc nadaje się zarówno do odtwarzania w przeglądarce, jak i do osadzania w prezentacjach czy materiałach e‑learningowych. Moim zdaniem, przy projektowaniu serwisu z treściami multimedialnymi, warto domyślnie przygotowywać materiały właśnie w 1920×1080 i ewentualnie generować niższe wersje (np. 1280×720) dla urządzeń mobilnych lub słabszych łączy. W pracy grafika czy twórcy stron WWW dobrze jest też kojarzyć nazwy standardów: HD Ready to 1280×720, Full HD to 1920×1080, a 4K/Ultra HD to okolice 3840×2160. Dzięki temu łatwiej dobrać odpowiedni format eksportu z programów typu Premiere, DaVinci Resolve czy nawet z prostszych edytorów online. Z doświadczenia powiem, że klienci często mówią „chcę film w HD”, a mają na myśli właśnie Full HD, więc świadomość dokładnej rozdzielczości pomaga uniknąć nieporozumień i zbyt niskiej jakości materiałów.

Pytanie 22

W programie do edycji grafiki rastrowej, aby skoncentrować się na wybranej części obrazu, nie wpływając na pozostałe jego fragmenty, można zastosować

A. zmianę rozmiaru
B. warstwy
C. przycinanie
D. odwrócenie
Zastosowanie skalowania w edytorze grafiki rastrowej polega na zmianie rozmiaru obrazu, co wpływa na wszystkie jego elementy. Przykładowo, jeśli zdecydujemy się na skalowanie, wszystkie obiekty na obrazie zostaną powiększone lub pomniejszone w równym stopniu, co nie pozwala na selektywne modyfikacje. Inwersja, z kolei, to proces zmiany kolorów pikseli w obrazie na ich przeciwieństwa, co również nie umożliwia pracy na wybranej części obrazu bez zmiany innych elementów. Ponadto kadrowanie, które polega na przycinaniu części obrazu, również nie dostarcza narzędzi do edytowania wybranych elementów bez wpływu na resztę kompozycji. Takie podejścia są często mylnie postrzegane jako odpowiednie metody do pracy z grafiką rastrową, podczas gdy w rzeczywistości nie oferują elastyczności potrzebnej do profesjonalnej edycji. Nieprawidłowe wnioski mogą prowadzić do frustracji w trakcie edycji, zwłaszcza w bardziej złożonych projektach, gdzie precyzyjna kontrola nad elementami obrazu jest kluczowa. Dlatego istotne jest zrozumienie roli warstw jako jedynego narzędzia, które umożliwia niezależne zarządzanie elementami grafiki rastrowej.

Pytanie 23

Jaką wartość zwróci ten algorytm?

Z = 0
N = 1
dopóki Z < 3:
    N = N * 2 + 1
    Z = Z + 1
wypisz N
A. 3
B. 5
C. 7
D. 15
Analizując pozostałe odpowiedzi, można zauważyć, że wszystkie one są wynikiem błędnego rozumienia działania algorytmu. Odpowiedź 3 wynika z mylnego założenia, że N po pierwszej iteracji to ostateczna wartość. Przy pierwszej iteracji N wynosi 3, ale w kolejnych iteracjach ulega dalszym modyfikacjom. Odpowiedź 5 może pochodzić z błędnego dodania 1 do wartości N po pierwszej iteracji, co prowadzi do niepełnego zrozumienia pętli. Wartość 7 jest wynikiem niepoprawnego obliczenia po drugiej iteracji, gdy Z wynosi 2, jednak nie uwzględnia trzeciej iteracji. Wszystkie te odpowiedzi ilustrują typowe błędy w logice algorytmicznej, gdzie użytkownicy nie śledzą zmian wartości zmiennych w kolejnych krokach pętli. Kluczowe jest zrozumienie, że każda iteracja pętli wpływa na wynik końcowy poprzez modyfikację zmiennych, co jest niezbędne w programowaniu. Często popełnianym błędem jest zatrzymywanie się na etapie, na którym zmienna wydaje się mieć odpowiednią wartość, co prowadzi do nieuwzględnienia kolejnych obliczeń. Efektywne programowanie wymaga pełnego zrozumienia logiki pętli, a także umiejętności przewidywania dalszych zmian w zmiennych.

Pytanie 24

Tabele Osoby i Adresy są połączone relacją jeden do wielu. Które zapytanie SQL należy wykonać, aby korzystając z tej relacji, prawidłowo wyświetlić nazwiska oraz przyporządkowane im miasta?

Ilustracja do pytania
A. SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;
B. SELECT nazwisko, Miasto FROM Osoby, Adresy;
C. SELECT nazwisko, Miasto FROM Osoby.Adresy_id = Adresy.id FROM Osoby, Adresy;
D. SELECT nazwisko, Miasto FROM Osoby, Adresy WHERE Osoby.id = Adresy.id;
Poprawne zapytanie korzysta z jawnego złączenia tabel: SELECT nazwisko, Miasto FROM Osoby JOIN Adresy ON Osoby.Adresy_id = Adresy.id;. Kluczowe są tu dwie rzeczy: użycie słowa kluczowego JOIN oraz właściwy warunek ON, który łączy klucz obcy z kluczem głównym. W tabeli Osoby kolumna Adresy_id jest kluczem obcym (FK), który wskazuje na kolumnę id w tabeli Adresy. To dokładnie odzwierciedla relację jeden‑do‑wielu narysowaną na diagramie. Dzięki temu baza danych wie, które miasto przypisać do którego nazwiska. Takie podejście jest zgodne ze standardem SQL i dobrą praktyką w relacyjnych bazach danych. Jawne JOIN-y są czytelne, łatwe do modyfikacji (np. dodanie kolejnych tabel lub warunków filtrowania) i dobrze współpracują z optymalizatorem zapytań. W praktycznych projektach, np. w aplikacjach webowych, właśnie tak buduje się zapytania: łączymy tabelę użytkowników lub klientów z tabelą adresów, zamówień, faktur, logów itp. zawsze po kluczach głównych i obcych, a nie po przypadkowo dobranych kolumnach. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania nazw tabel przy kolumnach, czyli Osoby.nazwisko, Adresy.Miasto – zmniejsza to ryzyko konfliktu nazw i poprawia czytelność kodu SQL. Gdyby w przyszłości w którejś tabeli pojawiła się druga kolumna o nazwie Miasto, zapytanie nadal byłoby jednoznaczne. W większych systemach, gdzie dochodzą dodatkowe warunki (WHERE, ORDER BY, GROUP BY), taka struktura zapytania z JOIN ON jest po prostu dużo łatwiejsza w utrzymaniu i debugowaniu. Warto też pamiętać, że relacja jeden‑do‑wielu oznacza, że jedna osoba może mieć wiele adresów albo jeden adres może być przypisany do wielu osób – dokładne powiązanie zależy od modelu, ale technika złączenia po kluczu obcym pozostaje taka sama.

Pytanie 25

Jak nazywa się metoda udostępniania bazy danych w programie Microsoft Access, która dotyczy wszystkich obiektów bazy umieszczonych na dysku sieciowym i wykorzystywanych jednocześnie przez kilku użytkowników?

A. serwera bazy danych
B. dzielonej bazy danych
C. folderu sieciowego
D. witryny programu SharePoint
Odpowiedzi, które wskazują na "serwera bazy danych", "dzielonej bazy danych" lub "witryny programu SharePoint", nie są adekwatne w kontekście udostępniania bazy danych w Microsoft Access. Serwer bazy danych to złożony system, który zarządza dużymi zbiorami danych oraz zapewnia ich integralność i bezpieczeństwo, jednak w przypadku Microsoft Access, który jest narzędziem bazodanowym bardziej skomplikowanym niż prostsze rozwiązania, udostępnianie odbywa się głównie za pośrednictwem folderów sieciowych. Dzielona baza danych oznacza, że baza danych jest podzielona na dwie części: jedną na serwerze (backend) i drugą lokalnie na komputerach użytkowników (frontend). Pomimo że ta konstrukcja może być stosowana do zwiększenia wydajności, nie odnosi się bezpośrednio do koncepcji folderu sieciowego jako metody udostępniania. Witryna programu SharePoint jest platformą do współpracy, która pozwala na zarządzanie dokumentami i danymi w chmurze, ale nie jest bezpośrednio związana z mechanizmem udostępniania bazy danych w Microsoft Access. Zrozumienie różnic między tymi podejściami jest kluczowe, ponieważ często prowadzi to do mylnych wniosków dotyczących rozwiązań technologicznych oraz ich zastosowania w praktyce. W kontekście Access, praktyka umieszczania bazy danych w folderze sieciowym jest standardem branżowym, który zwiększa dostępność i ułatwia współpracę w zespole.

Pytanie 26

Dana jest tabela firmy zawierająca następujące kolumny: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie kwerendy SQL SELECT sprawi, że zostaną wyświetlone

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. wszystkie dane firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł.
B. jedynie nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót co najmniej 4000 zł.
C. wszystkie dane firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł.
D. jedynie nazwa oraz numer NIP firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł.
Twoja odpowiedź jest poprawna. Przy wykonywaniu zapytań SQL często wybieramy nie wszystkie, a jedynie niektóre kolumny z tabeli. W tym przypadku, pytanie dotyczyło wybrania tylko nazwy i NIPu firm, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł. Do realizacji tego zadania użyliśmy kwerendy SELECT z określeniem kolumn oraz warunku w klauzuli WHERE. Jest to częsty scenariusz w praktyce, gdy potrzebujemy wyfiltrować dane według określonych kryteriów. Ważne jest zrozumienie, że instrukcja SELECT jest używana do wybrania jednej lub wielu kolumn, które chcemy zobaczyć w wynikach, a klauzula WHERE służy do definiowania warunków, które muszą spełniać dane wyświetlane w wynikach.

Pytanie 27

W edytorze grafiki wektorowej stworzono przedstawiony kształt, który powstał z dwóch figur: trójkąta i koła. W celu stworzenia tego kształtu, po narysowaniu figur i odpowiednim ich ustawieniu, należy skorzystać z funkcji

Ilustracja do pytania
A. różnicy.
B. sumy.
C. rozdzielenia.
D. wykluczenia.
Dobrze, że wybrałeś odpowiedź 'Sumy'. W rzeczywistości, aby uzyskać efekt przedstawiony na zdjęciu w edytorze grafiki wektorowej, trzeba skorzystać z opcji 'Sumy'. Ta funkcja łączy dwie różne figury w jedną, co pozwala na tworzenie złożonych kształtów. W praktyce, po rysowaniu i odpowiednim ustawieniu figurek, funkcja 'Sumy' jest używana do ich połączenia, tworząc unikalny obiekt. Taka metoda jest często stosowana w przemyśle graficznym, zwłaszcza w projektowaniu logo, gdzie unikalne kształty są istotne. Jest to zgodne ze standardami i dobrymi praktykami w branży graficznej, które zalecają efektywne wykorzystanie narzędzi edytora grafiki wektorowej do tworzenia złożonych kształtów.

Pytanie 28

Fragment kodu w PHP przedstawia się następująco (patrz ramka): Przy założeniu, że zmienna tablicowa $tab zawiera liczby naturalne, wynik działania programu polega na wypisaniu

Ilustracja do pytania
A. tych elementów, które przewyższają wartość zmiennej $liczba
B. największego elementu w tablicy
C. elementu tablicy równemu wartości $tab[0]
D. najmniejszego elementu w tablicy
Zobaczmy teraz, co poszło nie tak z innymi odpowiedziami. W przypadku tej, co miała znaleźć najmniejszy element, to kod nie jest w stanie tego zrobić, ponieważ warunek if sprawdza, czy element jest większy, a powinien być mniejszy, żeby szukać minimum. Jakby zmienić na if ($element < $liczba), to byłoby ok. W innej odpowiedzi twierdzono, że program znajdzie element równy $tab[0], ale w kodzie nie ma żadnego porównania z tym pierwszym elementem, poza tym, że przypisujemy go do $liczba na początku. Brak tam dodatkowej logiki, żeby to ogarnąć. A w ostatniej odpowiedzi pisano o wypisywaniu elementów większych od $liczba, ale kod nie działa w ten sposób, bo nie ma tam nic, co by pozwalało na wypisywanie więcej niż jednego elementu. Program jedynie aktualizuje $liczba, żeby znaleźć największą wartość. Często takie pomyłki biorą się z braku zrozumienia, jak działa iteracja i porównania w programowaniu, gdzie trzeba dobrze rozumieć, jakie warunki i operacje są potrzebne.

Pytanie 29

Podane w ramce polecenie SQL ma za zadanie

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustawić wartość w kolumnie id_klasy na 1 dla wszystkich rekordów tabeli Uczen
B. ustawić wartość pola 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 30

Jednym z rodzajów testów jednostkowych jest badanie ścieżek, które polega na

A. ustaleniu punktu startowego i końcowego oraz analizie możliwych tras pomiędzy tymi punktami
B. stworzeniu kilku zbiorów danych o analogicznym sposobie przetwarzania i wykorzystaniu ich do przeprowadzenia testu
C. sprawdzaniu wartości granicznych zbioru danych
D. analizie obiektów pod kątem inicjalizacji oraz uwalniania pamięci
Analiza ścieżek jest ważnym podejściem w testowaniu jednostkowym, które polega na identyfikacji punktów początkowych i końcowych w programie oraz badaniu wszystkich możliwych dróg, jakie mogą prowadzić od jednego do drugiego. Jest to szczególnie istotne w kontekście testowania złożonych algorytmów i struktur danych, gdzie istnieje wiele warunków i ścieżek wykonania. Przykładem może być testowanie funkcji rekurencyjnych, gdzie kluczowe jest zrozumienie, jak funkcja przechodzi przez różne stany i jakie wyjścia uzyskuje. Standardy, takie jak IEEE 829, podkreślają znaczenie pokrycia testowego, które można osiągnąć poprzez analizę ścieżek. Dzięki temu można zminimalizować ryzyko błędów w kodzie, zwłaszcza w krytycznych aplikacjach, takich jak oprogramowanie medyczne czy systemy finansowe, gdzie błędy mogą prowadzić do poważnych konsekwencji.

Pytanie 31

Spośród wymienionych formatów, który charakteryzuje się najszerszą rozpiętością tonalną?

A. BMP
B. RAW
C. PNG
D. JPEG
Format RAW jest uważany za format o najwyższej rozpiętości tonalnej, co oznacza, że może przechowywać znacznie więcej informacji tonalnych niż inne formaty plików graficznych. W przeciwieństwie do formatów skompresowanych, takich jak JPEG, RAW zachowuje wszystkie dane z matrycy aparatu fotograficznego, co pozwala na bardziej precyzyjną obróbkę kolorów i ekspozycji. Dzięki temu, w formacie RAW można uzyskać większą elastyczność podczas edytowania zdjęć, co jest szczególnie ważne dla profesjonalnych fotografów. Przykładem może być sytuacja, gdy zdjęcie zostało zrobione w trudnych warunkach oświetleniowych; w formacie RAW można z łatwością odzyskać szczegóły zarówno w cieniach, jak i w jasnych partiach obrazu. Ponadto, format RAW nie stosuje stratnej kompresji, co oznacza, że nie tracimy żadnych informacji przy zapisywaniu pliku. W standardach fotograficznych, takich jak TIFF czy DNG, również występuje wysoka jakość obrazu, ale RAW zapewnia bardziej bezpośredni dostęp do oryginalnych danych matrycy. Umożliwia to twórcom pełną kontrolę nad procesem edycji i finalnym wyglądem fotografii.

Pytanie 32

Po wykonaniu poniższego kodu PHP, w zmiennej $napis znajduje się tekst:

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. gramo
B. gr
C. ogram
D. og
Wybór odpowiedzi 'gr' lub 'og' oraz 'ogram' jest wynikiem nieporozumienia dotyczącego działania funkcji substr() w PHP. Funkcja ta nie zwraca pierwszych kilku znaków z łańcucha, lecz podciąg zaczynający się od określonego indeksu. W przypadku odpowiedzi 'gr', wydaje się, że koncentrujesz się na pierwszych dwóch znakach od momentu, gdy substr() zaczyna od indeksu 3, co jest błędne. Indeks 3 w łańcuchu 'Programowanie w PHP' wskazuje na literę 'g', a nie zawiera żadnych liter przed nią. Z kolei odpowiedź 'og' pomija literę 'r', co również jest błędne. Natomiast wybór 'ogram' może wynikać z mylnego przekonania, że substr() zwraca więcej znaków, niż rzeczywiście to robi. Funkcja substr() działa na zasadzie podawania precyzyjnych wartości, które określają, od którego znaku zacząć i ile znaków wyodrębnić. Dlatego kluczowe jest zrozumienie indeksowania w PHP oraz tego, jak funkcja substr() interpretuje te wartości. Zrozumienie tych zasad jest istotne, zwłaszcza przy pracy z danymi tekstowymi, gdzie precyzyjne operacje są niezbędne do poprawnego przetwarzania i manipulacji łańcuchami znaków. Warto także zwrócić uwagę na dokumentację PHP, aby lepiej poznać inne parametry i możliwości funkcji substr() oraz jej zastosowania w kontekście programowania webowego. Zastosowanie takich funkcji w praktyce pozwala na bardziej efektywne zarządzanie danymi, co jest kluczowe w projektach programistycznych.

Pytanie 33

Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL

A. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;
B. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
C. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6;
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
Poprawna kwerenda to: SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6; i ona dokładnie realizuje założenia zadania. Po pierwsze, część SELECT imie, nazwisko określa, jakie kolumny mają znaleźć się w wyniku – tylko imię i nazwisko, bez wieku czy identyfikatora lekarza. To jest dobra praktyka: wybieramy tylko te dane, które są faktycznie potrzebne w raporcie, zamiast używać SELECT *. Po drugie, FROM Pacjenci wskazuje tabelę źródłową. W standardowym SQL klauzula FROM jest obowiązkowa przy pobieraniu danych z tabel, bez niej serwer bazodanowy po prostu nie wie, skąd ma brać rekordy. Moim zdaniem to jest taki fundament, który warto mieć odruchowo w palcach. Najważniejsza jest jednak klauzula WHERE wiek < 18 AND lekarz_id = 6. Warunek wiek < 18 filtruje wyłącznie pacjentów niepełnoletnich, a lekarz_id = 6 ogranicza wynik do tych osób, które przypisane są do konkretnego lekarza o identyfikatorze 6. Zastosowanie operatora logicznego AND oznacza, że oba warunki muszą być spełnione jednocześnie. To dokładnie odpowiada treści zadania: pacjent musi być jednocześnie poniżej 18 lat i zapisany do lekarza nr 6. W praktyce takie kwerendy są podstawą raportowania w systemach medycznych, CRM-ach, systemach sprzedażowych itd. Na przykład podobną konstrukcję można użyć: SELECT * FROM Zamowienia WHERE status = 'nowe' AND kwota > 1000; – logika jest identyczna. Dobrą praktyką jest też czytelne zapisywanie warunków logicznych i unikanie niejednoznacznych kombinacji AND/OR bez nawiasów. W większych projektach standardem jest również używanie aliasów tabel, ale tu jedna tabela w zupełności wystarcza. Warto zapamiętać ten szablon: SELECT [kolumny] FROM [tabela] WHERE [warunek1] AND [warunek2]; bo pojawia się praktycznie wszędzie w pracy z SQL.

Pytanie 34

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

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

Pytanie 35

W języku PHP do zmiennej a wprowadzono tekst, w którym wielokrotnie występuje fraza Kowalski. Jakim poleceniem można jednocześnie zamienić wszystkie pojawienia się słowa Kowalski na słowo Nowak w zmiennej a?

A. $a = str_replace('Kowalski', 'Nowak', $a);
B. $a = str_replace('Nowak', 'Kowalski', $a);
C. $a = str_replace('Nowak', 'Kowalski');
D. $a = str_rep('Kowalski', 'Nowak', $a);
Wybór niepoprawnych odpowiedzi wskazuje na niezrozumienie funkcji str_replace w PHP oraz na błędne podejście do wymiany tekstu. Odpowiedź $a = str_replace('Nowak', 'Kowalski'); jest błędna, ponieważ próbuje zamienić 'Nowak' na 'Kowalski', co nie odpowiada zadaniu polegającemu na zamianie 'Kowalski' na 'Nowak'. To pokazuje brak zrozumienia kierunku działania funkcji. Kolejna odpowiedź $a = str_rep('Kowalski', 'Nowak', $a); jest niepoprawna, ponieważ str_rep nie jest właściwą funkcją w PHP. Powoduje to, że kod nie zadziała, co wskazuje na niezrozumienie dokumentacji PHP oraz dostępnych funkcji. Ostatnia niepoprawna odpowiedź $a = str_replace('Nowak', 'Kowalski', $a); zawiera tę samą pomyłkę co pierwsza, gdyż zamiana jest odwrotna do tego, co jest wymagane. Te wybory mogą wynikać z mylnego przekonania, że zamiana tekstu działa w obu kierunkach lub że funkcje mogą być używane z dowolnymi nazwami, co jest nieprawdziwe. W przypadku manipulacji tekstem w PHP, istotne jest zrozumienie dokładnej struktury oraz parametrów funkcji, a także ich funkcjonalności. Dlatego szczególnie ważne jest zapoznanie się z dokumentacją oraz zrozumienie, jak działają funkcje, zanim zostaną zastosowane w praktyce.

Pytanie 36

Który fragment kodu stanowi zamiennik dla kodu umieszczonego w ramce?

Ilustracja do pytania
A. B
B. A
C. D
D. C
Odpowiedzi B i D są nieprawidłowe ponieważ ignorują kluczową część logiki oryginalnego kodu mianowicie filtrację parzystych liczb. Odpowiedź B iteruje przez wszystkie liczby od 1 do 55 wypisując je wszystkie bez wyjątku co diametralnie odbiega od zamierzonego wyniku kodu źródłowego. Odpowiedź D jest identyczna z B z tym że format zapisu jest nieco odmienny nie ma to jednak wpływu na logikę działania co czyni ją również błędną. Odpowiedź C inicjuje pętlę od 2 i inkrementuje x o 2 co teoretycznie powinno zbliżyć się do rozwiązania jednak zakres iteracji kończy się na 56 co wykracza poza zadany limit 55 oraz wypisuje nieistniejącą w oryginalnej pętli dodatkową liczbę co jest błędne. Wybory te mogą wynikać z niewłaściwego zrozumienia zakresu pętli lub metody przeskakiwania wartości co jest częstym błędem przy interpretacji pętli iteracyjnych. Kluczowe jest zrozumienie jak zastosowana logika i zakres wpływają na wynik końcowy oraz jak można optymalnie odwzorować te zasady w alternatywnym kodzie.

Pytanie 37

Funkcja zaprezentowana w PHP

function dzialania(int $x, float $y) {
  $z = $x + $y;
  return $z;
}
A. jest zadeklarowana z dwoma parametrami rzeczywistymi.
B. przyjmuje dwa argumenty z wartością domyślną.
C. nie zwraca wyniku.
D. zwraca wynik.
Przedstawiona funkcja w języku PHP to przykład funkcji, która zwraca wartość. Z definicji funkcja działa na określonych wejściach, które w tym przypadku są typu int i float, a następnie wykonuje operację dodawania tych wejść. Zmienna $z przechowuje wynik dodawania, który jest następnie zwracany poprzez instrukcję return. Instrukcja ta kończy działanie funkcji, przekazując wynik na zewnątrz, co czyni funkcję użyteczną w kontekście programowania modularnego, gdzie wyniki obliczeń mogą być dalej przetwarzane lub wykorzystywane. W PHP zwracanie wartości z funkcji jest powszechną praktyką, szczególnie w kontekście aplikacji, gdzie funkcje pomagają w organizacji kodu, testowaniu jednostkowym oraz utrzymaniu. Dobre praktyki programistyczne zalecają zwracanie wartości, gdy funkcja ma wykonywać obliczenia lub przetwarzanie danych, co zwiększa jej elastyczność i ponowne użycie w różnych częściach programu. Funkcje zwracające wartości są często wykorzystywane w aplikacjach webowych do przetwarzania danych z formularzy czy generowania dynamicznych treści, co ilustruje ich wszechstronność i znaczenie w nowoczesnym programowaniu.

Pytanie 38

W języku JavaScript stworzono funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Jak powinno wyglądać prawidłowe wywołanie tej funkcji oraz uzyskanie jej wyniku?

A. var wynik=liczba_max(a,b,c);
B. liczba_max(a,b,c)=wynik;
C. liczba_max(a,b,c);
D. liczba_max(a,b,c,wynik);
Odpowiedź "var wynik=liczba_max(a,b,c);" jest poprawna, ponieważ w ten sposób prawidłowo wywołujemy funkcję liczba_max, przekazując do niej trzy argumenty: a, b oraz c. Funkcja ta ma na celu zwrócenie maksymalnej wartości z przekazanych liczb, więc przypisanie jej wyniku do zmiennej wynik jest logicznym krokiem. W języku JavaScript, operator przypisania (=) pozwala na zdefiniowanie zmiennych, co w tym przypadku oznacza, że zmienna wynik będzie zawierać wartość zwróconą przez funkcję. Wartością tą jest największa liczba spośród a, b i c. Zastosowanie takiego podejścia jest zgodne z koncepcją programowania funkcjonalnego, gdzie funkcje są traktowane jako „pierwszej klasy obywateli”, co oznacza, że można je przypisywać do zmiennych. Dobrą praktyką w programowaniu jest również używanie czytelnych nazw zmiennych oraz funkcji, co ułatwia zrozumienie kodu przez inne osoby. Dodatkowo, warto zwrócić uwagę na typy danych przekazywanych do funkcji, aby uniknąć nieprzewidzianych błędów podczas obliczeń.

Pytanie 39

W stylu CSS utworzono klasę uzytkownik. Na stronie będą wyświetlane czcionką w kolorze niebieskim: p.uzytkownik { color: blue; }

A. jedynie elementy tekstowe takie jak <p>, <h1>.
B. akapitów, którym przypisano klasę uzytkownik.
C. wszystkie akapity.
D. wszystkie elementy w sekcji <body> z przypisaną klasą uzytkownik.
Odpowiedzi, które sugerują, że styl CSS dla klasy 'uzytkownik' dotyczy wszystkich paragrafów, albo że odnosi się do znaczników <p> i <h1>, są nie do końca zrozumiałe. Przede wszystkim klasa CSS jest narzędziem do precyzyjnego stosowania stylów do poszczególnych elementów, które tą klasę mają. Reguła 'p.uzytkownik' działa tylko na te <p> z klasą 'uzytkownik', a nie na wszystkie paragrafy. A jeśli ktoś myśli, że styl działa na <h1> czy inne elementy w <body>, to jest w błędzie. Klasy muszą być przypisane jasno, a nie można zakładać, że wszystkie elementy w sekcji dziedziczą style, chyba że są ogólnie zdefiniowane. Takie podejście nie jest efektywne i w ogóle nie wspiera dobrych praktyk w projektowaniu, które mówią o precyzyjnym określaniu, gdzie i jak dany styl ma działać. W efekcie, takie błędne interpretacje mogą prowadzić do chaosu w prezentacji treści i do większych trudności w zarządzaniu stylem na stronie.

Pytanie 40

Zgodnie z aktualnie obowiązującym w Polsce prawem, osoby z wykształceniem inżynieryjno-technicznym są zobowiązane do odbywania szkoleń BHP w regularnych odstępach czasu, które nie powinny być dłuższe niż co

A. 6 lat
B. 8 lat
C. 1 rok
D. 5 lat
Wszystkie pozostałe odpowiedzi są błędne, ponieważ nie odpowiadają wymogom prawnym dotyczącym okresowych szkoleń BHP dla inżynieryjno-technicznych pracowników w Polsce. Odpowiedzi sugerujące, że szkolenia powinny odbywać się co 5, 6 lub 8 lat, opierają się na nieprawidłowym rozumieniu przepisów. Ustawa Kodeks pracy jasno określa, że okresowe szkolenia BHP mają na celu nie tylko dostarczenie pracownikom wiedzy na temat bezpieczeństwa, ale także dostosowanie ich umiejętności do zmieniających się warunków w miejscu pracy. Zbyt długi okres pomiędzy szkoleniami mógłby prowadzić do utraty aktualności wiedzy pracowników, co zwiększa ryzyko wypadków oraz zagrożeń zdrowotnych. W praktyce, regularne, coroczne szkolenia są niezbędne do nadążania za nowymi przepisami, technologiami oraz aktualizacjami w procedurach bezpieczeństwa. Ponadto, firmy, które zaniedbują wymóg przeprowadzania takich szkoleń, mogą być narażone na konsekwencje prawne oraz finansowe, w tym na kary administracyjne. Odpowiednie przestrzeganie przepisów dotyczących szkoleń BHP jest kluczowe dla zapewnienia bezpieczeństwa pracowników oraz ochrony firmy przed potencjalnymi stratami.