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: 16 kwietnia 2026 07:41
  • Data zakończenia: 16 kwietnia 2026 08:09

Egzamin zdany!

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

Który z obrazków ilustruje efekt działania podanego fragmentu kodu HTML?

Ilustracja do pytania
A. Obrazek D
B. Obrazek B
C. Obrazek A
D. Obrazek C
Odpowiedzi inne niż C są niepoprawne ponieważ nie uwzględniają poprawnie działania atrybutu rowspan co prowadzi do błędnego renderowania tabeli. W przypadku błędnego rozumienia atrybutu rowspan możemy obserwować sytuacje gdzie komórki tabeli są wyświetlane w niewłaściwych miejscach co może sugerować że atrybut ten jest błędnie zrozumiany jako wpływający na szerokość a nie na wysokość komórki. Często spotykanym błędem jest zakładanie że rowspan działa podobnie jak colspan co prowadzi do błędnego ułożenia komórek w tabeli. Ważne jest aby zrozumieć że rowspan definiuje ile wierszy ma zajmować dana komórka a nie ile kolumn co jest kluczowe dla prawidłowego zrozumienia układów tabelarycznych w HTML. Takie błędy mogą prowadzić do nieczytelnych i niepoprawnie zorganizowanych danych na stronie WWW co jest szczególnie problematyczne w przypadku stron które muszą być kompatybilne z różnymi urządzeniami i technologiami asystującymi. Poprawne stosowanie atrybutów rowspan i colspan jest fundamentalne dla tworzenia dostępnych i estetycznych układów tabelarycznych.

Pytanie 2

W jakim standardzie języka hipertekstowego wprowadzono do składni znaczniki sekcji <footer>, <header>, <nav>?

A. HTML4
B. XHTML1.0
C. HTML5
D. XHTML 2.0
HTML5 wprowadził nowe znaczniki semantyczne, takie jak <header>, <footer> oraz <nav>, które mają na celu poprawę struktury i czytelności kodu HTML. Te znaczniki pozwalają na lepsze określenie ról poszczególnych części dokumentu, co jest istotne zarówno dla programistów, jak i dla wyszukiwarek internetowych oraz oprogramowania asystującego. Przykładowo, znacznik <header> zazwyczaj zawiera nagłówki i metadane, podczas gdy <footer> jest przeznaczony na informacje końcowe, takie jak prawa autorskie czy linki do polityki prywatności. Z kolei <nav> wskazuje sekcję nawigacyjną, co ułatwia użytkownikom poruszanie się po stronie. Użycie tych znaczników zgodnie z ich zamierzonymi funkcjami poprawia semantykę dokumentu HTML5, co jest zgodne z najlepszymi praktykami w zakresie SEO i dostępności. Warto również zauważyć, że HTML5 wprowadza inne elementy, takie jak <article> czy <section>, które dodatkowo wspierają tworzenie dobrze zorganizowanej i zrozumiałej struktury dokumentu. W związku z tym, stosowanie nowych znaczników w HTML5 jest niezwykle korzystne zarówno dla twórców, jak i dla użytkowników stron internetowych.

Pytanie 3

Którego formatu należy użyć do zapisu zdjęcia z kompresją stratną?

A. PNG
B. GIF
C. PCX
D. JPEG
Format JPEG (Joint Photographic Experts Group) jest powszechnie stosowany do zapisu obrazów z kompresją stratną, co oznacza, że ​​część danych jest usuwana, aby zmniejszyć rozmiar pliku. JPEG jest szczególnie efektywny w przypadku fotografii i obrazów z wieloma kolorami oraz gradientami, gdzie niewielka utrata jakości jest akceptowalna dla użytkowników. Ten format kompresji stratnej działa na zasadzie analizy obrazu i eliminacji informacji, które są mniej zauważalne dla ludzkiego oka, co pozwala na znaczne zmniejszenie rozmiaru pliku. Przykładem zastosowania JPEG jest publikacja zdjęć w sieci, gdzie prędkość ładowania strony ma duże znaczenie. W praktyce format JPEG jest szeroko stosowany w mediach społecznościowych, portalach internetowych i w fotografii cyfrowej, co czyni go jednym z najpopularniejszych formatów graficznych. Dodatkowo, JPEG wspiera różne profile kolorów, co pozwala na lepszą reprezentację kolorystyczną w różnych urządzeniach wyjściowych, takich jak monitory i drukarki, co jest zgodne z najlepszymi praktykami w dziedzinie obróbki obrazu.

Pytanie 4

Sprawdzanie poprawności wypełnienia formularza, które ma przebiegać po stronie klienta, powinno być wykonane w języku

A. JavaScript
B. Ruby on Rails
C. PHP
D. CSS
Weryfikacja kompletności formularza po stronie przeglądarki jest kluczowym elementem interakcji użytkownika z aplikacją internetową. Do realizacji tego zadania najczęściej wykorzystuje się język JavaScript, który umożliwia dynamiczne manipulowanie strukturą HTML oraz reagowanie na zdarzenia użytkownika, takie jak kliknięcia czy wprowadzanie danych. Przykładem może być zdefiniowanie funkcji, która sprawdza, czy wszystkie wymagane pola formularza zostały uzupełnione przed jego wysłaniem. W tym celu można użyć zdarzenia 'submit', aby przechwycić moment wysłania formularza i przeprowadzić odpowiednie sprawdzenie. Standardy, takie jak W3C, zalecają stosowanie walidacji po stronie klienta, jako sposób na poprawę doświadczeń użytkownika i zmniejszenie obciążenia serwera. Przykład kodu JavaScript do walidacji formularza mógłby wyglądać następująco: function validateForm() { var x = document.forms["myForm"]["fname"].value; if (x == "") { alert("Imię musi być wypełnione"); return false; } }. Takie podejście nie tylko zwiększa użyteczność aplikacji, ale również pozwala na wczesne wykrywanie błędów, co może znacznie poprawić jakość danych przesyłanych do serwera.

Pytanie 5

Tabela filmy dysponuje kluczem głównym id oraz kluczem obcym rezyserlD. Tabela rezyserzy posiada klucz główny id. Obie tabele są połączone relacją jeden do wielu, gdzie rezyserzy są po stronie jeden, a filmy po stronie wiele. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.filmylD ...
B. ... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...
C. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmylD ...
D. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
Poprawna odpowiedź: '... filmy JOIN rezyserzy ON filmy.rezyserlD = rezyserzy.id ...' jest zgodna z zasadami łączenia tabel w relacyjnych bazach danych. W tym przypadku 'rezyserlD' jest kluczem obcym w tabeli 'filmy', który odnosi się do 'id' w tabeli 'rezyserzy', co oznacza, że jeden reżyser może być przypisany do wielu filmów. Dzięki temu połączeniu możemy uzyskać informacje o filmach razem z danymi reżyserów. W praktyce, aby uzyskać szczegółowe informacje o filmach oraz ich reżyserach, takie zapytanie umożliwia efektywne łączenie danych, co jest kluczowe w aplikacjach bazodanowych, które wymagają integracji danych z różnych źródeł. Zastosowanie kluczy obcych w relacyjnych bazach danych jest standardem i pozwala na zapewnienie integralności danych, a także optymalizację zapytań. Dobrą praktyką jest również dbałość o odpowiednie nazewnictwo kolumn, aby jasno wskazywały one na ich przeznaczenie oraz relacje między tabelami, co znacząco ułatwia późniejszą pracę z bazą.

Pytanie 6

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

Ilustracja do pytania
A. A
B. B
C. C
D. D
Poprawna odpowiedź A jest prawidłowa, ponieważ metoda osoba.dane jest zdefiniowana jako funkcja wewnątrz obiektu osoba, co pozwala na użycie słowa kluczowego this, aby odwołać się do właściwości obiektu. W JavaScript this w kontekście metody obiektu odnosi się do samego obiektu, zatem this.imie i this.nazwisko poprawnie odwołują się do właściwości imie i nazwisko obiektu osoba. Dzięki temu funkcja zwraca ciąg tekstowy Jan Kowalski, który zostaje przypisany do innerHTML elementu o id wynik. Zastosowanie this jest zgodne z dobrymi praktykami programowania obiektowego w JavaScript, ponieważ umożliwia dynamiczne odwoływanie się do właściwości obiektu w kontekście tej samej instancji. Praktyczne zastosowanie tej metody pozwala na efektywne zarządzanie danymi w obrębie złożonych aplikacji webowych, gdzie obiekty mogą mieć wiele właściwości i metod. Kluczowym aspektem jest zrozumienie, że w JavaScript this jest dynamicznie wiązane w zależności od kontekstu wywołania, co jest szczególnie ważne przy pracy z metodami i konstruktorami obiektów.

Pytanie 7

W HTML-u znacznik tekst będzie prezentowany przez przeglądarkę w sposób identyczny do znacznika

A. <sub>tekst</sub>
B. <big>tekst</big>
C. <b>tekst</b>
D. <h1>tekst</h1>
Znacznik <strong> w HTML jest używany do oznaczania tekstu, który ma być wyróżniony jako ważny. Jego domyślne stylizowanie w przeglądarkach polega na pogrubieniu tekstu, co jest również funkcją znacznika <b>. Oba znaczniki mają podobne zastosowanie, ale <strong> niesie dodatkowe znaczenie semantyczne, co oznacza, że informuje przeglądarki i maszyny o tym, że dany tekst jest istotny. Przykładem może być użycie <strong> w nagłówkach lub w miejscach, gdzie chcemy zwrócić uwagę na kluczowe informacje, jak np. 'Zamówienie <strong>pilne</strong> musi być dostarczone do jutra.' W kontekście dobrych praktyk zaleca się używanie znaku <strong> zamiast <b>, gdyż wspiera to dostępność i SEO - wyszukiwarki lepiej interpretują semantykę treści, co może wpłynąć na pozycjonowanie strony. Warto również pamiętać, że zgodnie z W3C, semantyka HTML ma kluczowe znaczenie dla strukturyzacji dokumentów oraz ich dostępności.

Pytanie 8

Zapis koloru w formacie #ff00e0 odpowiada zapisowi

A. rgb(255,0,224)
B. rgb(255,0,128)
C. rgb(f,0,e0)
D. rgb(ff,0,e0)
Oznaczenie barwy w postaci #ff00e0 jest zapisem w systemie szesnastkowym (hexadecimal), który jest powszechnie stosowany w programowaniu i projektowaniu stron internetowych. Kod ten składa się z trzech par znaków, gdzie pierwsza para (ff) reprezentuje wartość czerwonego koloru, druga para (00) wartość zielonego koloru, a trzecia para (e0) wartość niebieskiego koloru. W formacie RGB, którym jest zapis rgb(red, green, blue), wartości są podawane w skali od 0 do 255. Aby przeliczyć szesnastkowy zapis na wartości dziesiętne, należy każdą parę szesnastkową zinterpretować jako liczbę dziesiętną. Dla 'ff' otrzymujemy 255, dla '00' - 0, a dla 'e0' - 224, co prowadzi nas do zapisu rgb(255, 0, 224). Ten kolor jest intensywnym różowym odcieniem, który można wykorzystać w różnych aplikacjach graficznych oraz na stronach internetowych, w tym w CSS. Dobrą praktyką jest znajomość konwersji między tymi formatami, ponieważ pozwala to na efektywną pracę z grafiką i designem.

Pytanie 9

Rozmycie Gaussa, wygładzanie oraz szum RGB to funkcje wykorzystywane w programach do obróbki

A. ścieżki dźwiękowej
B. dźwięku w formacie MIDI
C. grafiki wektorowej
D. grafiki rastrowej
Wybór odpowiedzi dotyczącej grafiki wektorowej jest nietrafiony, ponieważ grafika wektorowa opiera się na matematycznych formułach do reprezentacji kształtów i nie korzysta bezpośrednio z pikseli, co czyni takie techniki jak rozmycie Gaussa i wygładzanie nieodpowiednimi. W grafice wektorowej, edytowanie obiektów polega na manipulacji ścieżkami, punktami kontrolnymi oraz krzywymi Béziera, co różni się diametralnie od obróbki obrazów rastrowych. Z kolei odpowiedzi odnoszące się do ścieżki dźwiękowej oraz dźwięku w formacie MIDI są całkowicie nieadekwatne, ponieważ dotyczą one innej dziedziny — dźwięku i audio. Rozmycie Gaussa i inne techniki związane z obróbką obrazów są związane z wizualizacją i przetwarzaniem obrazów, co nie ma zastosowania w kontekście dźwięku. Typowe błędy myślowe, które prowadzą do takich niepoprawnych wniosków, często obejmują mylenie różnych typów mediów oraz nieznajomość podstawowych różnic między grafiką rastrową a wektorową oraz dźwiękiem. Ważne jest, aby uczniowie zdawali sobie sprawę z tych różnic oraz rozumieli, jak różne technologie są stosowane w praktyce, aby uniknąć pomyłek w przyszłości.

Pytanie 10

Funkcja agregująca MIN w języku SQL ma na celu obliczenie

A. minimalnej wartości kolumny, która jest wynikiem kwerendy
B. liczby wierszy, które zwraca kwerenda
C. ilości znaków w rekordach zwróconych przez kwerendę
D. średniej wartości różnych pól w rekordu zwróconego przez zapytanie
Funkcja agregująca MIN w języku SQL jest kluczowym narzędziem do analizy danych, której głównym celem jest zwracanie najmniejszej wartości z kolumny wynikowej zapytania. Jej zastosowanie jest szczególnie przydatne w kontekście analizy danych numerycznych, gdzie można chcieć określić najniższą wartość, na przykład w przypadku cen produktów, ocen studentów czy dat. Funkcja ta może być używana w klauzulach SELECT z instrukcją GROUP BY, co pozwala na obliczanie minimalnych wartości w różnych grupach danych. Przykładowo, zapytanie SELECT kategoria, MIN(cena) FROM produkty GROUP BY kategoria; zwróci najniższą cenę w każdej kategorii produktów. Warto także dodać, że zgodnie z standardem SQL, funkcja MIN działa na różnych typach danych, w tym liczbach całkowitych, zmiennoprzecinkowych i datach, co czyni ją niezwykle wszechstronnym narzędziem w codziennej pracy z bazami danych. Zrozumienie działania funkcji MIN i jej zastosowań pozwala na efektywne przetwarzanie danych oraz podejmowanie lepszych decyzji biznesowych opartych na analizie statystycznej.

Pytanie 11

SELECT AVGcena) FROM usługi; Celem użycia funkcji agregującej AVG w tym zapytaniu jest

A. wyliczyć średnią arytmetyczną cen wszystkich usług
B. określić najwyższą cenę usług
C. zliczyć ilość dostępnych usług w tabeli
D. zsumować wartości kosztów wszystkich usług
Odpowiedź "obliczyć średnią arytmetyczną cen wszystkich usług" jest poprawna, ponieważ funkcja AVG (average) w SQL jest zaprojektowana do obliczania średniej wartości z zestawu danych w danej kolumnie. W podanym zapytaniu, AVG(cena) ma na celu zsumowanie wartości w kolumnie 'cena' dla wszystkich wierszy w tabeli 'usługi' oraz podzielenie tej sumy przez liczbę wierszy, które zawierają dane. W praktyce, średnia arytmetyczna jest niezwykle użyteczna w analizie danych, ponieważ pozwala na uzyskanie jednego, reprezentatywnego wyniku, który może być pomocny w podejmowaniu decyzji biznesowych. Na przykład, firma usługowa może użyć tej informacji do oceny swojej polityki cenowej, porównując średnią cenę swoich usług do średnich cen konkurencji. Zgodnie z najlepszymi praktykami w branży, stosowanie funkcji agregujących takich jak AVG powinno być integralną częścią procesów analizy danych, szczególnie w kontekście raportowania i oceny efektywności operacyjnej.

Pytanie 12

Który modyfikator jest związany z opisem podanym poniżej?

Metoda oraz zmienna jest dostępna wyłącznie dla innych metod własnej klasy.
A. private
B. protected
C. public
D. static
Modyfikator static to pojęcie związane nie z ograniczaniem dostępu, a z przypisywaniem pola lub metody do samej klasy, a nie instancji obiektu. Użycie static nie wpływa na kontrolę dostępu do metod lub zmiennych z innych klas, jest raczej związane z zarządzaniem pamięcią i odwołaniami. Public z kolei oznacza brak ograniczeń w dostępie, umożliwiając użycie metod i zmiennych przez inne klasy, co jest przeciwieństwem private. Public sprawia, że elementy klasy są dostępne dla wszystkich, co może prowadzić do niezamierzonych zmian i trudności w utrzymaniu kodu szczególnie w dużych systemach. Protected to modyfikator pozwalający na dostęp do elementów klasy jedynie klasom dziedziczącym i znajdującym się w tym samym pakiecie (w Java). Jest przydatny w dziedziczeniu, ale nie ogranicza dostępu tak jak private. Typowym błędem jest mylenie static i public z mechanizmami ochrony danych, podczas gdy odnoszą się one do innych aspektów zarządzania klasami. Static dotyczy współdzielenia danych w obrębie klasy, a public szerokiego dostępu. Wybór odpowiedniego modyfikatora dostępu jak private jest kluczowy dla implementacji enkapsulacji, co jest fundamentem bezpieczeństwa i elastyczności w programowaniu obiektowym. Static i public to koncepcje o różnym zastosowaniu, niekoniecznie związane z ochroną i ukrywaniem danych przed dostępem zewnętrznym.

Pytanie 13

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

A. DELETE FROM zadania;
B. TRUNCATE TABLE zadania;
C. DELETE FROM zadania WHERE status = 'zamknięte';
D. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
W przypadku pierwszej odpowiedzi, zastosowanie kwerendy TRUNCATE TABLE zadania jest niewłaściwe, ponieważ ta komenda usuwa wszystkie rekordy z tabeli bez możliwości określenia warunków. TRUNCATE jest bardziej efektywne w kontekście usuwania wszystkich danych, ale nie spełnia wymogu eliminacji jedynie tych z określonym statusem. Usunięcie wszystkich danych z tabeli mogłoby prowadzić do utraty cennych informacji, które mogą być potrzebne do analizy czy raportowania. W odniesieniu do kolejnej opcji, DELETE FROM zadania nie zawiera żadnego warunku, co również skutkuje usunięciem wszystkich wierszy. Brak warunku WHERE w tym kontekście wprowadza ryzyko nieodwracalnej utraty danych. Zastosowanie TRUNCATE TABLE zadania WHERE status = 'zamknięte' jest błędne, ponieważ TRUNCATE nie akceptuje klauzuli WHERE. Warto zwrócić uwagę, że TRUNCATE jest szybsze niż DELETE, ale użycie go bez warunków na pewno będzie prowadziło do nieefektywnego zarządzania danymi. Typowym błędem myślowym jest przekonanie, że TRUNCATE można stosować w taki sam sposób jak DELETE, co prowadzi do dużych konsekwencji w pracy z bazami danych. Ważne jest, aby przed wykonaniem operacji usuwania dokładnie rozważyć, które dane są istotne i uniknąć operacji, które mogą być nieodwracalne.

Pytanie 14

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 ORDER BY nazwisko = "M%"
B. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN "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 15

Jednym z kluczowych identyfikatorów wpisu w bazie danych jest pole

A. klucza podstawowego
B. klucza obcego
C. numeryczne
D. relacji
Klucz podstawowy jest fundamentalnym elementem każdej relacyjnej bazy danych, ponieważ jednoznacznie identyfikuje każdy rekord w tabeli. Jego główną cechą jest unikalność, co oznacza, że żaden z rekordów w tabeli nie może mieć tego samego klucza podstawowego. Klucz podstawowy może składać się z jednego lub więcej atrybutów (kolumn), ale zawsze musi zapewniać jednoznaczność identyfikacji. Przykładem może być tabela 'Użytkownicy', gdzie 'ID_Użytkownika' działa jako klucz podstawowy, pozwalając na łatwe i szybkie wyszukiwanie konkretnych użytkowników. Zgodnie z najlepszymi praktykami projektowania baz danych, klucze podstawowe powinny być stabilne i niezmienne w czasie, aby uniknąć komplikacji związanych z aktualizacją wartości. Klucz podstawowy jest również kluczowy dla relacji między tabelami, ponieważ inne tabele mogą odwoływać się do niego poprzez klucze obce. Dzięki temu, struktura bazy danych staje się bardziej zorganizowana i lepiej znormalizowana, co z kolei prowadzi do zwiększonej wydajności i integralności danych.

Pytanie 16

Wskaż przycisk sformatowany przedstawionym stylem CSS.

#przycisk {
    background-color: white;
    padding: 10px;
    border-width: 2px;
    border-bottom-style: dashed;
}



Przycisk 1

Przycisk 2

Przycisk 3

Przycisk 4
A. Przycisk 2
B. Przycisk 1
C. Przycisk 4
D. Przycisk 3
Przycisk 2 jest jedynym, który spełnia wszystkie warunki określone w podanym stylu CSS. Białe tło, odstęp wewnętrzny 10 pikseli, szerokość obramowania 2 piksele oraz przerywana dolna krawędź obramowania są elementami, które zostały ustawione w stylach CSS dla przycisku 2. Ta wiedza jest niezwykle przydatna przy projektowaniu i tworzeniu stron internetowych, gdzie kształtowanie elementów interaktywnych, takich jak przyciski, jest często kluczowym elementem doświadczenia użytkownika. Pamiętaj, że CSS pozwala na dużą swobodę w dostosowywaniu wyglądu poszczególnych elementów strony, a zrozumienie, jak działa selekcja elementów i stylizacja, to fundamenty tworzenia atrakcyjnych i funkcjonalnych projektów webowych. Zrozumienie, jakie style zostały zastosowane do danego elementu, pozwala na szybkie i efektywne dostosowywanie strony do potrzeb klienta.

Pytanie 17

W trakcie edycji grafiki rastrowej w aplikacji obsługującej kanały, dodanie kanału alfa oznacza

A. ustalenie właściwego balansu bieli
B. wzmocnienie krawędzi obrazu
C. wprowadzenie warstwy z przezroczystością
D. powiększenie głębi ostrości obrazu
Dodanie kanału alfa do grafiki rastrowej jest kluczowym krokiem w procesie zarządzania przezroczystością w obrazach. Kanał alfa to dodatkowy kanał, który przechowuje informacje o przezroczystości pikseli, co pozwala na tworzenie efektów wizualnych, takich jak miękkie krawędzie i złożone kompozycje. W praktyce, zastosowanie kanału alfa umożliwia na przykład nałożenie obiektów na różne tła bez wyraźnych granic, co jest szczególnie przydatne w grafice komputerowej, projektowaniu stron internetowych czy produkcji wideo. Dobrą praktyką w branży jest korzystanie z programów graficznych, takich jak Adobe Photoshop czy GIMP, gdzie dodanie kanału alfa można zrealizować poprzez stworzenie warstwy maski. Podczas pracy w takich programach warto również pamiętać o wykorzystaniu formatu PNG, który obsługuje przezroczystość, co jest standardem w zapewnieniu wysokiej jakości grafiki w sieci.

Pytanie 18

Najprostszy sposób zamiany obiektu oznaczonego cyfrą 1 na obiekt oznaczony cyfrą 2 polega na

Ilustracja do pytania
A. narysowaniu docelowego obiektu.
B. geometrycznym transformowaniu obiektu.
C. animowaniu obiektu.
D. zmianie warstwy obiektu.
Wybrałeś poprawną odpowiedź, która jest 'geometrycznym transformowaniem obiektu'. Kiedy mówimy o transformacji geometrycznej, mamy na myśli różne operacje, które można wykonać na obiektach, takie jak skalowanie, obracanie i przesuwanie. W przypadku obiektu oznaczonego numerem 1 i numerem 2 na obrazku, najprostszym sposobem na przekształcenie jednego w drugi jest używanie transformacji geometrycznej. Obiekt numer 2 jest większy i obrócony w stosunku do obiektu numer 1. Dzięki transformacjom geometrycznym mogliśmy osiągnąć ten efekt, skalując i obracając obiekt numer 1. Transformacje geometryczne są podstawą wielu operacji w dziedzinach takich jak grafika komputerowa, projektowanie CAD, animacja, a także w wielu innych dziedzinach technologii i nauki.

Pytanie 19

W tabeli artykuly znajduje się pole o nazwie nowy. Aby pole to wypełnić wartościami TRUE dla każdego rekordu, należy zastosować kwerendę

A. UPDATE nowy FROM artykuly VALUE TRUE;
B. UPDATE artykuly SET nowy = TRUE;
C. INSERT INTO artykuly VALUE nowy = TRUE;
D. INSERT INTO nowy FROM artykuly SET TRUE;
Poprawna kwerenda UPDATE artykuly SET nowy = TRUE; jest klasycznym przykładem instrukcji aktualizacji danych w SQL. Słowo kluczowe UPDATE wskazuje, że modyfikujemy istniejące rekordy, a nie dodajemy nowe. Nazwa tabeli artykuly określa, w której tabeli wykonujemy operację. Następnie część SET nowy = TRUE ustawia dla kolumny nowy wartość logiczną TRUE we wszystkich wierszach, ponieważ w zapytaniu nie ma klauzuli WHERE. I to jest tu kluczowe: brak WHERE oznacza, że aktualizacja dotknie każdego rekordu w tabeli. Moim zdaniem warto zapamiętać schemat: UPDATE nazwa_tabeli SET kolumna = wartość WHERE warunek;. W praktyce bardzo często dodaje się WHERE, np.: UPDATE artykuly SET nowy = TRUE WHERE data_dodania >= '2026-01-01'; – wtedy oznaczamy jako nowe tylko artykuły dodane od konkretnej daty. W zadaniu jednak wyraźnie jest mowa o każdym rekordzie, więc brak WHERE jest jak najbardziej zgodny z treścią. W większości systemów bazodanowych (MySQL, PostgreSQL, SQL Server, MariaDB) ta składnia jest standardowa i zalecana. Dobra praktyka jest taka, żeby przed odpaleniem UPDATE bez WHERE najpierw zrobić SELECT * FROM artykuly; albo SELECT COUNT(*) FROM artykuly;, żeby mieć świadomość, ile rekordów zmienimy. W projektach produkcyjnych często dodaje się też transakcje, np. w PostgreSQL: BEGIN; UPDATE artykuly SET nowy = TRUE; COMMIT; dzięki temu w razie pomyłki można zrobić ROLLBACK. Warto też wiedzieć, że kolumna typu logicznego może przyjmować wartości TRUE, FALSE, czasem 1/0 (np. w MySQL), ale forma z TRUE/FALSE jest czytelniejsza i bardziej zgodna z semantyką. W wielu aplikacjach webowych pole w stylu nowy służy np. do filtrowania artykułów w panelu administracyjnym albo na stronie głównej: SELECT * FROM artykuly WHERE nowy = TRUE;. To dokładnie ten sam atrybut, który przed chwilą masowo ustawiliśmy poleceniem UPDATE.

Pytanie 20

Jaką właściwość pola w tabeli powinno się ustawić, aby akceptowało ono wyłącznie dane liczbowe?

Ilustracja do pytania
A. Tagi inteligentne
B. Wartość domyślną
C. Regułę sprawdzania poprawności
D. Maskę wprowadzania
Tagi inteligentne są narzędziem umożliwiającym szybki dostęp do dodatkowych funkcji lub opcji związanych z danymi w polu. Nie mają jednak zdolności do ograniczania samej zawartości pola w kontekście dozwolonych znaków. Ich rola jest raczej wspomagająca użytkownika poprzez dodawanie kontekstowych opcji, ale nie dotyczą bezpośrednio walidacji danych. Wartość domyślna to z kolei predefiniowana wartość, jaką pole przyjmuje w momencie tworzenia nowego rekordu, jednak nie wpływa na to, jakie dane użytkownik może wprowadzić. Jest użyteczna do ułatwienia tworzenia danych, ale nie służy do ograniczania formatu wprowadzanych danych. Chociaż reguła sprawdzania poprawności może być stosowana do określania, jakie dane są uznawane za poprawne, jej główną rolą jest weryfikacja już wprowadzonych danych, a nie ich formatowanie w trakcie wprowadzania. Reguły te mogą informować o błędach po wprowadzeniu danych, lecz nie zapobiegają samemu wprowadzaniu błędnych danych. Wiele osób może mylnie sądzić, że reguła sprawdzania poprawności i maska wprowadzania pełnią podobne funkcje, jednak maska działa na poziomie interfejsu wprowadzania, wymuszając określony format w czasie rzeczywistym, podczas gdy reguła działa retrospektywnie. Zrozumienie tych różnic pozwala na odpowiednie zastosowanie tych narzędzi w projektowaniu baz danych, co skutkuje lepszym zarządzaniem jakością danych oraz zwiększeniem intuicyjności interfejsu użytkownika. Stosowanie masek wprowadzania jest szczególnie korzystne w kontekście aplikacji z dużą ilością danych liczbowych, gdzie precyzja jest kluczowa, a reguły poprawności lepiej sprawdzają się w kontekście logicznych zależności pomiędzy polami danych. To rozróżnienie jest kluczowe dla osiągnięcia wysokiej jakości danych i łatwej obsługi w systemach informatycznych.

Pytanie 21

Który efekt został zaprezentowany na filmie?

A. Zmniejszenie kontrastu zdjęcia.
B. Zmiana jasności zdjęć.
C. Zwiększenie ostrości zdjęcia.
D. Przenikanie zdjęć.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 22

Jednoznacznym identyfikatorem rekordu w bazie danych jest pole

A. klucza głównego.
B. klucza obcego.
C. wyłącznie typu logicznego.
D. wyłącznie typu tekstowego.
Poprawna jest odpowiedź dotycząca klucza głównego, bo to właśnie pole (lub zestaw pól) oznaczone jako PRIMARY KEY w tabeli pełni rolę jednoznacznego identyfikatora rekordu. W praktyce oznacza to, że dla każdej krotki (wiersza) w tabeli wartość klucza głównego musi być unikalna i nie może być pusta (NULL). Systemy baz danych, takie jak MySQL, PostgreSQL, SQL Server czy Oracle, egzekwują te zasady automatycznie – jeśli spróbujesz wstawić drugi rekord z tą samą wartością klucza głównego, dostaniesz błąd naruszenia unikalności. Moim zdaniem to jedna z kluczowych zasad normalnego projektowania baz danych: zawsze projektujemy tabelę zaczynając od przemyślania klucza głównego. W aplikacjach webowych bardzo często używa się prostego klucza głównego typu liczbowego (np. INT AUTO_INCREMENT lub SERIAL), który jest technicznym identyfikatorem rekordu. Dzięki temu łatwo się odwołać do konkretnego użytkownika, zamówienia czy produktu po jego ID. Klucz główny jest też podstawą do definiowania kluczy obcych w innych tabelach – relacje typu 1:N czy N:M opierają się właśnie na odwołaniach do wartości PRIMARY KEY. Z mojego doświadczenia wynika, że stosowanie sztucznych (surrogate) kluczy głównych, zamiast kombinowania z wieloma polami naturalnymi, upraszcza później zapytania SQL, modyfikacje struktury i integrację z kodem w PHP czy JavaScript. W dobrze zaprojektowanej bazie danych każda tabela relacyjna powinna mieć jasno zdefiniowany klucz główny, bo bez tego trudno mówić o porządnym zarządzaniu danymi, spójności referencyjnej i wydajnym indeksowaniu.

Pytanie 23

Tablica tab[] zawiera różne liczby całkowite. Jaką wartość przyjmie zmienna zm2 po wykonaniu podanego fragmentu kodu?

Ilustracja do pytania
A. Suma liczb od 1 do 10
B. Suma liczb z tablicy
C. Średnia arytmetyczna liczb z tablicy
D. Średnia geometryczna liczb od 0 do 9
Pozostałe odpowiedzi są błędne z kilku powodów. Pierwsza odpowiedź sugeruje, że zmienna zm2 przechowuje sumę liczb z tablicy. Jest to nieprawidłowe, ponieważ zm2 reprezentuje wynik pośredni, będący średnią arytmetyczną, gdyż końcowy wynik to zm1 podzielone przez 10. Suma liczb z tablicy znajduje się w zmiennej zm1 przed operacją dzielenia. Druga odpowiedź odnosi się do sumy liczb od 1 do 10, co jest mylnym wnioskiem, ponieważ pętla w kodzie iteruje przez elementy tablicy, a nie przez stałe wartości. Elementy tablicy mogą reprezentować jakiekolwiek liczby całkowite, a kod nie odnosi się do stałych wartości od 1 do 10. Ostatecznie, czwarta odpowiedź o średniej geometrycznej liczb od 0 do 9 również nie jest poprawna, ponieważ kod ani nie odnosi się do zakresu liczb od 0 do 9, ani też nie oblicza średniej geometrycznej, która wymagałaby mnożenia i pierwiastkowania, a nie dodawania i dzielenia. Typowym błędem jest mylenie różnych typów średnich, a także błędne założenia co do zakresu operacji na tablicy. W kontekście programowania, takie nieporozumienia mogą prowadzić do błędów w implementacji algorytmów analizy danych, dlatego ważne jest, aby precyzyjnie rozumieć, jakie operacje są wykonywane w danym fragmencie kodu i jak wpływają one na wynik końcowy. Znajomość różnic między średnimi (arytmetyczna, geometryczna) jest fundamentalna w analizach matematycznych i statystycznych.

Pytanie 24

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

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

Pytanie 25

Aby obraz wstawiony na stronę internetową mógł dostosować się automatycznie do wymiarów ekranu, na którym jest wyświetlany, konieczne jest

A. ustawienie obu jego rozmiarów w pikselach
B. ustawienie jego szerokości w wartościach procentowych
C. niezmienianie obu jego wymiarów za pomocą stylów CSS
D. ustawienie jednego z jego wymiarów w pikselach
Ustawienie szerokości obrazu w wartościach procentowych jest kluczowym aspektem responsywnego projektowania stron internetowych. Dzięki temu obraz automatycznie dostosowuje się do szerokości kontenera, w którym jest umieszczony, co pozwala na płynne skalowanie w zależności od rozmiaru ekranu. Na przykład, jeśli szerokość obrazu ustawimy na 100%, to obraz będzie zawsze zajmował całą szerokość swojego kontenera, co jest szczególnie ważne w przypadku urządzeń mobilnych oraz różnych rozdzielczości ekranów. To podejście wspiera zasady projektowania responsywnego, które są fundamentem nowoczesnych stron internetowych. Dodatkowo, stosowanie jednostek procentowych zamiast pikseli umożliwia lepszą dostępność i poprawia doświadczenia użytkowników, eliminując problemy związane z przewijaniem lub wyświetlaniem treści poza ekranem. Obrazy ustawione w procentach pozwalają na bardziej elastyczne układy, które lepiej reagują na zmiany rozmiarów okien przeglądarki, co jest zgodne z najlepszymi praktykami w branży, takimi jak użycie Frameworków CSS, jak Bootstrap, które bazują na responsywnych gridach.

Pytanie 26

Która z poniższych definicji funkcji w języku C++ przyjmuje argument typu rzeczywistego i zwraca wynik typu całkowitego?

A. float fun1(int a);
B. int fun1(float a);
C. void fun1(int a);
D. float fun1(void a);
Odpowiedź 'int fun1(float a);' jest jak najbardziej trafna. Zauważ, że ta deklaracja ma parametr typu float, czyli rzeczywisty, a do tego zwraca wartość typu całkowitego (int). W C++ funkcje mogą mieć różne typy parametrów, a typ zwracanej wartości to coś, co warto podkreślić, bo mówi nam, co dostaniemy po wywołaniu tej funkcji. Takie podejście jest super przydatne, gdy musimy pracować z danymi zmiennoprzecinkowymi i chcemy uzyskać liczbę całkowitą. Przykładowo, wyobraź sobie funkcję, która przelicza liczbę rzeczywistą na zaokrągloną całkowitą za pomocą 'static_cast<int>()'. Zgoda co do typów jest kluczowa w programowaniu, a dobra praktyka to jedno – zawsze lepiej jasno określać typy danych, co w efekcie zwiększa czytelność i niezawodność kodu, a potem też łatwiej się w nim poruszać.

Pytanie 27

W języku PHP zapis $b++ jest równoważny zapisowi

A. $b == $b + $b
B. $b = $b + 1
C. $b = $b + $b
D. $b == $b
Operator $b++ w PHP bywa mylony z różnymi innymi operacjami na zmiennych, głównie dlatego, że wygląda niepozornie, a pod spodem robi konkretną arytmetykę. Kluczowe jest to, że ++ oznacza zawsze inkrementację, czyli zwiększenie wartości liczbowej dokładnie o 1. Nie ma tu ani porównania, ani mnożenia, ani dodawania wartości do samej siebie w sensie podwajania. Jeśli ktoś patrzy na zapis $b == $b i kojarzy go z jakąś równoważnością, to trzeba jasno powiedzieć: podwójny znak równości w PHP jest operatorem porównania, a nie przypisania. Taka instrukcja sprawdza tylko, czy dwie wartości są równe logicznie, i zwraca true albo false. Nie zmienia ona w ogóle zawartości zmiennej b. W kodzie typu $b == $b + $b zachodzi więc tylko porównanie, które zwykle będzie fałszywe, bo jedna strona jest dwa razy większa od drugiej, ale sama zmienna b pozostaje bez zmian. To jest typowy błąd początkujących: mylenie = (przypisanie) z == (porównanie). Drugi obszar nieporozumień to dodawanie zmiennej do samej siebie. Zapis $b = $b + $b oznacza podwojenie wartości, czyli matematycznie 2 * b. To zupełnie coś innego niż $b++, które robi b = b + 1. W algorytmach, gdzie liczymy np. liczbę elementów, iterację po tablicy, licznik odwiedzin, użycie podwojenia zamiast inkrementacji kompletnie rozwala logikę programu. Z mojego doświadczenia wynika, że wiele takich pomyłek bierze się z pośpiechu i braku nawyku dokładnego czytania operatorów. W dobrych praktykach programistycznych zaleca się używanie operatorów skróconych, takich jak ++, --, +=, ale tylko wtedy, gdy dokładnie rozumiemy, co one robią. Warto też pamiętać, że w PHP semantyka operatorów porównania i przypisania jest jasno zdefiniowana w dokumentacji, a trzymanie się tych standardów pozwala uniknąć subtelnych błędów logicznych. Dlatego przy każdym tego typu pytaniu warto na spokojnie przeanalizować, czy wynik ma zmieniać wartość zmiennej, czy tylko ją sprawdzać, oraz o ile ma się ta wartość zmienić: o 1, czy może ma być podwojona lub pomnożona przez coś innego.

Pytanie 28

Który zapis jest selektorem pseudoklasy CSS?

A. p#wyroznienie
B. td.wyroznienie
C. body
D. a:link
W tym zadaniu wszystkie odpowiedzi wyglądają jak poprawne selektory CSS, ale tylko jedna z nich jest selektorem pseudoklasy. To dość typowa pułapka: ktoś widzi poprawny składniowo selektor i automatycznie zakłada, że skoro jest „jakiś znak specjalny”, to pewnie chodzi o pseudoklasę. W CSS warto jednak rozróżniać kilka zupełnie różnych mechanizmów: selektor typu, selektor klasy, selektor identyfikatora oraz właśnie pseudoklasy. Zapis „p#wyroznienie” łączy selektor typu z selektorem identyfikatora. Oznacza akapit <p> o konkretnym id="wyroznienie". Znak # w CSS nie ma nic wspólnego z pseudoklasami, tylko jednoznacznie wskazuje na identyfikator elementu. To jest bardzo częste nieporozumienie: część osób myli dwukropek z kratką, bo oba wyglądają jak „specjalne dopiski”. Tymczasem pseudoklasy zawsze używają dwukropka, a identyfikatory – znaku #. „td.wyroznienie” to z kolei połączenie selektora typu z selektorem klasy. Ten zapis wybierze komórki tabeli <td> posiadające class="wyroznienie". Kropka w CSS zawsze oznacza klasę, czyli coś, co definiujemy w atrybucie class w HTML. To zupełnie inny mechanizm niż pseudoklasy, bo klasę nadajemy ręcznie w kodzie HTML, a pseudoklasa opisuje stan lub cechę obliczaną przez przeglądarkę, np. czy element jest pierwszy w swoim rodzicu, czy link jest odwiedzony, czy pole formularza ma fokus. Zapis „body” to najprostszy możliwy selektor typu – wskazuje wszystkie elementy <body> w dokumencie (zwykle jest tylko jeden). Tu w ogóle nie ma żadnego symbolu wskazującego na pseudoklasę, więc traktowanie tego jako pseudoklasy to już zupełne pomieszanie pojęć: to po prostu nazwa elementu HTML. Typowy błąd myślowy przy takich pytaniach polega na tym, że zamiast skupić się na definicji pseudoklasy („selektor z dwukropkiem, opisujący stan”), uczestnik testu szuka odpowiedzi, która „najbardziej wygląda na zaawansowaną”. Tymczasem wszystkie błędne odpowiedzi są zwykłymi, podstawowymi selektorami: typu, klasy i id. Pseudoklasa zawsze ma postać coś:coś_tam, np. a:hover, button:disabled, li:first-child. Jeżeli nie ma dwukropka – to na pewno nie jest pseudoklasa, niezależnie od tego, jak bardzo skomplikowany wygląda zapis.

Pytanie 29

input:focus { background-color: LightGreen; } W Ciebie CSS określono stylizację dla pola wejściowego. Tak przygotowane pole wejściowe będzie miało tło w odcieniu jasnozielonym?

A. po naciśnięciu przycisku myszy w celu wprowadzenia tekstu
B. w każdej sytuacji
C. kiedy zostanie najechane kursorem myszy bez jego klikania
D. jeżeli jest to pierwsza obecność tego elementu w dokumencie
Odpowiedzi, które wskazują na inne stany pól edycyjnych, nie są zgodne z definicją pseudoklasy :focus w CSS. Stan :focus jest aktywowany wyłącznie w momencie, gdy użytkownik klika w pole edycyjne lub przemieszcza się do niego za pomocą klawiatury (np. poprzez naciśnięcie klawisza Tab). Odpowiedzi takie jak 'gdy zostanie wskazane kursorem myszy bez kliknięcia' pomijają kluczowy element aktywacji, którym jest kliknięcie lub nawigacja za pomocą klawiatury. Wskazanie kursorem nie generuje stanu :focus, chyba że użytkownik rzeczywiście kliknie w pole. Z kolei stwierdzenie, że :focus dotyczy 'pierwszego wystąpienia tego znacznika w dokumencie', jest mylne, ponieważ stan :focus jest niezależny od lokalizacji elementu w DOM (Document Object Model) i odnosi się do konkretnego elementu, który jest aktualnie aktywny, a nie jego położenia. Odpowiedź 'w każdym przypadku' jest również niepoprawna, gdyż stan :focus jest aktywowany tylko w konkretnych okolicznościach, a nie zawsze. Takie błędne zrozumienie może prowadzić do problemów z użytecznością interfejsów użytkownika, ponieważ użytkownicy mogą nie otrzymywać właściwych wskazówek dotyczących aktywnych pól, co w konsekwencji obniża komfort korzystania z aplikacji. Kluczowe jest zrozumienie, że :focus jest jednym z wielu stanów, które mogą być zastosowane w CSS, co podkreśla znaczenie precyzyjnego definiowania interakcji w projektowaniu stron internetowych.

Pytanie 30

Aby przyznać użytkownikowi prawa do tabel w bazie danych, powinno się użyć polecenia

A. SELECT
B. GRANT
C. REVOKE
D. CREATE
Polecenie GRANT jest kluczowym elementem zarządzania uprawnieniami w systemach baz danych, takich jak MySQL, PostgreSQL czy Oracle. Umożliwia ono administratorom nadawanie określonych uprawnień użytkownikom lub rolom, co jest niezbędne do zapewnienia bezpieczeństwa danych oraz kontroli dostępu. Przykładowo, aby umożliwić użytkownikowi o nazwie 'Jan' dostęp do tabeli 'Klienci', można użyć polecenia: GRANT SELECT ON Klienci TO Jan; co przyznaje użytkownikowi prawo do odczytu danych z tej tabeli. Z perspektywy dobrych praktyk, zaleca się stosowanie minimalnych uprawnień, co oznacza, że użytkownik powinien mieć przyznane tylko te uprawnienia, które są mu niezbędne do wykonywania swoich zadań. Dzięki temu można zredukować ryzyko nieautoryzowanego dostępu do wrażliwych informacji. Dodatkowo, operacja GRANT może być stosowana w połączeniu z innymi poleceniami, takimi jak REVOKE, które służy do odbierania wcześniej nadanych uprawnień, co stanowi integralną część zarządzania bezpieczeństwem w bazach danych.

Pytanie 31

W JavaScript funkcja document.getElementById(id) ma na celu

A. umieścić tekst o treści ’id’ na stronie internetowej
B. zwrócić referencję do pierwszego elementu HTML o wskazanym id
C. pobrać wartości z formularza i przypisać je do zmiennej id
D. zweryfikować poprawność formularza o identyfikatorze id
Niektóre twoje odpowiedzi trochę mylą rolę metody document.getElementById(id). Myślenie, że ta metoda pobiera dane z formularza i wkłada je do zmiennej id to zły trop. W rzeczywistości, ona służy do uzyskiwania dostępu do elementów, a jeśli chcesz odczytać wartości z pól formularzy, powinieneś użyć właściwości value. Mówienie o tym, że ta metoda sprawdza poprawność formularza, też nie jest na miejscu - do walidacji używa się innych funkcji, jak addEventListener() na zdarzenie 'submit' albo atrybutów HTML5, jak required. No i jeśli chodzi o wstawianie tekstu 'id' na stronę, to też nie tak to działa - document.getElementById(id) daje ci odnośnik do elementu, ale nie modyfikuje go w jakiś bezpośredni sposób. To błędy, które mogą wynikać z nie do końca jasnego zrozumienia, jak działają metody manipulacyjne w JavaScript.

Pytanie 32

W języku PHP operator do wyznaczania reszty z dzielenia to:

A. %
B. &
C. #
D. @
Operatorem reszty z dzielenia w języku PHP jest znak procenta (%). Umożliwia on obliczenie reszty z dzielenia dwóch liczb całkowitych. Na przykład, jeśli zastosujemy wyrażenie "5 % 2", wynikiem będzie "1", ponieważ 5 dzieli się przez 2 z resztą 1. Operator ten jest niezwykle przydatny w wielu kontekstach programistycznych, takich jak algorytmy, które wymagają określenia, czy liczba jest parzysta czy nie. W takim przypadku, używając wyrażenia "if ($number % 2 == 0)", możemy łatwo sprawdzić, czy liczba jest parzysta. Ponadto, operator % jest często używany w pętlach do określenia, co pewne działania powinny być wykonywane co n-ty cykl, co jest szczególnie przydatne w grach i aplikacjach interaktywnych. Stosowanie operatora reszty z dzielenia jest zgodne z najlepszymi praktykami programistycznymi, ponieważ umożliwia efektywne i czytelne rozwiązania w kodzie.

Pytanie 33

Tabela gory zawiera dane o polskich szczytach oraz górach, w których się one znajdują. Jakie zapytanie należy wykonać, aby zobaczyć Koronę Gór Polskich, czyli najwyższy szczyt w każdym z pasm górskich?

A. SELECT pasmo, szczyt, wysokosc FROM gory;
B. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory GROUP BY pasmo;
C. SELECT pasmo, szczyt FROM gory GROUP BY wysokosc;
D. SELECT pasmo, szczyt, MAX(wysokosc) FROM gory;
Analizując pozostałe odpowiedzi, można zauważyć kluczowe błędy w podejściu do zadania. W pierwszej opcji, SELECT pasmo, szczyt, wysokosc FROM gory; kwerenda ta zwracałaby wszystkie rekordy z tabeli, co oznacza, że nie zrealizowano by celu znalezienia najwyższego szczytu w każdym pasmie. Brak użycia grupowania i funkcji agregującej prowadzi do nieefektywnego przetwarzania danych. Kolejna odpowiedź, SELECT pasmo, szczyt, MAX(wysokosc) FROM gory; wygląda na bliską poprawności, ale również nie spełnia wymogów, ponieważ nie zawiera klauzuli GROUP BY, co skutkuje błędem w kontekście SQL. Bez grupowania nie można poprawnie zidentyfikować wartości maksymalnych w odniesieniu do poszczególnych pasm. Dodatkowo, kwerenda SELECT pasmo, szczyt FROM gory GROUP BY wysokosc; jest całkowicie wadliwa, ponieważ grupuje dane według wysokości szczytów, co nie ma sensu w kontekście poszukiwania najwyższych szczytów w każdym pasmie. Takie podejście może prowadzić do niejednoznacznych i niepoprawnych wyników, które nie odpowiadają zadaniu. Typowe błędy myślowe, które prowadzą do takich wniosków, obejmują nieprawidłowe zrozumienie zasad grupowania i agregacji w SQL, co jest fundamentalne do skutecznego wykorzystania relacyjnych baz danych.

Pytanie 34

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. backupmysql -u root biblioteka kopia.sql
B. mysqlduplicate –u root biblioteka > kopia.sql
C. copymysql –u root biblioteka kopia.sql
D. mysqldump -u root biblioteka > kopia.sql
Poprawne polecenie do wykonania kopii bazy danych MySQL to „mysqldump -u root biblioteka > kopia.sql”. Narzędzie mysqldump jest oficjalnym, standardowym programem dostarczanym razem z serwerem MySQL i właśnie ono służy do tworzenia logicznych kopii zapasowych baz danych. Działa tak, że łączy się z serwerem MySQL, odczytuje strukturę tabel oraz dane, a następnie generuje plik tekstowy zawierający instrukcje SQL typu CREATE TABLE i INSERT. Taki plik można potem w prosty sposób wgrać z powrotem, np. poleceniem „mysql -u root biblioteka < kopia.sql”. To jest bardzo wygodne w praktyce, bo backup jest przenośny między serwerami, wersjami MySQL, a nawet można go edytować ręcznie w razie potrzeby. W tym poleceniu „-u root” oznacza użytkownika bazy danych, czyli logujemy się jako użytkownik root. W realnym środowisku produkcyjnym zwykle używa się konta z mniejszymi uprawnieniami i dodatkowo opcji „-p”, żeby podać hasło (np. „mysqldump -u backup_user -p biblioteka > kopia.sql”). Nazwa „biblioteka” to nazwa bazy, którą archiwizujemy. Znak „>” to przekierowanie powłoki systemowej (bash, cmd itp.), które zapisuje wynik działania programu mysqldump do pliku „kopia.sql” zamiast wypisywać go na ekran. To przekierowanie nie jest częścią MySQL, tylko mechanizmem systemu operacyjnego, co czasem bywa mylące dla początkujących. Moim zdaniem warto od razu wyrabiać sobie dobre nawyki: używać mysqldump regularnie, najlepiej w skryptach cron (Linux) lub Harmonogramie zadań (Windows), trzymać kopie na innym serwerze i testować odtwarzanie. W praktyce administracji serwerami i bezpieczeństwa danych takie kopie logiczne są podstawą procedur disaster recovery. W dokumentacji MySQL mysqldump jest wymieniony jako jedno z głównych narzędzi do backupu i migracji baz danych, więc znajomość dokładnie tego polecenia to absolutna podstawa pracy z MySQL w środowiskach webowych i nie tylko.

Pytanie 35

Debugger to narzędzie programowe, które ma za zadanie

A. łączenie plików bibliotek oraz wstępnie przetworzonego kodu źródłowego w plik wykonywalny
B. dynamiczna analiza działającego programu mająca na celu identyfikację przyczyn błędnego działania
C. rozpoznawanie błędów składniowych w kodzie źródłowym języka programowania
D. instalowanie zestawu do programowania
Instalowanie środowiska programistycznego to proces, który tworzy bazę dla rozwoju oprogramowania, ale nie jest to funkcja debuggera. Środowisko programistyczne, takie jak IDE, pozwala na pisanie kodu, ale samo w sobie nie służy do analizy błędów, co czyni tę odpowiedź mylną. Wykrywanie błędów składniowych w kodzie źródłowym dotyczy fazy kompilacji lub interpretacji, gdzie kompilator analizuje kod w poszukiwaniu błędów składniowych, zanim program zostanie uruchomiony. Debugger działa na już uruchomionym programie, co sprawia, że ta odpowiedź jest także błędna. Łączenie plików bibliotek i wstępnie przetworzonego kodu źródłowego w plik wykonywalny to operacja, która ma miejsce podczas kompilacji, co jest procesem odrębnym od debugowania. Debugger nie zajmuje się bezpośrednio kompilacją ani linkowaniem, a jego głównym celem jest analiza programu w czasie rzeczywistym, identyfikacja błędów i pomoc w ich usuwaniu. Różne podejścia do debugowania, takie jak analiza stanu zmiennych czy analiza wydajności, podkreślają znaczenie dynamicznej analizy, której nie można osiągnąć za pomocą żadnej z wymienionych funkcji.

Pytanie 36

Który styl CSS ma najwyższy priorytet ważności w zastosowaniu do elementów dokumentu HTML?

A. Styl lokalny.
B. Wewnętrzny arkusz stylów.
C. Zewnętrzny arkusz stylów.
D. Styl importowany do wewnętrznego arkusza.
Poprawnie – najwyższy priorytet ma tzw. styl lokalny, czyli deklaracje CSS zapisane bezpośrednio w atrybucie style danego elementu HTML, np. <p style="color:red; font-weight:bold;">. W kaskadowości CSS (Cascade) przeglądarka ustala, które reguły zastosować, biorąc pod uwagę kilka czynników: ważność (normal vs !important), specyficzność selektora, kolejność wystąpienia oraz właśnie źródło stylu. Zgodnie ze specyfikacją CSS (m.in. CSS Cascade Level 4) style inline są traktowane jako bardzo specyficzne, bo dotyczą jednego, konkretnego elementu. Dlatego, jeżeli nie używamy !important, to reguła z atrybutu style nadpisze reguły zewnętrznego, wewnętrznego arkusza, a także style importowane. W praktyce: jeśli w pliku style.css ustawisz p { color: blue; }, w sekcji <style> w <head> dasz p { color: green; }, a na elemencie napiszesz <p style="color:red;">, to tekst będzie czerwony, właśnie dlatego, że styl lokalny wygrywa w kaskadzie. W projektach komercyjnych styl inline stosuje się raczej oszczędnie, bo utrudnia utrzymanie kodu i psuje rozdzielenie warstw (HTML – struktura, CSS – wygląd). Czasem jednak jest bardzo przydatny: generowane maile HTML, szybkie testy, dynamiczna zmiana wyglądu przez JavaScript (np. element.style.display = "none"). Dobrą praktyką jest opieranie się głównie na zewnętrznych arkuszach stylów i selektorach o odpowiedniej specyficzności, a styl lokalny traktować jako wyjątek albo narzędzie „ostatniej szansy”, gdy naprawdę trzeba coś nadpisać na pojedynczym elemencie.

Pytanie 37

W języku HTML, aby osiągnąć efekt pogrubienia, kursywy lub zapisu w górnym indeksie, należy wpisać kod:

A. <i>pogrubiony </i><b>pochylony</b> lub w <sub>górnym indeksie</sub>
B. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
C. <b>pogrubiony <i>pochylony</i></b> lub w <sub>górnym indeksie</sub>
D. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
Wybrane odpowiedzi zdają się sugerować nieprawidłowe zastosowanie tagów HTML, co może prowadzić do nieodpowiedniego formatowania tekstu. W pierwszym przypadku tag <i> został użyty do pogrubienia tekstu, co jest błędne, ponieważ <i> powinien być używany do wyświetlania tekstu w kursywie. Pogrubienie powinno być realizowane wyłącznie za pomocą tagu <b>. Z kolei w trzecim przykładzie, połączenie tagów <b> i <i> w jednym elemencie może prowadzić do nieczytelności i zamieszania, ponieważ nie jest jasne, jaki efekt został zamierzony. Takie praktyki są sprzeczne z zasadami semantyki HTML, która kładzie nacisk na logiczne i poprawne użycie tagów w celu zachowania czytelności oraz SEO. Tag <sub> w odpowiedziach jest poprawnie użyty, jednak zastosowanie go w kontekście górnego indeksu jest błędne; tu powinien być użyty <sup>. Warto zwrócić uwagę, że stosowanie niewłaściwych tagów HTML prowadzi do złego renderowania strony przez przeglądarki i może ograniczać dostępność treści dla użytkowników z ograniczeniami, co jest niezgodne z najlepszymi praktykami projektowania stron internetowych. W związku z tym, ważne jest, aby zrozumieć funkcje każdego tagu i stosować je odpowiednio, by poprawić zarówno estetykę, jak i funkcjonalność strony.

Pytanie 38

Zgodnie z zasadami ACID, odnoszącymi się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, iż

A. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
B. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
C. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
D. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
Trwałość (ang. durability) to jedno z kluczowych wymagań modelu ACID, które zapewnia, że dane zatwierdzone przez transakcję pozostają dostępne i chronione przed utratą, nawet w przypadku wystąpienia awarii systemu. Oznacza to, że po pomyślnym zakończeniu transakcji, jej efekty są trwale zapisywane w bazie danych i nie mogą zostać utracone, niezależnie od warunków zewnętrznych, takich jak przerwy w zasilaniu czy błędy systemowe. W praktyce oznacza to, że każda transakcja, która uzyskała status 'zatwierdzonej' (ang. committed), powinna być zapisana w trwały sposób, zazwyczaj z wykorzystaniem mechanizmów takich jak logi transakcyjne. Na przykład, w systemach bazodanowych takich jak PostgreSQL czy Oracle, po zakończeniu transakcji, zmiany są rejestrowane w logach, co pozwala na ich odtworzenie w przypadku awarii. Z perspektywy standardów, wymaganie trwałości jest nieodłącznym elementem zapewnienia integralności danych, które jest kluczowe w systemach obsługujących transakcje finansowe, gdzie możliwość przywrócenia stanu po awarii jest niezbędna.

Pytanie 39

W systemie baz danych dla sklepu znajduje się tabela artykuly, która zawiera kolumnę o nazwie nowy. Jak należy skonstruować zapytanie, aby przypisać wartość TRUE dla tego pola w każdym rekordzie?

A. UPDATE nowy FROM artykuly VALUE TRUE
B. UPDATE artykuly SET nowy=TRUE
C. INSERT INTO nowy FROM artykuly SET TRUE
D. INSERT INTO artykuly VALUE nowy=TRUE
Odpowiedź UPDATE artykuly SET nowy=TRUE; jest poprawna, ponieważ wykorzystuje standardową składnię zapytań SQL, która pozwala na aktualizację istniejących danych w tabeli. W tym przypadku kwerenda ta zmienia wartość pola 'nowy' na TRUE dla każdego rekordu w tabeli 'artykuły'. W praktyce, używając tej kwerendy, można efektywnie zaktualizować wiele rekordów jednocześnie bez konieczności wprowadzania danych indywidualnie. Dobrą praktyką w pracy z bazami danych jest korzystanie z transakcji, aby zapewnić integralność danych, zwłaszcza w przypadku operacji, które mogą wpływać na dużą liczbę rekordów. Ponadto, warto wiedzieć, że używanie wartości logicznych, takich jak TRUE/FALSE, jest powszechną praktyką w projektowaniu relacyjnych baz danych, co pozwala na lepszą semantykę i łatwiejszą obsługę danych. Na przykład, jeśli w bazie danych istnieje konieczność oznaczania produktów jako nowe, odpowiednia aktualizacja wszystkich rekordów przy użyciu tej kwerendy jest szybkim rozwiązaniem.

Pytanie 40

Wynikiem realizacji zamieszczonego kodu PHP jest pokazanie komunikatu

Ilustracja do pytania
A. warunek2
B. warunek4
C. warunek1
D. warunek3
Analizując kod PHP, można zauważyć, że użycie operatorów logicznych jest kluczowe do zrozumienia jego działania. Operator „AND” (&&) zwraca true tylko wtedy, gdy oba operandy są prawdziwe, natomiast „OR” (||) zwraca true, jeśli przynajmniej jeden z operandów jest prawdziwy. Pierwszy warunek sprawdza połączenie ($a && $b) oraz ($c && $d). Ponieważ $a i $c są true, a $b i $d są false, oba wyrażenia zwracają false, co powoduje, że całość jest false. Drugi warunek sprawdza ($a && $b) lub ($c || $d). Tutaj ($c || $d) zwraca true, ponieważ $c jest true. Trzeci warunek to „elseif” z ($c && $d) lub (! $a), gdzie ($c && $d) jest false, ale (! $a) również jest false, bo $a jest true. Kod kończy się „else” jako ostatnią opcją, która nie zostanie wykonana, ponieważ drugi warunek jest prawdziwy. Typowy błąd polega na niewłaściwej interpretacji kolejności wykonywania operatorów i braku zrozumienia, kiedy wyrażenie logiczne zwraca true, co jest częstym problemem w programowaniu logicznego przepływu w aplikacjach. Zrozumienie i poprawne zastosowanie operatorów logicznych jest fundamentalne w tworzeniu warunków, które pomagają w kontrolowaniu przepływu programu zgodnie z zamierzonymi założeniami projektowymi.