Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 13:34
  • Data zakończenia: 8 czerwca 2026 14:10

Egzamin niezdany

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

W MS SQL Server instrukcja RESTORE DATABASE jest używana do

A. przywrócenia bazy danych z kopii zapasowej
B. aktualizacji bazy danych z kontrolą więzów integralności
C. usunięcia bazy danych z głównego serwera subskrybenta
D. reorganizacji bazy danych na podstawie zapisanych danych
Fajnie, że się zabrałeś za temat RESTORE DATABASE w MS SQL Server! To naprawdę ważne narzędzie, które pomaga w sytuacjach kryzysowych, tak jak wtedy, gdy coś pójdzie nie tak z bazą danych. Wiesz, jak to jest, czasem coś się popsuje albo niechcący usuniemy ważne dane. Dzięki temu poleceniu można szybko wrócić do wcześniejszego stanu. Istnieją różne sposoby przywracania, jak pełne, różnicowe czy punktowe, co daje dużą swobodę w pracy z danymi. Warto też pamiętać, że regularne robienie kopii zapasowych i testowanie, czy można je przywrócić, to bardzo mądra praktyka. Dzięki temu, w razie problemów, można szybko odzyskać dane. No i nie zapominaj o monitorowaniu kopii zapasowych, by mieć pewność, że wszystko działa jak należy. To naprawdę kluczowe dla bezpieczeństwa danych!

Pytanie 2

Do której grupy operatorów należą w JavaScript || oraz &&?

A. przypisania
B. arytmetycznych
C. logicznych
D. bitowych
Operatory || (lub) i && (oraz) w JavaScripcie należą do grupy operatorów LOGICZNYCH - łączą wartości prawda/fałsz i są podstawą warunków, np. if (zalogowany && admin). Razem z negacją ! tworzą komplet logiki. Zapamiętaj: podwójne znaki &&/|| = logika, pojedyncze &/| = bity.

Pytanie 3

W bazie MySQL zdefiniowano podczas tworzenia tabeli pole

id int NOT NULL AUTO_INCREMENT
Wpis AUTO_INCREMENT oznacza, że
A. wartość kolumny id zostanie automatycznie przypisana przez system i będzie to przypadkowo wygenerowana liczba całkowita
B. kolumna id będzie mogła przyjmować wartości: NULL, 1, 2, 3, 4 i tak dalej
C. wartości tej kolumny będą automatycznie tworzone w trakcie dodawania nowego rekordu do bazy
D. możliwe jest wprowadzenie rekordu z dowolną wartością dla kolumny id
Wybór niepoprawnych odpowiedzi najczęściej wynika z niepełnego zrozumienia działania mechanizmu AUTO_INCREMENT w MySQL. Zgłoszenie, że dozwolone jest dodawanie rekordu z dowolną wartością pola id, jest błędne, ponieważ pole z AUTO_INCREMENT nie pozwala na wprowadzenie wartości ręcznie; to system bazy danych przydziela kolejne wartości. Ponadto, sugestia, że pole id może przyjmować wartość NULL jest również nieprawidłowa. W definicji pola 'id int NOT NULL AUTO_INCREMENT' zawiera się klauzula NOT NULL, co oznacza, że pole to nie może być puste - każdemu rekordowi musi być przypisana właściwa wartość. Inną mylną koncepcją jest stwierdzenie, że wartość pola id zostanie wygenerowana losowo. AUTO_INCREMENT nie generuje wartości losowych, lecz sekwencyjne, co oznacza, że wartości będą rosły o jeden w stosunku do ostatniego zarejestrowanego identyfikatora. Takie podejście zapewnia porządek i przewidywalność w bazie danych. Często zdarza się, że osoby korzystające z baz danych nie zdają sobie sprawy z tych mechanizmów, co prowadzi do mylnych wniosków. Zrozumienie zasad działania AUTO_INCREMENT jest kluczowe dla efektywnego projektowania baz danych oraz zapewnienia integralności danych.

Pytanie 4

Aby tworzyć strony internetowe w sposób graficzny, należy skorzystać z

A. programu typu WYSIWYG
B. przeglądarki internetowej
C. programu MS Office Picture Manager
D. edytora CSS
Korzystanie z przeglądarek internetowych do tworzenia stron internetowych jest fundamentalnie niepoprawne, ponieważ przeglądarki są narzędziami do wyświetlania stron, a nie ich tworzenia. Użytkownicy mogą jedynie przeglądać treści, które zostały już opracowane w innych aplikacjach i zamieszczone w Internecie. Również edytory CSS, choć ważne w procesie stylizowania stron, nie są wystarczające do graficznego tworzenia stron internetowych. Edytory te skupiają się jedynie na aspekcie wizualnym poprzez stylowanie elementów HTML, ale nie oferują możliwości łatwego i intuicyjnego projektowania układu strony, co jest kluczowe dla grafików i projektantów stron. Co więcej, program MS Office Picture Manager jest aplikacją do zarządzania i edytowania zdjęć, a nie do tworzenia stron internetowych. Użytkownicy mogą popełniać błąd, myśląc, że podobne programy mogą być używane do projektowania stron, jednak nie są one zaprojektowane do integracji z HTML, CSS czy JavaScript. Zrozumienie tych różnic jest kluczowe dla efektywnego tworzenia stron internetowych, które są nie tylko estetyczne, ale również funkcjonalne i zgodne z nowoczesnymi standardami.

Pytanie 5

Wskaż styl CSS za pomocą którego został uzyskany przedstawiony efekt.

  • psy
  • koty
  • chomiki
  • świnki morskie
  • rybki
A. ul li:active { background-color: DodgerBlue; }
B. ul li:nth-child(odd) { background-color: DodgerBlue; }
C. ul li:hover { background-color: DodgerBlue; }
D. ul li:nth-child(even) { background-color: DodgerBlue; }
Dokładnie tak, poprawna odpowiedź to 'ul li:nth-child(even) { background-color: DodgerBlue; }'. Użycie selektora :nth-child(even) pozwala na zastosowanie stylu CSS do każdego parzystego elementu listy, co można zaobserwować na załączonym obrazku - każdy drugi (parzysty) element ma niebieskie tło. Jest to praktyczne rozwiązanie stosowane m.in. w celu poprawy czytelności długich list danych, gdzie koloryzmowanie na przemian pozwala na łatwiejsze zlokalizowanie poszczególnych elementów. Pamiętaj, że CSS oferuje wiele innych pseudoklas pozwalających na zastosowanie różnych efektów w zależności od stanu lub położenia elementu na stronie. Przy wykorzystaniu pseudoklas CSS warto odwoływać się do standardów i dobrych praktyk branżowych, takich jak unikanie nadmiernego zagnieżdżania selektorów, co może utrudniać czytelność i utrzymanie kodu.

Pytanie 6

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. wszystkie akapity.
C. wszystkie elementy w sekcji <body> z przypisaną klasą uzytkownik.
D. akapitów, którym przypisano 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 7

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. COUNT
B. AVG
C. SUM
D. NUMBER
Wybór funkcji SUM, AVG czy NUMBER nie jest najlepszy, jeśli chodzi o zliczanie rekordów. Funkcja SUM sumuje wartości w kolumnach, a nie zlicza rekordy. Na przykład, zapytanie SELECT SUM(wartość) FROM zamówienia pokaże nam całkowitą wartość zamówień, ale nie powie, ile ich było. Funkcja AVG natomiast oblicza średnią, więc też nie nadaje się do liczenia rekordów. Używając zapytania SELECT AVG(wiek) FROM pracownicy dostaniemy średni wiek, ale nie wiedząc, ile mamy pracowników. Co do NUMBER, to w SQL nie jest nawet standardową funkcją, więc może być tu jakieś nieporozumienie. Często mylimy te funkcje i to prowadzi do złych analiz. Zrozumienie, jakie są różnice między nimi, to klucz do robienia dobrych analiz danych. Dlatego warto zwracać na to uwagę.

Pytanie 8

Który zapis wyświetli obraz kotek.jpg z tekstem alternatywnym „obrazek kotka”?

A.
<img href="/kotek.jpg" title="obrazek kotka">
B.
<img src="/kotek.jpg" alt="obrazek kotka">
C.
<img src="/kotek.jpg" title="obrazek kotka">
D.
<img href="/kotek.jpg" alt="obrazek kotka">
Obraz wstawia się znacznikiem <img>, podając źródło w src i tekst alternatywny w alt: <img src="/kotek.jpg" alt="obrazek kotka">. Dlatego poprawny jest ten zapis.

Pytanie 9

W CSS określono stylizację dla paragrafu, która nada mu następujące właściwości:

Ilustracja do pytania
A. tło niebieskie, kolor tekstu czerwony, marginesy wewnętrzne ustawione na wartość 40 px
B. tło czerwone, kolor tekstu niebieski, marginesy wewnętrzne ustawione na wartość 40 px
C. tło niebieskie, kolor tekstu czerwony, marginesy zewnętrzne ustawione na wartość 40 px
D. tło czerwone, kolor tekstu niebieski, marginesy zewnętrzne ustawione na wartość 40 px
Rozważając zastosowanie CSS do stylizacji elementów musimy zrozumieć różnicę między marginesami wewnętrznymi padding a zewnętrznymi margin co jest kluczowe w pytaniu odpowiedzi twierdzące że marginesy wewnętrzne są ustawione na 40px są błędne ponieważ w kodzie użyto margin co jednoznacznie dotyczy marginesów zewnętrznych Marginesy wewnętrzne padding odnoszą się do przestrzeni pomiędzy zawartością a obramowaniem elementu a marginesy zewnętrzne określają odstęp między elementem a innymi elementami na stronie Błędnym jest również przypisanie odwrotnej kolorystyki czyli tła niebieskiego i tekstu czerwonego co jest sprzeczne z zawartością kodu CSS background-color red i color blue Często błędy te wynikają z niewłaściwego zrozumienia hierarchii stylów i ich wpływu na układ strony W praktyce ważne jest aby testować zmiany stylów wizualnie oraz zrozumieć jak różne właściwości CSS współpracują ze sobą aby tworzyć responsywne i estetyczne projekty Stosowanie odpowiednich marginesów zapewnia przejrzystość oraz poprawia czytelność co jest podstawą dobrego projektowania Dzięki zrozumieniu tych zasad można tworzyć bardziej efektywne i estetyczne strony które odpowiadają na potrzeby użytkowników i spełniają standardy branżowe

Pytanie 10

W JavaScript zdefiniowano obiekt. W jaki sposób można uzyskać dostęp do właściwości nazwisko?

var osoba = {imie: "Anna", nazwisko: "Kowalska", rok_urodzenia: 1985};
A. osoba[2]
B. osoba::nazwisko
C. osoba.nazwisko
D. osoba[1]
W przypadku niepoprawnych odpowiedzi osoba[2], osoba::nazwisko i osoba[1] odniesienie do właściwości obiektu w JavaScript zostało błędnie przedstawione. Metoda osoba[2] oraz osoba[1] sugeruje użycie notacji tablicowej, która jest stosowana do odwoływania się do elementów tablicy przez ich indeks. Jednak obiekt w JavaScript nie jest tablicą, a zestawem par klucz-wartość, dlatego stosowanie indeksów w tym kontekście nie ma zastosowania. Indeksowanie za pomocą nawiasów kwadratowych jest właściwe w przypadku tablic, natomiast obiekty wymagają dostępu przez klucze opisane jako stringi. Próba użycia osoba::nazwisko jest niepoprawna, ponieważ podwójny dwukropek nie jest częścią syntaksu JavaScript pozwalającego na dostęp do właściwości obiektu. Tego typu notacja może pojawiać się w innych językach programowania jak C++ jako operator zakresu, jednak w JavaScript jest pozbawiona sensu. Błędny wybór w tym przypadku wynika z niezrozumienia różnicy między różnymi strukturami danych oraz ich specyficznej składni w obrębie różnych języków programowania. Bardzo istotne jest zapamiętanie, że w JavaScript do właściwości obiektu najczęściej odwołuje się za pomocą notacji kropkowej, co jest nie tylko standardem, ale również poprawia czytelność i zrozumiałość kodu. Świadomość różnicy między tablicami a obiektami oraz umiejętność wyboru odpowiedniej składni są kluczowe w pisaniu efektywnego i poprawnego kodu w JavaScript. Poprawne zrozumienie tych różnic i składni pozwala unikać błędów i pisania kodu, który może być trudny do debugowania i zrównoważenia w przyszłości.

Pytanie 11

Które zapytanie SQL wybiera nazwiska z tabeli klient, które mają co najmniej jedną literę i zaczynają się na literę Z?

A. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%'
B. SELECT nazwisko FROM klient WHERE nazwisko='Z?'
C. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'
D. SELECT nazwisko FROM klient WHERE nazwisko='Z_?'
Zastosowanie zapytań, które nie wykorzystują operatora LIKE w odpowiedni sposób, prowadzi do błędnych wniosków i nieprawidłowych wyników. Na przykład, użycie zapytania SELECT nazwisko FROM klient WHERE nazwisko='Z_?'; i SELECT nazwisko FROM klient WHERE nazwisko='Z?'; jest mylące, ponieważ w tych przypadkach znak podkreślenia (_) jest interpretowany jako znak zastępczy reprezentujący dokładnie jeden dowolny znak. Oznacza to, że te zapytania będą szukały nazwisk, które zaczynają się na Z, ale mają łącznie tylko dwa lub trzy znaki, co nie spełnia wymogu przynajmniej jednoliterowego nazwiska. Tego rodzaju nieścisłości mogą wynikać z niepełnego zrozumienia działania operatorów w SQL. Kolejnym błędem jest zapytanie SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%';, które również ogranicza wynik do nazwisk składających się przynajmniej z trzech znaków, co nie spełnia wymagań zadania. W praktyce, takie pomyłki mogą prowadzić do nieefektywnego wyszukiwania i obniżenia jakości aplikacji, co skutkuje frustracją użytkowników i zwiększonymi kosztami rozwoju. Kluczowe jest zrozumienie, jak działają różne znaki wieloznaczne oraz ich zastosowanie w kontekście konkretnych zadań, aby skutecznie i precyzyjnie przeszukiwać dane w bazie.

Pytanie 12

Utworzono bazę danych z tabelą mieszkańcy, która zawiera pola: nazwisko, imię oraz miasto. Następnie przygotowano poniższe zapytanie do bazy:
SELECT nazwisko, imie FROM mieszkańcy WHERE miasto='Poznań' UNION ALL SELECT nazwisko, imie FROM mieszkańcy WHERE miasto='Kraków';
Wskaż zapytanie, które zwróci takie same dane.

A. SELECT nazwisko, imie FROM mieszkańcy AS 'Poznań' OR 'Kraków';
B. SELECT nazwisko, imie FROM mieszkańcy WHERE miasto='Poznań' OR miasto='Kraków';
C. SELECT nazwisko, imie FROM mieszkańcy WHERE miasto HAVING 'Poznań' OR 'Kraków';
D. SELECT nazwisko, imie FROM mieszkańcy WHERE miasto BETWEEN 'Poznań' OR 'Kraków';
Wybór błędnych odpowiedzi wynika z nieprawidłowego zrozumienia podstawowych zasad użycia operatorów w SQL oraz sposobu, w jaki warunki filtracji danych powinny być konstruowane. Zapytanie, które wykorzystuje BETWEEN, jest stosowane do porównywania wartości w określonym zakresie, ale w tym przypadku nie jest możliwe wskazanie dwóch różnych wartości, jak w przypadku miast. Operator OR w kontekście BETWEEN nie ma zastosowania, co sprawia, że ta koncepcja jest fundamentalnie błędna. Z drugiej strony, użycie HAVING jest niewłaściwe, ponieważ służy do filtrowania wyników po agregacji danych, a nie do bezpośredniej filtracji na podstawie wartości. Dodatkowo, konstrukcja SELECT z aliasem 'Poznań' OR 'Kraków' jest syntaktycznie niepoprawna, ponieważ operator OR nie może być użyty w tym kontekście. Typowym błędem w myśleniu jest mylenie operatorów logicznych i ich zastosowania w różnych kontekstach zapytań SQL. Zrozumienie, kiedy używać WHERE, HAVING oraz jak działa składnia zapytań, jest kluczowe dla poprawnego pisania i optymalizacji zapytań baz danych.

Pytanie 13

Jaki program jest wykorzystywany do edycji dźwięku?

A. Inkscape
B. GIMP
C. CorelDRAW
D. Audacity
Audacity to naprawdę fajny program do obróbki dźwięku, który jest używany przez wielu, zarówno hobbystów, jak i profesjonalistów. Jest to open-source, więc można go ściągnąć za darmo. Dzięki niemu możesz nagrywać dźwięki z mikrofonu lub z innych źródeł, co jest super przydatne. Możliwości edytowania ścieżek dźwiękowych są ogromne – masz różne efekty, jak kompresja, EQ czy reverb, które naprawdę mogą wzbogacić Twoje nagrania. Obsługuje też wiele formatów plików, jak WAV, MP3 czy OGG, co sprawia, że jest wszechstronny. Sam z niego korzystam do nagrywania podcastów i muszę przyznać, że dobrze się sprawdza. Ważne, żeby pamiętać, że Audacity jest popularne w branży, bo pozwala na solidną pracę z dźwiękiem, co jest kluczowe, jeśli planujesz coś profesjonalnego. Jest też duża społeczność użytkowników, więc program ciągle się rozwija i aktualizuje. To na pewno coś, czego warto spróbować!

Pytanie 14

Efekt AutoDuck w obróbce dźwięku jest stosowany do

A. eliminacji szumów pochodzących z dźwięków w tle.
B. ściszenia dźwięku w tle, gdy pojawia się dźwięk pierwszoplanowy.
C. ocieplenia głosu i dźwięków pochodzących z tła.
D. wyrównania głośności całej ścieżki dźwiękowej.
W obróbce dźwięku łatwo pomylić różne efekty, bo większość z nich w jakiś sposób wpływa na głośność lub charakter brzmienia. AutoDuck jednak ma bardzo konkretne zastosowanie: automatyczne ściszanie tła, gdy pojawia się dźwięk pierwszoplanowy, najczęściej głos. To nie jest efekt „upiększający” czy „naprawiający” brzmienie, tylko typowo użytkowy mechanizm sterowania poziomem głośności między dwoma ścieżkami. Częsty błąd myślowy polega na tym, że wszystko, co „robi coś z głośnością”, wrzuca się do jednego worka. Ocieplenie głosu kojarzy się raczej z korekcją barwy (equalizer – podbicie niskich i niższych średnich częstotliwości) albo z delikatną kompresją, ewentualnie z efektami typu saturacja czy emulacja lampowa. AutoDuck niczego nie „ociepla”, on tylko zmniejsza poziom innej ścieżki, reagując na sygnał pierwszoplanowy. Podobnie z wyrównywaniem głośności całej ścieżki – od tego są kompresory, limitery, normalizacja czy tzw. loudness matching zgodny z normami EBU R128 lub ITU-R BS.1770. Te narzędzia analizują lub przetwarzają pojedynczą ścieżkę, żeby jej poziom był bardziej równy w czasie. AutoDuck działa relacyjnie: jedna ścieżka kontroluje głośność drugiej. Jeśli chodzi o eliminację szumów, tym zajmują się zupełnie inne algorytmy: redukcja szumów, bramki szumów (noise gate), filtry dolno- lub górnoprzepustowe, narzędzia typu DeNoise. Szum się tam analizuje i usuwa lub tłumi, najczęściej w oparciu o profil szumu albo próg głośności. AutoDuck nie rozpoznaje szumu ani nie czyści nagrania, tylko mechanicznie ścisza tło, gdy pojawia się ważniejszy sygnał. W produkcji multimediów na strony WWW czy do e-learningu dobrą praktyką jest łączenie kilku technik: najpierw oczyszczenie głosu z szumów i ustawienie jego stałego poziomu kompresją, a dopiero potem zastosowanie duckingu na muzyce w tle. Dzięki temu materiał brzmi profesjonalnie, a słuchacz nie musi walczyć z niedosłyszalnym komentarzem przykrytym za głośną muzyką.

Pytanie 15

Delegacja domeny to:

A. zmiana nazwy domeny
B. utrata ważności domeny z możliwością jej odnowienia
C. wskazanie zewnętrznych serwerów nazw, które obsługują domenę
D. zmiana rejestratora domeny
Pozostałe odpowiedzi opisują inne czynności związane z domeną. Zmiana nazwy domeny to po prostu rejestracja innej nazwy - nie ma związku ze wskazywaniem serwerów. Zmiana rejestratora (transfer) przenosi obsługę domeny do innej firmy, ale sama w sobie nie definiuje serwerów DNS. Utrata okresu ważności z możliwością odnowienia opisuje wygaśnięcie (expiration) domeny, czyli koniec opłaconego okresu. Delegacja natomiast kieruje domenę na właściwe serwery nazw, dlatego to ta odpowiedź jest poprawna.

Pytanie 16

Jaki minimalny kontrast tekstu (standardowego rozmiaru) do tła wymaga WCAG 2.x na poziomie AA?

A. 2,5 : 1
B. 4,5 : 1
C. 1,5 : 1
D. 2,0 : 1
Pozostałe wartości są zbyt niskie, by spełnić AA dla zwykłego tekstu. Kontrasty 1,5:1, 2,0:1 czy 2,5:1 dają tekst trudny do odczytania na tle. Wymagane minimum WCAG AA dla standardowego tekstu to 4,5:1.

Pytanie 17

W CSS zdefiniowano regułę

input:focus { background-color: LightGreen; }
Kiedy pole edycyjne będzie miało jasnozielone tło?
A. gdy zostanie najechane kursorem (bez kliknięcia)
B. po kliknięciu w nie, gdy jest aktywne do wpisywania tekstu
C. w każdej sytuacji
D. jeśli to pierwsze wystąpienie tego elementu w dokumencie
Pseudoklasa :focus dotyczy elementu, który jest AKTYWNY - ma „fokus”, np. pole tekstowe po kliknięciu, gotowe do wpisywania. Dlatego input:focus zadziała po kliknięciu w pole, gdy jest aktywne.

Pytanie 18

Czym jest w C++ zmienna zadeklarowana jako char zm1[10];?

A. tablicą znaków
B. tablicą łańcuchów
C. znakiem
D. liczbą
Nawias kwadratowy [10] oznacza tablicę o 10 elementach, więc to nie pojedynczy znak ani liczba. Nie jest to też „tablica łańcuchów” - elementami są pojedyncze znaki (char), a nie całe napisy. char zm1[10] to tablica znaków.

Pytanie 19

Wskaż pole edycyjne sformatowane przedstawionym stylem CSS

input {
  border: none;
  border-bottom: 2px solid Blue;
  color: Gray;
  font-weight: 900;
}

Input 1. Podaj imię:

Input 2. Podaj imię:

Input 3. Podaj imię:

Input 4. Podaj imię: Agnieszka

A. Input 4.
B. Input 3.
C. Input 1.
D. Input 2.
Dobrze wybrałeś! Odpowiedź 'Input 2.' jest rzeczywiście poprawna. To, co oferuje ten element, to wszystko, co potrzebne do spełnienia wymagań stylu CSS, czyli ma niebieskie dolne obramowanie o grubości 2px, szary tekst oraz pogrubioną czcionkę. Wygląd elementów formularza jest mega ważny, bo to właśnie od niego zależy, jak użytkownicy będą się poruszać po stronie. Dzięki CSS możemy to wszystko kontrolować, co daje nam spójność i ładny wygląd. Różne właściwości CSS, takie jak 'border-bottom', 'color' czy 'font-weight', pozwalają na dokładne dostosowanie stylu każdego elementu strony. W sumie, jak już się bardziej wkręcisz w CSS, zauważysz, że można dodać też różne efekty, jak hover, focus czy active, co dodatkowo wzbogaca interakcję. Rozumienie, jak te różne właściwości działają, jest kluczowe, żeby tworzyć fajne i funkcjonalne interfejsy.

Pytanie 20

Która definicja CSS wskazuje na formatowanie nagłówka h1: tekst z przekreśleniem, z odstępami między słowami wynoszącymi 10 px oraz w kolorze czerwonym?

Ilustracja do pytania
A. B
B. D
C. A
D. C
Błędne odpowiedzi są efektem nie do końca właściwego zastosowania CSS w kontekście tego, co pytanie wymagało. Odpowiedź B używa 'letter-spacing: 10px;', co zmienia odstępy między literami, a nie wyrazami, co jest dość istotne w stylizacji. Można się pomylić i myśleć, że to to samo, ale różnią się tym, co robią. Odpowiedź C używa 'line-height: 10px;', ale to też nie spełnia wymagań co do odstępów między wyrazami. Z kolei 'text-transform: none;' to nie to, czego szukasz w tym pytaniu, więc tu też można się pogubić. Odpowiedź D z kolei stosuje 'text-decoration: underline;', a to podkreślenie, a nie nadkreślenie, co też mija się z celem. Ważne, żeby znać te różnice między właściwościami CSS, bo to klucz do skutecznej stylizacji w zgodzie z tym, co projekt wymaga. Dobre użycie CSS nie tylko sprawia, że strona wygląda lepiej, ale też poprawia dostępność i użyteczność.

Pytanie 21

Jakie właściwości stylu CSS poprawnie definiują dla akapitu czcionkę: Arial; jej wielkość: 16 pt; oraz styl czcionki: kursywa?

A. p {font-family: Arial; font-size: 16pt; font-style: italic;}
B. p {font-family: Arial; font-size: 16px; font-variant: normal;}
C. p {font-style: Arial; size: 16px; font-weight: normal;}
D. p {font-style: Arial; font-size: 16pt; font-variant: normal;}
W analizowanych odpowiedziach zawarte są błędy, które wynikają z niepoprawnego użycia właściwości CSS. Przede wszystkim w przypadku pierwszej odpowiedzi, użycie font-style do definiowania kroju czcionki jest całkowicie błędne, ponieważ ta właściwość powinna odnosić się do stylu (np. italic, normal), a nie do krój czcionki, który powinien być definiowany przez font-family. Druga odpowiedź także zawiera podobne niedociągnięcie, w której zamiast font-family podano font-style, co prowadzi do nieprawidłowego zinterpretowania deklaracji. Dodatkowo, właściwość size jest niepoprawna, ponieważ powinna być font-size; użycie size nie jest zgodne z żadnym standardem CSS. Trzecia odpowiedź z kolei posługuje się jednostką px zamiast pt dla rozmiaru czcionki, co może prowadzić do problemów z wyświetlaniem tekstu na różnych urządzeniach. Chociaż px jest popularną jednostką w CSS, nie jest ona zalecana, gdy mamy do czynienia z typografią opartą na punktach, co jest szczególnie istotne w druku. Wreszcie, czwarta odpowiedź również niepoprawnie używa jednostki px oraz font-variant w kontekście stylu czcionki, co świadczy o braku zrozumienia zastosowań tych właściwości. Kluczowe jest, aby rozumieć funkcję każdej z właściwości CSS i stosować je zgodnie z ich przeznaczeniem, co pozwoli na tworzenie estetycznych i funkcjonalnych stylów w projektach webowych.

Pytanie 22

Który element relacyjnej bazy danych (kod w języku SQL) można WYWOŁAĆ wewnątrz zapytania, tak że zwróci wartość lub dane widoczne jak tabela?

A. procedura składowana
B. wyzwalacz
C. funkcja zdefiniowana przez użytkownika
D. reguła
Funkcja zdefiniowana przez użytkownika (UDF) to kod SQL, który można WYWOŁAĆ wewnątrz zapytania - zwraca wartość albo zbiór danych widoczny jak tabela. Dlatego tym elementem jest funkcja zdefiniowana przez użytkownika.

Pytanie 23

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. trzy bloki operacyjne (procesy)
B. jeden blok decyzyjny
C. dwie pętle
D. jedną pętlę
Błędy w odpowiedziach mogą wynikać z mylnego odbioru diagramu. Posiadanie bloku decyzyjnego nie zawsze znaczy, że mamy pętlę, bo pętle potrzebują zarówno warunków, jak i mechanizmu powtarzania. Wydaje się, że są różne bloki, ale w rzeczywistości mamy tu dwa bloki decyzyjne i jeden operacyjny, co nie zgadza się z odpowiedzią. Na diagramie nie da się znaleźć dwóch pętli, co może sugerować, że nie do końca rozumiesz strukturę algorytmu. Często w takich analizach ludzie mylą bloki decyzyjne z pętlami, co jest błędne, bo pętle są bardziej złożonymi strukturami. Jak się programuje, ważne jest, żeby dobrze rozróżniać te elementy, bo to wpływa na jakość algorytmu. Mnie osobiście pomogło to w pisaniu lepszego kodu, dlatego warto poświęcić chwilę na zrozumienie różnic między tymi pojęciami.

Pytanie 24

Jak nazywa się metoda sortowania polegająca na podziale danych na n równych przedziałów (kubełków), posortowaniu ich i scaleniu?

A. sortowanie szybkie
B. sortowanie przez wybór
C. sortowanie kubełkowe
D. sortowanie bąbelkowe
Pozostałe metody działają inaczej. Sortowanie szybkie (quicksort) dzieli dane wokół elementu osiowego, bąbelkowe wielokrotnie zamienia sąsiednie elementy, a przez wybór szuka w każdym kroku najmniejszego elementu. Podział na przedziały-kubełki i ich scalanie to sortowanie kubełkowe.

Pytanie 25

Wskaż polecenie SQL, które dodaje kolumnę miesiacSiewu do już istniejącej tabeli rośliny

A. UPDATE rosliny ADD miesiacSiewu int
B. CREATE TABLE rosliny {miesiacSiewu int}
C. ALTER TABLE rosliny ADD miesiacSiewu int
D. INSERT INTO rosliny Values (miesiacSiewu int)
Pierwsza niepoprawna odpowiedź wykorzystuje polecenie 'UPDATE rosliny ADD miesiacSiewu int;', ale to zupełnie nie to, bo UPDATE jest do zmieniania już istniejących rekordów, a nie do dodawania kolumn. Kolejna odpowiedź, w której jest 'CREATE TABLE rosliny {miesiacSiewu int};', to też zły pomysł. CREATE TABLE jest do tworzenia nowych tabel, co w tym przypadku nie ma sensu, bo tabela 'rosliny' już przecież jest. Stworzenie nowej tabeli zamiast zmieniania tej istniejącej tylko by skomplikowało sprawę. Ostatnia odpowiedź z 'INSERT INTO rosliny Values (miesiacSiewu int);' też nie pasuje, bo INSERT INTO jest do dodawania nowych rekordów, a nie do kolumn. Do tego to 'miesiacSiewu int' nie powinno się tam znaleźć, bo w poleceniu INSERT powinny być rzeczywiste dane, a nie definicje typów. Te niepoprawne odpowiedzi pokazują różne rzeczy w SQL, ale żadna z nich nie osiąga celu dodania kolumny do istniejącej tabeli.

Pytanie 26

Wskaż stwierdzenie, które nie jest prawdziwe dla następującej definicji funkcji w języku C++?

void zamien( float &x, float &y){
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja zwraca wartość.
B. Funkcja posiada dwa parametry.
C. Funkcja odwołuje się do parametrów przez referencję.
D. Funkcja nie zwraca wartości.
Niestety, wybrałeś odpowiedź, która nie jest właściwa. Poprawna odpowiedź w tym przypadku to 'Funkcja zwraca wartość', co jest nieprawdziwe dla podanej definicji funkcji w C++. Mówimy tutaj o funkcji typu 'void', która z zasady nie zwraca nic. Typ 'void' oznacza, że nie mamy zwracanego typu. Poza tym, stwierdzenia, że funkcja nie ma parametrów czy nie odnosi się do nich przez referencję, też są błędne. W rzeczywistości, funkcja ma dwa parametry typu float, które są przekazywane przez referencję. To naprawdę istotne, bo pomaga w modyfikacji wartości zmiennych, które przekazujemy do funkcji. Zrozumienie tego jest ważne w C++, żeby lepiej zarządzać pamięcią i danymi.

Pytanie 27

Którą wartość atrybutu name znacznika <meta> wykorzystuje się do kontrolowania obszaru widzialnego na różnych urządzeniach, na których jest wyświetlana strona internetowa?

A. generator
B. keywords
C. description
D. viewport
Poprawnie wskazana została wartość „viewport”. W praktyce właśnie meta name="viewport" służy do kontrolowania tzw. obszaru widzialnego (ang. viewport) na urządzeniach mobilnych i desktopowych. Przeglądarka mobilna domyślnie zakłada szeroką stronę i sztucznie ją pomniejsza, żeby „zmieściła się” na ekranie telefonu. Dopiero meta viewport mówi jej: potraktuj szerokość ekranu urządzenia jako bazową szerokość strony.
Najczęściej spotykana, zgodna z dobrymi praktykami konstrukcja to: <meta name="viewport" content="width=device-width, initial-scale=1.0">. Parametr width=device-width ustawia szerokość obszaru widzialnego na szerokość ekranu urządzenia, a initial-scale=1.0 definiuje początkowe powiększenie. Dzięki temu layout responsywny oparty na media queries w CSS działa poprawnie, bez dziwnych przeskalowań i zbyt małej czcionki.
W nowoczesnym front-endzie przyjmuje się, że każda strona, która ma być używalna na telefonach, tabletach i laptopach, powinna mieć prawidłowo ustawiony meta viewport. Moim zdaniem to jest absolutna podstawa RWD, zaraz obok poprawnego użycia jednostek względnych (np. %, vw, em) i zaprojektowania siatki w CSS. Warto też pamiętać, żeby nie przesadzać z blokowaniem powiększania (np. user-scalable=no), bo to pogarsza dostępność strony dla osób słabiej widzących i jest uznawane za złą praktykę. Podsumowując: jeśli chcesz mieć stronę, która naprawdę „żyje” na różnych ekranach, meta name="viewport" to obowiązkowy element w sekcji <head>.

Pytanie 28

Debugger to narzędzie wykorzystywane do

A. optymalizacji pamięci zajmowanej przez aplikację
B. oceny szybkości działania programu
C. analizy właściwości programu
D. identyfikacji błędów w kodzie programu
Debugger to narzędzie, które odgrywa kluczową rolę w procesie tworzenia oprogramowania, umożliwiając programistom identyfikację i naprawę błędów w kodzie. Główną funkcją debuggera jest pozwolenie na analizę działania programu na poziomie linii kodu, co umożliwia użytkownikowi śledzenie wykonania programu, monitorowanie wartości zmiennych oraz sprawdzanie logiki warunkowej. Użycie debuggera pozwala na wykrywanie błędów w czasie rzeczywistym, co jest niezwykle istotne, zwłaszcza w przypadku aplikacji, które muszą działać na różnych platformach i z różnymi danymi wejściowymi. Przykładem może być programowanie w języku Python, gdzie debugger umożliwia krokowe przechodzenie przez kod, co pomaga zrozumieć proces wykonania i zidentyfikować miejsca, gdzie występują nieprawidłowości. Dobrym zwyczajem jest korzystanie z debuggera na wczesnych etapach tworzenia oprogramowania, aby zminimalizować późniejsze problemy w fazie testowania i wdrażania.

Pytanie 29

W kodzie HTML znajdziemy formularz. Jaki rezultat zostanie pokazany przez przeglądarkę, jeśli użytkownik wprowadził do pierwszego pola wartość "Przykładowy text"?

Ilustracja do pytania
A. Efekt 4
B. Efekt 3
C. Efekt 1
D. Efekt 2
Niepoprawne odpowiedzi wynikają z błędnego zrozumienia struktury formularza HTML. W przypadku efektu pierwszego widać, że checkboxy zostały zamienione na radiobuttony, co może sugerować, że użytkownik może wybrać tylko jedną z opcji. Jest to niezgodne z kodem, który jasno określa pola jako checkboxy, co pozwala na wielokrotny wybór. Efekt trzeci pokazuje nieprawidłowe pozycjonowanie elementów formularza, które nie odzwierciedla rzeczywistego układu z kodu HTML. Błędne zrozumienie struktury może wynikać z nieznajomości zasady działania poszczególnych elementów formularza, takich jak <textarea> i <input type='checkbox'>. <Textarea> powinno być stosowane do wprowadzania tekstu wielowierszowego, a checkboxy są idealne do prezentacji listy opcji, które mogą być niezależnie zaznaczone. Efekt czwarty przedstawia radiobuttony zamiast checkboxów, co całkowicie zmienia funkcję formularza. Warto w tym kontekście zrozumieć różnicę między radiobuttonami a checkboxami, gdzie pierwsze są używane do wyboru jednej z wielu opcji, a drugie do wielokrotnego wyboru. Kluczowe jest również poprawne stosowanie i testowanie formularzy w celu zapewnienia ich funkcjonalności i intuicyjności dla użytkownika końcowego.

Pytanie 30

Który użytkownik domyślnie posiada pełne uprawnienia do zarządzania bazą danych w systemie MySQL?

A. mysqld
B. root
C. sysadmin
D. admin
Pozostałe nazwy nie są domyślnym kontem administratora MySQL. „admin” i „sysadmin” brzmią wiarygodnie, ale MySQL nie zakłada ich automatycznie - to konta, które ewentualnie trzeba utworzyć samemu. „mysqld” w ogóle nie jest użytkownikiem, lecz nazwą procesu (demona) serwera MySQL działającego w systemie. Konto z pełnymi uprawnieniami tworzone domyślnie przy instalacji to root, dlatego to ono jest poprawne.

Pytanie 31

Użytkownik Jan będzie miał możliwość realizacji

GRANT ALL PRIVILEGES ON dane.* TO 'Jan'@'localhost';
A. tylko operacje manipulacji danymi oraz zmienić jedynie swoje uprawnienia
B. wyłącznie operacje CREATE, ALTER, DROP na tabelach w bazie dane
C. wszystkie operacje na tabelach bazy dane oraz przekazywać prawa innym użytkownikom
D. wszystkie operacje na tabelach w bazie dane
Niepoprawne odpowiedzi wynikają z nieporozumień dotyczących zakresu uprawnień, jakie mogą być przyznane użytkownikom w systemie baz danych. Ograniczanie możliwości Jan do jedynie operacji CREATE, ALTER, DROP na tabelach bazy danych jest błędne, ponieważ przyznanie ALL PRIVILEGES pozwala na znacznie szerszy zakres operacji, w tym manipulację danymi poprzez SELECT i INSERT. Warto zauważyć, że w kontekście baz danych, operacje związane z manipulowaniem danymi są kluczowe dla prawidłowego funkcjonowania aplikacji i utrzymania integralności danych. Twierdzenie, że Jan miałby jedynie możliwość zmiany własnych praw, jest również mylne, ponieważ uprawnienia ALL PRIVILEGES dają użytkownikowi kontrolę nad wszystkimi tabelami oraz możliwość nadawania uprawnień innym użytkownikom. Koncepcja ograniczenia uprawnień do jedynie manipulacji danymi nie uwzględnia pełnego potencjału, jaki niesie ze sobą przyznanie ALL PRIVILEGES, co prowadzi do nieefektywnego zarządzania bazą danych. Zrozumienie, jak działają uprawnienia w systemach baz danych, jest kluczowe dla bezpieczeństwa i prawidłowego zarządzania danymi, dlatego konieczne jest, aby administratorzy baz danych dokładnie analizowali zasady, według których przyznają uprawnienia użytkownikom.

Pytanie 32

W którym znaczniku HTML5 stosuje się atrybut action?

A.
<form>
B.
<body>
C.
<head>
D.
<code>
Pozostałe znaczniki nie obsługują wysyłki danych. <code> prezentuje fragment kodu, <body> to kontener całej treści strony, a <head> zawiera metadane dokumentu. Atrybut action należy do <form>.

Pytanie 33

Co zwraca funkcja mysqli_query() po pomyślnym wykonaniu zapytania SELECT?

A. zawsze wartość true
B. liczbę usuniętych wierszy
C. zbiór wynikowy (rekordy do odczytania)
D. nazwę odpytywanej tabeli
Funkcja mysqli_query() wykonuje zapytanie i przy zapytaniu zwracającym dane (np. SELECT) zwraca zbiór wynikowy - obiekt wyniku. Z niego pobiera się kolejne wiersze, np. funkcją mysqli_fetch_assoc() w pętli. Dla zapytań bez wyniku (jak INSERT) zwraca true, a przy błędzie false. Dlatego dla SELECT zwraca zbiór wynikowy.

Pytanie 34

Zaprezentowano poniżej obsługę

if (!isset($_COOKIE[$nazwa]))
  echo "nie ustawiono!";
else
  echo "ustawiono: " . $_COOKIE[$nazwa];
A. zmiennych tekstowych
B. bazy danych
C. ciasteczek
D. sesji
Zmiennych tekstowych nie obsługuje się za pomocą mechanizmów przedstawionych w kodzie. Zmienne tekstowe są najczęściej manipulowane za pomocą funkcji stringowych w językach programowania, takich jak konkatenacja, formatowanie czy parsowanie. Kod pokazuje użycie tablicy $_COOKIE, która jest specyficzna dla ciasteczek, a nie dla zmiennych tekstowych. Bazy danych z kolei wykorzystują zapytania SQL do przechowywania i pobierania danych. W kontekście kodu nie ma mowy o połączeniu z bazą danych ani operacjach CRUD, co wyklucza tę odpowiedź. Sesje w aplikacjach webowych są zazwyczaj obsługiwane za pomocą mechanizmu sesji PHP, gdzie dane są przechowywane na serwerze, a identyfikator sesji jest przesyłany za pomocą ciasteczek lub w URL. Kod nie pokazuje użycia $_SESSION, co jest typowe dla zarządzania sesjami. Częstym błędem jest mylenie ciasteczek z sesjami; ciasteczka są przechowywane na kliencie i mogą przetrwać zamknięcie przeglądarki, podczas gdy sesje są zazwyczaj przechowywane na serwerze i kończą się po zakończeniu sesji przeglądarki lub wylogowaniu użytkownika. Rozumienie różnic między tymi mechanizmami jest kluczowe dla tworzenia efektywnych i bezpiecznych aplikacji webowych.

Pytanie 35

Dla których imion klauzula LIKE jest prawdziwa?

SELECT imie FROM mieszkancy WHERE imie LIKE 'o_%_a';
A. Oktawia, Oktawian, Olga
B. Oksana, Oktawia, Olga
C. Oda, Oksana, Oktawia
D. Oksana, Ola, Olga
Wybrana odpowiedź nie jest prawidłowa. Przeanalizujmy dokładnie wzorzec użyty w klauzuli LIKE, aby zrozumieć, które imiona faktycznie spełniają podany warunek. Wzorzec 'o_%_a' składa się z pięciu elementów: litery „o" na początku, znaku podkreślenia oznaczającego dokładnie jeden dowolny znak, symbolu procentu reprezentującego zero lub więcej dowolnych znaków, kolejnego znaku podkreślenia (znów dokładnie jeden znak) oraz litery „a" na końcu. Z tej struktury wynikają trzy warunki, które musi spełnić prawidłowe imię: musi zaczynać się od litery „o", kończyć się na literę „a" oraz mieć co najmniej cztery znaki długości. Ten ostatni warunek jest kluczowy i często pomijany - dwa znaki podkreślenia wymuszają obecność minimum dwóch znaków pomiędzy pierwszą a ostatnią literą. Dlatego imiona takie jak „Ola" czy „Oda", mimo że zaczynają się na „o" i kończą na „a", są zbyt krótkie - mają tylko trzy znaki. Z kolei „Oktawian" odpada, ponieważ kończy się na literę „n", nie „a". Prawidłowa odpowiedź to Oksana, Oktawia i Olga - każde z nich ma odpowiednią długość i właściwe litery na początku oraz końcu.

Pytanie 36

Jaką formę przybierze data po wykonaniu poniższego kodu PHP?

<?php
echo date('l, dS F Y');
?>
A. Monday, 10th July 17
B. Monday, 10 July 2017
C. Monday, 10th July 2017
D. 10, Monday July 2017
W tym przykładzie funkcja date() w PHP przyjmuje ciąg znaków 'l dS F Y' jako parametr formatowania, co determinuje sposób wyświetlenia daty. Znak 'l' reprezentuje pełną nazwę dnia tygodnia, co w przypadku poniedziałku da 'Monday'. 'd' to dwucyfrowa reprezentacja dnia miesiąca, dodając 'S' uzyskujemy jego wersję z angielskim sufiksem porządkowym, np. '10th', co jest zgodne z odpowiedzią. 'F' reprezentuje pełną nazwę miesiąca, czyli 'July', a 'Y' to pełny rok, czyli '2017'. Kombinacja tych formatów pozwala na uzyskanie czytelnej i zgodnej ze standardami reprezentacji daty w języku angielskim, co jest często wykorzystywane w międzynarodowych projektach webowych. Takie formatowanie jest nie tylko intuicyjne dla użytkowników, ale także zgodne z dobrymi praktykami w zakresie czytelności i użyteczności w aplikacjach internetowych. PHP umożliwia elastyczne formatowanie dat, co jest bardzo przydatne w kontekście globalnych aplikacji wymagających różnych lokalizacji.

Pytanie 37

Skrypt na stronę WWW stworzony w języku PHP

A. jest przetwarzany w taki sam sposób jak JavaScript
B. jest wykonywany po stronie serwera
C. jest realizowany po stronie klienta
D. może działać bez wsparcia serwera WWW
Wielu użytkowników błędnie sądzi, że kod PHP jest przetwarzany w taki sam sposób, jak JavaScript. To nieprawda, ponieważ JavaScript jest językiem skryptowym, który działa po stronie klienta i jest wykonywany w przeglądarkach internetowych. W przeciwieństwie do tego, PHP jest językiem skryptowym działającym po stronie serwera. W rezultacie, kod PHP nie ma bezpośredniego dostępu do zasobów użytkownika, takich jak lokalny system plików czy urządzenia, co stanowi istotną różnicę w porównaniu do JavaScript. Także stwierdzenie, że PHP może być uruchomiony bez obsługi serwera WWW, jest mylące. PHP wymaga serwera, na którym będzie zainstalowany interpreter tego języka, co oznacza, że każda aplikacja PHP musi być hostowana na serwerze WWW, aby mogła być dostępna w Internecie. Warto również zwrócić uwagę na to, że wykonanie skryptu PHP nie jest widoczne dla użytkownika do momentu, gdy serwer nie przetworzy go i nie wyśle gotowej strony HTML do przeglądarki. Takie podejście wykonania po stronie serwera pozwala na lepszą ochronę danych i zarządzanie zasobami, co jest kluczowe w przypadku aplikacji internetowych, które muszą obsługiwać wiele równoległych żądań użytkowników.

Pytanie 38

W języku PHP, aby otworzyć już istniejący plik lektury.txt w trybie dodawania treści, tak aby wskaźnik pliku został umieszczony na końcu tego pliku należy zastosować instrukcję

A. fopen("lektury.txt", "a")
B. fopen("lektury.txt", "r")
C. fopen("lektury.txt", "w")
D. fopen("lektury.txt", "x")
W tym zadaniu kluczowe są dwa elementy: tryb otwarcia pliku oraz pozycja wskaźnika pliku. W PHP funkcja fopen() przyjmuje drugi parametr właśnie po to, żeby określić, co chcemy zrobić z plikiem: tylko czytać, tylko pisać, nadpisywać, dopisywać, tworzyć nowy itd. Pomyłki biorą się najczęściej z tego, że ktoś zna ogólne działanie funkcji, ale nie pamięta dokładnie znaczenia poszczególnych liter.

Tryb "r" oznacza otwarcie pliku tylko do odczytu. Wskaźnik pliku ustawiany jest na początku, a nie na końcu. W tym trybie nie wolno pisać do pliku – próba użycia fwrite() skończy się ostrzeżeniem lub błędem. To dobry wybór, gdy chcemy np. wczytać konfigurację lub treść pliku, ale zupełnie nie nadaje się do dopisywania nowych danych. Typowym błędem myślowym jest założenie, że skoro fopen otwiera plik, to zawsze można do niego pisać. Niestety, nie – tryb ma tutaj kluczowe znaczenie.

Tryb "w" otwiera plik do zapisu, ale przy tym kasuje jego dotychczasową zawartość (truncation). W praktyce oznacza to, że gdy użyjemy fopen("lektury.txt", "w"), cały wcześniejszy tekst zostanie usunięty, a wskaźnik pliku znajdzie się na początku pustego pliku. To jest bardzo ważne: "w" jest dobre, gdy chcemy stworzyć nową wersję pliku od zera, np. generowany raport, ale całkowicie sprzeczne z wymaganiem zadania, które mówi o „dodawaniu treści” do istniejącego pliku bez utraty danych.

Tryb "x" z kolei służy do tworzenia nowego pliku i zakończy się błędem, jeśli plik już istnieje. To mechanizm ochronny, używany często tam, gdzie nie chcemy przypadkiem nadpisać istniejącego pliku (np. przy generowaniu unikalnych plików). W kontekście pytania jest to odwrotność tego, co trzeba: my właśnie chcemy pracować z już istniejącym plikiem, a nie wymuszać jego nowość.

Moim zdaniem najczęstsza pułapka polega na myleniu „w” i „a”. Oba tryby umożliwiają zapis, ale tylko "a" gwarantuje, że wskaźnik ustawi się na końcu, a dane będą dopisywane, a nie nadpisywane. Dlatego, gdy w zadaniu pojawia się fraza „tryb dodawania treści” i „wskaźnik na końcu pliku”, praktycznie zawsze chodzi o tryb append, czyli właśnie "a".

Pytanie 39

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

A. Inwersja.
B. Progowanie.
C. Krzywe.
D. Barwienie.
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 40

Która metoda obiektu Math dla x = 2.8 zwróci 2?

A.
Math.ceil(x)
B.
Math.exp(x)
C.
Math.floor(x)
D.
Math.sqrt(x)
Metoda Math.floor() zaokrągla w DÓŁ do najbliższej liczby całkowitej, więc dla x = 2.8 zwróci 2. Dlatego wynik 2 daje Math.floor(x).