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: 12 maja 2026 14:19
  • Data zakończenia: 12 maja 2026 14:22

Egzamin niezdany

Wynik: 14/40 punktów (35,0%)

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

Sklep online używa tabeli faktury. W trakcie generowania faktury pole dataPlatnosci nie zawsze zostaje uzupełnione. Aby to skorygować, na zakończenie dnia trzeba wpisać bieżącą datę do rekordów, w których to pole nie jest wypełnione. Można to osiągnąć za pomocą kwerendy

A. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL;
B. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL;
C. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3;
D. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00';
Wybór innych opcji jest nieco problematyczny. Kwerenda, która ustawia dataPlatnosci na CURTIME() w wierszach, gdzie id = 3, nie jest zbyt sensowna, bo odnosi się tylko do jednego rekordu. Poza tym, CURTIME() zwraca czas, a nie datę, a w kontekście faktur to nie ma sensu, bo powinny mieć datę płatności, a nie tylko czas. Kolejna sprawa to aktualizacja dat w wierszach, gdzie dataPlatnosci IS NOT NULL, co prowadzi do utraty ważnych informacji. Tego typu podejście jest sprzeczne z zasadami ochrony danych i może narobić bałaganu przy audytach. I ostatnia opcja, która ustawia datę na '0000-00-00', to kompletna katastrofa. Takie coś wprowadza błędne dane, które mogą wywołać problemy później. Użycie '0000-00-00' jako znacznika braku daty jest do bani i może prowadzić do nieporozumień. Lepiej używać NULL, bo to standard w SQL. Wybierając złe opcje, nie tylko ograniczasz funkcjonalność, ale także łamiesz zasady dobrego zarządzania danymi.

Pytanie 2

Jakie z wymienionych par znaczników HTML działają w ten sam sposób na stronie internetowej, jeżeli żadne style CSS nie zostały określone?

A. <b> oraz <strong>
B. <b> oraz <big>
C. <meta> oraz <title>
D. <p> oraz <h2>
Wybierając inne pary znaczników, można napotkać na kilka powszechnych nieporozumień dotyczących ich funkcji i zastosowania. Znacznik <meta> i <title> są znaczącymi elementami dokumentu HTML, ale pełnią całkowicie różne role. <meta> służy do dostarczania metainformacji o stronie, takich jak opis, słowa kluczowe czy informacje dotyczące kodowania, co jest kluczowe dla SEO i prezentacji strony w wyszukiwarkach. Z kolei <title> definiuje tytuł strony, który pojawia się na karcie przeglądarki oraz w wynikach wyszukiwania. Obie te pary znaczników nie mają wizualnego wpływu na treść wyświetlaną użytkownikowi, co sprawia, że są trudne do porównania w kontekście wizualnym. Z kolei <p> i <h2> to elementy używane do strukturyzowania treści; <p> definiuje akapit, a <h2> jest nagłówkiem drugiego poziomu. Użycie tych znaczników wpływa na hierarchię treści oraz czytelność strony. Różnice te są kluczowe w tworzeniu dostępnych i zrozumiałych dokumentów HTML. Wreszcie, <b> i <big>, mimo że oba zmieniają wygląd tekstu, nie mają podobnych zastosowań semantycznych. <big> służy do zwiększenia rozmiaru tekstu, co niekoniecznie wskazuje na jego znaczenie. Zrozumienie tych różnic jest kluczowe dla właściwego stosowania HTML i tworzenia stron, które są zgodne z dobrymi praktykami oraz standardami W3C.

Pytanie 3

Który z czterech głównych kolorów w modelu barw CMYK jest

A. czarny
B. brązowy
C. zielony
D. pomarańczowy
Zielony, brązowy i pomarańczowy nie są podstawowymi kolorami modelu CMYK, co można wyjaśnić na podstawie zasad działania tego modelu barw. Zielony, będący kolorem wtórnym, powstaje z połączenia cyjanu i żółtego, co oznacza, że nie jest niezależnym kolorem w tym systemie. Pomarańczowy również jest kolorem wtórnym, tworzonym przez mieszanie czerwieni i żółtego, co sprawia, że brakuje mu statusu podstawowego koloru w kontekście druku. Brązowy natomiast jest kolorem, który powstaje z kombinacji różnych kolorów podstawowych, takich jak czerwony, żółty i czarny, co również wyklucza go z grona kolorów podstawowych. W modelu CMYK kluczowe jest zrozumienie, że kolory są tworzone poprzez subtractive mixing, co oznacza, że każdy dodany kolor absorbuje pewne długości fal świetlnych, co w efekcie zmienia postrzegany kolor. Z tego powodu, kolory takie jak zielony, brązowy i pomarańczowy, które są wynikiem mieszania, nie mogą być uznawane za podstawowe elementy tego modelu. W kontekście druku, poprawne zastosowanie kolorów podstawowych jest niezbędne dla uzyskania oczekiwanych rezultatów wizualnych, dlatego ważne jest, aby znać ich właściwości i sposób, w jaki wpływają na finalny efekt druku.

Pytanie 4

Przedstawione polecenie SQL nadaje użytkownikowi adam@localhost prawa:

GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost
A. manipulowania danymi bazy danych klienci.
B. zarządzania strukturą tabeli klienci.
C. zarządzania strukturą bazy danych klienci.
D. manipulowania danymi w tabeli klienci.
Prawidłowa odpowiedź wskazuje, że polecenie SQL 'GRANT SELECT, INSERT, UPDATE, DELETE ON klienci TO adam@localhost' nadaje użytkownikowi o nazwie 'adam' z hosta 'localhost' prawa do manipulowania danymi w tabeli 'klienci'. Te konkretne operacje, takie jak SELECT (wybieranie danych), INSERT (wstawianie nowych danych), UPDATE (aktualizowanie istniejących danych), DELETE (usuwanie danych) pozwalają użytkownikowi na pełne zarządzanie danymi, ale nie strukturą tabeli czy bazy danych. Jest to zgodne z zasadą minimalnych uprawnień, która nakazuje nadawać użytkownikom tylko te uprawnienia, które są im bezwzględnie potrzebne do wykonywania ich zadań. Należy pamiętać, że nadanie większych uprawnień, takich jak zarządzanie strukturą bazy danych, mogłoby stworzyć potencjalne zagrożenie dla bezpieczeństwa systemu.

Pytanie 5

Które z poniższych twierdzeń o zasadach programowania w PHP jest poprawne?

A. Deklaracja zmiennych odbywa się po słowie kluczowym var
B. W nazwach zmiennych nie rozróżnia się wielkości liter
C. Nazwy zmiennych zaczynają się od znaku !
D. Jest to język o słabej kontroli typów
PHP jest językiem o słabej kontroli typów, co oznacza, że nie wymaga określenia typu zmiennej podczas jej deklaracji. W praktyce, PHP automatycznie konwertuje typy danych w zależności od kontekstu, w którym są używane. Przykładowo, jeśli przypiszesz do zmiennej wartość liczbową, a następnie użyjesz jej w kontekście tekstowym, PHP przekształci tę liczbę na łańcuch znaków automatycznie. Dzięki temu programiści mogą skupić się na logice aplikacji, a nie na zarządzaniu typami danych. Ważne jest jednak, aby pamiętać, że ta elastyczność może prowadzić do błędów, jeśli nie będziemy ostrożni. Dlatego dobrym podejściem jest stosowanie jawnych konwersji typów, gdy jest to możliwe, co zwiększa czytelność kodu i ułatwia jego późniejsze utrzymanie. Używanie funkcji takich jak (int), (float) czy (string) w celu wymuszenia określonych typów danych przed operacjami arytmetycznymi lub logicznymi, to praktyka, która może zapobiec wielu problemom z nieoczekiwanym zachowaniem skryptów. Znalezienie równowagi między wygodą a bezpieczeństwem typów jest kluczowym elementem programowania w PHP.

Pytanie 6

W celu utworzenia różnicowej kopii zapasowej bazy danych na serwerze MSSQL, konieczne jest użycie klauzuli

A. FULL
B. DIFFERENTIAL
C. RESTORE
D. WITH FORMAT
Wybór klauzul 'WITH FORMAT', 'FULL' lub 'RESTORE' nie jest właściwy dla tworzenia różnicowych kopii bazy danych w MSSQL. Klauzula 'WITH FORMAT' służy do określenia, że nośnik, na którym zapisywana jest kopia, ma być sformatowany przed zapisem. Użycie tej klauzuli może prowadzić do utraty wcześniejszych danych na nośniku, co czyni ją nieodpowiednią dla tworzenia różnicowych kopii zapasowych. Klauzula 'FULL' odnosi się do tworzenia pełnych kopii zapasowych, które zawierają wszystkie dane w bazie w momencie wykonywania kopii. Choć pełne kopie są kluczowe w strategii backupowej, to jednak nie odpowiadają na potrzeby związane z tworzeniem różnicowych kopii, które są bardziej efektywne. Ostatnia z wymienionych opcji, klauzula 'RESTORE', nie jest używana do tworzenia kopii zapasowych w ogóle, lecz do przywracania bazy danych z wcześniej wykonanych kopii. Często popełnianym błędem jest mylenie procedur backupu i restore'u, co prowadzi do nieporozumień w procesie zarządzania danymi. Kluczowe w zarządzaniu bazą danych jest zrozumienie, że różnicowe kopie zapasowe mają na celu efektywne i oszczędne archiwizowanie zmian, w przeciwieństwie do pełnych kopii, które są bardziej czasochłonne i wymagają więcej zasobów.

Pytanie 7

Który efekt został zaprezentowany na filmie?

A. Zmiana jasności zdjęć.
B. Zwiększenie ostrości zdjęcia.
C. Przenikanie zdjęć.
D. Zmniejszenie kontrastu zdjęcia.
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 8

Funkcję Clean Project środowiska IDE stosuje się do

A. kompilowania projektu, gdy pliki źródłowe zostały zmienione.
B. usuwania całego projektu.
C. usuwania wyników kompilacji projektu.
D. debugowania skompilowanego i uruchomionego projektu.
Poprawnie – funkcja „Clean Project” w typowym IDE służy właśnie do usuwania wyników kompilacji, czyli wszystkich plików pośrednich i końcowych wygenerowanych podczas builda. Chodzi o katalogi typu bin, obj, target, build, różne *.class, *.o, *.exe tworzone automatycznie przez kompilator i linker. IDE po wywołaniu „Clean” nie rusza Twoich plików źródłowych, projektów, konfiguracji czy bibliotek w repozytorium – usuwa tylko artefakty budowania. Po co to się robi? Głównie po to, żeby wymusić tzw. „czystą kompilację” (clean build). Przydaje się to, gdy: zmieniłeś konfigurację projektu lub środowiska, dodałeś/zmieniłeś biblioteki, zmieniła się wersja kompilatora lub pluginów, a projekt zaczyna zachowywać się dziwnie, mimo że kod wygląda OK. Z mojego doświadczenia, w dużych projektach webowych (np. aplikacje w PHP z kompilowanym frontendem, czy Java/JavaScript z bundlerami) „Clean” pomaga pozbyć się starych, zcache’owanych plików, które potrafią powodować bardzo mylące błędy: IDE widzi jedno, a uruchamia się coś innego. Dobrą praktyką jest robienie pełnego „Clean & Build” przed wypuszczeniem wersji na produkcję albo przed puszczeniem testów integracyjnych, żeby mieć pewność, że wszystko zostało zbudowane od zera na podstawie aktualnego kodu. W wielu narzędziach CI/CD analogiczną rolę spełnia usuwanie katalogu build/ lub target/ przed kompilacją. W skrócie: Clean nie jest operacją destrukcyjną dla projektu, tylko porządkuje środowisko kompilacji i usuwa „śmieci” po poprzednich buildach, co wpisuje się w standardowe dobre praktyki pracy z kodem.

Pytanie 9

Jaką technologię zaleca się przy budowie witryn WWW, aby użytkownicy bez umiejętności programistycznych mogli samodzielnie wprowadzać zmiany w treści bez kodowania?

A. SSL
B. SEO
C. CMS
D. FTP
SEO, czyli optymalizacja dla wyszukiwarek, to temat, który dotyczy poprawy widoczności strony w wynikach wyszukiwania. Choć jest szalenie ważne w marketingu internetowym, to nie ma bezpośredniego związku z tym, jak zarządzać treścią na stronie. Użytkownicy nie mogą zmieniać treści za pomocą SEO; chodzi raczej o to, żeby to, co już jest, było bardziej przyjazne dla robotów wyszukiwarek. Trzeba pamiętać, że jeśli się skupiamy na SEO, ale nie mamy porządnego CMS-a, to aktualizacja treści może być trudna, co w dłuższym czasie źle wpłynie na pozycjonowanie. FTP, czyli protokół transferu plików, jest do przesyłania plików między komputerami a serwerami, ale żeby z niego korzystać, trzeba znać strukturę plików, więc dla kogoś bez technicznych umiejętności to nie jest rozwiązanie. SSL, czyli bezpieczne połączenia, to ważna rzecz, ale z zarządzaniem treścią nie ma za bardzo wspólnego. Użytkownicy mogą się pogubić, myśląc, że te technologie wystarczą do zarządzania treścią, co może wprowadzać w błąd i powodować, że zasoby internetu będą wykorzystywane nieefektywnie.

Pytanie 10

Który z typów relacji wymaga stworzenia tabeli pośredniej, która łączy klucze główne obu tabel?

A. n..m
B. 1..n
C. 1..1
D. n..1
Relacje 1..n, 1..1 oraz n..1 definiują różne scenariusze, które nie wymagają tworzenia tabeli pośredniej. W relacji 1..1, każdy rekord w jednej tabeli jest powiązany z dokładnie jednym rekordem w drugiej tabeli, co nie stwarza potrzeby tworzenia dodatkowej tabeli. Przykładowo, jeśli mamy tabelę 'Użytkownicy' oraz tabelę 'Profile', gdzie każdy użytkownik ma jeden unikalny profil, relacja 1..1 jest spełniona bez konieczności wprowadzania tabeli pośredniej. Z kolei w relacji 1..n, jeden rekord w tabeli nadrzędnej może być związany z wieloma rekordami w tabeli podrzędnej, ale nadal nie ma potrzeby tworzenia tabeli pośredniej. Przykładem może być relacja między tabelą 'Klienci' a 'Zamówienia', gdzie jeden klient może mieć wiele zamówień, ale każde zamówienie jest powiązane tylko z jednym klientem. W przypadku relacji n..1 sytuacja jest odwrotna, gdzie wiele rekordów w tabeli podrzędnej odnosi się do jednego rekordu w tabeli nadrzędnej, co również nie wymaga wprowadzenia tabeli pośredniej. Kluczowym błędem myślowym, prowadzącym do nieprawidłowych wniosków, jest mylenie relacji jeden do wielu z relacją wiele do wielu oraz założenie, że każda złożona relacja wymaga tabeli pośredniej. W rzeczywistości, odpowiednia struktura baz danych powinna być projektowana z uwzględnieniem charakterystyki i wymagań relacji między danymi.

Pytanie 11

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

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

Pytanie 12

Jakie jest zastosowanie programu debugger?

A. tłumaczenia kodu napisanego w języku wyższego poziomu na język maszynowy
B. badania kodu źródłowego w celu znalezienia błędów składniowych
C. analizy wykonywanego programu w celu lokalizacji błędów
D. interpretacji kodu w wirtualnej maszynie Java
Interpretacja kodu w wirtualnej maszynie Java odnosi się do działania maszyny wirtualnej, która wykonuje kod bajtowy stworzony przez kompilatory języków programowania, takich jak Java. Chociaż maszyna wirtualna jest istotna w procesie uruchamiania aplikacji Java, nie jest to funkcjonalność debuggera, który ma na celu inną rolę. Podobnie, analiza kodu źródłowego w celu odnalezienia błędów składniowych to proces, który wykonuje kompilator przed uruchomieniem programu. Debugger nie zajmuje się analizą składni, lecz koncentruje się na wykrywaniu błędów podczas wykonywania kodu. Tłumaczenie kodu zapisanego w języku wyższego poziomu na język maszynowy jest zadaniem kompilatora, a nie debuggera. Debugger działa na poziomie wykonania programu, a nie na poziomie jego kompilacji, co jest kluczowym aspektem odróżniającym te dwie funkcjonalności. Poprawne zrozumienie ról kompilatora i debuggera jest niezbędne, aby uniknąć mylnych wniosków dotyczących procesów tworzenia i uruchamiania oprogramowania.

Pytanie 13

W HTML 5 atrybut action jest wykorzystywany w znaczniku

A. <code>
B. <head>
C. <body>
D. <form>
Zarówno <code>, <body>, jak i <head> to znaczniki HTML, które mają swoiste zastosowanie, ale nie są związane z funkcją przesyłania danych formularzy. Znacznik <code> służy do prezentacji kodu źródłowego w formacie tekstowym, co nie ma żadnego związku z obsługą formularzy. Stosowanie go w kontekście atrybutu action jest błędne, ponieważ jego rola ogranicza się do formatowania tekstu, a nie do interakcji z danymi użytkownika. Znacznik <body> odpowiada za zawartość widoczną na stronie, ale nie definiuje, jak te dane powinny być przetwarzane po ich przesłaniu. Atrybut action nie ma zastosowania w tym kontekście, ponieważ nie obsługuje przesyłania danych, a jego brak spowoduje, że formularz nie będzie miał określonego celu, co może prowadzić do nieefektywnego lub nieprawidłowego działania strony. Natomiast znacznik <head> jest używany do definiowania metadanych dokumentu HTML, takich jak tytuł strony czy odwołania do arkuszy stylów oraz skryptów. Nie zawiera elementów interaktywnych i nie ma związku z przesyłaniem formularzy, co czyni jego wybór całkowicie nietrafionym w tej sytuacji. Kluczowym błędem w rozumieniu tego zagadnienia jest mylenie ról poszczególnych znaczników i ich funkcji w architekturze dokumentu HTML.

Pytanie 14

Używając polecenia BACKUP LOG w MS SQL Server, można

A. przeglądać komunikaty wygenerowane w trakcie tworzenia kopii
B. wykonać kopię zapasową dziennika transakcji
C. wykonać całkowitą kopię zapasową
D. połączyć się z kopią zapasową
Polecenie BACKUP LOG w MS SQL Server jest używane do wykonywania kopii bezpieczeństwa dziennika transakcyjnego bazy danych. Dziennik transakcyjny jest kluczowym komponentem, który rejestruje wszystkie zmiany w bazie danych, co pozwala na ich odtworzenie w przypadku awarii lub błędów. Regularne tworzenie kopii zapasowych dziennika transakcyjnego jest istotne, ponieważ umożliwia przywracanie bazy danych do stanu sprzed określonego zdarzenia. Na przykład, po wykonaniu BACKUP LOG można przywrócić bazę danych do stanu sprzed ostatniej transakcji, co może być bardzo przydatne w sytuacjach awaryjnych, takich jak przypadkowe usunięcie danych. Standardy takie jak RPO (Recovery Point Objective) i RTO (Recovery Time Objective) wskazują na znaczenie systematycznego tworzenia kopii zapasowych dzienników transakcyjnych w strategiach zarządzania danymi. Aby wykonać kopię zapasową dziennika transakcyjnego, używa się składni: BACKUP LOG [nazwa_bazy_danych] TO DISK = 'ścieżka_do_pliku.bak'.

Pytanie 15

W skrypcie PHP konieczne jest stworzenie cookie o nazwie owoce, które przyjmie wartość jabłko. Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP należy wykorzystać funkcję:

A. cookie("jabłko","owoce",3600);
B. setcookie("jabłko","owoce",time()+3600);
C. setcookie("owoce","jabłko",time()+3600);
D. cookie("owoce","jabłko",3600);
Wybór niewłaściwej funkcji do ustawiania ciasteczka w PHP może prowadzić do nieprawidłowego działania aplikacji. Przykładowo, odpowiedzi, które używają funkcji cookie zamiast setcookie, są błędne, ponieważ w standardzie PHP nie istnieje funkcja o nazwie cookie. Dodatkowo, każda z odpowiedzi, która nieprawidłowo ustawia argumenty funkcji setcookie, wprowadza w błąd co do właściwego wykorzystania tego narzędzia. Warto zauważyć, że w odpowiedzi setcookie("jabłko","owoce",time()+3600) nie tylko zamieniono nazwy i wartości, ale także ich kolejność, co skutkuje błędnym ustawieniem ciasteczka. W PHP, pierwszy argument powinien być nazwą ciasteczka, a drugi - jego wartością. Niepoprawne podejście do tematu ciasteczek może prowadzić do problemów z przechowywaniem danych użytkowników, co jest kluczowe w kontekście UX i bezpieczeństwa aplikacji. W praktyce, przy każdym użyciu funkcji setcookie należy zwracać uwagę na to, aby przestrzegać konwencji i standardów PHP, co zapewnia nie tylko poprawność działania kodu, ale także jego czytelność oraz ułatwia późniejsze jego utrzymanie. Typowe błędy, takie jak pomylenie argumentów, mogą skutkować błędną logiką w aplikacji lub nawet brakiem możliwości zapisywania ważnych informacji w ciasteczkach. Dlatego kluczowe jest zrozumienie działania funkcji setcookie oraz przestrzeganie dobrych praktyk programistycznych.

Pytanie 16

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. aside {float: left; }
B. nav { float: right; }
C. nav { float: right; } section { float: right; }
D. nav { float: left; } aside { float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 17

Jaką właściwość należy zastosować w stylu CSS, aby określić krój czcionki?

A. font-family
B. text-style
C. text-family
D. font-style
Odpowiedź 'font-family' jest poprawna, ponieważ w CSS to właśnie ta właściwość służy do określenia rodziny czcionek, które mają być używane w danym elemencie. Właściwość 'font-family' pozwala na zdefiniowanie podstawowych czcionek, a także alternatywnych, które mogą być użyte, jeśli preferowana czcionka nie jest dostępna. Przykładowo, zapisywanie: `font-family: Arial, sans-serif;` wskazuje, że przeglądarka powinna używać czcionki Arial, a w przypadku jej braku - czcionki z rodziny sans-serif. To podejście jest szczególnie ważne w kontekście tworzenia responsywnych i dostępnych interfejsów użytkownika, gdzie różne urządzenia mogą obsługiwać różne czcionki. Dodatkowo, zgodnie z wytycznymi W3C i zasadami projektowania, zaleca się określanie co najmniej dwóch czcionek: głównej i alternatywnej, aby zapewnić odpowiednią estetykę i czytelność tekstu. Znajomość właściwości 'font-family' jest kluczowa dla każdego, kto zajmuje się projektowaniem stron internetowych, pozwalając na lepsze dostosowanie wyglądu i funkcjonalności serwisów oraz aplikacji webowych.

Pytanie 18

Który z poniższych skryptów pokazuje bieżącą datę oraz czas w formacie 2024-04-14 13:45:19?

A. <?php echo date("Y-m-d G:i:s"); ?>
B. <?php date("Y-m-d G:i:s"); ?>
C. <?php echo date("Ymd Gis"); ?>
D. <?php date("Y-m-d”) + time("G:i:s"); ?>
Odpowiedź numer 4 jest poprawna, ponieważ używa funkcji echo do wyświetlenia wyniku funkcji date, która formatuje datę i czas w odpowiedni sposób. W tym przypadku użycie formatu Y-m-d G:i:s pozwala na wyświetlenie roku z czterema cyframi, miesiąca i dnia z dwoma cyframi oraz godziny w formacie 24-godzinnym bez wiodącego zera, a także minut i sekund z wiodącymi zerami. Funkcje PHP date i echo są standardem w języku PHP do pracy z datami i wyświetlaniem danych. Praktyczne zastosowanie tej funkcji jest szerokie, ponieważ umożliwia dynamiczne generowanie treści na stronach internetowych, takich jak wyświetlanie aktualnej daty w nagłówku strony czy w logach systemowych. Dobre praktyki sugerują, aby zawsze uwzględniać strefę czasową przy pracy z datami, co można osiągnąć za pomocą funkcji date_default_timezone_set. Dzięki temu kod będzie niezależny od ustawień serwera i zawsze dostarczał spójne wyniki. Warto również zaznaczyć, że manipulacje na datach i czasie są kluczowe w wielu aplikacjach, od rezerwacji po analizy czasu działań użytkowników.

Pytanie 19

Która z poniżej wymienionych zasad nie przyczyni się do poprawy czytelności kodu?

A. Kod powinien być napisany bez wcięć i nadmiarowych enterów
B. Nazwy zmiennych muszą odzwierciedlać ich funkcję
C. Trzeba dodawać komentarze w trudniejszych fragmentach kodu
D. W każdej linii kodu powinna znaleźć się tylko jedna komenda
Wszystkie informacje zawarte w nietrafnych odpowiedziach błędnie przedstawiają zasady dobrej praktyki programowania, które są kluczowe dla zwiększenia czytelności kodu. Istnienie tylko jednej instrukcji w każdej linii kodu jest zasady, która nie tylko nie jest uniwersalna, ale może prowadzić do nadmiernego rozdrobnienia logiki programu, utrudniając jego analizę. Z kolei użycie zrozumiałych nazw zmiennych jest istotne, ponieważ pozwala innym programistom zrozumieć, co dana zmienna reprezentuje. Przykładowo, nazwa "liczbaStudentów" jest o wiele bardziej informacyjna niż "x". Ponadto, wprowadzenie komentarzy w trudnych częściach kodu nie tylko pomaga w wyjaśnieniu skomplikowanych zagadnień, ale również pełni rolę dokumentacji, co jest niezwykle ważne w dłuższej perspektywie czasowej, zwłaszcza w projektach zespołowych. Przykładem mogą być fragmenty kodu, gdzie skomplikowane algorytmy wymagają dodatkowych wyjaśnień. Komentarze ułatwiają innym zrozumienie myśli programisty. W związku z tym, ignorowanie zasad dotyczących wcięć, zbędnych enterów oraz używania komentarzy prowadzi do kodu, który jest trudny do zrozumienia, co w ostateczności może skutkować błędami w implementacji oraz dłuższym czasem potrzebnym na debugowanie.

Pytanie 20

W HTML umieszczono formularz. Jakie skutki działania tego kodu zostaną pokazane przez przeglądarkę, jeśli użytkownik w drugim polu wprowadzi wartość "ala ma kota"?

Ilustracja do pytania
A. Efekt 4
B. Efekt 1
C. Efekt 3
D. Efekt 2
Efekt 1 nie jest poprawny, ponieważ użycie checkboxów zamiast rozwijanej listy nie odpowiada kodowi HTML gdzie zastosowano element select. Checkboxy pozwalają na wybór wielu opcji co nie jest zgodne z intencją kodu który pozwala na wybór tylko jednej z kilku opcji. Efekt 3 również jest niepoprawny gdyż prezentuje pole tekstowe wewnątrz którego widoczne są dane wpisane przez użytkownika jako tekst jawny. Kod HTML używa pola typu password które służy do maskowania wpisywanego tekstu. Efekt 4 przedstawia użycie przycisków radiowych które podobnie jak checkboxy pozwalają na wybór jednej opcji ale są prezentowane w formie przycisków zamiast listy rozwijanej. Kod HTML nie zawiera jednak elementu input type=radio więc to podejście również nie jest zgodne z kodem. Błędne rozumienie funkcji poszczególnych elementów formularzy HTML może prowadzić do niepoprawnej interpretacji ich działania dlatego istotne jest aby rozumieć zastosowanie i różnice między nimi co pozwala na efektywne projektowanie i wdrażanie formularzy internetowych zgodnych z standardami sieciowymi.

Pytanie 21

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w przedziale (0, 100), a wartość zmiennej b jest większa od zera. Jak można poprawnie zapisać taki warunek?

A. if (a > 0 || a < 100 11 b < 0)
B. if ((a > 0 11 a < 100) && b > 0)
C. if ((a > 0 && a < 100) 11 b < 0)
D. if (a > 0 && a < 100 && b > 0)
Odpowiedzi, które nie spełniają wymogów pytania, zawierają różne błędy logiczne i syntaktyczne, które mogą prowadzić do nieporozumień w kodzie. W pierwszej opcji użyto operatora '11', co jest błędem, ponieważ nie jest to poprawny operator w JavaScript. Prawidłowy operator to '&&', który łączy warunki logiczne. W przypadku drugiej opcji zastosowano operator '||', co oznacza logiczne 'lub', co jest nieodpowiednie, gdyż wymaga spełnienia przynajmniej jednego z warunków, co nie jest zgodne z wymaganiem pytania. Dodatkowo, warunek a < 100 powinien być połączony z a > 0 w sposób, który jednoznacznie wskazuje na przedział wartości, co nie ma miejsca w tym zapisie. W kolejnej odpowiedzi, użycie operatora '11' również jest niepoprawne, co świadczy o nieznajomości podstawowych zasad składni języka JavaScript oraz błędnym zrozumieniu operatorów logicznych. Tego typu błędy często wynikają z ustalonych nawyków programistycznych, które nie uwzględniają specyfiki języka, co prowadzi do nieprawidłowych wniosków. Aby unikać takich pomyłek, warto regularnie przeglądać dokumentację oraz praktykować pisanie kodu z zachowaniem wytycznych dotyczących standardów i dobrych praktyk programowania.

Pytanie 22

W pokazanym fragmencie zapytania w języku SQL, polecenie SELECT ma na celu uzyskanie wyników z komendy SELECT COUNT(wartosc) FROM....?

A. średnią wartości w kolumnie wartosc
B. sumę wartości w kolumnie wartosc
C. liczbę rekordów
D. średnią wartości w tabeli
W kontekście zapytania SQL, komenda SELECT COUNT(wartosc) ma na celu zwrócenie liczby wierszy w danej tabeli, które spełniają określone kryteria. Funkcja COUNT jest jedną z agregujących funkcji zapytań SQL, która zlicza liczbę niepustych wartości w kolumnie. Jeżeli argumentem funkcji jest konkretna kolumna, to zostaną zliczone tylko te wiersze, w których ta kolumna zawiera wartości, natomiast jeżeli użyjemy COUNT(*) bez podawania kolumny, zliczymy wszystkie wiersze tabeli, niezależnie od tego, czy kolumny zawierają wartości. Przykład praktyczny: jeśli mamy tabelę 'Zamówienia' i chcemy zliczyć liczbę dokonanych zamówień, można użyć zapytania SELECT COUNT(*) FROM Zamówienia; co zwróci całkowitą liczbę zamówień w tabeli. Istotne jest, aby zrozumieć, że COUNT zwraca liczbę wierszy, a nie sumę, średnią lub inne statystyki. W standardzie SQL nie ma specyfikacji, która by zmieniała tę funkcjonalność, co czyni ją uniwersalną w różnych bazach danych, takich jak MySQL, PostgreSQL, czy SQL Server.

Pytanie 23

W jakiej technologii nie zachodzi możliwość przetwarzania danych wprowadzanych przez użytkowników na stronach internetowych?

A. PHP
B. AJAX
C. CSS
D. JavaScript
AJAX, PHP i JavaScript to języki oraz technologie, które umożliwiają przetwarzanie danych użytkownika wprowadzanych na stronach internetowych. AJAX (Asynchronous JavaScript and XML) pozwala na asynchroniczną komunikację z serwerem, co oznacza, że użytkownik może przesyłać dane, np. z formularza, bez konieczności przeładowania całej strony. Dzięki temu doświadczenie użytkownika jest bardziej płynne i interaktywne. PHP to język skryptowy po stronie serwera, który jest często używany do przetwarzania danych, takich jak zapisywanie informacji do bazy danych czy generowanie dynamicznych treści na stronie. Umożliwia on również walidację danych przed ich przesłaniem do serwera. JavaScript, z kolei, działa po stronie klienta i może reagować na interakcje użytkownika, takie jak kliknięcia, zmiany w polach formularzy czy nawigacja po stronie, pozwalając na manipulację danymi w czasie rzeczywistym. Typowym błędem myślowym jest myślenie, że CSS może pełnić funkcje, które są zarezerwowane dla języków programowania. Użytkownicy często mylą rolę CSS jako narzędzia do interakcji, podczas gdy w rzeczywistości jest on jedynie odpowiedzialny za prezentację. Uzupełniając CSS o JavaScript czy PHP, można zbudować kompletną, interaktywną aplikację webową, która efektywnie przetwarza dane użytkowników.

Pytanie 24

Zakładając, że tablica $tab zawiera liczby naturalne, co program wyświetli?

$liczba = $tab[0];
foreach ($tab as $element)
{
  if ($element > $liczba)
    $liczba = $element;
}
echo $liczba;
A. najmniejszy element tablicy
B. elementy, które przewyższają zmienną $liczba
C. element tablicy o wartości $tab[0]
D. największy element tablicy
Niepoprawne odpowiedzi wynikają z nieporozumień dotyczących działania pętli iteracyjnej oraz logiki porównywania i aktualizowania wartości. Propozycja wyboru najmniejszego elementu tablicy jest błędna, ponieważ w programie brakuje mechanizmu do aktualizacji zmiennej $liczba na mniejszą wartość, co jest kluczowym wymogiem w tym kontekście. Pętla foreach z warunkiem if sprawia, że zmienna $liczba zwiększa swoją wartość tylko wtedy, gdy znajdzie się element większy od aktualnie przechowywanej wartości, eliminując tym samym możliwość identyfikacji najmniejszego elementu. Z kolei opcja dotycząca wypisania elementów większych od zmiennej $liczba również jest nietrafiona, ponieważ program nie zawiera żadnej instrukcji wypisującej takie elementy na ekran, a jedynie aktualizuje zmienną w celu znalezienia największej wartości. Taka funkcjonalność wymagałaby dodatkowej logiki, która przechowywałaby i obsługiwała wiele większych elementów, co nie jest realizowane w obecnym kodzie. Wreszcie, pomysł, że program wypisuje element równy $tab[0], również nie jest poprawny. Chociaż zmienna $liczba jest inicjalizowana wartością $tab[0], to jednak ulega ona zmianom w trakcie iteracji przez tablicę, jeśli znajdzie się większy element, a więc w większości przypadków nie kończy z wartością początkową. Zrozumienie tych mechanizmów jest kluczowe w projektowaniu efektywnego kodu i unikaniu nieporozumień w implementacji algorytmów operujących na zbiorach danych.

Pytanie 25

W przedstawionej na rysunku relacji pole AutorID znajdujące się w tabeli ksiazki jest kluczem

Ilustracja do pytania
A. sztucznym.
B. kandydującym.
C. podstawowym.
D. obcym.
Pole AutorID w tabeli ksiazki jest klasycznym przykładem klucza obcego (foreign key) w relacyjnej bazie danych. Odwołuje się ono do pola IDAutor w tabeli autorzy, które jest kluczem podstawowym tej tabeli. Dzięki temu każda książka jest logicznie powiązana z konkretnym autorem, a baza danych może pilnować spójności referencyjnej. Innymi słowy: nie da się (a przynajmniej nie powinno się dać, jeśli relacje są poprawnie zdefiniowane) wstawić do ksiazki wartości AutorID, która nie istnieje w tabeli autorzy. W praktyce, w SQL definiuje się to np. tak: `AutorID INT CONSTRAINT FK_Ksiazki_Autorzy FOREIGN KEY REFERENCES autorzy(IDAutor)`. Moim zdaniem to jedno z najważniejszych pojęć w projektowaniu baz – bez kluczy obcych relacje między tabelami byłyby tylko „umowne”, a nie wymuszane przez silnik bazy. Klucz obcy zawsze wskazuje na klucz kandydujący, najczęściej na klucz podstawowy innej tabeli. Dzięki temu można łatwo wykonywać złączenia (JOIN): np. `SELECT Tytul, Imie, Nazwisko FROM ksiazki JOIN autorzy ON ksiazki.AutorID = autorzy.IDAutor;`. To jest dokładnie ten przypadek z rysunku: wiele książek może mieć tego samego autora, więc między autorzy a ksiazki mamy relację jeden‑do‑wielu, a pole AutorID jest po stronie „wiele” i pełni rolę klucza obcego. Dobre praktyki mówią też, żeby nazwy kluczy obcych jasno wskazywały, do czego się odnoszą (np. AutorID, Autor_Id), co tu również jest sensownie zrobione. W realnych systemach (biblioteki, księgarnie internetowe, systemy wydawnicze) dokładnie tak modeluje się powiązanie książka–autor: ID autora jako klucz podstawowy w tabeli autorzy i to samo ID jako klucz obcy w tabeli ksiazki.

Pytanie 26

Jaki będzie efekt wykonania poniższego kodu JavaScript?

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Pokazanie okna dialogowego z napisem akapit
B. Skasowanie akapitu ze strony
C. Wstawienie akapitu na szczycie strony
D. Dodanie akapitu na końcu strony
Zrozumienie dlaczego niektóre odpowiedzi są błędne wymaga analizy działania metod JavaScriptowych w kontekście modelu DOM. Pierwsza odpowiedź wskazuje na usunięcie akapitu ze strony co nie jest zgodne z działaniem zaprezentowanego kodu ponieważ metoda document.createElement tworzy nowy element a nie usuwa istniejący. Usunięcie elementu zamiast tego można osiągnąć za pomocą metody removeChild która wymaga wskazania konkretnego elementu do usunięcia. Druga odpowiedź sugeruje dodanie akapitu na początku strony co również jest niepoprawne. Metoda appendChild zawsze dodaje element na koniec wskazanego rodzica czyli w tym przypadku dokumentu body. Aby dodać element na początku strony należałoby użyć metody insertBefore w połączeniu z odwołaniem do pierwszego dziecka body. Trzecia odpowiedź mówi o wyświetleniu okna dialogowego co jest błędem konceptualnym gdyż omawiany kod nie zawiera żadnej funkcji wyświetlającej alert czy prompt. Tworzenie i manipulowanie elementami DOM nie wpływa bezpośrednio na interakcje dialogowe z użytkownikiem. Aby wyświetlić okno dialogowe używa się zazwyczaj metod takich jak alert confirm czy prompt co nie ma miejsca w podanym fragmencie kodu. Analizując te odpowiedzi zauważamy że błędne rozumowanie może wynikać z mylenia funkcji manipulujących DOM z elementami interfejsu użytkownika co jest częstym błędem wśród początkujących programistów. Znajomość specyfiki oraz kontekstu użycia poszczególnych metod jest kluczowa dla poprawnego kodowania w JavaScript i efektywnego zarządzania treścią na stronie internetowej.

Pytanie 27

W języku SQL aby zmodyfikować dane w tabeli, należy posłużyć się poleceniem

A. SELECT
B. CREATE
C. JOIN
D. UPDATE
Polecenie UPDATE to w SQL podstawowe narzędzie do modyfikowania istniejących danych w tabelach. W praktyce oznacza to, że jeśli chcesz np. zmienić wartość jakiegoś pola dla wybranego rekordu, to właśnie tego polecenia używasz. Przykład z życia: masz tabelę pracowników i ktoś zmienił numer telefonu – nie robisz nowego wpisu, nie tworzysz nowej tabeli, tylko aktualizujesz jedną kolumnę w odpowiednim wierszu. Składnia tego polecenia jest dość intuicyjna: UPDATE nazwa_tabeli SET kolumna=nowa_wartość WHERE warunek. Bardzo ważne jest stosowanie klauzuli WHERE, bo inaczej możesz przez przypadek podmienić dane we wszystkich wierszach tabeli, co niestety zdarza się nawet doświadczonym programistom, zwłaszcza przy pracy na środowiskach testowych. Warto wiedzieć, że SQL-92 (czyli jeden z najważniejszych standardów języka SQL) dokładnie opisuje sposób działania tego polecenia. Często w praktyce spotyka się też połączenie UPDATE z transakcjami, żeby mieć możliwość cofnięcia zmian, gdyby coś poszło nie tak. Moim zdaniem umiejętne stosowanie UPDATE to podstawa pracy z bazami danych – prawie każdy większy system korzysta z tego polecenia na co dzień. Dobrze też pamiętać o bezpieczeństwie i zawsze sprawdzać, czy warunek w WHERE jest poprawny, żeby nie napsuć w danych. Praktyka czyni mistrza i z czasem takie operacje wchodzą w krew.

Pytanie 28

O obiekcie przedstawionym w JavaScript można powiedzieć, że posiada

var obiekt1 = {
    x: 0,
    y: 0,
    wsp: function() { [...] }
}
A. dwoma metodami oraz jedną właściwością
B. trzema właściwościami
C. dwoma właściwościami oraz jedną metodą
D. trzema metodami
Analizując strukturę obiektów w języku JavaScript, często spotykamy się z terminami właściwości i metody. Właściwości to elementy obiektu przechowujące dane, natomiast metody to funkcje przypisane jako wartości właściwości, które pozwalają na wykonywanie operacji na obiekcie. Błędne zrozumienie tych pojęć może prowadzić do niepoprawnej interpretacji struktury obiektu. Jeśli zakładamy, że obiekt ma dwie metody i jedną właściwość, oznaczałoby to, że w obiekcie znajdziemy dwie funkcje i jeden element przechowujący dane, co nie odpowiada rzeczywistości przedstawionej na obrazku. Podobnie, stwierdzenie, że obiekt zawiera trzy właściwości, ignoruje obecność funkcji, która pełni rolę metody. Z kolei twierdzenie, że obiekt ma trzy metody, oznaczałoby całkowity brak właściwości przechowujących dane, co jest sprzeczne z danymi stanowymi obiektu. Takie nieporozumienia wynikają często z braku zrozumienia struktury i natury obiektów w języku JavaScript. Dla poprawnego programowania kluczowe jest rozróżnienie tych elementów i poprawne przypisywanie ich ról w obiekcie, co prowadzi do bardziej wydajnego i przejrzystego kodu. Dobre praktyki programistyczne zalecają dokładne analizowanie wymagań i struktury danych przy projektowaniu obiektów, co pozwala na uniknięcie takich błędów w przyszłości i poprawia jakość aplikacji.

Pytanie 29

Program napisany w języku PHP ma na celu wyliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6. Warunek doboru ocen w pętli obliczającej średnią powinien zawierać wyrażenie logiczne

A. $ocena >= 2 and $ocena <= 6
B. $ocena >= 2 or $ocena <= 6
C. $ocena > 2 and $ocena < 6
D. $ocena > 2 or $ocena < 6
Analizując pozostałe odpowiedzi, zauważamy, że każda z nich zawiera błędne założenia dotyczące zakresu ocen, jakie należy uwzględnić w obliczeniach. Opcje zawierające operator 'or' wprowadzają zamieszanie, ponieważ nie dostarczają odpowiednich ograniczeń dla ocen. Na przykład, warunek '$ocena > 2 or $ocena < 6' pozwala na przyjęcie ocen poniżej 2 oraz powyżej 6, co jest sprzeczne z założeniem, że analiza ma dotyczyć tylko ocen w przedziale od 2 do 6. Takie podejście może prowadzić do sytuacji, w której średnie obliczenia będą oparte na błędnych danych, co z kolei wpłynie negatywnie na ocenę ucznia. Podobnie, warunek '$ocena >= 2 or $ocena <= 6' również nie jest odpowiedni, ponieważ również nie koncentruje się na wąskim zakresie wartości, co w rezultacie skutkuje włączeniem ocen niepożądanych. W programowaniu istotne jest, aby stosować jasne i precyzyjne warunki, które nie będą prowadzić do niejednoznaczności. Stosowanie błędnych operatorów logicznych prowadzi do logicznych pułapek, w których programista myśli, że jego kod działa zgodnie z zamierzeniem, podczas gdy w rzeczywistości generuje on niepoprawne wyniki. Przykładowo, jeśli do analizy zostaną uwzględnione oceny spoza dozwolonego zakresu, średnia ocen może być zawyżona lub zaniżona, co jest niezgodne z celem analizy. Dlatego ważne jest, aby w każdej iteracji korzystać z precyzyjnych warunków, które ograniczają wartości do odpowiedniego zakresu.

Pytanie 30

Podaj zapis w języku JavaScript, który sprawdzi, czy spełniony jest przynajmniej jeden z następujących warunków: 1) dowolna liczba naturalna a jest liczbą trzycyfrową, 2) dowolna liczba całkowita b jest liczbą ujemną?

A. ((a>99) && (a<1000)) || (b<0)
B. ((a>99) || (a<1000)) && (b<0)
C. ((a>99) && (a<1000)) && (b<0)
D. ((a>99) || (a<1000)) || (b<0)
W analizowanych odpowiedziach pojawia się kilka koncepcji, które prowadzą do niepoprawnych wyników. Wyrażenie ((a>99) && (a<1000)) && (b<0) wymaga, aby obie części były spełnione jednocześnie, co jest sprzeczne z założeniem, że wystarczy spełnienie jednego z warunków. To podejście zakłada, że zarówno liczba a musi być trzycyfrowa, jak i liczba b musi być ujemna, co jest zbyt restrykcyjne i nie odzwierciedla wymaganego warunku. Kolejne błędne podejście to ((a>99) || (a<1000)) && (b<0), które również jest niepoprawne, ponieważ pierwsza część tego wyrażenia jest błędnie skonstruowana - naturalna liczba a może być dowolną liczbą, a więc nie ma sensu porównywać jej do wartości mniejszej od 1000, co zawsze będzie prawdziwe dla liczby a większej od 99. Ostatnia z analizowanych opcji - ((a>99) || (a<1000)) || (b<0) - również zawiera błąd, ponieważ pierwsza część implikuje, że każda liczba a, która jest większa niż 99, jest spełniona, co nie jest zgodne z definicją liczby trzycyfrowej. W związku z tym, najczęstsze błędy polegają na nieprawidłowym zastosowaniu operatorów logicznych oraz nieścisłościach w definiowaniu zakresu liczb, co prowadzi do niespójności w logice warunków. Kluczowe jest, aby dokładnie zrozumieć, co każdy fragment kodu ma na celu, aby uniknąć takich pomyłek.

Pytanie 31

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
B. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
C. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
D. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
W analizowanych odpowiedziach można zauważyć kilka istotnych błędów składniowych, które uniemożliwiają prawidłowe zdefiniowanie tablicy asocjacyjnej w PHP. Pierwsza opcja, $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);, myli operator przypisania z operatorem asocjacyjnym. Użycie znaku = zamiast => jest kluczowe, ponieważ PHP wymaga użycia operatora => do parowania kluczy z wartościami. W drugiej opcji, $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);, zastosowano niepoprawną składnię tablicy, gdzie zewnętrzne nawiasy kwadratowe powinny być zastąpione funkcją array() lub nawiasami klamrowymi, a także brakuje kluczy. Trzecia odpowiedź, $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});, również jest niepoprawna, ponieważ użyto nawiasów klamrowych, które nie są stosowane w definicji tablic asocjacyjnych w PHP. Nawiasy klamrowe mogą być używane do tworzenia tablic wielowymiarowych, ale w tym kontekście są nieodpowiednie. Typowe błędy myślowe, które prowadzą do takich pomyłek, to mylenie różnych typów struktur danych oraz niewłaściwe zrozumienie zasad parowania kluczy i wartości, co w rezultacie skutkuje błędami w składni i logice kodu.

Pytanie 32

Kanał alfa jest wykorzystywany do określenia

A. wybranego fragmentu obiektu graficznego
B. jasności oraz kontrastu kolorów
C. podstawowych właściwości obiektu graficznego
D. przezroczystości obiektu graficznego
Kanał alfa nie zajmuje się jasnością i kontrastem kolorów, te sprawy są związane z innymi systemami kolorów, jak HSV czy HSL. Jasność to w sumie intensywność koloru, a kontrast to różnica między jasnymi a ciemnymi miejscami w obrazie. Kanał alfa koncentruje się tylko na przezroczystości, więc to nie dotyczy tych kwestii. Tak samo, zaznaczenie jakiejś części obiektu graficznego nie jest związane z kanałem alfa; to po prostu technika w programach graficznych do wyboru konkretnych obszarów, która nie ma nic wspólnego z przezroczystością. W końcu, podstawowe właściwości obiektu graficznego, takie jak jego wymiary, położenie czy kolor, są określane przez inne atrybuty, a nie kanał alfa. Dlatego zrozumienie, jak działa kanał alfa w grafice komputerowej, jest istotne, jeśli chcesz sprawnie wykorzystać technologię graficzną i tworzyć zaawansowane efekty wizualne.

Pytanie 33

Hermetyzacja to zasada programowania obiektowego, która mówi, że

A. klasy/obiekty mogą definiować metody wirtualne, które są realizowane w klasach/obiektach pochodnych
B. pola i metody dostępne tylko dla konkretnej klasy/obiektu mają zasięg ograniczony do private lub protected
C. klasy/obiekty mogą dzielić się funkcjonalnością
D. typy pól w klasach/obiektach mogą być zmieniane w sposób dynamiczny w zależności od przypisywanych danych
Odpowiedzi sugerujące różne interpretacje hermetyzacji w programowaniu obiektowym zakładają błędne zrozumienie tej zasady. Wskazanie, że klasy mogą mieć metody wirtualne, które są implementowane w pochodnych klasach, odnosi się do polimorfizmu, a nie hermetyzacji. Polimorfizm pozwala na zdefiniowanie metod w klasie bazowej, które mogą być nadpisywane w klasach pochodnych, ale nie ma związku z ograniczeniem dostępu do danych. Z kolei twierdzenie, że typy pól w klasach mogą być dynamicznie zmieniane, wskazuje na nieporozumienie dotyczące typów statycznych i dynamicznych w kontekście języków programowania, gdzie typy pól są zazwyczaj ustalane w momencie kompilacji. Ponadto, stwierdzenie, że klasy mogą współdzielić ze sobą funkcjonalność, odnosi się do dziedziczenia oraz kompozycji, które są osobnymi konceptami w programowaniu obiektowym. W rzeczywistości, hermetyzacja jest bardziej związana z ochroną danych i zapewnieniem, że wewnętrzna logika klasy pozostaje nietknięta przez nieautoryzowane modyfikacje. Te nieporozumienia mogą prowadzić do istotnych problemów w architekturze aplikacji, gdzie niezrozumienie hermetyzacji skutkuje nadmiernym uzależnieniem od zewnętrznych interakcji oraz zwiększoną złożonością kodu. Zrozumienie hermetyzacji jest kluczowe, aby tworzyć kod, który jest nie tylko bardziej odporny na błędy, ale również łatwiejszy do utrzymania i rozwijania.

Pytanie 34

Graficzny interfejs użytkownika, który umożliwia wprowadzanie danych do bazy, to

A. raport
B. kwerenda
C. encja
D. formularz
Raport, kwerenda i encja to pojęcia, które na pierwszy rzut oka mogą wydawać się związane z wprowadzaniem danych, jednak nie pełnią one roli graficznego interfejsu użytkownika umożliwiającego taką interakcję. Raport to narzędzie do prezentacji danych, najczęściej w formie zestawień i wykresów, które czerpie informacje z bazy danych, ale nie pozwala na ich edycję czy wprowadzanie nowych danych. To narzędzie, które skupia się na analizie i wizualizacji informacji, a nie na ich zbieraniu. Kwerenda to zapytanie do bazy danych, które umożliwia wydobycie określonych informacji, ale nie jest formą interakcji z użytkownikiem w sensie wprowadzania danych. Użytkownik, korzystając z kwerendy, nie wprowadza danych bezpośrednio, lecz prosi system o zwrócenie konkretnej porcji informacji zgodnie z ustalonymi kryteriami. Encja natomiast odnosi się do obiektów w modelu danych, które przechowują informacje w bazie danych, ale nie jest to obiekt interfejsu użytkownika. Encje są bardziej abstrakcyjnym pojęciem, związanym z przechowywaniem danych w bazach danych, a nie z ich wprowadzaniem. Powodzenie w korzystaniu z baz danych wymaga zrozumienia tych różnic oraz znajomości odpowiednich narzędzi, które rzeczywiście umożliwiają wprowadzanie danych, a formularze są kluczowym elementem takich interakcji.

Pytanie 35

W języku PHP zapisano fragment kodu. Plik cookie utworzony przy pomocy tego polecenia

setcookie("osoba", "Anna Kowalska", time()+(3600*24));
A. będzie przechowywany na serwerze przez 24 godziny
B. zostanie usunięty po jednej godzinie od momentu jego utworzenia
C. zostanie usunięty po 24 godzinach od jego stworzenia
D. będzie przechowywany na serwerze przez jedną godzinę
W kontekście używania plików cookie w PHP ważne jest zrozumienie różnicy pomiędzy przechowywaniem danych na serwerze a w przeglądarce użytkownika. Pliki cookie są przechowywane po stronie klienta a nie na serwerze co oznacza że odpowiedź o przechowywaniu cookie na serwerze jest błędna. Plik cookie wygasa po określonym czasie od jego ustawienia co jest ustalane poprzez czas wygaśnięcia podany jako trzeci parametr funkcji setcookie. W analizowanym fragmencie kodu czas wygaśnięcia jest ustawiony poprzez dodanie liczby sekund odpowiadającej jednemu dniu do bieżącego czasu co oznacza że plik cookie zostanie usunięty po upływie jednego dnia a nie jednej godziny. Jednym z typowych błędów jest mylenie jednostek czasu co prowadzi do niepoprawnego zrozumienia działania czasów wygaśnięcia. Ponadto błędne jest przekonanie że cookie może być przechowywane na serwerze co jest fundamentalnym nieporozumieniem dotyczącym natury plików cookie w HTTP. Pliki cookie są częścią mechanizmu zarządzania sesjami i stanem w aplikacjach webowych co ma kluczowe znaczenie dla personalizacji i utrzymania sesji użytkownika. Poprawne zrozumienie jak działa mechanizm cookie oraz gdzie są przechowywane pomaga w bezpiecznym i efektywnym projektowaniu aplikacji internetowych zgodnie z dobrymi praktykami w zakresie zarządzania sesjami i danymi użytkowników.

Pytanie 36

Który z poniższych formatów nie umożliwia zapisu plików animowanych?

A. ACE
B. SVG
C. GIF
D. SWF
GIF, SWF i SVG to popularne formaty, które umożliwiają przechowywanie animacji. GIF, czyli Graphics Interchange Format, od lat jest standardem w sieci do tworzenia prostych animacji. Dzięki możliwości zapisywania sekwencji obrazów w jednym pliku, GIF umożliwia tworzenie krótkich klipów animowanych, które są powszechnie wykorzystywane w mediach społecznościowych, takich jak Twitter czy Facebook. Format ten obsługuje do 256 kolorów z palety, co sprawia, że jest idealny do prostych animacji, ale mniej skuteczny w przypadku bardziej złożonych obrazów kolorowych. SWF, lub Shockwave Flash, jest innym formatem, który został zaprojektowany przez firmę Adobe do tworzenia interaktywnych aplikacji i animacji w sieci. Umożliwia on osadzanie dźwięku, wideo oraz zaawansowane animacje, co czyni go bardzo wszechstronnym narzędziem dla twórców treści internetowych. SVG, z angielskiego Scalable Vector Graphics, to format oparty na XML, który obsługuje grafikę wektorową oraz animacje. Dzięki zastosowaniu technologii HTML5, SVG pozwala na dynamiczne animacje i interaktywność, co znacząco zwiększa jego zastosowanie w nowoczesnych aplikacjach internetowych. W związku z tym, te trzy formaty są niewątpliwie przystosowane do tworzenia i zapisywania plików animowanych, co czyni je nieodpowiednimi odpowiedziami w kontekście pytania.

Pytanie 37

W formularzu zdefiniowano kontrolki do wpisania imienia i nazwiska. Który atrybut reprezentuje podpowiedź umiejscowioną w polu kontrolki, znikającą w momencie, gdy użytkownik rozpocznie wpisywanie wartości?

<label for="imie">Imię: </label>
<input id="imie" value="Wpisz dane" title="Wpisz imię"><br>
<label for="nazw">Nazwisko: </label>
<input id="nazw" placeholder="Wpisz dane" title="Wpisz nazwisko">
A. value
B. for
C. title
D. placeholder
Wybrałeś niepoprawną odpowiedź. Atrybut 'placeholder' w elemencie input HTML jest używany do wyświetlania podpowiedzi wewnątrz pola formularza, która znika, gdy użytkownik zaczyna wpisywanie danych. Inne atrybuty, takie jak 'title', 'value' i 'for', mają inne zastosowania. Atrybut 'title' służy do dodawania etykietki wyświetlanej po najechaniu kursorem na element, a nie do wyświetlania podpowiedzi w polu formularza. Atrybut 'value' określa domyślną wartość pola formularza, a nie podpowiedź dla użytkownika. Wreszcie, atrybut 'for' jest używany do powiązania etykiety z konkretnym polem input, a nie do wyświetlania podpowiedzi. Pamiętaj, że ważne jest zrozumienie, do czego służy każdy atrybut, aby móc skutecznie tworzyć interaktywne formularze HTML.

Pytanie 38

Jaki znacznik w HTML jest używany do oznaczania fragmentów tekstu jako kodu programistycznego?

A. <blockquote> </blockquote>
B. <code> </code>
C. <span> </span>
D. <em> </em>
<code> to znacznik w HTML, który służy do oznaczania fragmentów tekstu jako kodu komputerowego. Użycie tego znacznika jest zgodne z wytycznymi W3C i stanowi istotny element semantycznej struktury dokumentów HTML. Zastosowanie <code> pozwala na wyróżnienie fragmentów tekstu, takich jak kawałki kodu źródłowego czy polecenia, co jest niezwykle ważne w kontekście programowania oraz dokumentacji technicznej. Przykłady użycia obejmują: <code>console.log('Hello, World!');</code> w JavaScript, co przekłada się na lepszą czytelność i zrozumienie dla programistów. Stosując <code>, przeglądarki często renderują ten tekst w sposób wyróżniający, na przykład z użyciem czcionki monospace, co dodatkowo podkreśla jego znaczenie w kontekście kodowania. Oprócz tego, znacznik <code> ma korzystny wpływ na SEO, ponieważ poprawia semantykę treści, co jest doceniane przez wyszukiwarki. W kontekście standardów W3C, <code> należy do rodziny znaczników, które mają na celu ułatwienie prezentacji i interpretacji treści webowych.

Pytanie 39

Jaką formę ma instrukcja w języku PHP, która tworzy obiekt pkt w klasy Punkt zdefiniowanej w klasie?

Ilustracja do pytania
A. pkt Punkt();
B. pkt Punkt;
C. pkt= new Punkt();
D. Punkt() pkt;
Instrukcja pkt= new Punkt(); jest prawidłowa, ponieważ w języku PHP tworzenie nowego obiektu klasy odbywa się przy użyciu słowa kluczowego new. Operator new inicjalizuje nową instancję klasy, co umożliwia dostęp do jej metod i właściwości. W tym przypadku Punkt jest wcześniej zdefiniowaną klasą zawierającą publiczne właściwości $x i $y. Konstrukcja ta jest fundamentalna w programowaniu obiektowym, pozwalając na enkapsulację i bardziej strukturalne podejście do kodowania. Tworzenie obiektów w PHP jest w zgodzie z dobrymi praktykami projektowymi, które zakładają pisanie modułowego i łatwego w utrzymaniu kodu. Przykładem praktycznego zastosowania może być modelowanie rzeczywistego układu współrzędnych, gdzie każdy punkt na płaszczyźnie jest reprezentowany przez obiekt tej klasy. Warto zwrócić uwagę, że użycie new Punkt() z przypisaniem do zmiennej pkt pozwala na manipulowanie danymi punktowymi w bardziej złożony sposób, jak na przykład obliczanie odległości między punktami czy też transformacje geometryczne. Takie podejście zwiększa czytelność kodu oraz ułatwia jego późniejsze modyfikacje. Zastosowanie obiektów sprzyja także wielokrotnemu użyciu kodu, co jest kluczowe w dużych projektach oprogramowania. Przyjęcie konwencji programowania obiektowego wspiera ponadto współpracę zespołową poprzez wykorzystanie zrozumiałych i dobrze zdefiniowanych interfejsów klasowych.

Pytanie 40

Której kwerendy SQL należy użyć, aby utworzyć tabelę samochod z atrybutami marka, model, cena, gdzie marka i model są typu tekstowego, natomiast cena jest liczbą rzeczywistą typu stałoprzecinkowego?

A. CREATE TABLE samochod VALUES (marka CHAR(30), model CHAR(30), cena DOUBLE);
B. CREATE TABLE samochod VALUES (marka CHAR(30), model CHAR(30), cena FLOAT);
C. CREATE TABLE samochod (marka INT(30), model INT(30), cena DECIMAL(2,15));
D. CREATE TABLE samochod (marka CHAR(30), model CHAR(30), cena DECIMAL(15,2));
Poprawna kwerenda używa składni CREATE TABLE z listą kolumn i ich typów danych: CREATE TABLE samochod (marka CHAR(30), model CHAR(30), cena DECIMAL(15,2));. To dokładnie odpowiada treści zadania. Atrybuty marka i model są typu tekstowego, więc zastosowano CHAR(30) – stałej długości łańcuch znaków. W praktyce w wielu projektach częściej używa się VARCHAR zamiast CHAR (bo oszczędza miejsce przy krótszych napisach), ale użycie CHAR(30) jest jak najbardziej poprawne i zgodne ze składnią SQL. Kluczowy jest tu typ ceny. W zadaniu jest mowa o liczbie rzeczywistej typu stałoprzecinkowego, czyli takiej, która przechowuje część ułamkową, ale w sposób dokładny, a nie przybliżony. Do tego właśnie służy DECIMAL(p,s) (lub NUMERIC), gdzie p to precyzja (łączna liczba cyfr), a s to skala (liczba cyfr po przecinku). DECIMAL(15,2) oznacza liczbę z maksymalnie 15 cyframi, z czego 2 po przecinku, czyli świetnie nadaje się np. do przechowywania cen w złotówkach i groszach: 1234567890123,45 mieści się w takim typie. To jest standardowa, dobra praktyka w systemach finansowych, sklepach internetowych, systemach magazynowych itp., bo unikamy błędów zaokrągleń charakterystycznych dla typów zmiennoprzecinkowych jak FLOAT czy DOUBLE. W realnych bazach danych (MySQL, PostgreSQL, SQL Server) kolumny z cenami, stawkami VAT, rabatami procentowymi prawie zawsze definiuje się właśnie jako DECIMAL z odpowiednią skalą, a nie jako typy binarne zmiennoprzecinkowe. Warto też zauważyć, że prawidłowa składnia CREATE TABLE nie używa słowa VALUES przy definiowaniu struktury tabeli – po nazwie tabeli od razu podajemy listę kolumn z typami, tak jak w wybranej odpowiedzi. Taka konstrukcja jest zgodna z SQL-92 i wspierana przez wszystkie popularne systemy bazodanowe.